Phương pháp Kasiski Examination dùng để ước lượng độ dài khóa của mật mã Vigenère, dựa trên quan sát: nếu một cụm ký tự trong bản rõ trùng lặp và khoảng cách giữa hai lần xuất hiện là bội số của độ dài khóa, thì cụm ký tự tương ứng trong bản mã cũng sẽ trùng lặp.
Cụ thể, thực hiện các bước sau trên bản mã:
Nếu không tồn tại trigram nào lặp lại (tập khoảng cách rỗng), in ra undefined. Ngược lại, in ra giá trị g — đây chính là ước lượng độ dài khóa theo phương pháp Kasiski.
Ví dụ: với bản mã ABCXYZABCPQRABC, trigram ABC xuất hiện tại các vị trí 0,6,12. Các khoảng cách liên tiếp là 6−0=6 và 12−6=6. Không trigram nào khác lặp lại. Vậy g=gcd(6,6)=6.
Một dòng duy nhất là bản mã (chuỗi in hoa A…Z), độ dài từ 1 đến 3000.
In ra giá trị g (số nguyên) nếu tồn tại trigram lặp lại, ngược lại in undefined.
Ví dụ:
Đầu vào:
AB
Đầu ra:
undefined
Đầu vào:
ABCDEFGHIJK
Đầu ra:
undefined
Đang tải editor...