an toàn dữ liệu
1 Ch ng 2: Cỏc h mó húa Tr Tr ờng ờng đạ đạ i h i h ọ ọ c s c s ph ph ạ ạ m k m k ỹ ỹ thu thu ậ ậ t vinh t vinh khoa c khoa c ô ô ng ngh ng ngh ệ ệ th th ô ô ng tin ng tin ---------- ---------- &&& &&& ---------- ---------- Hồ ngọc vinh AN TO AN TO N D N D LI LI U U C C C H C H M H M H ể ể A A 2 - 2 Ch ng 2: Cỏc h mó húa N N I DUNG I DUNG 1. Kh 1. Kh ỏ ỏ i ni i ni m v m v mó h mó h ú ú a v a v gi gi i mó i mó 2. H 2. H mó h mó h ú ú a c a c i i n. n. 3. H 3. H mó v mó v i kh i kh ú ú a cụng khai. a cụng khai. 2 - 3 Ch ng 2: Cỏc h mó húa 1. KH 1. KH I NI I NI M V M V M H M H ể ể A V A V GI GI I M I M Mc ớch ca mó húa thụng tin l cho phộp hai ngi A v B cú th giao tip an ton vi nhau thụng qua cỏc kờnh thụng tin khụng an ton sao cho ngi th ba l C khụng bit thụng tin gỡ ang thc s c trao i. - Thụng tin ban u c gi l bn rừ (Plain Text). - é trao i, A thc hin vic mó húa (Encrypt) bng khúa mó nh trc i vi bn rừ trờn v thu c bn mó (Cipher Text) ri gi cho B qua kờnh thụng tin. - Sau khi B nhõn c bn mó, vi khúa gii mó cú th gii mó (Decrypt) c bn mó v thu c bn rừ. - Ngi th ba l C cú th thu c bn mó gi i nhng khụng bit c ni dung A mun gi hoc ụi khi bit c thỡ mt khỏ nhiu thi gian v thụng tin ú khụng cũn giỏ tr na. 2 - 4 Ch ng 2: Cỏc h mó húa 1. KH 1. KH I NI I NI M V M V M H M H ể ể A V A V GI GI I M I M ab cd ab cd Plain Text ab cd ab cd Plain Text #. ^$ #. ^$ Cipher Text Encryption Key Decryption Key Mụ hỡnh mó húa v gii mó thụng tin 2 2 - 5 Ch ươ ng 2: Các h ệ mã hóa 1. KH 1. KH Á Á I NI I NI Ệ Ệ M V M V Ề Ề MÃ H MÃ H Ó Ó A V A V À À GI GI Ả Ả I MÃ I MÃ Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Một hệ mật mã là một bộ 5 thành phần (P, C, K, E, D). Trong đó: ⇒ Với một bản rõ x ∈ P (thường là một xâu kí tự), ta có: D k ( E k (x) ) = x P : Tập hợp các bản rõ. C : Tập hợp các bản mã. K : Tập hợp các khoá k ∈ K. k = (E k ,D k ) ∈ E x D = K E k : P → C Khoá lập mã. D k : C → P Khoá giải mã. 2 - 6 Ch ươ ng 2: Các h ệ mã hóa 1. KH 1. KH Á Á I NI I NI Ệ Ệ M V M V Ề Ề MÃ H MÃ H Ó Ó A V A V À À GI GI Ả Ả I MÃ I MÃ Phân lo Phân lo ạ ạ i h i h ệ ệ mã: mã: Các hệ mã được phân làm 2 loại: - Hệ mã khóa đối xứng: Hệ mã dịch vòng, Hệ mã thay tế, Hệ mã Affine, Hệ mã DES, . - Hệ mã không đối xứng (khóa công khai): Hệ mã RSA 2 - 7 Ch ươ ng 2: Các h ệ mã hóa 1. KH 1. KH Á Á I NI I NI Ệ Ệ M V M V Ề Ề MÃ H MÃ H Ó Ó A V A V À À GI GI Ả Ả I MÃ I MÃ H H ệ ệ mã kh mã kh ó ó a đ a đ ố ố i x i x ứ ứ ng: ng: Là hệ mã mà khi mã hóa và giải mã đều dùng một khóa. 2 - 8 Ch ươ ng 2: Các h ệ mã hóa 1. KH 1. KH Á Á I NI I NI Ệ Ệ M V M V Ề Ề MÃ H MÃ H Ó Ó A V A V À À GI GI Ả Ả I MÃ I MÃ H H ệ ệ mã kh mã kh ó ó a công khai: a công khai: Là hệ mã mà khi mã hóa thì dùng một khóa, còn khi giải mã thì dùng khóa khác. 3 2 - 9 Ch ươ ng 2: Các h ệ mã hóa 2. C 2. C Á Á C H C H Ệ Ệ MÃ C MÃ C Ổ Ổ ĐI ĐI Ể Ể N N M M ộ ộ t tiêu ch t tiêu ch í í kh kh á á c đ c đ ể ể phân lo phân lo ạ ạ i h i h ệ ệ mã: mã: - Hệ mã cổ điển: Là các hệ mã cũ, đơn giản, hiên nay không có tính bảo mật cao, đó là: Hệ mã dịch chuyển, Hệ mã thay tế, Hệ mã Affine . - Hệ mã hiện đại: Là những hệ mã mới xuất hiện vài thập kỹ gần đây, chúng có tính bảo mật cao, đó là: Hệ mã DES, Hệ mã RSA - Hệ mã cổ điển. - Hệ mã hiện đại. 2 - 10 Ch ươ ng 2: Các h ệ mã hóa 2.1. H 2.1. H ệ ệ mã d mã d ị ị ch chuy ch chuy ể ể n n Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Hệ mã dịch chuyển là một bộ 5 thành phần (P, C, K, E, D). Thỏa mãn: P : Tập hợp các bản rõ. C : Tập hợp các bản mã. K : Tập hợp các khoá k ∈ K. Với P = C = K = Z 26 Với khóa k ∈ K. Ta định nghĩa: E k (x) = x + k (mod 26) D k (y) = y - k (mod 26) ⇒ Trong trường hợp k = 3, Hệ mật thường được gọi là Caesar (đã từng được Hoàng đế Julius Caesar sử dụng). 2 - 11 Ch ươ ng 2: Các h ệ mã hóa 2.1. H 2.1. H ệ ệ mã d mã d ị ị ch chuy ch chuy ể ể n n Ví dụ: Với k = 9. Hãy mã hóa câu sau: x = “ NGAY MAI TIEN VE PHIA TAY ” Có thể định nghĩa qua phép dịch chuyển với k = 9. 876543210252423222120191817161514131211109 IHGFEDCBAZYXWVUTSRQPONMLKJ 252423222120191817161514131211109876543210 X ZYWVUTSRQPONMLKJIHGFEDCBA Sử dụng mã dịch chuyển với k = 9, ta có bản mã là: y = “ WPJH VJR CRNW EN YHRJ CJH ” * Để cho tiện lợi, ta chỉ xét các bảng chữ cái tiếng Anh. Tuy nhiện, ta có thể thêm vào các số để chỉ các chữ cái Tiếng Việt có dấu, các chữ số, dấu cách và các ký hiệu khác. 2 - 12 Ch ươ ng 2: Các h ệ mã hóa 2.2. H 2.2. H ệ ệ mã thay th mã thay th ế ế Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Hệ mã thay thế là một bộ 5 thành phần (P, C, K, E, D). Thỏa mãn: P : Tập hợp các bản rõ. C : Tập hợp các bản mã. Với P = C = Z 26 K : Tập hợp các khoá. (K chứa mọi hoán vị có thể của 26 ký hiệu Anphabet) Với mỗi phép hoán vị khóa π ∈ K. Ta định nghĩa: E π (x) = π(x) D π (y) = π -1 (y) ( Với π -1 là hoán vị ngược của π ) 4 2 - 13 Ch ươ ng 2: Các h ệ mã hóa 2.2. H 2.2. H ệ ệ mã thay th mã thay th ế ế Trở lại với ví dụ trên. Hãy mã hóa câu sau: x = “ NGAY MAI TIEN VE PHIA TAY ” Cho bảng mã hoán vị π: YZWXUVSTQROPABCDEFGHIJKLMN X ZYWVUTSRQPONMLKJIHGFEDCBA Khi đó, ta có bản mã là: y = “ AHNZ BNF SFJA UJ OGFN SNZ ” ⇒ Với bảng chữ cái Anphabet có 26 chữ cái, ta có tất cả 26! khóa 2 - 14 Ch ươ ng 2: Các h ệ mã hóa 2.3. H 2.3. H ệ ệ mã Affine mã Affine Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Hệ mã Affine là một bộ 5 thành phần (P, C, K, E, D). Thỏa mãn: P : Tập hợp các bản rõ. C : Tập hợp các bản mã. Với P = C = Z 26 K : Tập hợp các khoá k ∈ K. K = { (a, b) ∈ Z 26 x Z 26 | USCLN(a, 26) = 1 } Với k = (a, b) ∈ K. Ta định nghĩa: E k (x) = a.x + b (mod 26) D k (y) = a -1 (y - b) (mod 26) ( Với a -1 là nghịch đảo của a theo modul 26 ) 2 - 15 Ch ươ ng 2: Các h ệ mã hóa 2.3. H 2.3. H ệ ệ mã Affine mã Affine Ta c Ta c ó ó b b ả ả ng c ng c á á c s c s ố ố nguyên t nguyên t ố ố c c ù ù ng nhau v ng nhau v ớ ớ i 26 l i 26 l à à : : 2517511237193152191a -1 2523211917151197531a ⇒ Với bảng chữ cái Anphabet có 26 chữ cái, Hệ mã Aiffine có 12 x 26 khóa. 2 - 16 Ch ươ ng 2: Các h ệ mã hóa 2.3. H 2.3. H ệ ệ mã Affine mã Affine Ví dụ: Với k = (7, 3). Hãy mã hóa câu sau: x = “ NGAY MAI TIEN VE PHIA TAY ” Với khoa k = (7, 3), ta có bảng mã: WPIBUNGZSLEXQJBVOHATMFYRKD 221581201362518114231692211470191252417103 252423222120191817161514131211109876543210 X ZYWVUTSRQPONMLKJIHGFEDCBA Khi đó, ta có bản mã là: y = “ QTDP JDH GHFQ UF EAHD GDP ” 5 2 - 17 Ch ươ ng 2: Các h ệ mã hóa 2.4. H 2.4. H ệ ệ mã Vigenere mã Vigenere Hệ mã Vigenere là hệ mã cải tiến của hệ mã dịch chuyển bằng cách chia khối văn bản thành các đoạn có độ dài m với khóa k = k 1 , k 2 , …, k m . Khi đó mỗi chữ tại vị trí thứ i sẽ được mã hóa với khóa k i . (Hệ mã này do B. Vigenere đưa ra ở thế kỷ XVI) Với k = ( k 1 , k 2 , …, k m ) ∈ K. Ta định nghĩa: E k (x 1 , x 2 , ., x m ) = ( x 1 + k 1 , x 2 + k 2 , …, x m + k m ) (mod 26) D k (y 1 , y 2 , ., y m ) = ( y 1 - k 1 , y 2 - k 2 , …, y m - k m ) (mod 26) Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Hệ mã Vigenere là một bộ 5 thành phần (P, C, K, E, D). Thỏa mãn: Cho m ∈ » + , P = C = Z 26 m ⇒ Với m ≥ 1, có tất cả 26 m khóa có thể. 2 - 18 Ch ươ ng 2: Các h ệ mã hóa 2.4. H 2.4. H ệ ệ mã Vigenere mã Vigenere Ví dụ: Giả sử m = 6, khóa k là từ CIPHER (nghĩa là k = ( 2, 8, 15, 7, 4, 17 )). Hãy mã hóa câu sau: x = “ HEN TOI THU BAY DI CHOI HO TAY ” - Bản rõ x được chia thành từng đoạn có độ dài m = 6 như sau: 240191478147283240120719814191347 OH AT YIOHCIDYABUHTIOTNEH - Để lập bảng mã, ta cộng với khóa k thì được bản mã: CHIWJZSORQFPEIJPVZSACMJ 229 78 225181417165154891521251802129 ⇒ y = “ JMC ASZ VPJ IEP FQ ROSZ JW IHC ” 2 - 19 Ch ươ ng 2: Các h ệ mã hóa 2.5. H 2.5. H ệ ệ mã ho mã ho á á n v n v ị ị Khác với các mã khác, mã hoán vị không thay đổi các ký tự trong bản rõ, mà chỉ hoán vị các ký tự trong từng bộ m ký tự của bản rõ. Ký hiệu S m là tập hợp tất cả các hoán vị của (1, 2, ., m). Với k = π ∈ K. Ta định nghĩa: E k (x 1 , x 2 , ., x m ) = ( x π(1) , x π(2) , …, x π(m) ) D k (y 1 , y 2 , ., y m ) = ( y π -1 (1) , y π -1 (2) , …, y π -1 (m) ) Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Hệ mã hoán vị là một bộ 5 thành phần (P, C, K, E, D). Thỏa mãn: Cho m ∈ » + , P = C = Z 26 m , K = S m ⇒ Với m ≥ 1, có tất cả m! khóa có thể. 2 - 20 Ch ươ ng 2: Các h ệ mã hóa 2.5. H 2.5. H ệ ệ mã ho mã ho á á n v n v ị ị Ví dụ: Giả sử m = 6, khóa mã và khóa giải mã được cho như hình sau: - Bản rõ x theo qui ước phải chia thành các khối nhỏ 6 ký tự. - Với phép hoán vị π trên, ta có xâu được mã hóa như sau: 425163 654321 Khóa k được cho bởi hoán vị π 246153 654321 Phép hoán vị nghịch đảo π -1 Hãy mã hóa câu sau: x = “ WE WILL MEET AT MIDNIGHT ” HGIN TDIM_TA_TEEM_LLIW_EW DT H N GI_AM_ITE_ELTMWEIWL_ x = y = 6 2 - 21 Ch ươ ng 2: Các h ệ mã hóa 2.6. H 2.6. H ệ ệ mã Hill mã Hill Hệ mã Hill này được đề xuất bởi Lester.S.Hill vào năm 1929, hệ mã cũng được thực hiện trên từng bộ m ký tự, mỗi ký tự trong bản mã là một tổ hợp tuyến tính (trên Z 26 ) của m ký tự trong bản rõ. Khóa sẽ được cho bởi một ma trận cấp m, tức là một phần tử của Z 26 m x m . E k (x 1 , x 2 , ., x m ) = ( x 1 , x 2 , ., x m ).k (mod 26) D k (y 1 , y 2 , ., y m ) = ( y 1 , y 2 , ., y m ).k -1 (mod 26) Đ Đ ị ị nh ngh nh ngh ĩ ĩ a: a: Hệ mã Hill là một bộ 5 thành phần (P, C, K, E, D). Thỏa mãn: Cho m ∈ » + , P = C = Z 26 m K = { k ∈ Z 26 m x m | USCLN( det(k), 26 ) = 1 }. Với k ∈ K. Ta định nghĩa: 2 - 22 Ch ươ ng 2: Các h ệ mã hóa 2.6. H 2.6. H ệ ệ mã Hill mã Hill - Với khóa k có kích thước m x m. Khi đó khóa lập mã sẽ là: k m,m .k m,2 k m,1 k 2,m .k 2,2 k 2,1 k 1,m .k 1,2 k 1,1 (y 1 , y 2 , ., y m ) = (x 1 , x 2 , ., x m ) x hay nói cách khác: y = x . k - Để giải ma, ta đi tìm ma trân nghịch đảo k -1 của ma trận khóa k. Khi đó bản mã được giải mã bằng công thức: x = y. k -1 Lưu ý: Không phải mọi ma trận khóa đều có nghịch đảo. Tuy nhiên, nếu tồn tại thì nó là duy nhất. 2 - 23 Ch ươ ng 2: Các h ệ mã hóa 2.6. H 2.6. H ệ ệ mã Hill mã Hill Ví dụ: Giả sử m = 2, ta chọn khóa k như sau: - Với bộ hai ký tự x = (x1, x2), ta có thể mã hóa theo công thức sau: Ma trận khóa giải mã k -1 1123 187 det(k) = 1 (mod 26) Ma trận khóa mã hóa k 73 811 73 811 (y 1 , y 2 ) = (x 1 , x 2 ).k = (x 1 , x 2 ) . = ( 11 .x 1 + 3. x 2 , 8.x 1 ,+ 7.x 2 ) 1123 187 (x 1 , x 2 ) = (y 1 , y 2 ).k -1 = (y 1 , y 2 ) . = (7.y 1 + 23.y 2 , 18.y 1 + 11.y 2 ) - Khóa giải mã sẽ là: 2 - 24 Ch ươ ng 2: Các h ệ mã hóa 2.6. H 2.6. H ệ ệ mã Hill mã Hill Ví dụ: Giả sử m = 2, và với khóa mã k và khóa giải mã k -1 như trên: - Chia bản rõ thành các bộ m = 2 ký tự: Hãy mã hóa câu sau: x = “ WE WILL MEET AT MIDNIGHT ” - Mã hóa các bộ hai ký tự theo hệ thức mã hóa: (y 1 , y 2 ) = (x 1 , x 2 ).k 197681338121901944121111822422 HGIN TDIMTAT EEMLLIWEW hECCLUWADFJXUOJYYGWU 42211 7202203592320149242462220 ⇒ y = “ UW GYYJ OUXJ FD AWULCCEH ” 7 2 - 25 Ch ươ ng 2: Các h ệ mã hóa 3. H 3. H Ệ Ệ MÃ H MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N DES N DES Hệ mã hóa DES (Data Encryption Standard) là hệ mã hoá bảo mật được sử dụng rộng rãi nhất trên thế giới, thậm chí đối với nhiều người DES và mã hoá bảo mật là đồng nghĩa với nhau. Ở thời điểm DES ra đời (tiền thân của nó là thuật toán mật mã Lucifer do IBM phát triển) người ta đã tính toán rằng việc phá được khoá mã DES là rất khó khăn, nó đòi hỏi chi phí hàng chục triệu USD và tiêu tốn khoảng thời gian rất nhiều năm. Cùng với sự phát triển của các loại máy tính và mạng máy tính có tốc độ tính toán rất cao, khoá mã DES có thể bị phá trong khoảng thời gian ngày càng ngắn với chi phí ngày càng thấp. Dù vậy, việc này vẫn vượt quá khả năng của các Hacker thông thường và Hệ mã hoá DES vẫn tiếp tục tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin . nhiều năm nữa đặc biệt với sự ra đời của thế hệ DES mới. 2 - 26 Ch ươ ng 2: Các h ệ mã hóa 3. H 3. H Ệ Ệ MÃ H MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N DES N DES Thuật toán sử dụng trong Hệ mã hóa DES là thuật toán mở, nghĩa là mọi người đều biết thuật toán này. Điều quan trọng nhất là chìa khoá của DES có độ dài tới 56 bit, nghĩa là số lần thử tối đa để tìm được chìa khoá lên đến 2 56 = 72.057.594.037.927.936 lần (một con số rất lớn!). Hệ mã DES được thực hiện nhờ các phép dịch, hoán vị và các phép toán logic trên các bit. DES mã hoá từng khối 64 bit. Để thực hiện việc mã hoá DES sử dụng một chìa khoá cũng 64 bit (tức 8 byte), nhưng các bít thứ 8 trong các byte này bị bỏ qua trong khi mã hoá vì vậy độ lớn thực tế của chìa khoá là 56 bit. Hệ mã DES thực hiện bao gồm 16 vòng, nghĩa là thuật toán chính được lặp lại 16 lần để tạo ra bản tin được mã hoá. 2 - 27 Ch ươ ng 2: Các h ệ mã hóa 3.1. C 3.1. C ấ ấ u tr u tr ú ú c thu c thu ậ ậ t to t to á á n DES n DES Thuật toán có 3 bước cơ bản như sau: B 1 : Cho chuỗi bit từ hiện x, chuỗi bit x 0 được sinh ra bằng cách hoán vị chuỗi bít x dùng bảng hoán vị khởi tạo IP. Ta viết x 0 = IP(x) = L 0 R 0 . B 2 : Thực hiện 16 lần lặp. Mỗi lần tính L i R i (với i = 1 16) theo quy tắc: ( Trong đó: ⊕ là phép XOR hai chuỗi bit. K 1 , K 2 , ., K 16 là các chuỗi khóa 48 bit được tính theo hàm sinh khóa K ). B 3 : Dùng hoán vị nghịch đảo IP -1 đối với chuỗi bít R 16 L 16 thu được chuỗi y, tức là y = IP -1 ( R 16 L 16 ). L i = R i-1 R i = L i-1 ⊕ f ( R i-1 , K i ) 2 - 28 Ch ươ ng 2: Các h ệ mã hóa Sơ đồ hệ mã DES 8 2 - 29 Ch ươ ng 2: Các h ệ mã hóa 3.2. Mô t 3.2. Mô t ả ả h h à à m m f f ( ( R R i i - - 1 1 , , K K i i ) ) Hàm f có hai tham số đầu vào, tham số R là chuỗi 32 bit và tham số K là chuỗi 48 bit. Đầu ra là chuỗi 32 bit B 1 : Chuỗi bít R được mở rộng thành 48 bit qua hàm hoán vị mở rộng E(R) . B 2 : Thực hiện phép E(R) ⊕ K và kết quả được tách thành 8 nhóm, mỗi nhóm 6 bít ( B = B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 ) . B 3 : Tiếp theo dùng 8 khối S (S-box) S 1 S 2 S 3 S 4 S 5 S 6 s 7 S 8 . Mỗi khối S i là một ma trận 4x16, các phần tử là số nguyên từ 0 đến 15 (4 bit). Khi có chuỗi đầu vào là chuỗi bit B i = b 1 b 2 b 3 b 4 b 5 b 6 , ta tính kết quả S i (B i ) như sau: Với 1 ≤ i ≤ 8 + Hai bit b 1 b 6 xác đinh vị trí r trong khối Si. + Bốn bit b 2 b 3 b 4 b 5 còn lại xác định cột c trong khối S i . + Đầu ra là phần tử S i (B i ) = S i ( r, c), là chuỗi 4 bít. Ta tính được C i = S i (B i ) B 4 : Chuỗi bit C = C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 có độ dài 32 bit được hoán vị theo bảng hoán vị P cố định. Kết quả cuối cùng f (R,K) = P(C). 2 - 30 Ch ươ ng 2: Các h ệ mã hóa K (48 bit)R (32 bit) E E(R) (48 bit) B 8 B 7 B 6 B 5 B 4 B 3 B 2 B 1 S 4 S 3 S 2 S 1 S 8 S 7 S 6 S 5 C 8 C 7 C 6 C 5 C 4 C 3 C 2 C 1 f (R, K) (32 bit) Sơ đồ mô tả hàm f (R, K) P + 2 - 31 Ch ươ ng 2: Các h ệ mã hóa 3.3. Thu 3.3. Thu ậ ậ t to t to á á n sinh kh n sinh kh ó ó a con a con Thuật toán sinh dãy các bit khóa con K i như sau: B 1 : Cho bảng hoán vị PC1, PC2; Khóa K 56 bit. Loại bỏ các bit kiểm tra và thực hiện hoán vị khóa K dùng bảng hoán vị PC1 cố định cho trước. Ta viết dưới dạng hai nhóm mỗi nhóm có độ dài 28 bit: PC1(K) = C 0 D 0 . B 2 : Với i = 1 16, ta tính: Trong đó: LS i biểu diễn phép dịch vòng sang trái 1 hoặc 2 vị trí phụ thuộc vào i (nếu i = 1, 2, 9, 16 thì dịch 1; còn lại thì dịch 2 ). C i = LS i ( C i-1 ) D i = LS i ( D i-1 ) K i = PC2( C i D i ) 2 - 32 Ch ươ ng 2: Các h ệ mã hóa K (64 bit) C 0 L 0 PC1 LS 1 LS 1 C 1 L 1 PC2 K 1 (48 bit) LS 2 LS 2 . . . . . . . . . . . . . . . . . . . . . LS 16 LS 16 C 16 L 16 PC2 K 16 (48 bit) Sơ đồ mô tả cách xác định dãy các bit khóa 9 2 - 33 Ch ươ ng 2: Các h ệ mã hóa 3.4. 3.4. Đ Đ ộ ộ an to an to à à n c n c ủ ủ a h a h ệ ệ mã DES mã DES Khi mới ra đời, DES được xem là khó thám mã. Tuy nhiên, sau một thời gian dài sử dụng (đúng 20 năm), với sự phát triển của các siêu máy tính thì DES không còn là an toàn nữa, bởi vì độ dài của khóa chỉ 56 bit thì số lượng chìa (có thể sinh ra) là không đủ nhiều so với số lượng chips và tốc độ xử lý của các siêu máy tính chuyên dùng để phá mã. Chính vì vậy, ngày từ đầu những năm 90, đã xuất hiện nhiều hệ mã biến thể của DES với độ dài khóa lớn hơn, đó là: + Triple DES (Sử dụng DES ba lần với những khóa khác nhau); + IDEA (International Data Encryption Algorithm) hỗ trợ khóa 128 bit; + AES (Advances Encryption Stardand) hỗ trợ độ dài khóa lơn hơn 128 bit 2 - 34 Ch ươ ng 2: Các h ệ mã hóa 4. H 4. H Ệ Ệ MÃ H MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N IDEA N IDEA Thuật toán IDEA có 8 vòng, sử dụng 52 khóa con (được sinh ra từ khóa ban đầu có độ dài 128 bit). Mỗi khóa con có độ dài 16 bit. Tại mỗi vòng của IDEA sử dụng tới 6 khóa con (4 khóa dùng để “chỉnh trang” dữ liệu trước khi vào vòng còn 2 cái dùng cho việc biến đổi bên trong của từng vòng). Sau vòng cuối cùng nó sử dụng thêm 4 khóa con nữa. Tổng cộng 8 x (2 + 4) + 4 = 52 khóa Mỗi khối dữ liệu trong IDEA có độ dài 64 bit và được chia thành 4 phần, mỗi phần 16 bit. 2 - 35 Ch ươ ng 2: Các h ệ mã hóa 4. THU 4. THU Ậ Ậ T TO T TO Á Á N MÃ H N MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N IDEA N IDEA IDEA sử dụng 3 phép toán trên xâu số nhị phân có độ dài 16 bit, đó là: - Phép loại trừ bít XOR; - Phép cộng thông thường theo modul 2 16 - Phép nhân thông thường 2 16 +1 2 - 36 Ch ươ ng 2: Các h ệ mã hóa 4. THU 4. THU Ậ Ậ T TO T TO Á Á N MÃ H N MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N IDEA N IDEA Mô tả thuật toán IDEA : - Ký hiệu 4 phần của khối dữ liệu nguồn là X 1 , X 2 , X 3 , X 4 và 52 khóa con được gọi tên là K 1 , K 2 , ., K 52 . - Trước vòng lặp 1, ta thực hiện việc “chỉnh trang dữ liệu” với các phép toán: • X 1 = X 1 x K 1 • X 2 = X 2 + K 2 • X 3 = X 3 + K 3 • X 4 = X 4 x K 4 10 2 - 37 Ch ươ ng 2: Các h ệ mã hóa 4. THU 4. THU Ậ Ậ T TO T TO Á Á N MÃ H N MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N IDEA N IDEA Phần chính của vòng 1 của IDEA : t 0 = K 5 x (X 1 xor X 3 ) t 1 = K 6 x (t 0 + (X 2 xor X 4 )) t 2 = t 0 + t 1 X 1 = X 1 xor t 1 X 4 = X 4 xor t 2 tg = X 2 xor t 2 X 2 = X 3 xor t 1 X 3 = tg 2 - 38 Ch ươ ng 2: Các h ệ mã hóa Sơ đồ vòng một của IDEA 2 - 39 Ch ươ ng 2: Các h ệ mã hóa 4. THU 4. THU Ậ Ậ T TO T TO Á Á N MÃ H N MÃ H Ó Ó A CHU A CHU Ẩ Ẩ N IDEA N IDEA Lặp lại như vòng 1 cả thay 8 lần: Y 1 = X 1 x K 49 Y 2 = X 3 + K 50 Y 3 = X 2 + K 51 Y 4 = X 4 x K 52 Từ lần lặp thứ 2 trở đi, ta sử dụng các khóa từ K 7 tới K 12 cho lần lặp thứ 2 và K 43 tới K 48 cho lần lặp thứ 8 nhưng không thực hiện việc trao đổi X 2 cho X 3 sau vòng thứ 8 và thay vào đó là các phép toán: 2 - 40 Ch ươ ng 2: Các h ệ mã hóa [...]... cú b n mó: (y1, y2) = Ek(x) = ( 2 853, x.949 853 ) mod 25 79 13 87 ) mod p = (y1, y2) an ton c a H mó ElGamal Gi s B ch n hai s p = 25 79, e = 2 v a = 765 Khi ú 04 35 nh ngha: 5 .2 H mó ElGamal Vớ d : 22 04 x.d k Ph n bớ m t l : a Chng 2: Cỏc h mó húa E Ek(x) = ( e k, + Khoỏ gi i mó l : Dk(y1, y2) = y2 ( y1a ) -1 mod p 2 L y ngh ch o c a s v a nh n c theo modul p r i em nhõn v i s th 2 trong c p s , t... Khi ú ta thu c b n rừ m A mu n g i 20 81 08 11 14 21 04 24 14 L O V E Y O 9137 9609 20 I 7613 U * Chng 2: Cỏc h mó húa 2 - 49 5.1 H mó RSA Chng 2: Cỏc h mó húa l n 2 - 50 Cho p l m t s nguyờn t l n Gi s A mu n chuy n cho B m t thụng bỏo m t X ( ó c chuy n sang d ng s hoỏ v n m trong kho ng gi a [0, i m nm 20 05, s l n nh t cú th c phõn tớch ra th a s di 663 bớt (g n 20 0 ch s ) v i phng phỏp phõn tỏn... vi c tớnh toỏn, cũn th c t ph i dựng cỏc s l n 2 - 48 12 5.1 H mó RSA 5.1 H mó RSA p d ng cụng th c mó húa y = xe mod n = x3533 mod 11413 ta cú b n mó : 10959 03190 0 728 9 023 18 05770 0 523 2 0 728 9 Ngoi cỏch húa mó I 00047 L trờn, ta cú th mó húa t ng kh i 2 ký t : O 0811 Khi B nh n c tin, anh ta s tớnh gi i mó theo cụng th c: V 1 421 E Y 0 424 O U 1 420 p d ng cụng th c mó húa y = xe mod n = x3533 mod 11413... p 2 L y ngh ch o c a s v a nh n c theo modul p r i em nhõn v i s th 2 trong c p s , t c l: W l n P = C = Zp* 04 35 07 67 04 35 Chng 2: Cỏc h mó húa 05 88 04 35 16 47 04 35 21 09 04 35 22 13 04 35 10 27 04 35 04 86 04 35 14 41 04 35 20 31 2 - 55 Chng 2: Cỏc h mó húa 2 - 56 14 T NG K T Mó i x ng H NG NGHIấN C U M R NG Mó khúa cụng khai Cỏc yờu c u khi s d ng - Tỡm hi u v H mó Trapdoor Knapsack Cỏc yờu... (mod 1 120 0) B cụng khai (n = 11413, e = 3533) nh ngha: Bõy gi A mu n g i b n rừ x = ILOVEYOU cho B, thỡ A s tớnh: y = Ek(x) = xe mod n + Khoỏ gi i mó l : x = Dk(y) = yd mod n L O V E Y O U 08 Trong ú: I 11 14 21 04 24 14 20 Ph n cụng khai l: (n, e) Ph n bớ m t l (p, q, d) Chng 2: Cỏc h mó húa * 2 - 47 õy ta ch n s nh Chng 2: Cỏc h mó húa cho ti n cho vi c tớnh toỏn, cũn th c t ph i dựng cỏc s l n 2 -... phỏp t n cụng ó bi t thỡ p ph i cú ớt nh t 150 ch s v (p - 1) ph i cú ớt nh t m t th a s nguyờn t l n d = ea mod p = 27 65 mod 25 79 = 949 B cụng khai (p = 25 79, e = 2, d = 949) Bõy gi A mu n g i b n rừ x = WE WILL MEET AT MIDNIGHT cho B W I L 22 08 L 1111 M E 120 4 E T 0419 A T 0019 M I 120 8 D N 0313 I G H 0806 H mó ElGamal r t an ton B i vỡ, ngoi ng i nh n B ra thỡ khụng ai cú th th c hi n gi i mó c... khúa 20 48 bớt Chng 2: Cỏc h mó húa cho ti n cho vi c tớnh toỏn, cũn th c t ph i dựng cỏc s 5 .2 H mó ElGamal an ton c a h mó khúa cụng khai RSA: T i th i nguyờn t cú õy ta ch n s nh 2 - 51 (e k.kB ) -1.X.e k.kB = (e k.kB ) -1.e k.kB X = X Chng 2: Cỏc h mó húa 2 - 52 13 5 .2 H mó ElGamal Cho p l m t s nguyờn t 5 .2 H mó ElGamal l n Gi s A mu n chuy n cho B m t thụng bỏo m t X ( ó c chuy n sang d ng s hoỏ... hm gi i mó Dk m i gi i mó c thụng tin m bờn A ó g i Hm 2 - 43 f : p.q n õy l hm m t chi u v i p v q l cỏc s nguyờn t l n tớnh f -1 thỡ l i l bi toỏn c c khú ( õy chớnh l bi toỏn n i ti ng phõn tớch m t s ra th a s nguyờn t - cú l hm m) * Hm Chng 2: Cỏc h mó húa 2 - 42 f cú ph c t p th i gian ph c t p th i gian l a th c Chng 2: Cỏc h mó húa 2 - 44 11 5.1 H mó RSA 5.1 H mó RSA H mó khúa cụng khai RSA... X b ng th t c g m 2 b c sau: 1 L y s th nh t trong c p s nõng lờn lu th a v i b c b ng khoỏ bớ m t c a mỡnh, t c l nh n c (e k )kB = e k.kB 2 L y ngh ch o c a s v a nh n c theo modul p r i em nhõn v i s th 2 trong c p s , t c l: Vỡ v y, hi n nay ng i ta khuy n cỏo s d ng khúa cú di t i thi u 1 024 bớt trong cỏc ng d ng N u c n t i b o m t cao hn thỡ ph i dựng khúa 20 48 bớt Chng 2: Cỏc h mó húa cho... H mó khúa cụng khai RSA - Cỏc thụng tin v thu t toỏn, m t trong cỏc khoỏ v cỏc m u b n mó khụng xỏc nh khoỏ cũn l i Chng 2: Cỏc h mó húa - Tỡm hi u thỏm mó cỏc h mó c 2 - 57 ng cong Elliptic v h mó phi Chng 2: Cỏc h mó húa i x ng 2 - 58 Xin chân thành cảm ơn Chng 2: Cỏc h mó húa 2 - 59 15 . 197681338 121 901944 121 111 822 422 HGIN TDIMTAT EEMLLIWEW hECCLUWADFJXUOJYYGWU 422 11 720 220 35 923 2014 924 24 622 20 ⇒ y = “ UW GYYJ OUXJ FD AWULCCEH ” 7 2 - 25 Ch. bảng mã: WPIBUNGZSLEXQJBVOHATMFYRKD 22 158 120 13 625 1811 423 16 922 1147019 125 2417103 25 2 423 222 120 19181716151413 121 110987654 321 0 X ZYWVUTSRQPONMLKJIHGFEDCBA Khi