Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
16,36 MB
Nội dung
MẬT MÃ CỔ ĐIỂN 1.1 MỘT SỐ HỆ MẬT MÃ ĐƠN GIẢN 1.1.1 MẬT MÃ DỊCH CHUYỂN - SHIFT CIPHER 1.1.2 MẬT MÃ THAY THẾ - SUBSTITUTION CIPHER 1.1.3 MẬT MÃ TUYẾN TÍNH - AFFINE CIPHER 1.1.4 MẬT MÃ VIGENÈRE 1.1.5 MẬT MÃ HILL 1.1.6 MẬT MÃ HOÁN VỊ 1.1.7 MẬT MÃ DÒNG MỞ ĐẦU: Mục đích hệ mật mã cho phép hai người, Alice Bob, truyền thông tin qua kênh không bảo mật theo cách cho đối thủ, Oscar, hiểu thông tin nhắc đến Kênh đường điện thoại mạng máy tính Thông điệp mà Alice muốn gửi tới Bob, gọi “ văn gốc ” “ rõ ” ( “ Plaintext ”), xây dựng hoàn toàn tuỳ ý, ký tự tiếng Anh, liệu số… Sơ đồ minh hoạ Alice x Mã hoá K Tập khoá y Giải mã K x Bob Mô tả hình thức ký hiệu toán học 1.1.1 Hệ mã dịch chuyển Hệ mã dựa sở phép biến đổi ký tự văn gốc thành ký tự khác mã Trong trường hợp K=3 , hệ mật mã gọi mật mã Caesar , thừa nhận Julius Caesar Trong hệ mật mã Caesar , ký tự thay ký tự đứng sau ba vị trí bảng chữ Alphabet) Để thực theo phương pháp này, trước hết ta cần định nghĩa bảng mã để số hoá văn gốc: A B C D E F G H I J K 10 11 12 N O P Q R S T U V W X L Y M Z 13 14 15 16 17 18 19 20 21 22 23 24 25 Xét ví dụ Giả sử khoá K = 11, văn gốc ban đầu wewillmeetatmidnight Đầu tiên ta biến đổi văn gốc thành dãy số nguyên , kết nhận sau: 22 22 19 12 11 11 12 13 19 19 Tiếp theo, ta cộng 11 vào giá trị , sau quy giá trị sang modulo 26 15 19 22 22 23 15 15 11 23 19 14 24 19 17 18 Cuối cùng, ta biến đổi dãy số nguyên sang ký tự Aphabet tương ứng , nhận mã HPHTWWXPPELEXTOYTRSE Để giải mã mã , Bob biến đổi tương ứng mã sang dãy số nguyên , trừ giá trị dãy cho 11 ( sau quy đổi sang modulo 26), cuối biến đổi dãy số nguyên vừa nhận sang ký tự Alphabe.Ta thu văn gốc ban đầu Wewillmeetatmidnight Nhận xét: Ta sử dụng ký tự hoa cho mã ký tự thường cho văn gốc NHẬN XÉT Ta nhận xét hệ mã dịch chuyển tính bảo mật không cao , với 26 khoá, dễ dàng để thử quy tắc giải mã dK nhận văn có “ ý nghĩa ” Xem minh hoạ : Ví dụ 1.2 Cho văn dạng mật mã xâu sau : JBCRCLQRWCRVNBJENBWRWN 17 11 16 17 22 17 21 13 13 22 17 22 13 Ta thử hàm giải mã d0 ,d1,… Kết nhận : Số nguyên ƯCLN Integer GCD Ví dụ Example Tìm ước chung lớn 123 456 456 = 3.123 + 87 123 = 1.87 + 36 87 = 2.36 + 15 T.T Euclid 36 = 2.15 + 15 = 2.6 + = 2.3 + ƯCLN(123, 456) = Số nguyên ƯCLN Integer GCD Ví dụ Example Tìm ước chung lớn 123 456 ƯCLN(123, 456) = ƯCLN(456 ƯCLN(87, 123) mod 123, 123) ƯCLN(12387) mod 87, 87) = ƯCLN(36, ƯCLN(87 mod = ƯCLN(15, 36) 36, 36) T.T Euclid = ƯCLN(6, ƯCLN(3615) mod 15, 15) ƯCLN(3, 6) = ƯCLN(15 mod 6, 6) = ƯCLN(6 ƯCLN(0,mod 3) 3, 3) =3 Số nguyên Integer Định lí ƯCLN GCD Theorem Cho hai số nguyên dương a b, với a b Khi độ phức tạp thuật toán Euclid theo số phép chia T.T Euclid O(logb) Đồng dư Congruence ĐỊNH NGHĨA DEFINITION Đồng dư Định nghĩa Definition Cho a b hai số nguyên m số nguyên dương Ta nói a đồng dư với b theo môđun m kí hiệu a b (mod m) a – b chia hết cho m, trái lại kí hiệu a b (mod m) Như vậy: a b (mod m) m|a – b a mod m = b mod m Tập tất số nguyên thu gọn m “số” theo mod m “số” lớp đồng dư Đồng dư Đồng dư Congruence Định nghĩa ĐỊNH NGHĨA DEFINITION Definition Tập hợp gồm m số nguyên đôi không đồng dư theo mod m gọi hệ thặng dư đầy đủ theo mod m Một số nguyên đồng dư với số hệ thặng dư đầy đủ Ví dụ Example {0, 1, 2, 3, 4, 5, 6} hệ thặng dư đầy đủ theo mod {1, 2, 3, 5, 8, 13, 21} không hệ thặng dư đầy đủ theo mod … (mod 7) {20, 21, 22, 23, 24, 25, 26} có hệ thặng dư đầy đủ theo mod không? Không Đồng dư Congruence ĐỊNH NGHĨA DEFINITION Đồng dư Định lí Theorem Cho m số nguyên dương Khi • a b (mod m) k, a = b + km • Nếu a b (mod m) c d (mod m) a + c b +d (mod m); a.c b.d (mod m) Có mối liên hệ phép tính số học thông thường phép tính số học theo môđun m dấu “=” liên hệ với dấu đồng dư “” +, –, *, / liên hệ với +, –, *, / lấy đồng dư Đồng dư Congruence ĐỊNH NGHĨA DEFINITION Đồng dư Vẫn có tính chất số học không số học đồng dư a.b = a = b = … a.b (mod m) a b Ví dụ Example 4.3 (mod 6) … (mod 6) (mod 6) Đồng dư Congruence Hệ Nghịch đảo NGHỊCH ĐẢO INVERSE lemma Cho hai số a m nguyên tố m > tồn số nguyên s (duy theo mod m) để sa (mod m) Định nghĩa Definition Cho hai số a m nguyên tố m > a gọi khả nghịch theo mod m, nghịch đảo s a thỏa mãn sa (mod m) (theo mod m) Tập hệ thặng dư đầy đủ mod m gồm tất phần tử khả nghịch mod m gọi hệ thặng dư thu gọn mod m Chú ý: a phần tử khả nghịch theo mod m a.b (mod m) b (mod m) Đồng dư Nghịch đảo NGHỊCH ĐẢO Congruence Ví dụ INVERSE Example Một hệ thăng dư đầy đủ mod 12 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Một hệ thăng dư thu gọn mod 12 1, 5, 7, 11 Cho p số nguyên tố, hệ thăng dư thu gọn mod p {1, 2, …, p–1} Định lí Theorem Số phần tử hệ thặng dư thu gọn mod m (m), hàm Euler m 1.1.3 Hệ mã tuyến tính Vì gcd(a,26)=1 nên a nhận giá trị sau đây: a= 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 a a-1 9 21 15 11 15 17 19 21 23 25 19 23 11 17 25 Ta xem xét ví dụ sau : Giả sử K= ( 7,3) Hàm mã hoá eK(x) = 7x+3mod 26 Mã hoá văn P - hot Số hóa h, o, t 7,14,19 e(h) = 7.7+3 mod 26 = , e(o) = 7.14+3 mod 26 = 23 , e(t) = 7.19+3 mod 26 = , Bản mã xâu ký tự “AXG” Để giải mã mã , ta sử dụng hàm giải mã d K ( y ) = a 1 (y-b) mod 26 Trong ví dụ với K = ( 7,3) ta có a= 1 nên a =15 Do d K ( y ) = (15y-19) mod 26 Khi ta giải mã, thu số 7, 14, 19 Các số tương ứng với ký tự h, o, t Do ta có văn gốc hot Lưu ý: Có 12 x 26 = 312 chìa khóa có thể, duyệt toàn để thám mã 1.1.4 Hệ mã Vigenère Cả hai hệ mật mã Shift Cipher Substitution Cipher, chọn khoá K, ký tự Alphabe ánh xạ đến ký tự Alphabe Vì lý , hệ mật mã gọi đơn ký tự ( monoalphabetic ) Đến , ta giới thiệu hệ mật mã monoalphabetic , biết đến Vigenère Cipher, mang tên Blaise de Vigenère, kỷ 16 Sử dụng tương ứng A 0, B 1, C 2, , Z 25 , ta kết hợp với khoá K vào xâu ký tự Alphabe có độ dài m, gọi từ khoá Mật mã Vigenère Cipher mã hoá theo khối m ký tự văn gốc Ví dụ : Giả sử m = từ khoá C I P H E R Tương ứng với số K = ( 2, 8,15,7,4,17 ) Giả sử văn gốc :thiscryptosystemisnotsecure Ta biến đổi phần tử văn gốc quy đổi sang modulo 26 , viết chúng thành nhóm sáu số , cộng thêm vào từ khoá ( modulo 26 ) , giống sau : 19 8 18 15 21 15 23 25 12 15 17 24 15 19 14 18 24 18 19 17 15 17 8 23 21 22 15 20 18 13 14 19 18 17 19 19 12 15 15 22 20 17 4 17 15 25 19 22 25 19 Bản mã hoá xâu VPXZGIAXIVWPUBTTMJPWIZITWZT Để giải mã , ta cần sử dụng từ khoá tương tự , phải trừ khoá modulo 26 [...]... nguyên từ 2 đến n Gọi là danh sách A 2 Lấy ra số 2 là số đầu tiên của danh sách A và cũng là số nguyên tố đầu tiên Gọi là danh sách B 3 Xóa bỏ 2 và các bội của nó ra khỏi danh sách A 4 Số x đầu tiên trong danh sách A mới là số nguyên tố và viết vào B 5 Xóa x và các bội ( x2) của x ra khỏi A 6 Lặp lại bước 4 và 5 cho đến khi A không còn phần tử nào Chú ý là khi phần tử đều tiên của danh sách còn lại > (phần... tới K=26, ta xác định được văn bản gốc và dừng lại Khoá K= 9 1.1.2 The Substitution Cipher ( Hệ mã thay thế ) Ví dụ : Cho hoán vị “ ngẫu nhiên ” sau : a b c d e f g h i j k l m X N Y A H P O G Z Q W B T n o p q r s t u v w x S F L R C V M U E K J y z D I Do đó e (a) X , e (b) N , , Hàm giải mã là hoán vị nghịch đảo Hãy mã hóa bản rõ: thisciphertextcannotbedecrypted A B C D E F G H I J K L... (10) = 4 Định lí Euclid: limx→(x) = Hãy mô tả độ tăng của (x)? Xem trang bên → … Số nguyên Integer Định nghĩa Ước chung ƯCLN GCD Definition •Cho a và b hai số nguyên khác 0, số nguyên d lớn nhất sao cho d|a và d|b được gọi là ước chung lớn nhất của a và b, kí hiệu là ƯCLN(a, b) •Bội chung nhỏ nhất của hai số nguyên dương a và b là số nguyên dương nhỏ nhất chia hết cho cả a lẫn b, kí hiệu là BCNN(a,... nếu tồn tại một số nguyên c sao cho b = a.c Khi b chia hết cho a ta nói a là ước của b và b là bội của a và kí hiệu là a|b, nếu trái lại b không chia hết cho a thì ta kí hiệu a|b a|b cZ, (a.c =b) Định lí Cho 3 số nguyên a, b, c Khi đó Nếu a|b và a|c thì a|(b + c) Nếu a|b thì a|bc, với mọi số nguyên c Nếu a|b và b|c thì a|c Theorem Số nguyên Integer PHÉP CHIA DIVISION Phép chia Ví dụ Example 21... mod Định lí & định nghĩa Theorem & definition Cho a là một số nguyên và d là một số nguyên dương Khi đó tồn tại duy nhất các số q và r, với 0 r < d sao cho a = qd + r Với các kí hiệu như trên ta nói d là số chia, a là số bị chia, q được gọi là thương (q = a div d) và r được gọi là số dư (r = a mod d) Nhận xét: a chia hết cho d khi và chỉ khi số dư của phép chia a cho d bằng 0 Số nguyên Integer Div,... thisciphertextcannotbedecrypted A B C D E F G H I J K L M d h x w p l r N O P b g f Do đó , y v o Q R S j q n e z t T U V W X Y Z m u s k a c i d ( A) d , d ( B) l , Ví dụ giải mã đoạn bản mã sau : MGZVYZLGHCMHJMYXSSFMNHAHYCDLMHA Ta thu được thisciphertextcannotbedecrypted Discrete Mathematics I Số nguyên Integer phép chia division Chương 2.4, 2.5 Kenneth H Rosen Xuân 2008 Đại học FPT Số nguyên GIỚI THIỆU Integer INTRODUCTION... r: = |a| while r d begin r: = r – d q: = q + 1 end if (a < 0 và r > 0) then begin r: = d – r q: = –(q + 1) end PHÉP CHIA DIVISION Algorithm Số nguyên PHÉP CHIA Integer Ví dụ DIVISION Example Div, mod Xác định thương và số dư khi chia 11 cho 3 q = 0 & r = 11 thương 8 11 2 33 5 2 3 1+1=1 2 q=0 r=8 11––33==5 5 28 số dư Xác định thương và số dư khi chia -11 cho 3 -11 < 0 & 2 > 0 q = -(3 + 1) = -4 r=3–2=1... 300, b = 315 tìm ƯCLN và BCNN của a và b 300 = 22.31.52 = 22.31.52.70 Ước chung 315 = 32.51.71 = 20.32.51.71 ƯCLN(300, 315) = 2min(2, 0).3min(1, 2).5min(2, 1).7min(0, 1) = 20.31.51.70 = 15 BCNN(300, 315) = 2max(2, 0).3max(1, 2).5max(2, 1).7max(0, 1) = 22.32.52.71 = 6300 300*315 = 94500 = ƯCLN(300, 315)*BCNN(300, 315) Số nguyên Integer ƯCLN GCD Định nghĩa Definition •Hai số nguyên a và b được gọi là nguyên... 2 > 0 q = -(3 + 1) = -4 r=3–2=1 Số nguyên Integer SỐ NGUYÊN TỐ PRIME Định nghĩa Số nguyên tố Definition Số nguyên dương p > 1 được gọi là số nguyên tố nếu nó chỉ có các ước số dương là 1 và p Các số nguyên dương > 1 và không phải là số nguyên tố được gọi là hợp số Chú ý: n N* là hợp số (a, 1< a < n, a|n) Định lí Theorem Nếu n là một hợp số thì n có ước nguyên tố ≤ n1/2 Số nguyên Integer Định nghĩa... của chúng bằng 1 Hàm Euler •Các số nguyên a1, a2, …, an được gọi là đôi một nguyên tố cùng nhau nếu hai số bất kì trong chúng ai, aj (1 i < j n) nguyên tố cùng nhau Chú ý: Cho p là số nguyên tố, thì p nguyên tố cùng nhau với tất cả các số nguyên a không chia hết cho p Số nguyên ƯCLN Integer GCD Để tìm ước chung lớn nhất của hai số nguyên a và b ta thường áp dụng thuật toán Euclid cơ sở toán học ... MẬT MÃ ĐƠN GIẢN 1.1.1 MẬT MÃ DỊCH CHUYỂN - SHIFT CIPHER 1.1.2 MẬT MÃ THAY THẾ - SUBSTITUTION CIPHER 1.1.3 MẬT MÃ TUYẾN TÍNH - AFFINE CIPHER 1.1.4 MẬT MÃ VIGENÈRE 1.1.5 MẬT MÃ HILL 1.1.6 MẬT MÃ... học 1.1.1 Hệ mã dịch chuyển Hệ mã dựa sở phép biến đổi ký tự văn gốc thành ký tự khác mã Trong trường hợp K=3 , hệ mật mã gọi mật mã Caesar , thừa nhận Julius Caesar Trong hệ mật mã Caesar , ký... khóa có thể, duyệt toàn để thám mã 1.1.4 Hệ mã Vigenère Cả hai hệ mật mã Shift Cipher Substitution Cipher, chọn khoá K, ký tự Alphabe ánh xạ đến ký tự Alphabe Vì lý , hệ mật mã gọi đơn ký tự (