Математика и криптография : тайны шифров и логическое мышление | страница 48



Второе правило говорит о том, что длина ключа должна быть равна длине шифруемого сообщения. Это просто объяснить. Если длина ключа будет меньше длины шифруемого сообщения, то ключ будет повторяться при шифровании. А как взламывать шифрограммы с периодическим ключом, мы уже изучили на второй неделе. Да, если ключ будет достаточно длинным, взломать сообщение будет сложно. Но возможно.

Третье правило: ключ должен быть абсолютно случаен. Нельзя использовать в качестве ключа какой-либо осмысленный текст. Это было понятно из описания попыток горе-аналитика взломать шифрограмму слова «КАТАПУЛЬТА». Если бы это слово было зашифровано при помощи другого осмысленного слова, то в процессе перебора криптоаналитик наткнулся бы на такой осмысленный ключ и сделал резонный вывод, что он получил расшифровку. Кроме того, если использовать осмысленный ключ (даже и такой же длины, как и шифруемое сообщение), тайное послание превратится в банальный шифр многоалфавитной замены, к которому применим частотный анализ. Более того, не придется задумываться о длине ключа, поскольку надо будет анализировать частоты пар символов.

Наконец, главное правило: никогда, ни при каких условиях один и тот же ключ нельзя использовать дважды. Это очень важно. Всё дело в том, что если криптоаналитик получит два сообщения, зашифрованные одним и тем же ключом, каким бы длинным он ни был, то оба этих сообщения будут очень быстро взломаны. Можно просто применить к ним обоим операцию XOR, и тогда, насколько ты помнишь её свойства, секретный ключ просто взаимоуничтожится, и получится зашифрованное сообщение, состоящее из двух осмысленных текстов. А это очень легко взламывается частотным анализом. Дело тут даже не в операции XOR. Любая таблица многоалфавитной замены предполагает обратную операцию. Просто операция XOR обратна сама для себя, поэтому она так удобна.

Как происходит такое шифрование? У двух людей, которые желают обмениваться секретными данными этим абсолютно надёжным способом, должны быть специальные одинаковые блокноты с ключами. На каждой странице такого блокнота написаны случайные символы. Когда первый человек посылает второму секретное сообщение, он зашифровывает его при помощи ключа на первой странице блокнота. Второй человек, получив сообщение, расшифровывает его при помощи такого же ключа на первой странице его блокнота. После этого и первый и второй вырывают первую страницу блокнота и уничтожают её (лучше всего сжечь и смешать пепел; если просто выкинуть страницу с ключом в мусорное ведро, то она может быть найдена зловредным криптоаналитиком, и тогда всё пропало). Далее всё повторяется. Каждый раз после использования ключа с очередной страницы эта страница уничтожается. Потому-то метод и называется