Шифр Вернама
Шифр Вернама(одноразовий блокнот,One Time Pad) – шифр, запропонований у 1917 році американським інженером Гільбертом Вернамом, службовцем компанії AT&T (American Telephone & Telegraph), для шифрування телеграфних повідомлень. Вернам так і не зумів довести, що його шифр має високі криптографічні якості. Лише 1949 р. Шеннон ввів поняття цілком стійкого шифру і довів, що шифр Вернама є досконалим.
Досконалий шифр особливо добрий тим, що для нього неможливий повний перебір ключів з метою визначення відкритого тексту за відомим шифртекстом. Наприклад, при спробі перебрати всі можливі ключі шифру Вернама противник отримає разом із істинним відкритим текстом та інші осмислені відкриті тексти тієї ж довжини. Вибрати з них потрібний відкритий текст неможливо.
Принцип роботи
Для шифрування відкритого тексту використовуються шифр-блокноти – звичайні паперові блокноти, на кожному аркуші яких написано ключ шифрування. Як у відправника, так і в одержувача повинні бути два заздалегідь складені однакові шифрблокноти. Коли відправник хоче відправити повідомлення, він робить наступні дії: бере першу літеру відкритого тексту і першу літеру з шифрблокнота, потім побітово їх складає (за допомогою операції, що виключає АБО) і отримує першу літеру шифртексту. Далі відправник побітово складає другу літеру відкритого тексту та другу літеру із шифрблокнота та отримує другу літеру шифртексту. Він продовжуватиме виконувати ті ж дії, поки весь відкритий текст не буде зашифрований. Потім він посилає свій зашифрований текст одержувачу каналом зв'язку і відразу обов'язково знищує використану сторінку свого шифрблокнота.
Отримавши шифртекст, одержувач, щоб розшифруватийого, проробляє самі дії, як і відправник, саме: побитово складає першу літеру отриманої шифртекста з першою літерою свого шифрблокнота, другу - з другого, тощо. поки що не розшифрує весь текст, після чого він обов'язково знищує використану сторінку свого шифрблокнота.
Вимоги
- Довжина ключа повинна збігатися із довжиною повідомлення.
- Не можна шифрувати різні повідомлення одним і тим же ключем (тобто не використовувати одну і ту ж сторінку шифроблокнота повторно).
- Необхідно складати сторінки шифроблокнота випадково і складати їх без повторень ланцюжків символів.
- Після надсилання зашифрованого повідомлення відправник повинен обов'язково знищувати використану сторінку шифрблокнота.
Недоліки
- Довжина ключа в шифрі Вернама збігається з довжиною повідомлення і одну сторінку шифрблокнота можна використовувати при зашифруванні лише одного відкритого тексту. Це означає, що захист великих обсягів інформації вимагає величезних трудовитрат, пов'язаних із виробництвом, розподілом, зберіганням та знищенням ключів.
- Ключ має бути абсолютно випадково ймовірним. Кожна літера на кожній сторінці шифроблокнота має вибиратися випадково. Послідовність символів у шифроблокноті не повинна повторюватися.
- Великі труднощі виникають при спробі об'єднати в мережі зв'язку велика кількість абонентів. Адже в цьому випадку необхідно мати можливість швидко отримати доступ до будь-якого ключа будь-якого користувача.
Застосування
У зв'язку з наведеними вище недоліками, практично, зазвичай, доводиться задовольнятися шифрами, які є досконалими. Тим не менш, стійкі шифри все ж таки знайшли практичне застосуваннядля захисту особливо важливих ліній зв'язку із відносно невеликим обсягом інформації. Наприклад, шифр Вернама використовувався на урядовій "гарячій лінії" між Вашингтоном та Москвою, де ключові матеріали являли собою паперові стрічки (що виготовлялися у двох примірниках), на які знаки ключової послідовності наносилися за допомогою перфорації.