Sau những cryptosystem chỉ mã hóa từng chữ cái mà chúng ta review trong 2 bài viết vừa rồi, như Caesar Cipher và Vigenere Cipher, xuất hiện những hệ thống mới đi xa ý tưởng này, cung cấp độ bảo mật cao hơn [tất nhiên vẫn dễ phá với công nghệ chúng ta hiện có].
Hãy khám phá những ý tưởng đó là gì nhé!
Polygraphic Substitution
Đây là lớp những hệ thống cuối thuộc phạm trù Substitution với những ví dụ điển hình như Playfair Cipher và Hill Cipher: Những hệ thống này mã hóa theo nhóm chữ cái thay vì từng chữ cái.
Ngoài ra, có những cipher như Playfair nhóm theo cặp chữ cái, và chúng được gọi là digraph.
Playfair Cipher
Được phát minh bởi Charles Wheatstone vào 1854 và được truyền bá rộng rãi bởi Nam tước Playfair, cryptosystem này sử dụng rất nhanh chóng, tiện lợi và dễ thực hiện bằng tay mà không cần dụng cụ chuyên dụng nào, vì thế nó được quân đội Anh sử dụng rộng rãi trong những cuộc chiến tranh vào đầu thế kỉ XX.
Playfair Cipher cũng có những biến thể như four-square cipher [sử dụng 4 ma trận 5x5] và two-square cipher [sử dụng 2 ma trận 5x5], cũng nhóm theo cặp chữ cái và với những quy tắc mã hóa tương tự.
Tuy nhiên, khi nhóm theo cặp chữ cái, có khả năng cặp chữ cái này xuất hiện nhiều hơn cặp kia. Đúng vậy, nếu chỉ có ciphertext, và nếu ciphertext đủ dài [để thu được tần số xuất hiện chính xác hơn], ta có thể sử dụng Frequency Analysis.
Còn đối với ciphertext bất kì thì sao? Đến đây thì xin giới thiệu một phương pháp cryptanalysis mạnh hơn Ciphertext Only Attack. Đó là Known Plaintext Attack: Cho trước 1 hay nhiều cặp plaintext - ciphertext tương ứng, ta có thể thu lại được key bí mật, giúp chúng ta phá được bất kì ciphertext nào encrypt bằng key đó.
Lấy vì dụ ở phía trên: plaintext = hide the gold in the tree stump CIPHERTEXT = BM OD ZB XD NA BE KU DM UI XM MO UV IF Xét cặp de -> OD. Do chung 1 chữ d, 3 chữ cái o, d, e nằm trên cùng 1 hàng/cột và cạnh nhau. Ta thậm chí còn có thể thu được thứ tự xuất hiện trong ma trận của chúng. Tương tự với cặp ex -> XM Lưu ý, với cặp hi -> BM, có 2 trường hợp xảy ra. Hoặc là 4 chữ cái này tạo thành 4 góc của 1 hình chữ nhật, hoặc là chúng nằm trên cùng 1 hàng/cột [ví dụ như h b * i m]. Vì vậy, nên xử lí những cặp rơi vào trường hợp đầu tiên trước để tìm key dễ dàng hơn.Hill Cipher
Được phát minh bởi Lester S. vào năm 1929, đây là một cipher sử dụng đại số tuyến tính [cụ thể hơn là phép nhân ma trận], phức tạp hơn về mặt thực hiện so với những cipher trước, vì thế có những máy chuyên dụng, hay máy tính, để thực hiện cipher này.
Tuy nhiên, do tính "tuyến tính" của cipher này, phương pháp Known Plaintext Attack sẽ có tác dụng.
Dẫu vậy, an toàn trước Ciphertext Only Attack là một thứ ít cipher trước đó có thể đạt được.
Transposition Cipher
Đây là một phạm trù cryptography sẽ nghe khá quen kể cả đối với những người không biết về cryptography: Những hệ thống kiểu này đổi vị trí của các chữ cái trong plaintext cho nhau!
Nhìn chung, những cryptosystem này đều rất dễ bị phá, kể cả trước Ciphertext Only Attack, vì thế ta sẽ không đi sâu vào chúng.
Ta sẽ lấy chung một plaintext = we are discovered flee at once 1] Rail fence cipher Sử dụng 3 "rail" thì ta có thể viết lại plaintext như sau: w . . . e . . . c . . . r . . . l . . . t . . . e . e . r . d . s . o . e . e . f . e . a . o . c . . . a . . . i . . . v . . . d . . . e . . . n . . Từ đó ciphertext là: WECRLTE ERDSOEEFEAOC AIVDEN 2] Scytale Đã được dùng từ thời Hy Lạp cổ đại, Scytale có cách sắp xếp như sau: w . . e . . a . . r . . e . . d . . i . . s . . c . o . . v . . e . . r . . e . . d . . f . . l . . . . e . . e . . a . . t . . o . . n . . c . . e . CIPHERTEXT = WOE EVE AEA RRT EEO DDN IFC SLE C Có những cách cũng sử dụng "rail" như 2 cipher trên, nhưng với thứ tự sắp xếp khác nhau và phức tạp hơn. Nhưng cũng có những cipher như sau. 3] Columnar transposition Chép plaintext như sau [với số thứ tự trên các cột là ngẫu nhiên]: 6 3 2 4 1 5 w e a r e d i s c o v e r e d f l e e a t o n c e Chép cipher theo cột và số thứ tự: EVLN ACDT ESEA ROFO DEEC WIREEScytale
Rõ ràng, không kí tự nào thực sự bị thay thế trong quá trình encryption, vì thế bằng một chút Frequency Analysis và Anagramming [tìm những phiên bản bị xáo trộn của một từ Tiếng Anh] ta đã có thể phá được nhiều Transposition Cipher.
Tạm kết
Trên đây là discussion cuối về những cryptosystem "cũ và yếu" trong làng crypto.
Bài viết sau vẫn sẽ chưa tiến tới những hệ thống hiện tại, nhưng sẽ về một hệ thống làm nền móng rất quan trọng cho cryptography hiện đại. Hãy đón xem!