Шифр Вернама

From CryptoWiki
Jump to: navigation, search

Шифр Вернама (одноразовый блокнот, One Time Pad) – шифр, предложенный в 1917 году американским инженером Гильбертом Вернамом, служащим компании AT&T (American Telephone & Telegraph), для шифрования телеграфных сообщений. Вернам так и не сумел доказать, что его шифр обладает высокими криптографическими качествами. Лишь в 1949 г. Шеннон ввел понятие совершенно стойкого шифра и доказал, что шифр Вернама является совершенным.

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

Contents

Принцип работы

Для шифрования открытого текста используются шифрблокноты – обычные бумажные блокноты, на каждом листе которых написан ключ шифрования. Как у отправителя, так и у получателя должны быть два заранее составленных одинаковых шифрблокнота. Когда отправитель хочет отправить сообщение, он проделывает следующие действия: берет первую букву открытого текста и первую букву из шифрблокнота, затем побитово их складывает (с помощью операции исключающее ИЛИ) и получает первую букву шифртекста. Далее отправитель побитово складывает вторую букву открытого текста и вторую букву из шифрблокнота и получает вторую букву шифртекста. Он будет продолжать проделывать те же действия, пока весь открытый текст не будет зашифрован. Затем он посылает свой зашифрованный текст получателю по каналу связи и сразу же обязательно уничтожает использованную страницу своего шифрблокнота.

Получив шифртекст, получатель, чтобы расшифровать его, проделывает те же самые действия, что и отправитель, а именно: побитово складывает первую букву полученной шифртекста с первой буквой своего шифрблокнота, вторую - со второй, и т.д. пока не расшифрует весь текст, после чего он обязательно уничтожает использованную страницу своего шифрблокнота.

Требования

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

Недостатки

  • Длина ключа в шифре Вернама совпадает с длиной сообщения и одну страницу шифрблокнота можно использовать при зашифровке только одного открытого текста. Это означает, что защита больших объемов информации требует огромных трудозатрат, связанных с производством, распределением, хранением и уничтожением ключей.
  • Ключ должен быть абсолютно случайно вероятным. Каждая буква на каждой странице шифроблокнота должна выбираться случайным образом. Последовательности символов в шифроблокноте не должны повторяться.
  • Большие трудности возникают также при попытке объединить в сети связи большое количество абонентов. Ведь в этом случае необходимо иметь возможность быстро получать доступ к любому ключу любого пользователя.

Применение

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

Назад