BÀI TIỂU LUẬN- MÃ HÁO DỮ LIỆU VÀ ỨNG DỤNG

10 218 0
BÀI TIỂU LUẬN- MÃ HÁO DỮ LIỆU VÀ ỨNG DỤNG

Đang tải... (xem toàn văn)

Thông tin tài liệu

TIỂU LUẬN Phần 1 : Hệ mã đối xứng 1. 1. Mã hóa : - Chuỗi cần mã : trantanhaibatribentre 1. 1. 1. Mã Ceasar : k = 5 - Bảng mã tương ứng với k = 5 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 a b c d e f g h i j k l m f g h i j k l m n o p q r 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 n o p q r s t u v w x y z s t u v w x y z a b c d E - Chiếu tương ứng từng cột ta có quy tắc mã hóa như sau : a = f, b = g, c = h, , y = d, z = e. - Áp dụng quy tắc mã hóa vào chuỗi cần mã hóa, ta có bảng sau : t r a n t a n h a i b a t r y w f s y f s m f n g f y w i b e n t r e n g j s y w j - Ta có kết quả mã hóa như sau : trantanhaibatribentre Ceasar → ywfsyfsmfngfywngjsywj 1. 1. 2. Mã Affine : a = 7 và b = 3 - Hàm mã hóa : Ta chọn n = 26 (bảng chữ cái tiếng Anh), mà gcd(26, 7) = 1 nên ta có hàm mã hóa cho từng ký tự là : E(x) = (ax + b) mod n - Lập bảng : 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 a b c d e f g h i j k l m 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 n o p q r s t u v w x y z - Chuỗi ban đầu có giá trị lần lượt là : 1 | P a g e t r a n t a n h a i b a t r 1 9 1 7 0 0 1 3 1 9 0 0 1 3 0 7 0 0 0 8 0 1 0 0 1 9 17 i b e n t r e 0 8 0 1 0 4 1 3 1 9 1 7 0 4 - Áp dụng hàm mã hóa cho từng ký tự : E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g) E(17) = 7 . 17 + 3 mod 26 = 18 mod 26 (tương ứng ký tự s) E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d) E(13) = 7 . 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q) E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g) E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d) E(13) = 7 . 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q) E(07) = 7 . 07 + 3 mod 26 = 00 mod 26 (tương ứng ký tự a) E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d) E(08) = 7 . 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h) E(01) = 7 . 01 + 3 mod 26 = 10 mod 26 (tương ứng ký tự k) E(00) = 7 . 00 + 3 mod 26 = 03 mod 26 (tương ứng ký tự d) E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g) E(17) = 7 . 17 + 3 mod 26 = 18 mod 26 (tương ứng ký tự s) E(08) = 7 . 08 + 3 mod 26 = 07 mod 26 (tương ứng ký tự h) E(01) = 7 . 01 + 3 mod 26 = 10 mod 26 (tương ứng ký tự k) E(04) = 7 . 04 + 3 mod 26 = 05 mod 26 (tương ứng ký tự f ) E(13) = 7 . 13 + 3 mod 26 = 16 mod 26 (tương ứng ký tự q) E(19) = 7 . 19 + 3 mod 26 = 06 mod 26 (tương ứng ký tự g) E(17) = 7 . 17 + 3 mod 26 = 18 mod 26 (tương ứng ký tự s) E(04) = 7 . 04 + 3 mod 26 = 05 mod 26 (tương ứng ký tự f) - Ta có kết quả mã hóa như sau : trantanhaibatribentre Affine → gsdqgdqadhkdgshkfqgsf 1. 1. 3. Mã Reilfence : k = 5 dòng kẻ - Viết chuỗi cần mã hóa theo chiều dọc trên 5 dòng, ta được bảng sau (các ô trống, ta điền ký tự .) : 2 | P a g e T A B B E . R N A E . . A H T N . . N A R T . . T I I R . . - Ta có kết quả mã hóa như sau : trantanhaibatribentre Reilfence → tabbe.rnae ahtn nart tiir 1. 1. 4. Mã Vigence : - Khóa : hue, ta có bảng sau : a b c d e f g h i j k l m K1 h i j k l m n o p q r s t n o p q r s t u v w x y z K1 u v w x y z a b c d e f g a b c d e f g h i j k l m K2 u v w x y z a b c d e f g n o p q r s t u v w x y z K2 h i j k l m n o p q r s t a b c d e f g h i j k l m K3 e f g h i j k l m n o p q n o p q r s t u v w x y z K3 r s t u v w x y z a b c d - Chia chuỗi cần mã hóa theo bộ 3 để mã hóa, ta có bảng sau : t r a n t a n h a i b a t r K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 i b e n t r e K3 K1 K2 K3 K1 K2 K3 - Ta có kết quả mã hóa như sau : trantanhaibatribentre Vigence → aleuneubepvealmiyrali 1. 1. 5. Mã PlayFair : - Khóa : rachmieu - Tạo bảng sau để mã hóa : r a c h m i e u b d f g k l n o p q s t v w x y z 3 | P a g e - Chuỗi cần mã hóa được tách thành bộ 2 ký tự như sau (do độ dài chuỗi là 21, nên ta thêm 1 ký tự x vào cuối chuỗi) : tr an ta nh ai ba tr ib en tr ex - Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả : TR = OM IB = ED AN = MG EN = DG TA = PM TR = OM NH = LM EX = UW AI = RE BA = EH TR = OM - Ta có kết quả mã hóa như sau : trantanhaibatribentre PlayFair → ommgpmlmreehomeddgomuw 1. 2. Giải mã : - Chuỗi cần giải mã : trantanhaibatribentre 1. 2. 1. Mã Ceasar : - Chuỗi cần giải mã : ywfsyfsmfngfywngjsywj - Ta có bảng mã hóa như sau : 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 a b c d e f g h i j k l m f g h i j k l m n o p q r 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 n o p q r s t u v w x y z s t u v w x y z a b c d e - Chiếu tương ứng từng cột ta có quy tắc mã hóa như sau : a = f, b = g, c = h, , y = d, z = e. - Ta có kết quả giải mã như sau : ywfsyfsmfngfywngjsywj decrypt Ceasar → trantanhaibatribentre 1. 2. 2. Mã Affine : a = 7 và b = 3 - Chuỗi cần giải mã : gsdqgdqadhkdgshkfqgsf - Hàm mã hóa : Ta chọn n = 26 (bảng chữ cái tiếng Anh), mà gcd(26, 7) = 1 nên ta có hàm giải mã cho từng ký tự là : D(x) = a -1 (x – b) mod n - Lập bảng : 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 4 | P a g e a b c d e f g h i j k l m 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 n o p q r s t u v w x y z - Chuỗi ban đầu có giá trị lần lượt là : gsdqgdqadhkdgshkfqgsf g s d q g d q a d h k d g s 0 6 1 8 0 3 1 6 0 6 0 3 1 6 0 0 0 3 0 7 1 0 0 3 0 6 18 h k f q g s f 0 7 1 0 0 5 1 6 0 6 1 8 0 5 - Áp dụng hàm giải mã cho từng ký tự : D(06) = 7 -1 (06 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t) D(18) = 7 -1 (18 – 3) mod 26 = 17 mod 26 (tương ứng ký tự r) D(03) = 7 -1 (07 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a) D(16) = 7 -1 (24 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n) D(06) = 7 -1 (03 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t) D(03) = 7 -1 (16 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a) D(16) = 7 -1 (19 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n) D(00) = 7 -1 (06 – 3) mod 26 = 07 mod 26 (tương ứng ký tự h) D(03) = 7 -1 (18 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a) D(07) = 7 -1 (13 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i) D(10) = 7 -1 (16 – 3) mod 26 = 01 mod 26 (tương ứng ký tự b) D(03) = 7 -1 (19 – 3) mod 26 = 00 mod 26 (tương ứng ký tự a) D(06) = 7 -1 (17 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t) D(18) = 7 -1 (03 – 3) mod 26 = 17 mod 26 (tương ứng ký tự r) D(07) = 7 -1 (07 – 3) mod 26 = 08 mod 26 (tương ứng ký tự i ) D(10) = 7 -1 (02 – 3) mod 26 = 01 mod 26 (tương ứng ký tự b) D(05) = 7 -1 (03 – 3) mod 26 = 04 mod 26 (tương ứng ký tự e) D(16) = 7 -1 (15 – 3) mod 26 = 13 mod 26 (tương ứng ký tự n) D(06) = 7 -1 (06 – 3) mod 26 = 19 mod 26 (tương ứng ký tự t) D(18) = 7 -1 (07 – 3) mod 26 = 17 mod 26 (tương ứng ký tự r) D(05) = 7 -1 (05 – 3) mod 26 = 04 mod 26 (tương ứng ký tự e) - Ta có kết quả giải mã như sau : gsdqgdqadhkdgshkfqgsf decrypt Affine → trantanhaibatribentre 1. 2. 3. Mã Reilfence : - Chuỗi cần giải mã : tabbe.rnae ahtn nart tiir - Lập k = 5 nhóm có số ký tự bằng nhau : tabbe. rnae a htn na rt tii r - Điền các nhóm ký tự vào bảng sau để giải mã : t a b b e . 5 | P a g e r n a e . . a h t n . . n a r t . . t i i r . . - Dựa vào bảng trên, ta có kết quả giải mã như sau : tabbe.rnae ahtn nart tiir Re decrypt ilfence → trantanhaibatribentre 1. 2. 4. Mã Vigence : - Khóa : hue, ta có bảng sau : a b c d e f g h i j k l m K1 h i j k l m n o p q r s t n o p q r s t u v w x y z K1 u v w x y z a b c d e f g a b c d e f g h i j k l m K2 u v w x y z a b c d e f g n o p q r s t u v w x y z K2 h i j k l m n o p q r s t a b c d e f g h i j k l m K3 e f g h i j k l m n o p q n o p q r s t u v w x y z K3 r s t u v w x y z a b c d - Chia chuỗi cần mã hóa theo bộ 3 để mã hóa, ta có bảng sau : a l e u n e u b e p v e a l K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 K3 K1 K2 m i y r a l i K3 K1 K2 K3 K1 K2 K3 - Ta có kết quả giải mã như sau : aleuneubepvealmiyrali decrypt Vigence → trantanhaibatribentre 1. 2. 5. Mã PlayFair : - Khóa : rachmieu - Tạo bảng sau để giải mã : r a c h m i e u b d f g k l n o p q s t v w x y z - Chuỗi cần mã hóa được tách thành bộ 2 ký tự như sau (do độ dài chuỗi là 21, nên ta thêm 1 ký tự x vào cuối chuỗi) : 6 | P a g e om mg pm lm re eh om ed dg om uw - Chiếu từng cặp sau khi tách chuỗi vào bảng mã hóa, ta được kết quả : OM = TR ED = IB MG = AN DG = EN PM = TA OM = TR LM = NH UW = EX RE = AI EH = BA OM = TR - Ta có kết quả mã hóa như sau : ommgpmlmreehomeddgomuw decrypt PlayFair → trantanhaibatribentre Phần 2 : Hệ mã mũ 2. 1. Hệ mã mũ ElGamal : 2. 1. 1. Mã hóa : (tự chọn khóa k B > 10 và p = 101, g = 2) - Tên học viên – chuỗi cần mã hóa : M = hai - Lập bảng : 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 a b c d e f g h i j k l m 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 n o p q r s t u v w x y z - Chuỗi cần mã hóa sau khi tra vào bảng trở thành : M = 080109 (vì H = 08, A = 01, I = 09) - Ta có p = 101, g = 2, chọn S = 23, k B = 11 > 10 (yêu cầu của đề bài), vậy B K g = 2048 mod 101 = 28 mod 101 - A chuyển cho B bộ (g S , M. B SK g ) mod p = (2 23 , 80109 . 28 23 ) mod 101 - Tính toán : + 2 23 mod 101 = 2 10 .2 10 .2 3 mod 101 = 1024 . 1024 . 8 mod 101 = 14 . 14 . 8 mod 101 = 1568 mod 101 = 53 mod 101 + 80109 . 28 23 mod 101 : Ta có : 23 = 16 + 4 + 2 + 1 = 2 4 + 2 2 + 2 1 + 2 0 0 2 28 = 28 mod 101 1 2 28 = 28 . 28 mod 101 = 77 mod 101 2 2 28 = 77 . 77 mod 101 = 71 mod 101 3 2 28 = 71 . 71 mod 101 = 92 mod 101 4 2 28 = 92 . 92 mod 101 = 81 mod 101 7 | P a g e Vậy B SK g = 28 23 = 81 . 71 . 77 . 28 mod 101 = 93 mod 101 Từ đó ta có : 80109 . 28 23 = 80109 . 93 mod 101 = 74 mod 101 - A chuyển cho B cặp số : (53, 74) 2. 1. 2. Giải mã : - Cặp số mà B nhận được : (53, 74)= (g S , M. B SK g ) - Công thức : M = (M . B SK g ) . ( B SK g ) -1 mod 101. Ta chọn k B = 11. Vậy : ( B SK g ) -1 = (53 11 ) -1 , M . B SK g = 18 Ta có : 11 = 8 + 2 + 1 = 2 3 + 2 1 + 2 0 0 2 53 = 53 mod 101 1 2 53 = 53 . 53 mod 101 = 82 mod 101 2 2 53 = 82 . 82 mod 101 = 58 mod 101 3 2 53 = 58 . 58 mod 101 = 31 mod 101 Vậy 53 11 = 53 . 82 . 31 mod 101 = 134726 mod 101 = 93 mod 101 - Tìm ( B SK g ) -1 mod 101 = (93) -1 mod 101 101 = 1 . 93 + 8 1 = 3 - 1 . 2 93 = 11 . 8 + 5 = 3 - 1 . (5 - 1 . 3) = (-1) . 5 + 2 . 3 8 = 1 . 5 + 3 = (-1) . 5 + 2 . (8 - 1 . 5) = 2 . 8 + (-3) . 5 5 = 1 . 3 + 2 = 2 . 8 + (-3) . (93 - 11 . 8) = (-3) . 93 + 35 . 8 3 = 1 . 2 + 1 = (-3) . 93 + 35 . (101 - 1 . 93) = 35 . 101 + (-38) . 93 Mà 101 + (-38) = 63. Vậy ( B SK g ) -1 mod 101 = 63 mod 101 - Từ đó ta có : M = (M . B SK g ) . (( B SK g ) -1 ) = 74 . 63 mod 101 = 16 mod 101 Hay ta có thể viết lại là : M = 16 + k . 101. Với k = 793 ta có thể tính được M = 80109 là giá trị ban đầu. Tra vào bảng mã ta sẽ suy ra chuỗi ban đầu. 2. 2. Hệ mã RSA : - Tự chọn p, q sao cho p, q > 100 và gcd(p, q) = 1. Ta chọn : p = 103 và q = 107 2. 2. 1. Mã hóa : - Tính N = p * q = 103 * 107 = 11021  ( ) ( 1)( 1)N p qΦ = − − = (103 – 1)(107 – 1) = 10812 - Chọn e = 79, ta có (e, ( )NΦ ) = (79, 10812) = 1 - Dữ liệu ban đầu : HAI  80109 d = e -1 mod Φ(N) = 79 -1 mod 10812 10812 = 136 . 79 + 68 1 = 11 - 5 . 2 79 = 1 . 68 + 11 = 11 - 5 . (68 - 6 . 11) 68 = 6 . 11 + 2 = (-5) . 68 + 31 . 11 11 = 5 . 2 + 1 = (-5) . 68 + 31 . (79 – 1 . 68) = 31 . 79 + (-36) . 68 = 31 . 79 + (-36) . (10812 – 136 . 79) = (-36) . 10812 + 4927 . 79 Vậy d = 4927 mod 10812 Từ đó ta có 2 khóa : khóa công khai K p = (e, N) = (79, 11021) và khóa bí mật là K s = (d, p, q) = (4927, 103, 107) 8 | P a g e Mã hóa M = 80109 ta có công thức mã hóa C = M e mod N hay C = 80109 79 mod 11021 = 2962 79 mod 11021 79 = 64 + 8 + 4 + 2 + 1 = 2 6 + 2 3 + 2 2 + 2 1 + 2 0 2962 0 2 1803 = 1803 mod 11021 1 2 1803 = 1803 . 1803 mod 11021 = 10635 mod 11021 2 2 1803 = 10635 . 10635 mod 11021 = 5723 mod 11021 3 2 1803 = 5723 . 5723 mod 11021 = 9338 mod 11021 4 2 1803 = 9338 . 9338 mod 11021 = 92 mod 11021 5 2 1803 = 92 . 92 mod 11021 = 8464 mod 11021 6 2 1803 = 8464 . 8464 mod 11021 = 2796 mod 11021 Từ đó ta có : C = 1803 79 mod 11021 = 1803 . 10635 . 5723 . 9338 . 2796 mod 11021 = 2865154221576438120 mod 11021 C = 1889 mod 11021 2. 2. 2. Giải mã : - Ta có C = 1889 mod 11021, ta cần giải mã với khóa công khai là : K p = (e, N) = (79, 11021) - Công thức giải mã : M = C d mod N. Ta có C = 1889, N = 11021, ta cần tìm d : d = e -1 mod Φ(N) = 79 -1 mod 10812 10812 = 136 . 79 + 68 1 = 11 - 5 . 2 79 = 1 . 68 + 11 = 11 - 5 . (68 - 6 . 11) 68 = 6 . 11 + 2 = (-5) . 68 + 31 . 11 11 = 5 . 2 + 1 = (-5) . 68 + 31 . (79 – 1 . 68) = 31 . 79 + (-36) . 68 = 31 . 79 + (-36) . (10812 – 136 . 79) = (-36) . 10812 + 4927 . 79 Vậy d = 4927 mod 10812 Hay d = e -1 = 79 -1 mod 11021 = 4927 mod 11021 Từ đó ta có : M = 1889 4927 mod 11021 Ta có : 4927 = 4096 + 512 + 256 + 32 + 16 + 8 + 4 + 2 + 1 = 2 12 + 2 9 + 2 8 + 2 5 + 2 4 + 2 3 + 2 2 + 2 1 + 2 0 1889 0 2 5644 = 5644 mod 11021 1 2 5644 = 5644 . 5644 mod 11021 = 4046 mod 11021 2 2 5644 = 4046 . 4046 mod 11021 = 3931 mod 11021 3 2 5644 = 3931 . 3931 mod 11021 = 1319 mod 11021 4 2 5644 = 1319 . 1319 mod 11021 = 9464 mod 11021 5 2 5644 = 9464 . 9464 mod 11021 = 10650 mod 11021 6 2 5644 = 10650 . 10650 mod 11021 = 5389 mod 11021 7 2 5644 = 5389 . 5389 mod 11021 = 986 mod 11021 8 2 5644 = 986 . 986 mod 11021 = 2348 mod 11021 9 2 5644 = 2348 . 2348 mod 11021 = 2604 mod 11021 10 2 5644 = 2604 . 2604 mod 11021 = 2901 mod 11021 9 | P a g e 11 2 5644 = 2901 . 2901 mod 11021 = 6778 mod 11021 12 2 5644 = 6778 . 6778 mod 11021 = 5756 mod 11021 5644 10742 = 5644 . 4046 . 3931 . 1319 . 9464 . 10650 . 2348 . 2604 . 5756 mod 11021 = 112 . 5119 . 4555 . 6999 mod 11021 = 1803 mod 11021 Vậy C = 2962 mod 11021 Hay ta có thể viết là C = 2962 + k . 11021. Với k = 7 ta có giá trị C = M = 80109 (giá trị ban đầu) 10 | P a g e . TIỂU LUẬN Phần 1 : Hệ mã đối xứng 1. 1. Mã hóa : - Chuỗi cần mã : trantanhaibatribentre 1. 1. 1. Mã Ceasar : k = 5 - Bảng mã tương ứng với k = 5 1 2 3 4 5 6 7 8. u v w x y z a b c d E - Chiếu tương ứng từng cột ta có quy tắc mã hóa như sau : a = f, b = g, c = h, , y = d, z = e. - Áp dụng quy tắc mã hóa vào chuỗi cần mã hóa, ta có bảng sau : t r a n. giá trị ban đầu. Tra vào bảng mã ta sẽ suy ra chuỗi ban đầu. 2. 2. Hệ mã RSA : - Tự chọn p, q sao cho p, q > 100 và gcd(p, q) = 1. Ta chọn : p = 103 và q = 107 2. 2. 1. Mã hóa : - Tính N =

Ngày đăng: 02/06/2015, 18:01

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan