Chương 1: Tổng quan về bảo mật thông tin và lý thuyết mã hóa 21 Trong lý thuyết mật mã, người ta nghiên cứu đồng thời các thuật toán lập mã và vấn đề thám mã được dùng để đánh giá mức độ an toàn và khả năng bảo mật thông tin của mỗi thuật toán mã hóa. Mật mã học trong lịch sử Có thể xem là lịch sử mật mã học bắt nguồn từ người Ai Cập vào khoảng những năm 2000 trước Công nguyên khi họ dùng những ký hiệu tượng hình khó hiểu để trang trí trên các ngôi mộ nhằm bí mật ghi lại tiểu sử và những chiến tích, công lao của người đã khuất. Trong một thời gian dài hàng thế kỷ một trong những loại công trình nghiên cứu thu hút rất nhiều nhà khoa học trên thế giới là các nghiên cứu giải mã những “dấu tích bí mật” trên các ngôi mộ cổ Ai Cập, nhờ đó mà ta hiểu biết được khá nhiều về lịch sử, phong tục, tập quán sinh hoạt của đất nước Ai Cập cổ huyền bí. Người Hebrew (Do Thái cổ) đã sáng tạo một thuật toán mã hóa đơn giản và hiệu quả gọi là thuật toán atbash mà chìa khóa mã hóa và giải mã là một sự thay thế (substitution) trong bảng chữ cái.
Giả sử dùng chìa khóa mã hóa là bảng hoán vị: ABCDEFGHIJKLMNOPQRSTUVWXYZ ZYXWVUTSRQPONMLKJIHGFEDCBA Khi đó chẳng hạn từ gốc (plaintext): JERUSALEM sẽ được mã hóa thành từ mã (ciphertext): QVIFHZOVN. Nếu người nhận tin có chìa khóa thì việc biến đổi QVIFHZOVN trở lại thành JERUSALEM là điều hoàn toàn đơn giản, nhưng nếu không có chìa khóa thì quả là khó khăn, người nhận được thông điệp không thể nào hiểu nổi QVIFHZOVN có nghĩa là gì cả! Cho dù biết rằng quy luật mã hóa chỉ là một sự thay thế của 25 chữ cái nhưng nếu tấn công bạo lực thì phải thử lần lượt hết mọi khả năng tạo chìa khóa, tức là phải thử 25! khả năng (tất nhiên về sau người ta có rất nhiều biện pháp để giảm 22 Giáo trình mật mã học và hệ thống thông tin an toàn bớt khả năng dò tìm, chẳng hạn nếu plaintext có độ dài khá lớn thì có thể sử dụng dò tìm theo tần suất xuất hiện của các ký tự). Thuật toán mã hóa bằng thay thế này chỉ dùng một ký tự (chữ cái) thay thế cho một ký tự nên được gọi là thuật toán mã hóa thay thế đơn (monoalphabetic substitution). Người ta cũng có thể tạo những thuật toán mã hóa thay thế khối (multiple alphabetic substitution) nếu thay vì thay thế từng ký tự ta thay thế một dãy ký tự gốc bởi một dãy ký tự mã hóa: thuật toán này cho ta nhiều khả năng tạo khóa hơn nên khả năng bị tấn công lại càng giảm xuống.
Vào khoảng năm 400 trước CN, người Sparte sử dụng một dụng cụ gọi là gậy mật mã. Các đối tác viết thư lên một hàng ngang của mảnh giấy dài cuốn quanh một cây gậy có đường kính và độ dài quy ước với nhau trước rồi tháo ra và điền vào các ô trống những ký tự bất kỳ. Đối tác nhận thư phải có một cây gậy giống hệt, cùng đường kính và độ dài, lại quấn mảnh giấy vào gậy và “giải mã” được. Nếu không hiểu quy luật và không có cây gậy như thế thì không thể nào đọc hiểu những ký tự nối đuôi nhau một cách “vô nghĩa” trên mảnh giấy.
Về thời Trung Cổ, hoàng đế La Mã nổi tiếng là Julius Caesar tạo một công cụ lập mã rất đơn giản cho thuật toán gọi là “mã vòng” (cyclic code) tương tự như thuật toán atbash của người Hebrew nhưng đây không phải là một sự thay thế bất kỳ mà là một sự thay thế theo hoán vị vòng quanh. Caesar dùng hai vành tròn đồng tâm, trên cả hai vành đều ghi bảng chữ cái La-tinh, vành trong ứng với plaintext còn vành ngoài ứng với ciphertext. Chìa khóa mã hóa là phép xoay vành tròn bên ngoài một số bước, do đó các chữ cái thay đổi đi. Chẳng hạn nếu chìa khóa là +3 tức là xoay theo chiều thuận +3 ô thì các chữ cái A, B, C…X, Y, Z trong plaintext sẽ chuyển đến D, E, F …A, B, C trong ciphertext, từ HANOI trong plaintext được mã hóa thành từ KDQRL trong ciphertext.
Người nhận sẽ giải mã bằng cách xoay ngược vành chữ ngoài -3 ô thì tìm lại được plaintext. Chương 1: Tổng quan về bảo mật thông tin và lý thuyết mã hóa 23 Ngày nay, các phương pháp mã hóa và lập mã đó xem ra quá đơn giản nên không còn được dùng trong các vấn đề bảo mật thông tin quan trọng, tuy nhiên cũng còn giá trị cho một số người khi muốn dùng để bảo mật những ghi chép cá nhân thông thường của mình và ý tưởng của chúng vẫn còn được sử dụng trong một số công cụ lập mã hiện đại. Mật mã học được phát triển mạnh ở châu Âu và mãi đến khoảng năm 1800 chủ yếu vẫn chỉ được sử dụng nhiều trong việc bảo mật các thông điệp quân sự. Chính nguyên lý mã vòng của Caesar là ý tưởng cho việc phát triển một thiết bị mã hóa nổi tiếng nhất trong lịch sử: máy mã hóa Enigma của người Đức dùng trong Đại chiến thế giới lần thứ hai.
Enigma có 3 ổ quay, mỗi ký tự trong plaintext khi đưa vào sẽ được thay thế 3 lần theo những quy luật định sẵn khác nhau cho nên quá trình thám mã rất khó khăn. Về sau một nhóm các nhà mật mã học Ba Lan đã bẻ khóa được thuật toán lập mã của Enigma và cung cấp cho người Anh mọi thông tin quân sự của Đức: người ta đánh giá rằng thành công của việc phá khóa đó đã rút ngắn thời gian kéo dài của Thế chiến II bớt được 2 năm. Sau khi Thế chiến II kết thúc, bí mật của Enigma được công bố và ngày nay một máy Enigma còn được triển lãm tại Viện Smithsonian, Washington D. William Frederick Friedman (1891 – 1989) 24 Giáo trình mật mã học và hệ thống thông tin an toàn Năm 1920, William Frederic Friedman công bố tác phẩm The Index of Coincidence and Its Applications in Cryptography (Chỉ số trùng hợp và ứng dụng của nó vào Mật mã học).
Ông được xem là “cha đẻ của Mật mã học hiện đại”. Phân loại các thuật toán mã hóa Ngày nay người ta phân biệt ra hai nhóm thuật toán mã hóa chính là: Các thuật toán mã hóa cổ điển và các thuật toán hiện đại. - Các thuật toán cổ điển: (những thuật toán này ngày nay đôi khi vẫn còn được dùng chẳng hạn trong trò chơi tìm mật thư) gồm: + Thuật toán thay thế (Substitution) là thuật toán mã hóa trong đó từng ký tự (hoặc từng nhóm ký tự) của plaintext được thay thế bằng một (hay một nhóm) ký tự khác. Thuật toán atbash của người Hebrew hay thuật toán vòng của Caesar đều là các thuật toán thay thế.
Chính ý tưởng của mã vòng Caesar đã được ứng dụng trong máy Enigma. + Thuật toán chuyển vị (Transposition) là thuật toán mã hóa trong đó các ký tự trong văn bản ban đầu chỉ thay đổi vị trí cho nhau còn bản thân các ký tự không hề bị biến đổi. Xét một ví dụ về thuật toán hoán vị. Trong thuật toán này chúng ta ngắt thông điệp gốc thành từng nhóm 4 ký tự đánh số trong từng nhóm từ 1 đến 4.
Chìa khóa ở đây là một hoán vị bất kỳ của 1234 gán cho mỗi nhóm: HAI PHONG Plaintext HAIP HONG Ngắt đoạn từng nhóm 4 ký tự 1234 1234 Thứ tự tự nhiên trong mỗi nhóm 2413 3142 Khóa mã (chọn hoán vị tùy ý) APHI NHGO Ciphertext Chương 1: Tổng quan về bảo mật thông tin và lý thuyết mã hóa 25 Các thuật toán hiện đại: Có nhiều cách phân loại các thuật toán mã hóa hiện đại hiện đang sử dụng. Trong cuốn sách này ta sẽ phân biệt theo số chìa khóa sử dụng trong một thuật toán và như vậy có 3 loại sau đây: a. Mã hóa đối xứng hay khóa bí mật SKC (Secret Key Cryptography): Chỉ dùng một chìa khóa cho cả mã hóa và giải mã (biến đổi theo hai chiều ngược nhau) b. Mã hóa bất đối xứng hay khóa công khai và khóa riêng PKC (Public and Private Keys Cryptography): Sử dụng hai khóa riêng biệt: một khóa để mã hóa (khóa công khai: public key) và một khóa khác để giải mã (khóa riêng: private key).
Hàm băm (Hash function): Mã hóa một chiều (one-way cryptography) dùng một biến đổi toán học để “mã hóa” thông tin gốc thành một dạng không biến đổi ngược được: không có chìa khóa vì từ ciphertext không tìm ngược lại được plaintext! plaintext ciphertext plaintext a. SKC sử dụng một khóa cho cả mã hóa và giải mã. plaintext ciphertext plaintext b. Mã hóa khóa công khai (bất đối xứng).
PKC sử dụng hai khóa, một khóa để mã hóa và khóa còn lại để giải mã. Hàm băm plaintext ciphertext c. Hàm băm không có chìa khóa do plaintext không tìm ngược lại được ciphertext.3: Khóa đối xứng, khóa bất đối xứng và hàm băm 26 Giáo trình mật mã học và hệ thống thông tin an toàn Trong những chương sau chúng ta sẽ đi vào lần lượt nghiên cứu về các thuật toán lập mã và giải mã cho các loại mã đối xứng, mã bất đối xứng, ưu điểm và nhược điểm của chúng và khả năng ứng dụng của chúng trong việc truyền các thông điệp điện tử. Sau đây chúng ta tham khảo ví dụ về thách thức bảo mật thời kỹ thuật số.
Việc phát tán thông tin mật của Bộ Quốc phòng Mỹ trên Wikileaks đang đặt ra thách thức an ninh trong thời đại kỹ thuật số. Các nhà phân tích cho rằng ngày 26/7/2010 dữ liệu bị đánh cắp có dung lượng tính bằng gigabytes có thể được chia sẻ chỉ bằng một lần cái nhấp chuột. “Tôi nghĩ về việc này trong mối liên hệ với Tài liệu Lầu Năm Góc", James Lewis, một chuyên gia mạng, tại Trung tâm Chiến lược và Nghiên cứu Quốc tế (CSIS), so sánh với sự cố năm 1971 khi dữ liệu trong hồ sơ Cuộc chiến Việt Nam của Lầu Năm Góc bị rò rỉ. "Sự khác biệt với Tài liệu Lầu Năm Góc là ở chỗ Daniel Ellsberg lấy nhiều tài liệu ở dạng in trên giấy và đưa cho một phóng viên", ông Lewis nói.
"Nay người ta có thể lấy nhiều tài liệu hơn nhiều và phát tán cho toàn thế giới." Wikileaks đã không xác định nguồn tài liệu mật nhưng mối nghi ngờ hiện đang nhắm tới Bradley Manning, một nhà phân tích tình báo quân đội Mỹ đang bị giam tại một nhà tù quân sự ở Kuwait. Julian Assange, một nhà báo và là chủ trang Wikileaks cho báo chí Anh hay trong chuyến đến Luân Đôn rằng ông còn đang nắm trong tay hàng nghìn tư liệu như vụ vừa qua nhưng chưa tung ra.