- 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.
Trang 2M C L 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
Trang 3L I C M N
hoàn thành Khóa lu n t t nghi p c a mình em đư nh n đ c s
h ng d n, ch b o t n tình c a TS.Tr n Minh T 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
Trang 4L 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
Trang 5M U
Lý do ch n đ tƠi
Có th nói, m t mư đư xu t hi n t th i c đ i Ng i ta cho r ng,
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 đ c dùng trong quân s và ngo i giao
mà còn đ 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”
Trang 6+ 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 t l n t p d 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
Trang 7
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 av i m t s nguyên khác ; khi đó ta c ng có th nói r ng a chia h t
Trang 81.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à Z m và ch a đúng m ph n t M i l p trong
t p Z m có đúng m t s n m trong 0,1, ,m cho nên m i s nguyên 1
trong đo n này đ c xem đ i di n cho m t l p c a t p Z m
Trang 9Ví d : V i Z9 0,1,2,3, ,8 , *
9 1,2,4,5,7,8
và cho phép chia c a 2 cho 7 (trong *
Trang 10 , 2, , 11,2, , 1
pg
ph n t có trong nhóm ch a nó (t c là c c a (p1)) 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 (p1) 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 c l i thì không ph i)
Ng i ta ch ng minh đ c r ng n u g là m t ph n t sinh c a nhóm
*
p
F còn b là m t s nguyên t cùng nhau v i (p1) thì gb c ng là ph n t sinh c a nhóm *
p
F Cho nên, s các ph n t sinh c a nhóm *
p
F đúng b ng s các s nguyên t v i (p1) t c là b ng (p1)
Trang 11nh ng ng d ng vào tin h c s đ c nói đ n ph n sau)
1.2.2 Tr ng F2r
ây c ng là lo i tr ng có h u h n ph n t , nh ng có b n ch t khác
bi t so v i lo i tr 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 F 2 (đư xét 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 1
1
1
ax
Ví d : x2 x2, 2 2 là nh ng đa th c b t kh quy trên tr ng s h u t Q,
nh ng trên tr ng s th c R thì ch có đa th c x2 2 là đa th c b t kh quy
Trên tr ng F ta có 2 x2 1 là kh quy ( vì 2 2
)1(
Trang 12quy) Trong t p đa th c b c 3 ch có hai đa th c b t kh quy là
1,
Ví d : N u l y đa th c x3 x1 (b t kh quy) làm modulo thì t p
)
1(
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 ch a đúng d
Trang 13l y th a c a nó v i b c
2
)1( d p
S th a mưn ph ng trình f()0 đ 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
l p thành m t tr ng s (v i các phép tính quen thu c trên tr ng s h u t )
M i ph n t c a tr 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
Trang 14đ 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
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 4 3
1i ii ) ngoài ra 1
,
1
,
i 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 ab, 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.36(1 5).(1 5) ta không suy ra đ c 2 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
Trang 15Ta 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 ng s có nhi u khía c nh t t T p các s nguyên đ i s trên tr 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 abi a b| , Z Ng i ta ch ng minh đ c r ng n u s nguyên p (d ng) th a mưn p3(mod 4) thì c ng
là s nguyên t trên Z( )i N u p1(mod 4) thì ta có th vi t:
Trang 16- 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
Trang 17ti 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 đ c nh các thi t b đi n t trên m t đ t ho c t v tinh Vì th , ph 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 c khi truy n đi và và vi c gi i mư các thông tin nh n đ c s t o nên m t s khó kh n: gi m t c đ đ ng truy n tin, t ng chi phí… M t h mư lý t ng là m t h mư đ m b o đ 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 đ c
th c hi n trên các kh i d li u có đ dài đ l n và đ c thông qua nhi u vòng l p t 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 đ c k t
h p v i khóa con trong m t s phép bi n đ i chung Tr c khi đi vào mô t ta làm quen v i m t s phép bi n đ i s đ c dùng t i trong công đo n này:
Phép hoán v :
Trang 18Ký 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 v trí
c a t a đ đó L u ý r ng các 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 1
k
Ví d : P8(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 , vì 1 là ánh 2
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
Trang 19Trong 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
8 (5, 2,6,3,7, 4,9,8)
S đâ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à r r r0 1 2 r9 0,1 , ta áp d ng 10P và thu đ c
0 1 2 3 4 5 6 7 8 9 2 4 1 6 3 9 0 8 7 5 0 1 2 3 4 5 6 7 8 9
P r r r r r r r r r r r r r r r r r r r r s s s s s s s s s s
ta phân k t qu thành 2 n a là (s s s s s0 1 2 3 4)(s s s s s 5 6 7 8 9) và d ch m i n a sang trái 1 bit (đ làm khóa con th nh t) ta có đ c
1 2 3 4 0 6 7 8 9 5 1 2 3 4 0 6 7 8 9 5 0 1 2 3 4 5 6 7 8 9
(s s s s s )(s s s s s )s s s s s s s s s s t t t t t t t t t t
ti p t c theo 8S , ta nh t 8 ph n t và s p x p theo th t đư đ nh ra trong đó
là t t t t t t t t 5 2 6 3 7 4 9 8
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à t t t t t t t t t t Sau khi 0 1 2 3 4 5 6 7 8 9 tách nó ra thành hai n a và cho d ch
đ c sinh ra t m t ánh x nào đó thay đ i theo tham s vòng
+ Toán t T 1 (thi t l p cho vòng th nh t) đ c xây d ng nh sau:
Trang 20Tr 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à
4, 5, 6, 7
n n n n đ c n ra thành 8 bit b ng cách cho nó xoay vòng sang ph i 1 bit đ đ c 4 bit đ u (là n n n n ) 7, 5, 6, 4 r i sau đó s nh n đ c xoay vòng
ng c v bên trái 2 bit đ đ c 4 bit sau n n n n5, 6, 7, 4 Khi đó xâu s nh phân
8 bit thu đ c sau phép n là n n n n n n n n7, 4, 5, 6, 5, 6, 7, 4, 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
7 5
nn
nnSau 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ó
nh (p p00 03), s là s ch hàng, còn s t o các bit n m trong vùng “đóng
c c”, nh (p p01 02), 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 ng đ c cho
s n đ c g i là các h p thay th (S-box), và trong ph ng án DES thu g n chúng là:
Trang 21c 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à
Trang 22Trong đó IP là phép hoán v ban đ u đ c cho b i vect
(IP T T IP) IP T T 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 i ta dùng 16 vòng (thay cho 2 vòng trong
ph 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 56P 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 T i
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 :
(n ,n , ,n )