Сучасні
інформаційні технології /4. Інформаційна
безпека.
К.т.н. Гулак Н. К.
Щербина А. В.
Кузнецов
К. Ю.
Національний
Авіаційний університет, Україна
Шифр
Вернама (одноразовий шифроблокнот)
Шифр Вернама (англ.
Verrnam Cipher) - система
симетричного шифрування, винайдена в 1917 році співробітником AT & T Гилбертом Вернама. Шифр є
різновидом криптосистеми одноразових блокнотів. У ньому використовується булева функція «Що виключає АБО». Шифр Вернама
є прикладом системи з абсолютною криптографічного стійкістю, при дотриманні
певних умов. Але якщо її не дотримуватися проявляється ''ахіллесова п'ята'' одноразового шифроблокнота. Порушення правил
веде до того, що абсолютно надійний шифр перетворюється в той, що досить легко
зламати.
При цьому він вважається однією з найпростіших криптосистем
Рис. 1 Схема шифру Вернама
Алгоритм
шифрування
Для отримання шифротекста відкритий текст
об'єднується операцією «виключне АБО» з секретним ключем. Так, наприклад, при
застосуванні ключа (1 1 1 0 1) на букву «А» (1 1 0 0 0) отримуємо зашифроване
повідомлення (0 0 1 0 1):
Знаючи, що для прийнятого повідомлення маємо ключ (1 1 1 0 1), легко
отримати вихідне повідомлення тією ж операцією:
Для абсолютної криптографічної стійкості ключ повинен володіти трьома
критично важливими властивостями:
·
мати випадковий рівномірний розподіл: , де
k — ключ, а N — кількість бінарных символів
в ключі;
·
збігатися за розміром із заданим відкритим текстом;
·
застосовуватися тільки один раз.
Приклад
Для шифрування відкритого тексту використовуються шифроблокноти,
на кожному аркуші яких написана послідовність випадкових чисел. Як у
відправника, так і у одержувача повинні бути два заздалегідь складених
однакових шифроблокнота.
Тепер обираємо сторінку з одноразового шифроблокнота
і починаємо з нею працювати. Ніколи не можна в кодуванні вказувати номер
сторінки шифроблокнота, щоб не дати можливість
проаналізувати послідовність кодувань або вгадати час її відправки (що може
виявитися не менш критичним, ніж її вміст). Замість цього для ідентифікації
сторінки використовується перша група, її не слід використовувати для
шифрування, а записати як є. Під цифрами шифровки записуємо цифри одноразового
коду починаючи з другої групи, після чого складаємо цифри в кожному стовпчику,
завжди відкидаючи виникаюче перенесення:
80781 48386 18239 11000 + 14358 89753 24133 40169 26799 = 14358 69434
62419 58398 37799
Ось це вже і є шифровка:
14358 69434 62419 58398 37799
Тепер потрібно знищити сторінку, якою відбулося шифрування, і
відправити повідомлення за призначенням. Одержувач дістане свою копію шифроблокнота, знайде потрібну сторінку по першій групі і
зробить спочатку зворотню операцію, віднімаючи з
кожної цифри шифровки цифру з шифроблокнота, завжди
відкидаючи мінус. Після цього копія шифроблокнота
знищується, а тому неможливо розшифрувати перехоплене повідомлення.
Сьогодні передача особливо важливих даних потрібна як ніколи, тому
стоїть завдання вдосконалити даний шифр для швидкого шифрування великих обсягів
даних.
Криптографічний протокол для шифру Вернама
Розглянемо етапи вирішення реалізаціїшифру Вернама в практичній криптографії.
Однією із складностей реалізації є генерація
великої випадкової гами для ключа, яка вирішується за допомогою генераторів
випадкових чисел. Другою проблемою є передача ключа.
Шифр Вернама - це система з симетричним ключем, перевагою якої
є:
·
групове шифрування;
·
швидкість шифрування;
·
простота реалізації як для апаратної так і для програмної платформи.
Але
основним недоліком даних систем є передача ключа. У класичному шифрі Вернама ця проблема є першорядною, оскільки копія шифроблокнота відправника потрібна одержувачу і потрібно
узгоджувати канали передачі ключа, як правило, це особиста передача з рук в
руки копії шифроблокнота. Для вирішення даної
проблеми необхідно використовувати ключі, згенеровані
за допомогою алгоритмів генерації псевдовипадкових послідовностей, на основі
чисел які спочатку згенеровані на основі криптостійкого апаратного генератора випадкових чисел. Так
як шифр Вернама в криптографічному протоколі є
криптографічним примітивом, то перед передачею по-відкритому каналу зв'язку,
повідомлення попередньо шифрується, дробиться на невеликі частини в розмір
кадру для передачі за обраним протоколом обміну і за допомогою стеганографії в шифровку вбудовується його ключ. Ключ для шифрування
як самого повідомлення так і кадру або кадрів в якому воно передається
формується системою Діффі-Хелманом, на основі ключів
які згенеровані ГВЧ відправником і отримувачем. Таким
чином відразу вирішується кілька проблем: єдина система генерації ключів,
відсутність копії шифроблокнота, так як
використовується генератор випадкових чисел в реальному часі, тобто немає
необхідності зберігати ключі що підвищує стійкість алгоритму. Після передачі
повідомлення дешифрується і якщо необхідно перешифруеться
для тривалого зберігання. Після цього сеансовий ключ
знищується.
Одержувач
отримавши повідомлення, знаючи протокол обміну, проробляє аналіз пакету і
витягує з пакета параметри стеганографічного
алгоритму, на основі якого в повідомлення вбудований ключ для розшифровки
основного. Коли одержувач розшифрує повідомлення, сеансові ключі і параметри стеганографії знищуються.
Можна
використовувати одноканальну передачу даних, але при
цьому знижується швидкість передачі пакетів так як необхідно спочатку передати
пакет, а потім прийняти відповідний, що створює «пробку». Параметри для стеганографії можна також брати на основі сеансового ключа.
Переваги криптографічного протоколу
шифра Вернама
·
Підтримка групового шифрування, тобто кілька людей, розділяючи між собою ключ, зможуть шифрувати тільки ті частини
повідомлення для яких у них
є доступ, або які їм потрібно, але все повідомлення вони розшифрувати
не зможуть. При груповому шифруванні вирішується проблема розподілу ключів.
·
Абсолютна криптостійкість.
·