Phép thử Kasiski
Tìm độ dài khóa của một mã khóa lặp từ khoảng cách giữa các chuỗi lặp.
Thử:
Độ dài chuỗi
Thừa số tới
Ba chữ cái là lựa chọn kinh điển. Hai chữ cái tìm ra nhiều lần lặp hơn hẳn nhưng phần lớn là ngẫu nhiên, còn bốn trở lên chỉ giữ lại bằng chứng chắc nhất nên đòi văn bản dài hơn.
Dán bản mã vào để xét. Các mẫu là bản mã Vigenère thật với khóa năm và bảy chữ cái.
Cách sử dụng Phép thử Kasiski
- 1
Dán bản mã
Bỏ văn bản đã mã hóa vào ô nhập. Vài trăm chữ cái thường là đủ để các lần lặp xuất hiện; dưới khoảng một trăm thì thường không có gì để tìm.
- 2
Chọn độ dài chuỗi
Bắt đầu ở ba chữ cái. Nếu không có gì lặp lại, hạ xuống hai và coi kết quả là bằng chứng yếu. Nếu văn bản dài và bảng đếm nhiễu, nâng lên bốn.
- 3
Đọc hậu thuẫn theo thừa số
Mỗi độ dài ứng viên được chấm so với phần mà chỉ riêng ngẫu nhiên sẽ cho, và cái được gợi ý là thành viên mạnh nhất của mỗi họ ước và bội. Số khoảng cách thô cùng số chuỗi khác nhau đứng sau nó cũng được hiện ra: một thừa số được nhiều chuỗi khác nhau hậu thuẫn thì đáng tin hơn một chuỗi lắm lời lặp đi lặp lại, và phán đoán ấy được để lại cho bạn thay vì trộn vào điểm số.
- 4
Đưa độ dài sang bộ giải
Đưa độ dài được gợi ý cho bộ giải Vigenère, hoặc đối chiếu với bảng theo cột của công cụ chỉ số trùng hợp. Hai phương pháp đồng ý với nhau thì mạnh hơn nhiều so với từng cái riêng lẻ.
Phép thử Kasiski, giải thích
Quan sát mà phương pháp dựa vào
Mã Vigenère dịch mỗi chữ cái đi một lượng khác nhau, chạy vòng theo một từ khóa. Điều đó đánh bại việc đếm chữ cái, vì cùng một chữ cái bản rõ trở thành những chữ cái bản mã khác nhau tùy vị trí. Nhưng khóa thì lặp lại, và sự lặp lại rò rỉ ra ngoài.
Giả sử từ THE xuất hiện hai lần trong bản rõ, và tình cờ cả hai lần đều khớp với cùng ba chữ cái của khóa. Cả hai mã hóa ra cùng ba chữ cái bản mã. Khoảng cách giữa chúng, đếm theo chữ cái, khi đó là một số nguyên vòng khóa: một bội số của độ dài khóa.
Một sự trùng hợp như vậy chứng minh được rất ít. Hàng chục sự trùng hợp, phân tích ra thừa số và cộng dồn, thì chỉ thẳng vào độ dài.
Công cụ này đo cái gì
Mọi chuỗi có độ dài bạn chọn mà xuất hiện quá một lần đều được thu thập kèm vị trí. Với mỗi chuỗi, mọi khoảng cách từng cặp đều được tính, chứ không chỉ khoảng hở giữa các lần liền kề, vì ba lần xuất hiện mang ba mẩu bằng chứng và chỉ lấy khoảng hở liền kề là vứt đi một mẩu.
Sau đó mỗi độ dài khóa ứng viên nhận hai con số: nó chia hết bao nhiêu khoảng cách, và bao nhiêu chuỗi lặp khác nhau đã góp ít nhất một trong số đó. Việc xếp hạng dùng con số thứ nhất, đã hiệu chỉnh cho ngẫu nhiên. Con số thứ hai nằm bên cạnh và được cố ý giữ ngoài điểm số, vì nó là một phán đoán chứ không phải phép tính: một chuỗi lắm lời lặp tám lần sẽ thổi phồng số khoảng cách mà không thêm bằng chứng độc lập nào, trong khi ba chuỗi khác nhau cùng đồng ý về một thừa số là ba sự trùng hợp riêng biệt cùng chỉ một hướng. Nếu độ dài được gợi ý chỉ dựa vào một chuỗi duy nhất, đó chính là con số nên khiến bạn nghi ngờ.
Cái bẫy của các ước
Đây là chỗ nhiều người vấp, và nó là số học chứ không phải mật mã học. Nếu 12 chia hết một khoảng cách thì 2, 3, 4 và 6 cũng chia hết. Mọi ước của độ dài khóa thật đều thừa hưởng trọn điểm của nó, nên một bảng xếp theo hậu thuẫn luôn đưa các thừa số nhỏ nhất lên đầu, bất kể khóa thật ra là gì.
Cách sửa cũng là số học. Hãy tính phí mỗi thừa số theo phần hậu thuẫn mà ngẫu nhiên cho không: 2 chia hết một nửa của bất kỳ tập khoảng cách nào, nên phải chia đôi con số thô của nó trước khi đặt cạnh một thừa số chỉ chia hết một phần sáu. Hiệu chỉnh như vậy thì độ dài khóa thật vượt lên trên chính các ước của nó, vì một ước chỉ mang phần bằng chứng của riêng mình. Hiệu chỉnh thêm cả nhiễu mà một thừa số được phép có, vốn tăng theo thừa số, thì độ dài thật cũng vượt lên trên các bội của nó. Còn lại một quy tắc duy nhất không có giá trị nào chỉnh tay: trong mọi họ ước và bội, giữ lại thành viên mạnh nhất. Bảng đếm đầy đủ vẫn nằm bên dưới để bạn có thể không đồng ý: nếu độ dài được gợi ý chỉ có một chuỗi hậu thuẫn trong khi một thừa số khác được sáu chuỗi hậu thuẫn, thừa số đó đáng để nhìn lại.
Khi nào nó hỏng, và thay bằng gì
Phép thử Kasiski cần các lần lặp, và một thông điệp ngắn có thể đơn giản là không có. Nó cũng yếu đi trước những mã cố tình tránh lặp lại, và không nói được gì về hệ khóa chạy hay hệ dùng một lần, nơi khóa không bao giờ quay vòng.
Chỉ số trùng hợp tiếp cận cùng câu hỏi từ phía ngược lại: nó hoàn toàn bỏ qua các lần lặp và đo phân bố chữ cái của từng cách chia cột ứng viên. Vì hai phương pháp dựa vào những tính chất khác nhau của văn bản, chúng hiếm khi hỏng cùng lúc, và độ dài được cả hai hậu thuẫn thường là độ dài đúng.
Câu hỏi thường gặp
Phép thử Kasiski là gì?
Vì sao gợi ý 6 khi 2 và 3 có hậu thuẫn ngang nhau?
Cần bao nhiêu bản mã?
Vì sao vị trí khác với chỗ tôi nhìn thấy trong văn bản?
Có nên dùng chuỗi hai chữ cái không?
Nếu Kasiski và chỉ số trùng hợp trái nhau thì sao?
Bản mã của tôi có rời khỏi trình duyệt không?
Công cụ liên quan
Tiếp tục với những công cụ hữu ích này