Частотный анализ, частотный криптоанализ — один из методов криптоанализа, основывающийся на предположении о существовании нетривиального статистического распределения отдельных символов и их последовательностей как в открытом тексте, так и в шифротексте, которое, с точностью до замены символов, будет сохраняться в процессе шифрования и дешифрования.
Упрощённо, частотный анализ предполагает, что частота появления заданной буквы алфавита в достаточно длинных текстах одна и та же для разных текстов одного языка. При этом, в случае моноалфавитного шифрования, если в шифротексте будет символ с аналогичной вероятностью появления, то можно предположить, что он и является указанной зашифрованной буквой. Аналогичные рассуждения применяются к биграммам (двубуквенным последовательностям), триграммам и т. д. в случае полиалфавитных шифров.
Метод частотного криптоанализа известен с IX века (работы Ал-Кинди), хотя наиболее известным случаем его применения в реальной жизни, возможно, является дешифровка египетских иероглифов Ж.-Ф. Шампольоном в 1822 году. В художественной литературе наиболее известными упоминаниями являются рассказы «Золотой жук» Эдгара По, «Пляшущие человечки» Конан Дойля, а также роман «Дети капитана Гранта» Жюль Верна.
Начиная с середины XX века большинство используемых алгоритмов шифрования разрабатываются устойчивыми к частотному криптоанализу, поэтому он применяется в основном в процессе обучения будущих криптографов.
Содержание
Описание [ править | править код ]
Утверждается, что вероятность появления отдельных букв, а также их порядок в словах и фразах естественного языка подчиняются статистическим закономерностям: например, пара стоящих рядом букв «ся» в русском языке более вероятна, чем «цы», а «оь» в русском языке не встречается вовсе (зато часто встречается, например, в чеченском). Анализируя достаточно длинный текст, зашифрованный методом замены, можно по частотам появления символов произвести обратную замену и восстановить исходный текст.
Как упоминалось выше, важными характеристиками текста являются повторяемость букв (количество различных букв в каждом языке ограничено), пар букв, то есть m (m-грамм), сочетаемость букв друг с другом, чередование гласных и согласных и некоторые другие особенности. Примечательно, что эти характеристики являются достаточно устойчивыми.
Идея состоит в подсчёте чисел вхождений каждой n m возможных m-грамм в достаточно длинных открытых текстах T=t1t2…tl, составленных из букв алфавита 1, a2, …, an>. При этом просматриваются подряд идущие m-граммы текста:
Если L (ai1ai2 … aim) — число появлений m-граммы ai1ai2…aim в тексте T, а L — общее число подсчитанных m-грамм, то при достаточно больших L частоты L (ai1ai2 … aim)/ L, для данной m-граммы мало отличаются друг от друга.
В силу этого, относительную частоту считают приближением вероятности P (ai1ai2…aim) появления данной m-граммы в случайно выбранном месте текста (такой подход принят при статистическом определении вероятности).
В общем случае частоту букв в процентном выражении можно определить следующим образом: подсчитывается, сколько раз она встречается в шифротексте, затем полученное число делится на общее число символов шифротекста; для выражения в процентах, полученный результат умножается на 100.
Частотность существенно зависит, однако, не только от длины текста, но и от его характера. Например, в техническом тексте обычно редкая буква Ф может появляться гораздо чаще. Поэтому для надёжного определения средней частоты букв желательно иметь набор различных текстов.
Частотный анализ – это один из методов криптоанализа, основывающийся на предположении о существовании нетривиального статистического распределения отдельных символов и их последовательностей как в открытом тексте, так и шифрованном тексте, которое с точностью до замены символов будет сохраняться в процессе шифрования и дешифрования.
Кратко говоря, частотный анализ предполагает, что частота появления заданной буквы алфавита в достаточно длинных текстах одна и та же для разных текстов одного языка. При этом в случае моноалфавитного шифрования, если в шифрованном тексте будет символ с аналогичной вероятностью появления, то можно предположить, что он и является указанной зашифрованной буквой. Аналогичные рассуждения применяются к биграммам (двубуквенным последовательностям), триграммам в случае полиалфавитных шифров.
Метод частотного анализа известен с еще IX-го века и связан и именем Ал-Кинди. Но наиболее известным случаем применения такого анализа является дешифровка египетских иероглифов Ж.-Ф. Шампольоном в 1822 году.
Данный вид анализа основывается на том, что текст состоит из слов, а слова из букв. Количество различных букв в каждом языке ограничено и буквы могут быть просто перечислены. Важными характеристиками текста являются повторяемость букв, пар букв (биграмм) и вообще m-ок (m-грамм), сочетаемость букв друг с другом, чередование гласных и согласных и некоторые другие.
Идея состоит в подсчете чисел вхождений каждой nm возможных m-грамм в достаточно длинных открытых текстах T=t1t2…tl, составленных из букв алфавита . При этом просматриваются подряд идущие m-граммы текста:
t1t2. tm, t2t3. tm+1, . ti-m+1tl-m+2. tl.
Если – число появлений m-граммы ai1ai2. aim в тексте T, а L – общее число подсчитанных m-грамм, то опыт показывает, что при достаточно больших L частоты
для данной m-граммы мало отличаются друг от друга.
В силу этого, относительную частоту считают приближением вероятности P (ai1ai2. aim) появления данной m-граммы в случайно выбранном месте текста (такой подход принят при статистическом определении вероятности).
В представленной ниже таблице приводятся частоты встречаемости букв в русском языке (в процентах):
Буква алфавита | Показатель частоты встречаемости | Буква алфавита | Показатель частоты встречаемости |
---|---|---|---|
А | 0,062 | Р | 0,04 |
В | 0,038 | Т | 0,053 |
Д | 0,025 | Ф | 0,002 |
Ж | 0,007 | Ц | 0,004 |
И | 0,062 | Ш | 0,006 |
К | 0,028 | Ъ, Ь | 0,014 |
М | 0,026 | Э | 0,003 |
О | 0,09 | Я | 0,018 |
Имеется мнемоническое правило запоминания десяти наиболее частых букв русского алфавита. Эти буквы составляют слово СЕНОВАЛИТР.
Устойчивыми являются также частотные характеристики биграмм, триграмм и четырехграмм осмысленных текстов. Существуют специальные таблицы с указанием частоты биграмм некоторых алфавитов. По результатам исследований с помощью таких таблиц ученые определили наиболее часто встречаемые биграммы и триграммы для русского алфавита:
СТ, НО, ЕН, ТО, НА, ОВ, НИ, РА, ВО, КО, СТО, ЕНО, НОВ, ТОВ, ОВО, ОВА.
Из таблиц биграмм можно также легко извлечь информацию о сочетаемости букв, т.е. о предпочтительных связях букв друг с другом.
Результатом таких исследований является таблица, в которой слева и справа от каждой буквы расположены наиболее предпочтительные «соседи» (в порядке убывания частоты соответствующих биграмм). В таких таблицах обычно указывается также доля гласных и согласных букв (в процентах), предшествующих (или следующих за) данной букве.
Г | С | Слева | Справа | Г | С | |
---|---|---|---|---|---|---|
3 | 97 | л, д, к, т, в, р, н | А | л, н, с, т, р, в, к, м | 12 | 88 |
80 | 20 | я, е, у, и, а, о | Б | о, ы, е, а, р, у | 81 | 19 |
68 | 32 | я, т, а, е, и, о | В | о, а, и, ы, с, н, л, р | 60 | 40 |
78 | 22 | р, у, а, и, е, о | Г | о, а, р, л, и, в | 69 | 31 |
72 | 28 | р, я, у, а, и, е, о | Д | е, а, и, о, н, у, р, в | 68 | 32 |
19 | 81 | м, и, л, д, т, р, н | Е | н, т, р, с, л, в, м, и | 12 | 88 |
83 | 17 | р, е, и, а, у, о | Ж | е, и, д, а, н | 71 | 29 |
89 | 11 | о, е, а, и | З | а, н, в, о, м, д | 51 | 49 |
27 | 73 | р, т, м, и, о, л, н | И | с, н, в, и, е, м, к, з | 25 | 75 |
55 | 45 | ь, в, е, о, а, и, с | К | о, а, и, р, у, т, л, е | 73 | 27 |
77 | 23 | г, в, ы, и, е, о, а | Л | и, е, о, а, ь, я, ю, у | 75 | 25 |
80 | 20 | я, ы, а, и, е, о | М | и, е, о, у, а, н, п, ы | 73 | 27 |
55 | 45 | д, ь, н, о | Н | о, а, и, е, ы, н, у | 80 | 20 |
11 | 89 | р, п, к, в, т, н | О | в, с, т, р, и, д, н, м | 15 | 85 |
65 | 35 | в, с, у, а, и, е, о | П | о, р, е, а, у, и, л | 68 | 32 |
55 | 45 | и, к, т, а, п, о, е | Р | а, е, о, и, у, я, ы, н | 80 | 20 |
69 | 31 | с, т, в, а, е, и, о | С | т, к, о, я, е, ь, с, н | 32 | 68 |
57 | 43 | ч, у, и, а, е, о, с | Т | о, а, е, и, ь, в, р, с | 63 | 37 |
15 | 85 | п, т, к, д, н, м, р | У | т, п, с, д, н, ю, ж | 16 | 84 |
70 | 30 | н, а, е, о, и | Ф | и, е, о, а, е, о, а | 81 | 19 |
90 | 10 | у, е, о, а, ы, и | Х | о, и, с, н, в, п, р | 43 | 57 |
69 | 31 | е, ю, н, а, и | Ц | и, е, а, ы | 93 | 7 |
82 | 18 | е, а, у, и, о | Ч | е, и, т, н | 66 | 34 |
67 | 33 | ь, у, ы, е, о, а, и, в | Ш | е, и, н, а, о, л | 68 | 32 |
84 | 16 | е, б, а, я, ю | Щ | е, и, а | 97 | 3 |
100 | м, р, т, с, б, в, н | Ы | л, х, е, м, и, в, с, н | 56 | 44 | |
100 | н, с, т, л | Ь | н, к, в, п, с, е, о, и | 24 | 76 | |
14 | 86 | с, ы, м, л, д, т,, р, н | Э | н, т, р, с, к | 100 | |
58 | 42 | ь, о, а, и, л, у | Ю | д, т, щ, ц, н, п | 11 | 89 |
43 | 57 | о, н, р, л, а, и, с | Я | в, с, т, п, д, к, м, л | 16 | 84 |
Пример: Проведем анализ текста следующего содержания
"СОКРАТ из Афин (469–399 до н.э.) – знаменитый античный философ, учитель Платона, воплощенный идеал истинного мудреца в исторической памяти человечества. С именем Сократа связано первое фундаментальное деление истории античной философии на до- и после-Сократовскую («Досократики»), отражающее интерес ранних философов VI–V вв. к натурфилософии, а последующего поколения софистов V в. – к этико-политическим темам, главная из которых – воспитание добродетельного человека и гражданина. Сократу был близок софистическому движению. Учение Сократа было устным; все свободное время он проводил в беседах с приезжими софистами и местными гражданами, политиками и обывателями, друзьями и незнакомыми на темы, ставшими традиционными для софистической практики: что есть добро и что – зло, что прекрасно, а что безобразно, что добродетель и что порок, можно ли научиться быть хорошим и как приобретается знание. Об этих беседах мы знаем в основном благодаря ученикам Сократа – Ксенофонту и Платону. Кроме их сочинений, имеются также фрагменты и свидетельства о содержании «сократических диалогов» других сократиков, пародийное изображение Сократа в комедии Аристофана Облака и ряд замечаний о Сократе у Аристотеля. Проблема достоверности изображения личности Сократа в сохранившихся произведениях – ключевой вопрос всех исследований о нем."
Есть зашифрованный текст: щ ьфьъзеэ кщвъязфхъзкд нэок амфопф адеа нзъч. аф-амътзъьс ф нъхсогъ зъ иупф хъщеъч. нфь бэчхфмфзщгфбф афбмсякпщд х емэсм – аъмщфзэп амкекй, эзбъпкзэ йфнкпэ ипънзэд к щ яэапэгэззуьк бпэяэьк, хкзкпэ щъид. йфядкз яэаъмщд х гэикзъеъ к амэгеквъщгк фееснэ зъ хуйфнкп. яэимфщкп мэифес, фе ъну фегэяухэпщд, фщсзспщд, щаэп щ пкцэ. – эмесм, еу иу афъп веф-зкисна? – сьфпдшыъ афамфщкпэ эзбъпкзэ. – к амъгмэек гсмкеа, щгфпагф ьфтзф! нхъ аэвгк хущьфпкп! – фзэ хумхэпэ с зъбф кя аэпацъх щкбэмъес, яэесокпэ х аъаъпазкцъ, мэщаэйзспэ оефму к фегмупэ фгзф х гэикзъеъ, хасщекх х гфьзэес щфпзцъ к аъзкъ аекц. бэчхфмфзщгкч сбмшьф афщьфемъп зэ бсхъмзэзегс, нфщеэп кя аэвгк нмсбсш щкбэмъес, амкгсмкп к щзфхэ соъп х щъид. – эмесм, хфяаьк щъид х мсгк, въме хфяаьк! х ифпазкцэй к ьфмбэй нэок зъе. еу тъ щэь бфхфмкп, веф нэогэ иъбсзад. фзэ хъмзъещд, фидяэеъпазф хъмзъещд! – эзбъпкзэ физдпэ ьствкзс щяэнк яэ апъвк к амктэпэща ыъгфч г ъбф яэеупгс. х гэикзъе яэбпдзспэ бфмзквзэд к нфпфткпэ: – г хэь кхэз эмгэнаъхкв. бэчхфмфзщгкч хдпф гкхзсп. хэмпэьфх хфоъп х гфьзэес ифнмфч афйфнгфч. – зъ афзкьэш д хэоъ сафмзфъ зътъпэзкъ фимэекеащд х ькпкцкш, – щгэяэп фз. – ъщпк иу нэмаш афйкекпк щ цъпаш хугсаэ, еф нэхзф иу афяхфзкпк к сщпфхкд хущеэхкпк. афмэ афнгпшвкеа амэхффймэзкеъпазуъ фмбэзу. – зъзэхктс ьъзефх. ьфд щпстиэ иъяфаэщзфщек нъпэъе хщъ хфяьфтзфъ. – асщеа амфнфптэъе х ефь тъ нсйъ. хэщ зкгеф к зъ амфщке пшикеа ьъзефх, афнсьэчеъ ф нфвъмк – афмэ афнгпшвэеа нфафпзкеъпазуъ мъяъмху, к д язэш въпфхъгэ, гфефмуч щьфтъе зэь афьфва. щфикмэчеъща, иснс тнэеа хэщ х ьэокзъ. нфхфпазф нсмэгэ хэпдеа! хэмпэьфх хуоъп яэ нхъма. бэчхфмфзщгкч мэянэхкп фгсмфг х аъаъпазкцъ к ьънпъззф афнздпщд.
Провел его частотный анализ в Excel-е, получил частоты букв. Стоит упомянуть, что знаки препинания и пробелы не кодировались. Слева частоты в текущем тексте, справа данные с Википедии
Прямая замена символов по приблизительным частотам ничего не дает, видимо, текст слишком маленький, получается что-то непонятное. В то же время почти уверен, что Ф -> О. Если кто-то сможет подсказать, то буду очень благодарен.