Основы криптоанализа

Введенные К.Шенноном функции ненадежности довольно резко стремятся к нулю. Поэтому с большой вероятностью можно говорить о точке, в которой решение криптограммы становится единственным. Найденное при этом число букв шифртекста No будем называть расстоянием единственности.

Рассмотрим множество сообщений длины N символов для данного языка. Коэффициент языка длиной N определяется как

r=Н(Х)/N,

где H(Х) - количество информации при выборе сообщения X.

Избыточность языка с коэффициентом r определяется по формуле:

D=R-г,

где R - абсолютный коэффициент языка;
R=log2 L,

где L - длина алфавита языка.

Для английского языка R=log2 26=4,7 бит на букву.
Тогда

No=H(Z)/D,

где H(Z) - количество информации при выборе ключа Z.

Вычислим количество букв, необходимое для раскрытия сообщения, зашифрованного методом подстановки, в алфавите длиной L. Если все ключи равновероятны, то число возможных ключей равно L!. Тогда

No=H(Z)/D=log2 L!/D.

Для английского языка No=log2 26!/3,2=27,6. Таким образом, 27-28 букв достаточно для раскрытия рассматриваемого шифра с помощью частотного анализа. Если объем перехваченного шифртекста превосходит точку единственности, криптограмма в принципе может быть решена перебором всех возможных ключей, пока не получится единственное решение (сообщение, имеющее смысл в данном языке).
Многие виды шифров могут быть раскрыты с помощью статистического анализа, потому что все естественные языки имеют характерное частотное распределение букв. Например, для английского языка частоты появления букв приведены в таблице 11.
буква частота, % буква частота, % буква частота, %
A 8.1 K 0.4 V 0.9
B 1.4 L 3.4 W 1.5
C 2.7 M 2.5 X 0.2
D 3.9 N 7.2 Y 1.9
E 13.0 O 7.9 Z 0.1
F 2.9 P 2.0
G 2.0 R 6.9
H 5.2 S 6.1
I 6.5 T 10.5
J 0.2 U 2.4
Таблица 11

Из таблицы 11 видно, что Е - наиболее часто встречающаяся буква в английском языке, а Z - наиболее редкая.

Многие сообщения, зашифрованные методами перестановки или замены, сохраняют характерное частотное распределение букв и тем самым предоставляют возможность раскрытия шифра. Введем меру точности:

MR= сум. (Pi-1/L)**2 i=0..(L-1)

где сум. Pi=1; i=0..(L-1)
pi- вероятность (частота) появления i-й буквы;
L - количество символов в алфавите.

Для английского языка
MR= сум. (Pi-1/26)**2=сум.( Pi**2)-2/26+1/26=сум. Pi**2 -0.038=0.03
i=0..25

Общее число пар букв, которые могут быть выбраны из текста длиной N символов, есть

C2n=N*(N-1)/2

Пусть fi- частота i-й буквы в тексте; сум. fi=N
Тогда определим индекс соответствия Ic следующим образом:

Ic=(сум. fi*(fi-1))/(N*(N-1)) i=0..25

Теоретическое значение для английского языка Ic=0,066. Если шифр использует m алфавитов, то можно записать:
Ic=(1/m)*((N-m)/(N-1))*0,066+((m-1)/m)*(N/(N-1))*0,038.

Таким образом, шифртексты, для которых Ic>0,066, дают криптоаналитику информацию о том, что, вероятно, использовалась моноалфавитная замена. Если 0.052<=Ic<=0.066, то, вероятно, использовался двухалфавитный подстановочный шифр. Значения индексов соответствия для различного числа алфавитов приведены в таблице 12.

Процесс криптоанализа можно представить следующим образом. Криптоаналитик берет наиболее часто встречающийся в шифртексте символ и предполагает, что это пробел. Затем криптоаналитик берет следующий наиболее часто встречащийся символ и предполагает, что это Е (для английского языка), и т.д. Путем проб и ошибок такой метод может привести к решению задачи. Кроме того, при подставлении букв вместо символов анализируемого шифртекста криптоаналитик учитывает частоты появления сочетаний из двух букв (диаграмм), трех букв (триграмм) и т.д.
число алфавитов (m) ожидаемый Ic (большие N)
1 0.066
2 0.052
3 0.047
4 0.045
5 0.044
10 0.041
m>>10 0.038
Таблица 12

Одним из наиболее часто используемых приемов криптоаналитика является метод вероятных слов. Вероятные слова - это слова, части слов и выражения, которые можно ожидать в перехваченном шифртексте вследствие того, что они характерны для данного источника сообщений. В качестве вероятных слов можно рассматривать общеупотребительные слова или отдельные слоги, которые характерны для данного языка. Например, для английского языка можно использовать такие вероятные слова, как the, that, and, -tion и т.п. Предполагая, что некоторая часть шифртекста является вероятным словом, криптоаналитик получает часть ключа. Эта часть ключа используется для расшифровки других частей шифртекста и служит критерием согласованности. Если другие части шифртекста становятся понятными, то предположение, принятое при использовании вероятного слова, подтверждается. Естественно, что современные ЭВМ значительно усиливают мощь криптоаналитика.

Ход рассуждений криптоаналитиков при расшифровке моноалфавитной замены замечательно передан писателями Артуром Конан Дойлем в повести "Пляшущие человечки" и Эдгаром Аланом По в повести "Золотой жук".

Задача криптоаналитика значительно усложняется, если он имеет дело с равномерным распределением символов в шифртексте (Ic=0.038 для английского языка). Поэтому при построении шифров стремятся обеспечить равномерность символов шифртекста.

Упражнения.

  1. Попробуйте сами составить таблицу частоты появления букв для русского языка, используя, например, страницу книги.
  2. Для русского языка найдите меру точности MR.