logo
Коды и шифры

Одноразовый блокнот

Основная слабость книжного шифра (в том виде, в каком он описан выше) заключается в том, что и сообщение, и гамма являются текстами на английском языке. Мы смогли восстановить и то, и другое с помощью метода протяжки шаблонов, основанных на наиболее употребительных английских словах, которые могут встречаться в обоих текстах. Если бы гамма была текстом не на английском, а на другом языке, дешифрование далось бы криптоаналитику труднее. Но как только он установил бы, что это так, сообщения были бы им в конце концов прочитаны, так как шаблоны из других языков также можно использовать. С другой стороны, вскрытие шифра становится невозможным, если гамма представляет собой не слова обычного языка, а является просто "случайной" последовательностью букв, взятой со страницы, состоящей из "случайных знаков", которая уничтожается сразу после применения, чтобы предотвратить ее повторное использование. Такой шифр называется "одноразовый блокнот". Невозможность вскрытия этого шифра может показаться весьма смелым утверждением, но, тем не менее, это математический факт (см. M7).

Если одноразовые блокноты обеспечивают абсолютную секретность, почему они не используются всегда? В основном потому, что каждая пара людей, которым необходима связь, должна иметь в своем распоряжении отдельный блокнот, и оба должны иметь по одному из двух существующих экземпляров этого шифра. Эта задача выполнима для нескольких сотен пар, например, для послов, поддерживающих связь со своим правительством. Однако для большого числа армейских подразделений в военное время это нереально. Следует также понимать, что ситуация кардинально меняется, если "одноразовый" блокнот используется повторно. В таком случае два или несколько сообщений оказываются зашифрованными с помощью одной и той же аддитивной гаммы. Вычитая один текст из другого, гамму можно исключить, а получившийся разностный текст представляет собой разность двух незашифрованных текстов. Их можно дешифровать с помощью "протяжки шаблона" или другим подобным методом. Если одноразовый блокнот использован для зашифрования кодовых групп, а не естественного языка, то задача криптоаналитика значительно усложняется, потому что для использования приема "протяжки шаблона" он должен располагать некоторыми сведениями о самом коде; но метод и в этом случае остается по сути тем же самым.

По ряду причин, к которым относятся, в том числе, необходимость изготовления одноразовых блокнотов, криптографов очень интересуют методы получения "случайных" букв (или чисел). Некоторые из этих методов рассмотрены в следующей главе.