Tải bản đầy đủ (.pdf) (45 trang)

Luận văn sư phạm Cơ sở toán học của mã đối xứng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (807.06 KB, 45 trang )

1

Khóa lu n t t nghi p

Tr

ng

i H c S ph m HƠ N i 2
Khoa toán
== o0o==

đ ng c t n

c s toán h c c a mƣ đ i x ng

khoá lu n t t nghi p đ i h c
Chuyên ngƠnh: ng d ng

Ng

ih

ng d n khoa h c

ts. Tr n minh t

c

hƠ n i ậ 2010


Ng c T n

K32 CN Toán


2

Khóa lu n t t nghi p

M CL C
L i c m n ………………….………………………………………………. 1
L i cam đoan ………………………………………………………………... 2
M đ u ………………………………………………………………………. 3

CH

NG 1. CÁC KI N TH C CHU N B

1.1. Phép đ ng d và v n đ liên quan ……………………………………… 5
1.2. Tr

ng h u h n ………………………………………………………… 7

1.3. Tr

ng s (m r ng đ i s ) …………………………………………….. 11

CH

NG 2. Mẩ


I X NG

2.1. M t s thu t ng và khái ni m …………………………………………. 14
2.2. M t s h mư đ i x ng
2.2.1. Khái ni m chung ……………………………………………………… 15
2.2.2. H mư d li u tiêu chu n DES ……………………………………….. 15
2.2.3.Tiêu chu n mư nâng cao AES và thu t toán Rijndael ………………… 21
K t lu n …………………………………………………………………….. 42
Tài li u tham kh o ………………………………………………………….. 43

Ng c T n

K32 CN Toán


3

Khóa lu n t t nghi p

L IC M

N

hoàn thành Khóa lu n t t nghi p c a mình em đư nh n đ
h

ng d n, ch b o t n tình c a TS.Tr n Minh T

c s


c, s giúp đ , đ ng viên

c a các th y cô trong t toán ng d ng, cùng t t c các th y cô và các b n
sinh viên trong khoa toán Tr

ng

i h c s ph m Hà N i 2.

Em xin chân thành c m n s giúp đ quý báu, ch đ o t n tình c a th y
Tr n Minh T

c. Em c ng xin nói l i c m n t i các th y cô và các b n

sinh viên.

Hà n i, tháng 5 n m 2010
Sinh viên th c hi n
Ng c T n

Ng c T n

K32 CN Toán


4

Khóa lu n t t nghi p


L I CAM OAN
Tôi xin cam đoan n i dung khóa lu n này hoàn toàn là k t qu nghiên
c u c a riêng tôi d

i s ch d n khoa h c c a th y Tr n Minh T

c. Tôi xin

ch u m i trách nhi m v l i cam đoan c a mình.

Tác gi
Ng c T n

Ng c T n

K32 CN Toán


5

Khóa lu n t t nghi p

M

U

Lý do ch n đ tƠi
Có th nói, m t mư đư xu t hi n t th i c đ i. Ng
ng


i ta cho r ng,

i đ u tiên áp d ng m t mư m t cách có h th ng đ đ m b o bí m t

thông tin quân s là nhà quân s thiên tài c a La mư c đ i Julius Caesar.
Ngày nay m t mư không ch đ
mà còn đ

c dùng trong quân s và ngo i giao

c dùng trong r t nhi u các l nh v c khác nh kinh t , th

ng m i,

truy n thông… Th a nh n ý ngh a quan tr ng mang tính s ng còn c a m t mư
trong th i đ i ngày nay, đông đ o các chuyên gia đư đ u t công s c đ
nghiên c u, tìm tòi nh ng đi u m i m và hi u qu c a m t mư.
Trong công ngh mư hóa thông tin v ph

ng di n nghiên c u và ng

d ng, Mư đ i x ng có m t vai trò quan tr ng. Mư đ i x ng là h mư mà trong
đó vi c l p mư và gi i mư cùng s d ng chung m t chìa khóa mư.
Các lo i mã đ i x ng đi n hình trong lý thuy t m t mã nh : H mã d
li u tiêu chu n (DES), Mã hoá d li u qu c t (IDEA), H mã SAFER, và g n
đây là s ra đ i c a lo i m t mã có tính b o m t cao đó là mã AES do
Rijndael nghiên c u.
Trong đ tài này tôi đ t v n đ nghiên c u v vai trò c a toán h c trong
lý thuy t m t mã nói chung th hi n trong m t s h mã đ i x ng nh DES,
AES và l y tên đ tài là “C s toán h c c a mư đ i x ng”.

M c tiêu c a đ tƠi
Tìm hi u s qua v công ngh mư hóa thông tin c th là v m t s h
mư đ i x ng đi n hình.
*

it
+

ng, ph m vi vƠ ph
it

Ng c T n

ng pháp nghiên c u

ng: M t s h mư đ i x ng.

K32 CN Toán


6

Khóa lu n t t nghi p

+ Ph m vi: Tìm hi u v các h mư đ i x ng và chú tr ng đ n c s toán
h c c a các h mư đ i x ng.
+ Ph

ng pháp nghiên c u: Nghiên c u t li u, phân tích, t ng h p d a


trên các k t qu c a s h c và lý thuy t s .
ụ ngh a lý lu n vƠ th c ti n c a đ tƠi
Trên th gi i nói đ n thu t ng “Lý thuy t m t mư” hay “Công ngh
mã hóa thông tin” không ph i là m t thu t ng xa l . Nh ng

Vi t Nam khi

nói đ n thu t ng này là nói đ n m t v n đ m i m đ i v i sinh viên các
ngành khoa h c c b n.
Là sinh viên ngành Toán, th c hi n đ tài “C s toán h c c a mư đ i
x ng” chúng tôi s đ

c ti p c n v i m t l nh v c khá m i m c a toán h c

nh ng đư có ng d ng hi u qu trong th c t . Vi c th c hi n đ tài c ng là
m tl nt pd

t nghiên c u khoa h c nh m nâng cao tri th c c a b n thân

đ ng th i c ng đ hi u thêm v ho t đ ng nghiên c u khoa h c nói chung và
nghiên c u toán nói riêng.

Ng c T n

K32 CN Toán


7

Khóa lu n t t nghi p


CH

NG 1. CÁC KI N TH C CHU N B

1.1. Phép đ ng d vƠ v n đ liên quan
1.1.1 S nguyên t
* Ký hi u Z là t p các s nguyên …,  2,1,0,1,2... và N là t p s t
nhiên (t c là các s nguyên không âm 0,1,2,3... )
* V i a , bZ ta nói r ng b chia h t cho a n u nh b có th vi t thành
tích c a a v i m t s nguyên khác ; khi đó ta c ng có th nói r ng a chia h t

b , hay a là m t

c s c a b , và ký hi u a | b . Ta có m t s tính ch t sau:

+ N u a , b, cZ và a | b thì a | bc
+ N u a | b và b | c thì a | c
+ N u a | b và a | c thì a | b  c
+ N u a | b và a không chia h t c thì a không chia h t c b  c và

b c.
* S t nhiên l n h n 1 mà không chia h t cho b t k s t nhiên nào
khác ngoài 1 và chính nó đ
*
t p

c g i là s nguyên t .

c chung l n nh t c a 2 s t nhiên a và b là s l n nh t trong các


c chung c a 2 s đó, đ

c ký hi u là gcd (a , b) hay đ n gi n là  a , b  .

Nh v y, n u d | a và d | b thì d | gcd  a , b 
* Khi 2 s t nhiên có

c chung l n nh t là 1 thì ta nói r ng chúng

nguyên t cùng nhau.
1.1.2. Phi hàm EULER
V i nN s l
v in đ

ng các s t nhiên bé h n n và nguyên t cùng nhau

c kí hi u là  (n) . Hàm  (n) đ

c g i là phi hàm Euler.

Ví d :  (5)  4 ,  (6)  2 ,  (7)  6

Ng c T n

K32 CN Toán


8


Khóa lu n t t nghi p
1.1.3. Phép tính đ ng d vƠ ph

ng trình đ ng d

1.1.3.1. Phép tính đ ng d
Ta ký hi u a  b (mod m) n u nh

a và b sai khác nhau m t b i c a

m , nói cách khác a  b (mod m) n u a  b chia h t cho m .

Quan h đ ng d

modulo m d n đ n vi c phân ho ch t p s nguyên

thành m l p, m i l p ch a các s nguyên đ ng d v i nhau theo modulo m
t p các l p này đ

c kí hi u là Zm và ch a đúng m ph n t . M i l p trong

t p Zm có đúng m t s n m trong 0,1,..., m  1 cho nên m i s nguyên
trong đo n này đ

c xem đ i di n cho m t l p c a t p Zm .

M t s tính ch t c a phép đ ng d
 a  a (mod m) ;
 N u a  b (mod m) thì b  a (mod m) ;
 N u a  b (mod m) và b  c (mod m) thì a  c (mod m) ;

 N u a  b (mod m) , c  d (mod m) thì
a  c  b  d (mod m) , a .c  b.d (mod m)

Nh v y ta có th t do th c hi n các phép tính s h c thông th

ng

trên t p Zm .
N u x là m t ph n t trong Zm và gcd ( x, m)  1 thì t n t i các s u, v
sao cho u.x  v.m  1, t c là u.x  1(mod m) , nên ng
đ o ( trong Zm ) là u và th

i ta nói x có ngh ch

ng ký hi u ph n t ngh ch đ o là x1 hay

T p các ph n t trong Zm mà có ngh ch đ o th

ng đ

1
.
x

c ký hi u là

Z*m rõ ràng t p này có s ph n t ngh ch đ o b ng  (m) , và trên t p này

ngoài các phép c ng, tr , nhân ta còn có th đ a vào phép chia
N u a  b (mod m) , c  d (mod m) v i gcd (c, m)  1 thì a .c 1  b.d 1 (mod m)


Ng c T n

K32 CN Toán


9

Khóa lu n t t nghi p
Ví d : V i Z9  0,1,2,3,...,8



, Z*9  1,2,4,5,7,8 ta có 7 1  4(mod 9) và

cho phép chia c a 2 cho 7 (trong Z*9 ) đ

c th c hi n nh sau:

2
 2.7 1  4.2  8(mod9)
7

Ta đ

ng nhiên c ng có 2  7.8(mod9) vì 7.8  56  6.9  2

1.1.3.2. Ph

ng trình đ ng d tuy n tính ax  b (mod m)


Khi gcd (a , m)  1 (t c a là ph n t c a Z*m ) thì ta có ngay nghi m
x  a 1b (mod m) . Khi gcd (a , m)  g có 2 kh n ng x y ra:

+ ph

ng trình có nghi m khi g chia h t b , vì r ng khi y ph

trình đư cho t

ng đ

ng v i ph

ng

ng trình (a / g ) x  b / g (mod m / g ) trong

đó h s a / g là s nguyên t cùng nhau v i m / g
+ ph

ng trình vô nghi m n u g không chia h t b , vì hi u c a 2 s

chia h t cho g thì không th là m t s không chia h t cho g .
1.2. TR

NG H U H N

1.2.1. Tr


ng F p

V i p là m t s nguyên b t kì, trên t p các l p đ ng d modulo p t c
là Z p ta có th th c hi n đ

c các phép tính c ng, tr , nhân. Khi p là s

nguyên t thì v i m i ph n t khác không  Z p ta luôn tìm đ

c ph n t

ngh ch đ o  1  Z p theo ngh a  . 1  1(mod p) và do đó có th th c hi n
đ

c phép chia (cho các ph n t khác 0 ), theo ngh a sau:  :    . 1
Khi đó Z p có c u trúc c a m t tr

tr

ng F p . T p các ph n t khác 0 c a tr

v i phép nhân và đ

Ng c T n

ng và ta kí hi u tr

ng này là

ng này l p thành m t nhóm đ i


c kí hi u là F p* . Nh v y:

K32 CN Toán


10

Khóa lu n t t nghi p
F p*  F p \ 0  1,2,..., p  1.

T nay, khi nói đ n tr

ng F p hay nhóm F p* ta luôn hi u r ng p là

m t s nguyên t .
Chú ý : N u p không là nguyên t thì v n có th đ nh ngh a m t t p con bao
g m các ph n t kh ngh ch c a Z p và c ng ký hi u là Z *p .
M t ph n t g  F p* đ

c g i là ph n t sinh c a nhóm F p* n u nh t p

các l y th a c a g c ng chính là nhóm này, t c là 2 t p sau đây trùng nhau

g , g

2




,..., g p1  1,2,..., p  1

(không tính đ n th t ).
Rõ ràng, m t ph n t ch có th là ph n t sinh khi m i l y th a c a nó
v i b c nh h n ( p  1) , b c c a nhóm, không ph i là đ n v . Ng

c l i, m t

ph n t mà có l y th a b c nào đó (nh h n h n ( p  1) ) b ng đ n v thì
không th là ph n t sinh. D th y r ng m t ph n t mà không sinh ra c
nhóm thì l y th a c a nó c ng s sinh ra m t nhóm con và, theo
Lagrange, ta bi t r ng b c c a m t nhóm con ph i là
ph n t có trong nhóm ch a nó (t c là

cc as l

nh lý
ng các

c c a ( p  1) ). Nh v y mu n ki m

tra xem m t ph n t nào đó có ph i là ph n t sinh hay không ch c n nâng nó
lên l y th a v i b c là

c c a ( p  1) và xem xét: n u t t c l y th a này đ u

khác 1 thì nó là ph n t sinh (ng
Ng

i ta ch ng minh đ


c l i thì không ph i).
c r ng n u g là m t ph n t sinh c a nhóm

F p* còn b là m t s nguyên t cùng nhau v i ( p  1) thì g b c ng là ph n t

sinh c a nhóm F p* . Cho nên, s các ph n t sinh c a nhóm F p* đúng b ng s
các s nguyên t v i ( p  1) t c là b ng  ( p  1).

Ng c T n

K32 CN Toán


11

Khóa lu n t t nghi p
Cho ph n t sinh g  F p* . Khi y m i ph n t h  F p* có th đ
di n d

c bi u

i d ng m t l y th a nào đó c a g . Tuy nhiên v n đ tìm ra s x đ

có đ

c bi u di n h  g x là vô cùng gian nan, và đ

c mang danh là bài toán


logarit r i r c. M t đi u thú v là tính khó gi i c a bài toán này không làm
cho ng

i ta khó ch u, mà ng

c l i làm vui lòng các nhà mư hóa (m t trong

nh ng ng d ng vào tin h c s đ
1.2.2. Tr

c nói đ n

ph n sau).

ng F2r

ây c ng là lo i tr
bi t so v i lo i tr

ng có h u h n ph n t , nh ng có b n ch t khác

ng h u h n đư xem xét

trên.

Ta kí hi u F2 x là t p các đa th c v i h s n m trong tr

ng F2 (đư

trên). Có th li t kê ra r ng t p này có hai đa th c b c 0 (là hai h ng s


xét

0,1) hai đa th c b c 1 là ( x và x  1), t c là có 4 đa th c b c không v

t quá

1 , và khó kh n l m ta m i có th nh n ra r ng, v i m i s t nhiên n , có t t

c 2 n 1 đa th c v i b c không v

t quá x v i d ng t ng quát là:

a n xn  a n1 xn1  ...  a1 x  a 0 , a i  F2 .

Hai đa th c đ

c c ng ho c nhân v i nhau theo quy t c thông th

ch l u ý là các h s là các ph n t c a tr

ng,

ng F2 , trong đó 1  1  0.

Ví d : ( x2  x  1)( x2  x)  ( x4  x3  x2 )  ( x3  x2  x)  x4  x.
a th c g i là b t kh quy (trên m t tr

ng nào đó) n u nó không th


phân tích thành c a các đa th c b c nh h n (v i các h s trên tr

ng đư

nói).
Ví d : x2  2, x2  2 là nh ng đa th c b t kh quy trên tr
nh ng trên tr
Trên tr

ng s h u t Q ,

ng s th c R thì ch có đa th c x2  2 là đa th c b t kh quy.
ng F2 ta có x2  1 là kh quy ( vì x2  1  ( x  1) 2 ) còn

x2  x  1 là đa th c b t kh quy (đây là đa th c b c hai duy nh t b t kh

Ng c T n

K32 CN Toán


12

Khóa lu n t t nghi p
quy). Trong t p đa th c b c 3 ch có hai đa th c b t kh

quy là

x3  x2  1, x3  x  1 .
T


ng t nh trên Z , trên t p F2 x ta c ng đ a vào phép tính đ ng d

modulo m t ph n t (t c là m t đa th c) nào đó, và khi y F2 x s đ

c

phân thành các l p v i các đ i di n là đa th c b c th p h n đa th c ta đư l y
làm modulo.
Ví d : N u l y đa th c x3  x  1 (b t kh quy) làm modulo thì t p
F2 x/ x3  x  1 g m các đa th c nh h n b c 3 c th là t p:

0,1, x, x  1, x , x
2

2



 1, x2  x, x2  x  1 , trong đó đ i di n c a ph n t

0

chính là đa th c ch n làm modulo, ngh a là x3  x  1  0 . Trên t p này ta có
th

th c hi n các phép c ng, tr , nhân thông th

x3  x  1vì đi u này t


ng đ

ng v i l u ý r ng

ng v i x3  x  1  0 (trên F2 ).

Ví d : ( x2  x  1)( x  1)  x3  1  ( x  1)  1  x(mod x2  x  1) .
Ngoài ra trên t p F2  x / x3  x  1 ta còn th y r ng.
x4  x3 .x  ( x  1).x  x2  x .

Trong tr

ng h p chung , ng

i ta ch ng minh đ

c r ng, v i m i đa

th c b t kh quy Pd (x) v i b c d , t p h p F2 x/ Pd ( x) là m t tr
đúng 2 d ph n t , kí hi u là F2 d m i ph n t c a nó đ
đa th c v i b c không v
Ng
tr

c r ng t p các ph n t khác 0 c a

c kí hi u là F2*d , c ng l p thành m t nhóm và đ

m t ph n t nào đó, t c là có c u trúc t


Ng c T n

c th hi n b ng m t

t quá d  1

i ta c ng ch ng minh đ

ng F2d , đ

ng ch a

c sinh b i

ng t nh nhóm F p* . Ph n t sinh

K32 CN Toán


13

Khóa lu n t t nghi p
c a nó c ng ph i có các l y th a b c là
l

c c a (2 d  1) khác đ n v , và s

ng ph n t sinh trong nhóm này là  (2d  1) .

Ta d th y r ng x là ph n t sinh c a F2*3  F2*8 . Th t v y v i g  x ta có


g 2  x2 , g 3  x  1, g 4  x4  x2  x, g 5  x4 .x  x2  x  1
g 6  x6  x3 .x3  ( x  1)2  x2  1, g 7  x6 .x  x3  x  1
M t ph n t c a nhóm F2*d đ
nh nó là bình ph

c g i là chính ph

ng (perfect square) n u

ng c a m t ph n t khác trong nhóm.

Nh v y, hoàn toàn t

ng t nh trên ta có th xây d ng các tr

ng

h u h n d ng F p*d , v i p là s nguyên t b t kì (thay vì v i p  2 )
Khi p  2 , có th ch ra r ng m t ph n t chính ph
l y th a c a nó v i b c
1.3. Tr

ng khi và ch khi

( p d  1)
chính là đ n v .
2

ng s (m r ng đ i s )


Cho đa th c v i các h s nguyên
f ( x)  a n xn  a n1 xn1  ...  a1 x  1, a i Z

ng trình f ( )  0 đ

S  th a mưn ph

c g i là nghi m c a đa th c f .

Gi s  là m t nghi m c a đa th c d ng nh trên và n là b c c a đa
th c có b c th p nh t nh n nó làm nghi m. Ng

i ta ch ng minh đ

c r ng

t p các t h p tuy n tính (v i h s h u t ) c a các l y th a c a s  t c là





Q ( )  b0  b1  ...  bn1 n1 | bi  Q ,
l p thành m t tr

ng s (v i các phép tính quen thu c trên tr

M i ph n t c a tr


ng s h u t ).

ng là nghi m c a m t đa th c v i h s nguyên, v i h

s đ u là s t nhiên. a th c v i b c th p nh t (trong các đa th c nh n ph n
t đó là nghi m) g i là đa th c t i thi u c a ph n t đó. N u đa th c có h s

Ng c T n

K32 CN Toán


14

Khóa lu n t t nghi p
đ u b ng 1 thì ph n t đ

c g i là h s nguyên đ i s . Rõ ràng m i s

nguyên n đ u là s nguyên đ i s , vì nó là nghi m c a đa th c b c nh t

1.x  n  0.
Ví d :   21/ 3  1 ta có (  1) 3  2 nên  3  3 2  3  3  0 , và do
đó f ( x)  x3  3x2  3x  3 là đa th c t i thi u c a  , và suy ra  là m t s
nguyên đ i s .
Trong tr

ng s nói trên, n u 3 s nguyên đ i s  ,  ,  th a mưn

   . thì ta nói r ng  |  . Ta nói r ng s nguyên đ i s  là nguyên t

n u nh  |  . kéo theo  |  ho c  |  . S nguyên đ i s chia h t 1 thì
đ

c g i là đ n v (unit), ví d trong tr

ng Q(i ) thì i là đ n v , vì nó là

nguyên (nghi m c a đa th c x2  1 ) và chia h t 1 (do 1  i 4  i.i 3 ) ngoài ra

 i,1,1 c ng là đ n v . Hai s nguyên t  ,  mà sai khác nhau m t h s
b ng đ n v thì g i là hai s nguyên t k t h p v i nhau và ta vi t  ฀  .
Trong các s k t h p v i nhau ta luôn ch n đ

c đ i di n d

i d ng a  bi ,

v i a  b, a  0 .
áng bu n là không ph i tr

ng nào c ng “có đ ” s nguyên t , ngh a

là không ph i m i s không nguyên t đ u có th phân tích đ

c thành tích

c a các s nguyên t .
Ví d : Trong tr

ng Q( 5) thì 2 không ph i là s nguyên t , vì t


vi c 2 chia h t 6 (do 2 / 2.3  6  (1   5 ).(1   5 ) ta không suy ra đ

c2

chia h t (1  5) ho c 2 chia h t (1  5) , b i vì các đa th c t i thi u c a
(1   5 ) / 2 và (1   5 ) / 2 chính là 2 x2  2 x  3 , có h s đ u không ph i

là 1. Trong khi đó 2 l i là s “b t kh quy”, ngh a là không có phân tích nào
khác ngoài 2=1.2=(-1).(-2).

Ng c T n

K32 CN Toán


15

Khóa lu n t t nghi p

Ta c ng th y r ng vi c phân tích m t s (ra các th a s ) có th không
ph i là duy nh t (nh trên ta th y, s 6 có 2 cách phân tích khác h n nhau).
Tuy nhiên Q(i ) l i là m t tr
nguyên đ i s trên tr

ng s có nhi u khía c nh t t. T p các s

ng này c ng chính là t p các đi m có “t a đ ” nguyên

trên m t ph ng ph c. Nó chính là Z(i) : a  bi | a , b  Z . Ng

c r ng n u s nguyên p (d

minh đ

i ta ch ng

ng) th a mưn p  3(mod 4) thì c ng

là s nguyên t trên Z (i ) . N u p  1(mod 4) thì ta có th vi t:
p  a 2  b 2 , a , b Z và do đó p  (a  bi)(a  bi) v i (a  bi), (a  bi)

không ph i là các s nguyên t k t h p, và do đó ta có 2 s nguyên t n m
trên s p.

Ng c T n

K32 CN Toán


16

Khóa lu n t t nghi p

CH

NG 2. Mẩ

I X NG

2.1. M t s thu t ng vƠ khái ni m

2.1.1. M t s thu t ng
- V n b n (Plaintext) là m t thông báo g c c n chuy n đ

c ghi b ng

hình, nh âm thanh, ch s , ch vi t.
- Mã hóa (Encryption) là vi c “ng y trang” v n b n sang m t d ng khác
đ cho ng

i “ngoài cu c” không th đ c đ

c, ph c v cho nhu c u bí m t

trong trao đ i thông tin, d li u và các giao d ch tài chính, th

ng m i… Quá

trình “ng y trang”v n b n g i là l p mư, còn quá trình “khôi ph c” l i v n
b n ngu n g i là gi i mư.
- H mã (Cryptosystem) là m t công c giúp th c hi n ng y trang v n
b n . Nghiên c u đ xây d ng và s d ng các h mư có th g i là m t mư h c
(Cryptography).
- Phân tích mã (Cryptanalysis), hay thám mư, là ngh thu t phá các h mư
(nhìn xuyên qua các ph

ng pháp ng y trang).

- Công ngh mã (Crytology) là viêc nghiên c u t ng h p c Cryptography
và Cryptanalysis.
- L p mã (Encrypt) là vi c bi n v n b n ngu n thành v n b n mư;

- Gi i mã (Decrypt) là vi c đ a v n b n đư mư hóa tr v d ng v n b n
ngu n;
- Chìa khóa mã (Cipher key) là bí quy t l p mư và gi i mư.
2.1.2. Vì sao c n mƣ hóa?
ó là m t câu h i d tr l i, vì trong ho t đ ng c a con ng

i, nhu c u

b o m t khi trao đ i thông tin gi a các thành viên trong nhóm nào đó v i
nhau có th là h t s c c n thi t. Tuy nhiên, đ th c s th y rõ yêu c u c p
bách c a mư hóa trong th i đ i ngày nay, c n nh n m nh r ng v i các ph

Ng c T n

ng

K32 CN Toán


17

Khóa lu n t t nghi p

ti n k thu t hi n đ i vi c gi gìn bí m t ngày càng tr nên khó kh n. Các
hình nh trên m t đ t, các cu c đàm tho i h u tuy n và vô tuy n, các thông
tin đ

c chuy n qua m ng internet,… t t c đ u d dàng thu đ

thi t b đi n t trên m t đ t ho c t v tinh. Vì th , ph


c nh các

ng pháp thông d ng

nh t đ gi gìn bí m t thông tin là mư hóa chúng b ng m t h mư tr

c khi

truy n t i đi.
D nhiên, vi c mư hóa thông tin tr
thông tin nh n đ

c khi truy n đi và và vi c gi i mư các

c s t o nên m t s khó kh n: gi m t c đ đ

tin, t ng chi phí… M t h mư lý t

ng là m t h mư đ m b o đ

ng truy n
c các yêu

c u th i gian mư hóa và gi i mư nhanh, đ b o m t cao.
2.2. M t s h mƣ đ i x ng
2.2.1. Khái ni m chung
 Mư đ i x ng: là h mư mà trong đó vi c l p mư và gi i mư cùng s
d ng chung m t chìa khóa mư.
 M t đ c đi m chung c a các h mư đ i x ng là quá trình bi n đ i đ

th c hi n trên các kh i d li u có đ dài đ l n và đ
nhi u vòng l p t

c

c thông qua

ng t nhau.

2.2.2. H mƣ d li u tiêu chu n ậ DES
2.2.2.1. Ph

ng án thu g n c a DES

Trong mô hình này ta đ nh ra đ dài c a kh i d li u là 8 bit, đ dài c a
chìa khóa là 10 bit và s l

ng vòng l p trong thu t toán là 2. Nh v y, t

chìa khóa ban đ u (dài 10 bit) ta s cho sinh ra 2 chìa khóa con có đ dài 8 bit
dùng cho 2 vòng. Trong quá trình mã hóa ta s th y các công đo n: Khóa con
đ

c sinh ra t khóa ban đ u, d li u t bi n đ i, r i sau đó d li u đ

h p v i khóa con trong m t s phép bi n đ i chung. Tr
làm quen v i m t s phép bi n đ i s đ

ck t


c khi đi vào mô t ta

c dùng t i trong công đo n này:

 Phép hoán v :

Ng c T n

K32 CN Toán


18

Khóa lu n t t nghi p

Ký hi u là P, có vai trò tráo đ i v trí các bit trong m t kh i d li u. M i
phép tr n đ

c cho b i m t vect có s t a đ b ng s l

ng bit trong kh i

d li u. M i t a đ c a vect cho bi t v trí m i c a bit d li u đang
c a t a đ đó. L u ý r ng các v trí đ

v trí

c đánh s t 0, nên vect P xác đ nh

phép hoán v cho kh i d li u g m k bit s g m các s t nhiên t 0 đ n


k  1.
Ví d : P 8  (2,5,0,4,7,3,1,6) xác đ nh phép hoán v trong 8 bit nó chuy n
bit đ u tiên (mang ch s 0) ra v trí th 3 (mang ch s 2), chuy n bit th 2
sang v trí th sáu, chuy n bit th ba v v trí đ u tiên, vv… và nh v y nó
bi n 10011101 thành ra 01111100.
 Phép đ o v d li u:
Ký hi u là  , có vai trò đ o v trí c a n a kh i đ u (4 bit) cho n a
kh i sau (4 bit); t c là ( X, X ')  ( X ', X ) , trong đó X, X ' là các xâu s nh
phân 4 bit ng v i các n a kh i d li u (8 bit). Rõ ràng 1   , vì  2 là ánh
x đ ng nh t.
 Ánh x “nâng” theo T :
Gi s T là m t ánh x c a các t p xâu s nh phân 4 bit vào chính nó.
T : 0,1  0,1
4

4

Khi đó ta ký hi u T là ánh x đ

c xác đ nh b ng công th c

T ( X, X ')  ( X  T ( X '). X ') , trong đó  là ký hi u phép lo i bit trên t p
các xâu s nh phân (hay c ng chính là phép c ng trong Z2 ), và do đó:
T2 ( X , X ')  T ( X  T ( X '), X ')  ( X  T ( X ')  T ( X '), X ')  ( X, X ')

t c ánh x T là ánh x t kh ngh ch, v i m i T b t k .
Sau đơy lƠ quy trình c b n trong DES.
 Sinh các chìa khóa con t chìa khóa ban đ u


Ng c T n

K32 CN Toán


19

Khóa lu n t t nghi p
Trong ph

ng án DES rút g n, ta dùng khóa ban đ u có đ dài 10 bit

đ sinh ra các khóa con có đ dài 8 bit. C th , tr

c h t ta s dùng phép hoán

v P10  (2,4,1,6,3,9,0,8,7,5) đ i v i các xâu s nh phân 10 bit; sau đó ta
dùng phép d ch xoay vòng sang trái đ i v i t ng n a xâu bit theo m t trình t
d ch chuy n (xác đ nh tr

c) đ i v i t ng khóa con, và cu i cùng là phép

ch n ra 8 thành ph n r i s p x p l i theo trình t

xác đ nh

S8  (5,2,6,3,7,4,9,8) đây là nh ng thông tin công khai ai c ng bi t. Nh

v y, v i khóa ban đ u là r0r1r2 ...r9 0,1 , ta áp d ng P10 và thu đ


c

P10(r0r1r2r3r4r5r6r7r8r9 )  (r2r4r1r6r3r9r0r8r7r5 )  s0s1s2s3s4s5s6s7 s8s9
ta phân k t qu thành 2 n a là (s0 s1s2s3s4 )(s5s6s7 s8s9 ) và d ch m i n a sang
trái 1 bit (đ làm khóa con th nh t) ta có đ

c

(s1s2 s3s4 s0 )(s6 s7 s8s9 s5 )  s1s2s3s4s0s6s7 s8s9s5  t0t1t2t3t4t5t6t7t8t9
ti p t c theo S8 , ta nh t 8 ph n t và s p x p theo th t đư đ nh ra trong đó
là t5t2t6t3t7t4t9t8 .
t o khóa con th 2 ta không b t đ u l i t 10 bit c a khóa ban đ u,
mà t s n ph m đư đ

c t o ra sau phép hoán v tr

c khi nh t ra khóa con

th nh t, t c là t0t1t2t3t4t5t6t7t8t9 . Sau khi tách nó ra thành hai n a và cho d ch
t ng n a sang trái 2 v trí, ta có đ

c

(t2t3t4t0t1 )(t7t8t9t5t6 )  t2t3t4t0t1t7t8t9t5t6  u0u1u2u3u4u5u6u7u8u9
Ti p t c áp d ng phép ch n S8 đ ch n ra 8 thành ph n
u5u2u6u3u7u4u9u8

 Mô t các ánh x T và phép nâng t

ng ng  T


Ánh x T cho t ng vòng bi n đ i là khác nhau, nh ng v b n ch t đ u
đ

c sinh ra t m t ánh x nào đó thay đ i theo tham s vòng.
+ Toán t

Ng c T n

T1 (thi t l p cho vòng th nh t) đ

c xây d ng nh sau:

K32 CN Toán


20

Khóa lu n t t nghi p
Tr

c h t, xâu s nh phân 4 bit ban đ u (n a kh i d li u bên ph i) là

n4 , n5 , n6 , n7 đ

bit đ đ
ng

c n ra thành 8 bit b ng cách cho nó xoay vòng sang ph i 1


c 4 bit đ u (là n7 , n5 , n6 , n4 ) r i sau đó s nh n đ

c v bên trái 2 bit đ đ

8 bit thu đ

c xoay vòng

c 4 bit sau n5 , n6 , n7 , n4 . Khi đó xâu s nh phân

c sau phép n là n7 , n4 , n5 , n6 , n5 , n6 , n7 , n4 , và khi x p các bit này

thành 2 hàng (m i hàng 8 bit) thì ta có bi u đ sau

n7 n4
n5 n5

n6 n6
n7 n4

Sau khi đem bit lo i bit v i các thành ph n c a khóa con th nh t thu
đ

c trong quá trình sinh khóa con

trên (ta đang nói đ n T1 ), ta s có

n7  t5 n4  t2
n5  t7 n6  t4
ti n dùng cho các b


n5  t6 n6  t3
n7  t9 n4  t8

c ti p theo, k t qu này đ

p00 p01
p10 p11

c vi t l i nh sau

p02 p03
p12 p13

Bi u đ này s đ nh ra m t phép thay th ti n hành nh sau. T ng c m
thành ph n ( p00 p03 ),( p01, p02 ),... s bi u di n s nh phân nào đó t 0 đ n 3
(c th 00=0,01=1,10=2,11=3), giúp ta đ nh ra hàng và c t c a ph n t trong
các ma tr n ch nh t nào đó. S t o ra b i các bit ngoài vùng “đóng c c” ,
nh

( p00 p03 ) , s là s ch hàng, còn s t o các bit n m trong vùng “đóng

c c”, nh ( p01 p02 ) , s là s ch c t, và nh v y m i hàng c a bi u đ s cho
ta m t “t a đ ” trên m t b ng s (ma tr n). Các ma tr n này th
s nđ

c g i là các h p thay th (S-box), và trong ph

ng đ


c cho

ng án DES thu g n

chúng là:

Ng c T n

K32 CN Toán


21

Khóa lu n t t nghi p

0 1 2 3
0 1
1 3
S  0  
2 0

3 3

0
2
2
1

3
1

1
3

0 1 2 3
2
0

3

2

0 0
1 2
S 1  
2 3

3 2

Ta l y ra trong ma tr n S  0 ph n t

1
0
0
1

2
1
1
0


3
3

0

3

thu c hàng ( p00 p03 ) và c t

( p01 p02 ) ; nó là m t s nguyên nào đó trong kho ng 0 đ n 3 nên có th vi t
d

i d ng nh phân nh m t s 2 bit là (q0q1 ) . T

ng t nh v y ta l y ra

trong ma tr n S 1 ph n t thu c hàng ( p10 p13 ) , c t ( p11 p12 ) và vi t nó l i
d

i d ng nh phân là (q2q3 ) . Ta dính 2 k t qu tìm ki m l i và đ

cm ts

nh phân 4 bit là (q0q1q2q3 ) . Sau cùng, ta s d ng phép hoán v p4  (1,3,2,0)
và bi n s này thành ra là (q1q3q2q0 ) và đó chính là k t qu tác đ ng c a toán
t T1 lên n a kh i d li u n4n5n6n7 . Nh v y ta có T1 (n4n5n6n7 )  (q1q3q2q0 )
Khi đó ánh x Ti có th bi u di n t

ng minh là:


Ti (n0n1n2n3n4n5n6n7 )  (n0  q1 , n1  q3 , n2  q2 , n3  q0 , n4 , n5 , n6 , n7 )

(Trong đó các d u ph y đ

c đ a vào bi u th c ch đ d nhìn)

+ Toán t T2 v n hành hoàn toàn t

ng t , ch khác t i b

c c ng khóa

thì dùng khóa con th 2, còn l i các S-boxes và phép hoán v P4 thì v n nh
c . Rõ ràng chính các b

c c ng v i khóa đư làm cho các ánh x T tr lên b

đi u khi n b i khóa.
 Quy trình ho t đ ng c a DES thu g n
M t chu trình tác đ ng lên m t kh i d li u (8 bit ) c a DES thu g n là
t h p c a các phép bi n đ i sau
IP 1 T2 T1  IP ,

Ng c T n

K32 CN Toán


22


Khóa lu n t t nghi p
Trong đó IP

là phép hoán v

ban đ u đ

P8  (1,5,2,0,3,7,4,6) , các toán t tác đ ng l n l

c cho b i vect

t theo th t t ph i qua

trái, d dàng tính ra

IP 1  (3,0,2,4,6,1,7,5)
T chu trình l p mư nh trên và quy t c ( f  g )1  g 1  f 1 ) ta rút ra
quy trình gi i mư là

( IP 1  T2   T1  IP )1  IP 1  T1   T2  IP
Ánh x kép   T1 đ

c g i là m t vòng trong quá trình mư hóa. M i

vòng mư hóa c n (ph thu c vào) m t chìa khóa con.
Khi t ng quá trình trong quy trình mư hóa thì ph i sinh ra nhi u chìa
khóa con h n.
2.2.2.2. Mô hình đ y đ c a DES
Trong mô hình th c t ng
ph


i ta dùng 16 vòng (thay cho 2 vòng trong

ng án rút g n), làm vi c v i các kh i d li u 64 bit, và s d ng khóa ban

đ u có đ dài 56 bit đ sinh ra 16 khóa con (v i đ dài 48 bit). Và nh v y, s
có nh ng thay đ i sau đây:
Quy trình sinh khóa con
Các thao tác không có phát sinh đ c bi t, ngoài vi c dùng P 56 thay
cho P10 , dùng S48 thay cho S8 , và s d ng tu n t d ch chuy n v i 16
b

c là
(1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1)

Thay cho 2 b

c, là (1,2) nh trong DES thu g n.

C ch v n hƠnh c a các toán t Ti
M t n a kh i d li u bây gi 32 bit, t c là m t só nh phân có d ng :

(n32 , n33 ,..., n63 ) .

Ng c T n

K32 CN Toán


23


Khóa lu n t t nghi p

T đây sinh ra 48 bit b ng cách nh t 8 l n m i l n 6 bit c th là: L n đ u
ta cho xoay vòng sang ph i 1bit và nh t ra 6 bit đ u, t l n th 2 tr đi cho nó
xoay vòng v phía trái, m i l n 4 bit và nh t ra 6 bit đ u (t c là trong l n th
2 ta có xâu bit n35n36n37 n38n39n40 , và trong l n th

3 ta có xâu

n39n40n41n42n43n44 ,... ). N u x p chúng thành hàng thì sau 8 l n ta đ

c bi u đ

v i 8 hàng (m i hàng 6 bit) nh sau;

n63 n32
n35 n36


n59 n60

n33
n37

n61

n34
n38


n62

n35 n36
n39 n40
 
n63 n32

Sau khi c ng các khóa con (48 bit) và đây theo t
đ

ng ng bit v i bit, ta

c m t bi u đ đóng vai trò đ nh v “t a đ ” các thành ph n trong các

S  boxes (t

ng t nh trong DES thu g n). Ch l u ý r ng, t i m i hàng

trong bi u đ m i , ph n “trong mi n đóng c c” có t i 4 bit cho nên nó đ

c

bi u di n m t s nguyên nào đó t 0 đ n 15, còn ph n ngoài mi n đóng c c
v n ch bi u di n 1 s nguyên trong vùng t 0 đ n 3; nh v y các S  boxes
c n có kích th

c 4 hàng và 16 c t, và do trong bi u đ có 8 nên ta c n đ n 8

cái S  boxes nh v y. chú ý r ng trong các S  boxes c a DES th c s thì
m i hàng là m t vect 16 thành ph n, nh n giá tr nguyên t 0 đ n 15 và

không có 2 thành ph n nào gi ng nhau.
2.2.3.Tiêu chu n mƣ nơng cao vƠ thu t toán Rijndael
(AES ậ Advanced Encryption Stanraed)
2.2.3.1 Khái quát
* Tiêu chí c a AES
+ AES đ

c xác l p công khai.

+ AES là h mư kh i đ i x ng.

Ng c T n

K32 CN Toán


24

Khóa lu n t t nghi p
+ AES đ

c thi t k sao cho đ dài khóa có th đ

c m r ng theo nhu

c u.
+ AES có th đ

c tri n khai trên c ph n c ng và ph n m m.


+ AES c n ph i là s n ph m:
- Mi n phí ho c là
c cho d

-

i các đi u ki n phù h p v i chính sách v b n quy n

c a vi n tiêu chu n qu c gia hoa kì.
+ Các thu t toán th a mưn các đi u ki n trên s đ
ph

c xét trên c s các

ng di n sau đây:
- Tính b o m t;
- Tính hi u qu v thu t toán;
- Nhu c u đòi h i v b nh ;
- Tính đ n gi n;
- Tính m m d o, linh đ ng;
- Các yêu c u v ph

ng di n b n quy n.

* Thu t toán Rijndael mang đ m màu s c Toán h c. Trong thu t toán này,
ngoài các tính toán đ ng d và các phép tính bit, ng
phép toán khá đ c bi t trong tr
tr

i ta đư thi t l p nh ng


ng h u h n và trong vành đa th c trên

ng h u h n.

2.2.3.2 Công c chu n b
Ta xây d ng 2 lo i phép toán m i: lo i phép toán trên t p các byte (8
bit) và lo i phép toán trên các vect g m 4 byte, hay còn g i là t .
Các phép toán

m c byte: Trong thu t toán Rijndael s đ

thông qua phép bi u di n m i byte nh m t ph n t c a tr

c

nh ngh a
ng h u h n

GF (28 ) .
Các phép toán trên các t (ch a 4 byte): S đ
phép toán trên các byte theo ý t

Ng c T n

ng sau. M i t th

c thi t l p trên c s các
ng đ


c xem nh là m t

K32 CN Toán


25

Khóa lu n t t nghi p
vect trong không gian 4 chi u trên tr

ng các byte. Tuy nhiên, trong c u trúc

không gian tuy n tính không có phép nhân trong, cho nên ng
b

c n a xem m i vect (trên tr

i ta ti n thêm

ng các byte) nh t p các h s c a m t đa

th c. Nh v y, các phép toán trên các t có th đ

c đ nh ngh a thông qua

các phép toán trên các đa th c (v i các h s là byte).
2.2.3.2.1. Tr

ng các byte


Ta bi t r ng m i byte (8 bit) đ u bi u di n m t s trong kho ng t 0
đ n 255. Tên c a byte đ

c đ t theo giá tr mà nó bi u di n: có th đ

c vi t

trong h c s 16 v i d u nháy đ n „..‟, ho c trong h nh phân v i d u nháy
kép “..”.
Ví d : Byte v i giá tr „57‟= “01010111” vì
'57'  5.161  7.160  26  24  22  21  20

T p các byte ch a t t c 256 ph n t .

bi n t p này thành tr

ng h u

h n ta làm nh sau.
M i byte b ch a các bit "b7b6b5b4b3b2b1b0 " đ
th c b c không quá 7 v i h s trong tr

c bi u di n nh m t đa

ng 0,1 , xác đ nh nh sau

b7 x7  b6 x6  b5 x5  b4 x4  b3 x3  b2 x2  b1x  b0
Trong tr

ng h p này ta c ng nói b là byte bi u di n các h s c a đa


th c nêu trên.
Ví d : Byte „57‟ (hay là byte “01010111”) đ

c bi u di n b ng đa th c

x6  x4  x2  x  1

Còn byte „83‟ (hay “10000011”) đ

c bi u di n b ng đa th c
x7  x  1

Phép c ng : Trong phép bi u di n đa th c, t ng c a 2 ph n t (byte) s là
m t đa th c b ng t ng c a 2 đa th c bi u di n các ph n t đó, trong đó các h
s đ

c c ng theo modulo 2 (t c là theo nguyên t c 1+1=0)

Ng c T n

K32 CN Toán


×