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 , bZ 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, cZ 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 nN 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à x1 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 p1 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 n1 xn1 ... 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 n1 xn1 ... 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 ... bn1 n1 | 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