Giáo trình Bảo mật thông tin: Phần 1 cung cấp cho người học những kiến thức như: Giới thiệu; cơ sở toán học; các hệ mã khóa bí mật. Mời các bạn cùng tham khảo!
TRƯỜNG ĐẠI HỌC PHAN THIẾT KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH BẢO MẬT THƠNG TIN LƯU HÀNH NỘI BỘ MỤC LỤC LỜI NÓI ĐẦU CHƢƠNG I: GIỚI THIỆU An toàn bảo mật thông tin và mật mã học 2 Khái niệm hệ thống và tài sản của hệ thống Các mối đe doạ đối với một hệ thống và các biện pháp ngăn chặn Mục tiêu và nguyên tắc chung của an toàn bảo mật thông tin Mật mã học (cryptology) Khái niệm hệ mã mật (CryptoSystem) Mô hình truyề n tin bản của mật mã học và luật Kirchoff Sơ lƣợ c về lich ̣ sƣ̉ mật mã học Phân loại các thuật toán mật mã học 10 Một số ƣ́ng dụng của mật mã học CHƢƠNG II: CƠ SỞ TOÁN HỌC 10 Lý thuyết thông tin 10 1.1 Entropy 10 1.2 Tố c độ của ngôn ngƣ̃ (Rate of Language) 11 1.3 Tính an toàn của hệ thống mã hoá 11 1.4 Kỹ thuật lộn xộn và rƣờm rà (Confusion and Diffusion) 12 Lý thuyết độ phức tạp 13 2.1 Độ an toàn tính toán 14 2.2 Độ an toàn không điều kiện 14 3.3 Hệ mật tích 16 Lý thuyết toán học 17 3.1 Modulo số học 17 3.2 Số nguyên tố 17 3.3 Ƣớc số chung lớn nhấ t 17 3.4 Vành ZN (vành đồng dƣ module N) 18 3.5 Phầ n tƣ̉ nghich ̣ đảo 18 3.6 Hàm phi Ơle 19 3.7 Thặng dƣ bậc hai 19 3.8 Thuật toán lũy thƣ̀a nhanh 20 3.9 Thuật toán Ơclit mở rộng 21 3.10 Phƣơng trình đồ ng dƣ bậc nhấ t ẩn 22 3.11 Đinh ̣ lý phầ n dƣ Trung Hoa 22 Các thuật toán kiểm tra số nguyên tố 23 4.1 Một số ký hiệu toán học 23 4.2 Thuật toán Soloway-Strassen 25 4.3 Thuật toán Rabin-Miller 26 4.4 Thuật toán Lehmann 26 Bài tập 26 CHƢƠNG III: CÁC HỆ MÃ KHÓA BÍ MẬT 28 Các hệ mã cổ điển 28 1.1 Hệ mã hoá thay thế (substitution cipher) 28 1.2 Hệ mã Caesar 28 1.3 Hệ mã Affine 29 1.4 Hệ mã Vigenere 30 1.5 Hệ mã Hill 30 1.6 Hệ mã đổ i chỗ (transposition cipher) 32 Các hệ mã khối 34 2.1 Mật mã khối 34 2.2 Chuẩn mã hoá liệu DES (Data Encryption Standard) 35 2.3 Các yếu điểm của DES 51 2.4 Triple DES (3DES) 52 2.5 Chuẩ n mã hóa cao cấ p AES 54 2.6 Các chế, hình thức sử dụng của mã hóa khối (Mode of Operation) 68 Bài tập 72 CHƢƠNG IV: CÁC HỆ MÃ MẬT KHÓA CÔNG KHAI 77 Khái niệm hệ mã mật khóa cơng khai 77 Nguyên tắ c cấ u tạo của các hệ mã mật khóa công khai 78 Một số hệ mã khóa công khai 78 3.1 Hệ mã knapsack 78 3.2 Hệ mã RSA 79 3.3 Hệ mã El Gamal 83 3.4 Các hệ mã mật dựa các đƣờng cong Elliptic 85 Bài tập 96 CHƢƠNG V: CHƢ̃ KÝ ĐIỆN TƢ̉ VÀ HÀM BĂM 101 Chƣ̃ ký điện tƣ̉ 101 1.1 Khái niệm chữ ký điện tử 101 1.2 Hệ chữ ký RSA 102 1.3 Hệ chữ ký ElGammal 103 1.4 Chuẩn chữ ký điện tử (Digital Signature Standard) 106 1.5 Mô hình ƣ́ng dụng của chƣ̃ ký điện tƣ̉ 108 Hàm Băm (Hash Function) 109 2.1 Khái niệm 109 2.2 Đặc tính của hàm Băm 109 2.3 Birthday attack 110 2.4 Một số hàm Băm nổi tiếng 111 2.5 Một số ƣ́ng dụng của hàm Băm 118 Bài tập 119 CHƢƠNG VI: QUẢN LÝ KHÓA 120 Quản lý khoá các mạng truyền tin 120 Một số hệ phân phối khoá 120 2.1 Sơ đồ phân phối khoá Blom 120 2.2 Hệ phân phối khoá Kerberos 122 2.3 Hệ phân phối khóa Diffe-Hellman 123 Trao đổi khoá và thoả thuận khoá 124 3.1 Giao thức trao đổi khoá Diffie-Hellman 124 3.2 Giao thức trao đởi khoá Diffie-Hellman có chứng xác nhận 125 3.3 Giao thức trao đổi khoá Matsumoto-Takashima-Imai 126 3.4 Giao thức Girault trao đổi khoá không chứng 127 4.Bài tập 128 CHƢƠNG VII: GIAO THƢ́C MẬT MÃ 130 Giao thức 130 Mục đích của các giao thức 130 Các bên tham gia vào giao thức (the players in protocol) 131 Các dạng giao thức 132 4.1 Giao thức có trọng tài 132 4.2 Giao thức có ngƣời phân xử 133 4.3 Giao thức tƣ̣ phân xƣ̉ 134 Các dạng công đối với giao thức 134 TÀI LIỆU THAM KHẢO 136 Chƣơng I: Giới thiê ̣u CHƢƠNG I: GIỚI THIỆU An toàn bảo mâ ̣t thông tin và mâ ̣t mã học Trải qua nhiều thế kỷ hàng loạt các giao thƣ́c (protocol) và các chế (mechanism) đã đƣợ c tạo để đáp ƣ́ng nhu cầ u an toàn bảo mật thông tin mà nó đƣợ c truyề n tải các phƣơng tiện vật lý (giấ y, sách, báo …) Thƣờng thì các mục tiêu của an toàn bảo mật thông tin không thể đạt đƣợ c nế u chỉ đơn thuầ n dƣ̣ a vào các thuật toán toán học và các giao thức, mà để đạt đƣợc điều này địi hỏi cần có các kỹ tḥt mang tính thủ tục và sƣ̣ tôn trọng các điề u luật Chẳ ng hạn sƣ̣ bí mật của các bƣ́c thƣ tay là sƣ̣ phân phát các lá thƣ đã có đóng dấu mợt dịch vụ thƣ tín đã đƣợc chấp nhận Tính an toàn mặt vật lý của các lá thƣ là hạn chế (nó có thể bị xem trợm ) nên để đảm bảo sƣ̣ bí mậ t của bức thƣ pháp luật đã đƣa qui định : việc xem thƣ mà không đƣợ c sƣ̣ đồ ng ý của chủ nhân ngƣời có thẩm quyền là phạm pháp và bị trừng phạt Đôi mục đích của an toàn bảo mật thô ng tin lại đạt đƣợ c nhờ chính phƣơng tiện vật lý mang chúng, chẳ ng hạn nhƣ tiề n giấ y đòi hỏi phải đƣợ c in bằ ng loại mƣ̣ c và giấ y tố t để không bị làm giả Về mặt ý tƣởng việc lƣu giƣ̃ thông tin là không có nhiề u thay đổ i đáng kể qua thời gian Ngày xƣa thông tin thƣờng đƣợc lƣu và vận chuyển giấy tờ , giờ chúng đƣợc lƣu dƣới dạng sớ hóa và đƣợc vận chủn bằng các hệ thống viễn thông hoặc các hệ thố ng không dây Tuy nhiên sƣ̣ thay đổ i đáng kể đế n ở chính là khả chép và thay đổ i thông tin Ngƣời ta có thể tạo hàng ngàn mẩ u tin giố ng và khơng thể phân biệt đƣợc với bản gốc Với các tài liệu lƣu trƣ̃ và vận chuyể n giấ y điề u này khó khăn nhiề u Và điều cần thiết đối với một xã hội mà thông tin hầu hế t đƣợ c lƣu trƣ̃ và vận chuyể n các phƣơng tiện điện tƣ̉ chin ́ h là các phƣơng tiện đảm bảo an toàn bảo mật thông tin độc lập với các phƣơng tiện lƣu trƣ̃ và vận chuyển vật lý của Phƣơng tiện đó chính là mật mã học , một ngành khoa học có lich ̣ sƣ̉ lâu đời dƣ̣ a nề n tảng các thuật toán toán học, số học, xác suất và các môn khoa học khác Khái niệm hệ thống và tài sản của hệ thống Khái niệm hệ thống : Hệ thố ng là một tập hợ p các máy tính gồ m các thành phầ n phấ n cƣ́ng, phầ n mề m và dƣ̃ liệu làm việc đƣợ c tích luỹ qua thời gian Tài sản của hệ thống bao gồm: Phầ n cƣ́ng Phầ n mề m Dƣ̃ liệu Các truyền thông các máy tính của hệ thống Môi trƣờng làm việc Con ngƣời Các mối đe doạ đối với một hệ thống và biện pháp ngăn chặn Có hình thức chủ yếu đe dọa đối với hệ thống: Chƣơng I: Giới thiê ̣u Phá hoại: kẻ thù phá hỏng thiết bị phần cứng phần mềm hoạt động hệ thố ng Sƣ̉a đổ i: Tài sản của hệ thống bị sửa đổi trái phép Điề u này thƣờng làm cho hệ thố ng không làm đúng chƣ́c của nó Chẳ ng hạn nhƣ thay đổ i mật khẩ u , quyề n ngƣời dùng hệ thố ng làm họ không thể truy cập vào hệ thố ng để làm việc Can thiệp : Tài sản bị truy cập ngƣời khơng có thẩm quyền trù n thông thƣ̣ c hiện hệ thố ng bi ̣ ngăn chặn, sƣ̉a đổ i Các Các đe dọa đới với mợt hệ thớng thơng tin có thể đến từ nhiều nguồn và đƣợc thực hiện bởi các đố i tƣợ ng khác Chúng ta có thể chia thành loại đối tƣợng nhƣ sau : các đối tƣợng từ bên hệ thống (insider), là nhƣ̃ng ngƣời có quyề n truy cập hợ p pháp đố i với hệ thố ng , nhƣ̃ng đố i tƣợ ng bên ngoài hệ thố ng (hacker, cracker), thƣờng các đố i tƣợ ng này tấ n công qua nhƣ̃ng đƣờng kế t nố i với hệ thố ng nhƣ Internet chẳ ng hạn, và thƣ́ ba là các phầ n mề m (chẳ ng hạn nhƣ spyware, adware …) chạy hệ thố ng Các biện pháp ngăn chặn: Thƣờng có biện pháp ngăn chặn: Điề u khiể n thông qua phầ n mề m : dƣ̣ a vào các chế an toàn bảo mật của hệ thố ng nề n (hệ điề u hành), các thuật toán mật mã học Điề u khiể n thông qua phầ n cƣ́ng : các chế bảo mật , các thuật toán mật mã học đƣợc cứng hóa để sử dụng Điề u khiể n thông qua các chính sách của tổ chƣ́c : ban hành các qui đinh ̣ của tổ chƣ́c nhằ m đảm bảo tin h an toa n ba o mậ t cu a hệ thố ng ̉ ̉ ́ ̀ Trong môn học này chúng ta tập trung xem xét các thuật toán mật mã học nhƣ là một phƣơng tiện bản, chủ yếu để đảm bảo an toàn cho hệ thống Mục tiêu và nguyên tắ c chung của an toàn bảo mâ ̣t thông tin Ba mục tiêu của an toàn bảo mật thông tin: Tính bí mật: Tài sản của hệ thống đƣợc truy cập ngƣời có thẩm quyề n Các loại truy cập gờm có : đọc (reading), xem (viewing), in ấ n (printing), sƣ̉ dụng chƣơng trình, hoặc hiể u biế t về sƣ̣ tồ n tại của một đố i tƣợ ng tổ chƣ́c Tính bí mật có thể đƣợ c bảo vệ nhờ việc kiể m soát truy cập (theo nhiề u kiể u khác ) hoặc nhờ các thuật toán mã hóa liệu Kiế m soát truy cập chỉ có thể đƣợ c thƣ̣ c hiện với các hệ thố ng phầ n cƣ́ng vật lý Cịn đới với các liệu cơng cợng thƣờng phƣơng pháp hiệu quả là các phƣơng pháp của mật mã học Tính toàn vẹn liệu: tài sản của hệ thống đƣợc thay đởi ngƣời có thẩm quyền qù n Tính sẵn dùng: tài sản sẵn sàng đƣợc sử dụng ngƣời có thẩm Hai nguyên tắ c của an toàn bảo mật thông tin: Chƣơng I: Giới thiê ̣u Việc thẩ m n ̣ h về bảo mật phả i là khó và cầ n tính tới tấ t cả các tình huố ng khả cơng có thể đƣợc thực hiện , Tài sản đƣợc bảo vệ cho tới hết gía trị sử dụng hết ý nghĩa bí mật Mâ ̣t mã học (cryptology) Mật mã học bao gồm hai lĩnh vực (cryptanalysis-codebreaking) đó: : mã hóa (cryptography) và thám mã Mã hóa: nghiên cƣ́u các thuật toán và phƣơng thƣ́c để đảm bả o tính bí mật và xác thực của thông tin (thƣờng là dƣới dạng cá c văn bản lƣu trƣ̃ máy tính ) Các sản phẩ m của linh ̃ vƣ̣ c này là các hệ mã mật , các hàm băm , các hệ chữ ký điện tử , các chế phân phớ i, quản lý khóa và các giao thức mật mã Thám mã: Nghiên cƣ́u các phƣơng pháp phá mã tạo mã giả Sản phẩm của lĩnh vực này là các phƣơng pháp thám mã , các phƣơng pháp giả mạo chữ ký , các phƣơng pháp tấ n công các hàm băm và các giao thƣ́c mật ma.̃ Trong giới hạn của môn học này chúng ta chủ yế u tập trung vào tìm hiể u các vấ n đề mã hóa với các hệ mã mật, các hàm băm, các hệ chữ ký điện tử, các giao thức mật mã Mã hóa (cryptography) ngành khoa học phương pháp truyền tin bảo mật Trong tiếng Hy Lạp, “Crypto” (krypte) có nghĩa che dấu hay đảo lộn, “Graphy” (grafik) có nghĩa từ [3] Ngƣời ta quan niệm rằng : từ, ký tự của bản văn bản gớc có thể hiểu đƣợc cấu thành nên bản rõ (P-Plaintext), thƣờng thì là các đoạn văn bản mợt ngơn ngƣ̃ nào đó ; cịn từ, ký tự dạng bí mật không thể hiểu đƣợc đƣợc gọi là bản mã (C-Ciphertext) Có phƣơng thức mã hoá bản: thay thế và hoán vị: Phƣơng thức mã hoá thay thế là phƣơng thức mã hoá mà từng ký tự gốc hay mợt nhóm ký tự gớc của bản rõ đƣợc thay thế các từ, các ký hiệu khác hay kết hợp với cho phù hợp với một phƣơng thức định và khoá Phƣơng thức mã hoá hoán vị là phƣơng thức mã hoá mà các từ mã của bản rõ đƣợc sắp xếp lại theo một phƣơng thức định Các hệ mã mật thƣờng sƣ̉ dụng kế t hợ p cả hai kỹ thuật này Khái niệm hệ mã mật (CryptoSystem) Một hệ mã mật (P, C, K, E, D) thoả mãn điều kiện sau: 1) P không gian rõ: tập hữu hạn rõ có thể có 2) C không gian mã: tập hữu hạn mã có thể có 3) K kkhơng gian khố: tập hữu hạn khoá có thể có 4) Đối với k K, có quy tắc mã hoá ek E quy tắc giải mã tương ứng dk D Với ek: P →C dk: C →P hàm mà dk(ek(x)) = x cho rõ x P Hàm giải mã dk chính ánh xạ ngược hàm mã hóa ek [5] Chƣơng I: Giới thiê ̣u Thƣờng thì không gian các bản rõ và không gian các bản mã là các văn bản đƣợ c tạo thành từ một bộ chữ cái A nào Đó có thể là bợ chƣ̃ cái tiế ng Anh , bộ mã ASCII, bộ mã Unicode đơn giản là các bit và Tính chất là tính chất quan trọng của mã hoá Nợi dung của nói rằng nếu mã hoá bằng ek và bản mã nhận đƣợc sau đƣợc giải mã bằng hàm dk kết quả nhận đƣợc phải là bản rõ ban đầu x Rõ ràng trƣờng hợp này, hàm ek(x) phải là một đơn ánh, nếu khơng ta khơng giải mã đƣợc Vì nếu tờn tại x1 x2 cho y = ek(x1) = ek(x2) nhận đƣợc bản mã y ta khơng biết đƣợc mã từ x1 hay x2 Trong một hệ mật bất kỳ ta có |C| ≥ |P| quy tắc mã hoá là mợt đơn ánh Khi |C| = |P| hàm mã hoá là một hoán vị Mô hin ̀ h truyề n tin bản của mâ ̣t mã học và luật Kirchoff Mô hin ̀ h truyề n tin thông thƣờng : Trong mô hin ̀ h truyề n tin thông thƣờng thông tin đƣợ c truyề n (vận chuyể n) tƣ̀ ngƣời gƣ̉i đế n ngƣời nhận đƣợ c thƣ̣ c hiện nhờ một kênh vật lý (chẳ ng hạn nhƣ việc gƣ̉i thƣ) đƣợ c coi là an toàn Mơ hình trù n tin bản của mật mã học: K1 Sender X K2 Encrypt Y Insecured Channel Y Decrypt X Receiver Enemy Hình 1.1: Mơ hình bản của truyền tin bảo mật Đây là mơ hình bản của truyền tin bảo mật Khác với truyền tin thơng thƣờng, có các ́u tớ mới đƣợc thêm vào nhƣ khái niệm kẻ địch (E-Enemy), khoá mã hoá giải mã K để đảm bảo tin ́ h bảo mật của thông tin cần truyền Trong mô hình này ngƣời gƣ̉i S (Sender) muốn gửi một thông điệp X (Message – là một bản rõ ) tới ngƣời nhận R (Receiver) qua một kênh truyền không an toàn (Insecured Channel), kẻ địch E (Enemy) có thể nghe trợm, hay sửa đởi thơng tin X Vì vậy, S sử dụng phép biến đởi, tức mã hoá (E-Encryption) lên thông tin X dạng đọc đƣợc (Plaintext) để tạo một đoạn văn bản đƣợ c mã hố Y (C-Ciphertext) khơng thể hiể u đƣợc theo một quy luật thông thƣờng sƣ̉ dụng một thông tin bí mật đƣợc gọi là khoá K1 (Key), khoá K1 chính là thông số điều khiển cho phép biến đổi từ bản rõ X sang bản mã Y (chỉ bên tham gia truyền tin S và R mới có thể biế t khóa này) Giải mã (D-Decryption) trình ngƣợc lại cho phép ngƣời nhận thu đƣợc thông tin X ban đầu từ đoạn mã hoá Y sƣ̉ dụng khóa giải mã K (chú ý là khóa giải mã và khóa mã hóa có thể khác hoặc là một tùy thuộc vào hệ mã sƣ̉ dụng) Các phép biến đổi đƣợc sử dụng mô hình truyền tin tḥc mợt hệ mã mật (Cryptosytem) nào Chƣơng I: Giới thiê ̣u Quá trình mã hóa và giải mã u cầu các quá trình biến đởi liệu từ dạng ngun thuỷ thành in put cho việc mã hóa và chuyể n output của quá trình giải mã thành bản rõ Các quá trình này là các quá trình biến đởi khơng khóa và đƣợc gọi là các quá trình encode và decode Theo luật Kirchoff (1835 - 1903) (một nguyên tắ c bản mã hố) thì: tồn chế mã/giải mã trừ khố khơng bí mật kẻ địch [5] Rõ ràng đối phƣơng không biết đƣợc hệ mã mật sử dụng thuật toán mã hóa gì việc thám mã khó khăn Nhƣng không thể tin vào độ an toàn của hệ mã mật dựa vào một giả thiết không chắc chắn là đối phƣơng không biết thuật toán sử dụng Vì vậy, trình bày một hệ mật bất kỳ , giả thiết hệ mật đƣợc trình bày dƣới ḷt Kirchoff Ý nghĩa của luật Kirchoff : sự an toàn của các hệ mã mật không phải dựa vào sự phƣ́c tạp của thuật toán mã hóa sƣ̉ dụng Sơ lƣợc về lich ̣ sƣ̉ mâ ̣t mã học Mật mã học là một ngành khoa học có một lich ̣ sƣ̉ khoảng 4000 năm Các cổ vật của ngành khảo cổ học thu đƣợ c đã cho thấ y điề u này Nhƣ̃ng ngƣời Ai cập cổ đại đã sƣ̉ dụng các chữ tƣợng hình nhƣ là mợt dạng mã hóa đơn giản các bia mợ của họ Các tài liệu viết tay khác cũng cho thấy các phƣơng pháp mã hóa đơn giản đầu tiên mà loài ngƣời đã sử dụng là của ngƣời Ba Tƣ cổ và ngƣời Do Thái cổ Tuy vậy có thể chia lich ̣ sƣ̉ mật mã học thành hai thời kỳ nhƣ sau: Thời kỳ tiề n khoa học : Tƣ̀ trƣớc công nguyên cho tới năm 1949 Trong giai đoạn này mật mã học đƣợc coi là một nghệ thuật nhiều là một môn khoa học đã đƣợ c ƣ́ng dụng thƣ̣ c tế Lịch sử của mật mã học đƣợc đánh dấu vào năm 1949 Claude Shannon đƣa lý thuyết thông tin Sau thời kỳ này một loạt các nghiên cƣ́u quan trọng của nghành mật mã học đã đƣợc thực hiện chẳng hạn nhƣ các nghiên cứu mã khối , sƣ̣ đời của các hệ mã mật khóa công khai và chƣ̃ ký điện tƣ̉ Qua nhiề u thế kỷ phát triể n của mật mã học chủ yế u đƣợ c phục vụ cho các mục đích quân sƣ̣ (gián điệp , ngoại giao , chiế n tranh …) Một ví dụ điể n hình là 2000 năm trƣớc hoàng đế La mã Julius Caesar đã tƣ̀ng sƣ̉ dụng một thuật toán thay thế đơn giản mà ngày đƣợc mang tên ông cuộc chiến tranh Gallic Tác phẩm “A manuscript on Deciphering Cryptography Messages” của Abu al -Kindi đƣợc viết vào thế kỷ thứ đƣợ c tìm thấ y tại Istabul vào năm 1987 đã cho thấ y nhƣ̃ng nhà khoa học Ả rập là nhƣ̃ng ngƣời đầ u tiên đã phát triể n các phƣơng pháp thám mã dƣ̣ a vào phân tic ́ h tầ n số xuấ t hiện của các ký tƣ̣ đố i với các hệ mã thay thế đơn âm (một phƣơng pháp đƣợc sử dụng rộng rãi thời kỳ Trung cổ đơn giản và khá hiệu quả) Ở châu Âu thời kỳ Trung cổ là một khoảng thời gian u ám và tăm tối của lịch sử nên không có nhiề u phát triể n mạnh về văn hóa nói chung và mật mã học nói riêng Một vài sự kiện đƣợc ghi lại các vị linh mục nhƣng có Roger Bacon là ngƣời thực sự đã viết mật mã học tác phẩm “Secret Work of Art and the Nullity of Magic” vào năm 1200 Vào thời Trung cổ một cái tên nổi tiếng là Chaucer, ngƣời đã đƣa các cơng trình nghiên cứu nghiêm túc đầu tiên mật mã học các Chƣơng I: Giới thiê ̣u tác phẩm của chẳng hạn nhƣ “Treatise on the Astrolabe” Trong thời kỳ Trung cổ ở phƣơng Tây cuốn sách của Blaise De Vegenere (ngƣời phát minh thuật t oán mã hóa thay thế đa âm tiế t ) đƣợ c xem nhƣ là một tổng kết các kiến thức mật mã học cho tới thời điểm giờ, bao gồm cả thuật toán thay thế đa âm tiết và mợt vài sơ đờ khóa tự đợng Blaise De Vegenere cũng là tác giả của hệ mã mang t ên ông, hệ mã này đã tƣ̀ng đƣợ c xem là an toàn tuyệt đố i và đƣợ c sƣ̉ dụng một thời gian dài, nhiên Charles Babbages đã thực hiện thám mã thành công vào năm 1854 nhƣng điều này đƣợc giữ bí mật Một thuật toán thám mã đƣợc phát hiện độc lập một nhà khoa học ngƣời Phổ (thuộc nƣớc Đƣ́c ngày ) có tên Friedrich Kasiski Tuy vậy việc thiếu các thiết bị cải tiến nên các biến thể của tḥt toán mã hóa này vẫn cịn đƣợc sử dụng năm đầu của thế kỷ 20 mà tiêu biểu là việc thám mã thành công máy điện tín Zimmermann của quân Đƣ́c (một các sƣ̣ kiện tiêu biể u của mật mã học ) thế chiến thứ và kết quả là sự tham gia của Mỹ vào cuộc chiến Với sƣ̣ xuấ t hiện của các hệ thố ng máy tính cá nhân và mạng máy tính các thông tin văn bản ngày càng đƣợ c lƣu trƣ̃ và xƣ̉ lý nhiề u các máy tính đó nảy sinh yêu cầ u về an toàn bảo mật đố i với các thông tin đƣợ c lƣu trƣ̃ , xƣ̉ lý và truyề n giƣ̃a các máy tính Vào đầu năm 1970 là sự phát triển của các tḥt toán mã hóa khới đầu tiên : Lucipher DES DES sau đó đã có một sƣ̣ phát triể n ƣ́ng dụng rƣ̣ c rỡ cho tới đầ u nhƣ̃ng năm 90 Vào cuối năm 1970 chứng kiến sự phát triển của các tḥt tốn mã hóa khóa cơng khai sau Whitfield Diffie và Martin Hellman công bố bài báo “New Directions in Cryptography” làm tảng cho sự đời của các hệ mã khóa công khai và các hệ chƣ̃ ký điện tƣ̉ Do nhƣợ c điể m của các hệ mã mật khóa công khai là chậm nên các hệ mã khố i vẫn tiế p tục đƣợ c phát triể n với các hệ mã khố i mới đời để thay thế cho DES vào cuố i thế kỷ 20 nhƣ IDEA, AES hoặc 3DES (một cải tiế n của DES) Gầ n nhấ t là các sự kiện liên quan tới các hàm băm MD (một hàm băm thuộc họ MD Ron Rivest phát triển ) và SHA Một nhóm các nhà khoa học ngƣời Trung Quố c (Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu) đã phát triể n các phƣơng pháp cho phép phát hiện các đụng độ của các hàm băm đƣợc sử dụng rộng rãi số các hàm băm này Đây là một sƣ̣ kiện lớn đố i với ngành mật mã học sƣ̣ ƣ́ng dụng rộng rãi và có thể xem là cịn quan trọng bản thân các hệ mã mật của các hàm băm Do sƣ̣ kiện này các hãng viế t phầ n mề m lớn (nhƣ Microsoft) và các nhà mật mã học đã khuyến cáo các lập trình viên sử dụng các hàm băm mạnh (nhƣ SHA-256, SHA-512) các ứng dụng Bruce Schneier (một nhƣ̃ng nhà mật mã học hàng đầ u , tác giả của hệ mã Blowfish) đã tƣ̀ng nói rằ ng các hin ̀ h thƣ́c tấ n công đố i với các hệ mã mật nói riêng và tấ n công đố i với các hệ thố ng máy tin rở nên hoàn thiện ́ h nói chung sẽ ngày càng t “Attacks always get better ; they never get worse ” và lich ̣ sƣ̉ phát triể n của mật mã học chính là lịch sử phát triển của các hình thức công đối với các hệ mã mật đƣợc sƣ̉ dụng Chƣơng I: Giới thiê ̣u Phân loại các thuâ ̣t toán mâ ̣t mã học Có nhiều cách khác để có thể phân loại các thuật toán mật mã học đƣợc học chƣơng trình Ở phân loại các thuật toán mật mã học dƣ̣ a vào hai loại tiêu chí Tiêu chí thƣ́ nhấ t là dƣ̣ a vào các dich ̣ vụ an toàn bảo mật mà các thuật toán cung cấ p, dƣ̣ a vào số lƣợ ng khóa sƣ̉ dụng (0, 1, 2) có các thuật toán mã hóa sau: Các thuật toán mã hóa khóa bí mật tƣơng ứng với các h ệ mã mật khóa bí mật hay khóa đố i xƣ́ng SKC (Symmetric Key Cryptosytems), vai trò của ngƣời nhận và ngƣời gƣ̉i là nhƣ , cả hai có thể mã hóa và giải mã thông điệp , nhƣ Caesar , DES, AES … Khóa sƣ̉ dụng cho các thuật toán này là khóa cho cả việc mã hóa và giải mã Các tḥt toán mã hóa khóa cơng khai tƣơng ứng với các hệ mã khóa cơng khai PKC (Public Key Cryptosystems) Đơi các hệ mã này cịn đƣợc gọi là các hệ mã khóa bất đới xứng (Asymmetric Key Cryptosytems) Khóa sử dụng cho các thuật toán này là khóa, mợt cho việc mã hóa và mợt cho việc giải mã , khóa mã hóa đƣợc cơng khai hóa Các thuật toá n tạo chƣ̃ ký điện tƣ̉ (Digital Signature Algorithms) Các thuật toán tạo chữ ký điện tử tạo thành các hệ chữ ký điện tử Thông thƣờng mỗi hệ chƣ̃ ký điện tƣ̉ có cùng sở lý thuyế t với một hệ mã mật khóa công khai nhƣng với cách áp dụng khác Trong chƣơng trình học chúng ta sẽ học một số hệ chƣ̃ ký điện tƣ̉ phổ biế n là RSA, ElGammma… Các hàm băm (Hash functions) Các hàm băm là các tḥt toán mã hóa khơng khóa có khóa và thƣờng đƣợ c sƣ̉ dụng các hệ chƣ̃ ký điện tƣ̉ hoặc các hệ mã khóa cơng khai Tiêu chí thƣ́ hai phân loại các thuật toán mã hóa dƣ̣ a cách thƣ́c xƣ̉ lý input của thuật toán (tƣ́c là bản rõ ), dƣ̣ a tiêu chí này chúng ta có hai loại thuật toán mã hóa sau: Các thuật toán mã hóa khới (chẳ ng hạn nhƣ DES , AES …) xƣ̉ lý bản rõ dƣới các đơn vị bản là các khới có kích thƣớc giớng Các tḥt toán mã hóa dịng (RC4 …) coi bản rõ là một luồ ng bit, byte liên tục 10 Một số ƣ́ng dụng của mâ ̣t mã học Ngày khó có thể tìm thấy các ứng dụng máy tính lại không sƣ̉ dụng tới các thuật toán và các giao thƣ́c mật mã học Tƣ̀ các ƣ́ng dụng cho các máy tính cá nhân (Desktop Applications ) cho tới các chƣơng trình hệ thố ng nhƣ các hệ điề u hành (Operating Systems) hoặc các ƣ́ng dụng mạng nhƣ Yahoo Messenger hoặc các hệ sở dƣ̃ liệu đề u có sƣ̉ dụng các thuật toán mã hóa mật khẩ u ngƣ ời dùng bằng một hệ mã hoặc một hàm băm nào đó Đặc biệt với sự phát triển mạnh mẽ của thƣơng mại điện tử các mơ hình chữ ký điện tử ngày càng đóng vai trị tích cực cho mợt mơi trƣờng an toàn cho ngƣời dùng Tuy vậy vẫn có thể chia các lĩnh vực ứng dụng của mật mã học thành các lĩnh vực nhỏ nhƣ sau: ... HÀM BĂM 10 1 Chƣ̃ ký điện tƣ̉ 10 1 1. 1 Khái niệm chữ ký điện tử 10 1 1. 2 Hệ chữ ký RSA 10 2 1. 3 Hệ chữ ký ElGammal 10 3 1. 4 Chuẩn chữ... thể mã hoá với bít liệu: 000 = Sunday 0 01 = Monday 010 = Tuesday 011 = Wednesday 10 0 = Thursday 10 1 = Friday 11 0 = Saturday 11 1 is unused Nế u thông tin này đƣợ c biể u diễn bởi ch̃i... rằng nếu S1 và S2 là luỹ đẳng và giao hoán S1×S2 cũng luỹ đẳng, đơn giản vì: (S1×S2)×(S1×S2) = S1×(S2×S1)×S2 = S1×(S1×S2)×S2 = (S1×S1)×(S2×S2) = (S1×S2) Vậy nếu ḿn (S1×S2) khơng