— Как я понял, Кирилл рассказал тебе, Екатерина, что простой шифр одноалфавитной замены можно очень легко взломать. Почему это можно сделать?
Катя ответила:
— Потому что количество разных букв в текстах разное.
— Да, примерно так. Но ты очень смутно выразилась. На самом деле потому, что у каждого символа есть определённая частота появления в текстах, и при помощи сравнения частот в шифрограмме со статистически установленными частотами букв шифрограмму можно взломать. Это понятно?
Мы с Катей согласно кивнули. Ну, мне-то это было давно известно, а Катя, надеюсь, поняла мои объяснения. Отец продолжил:
— А теперь давайте сделаем такой финт. Возьмём, скажем, сто чисел от 00 до 99, то есть все двузначные числа. Для каждого символа русского языка, то есть всех букв и пробела, как мы договорились, назначим случайным образом такое количество символов, которое примерно соответствует частоте символа. Например, пробел имеет частоту 14,55 %, так что пятнадцать случайно выбранных чисел из множества от 00 до 99 будут обозначать пробел. Буква «О» имеет частоту 9,96 %, поэтому этой букве будет соответствовать десять случайно выбранных чисел, которые не совпадают с числами для пробела. Екатерина, если буква «Е» встречается в языке с частотой 6,62 %, то сколько случайно выбранных чисел ей будет соответствовать?
— Семь.
— Верно. И так далее — мы выбираем числа в соответствии с округлённым значением частоты. Если для букв в конце алфавита не хватает чисел, то мы берём их у самых часто используемых символов, то есть пробела, букв «О», «Е», «А» и т. д. Если же в конце остались числа, которые не получили в соответствие какую-нибудь букву, то такие числа называются «пустышками». Они тоже используются — для того, чтобы ещё больше запутать того, кто попытается такой шифр взломать.
Мы с Катей внимательно слушали, я даже записывал в свой блокнот. Между тем папа продолжил:
— Теперь представьте, что нужно зашифровать какой-то текст. Мы берём первую букву этого текста, получаем множество соответствующих ей чисел и опять случайно — именно случайно! — выбираем одно из чисел. Это число будет первым символом в шифрограмме. Таким образом шифруются все буквы. Кирилл, что получится в итоге?
Я задумался. Если всё делать так, как разъяснил папа, то получается, что для частых букв будет использоваться больше различных чисел, а для редких букв вообще всегда может использоваться одно и то же число. Но что это значит? Я предположил:
— Может быть, частоты всех символов из шифрограммы будут примерно одинаковы?
— Точно! Абсолютно верно! И потому гистограмма будет выглядеть как столбики примерно одинаковой частоты. Надо учесть, что среди этих столбиков могут попадаться пустышки, которые шифровальщик будет равномерно расставлять в тексте. Это очень затруднит дешифровку. А как производится расшифровка, Екатерина?