1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu nhập môn mật mã

30 506 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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 1,47 MB

Nội dung

(Sách dạy các môn “nữcông gia chánh” cho thiếu nữtrước khi lấy chồng. Trong sách này, ngoài các môn “cầm, kỳ, thi, họa, làm nước hoa, nấu ăn,... còn có môn “mật mã”, giúp họdấu diếm những bí mật riêng tư). Hệmã này được viết ra vào thếkỷthứ4 sau công nguyên, nhưng dựa trên tài liệu có từthếkỷthứ4 trước công nguyên.

Nhập môn Mật mã Biên soạn : PHẠM HUY ĐIỂN NỘI DUNG 1. LỊCH SỬ MẬT MÃ VỚI SỰ THÂM NHẬP CỦA PHƯƠNG PHÁP TOÁN HỌC 2 1.1. Sơ lược về lịch sử mật mã thời cổ ₫ại 2 Các phép mã chuyển vị: 2 Phép mã thay thế 2 1.2. Mật mã thời trung ₫ại và cận ₫ại 4 Mật mã thay thế kép- Hệ mã PLAYFAIR 4 Mật mã De Vigenere 5 Máy mã Enigma 6 1.3. Mã hóa thông tin thời hiện ₫ại 11 Vấn ₫ề nan giải ngàn năm của các hệ mã ₫ối xứng 11 Những ₫òi hỏi mới từ thực tiễn hiện tại 11 2. SỐ HỌC VÀ MỘT SỐ BÀI TOÁN KHÓ 11 2.1. Số nguyên tố và bài toán phân tích ra thừa số 11 Số nguyên tố 11 Thuật toán tìm các số nguyên tố nhỏ hơn hoặc bằng số n 11 Định lí cơ bản của số học 12 Bài toán phân tích ra thừa số nguyên tố 13 2.2. Tính toán ₫ồng dư và bài toán tính logarit rời rạc 13 Khái niệm ₫ồng dư và ₫ịnh lí nhỏ của Phéc-ma 13 Tính toán ₫ồng dư với lũy thừa lớn và phương pháp bình phương liên tiếp 15 Bài toán tính logarit rời rạc và “khai căn” rời rạc 15 2.3. Ước chung của hai số và những vấn ₫ề liên quan 16 Ước chung lớn nhất của hai số 16 Thuật toán Ơ-cơ-lit 16 Thuật toán Ơ-cơ-lit mở rộng 17 Bội chung nhỏ nhất của hai số 18 Nghịch ₫ảo theo modulo m 19 3. MỘT SỐ HỆ MÃ DỰA TRÊN NHỮNG BÀI TOÁN KHÓ 19 3.1. Thuật toán mã mũ Pohlig — Hellman 19 1 Nguyên lý thực hiện 19 Ví dụ: 20 Nhận xét 21 3.2. Thuật toán chuyển chìa khóa Diffie-Hellman 21 Vấn ₫ề nan giải của các hệ mật mã truyền thống 21 Giải pháp của Diffie-Hellman 21 Giải pháp tổng quát 22 3.3. Thuật toán mã hóa khóa công khai RSA 22 Các hệ mật mã truyền thống và một vấn ₫ề nan giải của chúng 22 Hệ mã khóa công khai RSA 23 Ví dụ : 24 Độ an toàn của hệ mã RSA 24 Phía sau trang sử về RSA 25 3.4 Thuật toán mã hóa El Gamal 28 Nguyên lý thực hiện 28 Nhận xét: 28 3.5. Thay cho lời kết 29 2 1. LỊCH SỬ MẬT MÃ VỚI SỰ THÂM NHẬP CỦA PHƯƠNG PHÁP TOÁN HỌC 1.1. Sơ lược về lịch sử mật mã thời cổ ₫ại Các phép mã chuyển vị: Phép mã chuyển vị làm dịch chuyển vị trí của các từ trong văn bản. Reilfence cipher Scytale Được sử dụng trong quân đội Spartan từ thế kỷ thứ 4 trước công nguyên (năm 404, BC) Phép mã thay thế (Thay mỗi chữ cái bằng một chữ cái khác, hay một ký hiệu khác) 3 Mã Kama-Sutra (Sách dạy các môn “nữ công gia chánh” cho thiếu nữ trước khi lấy chồng. Trong sách này, ngoài các môn “cầm, kỳ, thi, họa, làm nước hoa, nấu ăn, còn có môn “mật mã”, giúp họ dấu diếm những bí mật riêng tư). Hệ mã này được viết ra vào thế kỷ thứ 4 sau công nguyên, nhưng dựa trên tài liệu có từ thế kỷ thứ 4 trước công nguyên. Nguyên lý thực hiện rất đơn giản: chỉ việc chia tập 26 chữ cái ra thành 2 bảng và cho tương ứng với nhau (1-1). Atbash cipher Nguyên lý: cho tương ứng mỗi ký tự với một ký hiệu bất kỳ Dưới đây là phép tương ứng đơn giản nhất, dùng chính bảng chữ cái alphabet nhưng với thứ tự ngược lại Phép mã Caesar Nguyên lý: Thay thế mỗi chữ cái trong bảng alphabet bằng một chữ khác đứng sau nó k vị trí (trong chính bảng chữ cái này). Ví dụ, lấy k=3 4 Tuy nhiên, những người lính của Caesar có thể không biết làm tính, cho nên người ta thường triển khai dưới dạng “máy mã ăn liền”, kiểu cái đĩa với các vòng tròn đồng tâm, gọi là đĩa Caesar Giáo sư Hà Huy Khoái và chiếc đĩa Caesar trong một bảo tàng mật mã ở Châu Âu. Phép mã Caesar có thể xem là khởi đầu của sự thâm nhập của Toán học. Nếu cho tương ứng mỗi chữ cái trong bảng alphabet với một số nguyên (từ 0 đến 25) thì phép mã này có thể biểu diễn bằng một công thức toán học. Nhận xét: Các phép mã thay thế đơn chữ (thay một chữ này bằng một ký hiệu khác) nói trên bị rơi vào khủng hoảng sau khi ngườ i ta phát hiện ra cách bẻ khóa bằng phép phân tích tần số xuất hiện của từng chữ trong ngôn ngữ thường dùng. Vì vậy, cho đến trước thế kỷ thứ 16, các nhà làm mật mã vẫn bị bất lực trước những người bẻ khóa. Các nhà làm mật mã chỉ dành lại được vị thế của mình bằng một loạt phép mã mới thời kỳ trung đại. 1.2. Mật mã thời trung ₫ại và cận ₫ại Mật mã thay thế kép- Hệ mã PLAYFAIR Hệ mã được phát minh bởi Charles Wheatstone, nhưng được quảng bá rộng rãi bởi Lyon Playfair. Đây là một trong những hệ mã sử dụng phép thay thế cặp hai chữ cái (digraph), nhưng lại khá đơn giản, và vì vậy được sử dụng khá phổ biến. 5 Phép mã này thay thế cặp hai chữ (hoành độ, tung độ) bằng cặp hai chữ có sẵn trong bảng ca-rô. Quy trình mã hóa triển khai như sau:  Chọn chìa khóa mã là một bộ k chữ cái sao cho không có chữ nào được lặp lại, thí dụ là: CHARLES.  Lập mảng ca- rô hình vuông 5x5, và viết các chữ cái vào từng ô (theo thứ tự từ trái qua phải và từ trên xuống dưới). Các chữ cái trong chìa khóa mã được viết trướ c tiên (theo thứ tự đã chọn), sau đó là những chữ cái còn lại (viết theo thứ tự trước sau như trong bảng alphabet, riêng hai chữ i và j được viết chung trong một ô).  Ghép các chữ cái trong văn bản nguồn thành từng cặp hai chữ. Nếu lẻ ra một chữ thì cho thêm chữ X vào cuối cho đủ cặp. Hai chữ cùng hàng (hay cùng cột) được ứng với hai chữ nằm kế tiếp (theo thứ tự xoay vòng). Hai chữ không cùng hàng và không cùng cột (xác đị nh ra một hình chữ nhật) được ứng với cặp hai chữ là hai đỉnh còn lại của hình chữ nhật. Nhận xét: Điểm mạnh của hệ mã này cũng là ở chỗ có thể xóa nhòa mọi dấu vết về tần số xuất hiện của các chữ cái trong văn bản gốc, khiến người bẻ khóa khó đường lần mò. Tuy nhiên, quá trình mã và giải mã rất tốn kém thời gian, cho nên rất ít được dùng. Mật mã De Vigenere Hệ mã này được khởi nguồn từ Leon Alberti (nhà họa sĩ, nhạc sĩ, nhà thơ, nhà triết học người Ý, sinh năm 1404, và là một trong những nhân vật tiêu biểu của thời kỳ Phục hưng). Nói một cách đơn giản, ý tưởng của Alberti là sử dụng luân phiên hai phép mã Caesar (với 2 chìa khóa mã khác nhau). Cụ thể hơn, ông mã từ đầu tiên trong văn bản mã bằng một phép mã Caesar với chìa khóa k 1 rồi mã từ tiếp theo lại bằng phép mã Caesar với khóa k 2 . Quy trình cứ thế lặp lại cho đến khi mã xong văn bản. Ý tưởng này sau đó được phát triển bởi một số người khác, và người hoàn thiện nó sau cùng là nhà ngoại giao Blair de Vigenere (người Pháp, sinh năm 6 1523). Sau một thời gian tiếp xúc với hệ mã Alberti (do nhu cầu công việc) ông đã say mê nó và, ở tuổi 39, sau khi thấy mình đã kiếm đủ tiền để có thể theo đuổi công việc của đời mình ông quyết định bỏ nghề ngoại giao và dồn sức cho phát triển hệ mã này. Nguyên lý làm việc của nó như sau:  Chọn từ khóa là một bộ gồm m ký tự, trong đó không có hai ký tự nào trùng nhau (thí dụ là: dibanme, vớ i m=7).  Lập bảng ca-rô, với hàng đầu (hàng thứ 0) là các chữ cái trong bảng alphabet (bắt đầu từ chữ a), còn các hàng tiếp theo cũng là các chữ cái này, nhưng bắt đầu bằng các chữ có trong từ khóa (với thứ tự được xoay vòng trên từng hàng).  Phép mã Vigenere chính là phép mã luân phiên của m phép mã Caesar. Cụ thể, chữ cái thứ nhất (trong văn bản nguồn) được mã bằng phép mã Caesar với khóa là chữ cái đầu tiên trong từ khóa ; chữ cái thứ hai được mã bằng phép mã Caesar với chìa khóa là chữ cái thứ hai trong từ khóa. Quy trình cứ thế lặp lại và, một cách tổng quát, chữ cái thứ i được ứng với chữ cái cùng cột với nó trong bảng ca-rô, tại hàng thứ i theo modulo m. Điểm mạnh của hệ mã là ở chỗ nó xóa nhòa mọi dấu vết về tần số xuất hiện của các chữ cái (trong văn bản gốc). Có thể triển khai dưới dạng đĩa Caesar với nhiều đĩa. Máy mã Enigma Một phát minh độc đáo được ghi nhận vào đầu thế kỷ XX thuộc về Arthur Scherbius (kỹ sư người Đức), máy mã Enigma, được đăng ký phát minh vào năm 1918. Nguyên lý hoạt động nh ư sau: 7 Ở đây, để cho đơn giản, ta chỉ vẽ bàn phím gồm 6 chữ cái (trên thức tế gồm đủ cả 26 chữ cái). Tuy nhiên, nếu chỉ có một Rotor như trên thì phép mã sẽ lập lại sau 26 bước. Người phát minh đã sử dụng tới 3 vòng Rotor làm cho phép mã trở nên rất phức tạp Sau khi mã xong mỗi chữ cái, Rotor thứ nhất được quay một nấc, sau đó chữ cái tiếp theo mới được mã. Quy trình tiếp diễn cho tới khi Rotor thứ nhất quay trọn một vòng (26 nấc) thì Rotor thứ hai quay đi một nấc, và khi Rotor thứ hai quay trọn được một vòng thì Rotor thứ ba quay một nấc. Như vậy, cùng một chữ cái ở các vị trí khác nhau sẽ được mã thành những chữ khác nhau. Khả năng “mã lặp” một chữ cái nào đó ch ỉ có thể xảy ra nếu chữ đó xuất hiện lại ở đúng vị trí chữ thứ 8 17576 trong văn bản nguồn (một điều gần như không thể đối với các bản tin thông thường). Vì vậy, việc tấn công bằng tần suất là vô hiệu lực. Ngoài ra, người ta lại sử dụng cơ chế “phản xạ”, cho tín hiệu (sau khi xuyên qua 3 vòng Rotor) được quay ngược trở lại (tiếp tục xuyên qua 3 vòng Rotor) theo một con đường khác. Hệ thống cấu trúc tổng thể của Enigma có thể được mô phỏng như sau Trong thực tế, người ta sử dụng rất nhiều dạng biến thể của Enigma. Có loại dùng 3 Rotor, có loại dùng 5 Rotor, có loại không dùng Plugboard, Một chiếc máy Enigma thật sự, đã từng được sử dụng, là như sau 9 Một chiếc máy như vậy cho phép sử dụng tới 100 nghìn tỷ tỷ (100000.10 18 ) chìa khóa khác nhau. Khi mới đi vào sử dụng, từ năm 1920, Enigma làm cho thiên hạ choáng ngợp với con số chìa khóa khổng lồ, khiến không ai hy vọng có thể bẻ được nó. Tuy nhiên, một nhóm thám mã Balan (đứng đầu là Marian Reijewski) lại không đầu hàng và có một số ý tưởng độc đáo. Một tuần trước khi Thủ đô Varszawa bị xâm lấn, nhóm thám mã này đã kịp đến với người Anh và tham gia đội thám mã tại Bletchley Park (phía bắc Luân đôn). Những ý tưởng của nhóm thám mã Balan đ ã được xem là khởi nguồn cho phát kiến chói lọi của Alan Turing trong việc công phá hệ mã Enigma. Marian Reijewski Alan Turing [...]... bản mật được mã hóa bằng chìa công khai của mình) 22 Hệ mật mã như vậy gọi là hệ mã khóa công khai Với hệ mã đó, vấn đề chuyển chìa khóa không còn được đặt ra Thật vậy, khi cá thể A muốn gửi tin mật cho cá thể B thì chỉ cần lấy chìa lập mã của B (đã được công bố công khai) để mã hóa văn bản trước khi gửi đi cho B Văn bản mã này có thể lưu hành công khai nhưng không ai, ngoài B, có thể giải mã được (vì... lập mã và giải mã Mỗi cá thể tham gia vào hệ thống như vậy sẽ được cấp riêng một bộ 2 chìa khóa Chìa khóa lập mã (còn gọi là chìa công khai) có thể được công bố công khai cho mọi người biết (để có thể mã hóa văn bản trước khi gửi tin mật cho cá thể này), còn chìa khóa giải mã (còn gọi là chìa bí mật) thì chỉ một minh cá thể đó được biết (nghĩa là, chỉ một mình cá thể này có thể giải mã các văn bản mật. .. phép tính "khai căn" rời rạc (của việc giải mã) bằng một phép tính luỹ thừa thì quả là tuyệt vời Ta sẽ được thấy lại ý tưởng này trong hệ mã công khai (hay mã phi đối xứng) RSA 3.2 Thuật toán chuyển chìa khóa Diffie-Hellman Vấn đề nan giải của các hệ mật mã truyền thống Trong các hệ mã truyền thống, bản tin được lập mã bằng chìa khóa nào thì chỉ có thể được giải mã bằng chính chìa khóa đó (hoặc một chìa... chìa khóa chung mà không cho ta một phương pháp mã hoá dữ liệu Có chăng một giải pháp tương tự cho việc mã hóa dữ liệu! 3.3 Thuật toán mã hóa khóa công khai RSA Các hệ mật mã truyền thống và một vấn đề nan giải của chúng Trong các hệ mã truyền thống, một nguyên tắc chung được thừa nhận là bản tin được lập mã bằng chìa khóa nào thì chỉ có thể được giải mã bằng chính chìa khóa đó Vì vậy, một trong những... dụng các hệ mã theo nguyên tắc này là việc chuyển giao chìa khoá từ người lập mã đến cho người giải mã Càng ngày vấn đề càng trở nên nghiêm trọng, khi khả năng nắm bắt các luồng thông tin trên mọi môi trường trở nên dễ dàng (các kênh thông tin bí mật về phương diện "vật lý" hầu như không còn chỗ đứng) Điều này đã khiến cho những người làm mật mã cuối thế kỉ XX ước mơ có được một mô hình hệ mật mã với hai...Một số máy mã khác trong Thế chiến thứ II 10 1.3 Mã hóa thông tin thời hiện ₫ại Vấn đề nan giải ngàn năm của các hệ mã đối xứng Chuyển chìa khóa cho người giải mã (Về nguyên tắc: nếu có con đường an toàn để chuyển được chìa thì cũng chuyển được tin, hà tất cần đến mật mã! !!) Những đòi hỏi mới từ thực tiễn hiện tại Điểm khác biệt then chốt của các hệ mã hiện đại so với các hệ mã trước đây là xuất... trong văn bản mã 0228 1393 1076 ta thu được các số 0801 0514 1307 Sau khi cho tương ứng trở lại với các chữ (theo bảng nêu trên) và viết liền nhau ta được cụm chữ HAĐONG 20 Nhận xét Trong hệ mã nêu trên, số nguyên tố p có thể được cho công khai, nhưng các số e và d đều phải cùng được giữ bí mật (vì biết số này thì dễ dàng tìm ra số kia) Do vậy, hệ mã này thuộc vào loại mã bí mật (hay mã đối xứng) Tuy... mod17, 5 = 7-1 mod17,  3 MỘT SỐ HỆ MÃ DỰA TRÊN NHỮNG BÀI TOÁN KHÓ Như đã nói, một điều kì diệu là chính sự "hóc búa" của các bài toán số học lại là chỗ dựa cho mã hóa thông tin hiện đại, góp phần làm nên cuộc cách mạng trong lịch sử công nghệ mật mã 3.1 Thuật toán mã mũ Pohlig — Hellman Nguyên lý thực hiện Giả sử p là một số nguyên tố không nhỏ, và giả sử khoá lập mã e là một số tự nhiên sao cho e và... được N e > p Giải mã 19 Như ta biết, việc “khai căn” rời rạc là vô cùng khó, nên muốn giải mã văn bản mật ta phải làm cách khác Trước hết ta tính số d thoả mãn de º 1 (mod p - 1) , có nghĩa d là một nghịch đảo của e modulo (p - 1) Nghịch đảo này tồn tại do giả thiết ban đầu (e, p - 1) = 1 Khi ấy de = k (p - 1) + 1 , với một số nguyên k nào đó, cho nên để giải mã khối văn bản mã C, ta áp dụng định... (vì chỉ B mới có chìa giải mã văn bản này) Mơ ước nói trên cuối cùng đã trở thành hiện thực vào những năm cuối của thập kỉ bảy mươi thế kỷ trước, nhờ sự thâm nhập của số học vào công nghệ mã Hệ mã khóa công khai RSA Hệ mã này lần đầu tiên được công bố vào năm 1978 bởi ba nhà khoa học của Học viện Công nghệ Massachuset (Hoa Kỳ) là R Rivest, A Shamir và L Adleman Để xây dựng hệ mã, người ta chọn hai số . dư là định lí nhỏ của Phéc- ma (Fermat). Định lí. Nếu p là một số nguyên tố và a là một số nguyên không chia hết cho p thì () 1 1mod p ap - º . Định lí này mặc dù mang tên là "nhỏ". Hellman 19 1 Nguyên lý thực hiện 19 Ví dụ: 20 Nhận xét 21 3.2. Thuật toán chuyển chìa khóa Diffie-Hellman 21 Vấn ₫ề nan giải của các hệ mật mã truyền thống 21 Giải pháp của Diffie-Hellman. đường khác. Hệ thống cấu trúc tổng thể của Enigma có thể được mô phỏng như sau Trong thực tế, người ta sử dụng rất nhiều dạng biến thể của Enigma. Có loại dùng 3 Rotor, có loại dùng 5 Rotor,

Ngày đăng: 07/08/2014, 23:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w