Thám mã

Thám mã (tiếng Anh: Cryptanalysis) là lĩnh vực nghiên cứu các phương pháp nhằm phá vỡ hoặc đánh giá sự bảo vệ do các kỹ thuật mật mã học cung cấp, thường trong điều kiện không biết trước khóa bí mật. NIST định nghĩa thám mã là các hoạt động nhằm đánh bại sự bảo vệ mật mã khi chưa biết trước khóa, đồng thời bao gồm việc nghiên cứu các kỹ thuật toán học để tìm lỗi hoặc điểm yếu trong thuật toán hay cách triển khai thuật toán.[1]
Mục tiêu của một cuộc thám mã có thể là khôi phục bản rõ từ bản mã, tìm khóa bí mật hoặc chứng minh rằng một hệ mật có mức an toàn thấp hơn dự kiến. Thám mã là một bộ phận của cryptology, lĩnh vực bao gồm cả mật mã học và thám mã.[2]
Mô hình tấn công
[sửa | sửa mã nguồn]Khả năng của người thám mã phụ thuộc vào lượng thông tin và quyền truy cập mà họ có đối với hệ thống. Trong phân tích mật mã hiện đại, các mô hình tấn công thường được phân loại theo loại dữ liệu mà đối thủ có thể quan sát hoặc lựa chọn.[3]
- Tấn công chỉ có bản mã (ciphertext-only attack): đối thủ chỉ có một hoặc nhiều bản mã và cố gắng suy ra bản rõ hoặc khóa.
- Tấn công biết bản rõ (known-plaintext attack): đối thủ có một số cặp bản rõ–bản mã tương ứng và dùng chúng để phân tích hệ mật.
- Tấn công chọn bản rõ (chosen-plaintext attack): đối thủ có thể chọn các bản rõ và thu được bản mã tương ứng. Trong biến thể thích nghi, việc chọn bản rõ tiếp theo có thể phụ thuộc vào kết quả của các truy vấn trước.
- Tấn công chọn bản mã (chosen-ciphertext attack): đối thủ được phép chọn các bản mã và thu được bản rõ tương ứng trong những điều kiện nhất định, sau đó dùng thông tin này để tấn công một bản mã hoặc khóa khác.
- Tấn công khóa liên quan (related-key attack): đối thủ có thể quan sát hoạt động của hệ thống dưới nhiều khóa có quan hệ xác định với nhau.[3]
Một hệ mật chống được một mô hình tấn công mạnh hơn thường cũng chống được các mô hình yếu hơn thuộc cùng kiểu truy cập. Chẳng hạn, Handbook of Applied Cryptography lưu ý rằng một mật mã an toàn trước tấn công chọn bản rõ cũng an toàn trước tấn công biết bản rõ và tấn công chỉ có bản mã.[3]
Độ phức tạp của tấn công
[sửa | sửa mã nguồn]Một phương pháp thám mã không nhất thiết phải khôi phục hoàn toàn khóa bí mật mới có ý nghĩa. Nó có thể làm giảm không gian khóa cần tìm, khôi phục một phần thông tin hoặc chỉ ra rằng mức an toàn thực tế thấp hơn thiết kế.
Một chuẩn tham chiếu quan trọng là tìm kiếm vét cạn khóa (exhaustive key search). Với khóa dài k bit, không gian khóa có tối đa 2k khả năng; trong mô hình tìm kiếm vét cạn thông thường, số khóa cần thử trung bình có bậc xấp xỉ 2k−1. Handbook of Applied Cryptography phân biệt ba loại tài nguyên chính của một cuộc tấn công: lượng dữ liệu cần thiết, bộ nhớ cần thiết và lượng tính toán cần thực hiện.[3]
NIST sử dụng khái niệm độ mạnh an toàn (security strength) để biểu diễn lượng công việc cần thiết để phá một thuật toán hoặc hệ thống mật mã.[4]
Kỹ thuật
[sửa | sửa mã nguồn]Các kỹ thuật thám mã phụ thuộc mạnh vào loại hệ mật và thông tin mà người phân tích có được.
Phân tích thống kê và mật mã cổ điển
[sửa | sửa mã nguồn]Đối với nhiều mật mã thay thế cổ điển, các đặc trưng thống kê của ngôn ngữ tự nhiên vẫn còn được phản ánh trong bản mã. Phân tích tần suất khai thác việc một số chữ cái hoặc nhóm chữ xuất hiện thường xuyên hơn những chữ khác trong một ngôn ngữ. Khi một mật mã thay thế đơn giản ánh xạ cố định mỗi ký tự bản rõ sang một ký tự bản mã, những khác biệt tần suất này có thể được dùng để suy đoán phép thay thế.[5]
Các mật mã đa bảng chữ cái và các máy rotor được phát triển một phần để làm suy yếu những mẫu thống kê đơn giản. Việc thám mã chúng vì thế có thể cần kết hợp thống kê, cấu trúc của hệ mật, các bản rõ có thể đoán được và những đặc điểm trong cách người vận hành sử dụng hệ thống.[3]
Tìm kiếm khóa và khai thác cấu trúc
[sửa | sửa mã nguồn]Khi không có điểm yếu tốt hơn, người thám mã có thể thử các khóa khả dĩ bằng phương pháp vét cạn. Tuy nhiên, nhiều cuộc tấn công tìm cách khai thác cấu trúc bên trong của thuật toán để giảm đáng kể lượng tính toán hoặc dữ liệu so với vét cạn.
Đối với mật mã khối, các kỹ thuật hiện đại bao gồm thám mã vi sai (differential cryptanalysis) và thám mã tuyến tính (linear cryptanalysis). Cả hai đã được nghiên cứu rộng rãi đối với DES và nhiều mật mã khối khác; Handbook of Applied Cryptography dùng chúng cùng với tìm kiếm vét cạn khi so sánh độ mạnh của DES trước các loại tấn công khác nhau.[3]
Hệ mật khóa công khai
[sửa | sửa mã nguồn]Sự xuất hiện của mật mã khóa công khai vào thập niên 1970 làm thay đổi đáng kể đối tượng của thám mã. Bài báo năm 1976 của Whitfield Diffie và Martin Hellman trình bày các hướng mới cho mật mã, trong đó có hệ thống khóa công khai và chữ ký số.[6]
Đối với nhiều hệ mật khóa công khai, bài toán thám mã liên quan đến các bài toán toán học được cho là khó về mặt tính toán. Những ví dụ quan trọng gồm phân tích số nguyên, lôgarit rời rạc và bài toán Diffie–Hellman.[7]
Tấn công kênh bên
[sửa | sửa mã nguồn]Ngoài phân tích thuần túy trên thuật toán, các hệ mật còn có thể bị tấn công thông qua thông tin rò rỉ từ quá trình triển khai vật lý. NIST định nghĩa tấn công kênh bên (side-channel attack) là kiểu tấn công khai thác thông tin rò rỉ từ một hệ thống mật mã vật lý, chẳng hạn thời gian thực thi, mức tiêu thụ điện, phát xạ điện từ hoặc âm thanh.[8]
Các cuộc tấn công kênh bên không nhất thiết dựa trên điểm yếu toán học của thuật toán. Một thuật toán mạnh về mặt lý thuyết vẫn có thể để lộ thông tin bí mật nếu cách triển khai làm rò rỉ đủ thông tin qua các kênh vật lý.[8]
Lịch sử
[sửa | sửa mã nguồn]Thời kỳ mật mã cổ điển
[sửa | sửa mã nguồn]Al-Kindi (khoảng 801–873) được ghi nhận là tác giả của công trình cổ nhất còn được biết đến trình bày có hệ thống về thám mã. Trong bản luận về giải mã thông điệp mật, ông mô tả việc dùng tần suất tương đối của các chữ cái để suy luận bản rõ. Nghiên cứu đăng trên The American Statistician cho biết al-Kindi đã dùng phân tích tần suất tương đối để giải mã thông điệp và là tác giả của cuốn sách về mật mã học cổ nhất hiện được biết đến.[5]
Phân tích tần suất trở thành một công cụ cơ bản để phá nhiều mật mã thay thế cổ điển. Sự phát triển của các mật mã đa bảng chữ cái và các thiết bị cơ điện về sau buộc người thám mã phải kết hợp thêm các kỹ thuật toán học, thống kê và khai thác đặc điểm vận hành của hệ thống.[3]

Enigma và Chiến tranh thế giới thứ hai
[sửa | sửa mã nguồn]Một ví dụ nổi bật của thám mã máy móc là việc phá hệ thống Enigma của Đức. Năm 1932, nhà toán học Ba Lan Marian Rejewski bắt đầu phân tích Enigma và sử dụng các phương pháp toán học để xác định cấu trúc của máy. Cùng với Jerzy Różycki và Henryk Zygalski, ông phát triển các phương pháp tìm thiết lập khóa hằng ngày và một thiết bị gọi là bomba để tự động hóa một phần quá trình này.[9]
Tháng 7 năm 1939, các nhà thám mã Ba Lan chia sẻ kết quả của họ với Anh và Pháp. Sau khi chiến tranh bắt đầu, các nhà thám mã tại Bletchley Park, trong đó có Alan Turing và Gordon Welchman, tiếp tục phát triển các phương pháp và máy bombe để hỗ trợ việc giải Enigma.[10] Các bản giải mã Enigma cung cấp thông tin tình báo có giá trị cho phe Đồng Minh; chẳng hạn, chúng được sử dụng để theo dõi vị trí tàu ngầm Đức và điều chỉnh tuyến đường của các đoàn tàu vận tải trên Đại Tây Dương.[10]
Thời đại máy tính
[sửa | sửa mã nguồn]Sự phổ biến của máy tính điện tử làm tăng mạnh khả năng thực hiện các cuộc tìm kiếm khóa và phân tích thống kê, đồng thời thúc đẩy việc thiết kế các thuật toán mật mã dựa trên các mô hình an toàn và độ phức tạp tính toán rõ ràng hơn. Từ thập niên 1970, mật mã khóa công khai mở ra một nhóm bài toán thám mã mới dựa nhiều vào lý thuyết số và độ phức tạp tính toán.[6]
Trong mật mã hiện đại, đánh giá một hệ thống thường không chỉ đặt câu hỏi liệu nó có thể bị phá hay không, mà còn xem cuộc tấn công mạnh nhất đã biết cần bao nhiêu dữ liệu, thời gian và bộ nhớ, và liệu chi phí đó có thấp hơn đáng kể so với tìm kiếm vét cạn hay không.[3]
Xem thêm
[sửa | sửa mã nguồn]Tham khảo
[sửa | sửa mã nguồn]- ↑ "cryptanalysis". National Institute of Standards and Technology. Truy cập ngày 2 tháng 9 năm 2026.
- ↑ "cryptology". National Institute of Standards and Technology. Truy cập ngày 2 tháng 9 năm 2026.
- 1 2 3 4 5 6 7 8 Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (1996). "Block Ciphers". Handbook of Applied Cryptography (PDF). CRC Press. tr. 225–226. ISBN 0-8493-8523-7. Truy cập ngày 2 tháng 9 năm 2026.
- ↑ "security strength". National Institute of Standards and Technology. Truy cập ngày 2 tháng 9 năm 2026.
- 1 2 Broemeling, Lyle D. (2011). "An Account of Early Statistical Inference in Arab Cryptology". The American Statistician. 65 (4): 255–257. doi:10.1198/tas.2011.10191.
- 1 2 Diffie, Whitfield; Hellman, Martin E. (1976). "New Directions in Cryptography" (PDF). IEEE Transactions on Information Theory. 22 (6): 644–654. doi:10.1109/TIT.1976.1055638.
- ↑ Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (1996). "Number-Theoretic Reference Problems". Handbook of Applied Cryptography (PDF). CRC Press. ISBN 0-8493-8523-7. Truy cập ngày 2 tháng 9 năm 2026.
- 1 2 "Side-Channel Attack". National Institute of Standards and Technology. Truy cập ngày 2 tháng 9 năm 2026.
- ↑ "Marian Rejewski". National Security Agency. Truy cập ngày 2 tháng 9 năm 2026.
- 1 2 "Solving the Enigma: History of the Cryptanalytic Bombe" (PDF). National Security Agency. Truy cập ngày 2 tháng 9 năm 2026.
Liên kết ngoài
[sửa | sửa mã nguồn]- Định nghĩa cryptanalysis tại NIST
- Handbook of Applied Cryptography – University of Waterloo