В криптоанализе проверка Касиски ( также известная как тест Касиски или метод Касиски ) — это метод атаки на шифры многоалфавитной замены , такие как шифр Виженера . [1] [2] Впервые он был опубликован Фридрихом Касиски в 1863 году, [3] но, похоже, был независимо обнаружен Чарльзом Бэббиджем еще в 1846 году. [4] [5]
В шифрах многоалфавитной замены , где алфавиты замены выбираются с помощью ключевого слова , проверка Касиски позволяет криптоаналитику определить длину ключевого слова. Как только длина ключевого слова определена, криптоаналитик выстраивает зашифрованный текст в n столбцов, где n — длина ключевого слова. Тогда каждый столбец можно рассматривать как зашифрованный текст одноалфавитного шифра замены . Таким образом, каждый столбец может быть подвергнут атаке с помощью частотного анализа . [6] Аналогично, если использовалась роторная машина потокового шифрования , этот метод может позволить вычислить длину отдельных роторов.
Исследование Касиски предполагает поиск строк символов, которые повторяются в зашифрованном тексте . Для успешного прохождения экзамена строки должны иметь длину не менее трех символов. Тогда расстояния между последовательными вхождениями строк, скорее всего, будут кратны длине ключевого слова. Таким образом, поиск большего количества повторяющихся строк сужает возможную длину ключевого слова, поскольку мы можем взять наибольший общий делитель всех расстояний.
Причина, по которой этот тест работает, заключается в том, что если в открытом тексте встречается повторяющаяся строка , а расстояние между соответствующими символами кратно длине ключевого слова, буквы ключевого слова будут выстраиваться одинаково с обоими вхождениями строки. Например, рассмотрим открытый текст:
крипто — это сокращение от криптографии.
« crypto » — это повторяющаяся строка, расстояние между вхождениями составляет 20 символов. Если мы выровняем открытый текст с помощью 6-значного ключевого слова « abcdef » (6 не делится на 20):
abcdef abcdefabcdefab cdefab cdefabc crypto — сокращение от шифрования .
первый экземпляр « crypto » соответствует « abcdef », а второй — « cdefab ». Два экземпляра будут зашифрованы разными зашифрованными текстами, и проверка Касиски ничего не покажет. Однако с помощью 5-значного ключевого слова « abcde » (5 делится на 20):
abcdea bcdeabcdeabcde abcdea bcdeabc crypto — сокращение от шифрования .
оба появления слова « crypto » совпадают с « abcdea ». Оба экземпляра будут зашифрованы одним и тем же зашифрованным текстом, и проверка Касиски будет эффективной.
Трудность использования теста Касиски заключается в поиске повторяющихся строк. Эту задачу очень сложно выполнить вручную, но компьютеры могут значительно облегчить ее. Однако осторожность все равно требуется, поскольку некоторые повторяющиеся строки могут быть просто совпадением, поэтому некоторые расстояния повторения вводят в заблуждение. Криптоаналитик должен исключить совпадения, чтобы найти правильную длину. Затем, конечно, полученные одноалфавитные зашифрованные тексты необходимо подвергнуть криптоанализу.
Касиски фактически использовал «наложение» для решения шифра Виженера. Он начал с определения длины ключа, как указано выше. Затем он взял несколько копий сообщения и положил их одну над другой, каждую сместив влево на длину ключа. Затем Касиски заметил, что каждый столбец состоит из букв, зашифрованных одним алфавитом. Его метод был эквивалентен описанному выше, но, возможно, его легче представить.
Современные атаки на полиалфавитные шифры по существу идентичны описанным выше, с одним улучшением подсчета совпадений . Вместо того, чтобы искать повторяющиеся группы, современный аналитик взял бы две копии сообщения и положил бы одну поверх другой.
Современные аналитики используют компьютеры, но это описание иллюстрирует принцип, реализуемый компьютерными алгоритмами.
Обобщенный метод: