1. Trang chủ
  2. » Giáo án - Bài giảng

GT BAO MAT THONG TIN

141 3 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

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: Chƣơng VI: Quản lý khóa Ngƣợc lại, giả sử có một thuật toán khác là B dùng để phá mã ElGammal, tức B( p,  ,  , y1 , y )  x  y ( y1a ) 1 mod p Áp dụng B cho   bA , y1 = bB, y2 =1, ta đƣợc B( p,  , bA , bB ,1) 1  (1.(bBaA ) 1 ) 1   aA aB mod p, tức giải đƣợc bài toán Diffie-Hellman  Giao thức là không an toàn đối với việc công chủ động bằng cách đánh tráo đƣờng Nghĩa là một ngƣời thứ ba C có thể đánh tráo các thơng tin trao đổi A và B Chẳng hạn, C thay  aA mà A định gửi cho B  a' A thay  aB mà B định gửi cho A  a'B Nhƣ vậy, sau thực hiện giao thức trao đổi khoá, A đã lập một khoá chung a với C mà vẫn tƣởng là với B; đồng thời B cũng lập một khoá chung  a' A aB với C mà vẫn tƣởng là với A C có thể giả mã mọi thơng báo mà A tƣởng nhầm là gửi đến B cũng nhƣ mọi thơng báo mà B tƣởng nhầm là gửi đến A A a 'B Một cách khắc phục kiểu công này là làm để A và B có kiểm thử để xác nhận tính đắn của các khoá công khai bA bB Ngƣời ta đƣa vào giao thức trao đởi khố Diffie-Hellman thêm vai trị điều phới của mợt TA để đƣợc mợt hệ phân phối khoá Diffie-Hellman nhƣ một cách khắc phục nhƣợc điểm này Trong hệ phân phối khoá DiffieHellman, sự can thiệp của TA là yếu, thực TA làm việc là cấp chứng xác nhận khoá cơng khai cho từng ngƣời dùng chứ khơng địi hỏi biết thêm bất cứ một bí mật nào của ngƣời dùng Tuy nhiên, nếu chƣa thoả mãn với vai trò hạn chế của TA có thể cho TA mợt vai trị xác nhận ́u hơn, khơng liên quan đến khoá, chẳng hạn nhƣ xác nhận thuật toán kiểm thử chữ ký của ngƣời dùng, bản thân các thông tin khoá (cả bí mật lẫn công khai) các ngƣời dùng trao đởi trực tiếp với Với cách khắc phục có vai trị hết sức hạn chế của TA, ta đƣợc giao thức sau đây: 3.2 Giao thức trao đởi khố Diffie-Hellman có chứng xác nhận Mỗi ngƣời dùng A có mợt danh tính ID(A) và một sơ đồ chữ ký với thuật toán ký sigA và thuật toán kiểm thử verA TA cũng có mợt vai trị xác nhận, nhƣng khơng phải xác nhận bất kỳ thông tin nào liên quan đến việc tạo khoá mật mã của ngƣời dùng (dù là khoá bí mật hay khoá công khai), mà là xác nhận một thông tin ít quan hệ khác nhƣ thuật toán kiểm thử chữ ký của ngƣời dùng Cịn bản thân các thơng tin liên quan đến việc tạo khoá mật mã các ngƣời dùng trao đởi trực tiếp với TA cũng có mợt sơ đờ chữ ký của mình, gờm mợt tḥt toán ký sigTA và một thuật toán kiểm thử công khai verTA Chứng mà TA cấp cho ngƣời A là: C(A) = (ID(A), verA, sigTA(ID(A), verA)) Rõ ràng chứng TA khơng xác nhận bất kỳ điều liên quan đến việc tạo khoá của A cả Việc trao đổi khoá hai ngƣời dùng A và B đƣợc thực hiện theo giao thức sau đây: 1) A chọn ngẫu nhiên số aA (0 ≤ aA ≤ p-2), tính bA   aA mod p và gửi bA cho B 2) B chọn ngẫu nhiên số aB (0 ≤ aB ≤ p-2), tính bB   aB mod p tính tiếp K  bAaB mod p, y B  sig B (bB , bA ), và gửi (C(A), bB, yB) cho A 125 Chƣơng VI: Quản lý khóa A tính K  bBa A mod p, dùng verB để kiểm thử yB, dùng verTA để kiểm thử C(B), 3) sau tính yA = sigA(bA, bB) và gửi (C(A), yA) cho B B dùng verA để kiểm thử yA dùng verTA để kiểm thử C(A) 4) Nếu tất cả các bƣớc đƣợc thực hiện và các phép kiểm thử cho kết quả đắn giao thức đƣợc kết thúc, và cả A và B có đƣợc khoá chung K Do việc dùng các thuật toán kiểm thử nên A biết chắc giá trị bB là của B và B biết chắc giá trị bA của A, loại trừ khả một ngƣời C nào khác đánh tráo các giá trị đƣờng 3.3 Giao thức trao đởi khố Matsumoto-Takashima-Imai Giao thức trình bày mục dùng ba lần chuyển tin qua lại để thiết lập một khoá chung Các tác giả Nhật Matsumoto, Takashima và Imai đề nghị một cải tiến để dùng một giao thức gồm hai lần chuyển tin (một từ A đến B và một từ B đến A) để thoả thuận khoá nhƣ sau: Ta giả sử rằng trƣớc thực hiện giao thức, TA đã ký cấp chứng cho ngƣời dùng A theo cách giao thức trao đổi DH: C(A) = (ID(A), bA, sigTA(ID(A), bA)) và thuật toán kiểm thử chữ ký verTA là công khai Trong giao thức này, các bA không trực tiếp tạo nên các khoá mật mã cho truyền tin, mà với phiên truyền tin bảo mật, khoá phiên (sesion key) đƣợc tạo cho từng phiên theo giao thức Giao thức trao đổi khoá phiên MTI gờm ba bƣớc (trong có hai lần chuyển tin) nhƣ sau: A chọn ngẫu nhiên số rA (0 ≤ rA ≤ p-2), tính s A   rA mod p, và gửi (C(A), sA) 1) cho B B chọn ngẫu nhiên số rB (0 ≤ rB ≤ p-2), tính s B   rB mod p, và gửi (C(B), sB) 2) cho A A tính K  s BaA bBrA mod p, với giá trị bB thu đƣợc từ C(B) 3) B tính K  s AaB bBrB mod p, với giá trị bB thu đƣợc từ C(A) Hai cách tính cho mợt giá trị K   rAaB  rB aA mod p Giao thức này cũng có khả giữ bí mật khoá K nhƣ đối với giao thức DiffieHellman trƣớc sự cơng thụ đợng Tuy nhiên, khơng có chứng đới với các giá tri sA, sB nên vẫn có nguy của sự công tích cực bằng việc đánh tráo đƣờng mợt ngƣời C nào theo kiểu sau đây: C(A),  r ' A C(A),  rA A C(B),  r 'B C C(B),  rB B Lẽ A gửi đến B cặp (C(A), sA) C đánh tráo bằng cách (C(A), sA) và gửi đến B giá trị (C(A), s‟A) với s' A   r ' A mod p Và ngƣợc lại, đáng lẽ B gửi đến A giá trị (C(B), sB) 126 Chƣơng VI: Quản lý khóa C đánh trao bằng cách nhận (C(B), sB) s' B   r 'B và gửi đến A giá trị (C(B), s‟B) với mod p Khi A tính đƣợc khoá: K1   rAaB r 'B aA mod p, và B tính đƣợc khoá: K   r ' A aB rB aA mod p Hai giá trị K1 K2 này khác nên không giúp A và B truyền tin đƣợc cho nhau, nhƣng C khơng có khả tính đƣợc giá trị nào hai giá trị (vì khơng biết a A aB) nên khác với giao thức Diffie-Hellman, C có thể phá rối, chứ không thể đánh cắp thông tin đƣợc 3.4 Giao thức Girault trao đởi khố khơng chứng Giao thức Girault đƣợc đề xuất năm 1991 Trong giao thức này, ngƣời sử dụng A không cần dùng chứng C(A) mà thay bằng một khoá công khai tự chứng thực đƣợc cấp trƣớc một TA Phƣơng pháp này sử dụng kết hợp các đặc tính của bài toán RSA và logarit rời rạc Giả sử n là tích của hai số nguyên tố lớn p và q, n = p*q, p và q có dạng p = 2p 1+1, q = 2q1+1, p1 q1 cũng là các sớ ngun tớ Nhóm nhân Z n* đẳng cấu với tích Z *p xZ q* Cấp cao của một phần tử Z n* là bội chung bé của p-1 q-1, tức là bằng 2p1q1 Giả sử  là một phần tử cấp 2p1q1 của Z n* Nhóm tuần hoàn sinh  đƣợc ký hiệu là G, bài toán tính logarit rời rạc theo số  G đƣợc giả thiết là khó Các sớ n và  là công khai Chỉ TA biết p, q TA chọn số mũ công khai e với UCLN(e,  (n) ) = 1, và giữ bí mật d  e 1 mod  (n) Mỗi ngƣời dùng A có mợt danh tính ID(A), chọn ngẫu nhiên một số a A  G , giữ bí mật aA tính bA   aA mod n , rồi gửi aA, bA cho TA TA thử lại điều kiện bA   aA mod n , rồi cấp cho A một khoá công khai tự chứng thực pA = (bA-ID(A))d mod n Trong khố cơng khai pA khơng có thơng tin aA nhƣng TA cần biết aA để thử điều kiện bA   aA mod n Giao thức Girault trao đổi khoá hai ngƣời dùng A và B đƣợc thực hiện các bƣớc sau đây: 1) A chọn ngẫu nhiên rA  G , tính s A   rA mod n và gửi cho B các giá trị (ID(A), pA, sA) 2) B chọn ngẫu nhiên rB  G , tính s B   rB mod n và gửi cho B các giá trị (ID(B), pB, sB) 3) a r A tính khố K  s BA ( p Be  ID(V )) A mod n, B tính khố K  s AaB ( p Ae  ID( A)) rB mod n 127 Chƣơng VI: Quản lý khóa Cả hai giá trị của K bằng và bằng K   rAaB rB aA mod n Bằng các lập luận tƣơng tự nhƣ mục trƣớc, ta dễ thấy rằng một ngƣời thứ ba C khó mà tạo các thơng tin giả mạo để gửi đến A B, nếu công bằng cách đánh tráo đƣờng có thể phá rối để ngăn cản A và B tạo lập khoá chung nhƣng không thể đánh cắp thông tin trao đổi A và B Còn lại vấn đề: tại TA cần biết aA và thử điều kiện bA   aA mod n trƣớc cấp pA cho A! Ta giả sử rằng TA không biết aA và cấp pA = (bA-ID(A))d mod n cho A , thử xem có thể xảy chụn gì? Mợt ngƣời thứ ba C có thể chọn mợt giá trị a‟A tính b' A   a 'A mod n , rồi tính b‟C = b‟A - ID(A) – ID(C) và đƣa (ID(C), b‟C) cho TA TA cấp cho C một “khoá công khai tự chứng thực”: p‟C = (b‟C – ID(C))d mod n Vì b‟C – ID(C) = b‟A – ID(A) nên thực tế C đã đƣợc cấp: p‟C = p‟A = (b‟A – ID(A))d mod n Bây giờ giả sử A và B thực hiện giao thức trao đổi khoá và C xen vào Nhƣ vậy, A gửi cho B ( ID( A), p A ,  rA mod n) , nhƣng C đánh tráo nên B nhận đƣợc ( ID( A), p' A ,  r ' A mod n) Do đó, B và C tính đƣợc một khoá: K '   r ' A aB rB a 'A mod n  s Ba ' A ( p Be  ID( B)) r ' A mod n, A tính đƣợc khoá K   rAaB rB aA mod n (ID)A, p'A,  r ' A (ID)A, pA,  rA A (ID)B, pB,  rB C (ID)B, pB,  rB B B và C có mợt khoá khác với khoá của A nhƣng B vẫn nghĩ rằng có chung khoá với A Vì thế, C có thể giải mã mọi thông báo mà B gửi cho A, tức đánh cắp thông tin từ B đến A Việc TA biết aA và thử điều kiện bA   aA mod n trƣớc cấp pA cho A là để loại trừ khả đánh tráo nhƣ vậy của một kẻ công C 4.Bài tập Bài tập 6.1: Giả sử A và B sử dụng kỹ thuật phân phối khóa Diffie -Hellman để truyề n tin cho với số nguyên tố đƣợ c chọn là p = 71 và phần tử nguyên thủy α = a) Nế u khóa bí mật của A là XA = khóa cơng khai của A là gì? b) Nế u khóa bí mật của B là XB = 12 khóa cơng khai của B là gì? c) Cho biế t khóa bí mật dùng để truyề n tin? Bài tập 6.2: A và B sƣ̉ dụng kỹ thuật phân phố i khóa với p = 11 và phần tử nguyên thủy α = Diffie-Hellman để truyề n tin cho a) Hãy chứng minh rằng α = đúng là phầ n tƣ̉ nguyên thủy của Z*11 b) Nế u khóa công khai của A là YA = khóa bí mật của A là bao nhiêu? 128 Chƣơng VI: Quản lý khóa c) Giả sử B có khóa cơng khai là Y giƣ̃a A và B B = 3, hãy tìm khóa bí mật dùng để truyền tin 129 Chƣơng VII: Giao thƣ́c mâ ̣t mã CHƢƠNG VII: GIAO THƢ́C MẬT MÃ Giao thức Định nghĩa: Một giao thức (protocol) đơn giản chuỗi bước thực đó có ít bên tham dự, được thiết kế để thực nhiệm vụ đó.[2] Định nghĩa này đơn giản nhƣng chặt chẽ: “một chuỗi các bƣớc” nghĩa là mợt dãy các bƣớc có thứ tự, có đầu có cuối, bƣớc trƣớc phải đƣợc kết thúc trƣớc thực hiện bƣớc sau “Có ít hai bên tham gia” nghĩa là có thể có nhiều ngƣời tham gia thực hiện chuỗi bƣớc này, nếu mợt ngƣời thực hiện mợt chuỗi các bƣớc khơng thể gọi là một giao thức đƣợc Và cuối một giao thức phải đƣợc thiết kế nhằm đạt đƣợc tới một kết quả nào Mợt giao thức có đặc tính nhƣ sau:  Các bên tham gia phải hiểu cách thức và các bƣớc thực hiện một giao thức tham gia thực hiện  Các bên phải đồng ý tuyệt đối tuân thủ các bƣớc  Giao thức phải rõ ràng, tất cả các bƣớc phải đƣợc viết tƣờng minh, khơng có chỗ nào gây nên khả hiểu nhầm  Giao thức phải đầy đủ, tất cả các tình h́ng biến đởi phải đƣợc đƣa Giao thức mật mã là mợt giao thức có vận dụng các kiến thức của lý thuyết mật mã để đạt đƣợc các mục tiêu mặt an toàn và bảo mật cho hệ thống Các thành phần tham gia có thể là bạn bè tin tƣởng lẫn nhau, nhƣng cũng có thể là kẻ địch của Mợt giao thức mật mã có liên quan đến các thuật toán của mật mã nhƣng thông thƣờng mục đích của xa là tính bảo mật thuần tuý Các bên có thể tham dự vào việc chia sẻ các phần của một bí mật đƣợc dùng để chiết xuất mợt thơng tin nào đó, có thể kết hợp phát mợt chuỗi sớ ngẫu nhiên, có thể chứng minh danh tính của cho bên hay đồng thời ký vào một văn bản hợp đồng Toàn bộ vấn đề của lý thuyết mật mã là làm dị và chớng lại các khả nghe trộm hay lừa dối Nguyên tắc để thiết kế giao thức: phải làm để không ai, khơng bên nào có thể thu đƣợc nhiều hơn, biết đƣợc nhiều mà thiết kế ban đầu giả định Mục đích của giao thức Ngày nay, với sự phát triển vũ bão của hệ thống máy tính toàn cầu đến từng hợ gia đình, việc đƣa các nghi thức thủ tục làm ăn bình thƣờng của ngƣời ta thực hiện qua mạng cũng là không bao xa Nhƣ vậy cần phải thiết kế thủ tục làm việc tƣơng ứng cho máy tính để có thể thay thế cho các thủ tục đời thƣờng Điểm khác biệt đặc trƣng là bây giờ ngƣời làm việc với thông qua các máy tính mà không cần thấy mặt Hơn máy tính khơng phải là ngƣời, khơng thể dễ dàng thích nghi với thay đổi nhƣ Vì vậy cần tính đến mọi tình h́ng, mọi khả có thể của giao thức 130 Chƣơng VII: Giao thƣ́c mâ ̣t mã Rất nhiều các thủ tục làm ăn hàng ngày của đƣợc tin tƣởng dựa sự có mặt của các bên đới tác, chính thế nên việc xây dựng giao thức máy tính là khơng cịn đơn giản nhƣ các thủ tục đời thƣờng mà thay thế Bạn cứ tự hỏi xem ngƣời ta có thể trao mợt chồng tiền mặt cho một ngƣời lạ để nhờ mua hàng có đƣợc khơng? Hay thử hỏi xem bạn có dám gửi thƣ cho chính phủ với phiếu bầu của bạn mà khơng có các thủ tục đảm bảo việc giấu tên Thật là ngây thơ nếu tin rằng mọi ngƣời làm việc mạng máy tính trung thực Và cũng thật là cả tin nếu cho rằng các nhà quản trị mạng, hay thậm chí cả các nhà thiết kế các mạng này là trung thực đến Dù hầu hết là nhƣ thế nhƣng cần một thiểu số ngƣời không trung thực cũng đủ ngây thiệt hại nếu các biện pháp đảm bảo Với phƣơng pháp hình thức hoá, có thể thử thiết kế các giao thức rời tìm hiểu, kiểm tra khả của có vững hay khơng trƣớc mọi kiểu xâm phạm của các kẻ khơng trung thực; từ mà cải tiến, phát triển lên để chống lại các kiểu cơng Bằng cách mà ngƣời ta đã xây dựng các giao thức cho các máy tính giải quyết đƣợc các nhiệm vụ, các bài toán đời sống hàng ngày Hơn giao thức máy tính là mợt hình thức trừu tƣợng hoá và không quan tâm đến việc cài đặt cụ thể Một giao thức là giống dù đƣợc cài đặt bất cứ hệ điều hành nào Vì thế mợt chúng đã có thể khẳng định đƣợc độ tin cậy của giao thức ta có thể áp dụng bất cứ đâu, dù là cho máy tính, cho điện thoại hay cho một lị vi sóng thơng minh Các bên tham gia vào giao thức (the players in protocol) Để có thể tiếp cận thống với tất cả các giao thức mợt điều cần thiết là có mợt qui định thống cách gọi tên tất cả các bên tham gia và dính líu có thể có giao thức: [6] Alice bên thứ các giao thức Bob bên thứ hai các giao thức Carol bên tham gia thứ ba các giao thức Dave bên tham gia thứ tƣ các giao thức Eve Mallory kẻ nghe trợm (eavesdropper) kẻ cơng chủ đợng có nhiều quyền lực mạng và nguy hiểm (malicious active attacker) Trent trọng tài (trusted arbitrator) Walter ngƣời canh gác (warden), có thể đứng canh gác Alice và Bob số giao thức một Peggy ngƣời chứng minh (prover) ngƣời thẩm tra (verifier), Peggy cần phải chứng minh với Victor mợt quyền sở hữu nào chẳng hạn nhƣ danh tính của khai là Victor hay là kẻ có thẩm quyền để đƣợc truy nhập vào một nơi quan trọng 131 Chƣơng VII: Giao thƣ́c mâ ̣t mã Các dạng giao thức 4.1 Giao thức có trọng tài Ngƣời trọng tài là ngƣời thoả mãn các điều kiện sau:  Khơng có quyền lợi riêng giao thức và không thiên vị cho một bên nào  Các bên tham gia có quyền lợi giao thức tin tƣởng vào trọng tài rằng bất kỳ cái mà nói và làm là và chính xác, đồng thời tin tƣởng hoàn thành trách nhiệm của giao thức Nhƣ vậy trọng tài có thể đứng để giúp hoàn thành các giao thức bên tham gia không tin tƣởng lẫn Ví dụ 1: Alice ḿn bán mợt chiếc xe cho một ngƣời lạ là Bob Bob muốn trả bằng séc, nhiên Alice lại khơng có cách nào để biết đƣợc séc có giá trị thật sự hay không Do vậy, cô ta muốn đƣợc chuyển séc trƣớc giao xe cho Bob và chính là mâu thuẩn bế tắc Bob cũng chẳng tin Alice nên khơng đƣa séc trƣớc nhận đƣợc chiếc xe Cách giải quyết thông qua Trent (ngƣời mà cả Bob và Alice tin tƣởng) và một giao thức diễn nhƣ sau để đảm bảo tính trung thực:  Alice chuyển vật cần bán cho Trent  Bob đƣa tờ séc cho Alice  Alice chuyển séc vào tài khoản của cô ta ngân hàng  Đợi một khoảng thời gian định đến séc đã chuyển xong, Trent giao hàng cho Bob Nếu tờ séc không hợp lệ Alice báo cho Trent biết với bằng chứng cụ thể và Trent giao trả lại hàng cho cô ta Trong giao thức này:  Alice tin tƣởng rằng Trent không trao hàng cho Bob trừ séc đƣợc chuyển xong và chuyển lại hàng cho ta nếu séc khơng có giá trị  Bob tin tƣởng Trent giữ hàng thời gian séc đƣợc chủn và giao cho mợt đƣợc chuyển xong  Trent không quan tâm đến việc tờ séc có giá trị thật sự và có chuyển đƣợc hay không, làm phần việc của cả hai trƣờng hợp có thể xảy nhƣ giao thức qui định, đơn giản đƣợc trả tiền công cả hai trƣờng hợp Ví dụ 2: Nhà băng cũng có thể đứng làm trọng tài cho ALice và Bob Bob sử dụng mợt cái séc có chứng nhận của nhà băng để mua bán với Alice:  Bob viết một séc và chuyển cho nhà băng  Sau cầm một số tiền từ tài khoản của Bob bằng giá trị của tờ séc, nhà băng ký chứng nhận lên séc và chuyển trả lại cho Bob 132 Chƣơng VII: Giao thƣ́c mâ ̣t mã  Alice giao xe cho Bob lúc Bob đƣa Alice tờ séc có chứng nhận của nhà  Alice chuyển séc vào nhà băng băng Giao thức này thực hiện đƣợc Alice tin tƣởng vào chứng nhận của nhà băng, tin rằng nhà băng cầm giữ số tiền của Bob cho cô ta mà khơng sử dụng vào đầu tƣ bất cứ đâu Tƣ tƣởng này đƣợc đem áp dụng vào thế giới máy tính, nhiên xuất hiện một số vấn đề định đối với hệ thống máy tính:  Có thể dễ dàng tìm thấy và đặt lịng tin vào mợt bên thứ ba trung gian (trọng tài) nếu ta biết và có thể nhìn tận mặt họ Tuy nhiên nếu hai bên tham gia giao thức đã nghi ngờ việc đặt lịng tin vào mợt bên thứ ba nào nằm khuất diện mạng máy tính cũng trở nên có thể đáng ngờ   tài Mạng máy tính phải tốn thêm chi phí để quản lý và bảo trì máy tính trọng tài Ln ln có khoảng trễ vốn gắn liền với bất kỳ một giao thức có trọng  Trọng tài phải tham gia vào mọi giao dịch mạng, điều có nghĩa trở nên mợt điểm thắt nút cở chai (bottleneck), dễ tắc mạng một giao thức đã đƣợc triễn khai cho một ứng dung rộng rãi Tăng cƣờng sớ trọng tài có thể giúp tránh bế tắc này nhƣng lại làm tăng thêm chi phí để quản lý bảo trì máy tính có trọng tài  Bởi tất cả mọi ngƣời mạng tin trọng tài, dễ gây một điểm nhạy cảm chịu áp lực công tập trung từ các kẻ rình rập để phá hệ thớng 4.2 Giao thức có ngƣời phân xử Để yên tâm giao dịch, Alice và Bob cần mời mợt trọng tài có uy tín cao, nhiên nảy sinh vấn đề việc phải trả số tiền xứng đáng cho ngƣời này, rõ ràng là không phải không đáng kể Vì vậy ngƣời ta đã nảy sinh ý nghĩ chia giao thức có trọng tài tham dự (arbitrated protocol) thành hai phân giao thức (subprotocol) hai cấp dƣới:  Một là một giao thức không cần đến trọng tài, thực hiện bất kỳ nào muốn tiến hành giao dịch  Hai là một arbitrated giao thức đƣợc sử dụng Alice và Bob cãi muốn có ngƣời phân xử Vì thế trƣờng hợp này ta không dùng khái niệm ngƣời trọng tài (arbitrated) với nghĩa là ngƣời phải trực tiếp tham gia vào giao thức, mà sử dụng ngƣời phân xử (adjudicator), bao hàm ý nghĩa ngƣời này khơng cần phải có mặt Alice và Bob tiến hành giao dịch mà đƣợc mời đến Alice và Bob yêu cầu giải quyết tranh cãi Cũng giống nhƣ trọng tài, ngƣời phân xử phải khơng có quyền lợi liên can đến giao dịch của Alice và Bob, và đƣợc cả hai ngƣời này tin tƣởng Anh ta không tham gia trực tiếp vào giao dịch nhƣ trọng tài nhƣng đứng để xác định xem là giao dịch có đƣợc tiến hành không và xác định bên sai bên nếu nhƣ có tranh cãi.Nhƣng điểm khác biệt trọng tài và ngƣời phân xử là ngƣời phân xử không phải ln ln cần thiết, nếu có tranh cãi mới cần ngƣời phân xử (khơng có tranh cãi thơi) 133 Chƣơng VII: Giao thƣ́c mâ ̣t mã Các thẩm phán là ngƣời phân xử chuyên nghiệp Khác với công chứng viên, một thẩm phán - ngƣời mà đƣợc biết đến hợp đồng này nào một hai ngƣời Alice hay Bob lôi ngƣời toà Giao thức dùng cho ký kết hợp đồng này có thể đƣợc hình thức hoá nhƣ sau: Ví dụ: Tại mọi thời điểm:  Alice và Bob thoả thuận các điều khoản hợp đồng  Alice ký hợp đờng  Bob ký hợp đờng Khi có tranh cãi cần giải quyết:  Alice và Bob đến gặp quan toà nhờ phân xử  Alice đƣa chứng cớ của ta  Bob trình bày các chứng cớ của  Quan toà xem xét các chứng cớ và phán quyết Ý tƣởng dùng ngƣời phân xử này có thể đem vào áp dụng máy tính Trong giao thức thế này nếu có mợt bên tham gia mà khơng trung thực liệu lƣu đƣợc từ giao thức cho phép ngƣời phân xử sau này phát hiện đƣợc là ngƣời đã lừa dới Nhƣ vậy thay ngăn chặn trƣớc sự lừa đảo, giao thức ngƣời phân xử phát hiện đƣợc lừa dối nếu xảy ra, thực tế này đƣợc phở biến rợng rãi có tác dụng ngăn chặn, làm lùi bƣớc kẻ có ý định lừa đảo 4.3 Giao thức tƣ̣ phân xƣ̉ Giao thức tƣ̣ phân xƣ̉ là loại tốt số các giao thức Loại giao thức này tự bản thân có thể đảm bảo đƣợc tính công bằng, không cần đến trọng tài hay một thẩm phán để phân xử tranh cãi Nghĩa là giao thức loại này đƣợc chế cho khơng thể có các kẽ hở cho tranh cãi nảy sinh Nếu có bên nào cớ ý sai luật tiến trình cho phép phía bên phát hiện và giao thức dừng lại lập tức Điều mong muốn cho tất cả các giao thức nên chế tạo nhƣ thế, nhƣng đáng tiếc là khơng phải lúc nào cũng có giao thức loại này cho mọi tình h́ng Các dạng tấn cơng đối với giao thức Nếu nhƣ giao thức đƣợc coi nhƣ một nghi thức giao tiếp để các bên làm việc với đới với cryptography giao thức, bên dƣới cái vỏ “ngoại giao” là các kỹ thuật, các thuật toán mật mã đƣợc vận dụng, cài đặt các bƣớc cụ thể của giao thức Các công của kẻ phá hoại nhằm phá hoại tính an ninh của hệ thống cũng nhƣ xâm phạm tính bí mật riêng tƣ của thơng tin, có thể hƣớng vào một các yếu tố sau: các xử lý kỹ thuật, các thuật toán mật mã hay là chính bản thân giao thức Trong phần này, hãy gác lại khả thứ - giả sử rằng các kỹ thuật và thuật toán mật mã là an toàn; xem xét khả thứ hai, tức là phân tích các dạng cơng có thể, kẻ thù lợi dụng các kẻ hở logic để kiếm lợi hay phá hoại Các dạng công có thể phân thành hai loại chính nhƣ sau: 134 Chƣơng VII: Giao thƣ́c mâ ̣t mã  Với dạng công thụ động: kẻ địch đứng ngoài nghe trợm chứ khơng can thiệp hay ảnh hƣởng đến giao thức Mục đích của là cớ gắng quan sát và thu lƣợm thông tin Tuy nhiên thông tin nghe trợm đƣợc dạng mã hoá, kẻ địch cần phải biết cách phân tích, giải mã mới dùng đƣợc (cipher only attack) Mặc dù hình thức cơng này khơng mạnh nhƣng khó phát hiện kẻ địch khơng gây đợng  Với dạng công chủ động (active attack): kẻ địch là một thế lực mạng, nắm nhiều khả và phƣơng tiện để có thể chủ đợng cơng can thiệp, gây ảnh hƣởng phức tạp đến giao thức Nó có thể đóng giả với mợt cái tên khác can thiệp vào giao thức bằng thông báo kiểu mới, xoá bỏ thông báo phát đƣờng truyền, thay thế thông báo thật bằng thông báo giả, ngắt ngang các kênh thông tin hay sửa chửa vào các kho thông tin mạng Các khả khác này là phụ tḥc vào tở chức mạng và vai trị của kẻ địch mạng Kẻ công công thụ động (Eve) cố gắng thu lƣợm thông tin từ các bên tham gia giao thức, thông qua thu nhập các thông báo truyền tin các bên để phân tích giải mã Trong đó, kẻ cơng chủ đợng (Mallory) có thể gây các tác hại phức tạp đa dạng Kẻ cơng có thể có mục đích đơn thuần là tóm đƣợc tin mà quan tâm, nhƣng ngoài có thể gây các phá hoại khác nhƣ phá hoại đƣờng truyền truy nhập vào hệ thống thông tin mà dành cho ngƣời có đủ thẩm quyền Kẻ địch công chủ động thật sự nguy hiểm, đặc biệt là các giao thức mà các bên khác không thiết phải tin Hơn phải nhớ rằng kẻ địch khơng phải có thể là kẻ xa lạ bên ngoài mà có thể là mợt cá nhân hợp pháp hệ thống, thậm chí chính là ngƣời quản trị mạng Ngoài cịn có thể có nhiều cá nhân liên kết với thành mợt nhóm kẻ địch, làm tăng lên sự nguy hiểm cho giao thức Một điều cũng có thể xảy là Mallory lại chính là đới tác giao thức Anh ta có thể có hành động lừa dối là không chịu tuân theo giao thức Loại kẻ địch này đƣợc là kẻ lừa đảo (cheater) Kẻ lừa đảo tḥc loại thụ đợng có thể làm theo giao thức nhƣng lại cớ tình thu nhặt thêm thông tin từ các bên đối tác là đƣợc phép theo qui định Kẻ lừa đảo chủ đợng phá vỡ giao thức mợt cớ gắng lừa dới Rất khó để giữ an toàn cho một giao thức nếu nhƣ phần lớn các bên tham gia là kẻ lừa đảo chủ động, nhiên đơi ngƣời ta cũng có các biện pháp để các bên hợp pháp có thể dị đƣợc sự lừa đảo diễn Tất nhiên các giao thức cũng cần phải đƣợc bảo vệ để chống lại kẻ lừa đảo loại thụ động 135 Tài liệu tham khảo TÀI LIỆU THAM KHẢO [1] Nik Goots, Boris Izotov, Alex Moldovyan and Nik Moldovyan, “Modern CryptographyProtect Your Data with Fast Block Ciphers”, A-LIST Publishing , 2003 [2] Whitfield Diffie, Martin E Hellman, “New Directions in Cryptography”, IEEE transactions on information theory, Vol IT-22, No 6, November 1976 [3] Randy Nichols (LANAKI), “Classical cryptography course”, 1995 http://www.forturecity.com/course/LANAKI.html [4] A.Menezes, P van Oorchot, and S.Vanstone, “Hand book of Applied Cryptography”, CRC Press, 1996 http://www.cacr.math.uwaterloo.ca/hac [5] Douglas R.Stinson, “Cryptography: theory and practice”, CRC Press, 1995.http://www.mindspring.com/~pate/stinson/ [6] Bruce Schneier, “Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C (cloth)”, MIST Press, 1996 [7] Gil Held, “Learn Encryption Techniques with BASIC and C++”, CRC Press, 1998 [8] FIPS 186 - (DSS)http://www.itl.nist.gov/fipspubs/fip186.htm [9] Jean Berstel, Dominique, “Theory of code”, Academic Press Inc, 1985 [10] C Shannon, “Communication theory of secret systems” (tạp chí khoa học), 1949 [11] RSA library www.fpt.rsa.org/PKI [12] “System and Network Security” http://www.cs.ncl.ac.uk/old/modules/200001/csc331/notes/ [13] “Cryptography and Computer Security” http://www.cs.adfa.edu.au/teaching/studinfo/csc/lectures/ [14] http://www.securitydynamics.com/rsalabs/changelenges/factoring/rsa155.html [15] “Data security and cryptography” http://www.islab.oregonestate.edu/koc/ece575 [16] “OPT8 Advanced Cryptography” http://www.isg.rhul.ac.uk/msc/teaching/opt8/macs.pdf 136 Đề thi tham khảo Đề 1: 12 5 Câu : Cho hệ mã Hill có M = ma trận khóa A =   thực  7 mã hóa với xâu S = “HARD” Câu : Vẽ mơ hình quản lý khóa dựa vào hệ mã khóa cơng khai Giải thích rõ chức bước thực Câu 3: Các mệnh đề sau hay sai, giải thích? So với cơng chủ động công thụ động nguy hiểm Giao thức bước Shamir hỗ trợ khả xác thực hóa nguồn gốc thơng điệp Cơ chế mã móc xích an toàn chế bảng tra mã điện tử Một yếu điểm hệ mã mật khóa cơng khai chậm Giao thức bước Shamir giao thức trao đổi thông tin không cần trao đổi khóa Các hệ mã mâ ̣t RSA , ElGamma, Knapsack đươ ̣c go ̣i là các ̣ mã mâ ̣t khóa cơng khai khóa chúng cơng khai hóa Đề 2: Câu : Vẽ lược đồ chế độ sử dụng mã khối móc xích CBC Mơ tả th ̣t toán sinh và giải mã 11  Câu : Cho khó a K =   tin gốc „July‟ xác định trường Z  7 Tìm tin mã theo giải thuật Hill – cipher 26 Câu 3: Các mệnh đề sau hay sai, giải thích? Tất có loại hàm băm: hàm băm dựa vào hệ mã khối (chẳng hạn DES), hàm băm dựa vào phép tính số học, hàm băm đặc biệt hàm băm dựa vào hệ mã khóa cơng khai Một yếu điểm hệ Knapsack việc lưu khóa cần nhớ lớn Chuẩn mã hóa liệu (DES) khơng cịn an tồn nên khơng cịn dùng thực tế Để tăng tính bảo mật cho DES mã hóa nhiều lần với khóa khác Trong hệ mã ElGamma ln xuất hiện tượng lộ rõ Để sử dụng chế bảng tra mã điện tử (EBC) cài đặt khơng cần có gía trị khởi tạo IV Đề 3: Câu : Vẽ lược đồ chế độ sử dụng mã khối phản hồi CFB Mô tả thuâ ̣t toán sinh và giải mã 137 Đề thi tham khảo Câu : Cho véc tơ siêu tăng A = (1, 2, 4, 8, 16, 32, 64, 128), m = 301, u = 31, tin gốc (bản rõ) 10 Tìm tin mã (bản mã) theo giải thuâ ̣t Knapsack Câu 3: Các mệnh đề sau hay sai, giải thích? Trong chế độ mã móc xích thơng điệp chia thành n khối, khối thứ i bị lỗi trước đem mã hóa làm ảnh hưởng tới khối mã hóa sau Cho N = 2000, giá trị hàm Ơ le N: (N) = 800 Giao thức bước Shamir giao thức trao đổi thơng tin khơng cần trao đổi khóa Các hệ chữ ký điện tử hoạt động theo bước: sinh chữ ký, gửi chữ ký kiểm tra chữ ký Các hệ mã mật SKC PKC cho phép sử dụng mơ hình chữ ký điện tử Cơ chế mã móc xích an tồn chế bảng tra mã điện tử Đề 4: Câu : Vẽ lược đồ giải t huâ ̣t sinh mã DES và giải thić h các công thức đươ ̣c dùng Câu : Cho véc tơ siêu tăng a = (1, 2, 4, 8, 16, 32, 64, 128), m = 300, w = 29, tin gốc 16 Tìm tin mã theo giải thuật Knapsack Câu 3: Các mệnh đề sau hay sai, giải thích? Từ luật Kierchoff suy muốn tăng độ an toàn hệ mã mật cần sử dụng thuật toán mã hóa phức tạp tốt So với kiểu công thụ động kiểu công chủ động khó phát nguy hiểm Giao thức bước Shamir giao thức trao đổi thông tin khơng cần trao đổi khóa Một yếu điểm hệ Knapsack việc lưu khóa cần nhớ lớn Điều kiện để giao thức bước Shamir hoạt động là: EZ2-1(EZ1(EZ2 ( X ))) = EZ2 (X) Các hệ mã mật khóa cơng khai thường gọi PKC PKC có nghĩa Private Key Cryptography Đề 5: Câu : Vẽ lược đồ sinh khóa từ khóa DES giải thích cơng thức đươ ̣c dùng Câu : Cho p = 13, q = 23, e = 173, tin mã 122 Tìm tin gốc theo giải thuâ ̣t RSA 138 Đề thi tham khảo Câu 3: Các mệnh đề sau hay sai, giải thích? Cơ chế CBC chế sử dụng mã khối đơn giản dễ dùng Trong chế ECB khối bị hỏng trước đưa vào mã hóa làm ảnh hưởng tới tất khối mã hóa đứng trước Khóa mã hóa chuẩn mã hóa liệu có độ dài 56 bit Các chế độ sử dụng mã khối sử dụng đơn vị khối liệu 64 bit Trong hệ mã ElGamma xuất hiện tượng lộ rõ Cơ chế mã móc xích an tồn chế bảng tra mã điện tử 139 ... 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ể... t thông tin) Trong phầ n này chúng ta chỉ đề cập tới một số chủ đề quan trọng của lý thuyế t thông tin 1.1 Entropy Lý thuyết thông tin định nghĩa khố i lƣợ ng thông tin một... nhiề u thông tin Tƣơng tƣ̣ nhƣ trƣờng gioi_tinh của một sở dƣ̃ liệu chứa bít thơng tin, có thể lƣu trữ nhƣ một hai xâu ký tƣ̣ ASCII : Nam, Nƣ̃ Khố i lƣợ ng thông tin một thông

Ngày đăng: 08/11/2022, 16:07

Xem thêm:

w