Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
807,06 KB
Nội dung
1 Khóa lu n t t nghi p Tr ng i H c S ph m HƠ N i 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 Tốn Khóa lu n t t nghi p M CL C L i c m n ………………….……………………………………………… L i cam đoan ……………………………………………………………… M đ u ……………………………………………………………………… CH NG CÁC KI N TH C CHU N B 1.1 Phép đ ng d v n đ liên quan ……………………………………… 1.2 Tr ng h u h n ………………………………………………………… 1.3 Tr ng s (m r ng đ i s ) …………………………………………… 11 CH NG Mẩ I X NG 2.1 M t s thu t ng 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 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 Tốn Khóa lu n t t nghi p L IC M N hồn thành Khóa lu n t t nghi p c a 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 th y t tốn ng d ng, t t c th y cô b n sinh viên khoa toán Tr ng i h c s ph m Hà N i 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 th y cô b n sinh viên Hà n i, tháng n m 2010 Sinh viên th c hi n Ng c T n Ng c T n K32 CN Tốn Khóa lu n t t nghi p L I CAM OAN Tôi xin cam đoan n i dung khóa lu n hồn tồn k t qu nghiên c u c a riêng 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 Tác gi Ng c T n Ng c T n K32 CN Tốn Khóa lu n t t nghi p M U Lý 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 nhà quân s thiên tài c a La mư c đ i Julius Caesar Ngày m t mư không ch đ mà đ c dùng quân s ngo i giao c dùng r t nhi u 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 a m t mư th i đ i ngày nay, đông đ o chuyên gia đư đ u t cơng s c đ nghiên c u, tìm tòi nh ng u m i m 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 ng d ng, Mư đ i x ng có m t vai trò quan tr ng Mư đ i x ng h mư mà vi c l p mư gi i mư s d ng chung m t chìa khóa mư Các lo i mã đ i x ng n hình 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, g n s đ i c a lo i m t mã có tính b o m t cao mã AES Rijndael nghiên c u Trong đ tài đ t v n đ nghiên c u v vai trò c a toán h c lý thuy t m t mã nói chung th hi n m t s h mã đ i x ng nh DES, AES l y tên đ tài “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 v m t s h mư đ i x ng 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 Tốn Khóa lu n t t nghi p + Ph m vi: Tìm hi u v h mư đ i x ng tr ng đ n c s toán h c c a 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 k t qu c a s h c 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 m t thu t ng xa l Nh ng Vi t Nam nói đ n thu t ng nói đ n m t v n đ m i m đ i v i sinh viên 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” s đ c ti p c n v i m t l nh v c m i m c a toán h c nh ng đư có ng d ng hi u qu th c t Vi c th c hi n đ tài c ng 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 nghiên c u tốn nói riêng Ng c T n K32 CN Tốn Khóa lu n t t nghi p CH NG 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 t p s nguyên …, 2,1,0,1,2 N t p s t nhiên (t 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 ; ta c ng có th nói r ng a chia h t b , hay a m t c s c a b , ký hi u a | b Ta có m t s tính ch t sau: + N u a , b, cZ a | b a | bc + N u a | b b | c a | c + N u a | b a | c a | b c + N u a | b a khơng chia h t c a khơng chia h t c b c b c * S t nhiên l n h n mà không chia h t cho b t k s t nhiên khác ngồi đ * t p c g i s nguyên t c chung l n nh t c a s t nhiên a b s l n nh t c chung c a s đó, đ c ký hi u gcd (a , b) hay đ n gi n a , b Nh v y, n u d | a d | b d | gcd a , b * Khi s t nhiên có c chung l n nh t ta nói r ng chúng nguyên t 1.1.2 Phi hàm EULER V i nN s l v in đ ng s t nhiên bé h n n nguyên t c kí hi u (n) Hàm (n) đ c g i phi hàm Euler Ví d : (5) , (6) , (7) Ng c T n K32 CN Tốn 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 b sai khác 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 s nguyên đ ng d v i theo modulo m t p l p đ c kí hi u Zm ch a m ph n t M i l p t p Zm có m t s n m 0,1, , m 1 m i s nguyên đo n đ 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) b a (mod m) ; N u a b (mod m) b c (mod m) a c (mod m) ; N u a b (mod m) , c d (mod m) a c b d (mod m) , a c b.d (mod m) Nh v y ta có th t th c hi n phép tính s h c thơng th ng t p Zm N u x m t ph n t Zm gcd ( x, m) t n t i s u, v cho u.x v.m 1, t c u.x 1(mod m) , nên ng đ o ( Zm ) u th i ta nói x có ngh ch ng ký hi u ph n t ngh ch đ o x1 hay T p ph n t Zm mà có ngh ch đ o th ng đ x c ký hi u Z*m rõ ràng t p có s ph n t ngh ch đ o b ng (m) , t p phép c ng, tr , nhân ta có th đ a vào phép chia N u a b (mod m) , c d (mod m) v i gcd (c, m) a c 1 b.d 1 (mod m) Ng c T n K32 CN Toán 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ó 1 4(mod 9) cho phép chia c a cho (trong Z*9 ) đ c th c hi n nh sau: 2.7 1 4.2 8(mod9) Ta đ ng nhiên c ng có 7.8(mod9) 7.8 56 6.9 1.1.3.2 Ph ng trình đ ng d n tính ax b (mod m) Khi gcd (a , m) (t c a ph n t c a Z*m ) ta có nghi m x a 1b (mod m) Khi gcd (a , m) g có kh n ng x y ra: + ph ng trình có nghi m g chia h t b , r ng y ph trình đư cho t ng đ ng v i ph ng ng trình (a / g ) x b / g (mod m / g ) h s a / g s nguyên t v i m / g + ph ng trình vơ nghi m n u g khơng chia h t b , hi u c a s chia h t cho g khơng th 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 m t s nguyên b t kì, t p l p đ ng d modulo p t c Z p ta có th th c hi n đ c phép tính c ng, tr , nhân Khi p s nguyên t v i m i ph n t khác không Z p ta ln tìm đ c ph n t ngh ch đ o 1 Z p theo ngh a 1 1(mod p) có th th c hi n đ c phép chia (cho ph n t khác ), theo ngh a sau: : 1 Khi Z p có c u trúc c a m t tr tr ng F p T p ph n t khác c a tr v i phép nhân đ Ng c T n ng ta kí hi u tr ng ng l p thành m t nhóm đ i c kí hi u 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, nói đ n tr ng F p hay nhóm F p* ta ln hi u r ng p m t s nguyên t Chú ý : N u p khơng ngun t v n có th đ nh ngh a m t t p bao g m ph n t kh ngh ch c a Z p c ng ký hi u Z *p M t ph n t g F p* đ c g i ph n t sinh c a nhóm F p* n u nh t p l y th a c a g c ng nhóm này, t c t p sau trùng g , g , , g p1 1,2, , p 1 (khơng tính đ n th t ) Rõ ràng, m t ph n t ch có th ph n t sinh m i l y th a c a v i b c nh h n ( p 1) , b c c a nhóm, khơng ph i đ n v Ng c l i, m t ph n t mà có l y th a b c (nh h n h n ( p 1) ) b ng đ n v khơng th ph n t sinh D th y r ng m t ph n t mà khơng sinh c nhóm l y th a c a c ng s sinh m t nhóm và, theo Lagrange, ta bi t r ng b c c a m t nhóm ph i ph n t có nhóm ch a (t c cc as l nh lý ng c c a ( p 1) ) Nh v y mu n ki m tra xem m t ph n t có ph i ph n t sinh hay không ch c n nâng lên l y th a v i b c c c a ( p 1) xem xét: n u t t c l y th a đ u khác ph n t sinh (ng Ng i ta ch ng minh đ c l i khơng ph i) c r ng n u g m t ph n t sinh c a nhóm F p* b m t s nguyên t v i ( p 1) g b c ng ph n t sinh c a nhóm F p* Cho nên, s ph n t sinh c a nhóm F p* b ng s s nguyên t v i ( p 1) t c b ng ( p 1) Ng c T n K32 CN Tốn 31 Khóa lu n t t nghi p Khóa mã (Cipher Key): c ng đ ch nh t v i dòng s l c mơ t t ng t b i m t m ng hình ng c t b ng đ dài khóa chia cho 32, ký hi u Nk Do đ dài kh i đ c l p v i đ dài khóa Nb Nk khác D i minh h a m t m ng tr ng thái (v i Nb=6) m t m ng khóa mư (v i Nk=4) a00 a01 a02 a03 a04 a05 k00 k01 k02 k03 a10 a11 a12 a13 a14 a15 k10 k11 k12 k13 a20 a21 a22 a23 a24 a25 k20 k21 k22 k23 a30 a31 a32 a33 a34 a35 k30 k31 k32 k33 Hình 1: Ví d v m ng tr ng thái (v i Nb=6) vƠ m ng khóa mƣ (v i Nk=4) Trong m t s tr ng h p ng i ta c ng bi u di n kh i d i d ng m ng m t chi u, m i ph n t c a m ng không ph i m t byte mà m t t chi u đ thu n ti n cho vi c đánh ch s , byte m ng m t c đánh liên ti p t đ n ( Nb-1) m ng tr ng thái, t đ n ( Nk-1) m ng khóa mư u vào (input) đ u (output) t i “c a giao ti p” c a thu t toán s nh ng m ng m t chi u t ng ng v i kh i, v i byte đ c đánh th t t đ n (4 Nb-1) Các kh i có đ dài 16,24 hay 32 byte (tu theo vi c l y đ dài kh i 128,192 hay 256 bit), ch s cho ph n t đ đánh t ng ng, d i 15,0 23 hay 31 Khoá mã c ng đ byte đ c c xem xét nh m ng m t chi u v i ph n t c đánh ch s t đ n (4 Nk-1), c ng có đ dài 16,24 Ng c T n K32 CN Tốn 32 Khóa lu n t t nghi p hay 32 byte, ph n t c a m ng c ng đ c đánh ch s t ng ng, d i 15,0 23 hay 31 T ng kh i d li u đ u vào đ c x p thành m ng hình ch nh t (hình v 1) theo th t s p x p đ y t ng c t (t xu ng) t trái qua ph i, ngh a đ c ánh x l n l t vào v trí: a0,0, a1,0,a2,0,a3,0,a0,1,a1,1,a2,1,a3,1, ho c k0,0, k1,0,k2,0,k3,0,k0,1,k1,1,k 2,1,k3,1, (tu thu c vào v n b n hay khoá mã) Và sau q trình mã hóa t ng kh i d li u đ u c ng đ c l y t m ng theo th th c t ng ng Nh v y, n u m t byte có ch s m ng m t chi u n ch s m ng ch nh t (2 chi u) (i, j ) ch s s tho mãn quan h sau đây: i n mod ; n i j ; j n / 4 Rõ ràng, ch s i c ng ch s c a byte t (vect 4-byte), j c ng ch s c a t lòng m t kh i S l ng vòng thu t toán Rijndael, ký hi u Nr, đ m t kh i t ng quan kh ng khít v i đ dài kh i đ dài khoá, t c v i giá tr Nb Nk theo b ng t Hình 2: T ng quan sau đây: Nr Nb=4 Nb=6 Nb=8 Nk=4 10 12 14 Nk=6 12 12 14 Nk=8 14 14 14 ng quan gi a s l Ng c T n c xác đ nh ng vòng v i đ dài kh i đ dài khố K32 CN Tốn 33 Khóa lu n t t nghi p Ta có th thu g n b ng m t công th c Nr= maxNk, Nb, nh v y s l ng vòng m t hàm theo đ dài kh i đ dài khoá 2.2.3.3.2 Các phép bi n đ i m t vòng Tr c h t ta đ a phép bi n đ i c b n sau đó, c s phép bi n đ i , ta trình bày thu t tốn bi n đ i c a m i vòng Phép th byte (Bytesub transformation) ây phép phi n đ c th c hi n m t cách đ c l p t ng byte c a tr ng thái H p thay th (hay g i S-box) kh ngh ch đ c thi t l p c s tích c a phép toán sau: Phép l y byte ng phép nhân tr c thay th m i byte b ng ngh ch đ o c a (theo ng byte GF (28 ) ); Phép bi n đ i affine, theo byte ' x' " x0 x1 x2 x3 x4 x5 x6 x7 " (k t qu có đ c sau phép l y byte ng c đư nêu trên), đ c chuy n thành byte ' y ' " y1 y2 y3 y4 y5 y6 y7 " xác đ nh theo công th c sau: y0 1 y 1 y2 1 y3 1 y 1 4 y5 0 y 0 6 y7 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 x0 1 x1 1 x 0 x3 0 x4 0 x5 1 x6 1 x7 0 Nh v y, phép th byte bi n t ng byte , j (trong m ng tr ng thái ch nh t) thành t ng byte bi , j (trong m ng tr ng thái m i, c ng hình ch nh t) m t cách đ c l p v i S đ th c hi n c a nh sau: Ng c T n K32 CN Tốn 34 Khóa lu n t t nghi p a00 a01 a02 a03 a04 a05 b00 b01 b02 b03 b04 b05 a10 a11 a12 a13 a14 a15 b10 b11 b12 b13 b14 b15 S-box a20 a21 a22 a23 a24 a25 b20 b21 b22 b23 b24 b25 a30 a31 a32 a33 a34 a35 b30 b31 b32 b33 b34 b35 Do phép bi n đ i affine v i ma tr n nh kh ngh ch, phép thay th byte c ng kh ngh ch (phép toán ng c a m t phép bi n đ i affine v i ma tr n ng theo phép nhân tr c c a c ng tích c m t phép l y byte ngh ch đ o ng byte GF (28 ) ) Phép th byte có th vi t thành m t hàm l nh v i tên sau đây: Bytesub (State) Phép d ch hàng (ShiftRow transformation) Trong phép bi n đ i này, hàng m ng tr ng thái đ xoay vòng sang phía trái, nh ng s l c d ch ng v trí d ch chuy n c a hàng không d ch chuy n gi ng Hàng (trên m ng) đ ng yên không d ch chuy n Các hàng th 1, th th đ trái theo s l ng byte t c d ch vòng sang phía ng ng C1,C2,C3 xác đ nh m i t ng quan v i đ dài kh i theo b ng sau đây: Nb C1 C2 C3 Phép d ch hàng đ c th c hi n b ng hàm ShiftRow (State) Rõ ràng hàm kh ngh ch ngh ch đ o c a c ng m t phép bi n đ i (tác đ ng lên m ng tr ng thái) có b n ch t gi ng nh nó, ch ng h c ng d ch chuy n Ng c T n K32 CN Tốn 35 Khóa lu n t t nghi p Phép tr n c t (MixColumn transformatinon) Ta có th xem m i c t c a m ng tr ng thái nh m t t , hay c ng m t ph n t vành đa th c mà ta đư xét ph n Nh v y ta có th đ a m t phép bi n đ i c t thông qua phép nhân đa th c bi u di n c t v i m t đa th c c đ nh nh sau: c( x) '03' x3 '01' x2 '01' x '02' Ta bi t r ng phép nhân c ng phép bi n đ i vect c t b ng phép nhân v i m t ma tr n c đ nh, có hàng đ s c sinh t vect h c a đa th c c ( x) sau phép xoay vòng sang trái c th 02 01 c 01 03 03 02 01 01 01 03 02 01 01 01 03 02 Xét v b n ch t phép nhân vect (có h ng) m t c t m ng tr ng thái v i c t h s c a đa th c c ( x) Cho nên phép bi n đ i đ c g i phép tr n c t s đ c th c hi n b ng l nh có tên MixColumn (State) Tác đ ng c a t ng c t c a m ng tr ng thái đ c minh h a hình v sau: a00 a01 a02 a03 a04 a05 a10 a11 a12 a13 a14 a15 b00 b01 b02 b03 b04 b05 C ( x) b10 b11 b12 b13 b14 b15 a20 a21 a22 a23 a24 a25 b20 b21 b22 b23 b24 b25 a30 a31 a32 a33 a34 a35 b30 b31 b32 b33 b34 b35 Ta bi t r ng phép nhân vành t phép nhân đa th c theo modulo x4 1, đa th c c ( x) nguyên t v i đa th c x4 nên phép nhân v i c ( x) (c ng t c phép tr n c t) m t toán t kh ngh ch Ng c T n K32 CN Toán 36 Khóa lu n t t nghi p Rõ ràng, ngh ch đ o c a m t phép tr n c t c ng m t phép bi n đ i t ng t nh nó, hay c ng m t phép nhân v i m t đa th c c đ nh d (x) a th c c ng ph n t ngh ch đ o c a đa th c c (x) theo phép nhân đa th c modulo x4 (ph n t ngh ch đ o t n t i tính nguyên t gi a c (x) x4 1) Có th tính đ c d ( x) '0 B' x3 '0 D' x2 '09' x'0 E ' C ng v i khố c a vòng (Round Key addition) Trong phép bi n đ i m ng tr ng thái đ b ng phép lo i bit Khố c a vòng đ c c ng v i khố c a vòng c sinh t khoá mã theo m t quy trình riêng M c dù khố mã có th có đ dài khác v i đ dài kh i, nh ng quy trình sinh khố vòng ln đ m b o cho đ dài c a khố vòng đ đ dài kh i, phép lo i bit th c hi n đ c phù h p v i c Phép c ng khố vòng m t hàm bi n s đ c th c hi n b i l nh có tên AddRoundKey (state, RoundKey) 2.2.3.3.3 Thu t toán bi n đ i m i vòng Các phép bi n đ i m t vòng thơng th ng đ c môt t nh sau: Round ( State, RoundKey) Bytesub ( State); shiftRow( State); Mixcolumn ( State); AddRoundKey ( State, RoundKey); Riêng vòng k t thúc (Final Round) ta không s d ng phép tr n c t, đ c mô t nh sau đây: Ng c T n K32 CN Tốn 37 Khóa lu n t t nghi p FinalRound ( State, RoundKey) Bytesub ( State); ShifRow( State); AddRound ( State, RoundKey); 2.2.3.3.4 Quy trình sinh khố ây quy trình xu t chìa khố cho t ng vòng t chìa khố mã ban đ u G m công đo n: M r ng chìa khố ch n chìa khố cho vòng M r ng chìa khố (Expanded Key) Chìa khố m r ng m t m ng n tính c a t , Nk t đ u tiên chìa khố mã, t ti p theo s đ h i thay đ i theo t phía tr c xác đ nh truy c Quy t c truy h i thay đ i theo đ dài c a chìa khố mã, xác h n ph thu c vào vi c giá tr Nk l n h n hay bé h n Tr c vào trình bày quy trình m r ng khố c th , ta đ a m t s hàm b tr nh sau : + SuByte(W) hàm th byte, bi n m t t thành m t t m i b ng cách áp d ng h p thay th (S-box) lên t ng byte c a t + RotByte(W) hàm xoay byte, bi n m t t thành m t t m i, b ng cách cho byte t xoay vòng sang trái v trí, t c bi n (a , b, c, d ) thành (b, c, d , a ) Theo ngơn ng vành t hàm c ng phép nhân v i x + Rconi h ng c a vòng cho d i d ng t , đ c xác đ nh theo công th c Rconi ( RCi, '00' , '00' , '00' ) RCi m t byte đ c xác đ nh theo quy t c truy h i nh sau: RC1 '01' Ng c T n K32 CN Toán 38 Khóa lu n t t nghi p RCi '02' RCi 1 , v i i t tr lên, Trong phép nhân byte () đư đ L u ý '02' ph n t c đ nh ngh a tr ng byte ng v i đa th c x , th c t ta có RCi xi 1 Quy trình m r ng chìa khố cho tr Trong tr ng h p Nk ng h p này, Nk t đ u tiên c a khoá m r ng đ b ng khoá mã Các t ti p theo Wi , v i i>Nk đ c l y c xác đ nh nh sau: Khi i không ph i b i c a NK Wi Wi - Nk Wi - 1 , ký hi u c a phép XOR (phép lo i bit ) Khi i b i c a Nk Wi Wi - NK SubByte( RconByte(Wi - 1)) Rconi / Nk Quy trình m r ng chìa khố cho tr ng h p Nk>6 So v i quy trình trên, ch có m t thay đ i nh xét thêm tr (i 4) b i c a Nk Trong tr ng h p ng h p l y Wi Wi - NK SubByte(Wi - 1) Nh n xét : C quy trình đ u cho phép sinh m t d i khoá m r ng g m t Wi, i 1,2,3, v nguyên t c có th kéo dài vơ Quy trình m r ng khố đ c g i b ng hàm ; KeyExpansion(CipherKey,Expandedkey), Ch n chìa khố cho vòng (Round Key Selection) Chìa khố cho m i vòng đ c ch n cho đ dài c a ph i phù h p v i đ dài c a m ng tr ng thái (t c đ dài kh i) N u tính theo s l ng t đ dài Nb Cho nên cách l y khố t nhiên, cho vòng th i ch n t d i t WNb * i đ n W Nb * (i 1) Ng c T n K32 CN Tốn 39 Khóa lu n t t nghi p 2.2.3.3.5 Thu t toán l p mã Thu t toán mư hóa Rijndael bao g m : Kh i t o b ng vi c c ng v i khóa vòng; Th c hi n (Nr-1) vòng bi n đ i thông th ng; Th c hi n vòng k t thúc ; Trong Nr đ c xác đ nh m i t ng quan v i đ dài kh i đ dài khóa nh hình V i hàm KeyExpansion (), AddRoundKey (), Round (), finalRound () đư đ c đ a ph n trên, ta có th mơ t thu n toán Rijndael nh sau: Rijndael ( State, CipherKey) KeyExpansion (CipherKey, ExpandedKey); AddRoundKey ( State, ExpandedKey); For (i 1; i Nr ; i ) Round ( State, ExpandedKey Nb * i ); Finalround ( State, EXpandedKey Nb * Nr ); N u nh q trình m r ng chìa khóa đư đ c th c hi n tr rõ thông qua bi n ExpandedKey, thu t tốn Rijndael có th đ c đ nh c mô t g n h n nh sau : Rijndael ( State, CipherKey) AddRoundKey ( State, ExpandedKey); For (i 1; i Nr ; i ) Round ( State, ExpandedKey Nb * i ); Finalround ( State, EXpandedKey Nb * Nr ); Ng c T n K32 CN Tốn 40 Khóa lu n t t nghi p 2.2.3.3.6 Thu t toán gi i mã Ta bi t r ng t t c phép bi n đ i s d ng trình l p mư đ u kh ngh ch, nên v n đ gi i mư khơng g p khó kh n v nguyên t c Thêm n a, phép bi n đ i ngh ch đ o c ng có b n ch t t ng t phép bi n đ i g c (ch khác v tham s ), t c đ l p mư gi i mư nh Thông th phép bi n đ i ng ng, ngh ch đ o c a m t vòng bi n đ i s m t dưy c c a phép bi n đ i vòng, theo th t ng cv i th t đư th c hi n phép l p mư Theo đó, q trình ngh ch đ o, phép bi n đ i phi n Bytesub s ph i th c hi n sau cùng, phép d ch hàng ph i th c hi n sau phép tr n c t Nh v y, n u tri n khai thu t tốn theo hình th c “b ng tra” (table-lookup) phép gi i mư khơng có đ b ng tra gi ng nh phép l p mư ây u mà nh ng ng c mơ hình i sáng l p Rijndael đư t o c u trúc khéo léo gi ng nh q trình l p mư, b n thân m i phép bi n đ i đ c thay b ng ngh ch đ o c a nó, v i m t s thay đ i phù h p q trình sinh khóa ây u s đ c làm sang t ph n Ngh ch đ o c a ph ây ph ng án Rijndael v i vòng ng án rút g n, ch g m có vòng: m t vòng thơng th ng m t vòng k t thúc N u ký hi u InvA ngh ch đ o c a phép bi n đ i A ngh ch đ o c a vòng thơng th ng đ Ng c T n c mơ t nh sau: K32 CN Tốn 41 Khóa lu n t t nghi p InvRound State, RoundKey AddRoundKey State, RoundKey ; InvMixColumn State ; InvShiftRow state ; InvBytesub State ; Và ngh ch đ o c a vòng k t thúc là: InvRound State, RoundKey AddRoundKey State, RoundKey ; InvShiftRow State ; InvBytesub State ; N u h p l i ta s có ngh ch đ o c a ph ng án Rijndael vòng AddRoundKey State, ExpandedKey * Nb ; InvShiftRow State ; InvBytesub State ; AddRoundKey State, ExpandedKey Nb ; InvMixColumn State ; InvShiftRow State ; InvBytesub State ; AddRoundKey State, ExpandedKey ; Chú ý r ng phép th byte ( ByteSub ) th c hi n bi n đ i t ng byte m t cách đ c l p (không ph thu c vào v trí c a byte), phép d ch hàng (ShiftRow) không làm thay đ i giá tr c a t ng byte Cho nên phép bi n đ i Ng c T n K32 CN Tốn 42 Khóa lu n t t nghi p có th hốn v cho mà không làm nh h ng đ n trình bi n đ i chung Ti p theo, l u ý r ng n u K, S t tr ng thái, C ma tr n t ng ng t khóa ng ng v i phép tr n c t, ký hi u phép lo i bit , ký hi u phép nhân m t t v i ma tr n (theo phép tr n c t), ta d dàng th y r ng Kˆ K C K S C K C S C S C Kˆ , ng th c cho th y r ng có th thay th vi c c ng v i khóa r i tr n v i c t C b ng vi c tr n v i c t C r i c ng v i khóa Kˆ , khóa Kˆ bi n đ i c a khóa K sau phép tr n c t Vì phép tr n c t ng c ( InvMixColumn) c ng l i m t phép tr n c t, n u coi C phép tr n c t ng c đ t InvRoundKey InvMixColumn ( RoundKey), t l p lu n ta suy r ng có th thay th AddRoundKey State, RoundKey ; InvMixColumn State ; b ng: InvMixColumn State ; AddRoundKey State, InvRoundKey ; Suy ngh ch đ o c a ph ng án Rijndael vòng t ng đ ng v i dưy phép bi n đ i sau: Ng c T n K32 CN Tốn 43 Khóa lu n t t nghi p AddRoundKey State, ExpandedKey * Nb ; InvBytesub State ; InvShiftRow State ; InvMixColumn State ; AddRoundKey State, I _ ExpandedKey Nb ; InvBytesub State ; InvShiftRow State ; AddRoundKey State, ExpandedKey ; Trong I _ ExpandedKey khóa gi mư, đ c tính b ng cách l y InveMixColumn c a chìa khóa cho t ng vòng quy trình l p mư Nh v y, v m t c u trúc, trình gi i mư hoàn toàn t l p mư Khác bi t ch ch t ng phép toán đ ng t nh trình c thay th b ng ng ch đ o c a Ng c T n K32 CN Tốn 44 Khóa lu n t t nghi p K T LU N Qua đ tài “C s toán h c c a mư đ i x ng”, chúng tơi đư tìm hi u v m t s h mư đ i x ng n hình nh DES, AES Th hi n qua: - Mô t phép bi n đ i, quy trình sinh khóa, mơ t ánh x , quy trình ho t đ ng h mư DES rút g n đ y đ - Các công c chu n b nh (Tr ng byte, a th c v i h s byte), thu t tốn bi n đ i, quy trình sinh khóa, thu t tốn l p mư thu t toán gi i mư h mư AES Và đ c bi t th y rõ đ c vai trò c s c a toán h c xây d ng h m t mư xu t: Trong ph m vi nghiên c u cho sinh viên, có th ti p t c tri n khai l p trình cho h mư v i nh ng ngơn ng l p trình b c cao đ ng d ng nh ng thu t toán th c t nh b o m t thông tin sinh viên, b o m t đ thi … nh ng m t kho ng th i gian không cho phép Do th i gian nghiên c u h n ch nên ch a nghiên c u đ c nh ng v n đ Sau đ tài chúng tơi có th ti p t c th c hi n đ c nh ng v n đ đư đ Ng c T n c đ t K32 CN Tốn 45 Khóa lu n t t nghi p TẨI LI U THAM KH O 1 Ph m Huy i n, Hà Huy Khối, Mã hóa thơng tin : C s Tốn h c ng d ng, Vi n Toán h c Vi n Khoa h c Công ngh Vi t Nam 2 Hà Huy Khoái, Ph m Huy i n, S h c Thu t toán : C s lý thuy t Tính tốn th c hành, Nhà xu t b n HQG Hà N i, 2002 3 M MATSUI, Linear Cryptanalysis Method for DES Cipher, Advances in Cryptology – EUROCRYPT ‟93 Proceedings, Springer-Verlag, 1994, pp.383397 4 B SCHINELER, Applied Cryptography, New York : John Wiley $ Sons, Inc, 1996 Ng c T n K32 CN Toán ... mã đ i x ng n hình 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, g n s đ i c a lo i m t mã có tính b o m t cao mã AES Rijndael nghiên c u Trong... Công c chu n b Ta xây d ng lo i phép toán m i: lo i phép toán t p byte (8 bit) lo i phép toán vect g m byte, hay g i t Các phép toán m c byte: Trong thu t toán Rijndael s đ thông qua phép bi... trò c a tốn h c lý thuy t m t mã nói chung th hi n m t s h mã đ i x ng nh DES, AES l y tên đ tài “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