
Билет №11
Зададимся некоторой конечной последовательностью символов алфавита
𝛾 = (𝛾0, . . .𝛾𝑚),𝛾𝑖 ∈ 𝐴.
Назовём эту последовательность «гамма». Для всех шифров гаммирования такая последовательность выступает в качестве ключа. Функцией шифрования в общем виде является уравнение:
𝑦𝑖 = (𝑥𝑖 * 𝛾𝑗) mod 𝑛,где |𝐴| = 𝑛, 𝑗 = 𝑖 (mod 𝑚), * – некоторая операция.
В нашем курсе будет подробно рассмотрен шифр Виженера, в котором
шифрующее преобразование выглядит следующим образом:
𝑦𝑖 = (𝑥𝑖 + 𝛾𝑗) mod 𝑛,где |𝐴| = 𝑛, 𝑗 = 𝑖 (mod
Криптоанализ шифра Виженера:
(1) установление длины (количества символов гаммы)ключевого слова;
(2) установление знаков ключевого слова.
Установление длины ключевого слова:
Пусть ключевое слово имеет длину 𝜇. Для определения числа 𝜇 применяется тест Казиски.
Тест основан на простом наблюдении того, что два одинаковых отрезка открытого
текста, отстоящих друг от друга на расстоянии, кратном 𝜇, будут одинаково зашифрованы. В силу этого в шифртексте ищутся повторения длины, не меньшей трёх, и расстояния между ними. Следует обратить внимание на то, что случайно такие отрезки в тексте могут появится с достаточно низкой вероятностью.
Пусть 𝑑1, 𝑑2, . . . , 𝑑𝑘 – найденные расстояния между повторениями. Найдем
𝑑 = НОД(𝑑1, . . . , 𝑑𝑘), наибольший общий делитель этих чисел.
Тогда очевидно, что 𝜇 должно быть среди делителей 𝑑.
Чем больше повторений имеет текст, тем больше вероятность того, что 𝜇 ≡ 𝑑.
Для уточнения значений 𝜇 можно использовать индекс совпадения.
Билет №12
Зададимся некоторой конечной последовательностью символов алфавита
𝛾 = (𝛾0, . . .𝛾𝑚),𝛾𝑖 ∈ 𝐴.
Назовём эту последовательность «гамма». Для всех шифров гаммирования такая последовательность выступает в качестве ключа. Функцией шифрования в общем виде является уравнение:
𝑦𝑖 = (𝑥𝑖 * 𝛾𝑗) mod 𝑛,где |𝐴| = 𝑛, 𝑗 = 𝑖 (mod 𝑚), * – некоторая операция.
В нашем курсе будет подробно рассмотрен шифр Виженера, в котором
шифрующее преобразование выглядит следующим образом:
𝑦𝑖 = (𝑥𝑖 + 𝛾𝑗) mod 𝑛,где |𝐴| = 𝑛, 𝑗 = 𝑖 (mod 𝑚).
Криптоанализ шифра Виженера:
(1) установление длины (количества символов гаммы) ключевого слова;
(2) установление знаков ключевого слова.
Пусть 𝑥 = (𝑥1, . . . , 𝑥𝑛) и 𝑦 = (𝑦1, . . . , 𝑦𝑚) – две строки над алфавитом 𝐴
Взаимным индексом совпадения в 𝑥 и 𝑦, обозначаемым 𝑀𝐼𝑐(𝑥, 𝑦), называется вероятность того, что случайно выбрана буква из 𝑥 совпадает со случайно выбранной буквой из 𝑦.
Пусть 𝑓𝑖 – число вхождений буквы 𝑎𝑖 в строку 𝑥, а 𝑔𝑖 – в строку 𝑦 соответственно. Тогда справедлива следующая теорема.
Теорема:
Взаимный индекс совпадения в 𝑥 и 𝑦 вычисляется по формуле:
(4) 𝑀𝐼𝑐(𝑥, 𝑦) =Σ(𝑛−1,𝑖=0)𝑓𝑖 · 𝑔𝑖/𝑛 · 𝑚
Пусть 𝑘 = (𝑘1, . . . , 𝑘𝜇) — истинное ключевое слово. Величину(𝑘𝑖 − 𝑘𝑗) mod 𝑛 будем называть относительным сдвигом 𝑌 ↓ 𝑖 и 𝑌 ↓ 𝑗 .
Можно показать, что 𝑌 ↓ 𝑖 и 𝑌 ↓ 𝑗 с относительными сдвигами 𝑛 и 𝑛−𝑠 имеют одинаковые взаимные индексы совпадения.
Заметим, что при некотором значении 𝑠(𝑖, 𝑗) ∈ 0, 𝑛 − 1 столбец 𝑌 𝑠(𝑖,𝑗)↓ 𝑗 ,полученный из 𝑌↓ 𝑗 прибавлением по модулю 𝑛 к каждому элементу числа
𝑠(𝑖, 𝑗) имеет нулевой относительный сдвиг с 𝑌 ↓ 𝑖 .
Для каждого из столбцов 𝑌 ↓ 1 , 𝑌 ↓ 2 , . . . , 𝑌 ↓ 𝜇 построим множество столбцов:
𝑌 0↓ 𝑖 , 𝑌 1↓ 𝑖 , . . . , 𝑌 (𝑛−1)↓ 𝑖 .
Таким образом, всего получим 𝜇!(/2! · (𝜇 − 2)!) · 𝑛 =(𝜇 · (𝜇 − 1) · 𝑛)/2
𝑀𝐼𝑐(𝑌 ↓ 𝑖 , 𝑌 𝑠↓ 𝑗 ) =Σ(𝑛−1,𝑖=0)𝑓𝑖 · 𝑔(𝑖−𝑠) mod 𝑛/n· 𝑚
Если 𝑠 равно относительному сдвигу 𝑌 ↓ 𝑖 и 𝑌 ↓ 𝑗 , то взаимный индекс совпадения должен быть близок к 0, 053 (для русского языка). Таким образом, получается определенная система уравнений, решив которую можно легко найти 𝑘1, . . . , 𝑘𝜇.