You are on page 1of 298

ЛЕКЦІЯ 1

з дисципліни “Основи криптографії”

ТЕМА “КРИПТОГРАФІЯ: ОСНОВНІ


ТЕРМІНИ ТА ПОНЯТТЯ”
1.1. Криптографія та її застосування

Серед всього спектру методів захисту даних від небажаного


доступу особливе місце займають криптографічні методи.
Криптографічний захист інформації — вид захисту інформації,
що реалізується шляхом перетворення інформації з використанням
спеціальних (ключових) даних з метою приховування/відновлення
змісту інформації, підтвердження її справжності, цілісності,
авторства тощо.
Криптографія (від грецького kryptós — приховани і gráphein —
писати) - наука про математичні методи забезпечення
конфіденці ності, цілісності і автентичності інформаці .

2
й
й
ї
Тривалий час під криптографією розумілось лише шифрування -
процес перетворення звичайної інформації (відкритого тексту) в
незрозумілу послідовність символів (тобто, шифротекст).
Розшифрування (дешифрування) - це обернений процес
відтворення інформації із шифротексту.
Якщо англійський текст має відповідати стандарту ISO 7498-2, то
шифрування - це “enchipher” (а не “encrypt”), дешифрування - “dechipher” (не
“decrypt”).

Шифром, або криптографічним алгоритмом називається пара


алгоритмів шифрування/розшифрування.
Дія шифру керується як алгоритмами, так і ключем.

3
Як правило, повідомлення позначають як M (message) або P (від
plaintext). Це може бути потік бітів, текстовий файл, бітове
зображення, звукозапис та ін. M - це просто двійкові дані. У будь-
якому випадку M - це повідомлення, яке слід зашифрувати.

Шифртекст позначають як C (від ciphertext). Це також двійкові


дані, іноді такого ж розміру, як M, іноді більшого розміру.

E(M) = C

У зворотному процесі функція дешифрування D діє на C,


відновлюючи M:

D(C) = M

D(E(M)) = M
4
Ключ - це секретний параметр (в ідеалі, відомий лише двом
сторонам) для окремого контексту під час передачі повідомлення
(у даному випадку маються на увазі криптографічні алгоритми з
секретним ключем).
Ключі мають велику важливість, оскільки без змінних ключів
алгоритми шифрування легко зламуються і непридатні для
використання в більшості випадків.
Історично склалось так, що шифри часто використовуються для
шифрування та дешифрування, без виконання додаткових
процедур, таких як автентифікація або перевірка цілісності.
Як правило, ключ позначається як K.

5
Криптоаналіз — наука про методи дешифрування зашифрованої
інформації без призначеного для цього ключа, а також сам процес
такого дешифрування.

Простір ключів (key space) — загальна кількість усіх можливих


ключів, які можна використовувати в криптографічній системі.
Наприклад, DES використовує 56-бітний ключ. Отже, ключовий
простір має розмір 2^56, що приблизно дорівнює 7,2 × 10^16.

Aтака грубої сили (brute-force attack): коли алгоритми


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

6
Люди, які займаються криптографією, а саме розробкою нових
криптографічних методів, називаються криптографами.
Відповідно ті, хто займаються криптоаналізом - криптоаналітики.
Галузь математики, яка охоплює криптографію та криптоаналіз,
називається криптологією, а науковці, які цим замаються -
криптологами. Такі фахівці мають дуже глибокі знання в
математиці.

7
Відправник та отримувач (та інші персонажі)
Зрозуміло, що відправник А хоче передати повідомлення
захищеним шляхом отримувачу В. Він хоче бути впевненим, що
зловмисник Е його не перехопить…
Як правило, в криптографії відправника називають
Аліса, а отримувача - Боб.

Персонажів Аліси та Боба винайшли Рон Рівест, Аді Шамір і Леонард Адлеман у
своїй роботі 1978 року «A Method for Obtaining Digital Signatures and Public-key
Cryptosystems». Згодом вони стали загальними архетипами в багатьох наукових та
інженерних галузях, таких як квантова криптографія, теорія ігор і фізика. Оскільки
використання Аліси та Боба стало більш поширеним, додавалися додаткові
символи, іноді кожен із певним значенням. Ці персонажі не обов’язково
стосуються людей; вони стосуються загальних агентів, які можуть бути різними
комп’ютерами або навіть різними програмами, запущеними на одному комп’ютері.

8
Аліса і Боб (Alice and Bob) — Найбільш часто Аліса прагне послати повідомлення Бобу.
Волтер (Walter) — наглядач, може бути необхідний для охорони Аліси і Боба, залежно від
обговорюваного протоколу.
Керол, Карлос або Чарлі (Carol, Carlos or Charlie) — виступають як третій учасник з'єднання.
Крейг (Craig) — зломник паролів (зазвичай зустрічається в ситуації зі збереженими хешами).
Дейв (Dave) — четвертий учасник (і так далі за алфавітом).
Єва (Eve) — пасивний зловмисник, від англ. eavesdropper (підслуховувач). Вона може
прослуховувати повідомлення між Алісою і Бобом, але вона не може впливати на них.
У квантовій криптографії Єва може представляти навколишнє середовище.
Меллорі (Mallory, від malicious) або Труді (Trudy, від intruder) — активний зловмисник; на
відміну від Єви, Меллорі може змінювати повідомлення, відтворювати старі повідомлення,
підміняти повідомлення і так далі. Складність захисту системи від Меллорі набагато вища ніж
від Єви.
Пеггі (Peggy), прувер (prover) і Віктор (Victor), перевіряючий (verifier) — особи, що часто
взаємодіють, які доводять що транзакція відбулася.
Сивілл — анонімний атакувальник, який зазвичає має велику кількість ідентичностей.
Наприклад, Сивілл може підірвати репутаційну систему за допомогою великої кількості
ідентичностей. Див. атака Сивілли.
Трент (Trent), довірений арбітр — свого роду нейтральна третя сторона, чия точна роль
змінюється залежно від стадії обговорення протоколу.
Чак (Chuck) — третій учасник, зазвичай зловмисник.
9
До нашого часу криптографія займалася виключно забезпеченням
конфіденційності повідомлень (тобто шифруванням) -
перетворенням повідомлень із зрозумілої форми в незрозумілу і
зворотнє відновлення на стороні одержувача, роблячи його
неможливим для прочитання для того, хто перехопив або
підслухав без секретного знання (а саме ключа, необхідного для
розшифрування повідомлення).
В останні десятиліття сфера застосування криптографії
розширилася і включає не лише таємну передачу повідомлень, але
і методи перевірки цілісності повідомлень, ідентифікування
відправника/одержувача (автентифікація), цифрові підписи,
інтерактивні підтвердження, та технології безпечного спілкування,
тощо.

10
Де можна зустріти криптографію?
На сьогоднішній день переважна більшість людей так чи інакше
використовують криптографію у повсякденному житті: мобільний
зв'язок, месенджери, банківські додатки, Wi-Fi, передача інформації
в браузерах (протокол HTTPS) тощо. З'являється все більше
побутових приладів підключених до Інтернету Речей (IoT, Internet-
of-Things) – і звичайно ж, комунікації цих пристроїв між собою та з
власником мають бути надійно захищені криптографічними
методами. Прикладів застосування криптографії можна навести
безліч.
Все це прийнято відносити до «громадянської криптографії» –
тобто криптографії, яка на відміну від криптографії державної чи
військової, покликана задовольняти потреби приватних осіб та
організацій.

11
Криптографічні примітиви

Криптографічні примітиви – низькорівневі криптографічні


алгоритми, які часто використовуються для побудови
криптографічних протоколів. У вузькому значенні це операції та
процедури, що визначають необхідні властивості криптосистеми.
Криптографічні примітиви використовуються як основні будівельні блоки при створенні
криптосистеми, тобто призначені для вузького класу завдань з високим ступенем надійності.
Як приклад можна розглянути таку ситуацію: нехай для деякої підпрограми шифрування
зазначено, що вона може бути зламана лише з числом операцій X на комп'ютері, тоді якщо
вона може бути зламана за допомогою значно меншої кількості операцій, ніж X, цей
криптографічний примітив вважається ненадійним.

При проектуванні протоколів та криптосистем розробник відповідає за усунення


композиційних недоліків. Не маючи можливості довести їхню безпеку, розробник повинен
вважати надійними примітиви, які вони використовують. Вибір кращого примітиву,
доступного для використання в протоколі, зазвичай забезпечує найкращу безпеку доступну з
можливих. Якщо виявлено збій криптографічного примітиву, майже кожен протокол, який
його використовує, стає вразливим.

12
Основні примітиви

- Одностороння хеш-функція (наприклад, SHA-512)


- Симетричні криптоалгоритми (наприклад, AES)
- Acиметричні криптоалгоритми (наприклад, шифрування RSA,
схема обміну ключами Diffie-Hellman)
- Цифровий підпис
- Криптографічно стійкий генератор псевдовипадкових чисел

Приклад
HTTPS = HTTP + TLS,
де TLS = Diffie-Hellman + RSA + AES + Hash functions +
Digital signature + Random number generator + …
13
Криптографічні примітиви повинні мати такі властивості:

Рівень безпеки. Зазвичай визначається кількістю операцій, необхідних (з використанням


кращих методів, відомих в даний час), щоб досягти запланованої мети. Зазвичай рівень
безпеки визначається необхідною верхньою межею обсягу роботи. Це іноді називають
робочим чинником.

Функціональність. Примітиви мають бути об'єднані для досягнення різних цілей. Які
примітиви найефективніші для цієї мети, визначатиметься основними властивостями
примітивів.

Методи роботи. Примітиви, коли вони застосовуються в різних напрямках та при різних
вкладеннях, як правило, виявляють різні характеристики; таким чином, один примітив міг би
використовуватися по-різному залежно від необхідності.

Продуктивність. Це стосується ефективності примітиву у певному режимі роботи


(наприклад, алгоритм шифрування може оцінюватися за кількістю бітів за секунду, яку він
може зашифрувати).

Простота реалізації. Це відноситься до труднощі реалізації примітиву в практичній


реалізації, наприклад реалізації примітиву в програмному або апаратному середовищі.

Відносна важливість різних критеріїв значною мірою залежить від застосування та наявних
ресурсів. Наприклад, у середовищі, де обчислювальна потужність обмежена, можливо,
доведеться відмовитися від дуже високого рівня безпеки для підвищення продуктивності
системи в цілому.
14
Криптографія vs. Стеганографія ?
Стеганографія (від грец. στεγανός «прихований» + γράφω «пишу»)
— спосіб передачі або зберігання інформації з урахуванням
збереження в таємниці самого факту такої передачі (зберігання).
На відміну від криптографії, що приховує вміст таємного
повідомлення, стеганографія приховує факт його існування. Як
правило, повідомлення виглядатиме як щось інше, наприклад, як
зображення. Стеганографію зазвичай використовують разом із
методами криптографії, в такий спосіб, доповнюючи її. Тому не
варто протиставляти ці галузі захисту інформації.
Таким чином, криптографія захищає зміст повідомлення, а
стеганографія - сам факт наявності будь-яких прихованих послань
від викриття.

15
1.2. Класифікація криптоалгоритмів
Класифікація залежно від того, чи відомий алгоритм, який використовують
для шифрування:
1. Тайнопис. Відправник і одержувач роблять над повідомленням
перетворення, відомі лише їм двом. Стороннім особам невідомий сам
алгоритм шифрування. Деякі фахівці вважають, що тайнопис не є
криптографією взагалі.
2. Криптографія з ключем. Алгоритм впливу на передані дані відомий
усім стороннім особам, але він залежить від деякого параметра - "ключа",
яким володіють лише відправник і одержувач.
• Симетричні криптоалгоритми. Для зашифровки і розшифровки
повідомлення використовується один і той же блок інформації (ключ).
• Асиметричні криптоалгоритми. Алгоритм такий, що для
зашифровки повідомлення використовується один ( "відкритий") ключ,
відомий усім бажаючим, а для розшифровки - інший ( "закритий"),
який існує тільки в одержувача.

16
Принцип Керкгоффса — правило розробки криптографічних
систем, за яким у засекреченому вигляді тримається лише певний
набір параметрів алгоритму - ключ, а сам алгоритм шифрування
має бути відкритим. Іншими словами, при оцінці надійності
шифрування необхідно припускати, що противник знає про
систему шифрування, що використовується все, крім
застосовуваних ключів. Принцип широко застосовується у
криптографії. Вперше цей принцип сформулював у ХІХ столітті
голландський криптограф Огюст Керкгоффс.

17
У 1883 році Керкгоффс виклав шість принципів проектування військових
шифрів у своїй книзі «Військова криптографія». Шість основних вимог
до криптосистеми, у перекладі звучать так:
1. Система повинна практично, якщо не математично, не підлягати
розкриттю;
2. Не має потреби в збереженні системи в таємниці; попадання системи в
руки ворога не повинно завдавати незручностей;
3. Зберігання та передача ключа повинні бути здійснені без паперових
записів; кореспонденти повинні мати можливість змінювати ключ на свій
розсуд;
4. Система має бути придатною для повідомлення через телеграф;
5. Система має бути легко переносимою, робота з нею не повинна
вимагати участі кількох осіб одночасно;
6. Нарешті, від системи потрібно, враховуючи можливі обставини її
застосування, щоб вона була проста у використанні, не вимагала значного
розумового напруження або дотримання великої кількості правил.
18
Деякі з наведених принципів уже неактуальні, або трансформувалися у
відповідності до сучасних реалій, оскільки комп’ютери здатні виконувати
складне шифрування. Але друга аксіома - принцип Керкгоффса -
залишається життєво важливою.

Принцип Керкгоффса був більш коротко сформульований американським


математиком Клодом Шенноном у 1949 році як «ворог знає систему»,
тобто «треба розробляти системи з припущенням, що ворог негайно
отримає повне знайомство з ними». У такому вигляді це називається
максимою Шеннона. Це протилежно ідеї «безпеки через невідомість».

Брюс Шнайєр (сучасний криптограф, науковець) вважає, що принцип


Керкгоффса застосовується не тільки до кодів і шифрів, але і для систем
безпеки в цілому: кожен секрет створює потенційну точку відмови.
Іншими словами, секретність є основною причиною крихкості і тому
вона може призвести до катастрофічного краху системи. І навпаки,
відкритість забезпечує гнучкість системи.

19
В залежності від кількості ключів, які застосовуються у
конкретному алгоритмі:
• Безключові криптоалгоритми – не використовують в
обчисленнях ніяких ключів;
• Одноключові криптоалгоритми – працюють з одним
додатковим ключовим параметром (таємним ключем);
• Двухключові криптоалгоритми – на різних стадіях роботи в
них застосовуються два ключових параметри: секретний та
відкритий ключі.

20
В залежності від характеру впливів, яким підлягають дані,
алгоритми діляться на:
• Перестановочні - Блоки інформації (байти, біти, більші
одиниці) не змінюються самі по собі, але змінюється їх
порядок проходження, що робить інформацію недоступною
сторонньому спостерігачеві.
• Підстановочні - Самі блоки інформації змінюються за
законами криптоалгоритму. Переважна більшість сучасних
алгоритмів належить цій групі.

21
Залежно від розміру блоку інформації криптоалгоритми
поділяються на:
• Потокові шифри - Одиницею кодування є один біт. Результат
кодування кожного символу не залежить від інших символів.
Схема застосовується в системах передачі потоків інформації,
тобто в тих випадках, коли передача інформації починається і
закінчується в довільні моменти часу і може випадково
перериватися. Найбільш поширеними представниками
потокових шифрів є скремблери.
• Блочні шифри - Одиницею кодування є блок з декількох
байтів (в даний час 4-32). Результат кодування залежить від
усіх вихідних байтів цього блоку. Схема застосовується при
пакетній передачі інформації та кодування файлів.

22
Один з варіантів класифікації криптоалгоритмів наведено на
рисунку 1.1.

Рис.1.1 Класифікація криптографічних алгоритмів


23
1.3. Докомпʼютерна криптографія

Історичні шифри
1. Шифри простої заміни, простий шифр підстановки, моноалфавітний
шифр - приклади шифр Цезаря, Атбаш.
Шифр Плейфера (біграмний шифр).
2. Шифри складної заміни. Поліалфавітні шифри: шифр Віженера, шифр
Гронсфельда. Шифр «подвійний квадрат» Уітстона.
3. Шифри перестановки - Скітала, шифр перестановки.

Історичні шифри - основа для сучасних криптографічних алгоритмів.


Адже основні операції, які сьогодні використовуються у багатьох з них -
заміна і перестановка.

24
Табличні шифри перестановки

Шифрування перестановкою полягає в тому, що символи тексту,


яки шифрується переставляються за певним правилом в межах
деякого блоку цього тексту.
При достатні довжині блоку, в межах якого зді снюється
перестановка, і складному порядку перестановки без повторень
можна досягти при нятно для простих практичних додатків
сті кості шифру.
Таблиці для шифрування задають правила перестановки літер в
повідомленні. Як ключ в таблицях використовуються:
• Розмір таблиці.
• Слово або фраза, що задають перестановку.
• Особливості структури таблиці
25
й
й
й
й
ї
й
1.3.1. Шифр просто перестановки
Одним з на більш примітивних табличних шифрів перестановки
є проста перестановка, для яко ключем служить розмір таблиці.
Наприклад, зашифруємо повідомлення: СЬОГОДНІ ЧУДОВИЙ
ДЕНЬ. Фраза містить 19 букв. Тому візьмемо таблицю розміром 4
рядків і 5 стовпців і запишемо повідомлення по стовпцях. В
результаті отримуємо:

26
й
ї
ї
Після заповнення таблиці текстом повідомлення по стовпцях для
формування шифртексту зчитують вміст таблиці по рядках. Можна
записати шифртекст групами по п'ять символів.

Тоді маємо:
СОЧВЕ ЬДУИН ОНДЙЬ ГІОД

Відправник і одержувач повинні заздалегідь домовитися про ключ


у вигляді розміру таблиці.
При розшифровуванні ді виконуються в зворотному порядку.

27
ї
1.3.2. Шифр одиночно перестановки по ключу
Дещо більшою сті кістю до розкриття має метод шифрування, що
використовує одиночну перестановку по ключу.
Це метод відрізняється від попереднього тим, що стовпчики
таблиці переставляються за ключовим словом, фразою або набором
чисел довжиною в рядок таблиці.
Виконаємо шифрування відкритого тексту "THIS IS WIKIPEDIA” за
допомогою ключа “CIPHER”.

28
й
й
ї
1.3.3. Шифр подві но перестановки
Для забезпечення додатково скритності можна повторно
зашифрувати повідомлення, яке вже про шло шифрування. Таки
метод шифрування називається подві ною перестановкою.
У разі подві но перестановки стовпців і рядків таблиці
перестановки визначаються окремо для стовпців і рядків. При
дешифруванні порядок перестановок повинен бути зворотним.
Наприклад, скористаємося методом подві ного перестановки для
шифрування фрази: ПРИЛІТАЮ ВОСЬМОГО з ключем
перестановки для стовпців 4132 і для рядків 3142.

29
й
ї
й
ї
ї
й
й
й
й
Створимо таблицю 4х4 і заповнимо її відкритим текстом:

30
Розставляємо ключ в порядку зростання спочатку по стовпцям потім по рядках:

31
Шифртекст розгортається по рядках:
ТЮАІ ООГМ РЛИП ОЬСВ

Число варіантів подві ної перестановки зростає при збільшенні


розміру таблиці:
для таблиці 3х3 - 36 варіантів
для таблиці 4х4 - 576 варіантів
для таблиці 5х5 - 14400 варіантів

32
й
ЛЕКЦІЯ 2
з дисципліни “Основи криптографії”

ТЕМА “ОГЛЯД ДЕЯКИХ ШИФРІВ


ДОКОМП’ЮТЕРНОЇ КРИПТОГРАФІЇ”
2.1. Шифри заміни

Шифрування заміною (підстановкою) полягає в тому, що символи


тексту, що шифрується замінюються символами того ж або іншого
алфавіту відповідно до заздалегідь обумовленого правила заміни.
Існують такі типи шифрів заміни:
⎯ Шифри просто заміни або одноалфавітно (моноалфавітної)
підстановки.
⎯ Шифри складно заміни або багатоалфавітно (поліалфавітної)
підстановки.
⎯ Поліграмні шифри (часто не виділяються в окремий клас,
частіше їх відносять до шифрів складно заміни).

2
ї
ї
ї
ї
ї
У шифрах просто заміни кожен символ вихідного тексту замінюється
символами того ж алфавіту однаково у всьому тексті.

В шифрах складно заміни для шифрування кожного символу


вихідного повідомлення застосовують сві шифр просто заміни.
Багатоалфавітна підстановка послідовно і циклічно змінює алфавіти,
що використовуються.

В поліграмних шифрах текст розбивається на є біграмним, тобто текст


повідомлення розбивається на групи - n-грами. Наприклад, на біграми
(групи з двох символів). Таким чином, вони більш стійкі до зламу у
порівнянні із шифром простої заміни, так як ускладнюється їх
частотний аналіз.

3
ї
ї
й
ї
2.2 Шифри простої заміни

Шифр Цезаря
Також відомий як шифр зсуву, код Цезаря — один із найпростіших і
найбільш широко відомих методів шифрування.
Шифр названий на честь римського полководця Гая Юлія Цезаря,
який використовував його для приватного листування.
Згідно «Життя дванадцяти цезарів» Светонія, він використовував
його зі зсувом 3. Хоча Цезар був першою зафіксованою людиною,
яка використовувала цю схему, інші шифри підстановки, як відомо,
використовувалися і раніше (наприклад, Атбаш).
Є докази, що Юлій Цезар використовував також і складніші схеми.

4
В шифрі Цезаря кожен символ у відкритому тексті замінюється
буквою, що знаходиться на деяке пості не число позиці лівіше або
правіше нього в алфавіті. Це число є ключем шифру.

Для букв англійського алфавіту при використанні ключа 3


маємо таку таблицю заміни:

5
й
й
Математично шифр Цезаря можна описати наступним чином.
Якщо поставити у відповідність кожному символу алфавіту його
порядковий номер (нумеруючи з 0), то шифрування та
дешифрування можна виразити формулами модульної арифметики:

y = ( x − k ) mod n,
x = ( y + k ) mod n,

де x - символ відкритого тексту, y - символ шифрованого тексту,


n - потужність алфавіту (кількість символів), а k - ключ.

Наприклад, зашифруємо класичним шифром Цезаря фразу:


«VENI VIDI VICI» («Прийшов, Побачив, Переміг»).
Результат шифрування: SBKF SFAF SFZF

6
Часто для зручності використання шифру Цезаря використовували
два насаджені на загальну вісь диска різного діаметра з
намальованими по краях дисків алфавітами. Спочатку диски
повертаються так, щоб навпроти кожної літери алфавіту
зовнішнього диска була та сама літера алфавіту малого диска. Якщо
тепер повернути внутрішній диск на кілька символів, ми отримаємо
відповідність між символами зовнішнього диска та внутрішнього –
шифр Цезаря. Такий диск можна використовувати як для
шифрування, так і для розшифрування.
Наприклад, якщо внутрішнє колесо повернути так, щоб символ A
зовнішнього диска відповідав символ D внутрішнього диска, то
отримаємо шифр зі зсувом 3 вліво.

7
Різновиди шифру Цезаря (див. Лаб. роботи):
• Шифр Цезаря з ключовим словом
• Афінна система підстановок Цезаря

Варто зазначити, що шифр Цезаря у будь-якому варіанті, на


сьогоднішні день, є несті ким до зламу і не використовується на
практиці, проте є важливим для вивчення. Оскільки відомо, що навіть
дуже складні сучасні криптосистеми в якості типових складових
використовують прості шифри заміни.

8
й
й
Криптоаналіз шифру Цезаря
Невідомо, наскільки ефективним шифр Цезаря був у часи самого
Цезаря, але, ймовірно, він був розумно безпечний, не в останню
чергу завдяки тому, що більшість ворогів Цезаря були
неписьменними, і багато хто припускав, що повідомлення були
написані невідомою іноземною мовою.
Немає жодних свідчень того часу щодо методів злому простих
шифрів підстановки. Найбільш ранні записи про частотний аналіз
- це роботи Ал-Кінді 9-го століття про відкриття частотного аналізу.

9
Шифр Цезаря може бути легко зламаний навіть у випадку, коли
зловмисник знає лише зашифрований текст. Можна розглянути дві
ситуації:
• Зловмисник знає, що використовувався шифр Цезаря, але не знає
значення зсуву.
• Зловмисник знає (або припускає), що використовувався простий
шифр підстановки, але не знає, що це схема Цезаря.

10
Розглянемо перший випадок.
Шифр Цезаря має замало ключів — на одиницю менше, ніж літер в
абетці. Тому його легко зламати перебором — пробувати усі
можливі ключі, поки розшифрування не дасть впізнаваний
відкритий текст. Такий вид криптоаналізу називається методом
перебору (або Атака методом «грубою сили», Brute-force attack).

Один із способів зробити це - виписати


уривок зашифрованого тексту в стовпець всіх
можливих зсувів - техніка, також відома під
назвою "завершення простого компонента".
Розглянемо приклад для зашифрованого
тексту “EXXEGOEXSRGI”. Відкритий текст
негайно розпізнається оком у четвертому
рядку.

11
Розглянемо другий випадок.
Також зламати шифр Цезаря можна, як і звичайний підстановочний
шифр, у зв'язку з тим, що частота появи кожної літери в шифртексті
збігається з частотою появи у відкритому тексті. Якщо припустити,
що частота появи літер у відкритому тексті приблизно відповідає
середньостатистичній відносній частоті появи літер в текстах мови,
якою написане повідомлення, тоді ключ знаходиться зіставленням
перших декількох літер, що трапляються найчастіше у відкритому
та зашифрованому текстах. Тобто за допомогою методу частотного
криптоаналізу.

12
Частота символу у повідомленні дорівнює кількості ого появи у тексті, поділені
на загальну кількість літер тексту. Для кожно мови справедливо наступне: у
досить довгих текстах кожна літера зустрічається із приблизно однаковою
частотою, залежно від само літери і незалежно від конкретного тексту. Тобто
імовірність появи окремих літер, біграм, триграм, а також х порядок у словах і
фразах природньо мови підпорядковуються статистичним закономірностям. Так,
наприклад, відомо, що в укра нські та англі ські мовах частоти появи літер
розподілені наступним чином.

Отже, в українській мові найпоширеніша літера — о.


В англійській мові найпоширеніша літера — e.
Також відомо, що th — найпоширеніша біграма, а the — найпоширеніша триграма.
13
ї
ї
ї
й
й
ї
й
й
ї
й
Отже, літера з на більшою частотою в шифротексті буде
замінюватися на літеру з на більшою частотою у мові. А кількість
позиці між ними буде визначати довжину ключа. Однак, якщо
текст не дуже велики , то закономірності будь-яко природньо
мови можуть проявлятися в ньому не обов’язково в суворій
відповідності до таблиці частот. В такому випадку розглядається
відношення наступно літери за частотою появи у зашифрованому
тексті та на частішою літерою мови.

14
й
й
й
й
ї
й
ї
ї
Приклад
Розглянемо спрошений варіант частотного криптоаналіза -
зловмисник підозрює, що використовувався саме шифр Цезаря.
Дано текст, зашифровани за допомогою шифру простої заміни:
ДАФИНЦШЕИЮЯЗЩШФЬИТЧИВЮЯШХСЯЯЗВИ ШЧШЮФЬС
ПЄСПИ ОЛРПЧИЦРЗФЬРІИ ШЛСЯИФСЦР ЧЄШЦАС ШЧШІСХ
ЗЧИЮДАФИНЧИЮЮИЦРВЧМЦИУШ ШЧСЛМ СЛЯШ ШЕШ
ШЧШЮФЬСПЄ
При зашифруванні відкритого тексту використовувався алфавіт
АБВГҐДЕЄЖЗИІ КЛМНОПРСТУФХЦЧШЩЬЮЯабвгґдеєжзиі
клмнопрстуфхцчшщьюя.
Припускаючи, що текст зашифровани за допомогою шифру
Цезаря, складемо таблицю появи літер в даному шифротексті.

15
Ї
Ї
Й
й
Ї
Ї
й
Й
Ї
Ї
Ї
Ї
Й
ї
й
Ї
З даної таблиці видно, що на частіше у тексті з’являється літера «Ш» – 16
разів.
Як відомо, найчастіше в текстах укра нською мовою зустрічається літера «О».
Тому можемо припустити, що літері «Ш» в шифротексті, мовірно, відповідає
літера «О» у відкритому тексті. Якщо послідовності літер А, Б,..., О,..., Ш,..., Я
ототожнити із послідовністю х позиці в алфавіті 0, 1,..., 17,..., 27,..., то можна
обчислити ключ K: 27–17=10. Тепер ми можемо відновити початкове
повідомлення, записавши ого із розділовими знаками (наприклад, для першої
літери Д позиція 5, тобто символ відкритого тексту буде розраховуватися як
(5-10)mod 32=27 - це буква Ш):
Шукаємо щастя по кра нах, століттях, а воно скрізь і завжди з нами; як риба
в воді, так і ми в ньому, і воно біля нас шукає нас самих. Нема ого ніде від
того, що воно скрізь.
З більш повноцінним варіантом частотного криптоаналіза можна
ознайомитися за посиланням https://en.wikipedia.org/wiki/Frequency_analysis
16
ї
й
й
ї
ї
й
й
й
Шифр Квадрат Полібія
У криптографії квадрат Полібія (англ. Polybius square), також відомий як
шахова дошка Полібія — оригінальний шифр простої заміни, одна з
найдавніших систем кодування, запропонована Полібієм (грецький
історик, полководець, державний діяч, III століття до н. е.). Цей спосіб
шифрування спочатку застосовувався для грецької абетки, але потім
поширився на інші мови.
Криптостійкість
Квадрат Полібія є прикладом шифру заміни, тому нестійкий до частотної атаки.
2.3 Поліграмні шифри
Шифр Плейфера
Шифр Плейфера або квадрат Плейфера – ручна симетрична
техніка шифрування, в якій вперше використано заміну біграм
(груп з двох символів). Винайдений в 1854 році англійським
фізиком Чарльзом Уітстоном, але названий ім'ям лорда Лайона
Плейфера, який зробив великий внесок у просування і
використання даної системи шифрування в державній службі.
Шифр передбачає шифрування пар символів замість одиночних
символів, як у шифрі підстановки та у складніших системах
шифрування Віженера.
Таким чином ускладнюється частотни аналіз шифру. Він може
бути проведени , але не для 26 можливих символів (англі ськи
алфавіт), а для 26х26 = 676 можливих біграм.

20
й
й
й
й
Для шифрування шифр Пле фера використовує матрицю 5х5 (для
англі ського алфавіту), яка містить ключове слово або фразу. Щоб
скласти ключову матрицю, в першу чергу потрібно заповнити
порожні клітинки матриці літерами ключового слова (виключаючи
літери, що повторюються), потім заповнити клітинки, що лишилися
символами алфавіту, що не зустрічаються в ключовому слові, по
порядку. В англі ських текстах зазвича пропускається символ
«Q», щоб зменшити алфавіт, в інших версіях «I» і «J» об’єднуються
в одну клітинку.

Рис. 2.1. Матриця шифру Пле фера з ключем PLAYFAIR EXAMPLE

21
й
й
й
й
й
Ключове слово може бути записано у верхньому рядку матриці
зліва направо, або по спіралі з лівого верхнього кута до центру.
Для того щоб зашифрувати повідомлення, необхідно розбити ого
на біграми (групи з двох символів) та відшукати ці біграми в
матриці. Два символи біграми відповідають кутам прямокутника в
ключови матриці. Визначаємо положення кутів цього
прямокутника відносно один одного. Потім, керуючись наступними
4 правилами, зашифровувати пари символів вихідного тексту.

Рис. 2.2. Шифрування біграм

22
й
й
Правила шифрування біграм
1. Відкрити текст вихідного повідомлення розбивається на пари букв
(біграми). Текст повинен мати парну кількість букв, і в ньому не
повинно бути біграм, що містять дві однакові букви. Якщо ці вимоги
не виконуються, то текст необхідно модифікувати.
2. Якщо літери біграми знаходяться в різних стовпцях і різних рядках –
замінюємо х на літери, що знаходяться в тих самих рядках (стовпцях),
але відповідно в протилежних кутах прямокутника.
3. Якщо літери біграми зустрічаються в одному рядку – замінюємо х
на літери, розташовані в на ближчих стовпцях праворуч від
відповідних літер. Якщо літера остання у рядку, то вона замінюється
на перши символ цього ж рядка.
4. Якщо літери біграми зустрічаються в одному стовпці –
перетворюємо х в літери того ж стовпця, що знаходяться
безпосередньо під ними. Якщо літера є нижньою в стовпці – вона
замінюється на першу літеру цього ж стовпчика.

23
й
ї
й
ї
й
ї
Приклад
Зашифруємо повідомлення HIDE THE GOLD IN THE TREE STUMP із
використанням ключово фрази PLAYFAIR EXAMPLE. Матрицею
шифрування буде матриця описана вище.
Для шифрування розіб’ємо текст на біграми HI DE TH EG OL DI NT HE TR
EX ES TU MP. Зна демо літери першо біграми у матриці та замінимо х на
літери, що знаходяться у протилежних кутах прямокутника.

Далі, користуючись правилами шифрування біграм, отримаємо шифротекст:


BM ND ZB XD KY BE JV DM UI XM MN UV IF.

24
й
ї
ї
ї
Метод для розшифровування ідентични методу шифрування. Для
цього при розшифровуванні замість відкритого тексту
використовується раніше отримани шифротекст, у результаті
виходить вихідни відкрити текст.
Як і більшість шифрів формально криптографі , шифр Плейфера
також може бути легко зламани , якщо є достатні обсяг тексту.
Отримання ключа є відносно простим, якщо відомі шифровани та
звича ни текст. Коли відоми лише зашифровани текст,
криптоаналітики аналізують відповідність між частотою появи біграм
у зашифрованому тексті та відомою частотою появи біграм у мові,
якою написано повідомлення.

25
й
й
й
й
й
й
ї
й
й
ї
й
й
й
Шифр Уітстона

Дана система шифрування є покращеною версією шифру Плейфера.


Даний метод шифрує пари букв, це додає значну стійкість
шифруванню порівняно з моноалфавітними підстановними шифрами,
які діють на окремі символи.

Використання біграм робить шифр Уітстона менш сприйнятливим до


частотного криптоаналізу, оскільки він має бути здійснений на 676
всіх можливих пар букв (в англійському алфавіті), а не лише на 26
символів для монографічного заміщення.
Частотний аналіз для біграм можливий, але він набагато складніший,
і для того, щоб цей аналіз був вдалим, потрібно, як правило, набагато
більше шифротексту.

Процес шифрування/дешифрування наведено в лабораторній роботі.


26
Шифр Хілла
У 1929 році американський математик Лестер Хілл придумав новий
поліграмний шифр заміни, в якому використовувалися як модульна
арифметика, так і лінійна алгебра.

27
Алгоритм пошуку оберненої матриці, наприклад, можна подивитися тут
https://yukhym.com/uk/matritsi-ta-viznachniki/obernena-matritsya-prikladi-
obchislennya.html
28
Шифрування

29
Дешифрування

30
Криптостійкість шифра Хілла

Довжина ключа — це двійковий логарифм від кількості всіх


можливих ключів. Існує 26n^2 матриць розміру n × n.
Значить, log2(26n^2) або приблизно 4.7n2 — верхня грань довжини
ключа для шифру Хілла, що використовує матриці n × n.

Це тільки верхня грань, оскільки не кожна матриця обернена, а


тільки такі матриці можуть бути ключем. Кількість обернених
матриць може бути розрахована за допомогою Китайської теореми
про залишки.

31
Матриця обернена по модулю 26 тоді і тільки тоді, коли вона обернена
і по модулю 2 і по модулю 13.
Кількість обернених по модулю 2 матриць розміру n × n

Аналогічно, кількість обернених по модулю 13 матриць

Кількість обернених по модулю 26 матриць дорівнює добутку цих


двох чисел. Значить

У підсумку виходить, що ефективний простір ключів стандартного


шифру Хілла становить близько 4.64n2-1.7. Для шифру Хілла 5 × 5
це складе приблизно 114 біт. Очевидно, повний перебір — не
найефективніша атака на шифр Хілла.
32
Також шифр Хілла не піддається частотному аналізу, оскільки кожен
символ відкритого тексту бере участь у шифруванні. Однак, можна
провести аналіз частоти слів розміру n, тому не варто застосовувати
шифр Хілла на даних, що мають таку будову.

На жаль, стандартний шифр Хілла вразливий до атаки по обраному


відкритому тексту, тому що він повністю лінійний. Криптоаналітик,
який перехопить n2 пар символ повідомлення / символ шифротекста
зможе скласти систему лінійних рівнянь, яку зазвичай не складно
розвʼязати. Якщо виявиться, що система не розвʼязувана, то необхідно
всього лише додати ще кілька пар символ повідомлення/символ
шифротекста. Такого роду розрахунки засобами звичайних алгоритмів
лінійної алгебри вимагає зовсім небагато часу.

33
Оригінальний шифр Хілла не знайшов практичного застосування в
криптографії через слабку стійкість до злому та відсутність опису
алгоритмів генерації прямих та зворотних матриць великого розміру.
Але інсують декілька модифіцій цього шифру. Більшість
модифікованих криптосистем припускають при шифруванні/
дешифруванні використовувати не одну пару ключів, а кілька, що
підвищує стійкість системи. При шифруванні кожен блок відкритого
тексту обробляється окремим ключем. Використання цього принципу
дозволяє значною мірою приховати статистичні властивості відкритого
та шифрованого тексту, а також взаємозв'язок між ними.

34
ЛЕКЦІЯ 3
з дисципліни “Основи криптографії”

ТЕМА “ПОЛІАЛФАВІТНІ ШИФРИ.


ПОНЯТТЯ КРИПТОГРАФІЧНО СТІ КОСТІ
ТА АБСОЛЮТНО СТІЙКИЙ ШИФР”

Ї
Й
3.1 Шифри складної заміни (поліалфавітні
шифри)
Шифр Віженера
Шифр Віженера – це метод
поліалфавітного шифрування
буквеного тексту з використанням
ключового слова. Це метод є
простою формою
багатоалфавітно заміни.
Шифр Віженера винаходили Блез Віженер
поступово і багаторазово.

2
ї
й
В 1466 Леон Альберті, знаменитий
архітектор і філософ представив трактат про
шифри в папську канцелярію. У трактаті
розглядаються різні способи шифрування,
зокрема маскування відкритого тексту
деякому допоміжному тексті. Робота
завершується власним шифром, який він
назвав «шифр, гідний королів». То справді
був багатоалфавітний шифр, реалізований у
вигляді шифрувального диска. Суть полягає
в тому, що в даному шифрі використовується
кілька замін відповідно до ключа.
Даний винахід значно випередив свій час,
оскільки даний тип шифру став широко Репродукція шифрувального
застосовуватися в країнах Європи та в США диска 60х років XIX ст., США
лише через 400 років.

3
У 1518 році у розвитку криптографії було зроблено новий крок
завдяки появі в Німеччині першої друкованої книги з криптографії.
Абат Йоганн Тритемій, настоятель монастиря у Вюрцбурзі, написав
книгу «Поліграфія», в якій дається опис шифрів. Один із них
використовує «таблицю Тритемія» (нині «таблицю Віженера») та
розвиває ідею багатоалфавітної заміни. Система шифрування наступна:
перша літера вихідного тексту шифрується за першим рядком, друга за
другим і так далі. Після використання останнього рядка наступна
літера знову шифрується на першому рядку. У шифрі Тритемія відсутня
ключ, секретом є спосіб шифрування.

4
Наступний крок у розвитку запропонованого Тритемієм способу
шифрування було зроблено італійцем Джованні Баттіста Белазо.
Він вперше описав це метод у книзі La cifra del. Sig. Giovan Battista
Bellasо («Шифр синьйора Белазо») в 1553. Белазо запропонував
відмовитися від алфавітного порядку проходження букв у першому
рядку таблиці Тритемія і замінити цей порядок на деякий довільний
ключ шифру. Рядки таблиці, як і раніше, циклічно зсувалися.
У своїй книзі «Про таємне листування», (що вийшла в 1563) Джованні
Порта запропонував біграмний шифр, а також навів опис механічного
дискового пристрою, що реалізує біграмну заміну.
У середині XVI століття в Італії з'являється книга Дж. Кардано «Про
тонкощі» з доповненням «Про різні речі». Там знайшли відображення
нові ідеї криптографії: використання частини самого переданого
відкритого тексту як ключа шифру (ідея «самоключа») та новий спосіб
шифрування, який увійшов в історію як «решітка Кардано».

5
й
Посол Франції в Римі Блез де Віженер, познайомившись із
працями Тритемія, Белазо, Кардано, Порта, Альберті, також
захопився криптографією. В 1585 він написав «Трактат про
шифри», в якому викладаються основи криптографії. У цій праці
він зауважує: «Всі речі у світі є шифром. Вся природа є просто
шифром та секретним листом». Ця думка була повторена Блезом
Паскалем — одним з засновників теорії ймовірностей, а XX
століття і Норбертом Вінером — «батьком кібернетики».
По суті, Віженер об'єднав підходи Тритемія, Беллазо, Порта та
інших винахідників до шифрування відкритих текстів, але не додав
при цьому нічого оригінального. Однак назва «Шифр Віженера»
закріпилася і витіснила імена попередників.

6
Шифр Виженера досить простий для використання в польових
умовах, особливо якщо використовуються шифрувальні диски.
Наприклад, конфедерати використовували мідний шифрувальний
диск для шифру Віженера в ході Громадянської війни в США.
Послання Конфедерації були далекі від секретних, та його
противники регулярно зламували повідомлення. Під час війни
командування Конфедерації покладалося на три ключових
словосполучення: «Manchester Bluff», «Complete Victory» і —
оскільки війна добігала кінця — «Come Retribution».
Метод прости для розуміння та реалізаці , але недоступним для
простих методів криптоанализа. Протягом довгого часу шифр мав
репутацію виключно сті кого до «ручного» злому. Однак, це
уявлення було спростовано після того, як Фрідріх Казіскі повністю
зламав шифр в XIX столітті.

7
й
й
ї
Гілберт Вернам спробував поліпшити зламаний шифр (він отримав
назву шифр Вернама-Віженера в 1918 році), але, незважаючи на
його вдосконалення, шифр так і залишився вразливим для
криптоаналізу. Однак робота Вернама в результаті все ж таки
призвела до отримання шифру, який дійсно неможливо зламати.

Шифр Віженера використовує шифр Цезаря з різними зсувами


кожної позиції у тексті; значення зсуву визначається за допомогою
ключового слова, що повторюється. Якщо ключове слово таке ж
довге, як і повідомлення, згенероване випадковим чином, міститься
в таємниці і використовується лише одноразово - така схема відома
як схема одноразових блокнотів - і це єдина система шифрування,
для якої доведено абсолютну криптографічну стійкість. Вона також
відома під назвою - шифр Вернама.

8
Процес шифрування шифром Віженера
Як відомо, у шифрі Цезаря кожна буква алфавіту зсувається на
кілька позиці : наприклад, при зсуві +3 для латинського алфавіту, A
стало б D, B стало б E і так далі. Шифр Віженера складається з
послідовності кількох шифрів Цезаря з різними значеннями зсуву.
Для зашифрування може використовуватися таблиця алфавітів, що
називається tabula recta або квадрат Віженера (рис.3.1).
Таблиця містить алфавіт, написани 26 разів у різних рядках, кожен
алфавіт циклічно зсувається вліво відносно попереднього рядка, що
відповідає 26 можливим шифрам Цезаря (розглядається випадок
латинського алфавіту). На кожному етапі шифрування
використовуються різні алфавіти, які вибираються в залежності від
символу ключового слова.

9
й
й
Рис.3.1. Квадрат (таблиця) Віженера

10
Приклад 3.1
Припустимо, що вихідни текст має таки вигляд:
ATTACKATDAWN
Людина, що посилає повідомлення, записує ключове слово («LEMON»)
циклічно доти, доки ого довжина не буде відповідати довжині вихідного
тексту:
LEMONLEMONLE
Перши символ вихідного тексту (A) зашифровани символом L - першим
символом ключа. Перши символ зашифрованого тексту (L) знаходиться на
перетині рядка L і стовпця A в таблиці Віженера. Так само для другого
символу вихідного тексту використовується други символ ключа; тобто
други символ зашифрованого тексту (X) виходить на перетині рядка E і
стовпця T. Решта вихідного тексту шифрується подібним способом.

11
й
й
й
й
й
й
й
й
Розшифровування зді снюється наступним чином:
• знаходимо в таблиці Віженера рядок, що відповідає першому
символу ключового слова;
• у цьому рядку знаходимо перши символ зашифрованого тексту.
Стовпець, у якому міститься це символ, відповідає першому
символу вихідного тексту.
Наступні символи зашифрованого тексту розшифровуються так
само.

12
й
й
й
Якщо n – кількість букв в алфавіті, mj – номер букви відкритого
тексту, kj – номер букви ключа в алфавіті, то шифрування Віженера
можна записати так:
cj = (mj + kj) mod n

І розшифровування:
mj = (cj − kj) mod n

13
Здається, якщо таблиця буде складнішою, ніж циклічне зміщення
рядків, то шифр стане наді ніше. Це справді так, якщо міняти
частіше, наприклад, від слова до слова. Але складання таких
таблиць, що являють собою латинські квадрати, де будь-яка буква
зустрічається в рядку або стовпці один раз, трудомістко і ого варто
робити лише з використанням обчислювальної техніки. Для
ручного ж багатоалфавітного шифру покладаються лише на
довжину і складність ключа, використовуючи наведену таблицю,
яку можна не тримати в таємниці, а це спрощує шифрування і
розшифровування.

14
й
ї
ї
й
На скільки стійкий шифр Віженера?
Оскільки для кожної букви відкритого тексту існує багато варіантів букв,
якими вона може буде виражена в шифротексті, можна очікувати, що
відносний розподіл частоти появи букв буде зруйновано. Але, як видно на
графіках, значна частина вхідного статистичного розподілу, як і раніше,
проявляється у вихідних даних.

15
Очевидно, що чим довший ключ шифрування, тим більше
маскується структура відкритого тексту. Найкращий можливий
ключ має таку ж довжину, як і текстове повідомлення, і
складається з повністю випадкової перестановки 26 літер алфавіту.
Це дасть ідеальний графік статистики частоти появи букв у
зашифрованому тексті, показаний на пропередньому рисунку як
Random Polyalphabetic.

Загалом, щоб зламати шифр Віженера, криптоаналітик спочатку


намагається оцінити довжину ключа шифрування (наприклад, n),
шляхом перевірки зашифрованого тексту на наявність
послідовностей символів, які повторюються (метод Казіскі).
Відстані між повторними входженнями рядків символів у
зашифрованому тексті можуть служити можливими кандидатами на
довжину ключа шифрування. Якщо є кілька таких кандидатів, як
найбільш ймовірний вибір для довжини ключа обирається
найбільший спільний дільник усіх можливих значень.
16
Для уточнення довжини ключа також можна використовувати
додаткові техніки, наприклад метод Фрідмана.

Після отримання інформації про довжину ключа криптоаналітику


залишається лише виконати класичний частотний аналіз для зламу
набору з n моноалфавітних шифрів.

Історично одним з найвідоміших прикладів багатоалфавітного


шифру є роторна машина Enigma, яка використовувалася
німецькими військовими під час Другої світової війни.
Більше інформації про Enigma, наприклад, див.тут:
https://en.wikipedia.org/wiki/Enigma_machine
https://en.wikipedia.org/wiki/Rotor_machine

17
3.2 Злом поліалфавітних шифрів - метод Казіскі

Метод Казіскі - метод криптоаналізу поліалфавітних шифрів,


таких як шифр Віженера. Заснований на факті того, що частини
відкритого тексту, що повторюються, зашифровані одним і тим
самим ключовим словом, призводять до ідентичних сегментів
шифрованого тексту. Розроблений незалежно криптоаналітиками
Фрідріхом Казіскі та Чарльзом Беббіджем.

18
У 1863 році Казіскі опублікував свою 95-сторінкову працю «Die
Geheimschriften und die Dechiffrirkunst» («Тайнопис та мистецтво
дешифрування», оригінал рукопису знаходиться в бібліотеці в
Мюнхені). Це була книга про атаки на шифри, створені за
допомогою поліалфавітної заміни. У цій книзі Казіскі описує своє
велике відкриття в криптоаналізі, а саме алгоритм, відомий всім як
«Тест Казіскі». Цей алгоритм дозволяв зламувати шифр Віженера,
злом якого вважався неможливим протягом 400 років. Відкриття
Казіскі поступається важливості лише роботі Аль-Кінді, відомого
як «філософ арабського світу», який відкрив метод частотного
аналізу для дешифрування тексту.

19
Проте за десять років до Казіскі успіху у зламі шифру Віженера
досяг Чарльз Беббідж. Беббідж зробив своє відкриття у 1854 році,
але про нього так ніхто і не дізнався, тому що Беббідж так і не
опублікував його. Це взнали лише у ХХ столітті, коли вчені почали
розбирати його численні нотатки.
Цілком можливо, що британська секретна служба вимагала від
Беббіджа зберегти свою роботу в секреті.

20
Ідея методу заснована на тому, що ключі є періодичними, а в
природній мові існують найпоширеніші буквосполучення: біграми і
триграми. Це наводить на думку, що набори символів, що
повторюються, в шифротексті — повторення популярних біграм і
триграм вихідного тексту.

Метод Казіскі дозволяє криптоаналітику знайти довжину


ключового слова, яке використовується в поліалфавітному шифрі.
Як тільки довжина ключового слова виявлена, криптоаналітик
розміщує зашифрований текст у n стовпцях, де n — довжина
ключового слова. Тоді кожний стовпець можна розглядати як
зашифрований моноалфавітним шифром текст, до якого можна
застосувати частотний аналіз.

21
Метод полягає у пошуку груп символів, які повторюються у
зашифрованому тексті. Групи повинні складатися не менше ніж з
трьох символів. Тоді відстані між послідовною появою груп,
ймовірно, будуть кратні довжині ключового слова. Імовірна
довжина ключового слова кратна найбільшому спільному дільнику
всіх відстаней.

Причина, з якої метод працює — якщо дві групи символів


повторюються у вихідному тексті і відстань між них є кратною
довжині ключового слова, то літери ключового слова вирівнюються
з обома групами.

22
Відстань між двома повторюваними підрядками в зашифрованому
тексті - g. Ключове слово довжиною k повторюється, щоб
заповнити довжину зашифрованого тексту, відстань g кратна
довжині ключового слова k. Таким чином, якщо ми бачимо два
підрядки, що повторюються, з відстанню g, то один з дільників g
може бути довжиною ключового слова. Наприклад, якщо відстань
дорівнює g = 18, оскільки дільники g дорівнюють 2, 3, 6, 9 і 18,
один з них може бути довжиною невідомого ключового слова.

Шифротекст

Ключове
слово

Рис.3.2. Ілюстрація ідеї методу Казіскі


23
Складність методу Казіскі полягає в необхідності пошуку рядків,
що повторюються. Це складно зробити вручну, тому під час Другої
світової війни було створено спеціальний пристрій для визначення
збігів у тексті та відстані між ними. Пристрій працював з п'ятьма
стрічками, що замикалися в петлю, і міг знаходити повторювані
біграми і триграми в тексті.

Пристрій був досить швидким: для обробки набору 10 000 символів


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

24
Приклад 3.2 (https://crypto.interactive-maths.com/kasiski-analysis-
breaking-the-code.html#intro)

Зашифрований текст

CVJTNAFENMCDMKBXFSTKLHGSOJWHOFUISFYFBEXEINFIMAYSSDYYIJNPWTOKFRHWVWTZFXHLUY
UMSGVDURBWBIVXFAFMYFYXPIGBHWIFHHOJBEXAUNFIYLJWDKNHGAOVBHHGVINAULZFOFUQCVF
BYNFTYGMMSVGXCFZFOKQATUIFUFERQTEWZFOKMWOJYLNZBKSHOEBPNAYTFKNXLBVUAXCXUYY
KYTFRHRCFUYCLUKTVGUFQBESWYSSWLBYFEFZVUWTRLLNGIZGBMSZKBTNTSLNNMDPMYMIUBVM
TLOBJHHFWTJNAUFIZMBZLIVHMBSUWLBYFEUYFUFENBRVJVKOLLGTVUZUAOJNVUWTRLMBATZMF
SSOJQXLFPKNAULJCIOYVDRYLUJMVMLVMUKBTNAMFPXXJPDYFIJFYUWSGVIUMBWSTUXMSSNYKYD
JMCGASOUXBYSMCMEUNFJNAUFUYUMWSFJUKQWSVXXUVUFFBPWBCFYLWFDYGUKDRYLUJMFPXXE
FZQXYHGFLACEBJBXQSTWIKNMORNXCJFAIBWWBKCMUKIVQTMNBCCTHLJYIGIMSYCFVMURMAYOB
JUFVAUZINMATCYPBANKBXLWJJNXUJTWIKBATCIOYBPPZHLZJJZHLLVEYAIFPLLYIJIZMOUDPLLTHVE
VUMBXPIBBMSNSCMCGONBHCKIVLXMGCRMXNZBKQHODESYTVGOUGTHAGRHRMHFREYIJIZGAUNF
ZIYZWOUYWQZPZMAYJFJIKOVFKBTNOPLFWHGUSYTLGNRHBZSOPMIYSLWIKBANYUOYAPWZXHVFU
QAIATYYKYKPMCEYLIRNPCDMEIMFGWVBBMUPLHMLQJWUGSKQVUDZGSYCFBSWVCHZXFEXXXAQR
OLYXPIUKYHMPNAYFOFHXBSWVCHZXFEXXXAIRPXXGOVHHGGSVNHWSFJUKNZBESHOKIRFEXGUFV
KOLVJNAYIVVMMCGOFZACKEVUMBATVHKIDMVXBHLIVWTJAUFFACKHCIKSFPKYQNWOLUMYVXYY
KYAOYYPUKXFLMBQOFLACKPWZXHUFJYGZGSTYWZGSNBBWZIVMNZXFIYWXWBKBAYJFTIFYKIZMU
IVZDINLFFUVRGSSBUGNGOPQAILIFOZBZFYUWHGIRHWCFIZMWYSUYMAUDMIYVYAWVNAYTFEYYCL
PWBBMVZZHZUHMRWXCFUYYVIENFHPYSMKBTMOIZWAIXZFOLBSMCHHNOJKBMBATZXXJSSKNAUL
BJCLFWXDSUYKUCIOYJGFLMBWHFIWIXSFGXCZBMYMBWTRGXXSHXYKZGSDSLYDGNBXHAUJBTFDQ
CYTMWNPWHOFUISMIFFVXFSVFRNA

25
Шукаємо в шифротексті фрагменти по 3 і 4 літери, які повторюються. Знаходимо
відстань між повторюваними послідовностями і вносимо значення в другий
стовпець. Спираючись на дільники значення відстані відмічаємо в таблиці
вірогідні довжини ключів.

26
На попередньому слайді наведена частина таблиці, якщо її
продивитися повністю, то стало би очевидно, що найбільшу
кількість разів для всіх послідовностей відмічено число 6.
Тобто, робимо припущення про те, що довжина ключа дорівнює
саме 6.
Після цього шифротекст записується в стовпці, кількість яких
відповідає довжині ключа.

В межах кожного стовпця проводиться класичний частотний


аналіз.

27
Для першого стовпця отримаємо такий результат

Тобто зсув дорінює - 1.


Перша літера ключа - В.
28
Якщо повторити таку саму операцію для кожного стовпця,
отримаємо ключ - brutus.
Відкритий текст при цьому буде вигдядати так:
Be patient till the last. Romans, countrymen, and lovers! hear me for my cause, and be silent, that
you may hear: believe me for mine honour, and have respect to mine honour, that you may believe:
censure me in your wisdom, and awake your senses, that you may the better judge. If there be any in
this assembly, any dear friend of Caesar's, to him I say, that Brutus' love to Caesar was no less than
his. If then that friend demand why Brutus rose against Caesar, this is my answer: —Not that I
loved Caesar less, but that I loved Rome more. Had you rather Caesar were living and die all slaves,
than that Caesar were dead, to live all free men? As Caesar loved me, I weep for him; as he was
fortunate, I rejoice at it; as he was valiant, I honour him: but, as he was ambitious, I slew him.
There is tears for his love; joy for his fortune; honour for his valour; and death for his ambition.
Who is here so base that would be a bondman? If any, speak; for him have I offended. Who is here
so rude that would not be a Roman? If any, speak; for him have I offended. Who is here so vile that
will not love his country? If any, speak; for him have I offended. I pause for a reply. Then none have
I offended. I have done no more to Caesar than you shall do to Brutus. The question of his death is
enrolled in the Capitol; his glory not extenuated, wherein he was worthy, nor his offences enforced,
for which he suffered death. Here comes his body, mourned by Mark Antony: who, though he had
no hand in his death, shall receive the bene t of his dying, a place in the commonwealth; as which of
you shall not? With this I depart,—that, as I slew my best lover for the good of Rome, I have the
same dagger for myself, when it shall please my country to need my death.

29
fi
Метод Фрідмана
Для уточнення довжини ключа можна використовувати метод
Фрідмана.

30
31
Уточнення довжини ключа за методом Фрідмана

32
де – частота появи літери i в природній мові.
𝑝
3.3 Поняття криптографічно сті кості

Також називають інформаційно-теоретичною стійкістю.

36
ї
й
37
Іншими словами, обчислювальна стійкість – це можливість
потенційного криптоаналітичного розкриття шифру, коли при всіх
заданих параметрах та ключах алгоритму шифрування на сучасній
стадії розвитку криптографічного аналізу у зловмисника немає
необхідних обчислювально-алгоритмічних та часових ресурсів,
щоб реалізувати злам. Вважається, що якщо алгоритм, який
здійснює злам шифру, повинен виконати більше або порядку 2^80
операцій, шифр є обчислювально стійким. Не є обчислювально
стійкими: шифри зсуву, заміни, Віженера. До обчислювально
стійких шифрів належать АES, RSA, шифр Ель-Гамаля.

38
39
Дифузія Конфузія

40
41
3.4 Шифр Вернама

42
Шифр є різновидом криптосистеми одноразових блокнотів
(шифроблокнотів). У ньому використовується булева функція
«XOR». Шифр Вернама є прикладом системи з абсолютною
криптографічної стійкістю. При цьому вважається однією з
найпростіших криптосистем.

Шифр названий на честь телеграфіста Гільберта Вернама, який у


1917 винайшов, а в 1919 запатентував систему автоматичного
шифрування телеграфних повідомлень.

43
44
45
Вернам не використав поняття «XOR» у патенті, але реалізував
саме цю операцію в релейній логіці. Кожен символ у повідомленні
перетворювався побітовим XOR з ключем паперової стрічки.
Для шифрування Вернам запропонував заздалегідь готувати ключ -
«гаму» - перфострічку з випадковими знаками - і потім
електромеханічно додавати її імпульси до імпульсів знаків
відкритого тексту. Отримана сума являла собою шифротекст. На
приймальному кінці імпульси, отримані по каналу зв'язку,
складалися з імпульсами тієї ж самої «гами», в результаті чого
відновлювалися вихідні імпульси повідомлення.

Якщо повідомлення перехоплювати, то без «гами» розшифрувати


його було неможливо, противник бачив тільки беззмістовну
послідовність «плюсів» і «мінусів».

46
Вернам створив пристрій, що здійснює зазначені операції автоматично, без
участі шифрувальника. Тим самим було започатковано так зване «лінійне
шифрування», коли процеси шифрування та передачі повідомлення
відбуваються одночасно. До того часу шифрування було попереднім, тому
лінійне шифрування значно підвищувало оперативність зв'язку.

Не будучи шифрувальником, Вернам


вірно помітив важливу особливість свого
шифру — кожна стрічка повинна
використовуватися тільки один раз і після
цього знищуватися. Це складно працює
на практиці - тому апарат був
перероблений на кілька кільцевих стрічок
із взаємно простими періодами.

Рис.3.3. Патент Вернама


47
Подальше вдосконалення методу, запропонованого Вернамом,
належить майбутньому начальнику зв'язку військ США Джозефу
Моборну, який об'єднав хаотичність «гами», на яку спирався
Вернам у своїй системі «автоматичного шифрування», з
використовуваним у той час у військах правилом «одноразового
шифрблокнота». Ідея Моборна полягала в тому, що кожна
випадкова «гама» повинна використовуватися один, і тільки один
раз. При цьому для шифрування кожного знака всіх текстів, які вже
передані або будуть передані в найближчому майбутньому,
повинен застосовуватися абсолютно новий і такий, що не
піддається передбаченню, знак «гами».

48
49
50
Приклад 3.3 Шифрування

51
Приклад 3.4 Дешифрування

52
Приклад роботи для бінарних даних

53
Приклад 3.5

54
Криптографічна стійкість шифру Вернама
У 1945 році Клод Шеннон написав роботу (розсекречену лише
після Другої світової війни у 1949 р.), у якій довів абсолютну
стійкість шифру Вернама. Інших шифрів з цією властивістю не
існує. Але дана властивість забезпечується лише за умови
використання випадкового ключа, довжина якого дорівнює довжині
повідомлення. Це обмеження робить використання шифру
недоцільним, оскільки для обміну ключами сторони мають
передати по захищеному каналу об’єм інформації, що дорівнює
повідомленню (за наявності такого каналу доцільніше одразу
передати саме повідомлення).

55
Кожен символ ключа шифру Вернама використовується тільки
один раз і для єдиного повідомлення, інакше навіть якщо
використовувати блокнот розміром в кілька гігабайт, при
отриманні криптоаналітиком декількох текстів з ключами, що
перекриваються, він зможе відновити вихідний текст. Він зсуне
кожну пару шифротекстів один щодо одного і підрахує кількість
збігів у кожній позиції. якщо шифротексти зміщені правильно,
співвідношення збігів різко зросте. З цієї точки зору криптоаналіз
не складе труднощів. Якщо ключ не повторюється і випадковий,
то криптоаналітик, перехоплює він тексти чи ні, завжди має
однакові знання.
Випадкова ключова послідовність, накладена на невипадковий
відкритий текст, дає випадковий шифротекст, і жодні
обчислювальні потужності не зможуть це змінити.

56
Недоліки
• Для роботи шифру Вернама необхідна дійсно випадкова послідовність нулів та
одиниць (ключ). За визначенням, послідовність, отримана з використанням будь-якого
алгоритму, є не зовсім випадковою, а псевдовипадковою. Тобто, потрібно отримати
випадкову послідовність неалгорітмічно (наприклад, використовуючи радіоактивний
розпад ядер, створений електронним генератором білий шум або інші досить
випадкові події). Щоб зробити розподіл гранично близьким до рівномірного,
випадкову послідовність зазвичай проганяються через хеш-функцію, наприклад MD5.
• Проблемою є таємна передача послідовності та збереження її в таємниці. Якщо існує
надійно захищений від перехоплення канал передачі повідомлень, шифри взагалі не
потрібні: секретні повідомлення можна передавати з цього каналу. Якщо ж передавати
ключ системи Вернама за допомогою іншого шифру (наприклад, DES), то отриманий
шифр буде захищеним рівно настільки, наскільки захищений DES. При цьому,
оскільки довжина ключа така ж, як і довжина повідомлення, передати його не
простіше, ніж повідомлення. Шифроблокнот на фізичному носії можна вкрасти або
скопіювати.
• Можливі проблеми з надійним знищенням використаної сторінки. Це стосується як
паперових сторінок блокнота, так і сучасних електронних реалізацій, наприклад з
використанням флеш-пам'яті.
• Якщо третя сторона якимось чином зрозуміє повідомлення, вона легко відновить ключ
і зможе підмінити повідомлення на інше такої ж довжини.
• Шифр Вернама чутливий до будь-якого порушення процедури шифрування.
Наприклад, контррозвідка США часто розшифровувала радянські та німецькі
послання через неточності генератора випадкових чисел. Бували випадки, коли одна і
та ж сторінка блокнота застосовувалася двічі - США також могли розшифровувати
такі послання. 57
Область застосування
В даний час шифрування Вернама майже не використовується. Великою мірою це
обумовлено суттєвим розміром ключа, довжина якого має збігатися з довжиною
повідомлення. Тобто використання таких шифрів вимагає величезних витрат на
виробництво, зберігання, знищення ключових матеріалів. Тим не менш, абсолютно
стійкі шифри типу Вернама все ж таки знайшли практичне застосування для захисту
особливо важливих ліній зв'язку з відносно невеликим обсягом інформації. Так,
наприклад, англійці та американці використовували шифри типу Вернама під час
Другої світової війни. Шифр Вернама за модулем 2 використовувався на урядовій
«гарячій лінії» між США і Радянським союзом, де ключові матеріали були паперові
стрічки, на які знаки ключової послідовності наносилися за допомогою перфорації
(до початку 1990х років).
На практиці можна один раз фізично передати носій інформації з довгим випадковим
ключем, а потім у міру необхідності пересилати повідомлення. На цьому заснована
ідея шифроблокнотів: шифрувальник по дипломатичній пошті або при особистій
зустрічі забезпечується блокнотом, кожна сторінка якого містить ключі. Такий же
блокнот є і у сторони, що приймає. Використані сторінки знищуються.

58
ЛЕКЦІЯ 4
з дисципліни “Основи криптографії”

ТЕМА “СИМЕТРИЧНЕ ШИФРУВАННЯ.


СТАНДАРТ ШИФРУВАННЯ DES”
4.1 Типи атак на криптосистеми

2
3
4
5
4.2 Класифікація сучасних криптосистем

6
4.2.1 Сучасні симетричні криптоалгоритми
Симетричні криптосистеми - спосіб шифрування, в якому для
шифрування і дешифрування застосовується один і той же
криптографічний ключ. До винаходу схеми асиметричного
шифрування єдиним існуючим способом було симетричне
шифрування. Ключ алгоритму повинен зберігатися в секреті обома
сторонами.

Симетричні криптоалгоритми виконують перетворення невеликого


(1 біт або 64-256 біт) блоку даних в залежності від ключа таким
чином, що прочитати оригінал повідомлення можна тільки знаючи
цей секретний ключ.

7
Сучасні симетричні алгоритми поділяються на 2 великих класи:
- Потокові шифри
- Блочні шифри

8
Потокові шифри
Головною відмінною рисою потокових шифрів є побітна обробка
інформації. Як наслідок, шифрування і дешифрування в таких
схемах може обриватися в довільний момент часу, як тільки
з'ясовується, що потік що передається перервався, і також
відновлюється при виявленні факту продовження передачі. Подібна
обробка інформації може бути представлена у вигляді автомата*,
який на кожному своєму такті:
• генерує за будь-яким законом один біт шифрувальної
послідовності;
• яким-небудь оборотним перетворенням накладає на один біт
відкритого потоку даний шифрувальний біт, отримуючи
зашифрований біт.

Автомат - схема або пристрій, що працює за програмою та виконує поставлені


перед ним завдання без безпосередньої участі людини, лише під її контролем.

9
Всі сучасні потокові шифри діють за даною схемою. Біт
шифрування, що виникає на кожному новому кроці автомата, як втім
і цілий набір таких біт, прийнято позначати символом Γ (гамма), а
самі потокові шифри отримали через це другу назву - шифри
гамування.
Шифри гамування набагато швидші за своїх найближчих
конкурентів - блокові шифри - у тому випадку, якщо потокове
шифрування реалізується апаратно.
Ключ є необхідною частиною гаммуючого шифру. Якщо ключ і
схема породження гами не є секретним, то поточний шифр
перетворюється на звичайний перетворювач-кодер - скремблер.
Приклади потокових криптоалгоритмів:
• RC4,
• А5/x (в GSM - А5/1, А5/2),
• ZUC (в LTE) та ін.
10
Скремблер - програмний або апаратний пристрій (алгоритм), що
виконує скремблювання - перетворення цифрового потоку без
зміни швидкості передачі з метою отримання властивостей
випадкової послідовності. Після скремблювання поява «1» і «0» у
вихідній послідовності рівноймовірні.
Скремблювання - оборотний процес, тобто вихідне повідомлення
можна відновити, застосувавши зворотний алгоритм.
Стосовно телекомунікаційних систем скремблювання підвищує
надійність синхронізації пристроїв, підключених до лінії зв'язку
(забезпечує надійне виділення тактової частоти безпосередньо з
сигналу, що приймається), і зменшує рівень перешкод,
випромінюваних на сусідні лінії багатожильного кабелю. Інша
сфера застосування скремблерів — захист інформації, яка
передається, від несанкціонованого доступу.

11
Блочні шифри

На сьогоднішній день розроблено досить багато стійких блочних


шифрів. Практично всі алгоритми використовують для перетворень
певний набір бієктивних (оборотних) математичних перетворень.
Характерною особливістю блочних криптоалгоритмів є той факт,
що в ході своєї роботи вони виробляють перетворення блоку
вхідної інформації фіксованої довжини і отримують результуючий
блок того ж обсягу, але недоступний для прочитання стороннім
особам, що не володіють ключем.

12
Блочний шифр - різновид симетричного шифру, що оперує
групами біт фіксованої довжини - блоками, характерний розмір
яких змінюється в межах 64-256 біт. Якщо вихідний текст (або
його залишок) менший за розмір блоку, перед шифруванням його
доповнюють. Фактично, блочний шифр є підстановкою на алфавіті
блоків, яка, як наслідок, може бути моно- або поліалфавітною.

Блочний шифр є важливою компонентою багатьох


криптографічних протоколів і широко використовується для
захисту даних, що передаються мережею.

13
На відміну від шифроблокнота (Шифр Вернама), де довжина
ключа дорівнює довжині повідомлення, блочний шифр здатний
зашифрувати одним ключем одне або кілька повідомлень
сумарною довжиною більше, ніж довжина ключа. Передача малого
порівняно з повідомленням ключа зашифрованим каналом —
завдання значно більш просте і швидке, ніж передача самого
повідомлення або ключа такої ж довжини, що робить можливим
його повсякденне використання. Однак, при цьому шифр перестає
бути абсолютно стійким.

Від потокових шифрів робота блочних відрізняється обробкою біт


групами, а не потоком. У цьому блочні шифри повільніше
потокових.

14
Блочні шифри є основою, на якій реалізовані практично всі
криптосистеми. Методика створення ланцюжків із зашифрованих
блочними алгоритмами байт дозволяє шифрувати ними пакети
інформації необмеженої довжини. Відсутність статистичної
кореляції між бітами вихідного потоку блочного шифру
використовується для обчислення контрольних сум пакетів даних
і в хешуванні паролів.

Лавинний ефект (англ. Avalanche effect) — поняття в криптографії, яке зазвичай


застосовується до блокових шифрів і криптографічних хеш-функцій. Важлива
криптографічна властивість для шифрування, що означає, що зміна значення
малої кількості бітів у вхідному тексті або в ключі веде до «лавинної» зміни
значень вихідних бітів шифротексту. Інакше кажучи, це залежність всіх вихідних
бітів від кожного вхідного біта.

Лавинний ефект є наслідком гарної конфузії та дифузії.

15
Щодо стійкості блочних шифрів - по теорії ймовірності шуканий
ключ буде знайдено з ймовірністю 1/2 після перебору половини
всіх ключів, тоді на злом криптоалгоритму з ключем довжини N
потрібно в середньому 2^N−1 перевірок.
Таким чином, у загальному випадку стійкість блочного шифру
залежить тільки від довжини ключа і зростає експоненціально з її
зростанням. Навіть припустивши, що перебір ключів
проводиться на спеціально створеній багатопроцесорної системі,
в якій завдяки діагональному паралелізму на перевірку 1 ключа
йде тільки 1 такт, то на злом 128 бітного ключа сучасній техніці
буде потрібно не менше 10^21 років.

16
Симетричні системи мають перевагу над асиметричними у
швидкості шифрування, що дозволяє їм залишатися актуальними,
незважаючи на більш слабкий механізм передачі ключа (одержувач
повинен знати секретний ключ, який необхідно передати по вже
налагодженому зашифрованому каналу. У той же час, в
асиметричних шифрах відкритий ключ, необхідний для
шифрування, можуть знати всі, і немає необхідності передачі
ключа шифрування).

17
Приклади блочних криптоалгоритмів:
1. На основі мережі Фейстеля:
DES, 3DES, RC2, RC5, RC6, Blowfish, FEAL, CAST-128, TEA,
XTEA, XXTEA
2. На основі SP-мережі (Substitution-Permutation network, мережа
підстановок-перестановок):
AES (Rijndael), 3-Way, Kalyna (ДСТУ), PRESENT, SAFER,
SHARK, and Square

18
4.2.2 Асиметричні криптоалгоритми

Асиметричні алгоритми шифрування – алгоритми шифрування, які


використовують різні ключі для шифрування та розшифрування
даних.
Головне досягнення асиметричного шифрування в тому, що воно
дозволяє людям, що не мають існуючої домовленості про безпеку,
обмінюватися секретними повідомленнями. Необхідність
відправникові й одержувачеві погоджувати таємний ключ по
спеціальному захищеному каналі цілком відпала.
Найвідомішим прикладом асиметричної криптографії є
криптосистема RSA.

19
Електроний цифровий підпис (ЕЦП)

Як виявилося, теорія асиметричного шифрування дозволяє дуже елегантно


вирішувати ще одну проблему інформаційної безпеки - перевірку
справжності автора повідомлення та контролю цілісності даних. Для
вирішення цієї проблеми за допомогою симетричної криптографії була
розроблена дуже трудомістка і складна схема. У той же час за допомогою,
наприклад, того ж асиметричного алгоритму RSA створити алгоритм
перевірки дійсності автора та незмінності повідомлення надзвичайно
просто.

ЕЦП – це дані в електронній формі, отримані за результатами


криптографічного перетворення, які додаються до інших даних або
документів і забезпечують їх цілісність та ідентифікацію автора.
За допомогою послуг ЕЦП можна підписувати електронні документи,
користуватися електронними послугами, реєструватися на державних
порталах тощо. Документи, підписані за допомогою ЕЦП, мають таку саму
юридичну силу, як і звичайні.
20
4.2.3 Порівняння симетричних і асиметричних криптосистем

В основному, симетричні алгоритми шифрування вимагають менше


обчислень, ніж асиметричні. На практиці, це означає, що якісні
асиметричні алгоритми в сотні разів повільніші за якісні симетричні
алгоритми. Недоліком симетричних алгоритмів є необхідність мати
секретний ключ з обох боків передачі інформації. Так як ключі є
предметом можливого перехоплення, їх необхідно часто змінювати
та передавати по безпечних каналах передачі інформації під час
розповсюдження.
Переваги симетричних криптоалгоритмів:
• Швидкість (за оцінками різних організацій, на 3 порядки вище);
• Простота реалізації (за рахунок більш простих операцій);
• Менша необхідна довжина ключа для порівнянної стійкості;
• Вивченість (за рахунок більшого віку).

21
Недоліки симетричних криптоалгоритмів:
• Складність управління ключами у великій мережі. Це означає
квадратичне зростання числа пар ключів, які треба генерувати,
передавати, зберігати і знищувати в мережі. Для мережі в 10
абонентів потрібно 45 ключів, для 100 вже 4950, для 1000 - 499500 і
т. д.
• Складність обміну ключами. Для застосування необхідно вирішити
проблему надійної передачі ключів кожному абоненту, тому що
потрібен секретний канал для передачі кожного ключа обом
сторонам.
Для компенсації недоліків симетричного шифрування в даний час
широко застосовується комбінована (гібридна) криптографічна схема,
де за допомогою асиметричного шифрування передається сеансовий
ключ, що використовується сторонами для обміну даними за
допомогою симетричного шифрування.
Важливою властивістю симетричних шифрів є неможливість їх
використання для підтвердження авторства, так як ключ відомий кожній
стороні.
22
4.3 Блочний шифр DES
DES (Data Encryption Standard) — це симетричний алгоритм
шифрування даних, стандарт шифрування прийнятий урядом США
із 1976 до кінця 1990-х, з часом набув міжнародного застосування.
Ще з часу свого розроблення алгоритм викликав неоднозначні
відгуки. Оскільки DES містив засекречені елементи своєї структури,
породжувались побоювання щодо можливості контролю з боку
Національного Агентства Безпеки США (National Security Agency).
Алгоритм піддавався критиці за малу довжину ключа, що, врешті,
після бурхливих обговорень та контролю академічної громадськості,
не завадило йому стати загальноприйнятим стандартом. DES дав
поштовх сучасним уявленням про блочні алгоритми шифрування та
криптоаналіз.

23
Зараз DES вважається ненадійним в основному через малу довжину
ключа (56 біт) та розмір блоку (64 біти). У 1999 ключ DES було
публічно дешифровано за 22 години 15 хвилин. Вважається, що
алгоритм достатньо надійний для застосування у модифікації 3DES,
хоча існують розроблені теоретичні атаки. На сьогоднішній день
DES майже повністю витіснений алгоритмом AES, що з 2002 року є
стандартом США.

24
1972 року було проведено дослідження потреби уряду США у
комп'ютерній безпеці. Американське «національне бюро
стандартів» (НБС) (нині відоме як NIST — «Національний
інститут стандартів і технологій») визначило необхідність
загальнодержавного стандарту шифрування некритичної
інформації.

НБС проконсультувалося з АНБ (агентством національної


безпеки США) та 15 травня 1973 року оголосило перший конкурс
на створення шифру. Було сформульовано суворі вимоги до
нового шифру. Фірма IBM представила на конкурсі розроблений
нею шифр «Люцифер» (Lucifer). Шифри жодного з конкурсантів
(включно з «Люцифером») не забезпечували виконання всіх
вимог. Протягом 1973-1974 років IBM доопрацювала свій
"Люцифер": використовувала в його основі алгоритм Хорста
Фейстеля, створений раніше. 27 серпня 1974 року розпочався
другий конкурс. Цього разу шифр «Люцифер» визнали
прийнятним. 25
17 березня 1975 запропонований алгоритм DES був виданий у
«Федеральному реєстрі». У 1976 році для обговорення DES було
проведено два відкриті симпозіуми. На симпозіумах жорсткої критики
зазнали змін, внесених до алгоритму організацією АНБ. АНБ зменшило
початкову довжину ключа та S-блоки (блоки підстановки), критерії
проектування яких не розкривалися. АНБ підозрювалося у свідомому
ослабленні алгоритму з метою, щоб АНБ могло легко переглядати
зашифровані повідомлення. Сенат США перевірив дії АНБ і в 1978 році
опублікував заяву, в якій повідомлялося:

- у процесі розробки алгоритму представники АНБ переконали творців


DES у тому, що зменшеної довжини ключа більш ніж достатньо для всіх
комерційних додатків;
- представники АНБ опосередковано допомагали у розробці S-
перестановок;
- остаточна версія алгоритму була, на думку перевіряючих, найкращим
алгоритмом шифрування, до того ж позбавленим статистичної чи
математичної слабкості;
- представники АНБ ніколи не втручалися у розробку алгоритму DES.
26
1990 року Елі Біхам (Eli Biham) та Аді Шамір (Adi Shamir) провели
незалежні дослідження з диференціального криптоаналізу — основного
методу злому блокових алгоритмів симетричного шифрування. Ці
дослідження зняли частину підозр у прихованій слабкості S-перестановок.
S-блоки алгоритму DES виявилися набагато стійкішими до атак, ніж якби
їх вибрали випадково. Це означає, що така техніка аналізу була відома АНБ
ще у 1970-х роках і S-блоки конструювалися свідомо.

Громадська організація «EFF», що займається проблемами інформаційної


безпеки та особистої таємниці у мережі Internet, ініціювала дослідження
«DES Challenge II» з метою виявлення проблем DES. У рамках
дослідження співробітники фірми «RSA Laboratory» побудували
суперкомп'ютер. В 1998 суперкомп'ютер виконав розшифровку даних,
зашифрованих методом DES з використанням 56-бітного ключа, менш ніж
за три дні. Суперкомп'ютер отримав назву "EFF DES Cracker". Спеціально з
цієї нагоди вчені організували прес-конференцію і з занепокоєнням
говорили про те, що зловмисники навряд чи пропустять нагоду
скористатися такою вразливістю.
27
Підтвердження слабкості DES призвело до необхідності розробки
нового криптоалгоритму. Тому було вирішено провести конкурс для
створення нового стандарту шифрування - Advanced Encryption
Standard (AES), який мав стати наступником DES.
Конкурс був організований NIST (National Institute of Standards and
Technology). В результаті, в 2000 році переможцем було оголошено
шифр Rijndael. Саме його було офіційно прийнято стандартом
шифрування США в 2002 році.

28
4.4 Особливості роботи шифру DES
DES є блоковим шифром. Щоб зрозуміти, як працює DES, необхідно
розглянути принцип роботи блокового шифру та мережу Фейстеля.

Вхідними даними для блокового шифру є:


блок розміром n біт;
ключ розміром k біт.

На виході (після застосування перетворень, що шифрують)


виходить зашифрований блок розміром n біт, причому незначні
відмінності вхідних даних, як правило, призводять до істотної
зміни результату (лавинний ефект).

29
Блокові шифри реалізуються шляхом багаторазового застосування
до блоків вихідного тексту деяких базових перетворень.

Базові перетворення:
- складне перетворення на одній локальній частині блоку;
- просте перетворення між частинами блоку.

Оскільки перетворення проводяться поблочно, потрібен поділ


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

30
В DES дані шифруються блоками по 64 біти - 64 бітний блок
відкритого тексту подається на вхід алгоритму, а 64-бітний блок
шифрограми отримується в результаті роботи алгоритму. Крім того, як
під час шифрування, так і під час дешифрування використовується
один і той самий алгоритм (за винятком дещо іншого шляху
утворення робочих ключів).
Ключ має довжину 56 біт (як правило, в вихідному вигляді ключ має
довжину 64 біти, де кожний 8-й біт є бітом паритету, крім того, ці
контрольні біти можуть бути винесені в останній байт ключа).
Ключем може бути довільна 64-бітна комбінація, яка може бути
змінена у будь-який момент часу. Частина цих комбінацій вважається
слабкими ключами, оскільки може бути легко визначена. Безпечність
алгоритму базується на безпечності ключа.
На найнижчому рівні алгоритм є нічим іншим, ніж поєднання двох
базових технік шифрування: перемішування (перестановки) і
підстановки. Цикл алгоритму, з яких і складається DES є комбінацією
цих технік, як об'єкти перемішування виступають біти тексту, ключа і
блоків підстановок. 31
Лавинний ефект (англ. Avalanche effect) — поняття в криптографії, яке
зазвичай застосовується до блокових шифрів і криптографічних хеш-
функцій. Важлива криптографічна властивість для шифрування, що
означає, що зміна значення малої кількості бітів у вхідному тексті або в
ключі веде до «лавинної» зміни значень вихідних бітів шифротексту.
Інакше кажучи, це залежність всіх вихідних бітів від кожного вхідного
біта.
Термін «лавинний ефект» вперше введений Хорстом Фейстелем у статті
Cryptography and Computer Privacy, опублікованій у журналі Scientific
American у травні 1973, хоча концептуальне поняття використовувалося
ще Шенноном.

У алгоритмах з кількома проходами лавинний ефект зазвичай досягається


тому, що у кожному проході зміна одного вхідного біта веде до змін
кількох вихідних.

Якщо криптографічний алгоритм не має лавинного ефекту в достатній


мірі, криптоаналітик може зробити припущення про вхідну інформацію,
ґрунтуючись на вихідній інформації. Таким чином, досягнення лавинного
ефекту є важливою метою розробки криптографічного алгоритму.
32
Лавинний ефект є наслідком добрих конфузії та дифузії.
Шеннон ввів поняття конфузії та дифузії як методи, що ускладнюють
статистичний криптоаналіз. Згідно з Шенноном:

Дифузія - метод, при якому надмірність у статистиці вхідних даних


"розподіляється" по всій структурі вихідних даних. При цьому для
статистичного аналізу потрібні великі обсяги вихідних даних, приховується
структура вихідного тексту. В шифрах реалізується за допомогою P-блоків
(блоки перестановки), іншими словами, кожен біт незашифрованого тексту
має впливати на кожен біт зашифрованого тексту. Поширення одного
незашифрованого біта на багато зашифрованих бітів приховує статистичну
структуру незашифрованого тексту. Визначити, як статистичні
характеристики зашифрованого тексту залежить від статистичних
характеристик незашифрованого тексту, має бути дуже складною задачею.

Конфузія — метод, у якому залежність ключа та вихідних даних робиться


якомога складнішою, зокрема, нелінійною. При цьому стає складніше робити
висновки про ключ за вихідними даними, а також про вихідні дані, якщо
відома частина ключа. В шифрах реалізується за допомогою S-блоків (блоки
заміни).
33
4.5 Схема шифрування алгоритму DES

Початкова
Вихідний блок
перестановка

разів
Цикл Ключі
шифрування

Кінцева Зашифрований
перестановка блок

Рис. 4.1 Схема шифрування алгоритму DES


Вихідний текст – блок 64 біт.
Процес шифрування складається з початкової перестановки, 16 циклів
шифрування та кінцевої перестановки.
34
Рис. 4.2 Мережа Фейстеля в алгоритмі DES 35
Початкова перестановка
Вихідний текст T (блок 64 біт) перетворюється за допомогою
початкової перестановки IP яка визначається таблицею 4.1:
Табл. 4.1 Початкова перестановка IP

За таблицею перші 3 біти результуючого блоку IP(T) після


початкової перестановки IP є бітами 58, 50, 42 вхідного блоку T,
а його 3 останні біта є бітами 23, 15, 7 вхідного блоку.

Таким чином, біти вхідного блоку просто переставляються у


відповідності даній таблиці!

36
Цикли шифрування
Отриманий після початкової перестановки 64-бітовий блок IP(T)
бере участь у 16 циклах перетворення Фейстеля.

16 циклів перетворення Фейстеля:


- Розбити IP(T) на дві частини L0,R0, де L0,R0 — відповідно 32
старших бітів та 32 молодших бітів блоку T0 в IP(T)=L0R0
- Нехай Ti-1=Li-1Ri-1 результат (i-1) ітерації, тоді результат i-ої
ітерації Ti=LiRi визначається:

- Ліва половина Li дорівнює правій половині попереднього вектора


Li-1Ri-1. А права половина Ri - це бітове додавання Li-1 і f(Ri-1,ki) за
модулем 2 (це XOR).

У 16 циклах перетворення Фейстеля функція f відіграє роль


шифрування. Розглянемо докладно функцію f.
37
Основна функція шифрування (функція Фейстеля)

Рис. 4.3 Схема роботи функції f

38
Аргументами функції f є 32-бітовий вектор Ri-1 та 48-бітовий
ключ ki, який є результатом перетворення 56-бітового вихідного
ключа шифру k. Для обчислення функції f послідовно
використовуються:
• функція розширення E,
• додавання за модулем 2 з ключем ki
• перетворення S, що складається з 8 перетворень S-блоків S1, S2,
S3…S8,
• перестановка P.

Функція E розширює 32-бітовий вектор Ri-1 до 48-бітового


вектора E(Ri-1) шляхом дублювання деяких бітів з Ri-1.

Порядок бітів вектора E(Ri-1) зазначений у таблиці 4.2.

39
Табл. 4.2 Функція розширення Е
Перші три біти вектора E(Ri-1) є бітами 32, 1, 2
вектора Ri-1.
По таблиці 4.2 видно, що біти 1, 4, 5, 8, 9, 12, 13, 16,
17, 20, 21, 24, 25, 28, 29, 32 дублюються. Останні 3
біти вектора E(Ri-1) — це біти 31, 32, 1 вектора Ri-1.

Тобто знов, просто виконується перестановка бітів


вхідного блоку (Ri-1) по таблиці. Так ми отримуємо
блок E(Ri-1). Але через дублювання деяких бітів,
розмір блоку з 32 стає 48 біт.

Отриманий після перестановки блок E(Ri-1) додається за модулем 2 до


ключа ki та потім представляється у вигляді восьми послідовних блоків

Кожен Bj є 6-бітовим блоком. Далі кожен із блоків Bj трансформується в 4-


бітовий блок B'j за допомогою перетворень Sj. Перетворення Sj
визначаються таблицею 4.3.

40
Таблиця 4.3 Перетворення Si, i=1…8

41
Продовження таблиці 4.3

42
Припустимо, що B3=101111, і хочемо знайти B'3.
Перший і останній розряди B3 є двійковим записом числа а,
0<=a<=3, середні 4 розряди представляють число b, 0<=b<=15.
Рядки таблиці S3 нумеруються від 0 до 3, стовпці таблиці S3
нумеруються від 0 до 15. Пара чисел (а, b) визначає число, що
знаходиться у перетині рядка а та стовпця b. Двійкове представлення
цього числа дає B’3.

У нашому випадку a=112=3, b = 01112 = 7, а число, що визначається


парою (3,7), дорівнює 7. Його двійкове предсталення B'3=0111.

Значення функції f(Ri-1,ki) (32 біт) отримується перестановкою Р, що


застосовується до 32-бітового блоку B'1 B'2...B'8. Перестановка Р
задана таблицею 4.4.

43
Табл. 4.4 Перестановка P

Згідно з таблицею 4.4, перші чотири біти результуючого вектора


після дії функції f - це біти 16, 7, 20, 21 вектора B'1B'2...B'8.
Для генерації ключів ki використовується спеціальний алгоритм,
який дозволяє з початкового ключа довжиною в 56 біт отримати
16 ключів по 48 біт. Кількість ключів відповідає кількості циклів
(раундів) в алгоритмі DES.

Візуалізація роботи DES:


https://www.youtube.com/watch?v=XjZmirLc4k4
44
4.6 Схема розшифрування алгоритму DES
При розшифруванні даних усі дії виконуються у зворотному
порядку. У 16 циклах розшифрування, на відміну від шифрування за
допомогою прямого перетворення мережею Фейстеля,
використовується зворотне перетворення мережею Фейстеля.

Схема розшифрування зазначена на рис. 4.4.


Ключ ki, i=16,…,1, функція f, перестановка IP-1 такі ж, як і в процесі
шифрування. Алгоритм генерації ключів залежить лише від ключа
користувача, тому при розшифруванні вони ідентичні.

45
При розшифруванні
даних усі дії виконуються
у зворотному порядку.
У 16 циклах
розшифрування, на
відміну від шифрування
за допомогою прямого
перетворення мережею
Фейстеля,
використовується
зворотне перетворення
мережею Фейстеля.

Рис. 4.4 Детальна схема розшифровування алгоритму DES 46


4.7 Криптостійкість алгоритму DES

Нелінійність перетворень у DES засобами тільки S-блоків та


використання слабких S-блоків дозволяє здійснювати контроль над
шифрованою передачею повідомлень.
Вибір S-блоків вимагає дотримання кількох умов:
• Кожен рядок кожного блоку має бути перестановкою множини {0, 1, 2,
…, 15}
• S-блоки не повинні бути лінійною або афінною функцією своїх
аргументів.
• Зміна одного біта на вході S-блоку повинна призводити до зміни
принаймні двох бітів на виході.
• Для кожного S-блоку і будь-якого аргументу x значення S(x) і S(x XOR
0011002) повинні відрізнятися принаймні двома бітами.

47
Через невелику кількість можливих ключів (всього 256),
з'являється можливість їхнього повного перебору на швидкодіючій
обчислювальній техніці за реальний час. 1998 року Electronic
Frontier Foundation, використовуючи спеціальний комп'ютер DES-
Cracker, вдалося зламати DES за 3 дні.

48
49
Слабкі ключі DES наведені в таблиці в шістнадцятковій формі.

Слабкі ключі

позначає вектор, що складається із 28 нульових бітів.

Для кожного слабкого ключа існує 232 нерухомі точки, тобто таких 64-бітових блоків
х, для яких

50
Відомі атаки на DES
• Метод повного перебору вимагає одну відому пару шифрованого та
розшифрованого тексту, незначний обсяг пам'яті, і його виконання
вимагає близько 255 кроків.
• Диференціальний криптоаналіз – першу таку атаку на DES заявили
Біхам та Шамір.
Ідея: із множини відкритих текстів (шифротекстів) обирати пари із
заданою різницею та на підставі аналізу кожної пари знаходити
можливі варіанти ключа.
Ця атака вимагає шифрування 247 відкритих текстів, вибраних
нападником, для її виконання потрібні приблизно 247 кроків.
Теоретично, ця атака непрактична через надмірні вимоги до підбору
даних і складність організації атаки за вибраним відкритим текстом.
Самі автори цієї атаки Biham та Shamir заявили, що вважають DES
захищеним для такої атаки.

51
• Лінійний криптоаналіз розроблено Мицуру Мацуи (1993).
Ідея: будуються співвідношення між відкритим текстом, шифротекстом
та ключем (лінійна апроксимація) та застосовуються із відомими
парами відкритий текст – шифротекст.
Цей метод дозволяє вирахувати ключ DES за допомогою аналізу 243
відомих відкритих текстів, при цьому потрібно приблизно 243 кроків для
виконання. Перший експериментальний криптоаналіз DES, заснований
на відкритті Мацуи, успішно виконано протягом 50 днів на
автоматизованих робочих місцях 12 HP 9735.

Для лінійного та диференціального криптоаналізу потрібен великий обсяг


пам'яті для збереження вибраних (відомих) відкритих текстів до початку
атаки.

52
ЛЕКЦІЯ 5
з дисципліни “Основи криптографії”

ТЕМА “СИМЕТРИЧНІ КРИПТОАЛГОРИТМИ.


СТАНДАРТ ШИФРУВАННЯ AES”
5.1 Збільшення криптостійкості DES

Щоб збільшити криптостійкість DES з’явилися кілька модифікацій:


double DES (2DES), triple DES (3DES), DESX, G-DES.

Методи 2DES та 3DES засновані на DES, але збільшують довжину


ключів (2DES - 112 біт, 3DES - 168 біт) і тому збільшується
криптостійкість.

2
Подвійний DES (2DES)
Подвійний DES - Double DES, 2DES - симетричний алгоритм,
заснований на класичному DES, але з використанням двох
послідовних операцій шифрування з різними ключами.

Шифрування та дешифрування 2DES

3
Очікувалося, що 2DES дасть значний приріст криптостійкості
алгоритму у порівнянні з класичним DES, але це не так.

Стійкість криптографічного алгоритму або системи вказується в


бітах і є очікуваним обсягом роботи, тобто логарифм за основою 2
від кількості операцій, для його криптоаналізу та зламу.

Якщо для зламу криптографічного алгоритму та виявлення


оригінального відкритого тексту потрібно 2N операцій виконання
алгоритму, рівень безпеки алгоритму становить N біт.

Отже, ключ 2DES дорівнює 112 біт, але для його саму потрібно не
більше 257 операцій (не 2112).
Причина цього - 2DES не стійкий до атаки meet-in-the-middle
(“зустріч посередині”).

4
Атака meet-in-the-middle

Вперше ця атака була запропонована Уітфілдом Діффі і Мартіном


Хеллманом у 1977 році.

Простим прикладом є подвійне послідовне шифрування блочним


алгоритмом двома різними ключами K1 і K2. Процес шифрування
виглядає так

де p — це відкритий текст, s — шифротекст, а ENCKi() — операція


одноразового шифрування ключем Ki. Відповідно, зворотна операція —
розшифровка — виглядає так:

5
На перший погляд здається, що застосування подвійного
шифрування багаторазово збільшує стійкість всієї схеми,
оскільки перебирати тепер потрібно два ключі, а не один. У разі
алгоритму DES стійкість збільшується з 256 до 2112. Однак це не
так. Атакуючий може скласти дві таблиці:

1. Всі значення m1 = ENCK1(p) для всіх можливих значень K1,


2. Всі значення m2 = ENC-1K2(s) для всіх можливих значень K2.

6
Після цього, зловмиснику достатньо лише знайти збіги у цих
таблицях, тобто такі значення m1 і m2, що .
Кожен збіг відповідає набору ключів (K1,K2), який задовольняє
умови, оскільки

Для даної атаки потрібно 257 операцій шифрування-розшифрування


(лише удвічі більше, ніж для перебору одного ключа) і 257 пам'яті.
Додаткові оптимізації — використання хеш-таблиць, обчислення
тільки для половини ключів (для DES повний перебір, насправді,
вимагає лише 255 операцій) — можуть знизити ці вимоги. Головний
результат атаки полягає в тому, що послідовне шифрування двома
ключами збільшує час перебору лише удвічі.

7
Потрійний DES
Triple DES (3DES) - симетричний блоковий шифр, створений
Уітфілдом Діффі, Мартіном Хеллманом і Уолтом Тачманном в 1978 на
основі алгоритму DES з метою усунення головного недоліку
останнього - малої довжини ключа (56 біт). Стійкість алгоритму з
таким коротким ключем вже на той момент викликала підозри, адже
він міг бути зламаний методом повного перебору з розвитком
цифрової техніки через якийсь час.

Швидкість роботи 3DES в 3 рази нижче, ніж у DES, але


криптостійкість набагато вища - час, необхідний для криптоаналізу
3DES, може бути в мільярд разів більше, ніж час, необхідний для
зламу DES.

8
3DES є простим способом усунення недоліків DES. Алгоритм 3DES
побудований на основі DES, тому для його реалізації можна
використовувати програми, створені для DES. Офіційна назва
алгоритму, що використовується в стандартах - TDEA або Triple DEA
(Triple Data Encryption Algorithm). Однак термін «3DES»
використовується ширше постачальниками, користувачами та
розробниками криптосистем.

9
Схема 3DES має вигляд , де k1,k2,k3 -
ключі для кожного шифру DES.

10
При виконанні алгоритму ключі 3DES можна обрати так:

- незалежні
- незалежні
-

Таким чином довжина ключа 3DES складає - 168 біт.

Існує 3 типи алгоритму 3DES:


• DES-EEE3: Шифрується три рази із трьома різними ключами.
• DES-EDE3: 3DES операції шифрування-розшифрування-
шифрування з трьома різними ключами.
• DES-EEE2 та DES-EDE2: Як і попередні, за винятком того, що
перша та третя операції використовують однаковий ключ.

11
Найпопулярніший тип при використанні 3DES - це DES-EDE3.
Виконуються операції шифрування, дешифрування та знову
шифрування з трьома різними ключами

Алгоритм виглядає так:

Шифрування:

Розшифровування:

12
DES-EEE3 – шифрування
виконується три рази з
трьома різними ключами

DES-EEE2 – як DES-EEE3,
але на першому і третьому
кроці використовується один
ключ

DES-EDE2 – як DES-EDE3,
але на першому і третьому
кроці використовується
однаковий ключ
13
3DES - це досить популярна альтернатива DES.
Він був реалізований у багатьох Інтернет-додатках та бібліотеках,
зокрема PGP, OpenSSL, S/mime. Також 3DES використовується в
стандартах управління ключами ANSI X9.17 та ISO 8732 та в PEM
(Privacy Enhanced Mail). 3DES набув широкого застосування в
індустрії електронних платежів, яка активно розробляла та
публікувати стандарти, засновані на ньому (наприклад, EMV).
Microsoft OneNote, Microsoft Outlook 2007 та Microsoft System Center
Configuration Manager 2012 використовують 3DES для захисту даних
системи та користувачів за допомогою паролів.

14
Тим не менш, останніми роками 3DES активно виводиться із
застосування. Хоча досі Багато систем безпеки продовжують
підтримувати як 3DES, так і AES (діючий на сьогоднішній день
стандарт шифрування), але при цьому за умовчанням
використовується AES. Хоча 3DES може підтримуватись для
зворотної сумісності, він більше не рекомендований для
використання.

15
Чому NIST забороняє використовувати 3DES

Політика NIST призначає конкретні значення стійкості з набору -


наприклад, 80, 112, 128, 192 і 256 - і для симетричних шифрів.
Значення зазвичай дорівнює розміру ключа шифру, що
еквівалентно складності атаки методом грубої сили.
Криптографічний алгоритм вважається зламаним, якщо виявлено,
що рівень стійкості до атаки нижчий за заявлений, хоча не всі
атаки обов’язково практичні.

На сьогоднішній день рекомендована NIST довжина ключа для


симетричного алгоритму - 256 біт.
А ключ 3DES дає стійкість 112 біт при переборі (2112 операцій),
хоча його довжина 168 біт. Атака meet-in-the-middle (“зустріч
посередині”) послаблює стійкість.

16
When Triple DES is used with three independent keys, it has a key length of 168 bits (3
x 56-bit DES keys = 168 independent key bits). Due to meet-in-the-middle attacks,
however, the effective security 3TDEA provides is only 112 bits. Also, the small block
size of 64 bits makes it vulnerable to block collision attacks when it's used to encrypt
large amounts of data with the same key, such as an HTTPS session.

In 2016, researchers successfully exploited Triple DES' short block size (https://
nvd.nist.gov/vuln/detail/CVE-2016-2183) in various real-world protocols via a birthday
attack called Sweet32 (https://sweet32.info) As a result, NIST restricted Triple DES use
in 2017 to 8 MB of data using a single key bundle (set of 3 keys). This meant it could
no longer effectively be used for TLS, IPsec or large file encryption.

У 2018 році NIST опублікував рекомендації, згідно з якими


використання Triple DES буде припинено для всіх нових програм
— це означає, що його можна використовувати, але потрібно
прийняти ризик — і використання заборонено — тобто більше не
дозволено для вказаного використання — після 2023 року.

17
5.2 Стандарт шифрування AES

1. Історія появи AES


У 1997 р. NIST оголосив конкурс на на новий блоковий
симетричний стандарт шифрування

Алгоритм повинен:
1) бути симетричним;
2) бути блоковим;
3) мати довжину блока 128 біт і
підтримувати три довжини
ключа: 128, 192 і 256 біт.

18
1. Історія появи AES
Алгоритми-фіналісти
Алгоритм Хто створив Країна
MARS IBM US
RC6 R.Rivest & Co US
Rijndael V.Rijmen & J.Daemen BE
Serpent Universities IS, UK, NO
TwoFish B.Schneier & Co US

19
1. Історія появи AES
У жовтні 2000 р. конкурс
завершився. Переможцем став
бельгійський алгоритм Rijndael,
після чого був затверджений як
стандарт та отримав назву AES
(2001 рік)

Автори шифру Rijndael –


Йоан Вінсент
бельгійські криптографи
Дамен Реймен
Вінсент Реймен та Йоан Дамен

20
2. Математична база
Поле Галуа
Скінченне поле 𝐺𝐹 28 складається з многочленів вигляду
𝑎(𝑥) = 𝑎7 𝑥 7 + 𝑎6 𝑥 6 + 𝑎5 𝑥 5 + 𝑎4 𝑥 4 + 𝑎3 𝑥 3 + 𝑎2 𝑥 2 + 𝑎1 𝑥 + 𝑎0 ,
де 𝑎𝑖 ∈ 0,1 .
У вигляді многочлена 𝑎(𝑥) скінченого поля 𝐺𝐹 28 можна
подати будь-який байт, що складається з бітів 𝑎7 𝑎6 𝑎5 𝑎4 𝑎3 𝑎2 𝑎1 𝑎0 .
Приклад 2.1:
Байт: 01011010.
Многочлен: 0 ⋅ 𝑥 7 + 1 ⋅ 𝑥 6 + 0 ⋅ 𝑥 5 + 1 ⋅ 𝑥 4 + 1 ⋅ 𝑥 3 + 0 ⋅ 𝑥 2 + 1 ⋅ 𝑥1 + 0 =
= 𝑥 6 +𝑥 4 + 𝑥 3 + 𝑥.

21
2. Математична база
Додавання байтів
∀𝑎 𝑥 , 𝑏 𝑥 ∈ 𝐺𝐹(28 )
𝑎 𝑥 + 𝑏 𝑥 = 𝑐 𝑥 = 𝑐7 𝑥 7 + 𝑐6 𝑥 6 + 𝑐5 𝑥 5 + 𝑐4 𝑥 4 + 𝑐3 𝑥 3 + 𝑐2 𝑥 2 +
𝑐1 𝑥 + 𝑐0 ,
де 𝑐𝑖 = 𝑎𝑖 ⊕ 𝑏𝑖
1 0 1 1 0 0 0 1
Приклад 2.2: ⊕
1 0 0 0 1 1 1 1
У двійковій формі:
0 0 1 1 1 1 1 0
У вигляді многочленів додавання коефіцієнтів при однакових
степенях відбувається за модулем 2 𝟏 ∙ 𝒙𝟕 + 𝟏 ∙ 𝒙𝟕 = (𝟏 ⊕ 𝟏) ∙ 𝒙𝟕 = 𝟎 ∙ 𝒙𝟕 :
𝒙𝟕 + 𝒙𝟓 + 𝒙𝟒 + 𝟏 + 𝒙𝟕 + 𝒙𝟑 + 𝒙𝟐 + 𝒙 + 𝟏 = 𝒙𝟓 +𝒙𝟒 + 𝒙𝟑 + 𝒙𝟐 + 𝒙

22
2. Математична база
Множення байтів

Для множення у полі 𝐺𝐹(28 ) в AES використовується


нерозкладний многочлен 𝑚 𝑥 = 𝑥 8 + 𝑥 4 + 𝑥 3 + 𝑥 +1

Два елементи поля 𝐺𝐹(28 ) множать за модулем 𝑚 𝑥 так:


1) Множать як звичайні многочлени;
2) Проміжний результат ділять на 𝑚 𝑥 і за остаточний
результат приймають остачу від ділення.

23
2. Математична база
Приклад 2.3:
(𝑥 6 + 𝑥 5 + 𝑥 4 + 𝑥 2 ) ⋅ (𝑥 7 + 𝑥 5 + 𝑥 4 + 𝑥) = 𝑥 13 + 𝑥 11 + 𝑥 10 + 𝑥 7 + 𝑥 12 + 𝑥 10 + 𝑥 9 +
+𝑥 6 + 𝑥 11 + 𝑥 9 + 𝑥 8 + 𝑥 5 + 𝑥 9 + 𝑥 7 + 𝑥 6 + 𝑥 3 = 𝑥 13 + 𝑥 12 + 𝑥 9 + 𝑥 8 + 𝑥 5 + 𝑥 3

(𝑥 13 + 𝑥 12 + 𝑥 9 + 𝑥 8 + 𝑥 5 + 𝑥 3 ) 𝑚𝑜𝑑 (𝑥 8 + 𝑥 4 + 𝑥 3 + 𝑥 + 1) = 𝑥 7 + 𝑥 6 + 𝑥 5 + 𝑥 + 1

24
Алгоритм AES побудовано на основі SP-мережі.

SP-мережа, або мережа замін-перестановок (англ.


substitution-permutation network) — це ряд
пов'язаних математичних операцій що
використовуються в блочних шифрах. SP-мережу
також використовують 3-Way, SAFER, SHARK, і
Square.
Така мережа приймає блок відкритого тексту і
ключ на вході, і застосовує декілька «раундів» S-
блоків і P-блоків, які чергуються для отримання
блоку шифротексту. S- і P-блоки перетворюють
підблоки вхідних бітів на вихідні біти. Ці операції
обираються так, щоб бути зручними для
ефективної реалізації в залізі, наприклад додавання
за модулем 2 (XOR) і побітове обертання. Ключ
вводиться в кожному раунді, зазвичай у вигляді
ключа раунду (англ. round keys) похідного від
нього. Іноді самі S-блоки залежать від ключа. Приклад SP-мережі з 3 раундами
25
Для досягнення безпеки достатньо одного S-блоку, але такий блок вимагатиме
великого обсягу пам'яті. Тому використовують маленькі S-блоки у поєднанні з
P-блоками.

Такий один S- або P-блок не має особливої криптостійкості: S-блок можна


розглядати як підстановочний шифр (стадія підстановки - англ. substitution
stage), а P-блок як перестановочний шифр (стадія перестановки - англ.
permutation stage). Однак, добре продумана SP-мережа з кількома почерговими
раундами S- і P-блоків вже задовільняє властивостям конфузії та
дифузії Шеннона.

Нелінійна стадія підстановки перемішує біти ключа з бітами відкритого тексту,


створюючи конфузію. Лінійна стадія перестановки розподіляє надлишковість
по всій структурі даних, породжуючи дифузію.

26
S-блок заміщує маленький блок вхідних біт інший блок вихідних біт. Ця заміна
має бути взаємно однозначною, щоб гарантувати оборотність. Призначення S-
блоку полягає у нелінійному перетворенні, що перешкоджає проведенню
лінійного криптоаналізу. Однією з властивостей S-блоку є лавинний ефект, тобто
зміна одного біта на вході призводить до зміни всіх бітів на виході.

P-блок (англ. permutation box or P-box) - перестановка всіх біт: блок отримує на
вхід результат перетворення S-блоку, міняє місцями всі біти і подає результат в
S-блок наступного раунду. Важливою якістю P-блоку є можливість розподілити
вихідний результат одного S-блоку між входами якомога більшої кількості S-
блоків.

Для кожного раунду використовується свій ключ, який отримується з


початкового. Подібний ключ називається раундовим. Він може бути отриманий
як розподілом початкового ключа на рівні частини, так і будь-яким
перетворенням всього ключа.
27
3. Алгоритм AES
Основним елементом, яким AES базується на архітектурі
оперує AES, є байт – послідовність SQUARE (КВАДРАТ), для якої
8 біт, що обробляються як єдине характерно:
ціле (в шістнадцятковій системі 1) представлення блоку у вигляді
числення) масиву байтів;

2) шифрування за один раунд


Розмір блока 128 біт всього блоку даних;
3) виконання криптографічних
Довжина ключа може бути перетворень, як над окремими
128, 192 або 256 бітів байтами, так і над рядками і
стовпцями.

28
3. Алгоритм AES
Блок проміжного  s0 , 0 s0 ,1 s0 , 2 s0 , 3 
результату називають  
станом  s1, 0 s1,1 s1, 2 s1, 3 
s s2 ,1 s2 , 2 s2 , 3 
Матриця стану має 4 рядки та  2,0 
s s3,1 s3, 2 s3, 3 
4 стовпці (Nb)  3, 0
Приклад 3.4: 41 43 20 53
Відкритий текст: A SECRET MESSAGE 20 52 4D 41
У шістнадцятковому вигляді: 53 45 45 47
41 20 53 45 43 52 45 54 20 4D 45 53 53 41 47 45 45 54 53 45

29
3. Алгоритм AES
Матриця ключа при Nk=4:
Ключ: матриця байтів, яка
має 4 рядки і кількість
стовпців (Nk), що дорівнює  k0 , 0 k0 ,1 k0 , 2 k0 , 3 
 
довжині ключа, поділеній  k1, 0 k1,1 k1, 2 k1, 3 
на 32 k k2 ,1 k2 , 2 k2 , 3 
 2,0 
k k3,1 k3, 2 k3, 3 
 3, 0

30
3. Алгоритм AES
Кількість раундів шифрування Nr залежить
від значень Nk
Nk Nb Nr
(Довжина (Довжина (Кількість
ключа) блоку) раундів)
AES-128 4 (128) 10
AES-192 6 (192) 4 (128) 12
AES-256 8 (256) 14

31
3. Алгоритм AES
Зашифрування за алгоритмом AES

I. Початкове додавання ключа


II. Nr-1 раундів, кожен з яких складається з
чотирьох етапів:
1. Підстановка байтів;
2. Зсув рядків;
3. Перемішування стовпців;
4. Додавання раундового ключа
III. Завершальний раунд Nr, в якому
пропускається перемішування стовпців

32
3. Алгоритм AES
Підстановка байтів

1. Якщо байт ненульовий, до нього шукають обернений відносно


множення в полі 𝐺𝐹 28 . Якщо ж байт нульовий, оберненого не
існує. Тому нульовому байту 00000000 відповідає він сам.

𝑦0 1 0 0 0 1 1 1 1 𝑥0 1
𝑦1 1 1 0 0 0 1 1 1 𝑥1 1
𝑦2 1 1 1 0 0 0 1 1 𝑥2 0
2. Над утвореним байтом 𝑦3
=
1 1 1 1 0 0 0 1 𝑥
⋅ 𝑥
3

0
.
𝑦4
виконують перетворення: 𝑦5
1 1 1 1 1 0 0 0
𝑥
4 0
0 1 1 1 1 1 0 0 5 1
𝑦6 0 0 1 1 1 1 1 0 𝑥6 1
𝑦7 0 0 0 1 1 1 1 1 𝑥7 0

33
3. Алгоритм AES
На основі двох попередніх перетворень створено спеціальну
таблицю замін байтів, що називається S-боксом

EA 04 65 85 87 F2 4D 97
83 45 5D 96 EC 6E 4C 90
5C 33 98 B0 4A C3 46 E7
F0 2D AD C5 8C D8 95 A6

34
3. Алгоритм AES
Зсув рядків

Рядки стану циклічно зсувають на різні кількості байтів

Кількість зсувів
0-го 1-го 2-го 3-го 87 F2 4D 97 87 F2 4D 97
Nb
рядка рядка рядка рядка EC 6E 4C 90 6E 4C 90 EC
(-) (С1) (С2) (С3) 4A C3 46 E7 46 E7 4A C3
8C D8 95 A6 A6 8C D8 95
4 0 1 2 3

35
3. Алгоритм AES
Перемішування стовпців

Якщо 𝑎(𝑥)– стовпець до


Стовпці стану розглядають як застосування до нього
многочлен над полем 𝐺𝐹(28 ) перемішування, а 𝑏(𝑥)– після, то
та множать за модулем 𝑥 4 + 1 перетворення можна записати так:
на фіксований многочлен 𝑐(𝑥): 𝑏(𝑥)= 𝑐(𝑥) ⊗ 𝑎(𝑥),
або у матричному вигляді:

𝑏0 02 03 01 01 𝑎0
𝑏1 01 02 03 01 𝑎1
𝑐(𝑥) = 0316 ⋅ 𝑥 3 + 0116 ⋅ 𝑥 2 + 0116 ⋅ 𝑥 + 0216 = ⋅ 𝑎
𝑏2 01 01 02 03 2
𝑏3 03 01 01 02 𝑎 3

36
3. Алгоритм AES
0216 = 0000 00102 → 𝑥
02 03 01 01 87 F2 4D 97 47 40 A3 4C
8716 = 1000 01112 → 𝑥 7 + 𝑥 2 + 𝑥 +1
01 02 03 01 6E 4C 90 EC 37 D4 70 9F 0316 = 0000 00112 → 𝑥 +1
01 01 02 03 46 E7 4A C3 94 E4 3A 42 6E16 = 0110 11102 → 𝑥 6 + 𝑥 5 + 𝑥 3 + 𝑥 2 + 𝑥
03 01 01 02 A6 8C D8 95 ED A5 A6 BC 4616 = 0100 01102
A616 = 1010 01102

({02} ∙ {87}) ⊕ ({03} ∙ {6E}) ⊕ ({01}∙ {46}) ⊕ ({01}∙ {A6}) = (0000 0010 ∙ 1000 0111) ⊕ (0000 0011 ∙ 0110 1110) ⊕
⊕ 0100 0110 ⊕1010 0110 = 00010101 ⊕ 10110010 ⊕ 0100 0110 ⊕ 1010 0110 = 01000111=4716

{02} ∙ {87} = 𝑥 ∙ (𝑥 7 +𝑥 2 + 𝑥 + 1) = (𝑥 8 +𝑥 3 + 𝑥 2 + 𝑥) mod (𝑥 8 +𝑥 4 + 𝑥 3 + 𝑥 + 1) = 𝑥 4 +𝑥 2 + 1

{03} ∙ {6E} = (𝑥 + 1) ∙ (𝑥 6 + 𝑥 5 + 𝑥 3 + 𝑥 2 + 𝑥)= 𝑥 7 + 𝑥 6 + 𝑥 4 + 𝑥 3 + 𝑥 2 + 𝑥 6 +𝑥 5 + 𝑥 3 + 𝑥 2 +


+ 𝑥 = 𝑥 7 +𝑥 5 + 𝑥 4 +𝑥

37
3. Алгоритм AES
Додавання раундового ключа

Виконується побітове додавання за модулем 2 раундового ключа до


відповідних бітів, отриманих у попередньому раунді

47 40 A3 4C DC 9B 97 38 9B DB 34 74
Раундовий ключ 37 D4 70 9F 90 49 FE 81 A7 9B 8E 1E
отримують з 94 E4 3A 42 37 DF 72 15 A3 3B 48 57
розширеного ключа ED A5 A6 BC B0 E9 3F A7 5D 4C 99 1B
шифру

38
3. Алгоритм AES
Генерація ключів
Розширений ключ – масив 4-байтових
слів, які позначають 𝑊[𝑖]

Загалом розширений ключ містить


𝑁𝑏∙ 𝑁𝑟+1 слів, тобто для ключа в 128
біт отримаємо 4∙(10+1)= 44 слова

В процесі розширення ключа


використовується масив раундових
констант Rcon

39
3. Алгоритм AES
Розширення ключа
0F 47 0C AF
1. Перші Nk 4-байтових слів 𝑊 𝑖 послідовно 15 D9 B7 7F
вибираються з ключа шифру: 0-е слово – перші 71 E8 AD 67
чотири байти, 1-е слово – другі чотири байти і т.д C9 59 D6 98

W0 W1 W2 W3
2. Якщо 𝑖 кратне Nk:
AF 7F
2. 1. У слові 𝑊 𝑖 − 1 виконують циклічний зсув
7F 67
байтів за схемою:
67 98
𝑎, 𝑏, 𝑐, 𝑑 → 𝑏, 𝑐, 𝑑, 𝑎 де 𝑎, 𝑏, 𝑐, 𝑑 – байти 98 AF

W3

40
3. Алгоритм AES
Розширення ключа
7F D2
2.2. До кожного з 4-х байтів одержаного
67 85
слова застосовують S-бокс D2 01 D3
98 46
85 00 85
AF 79
2.3. До результату додають раундову сталу 46 00 46
Rcon за модулем 2 79 00 79

0F D3 DC
15 85 90
3. Решту слів 𝑊 𝑖 визначають за формулою:
71 46 37
𝑊 𝑖 = 𝑊 𝑖 − 𝑁𝑘 ⊕𝑊 𝑖 − 1
C9 79 B0

W0 W4

41
3. Алгоритм AES
Дешифрування за алгоритмом AES
I. Перед першим раундом дешифрування
виконується операція додавання з ключем
II. Nr-1 раундів, кожен з яких кожен з яких
здійснює такі операції:
1. Зсув рядків в зворотному порядку;
2. Обернена операція до операції підстановки байтів;
3. Процедура, зворотна процедурі перемішування
стовпців;
4. Додавання раундового ключа

III. Завершальний раунд Nr, в якому


пропускається перемішування стовпців

42
3. Алгоритм AES
Зсув рядків в зворотному порядку
Байти в останніх трьох рядках матриці зсуваються циклічно
вліво на різне число байт
Кількість зсувів
0-го 1-го 2-го 3-го
Nb
рядка рядка рядка рядка
(-) (С1) (С2) (С3)
4 0 1 2 3

43
3. Алгоритм AES
Обернена операція до операції підстановки байтів
Байти матриці замінюються новими значеннями за таблицею
зворотної заміни, що є інвертованим S-боксом
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 52 09 6A D5 30 36 A5 38 BF 40 A3 9E 81 F3 D7 FB
1 7C E3 39 82 9B 2F FF 87 34 8E 43 44 C4 DE E9 CB
2 54 7B 94 32 A6 C2 23 3D EE 4C 95 0B 42 FA C3 4E
3 08 2E A1 66 28 D9 24 B2 76 5B A2 49 6D 8B D1 25
4 72 F8 F6 64 86 68 98 16 D4 A4 5C CC 5D 65 B6 92
5 6C 70 48 50 FD ED B9 DA 5E 15 46 57 A7 8D 9D 84
6 90 D8 AB 00 8C BC D3 0A F7 E4 58 05 B8 B3 45 06
7 D0 2C 1E 8F CA 3F 0F 02 C1 AF BD 03 01 13 8A 6B
8 3A 91 11 41 4F 67 DC EA 97 F2 CF CE F0 B4 E6 73
9 96 AC 74 22 E7 AD 35 85 E2 F9 37 E8 1C 75 DF 6E
A 47 F1 1A 71 1D 29 C5 89 6F B7 62 0E AA 18 BE 1B
B FC 56 3E 4B C6 D2 79 20 9A DB C0 FE 78 CD 5A F4
C 1F DD A8 33 88 07 C7 31 B1 12 10 59 27 80 EC 5F
D 60 51 7F A9 19 B5 4A 0D 2D E5 7A 9F 93 C9 9C EF
E A0 E0 3B 4D AE 2A F5 B0 C8 EB BB 3C 83 53 99 61
F 17 2B 04 7E BA 77 D6 26 E1 69 14 63 55 21 0C 7D

44
3. Алгоритм AES
Процедура, зворотна процедурі перемішування стовпців

Якщо 𝑏(𝑥)– стовпець до


Стовпці стану розглядають як
застосування до нього процедури,
многочлен над полем
а 𝑎(𝑥)– після, то перетворення
𝐺𝐹 28 та множать за модулем
можна записати так:
𝑥 4 +1 на фіксований многочлен
𝑎(𝑥)= 𝑐(𝑥) ⊗ 𝑏(𝑥),
𝑐 −1 𝑥 :
або у матричному вигляді:

𝑎0 0𝑒 0𝑏 0𝑑 09 𝑏0
𝑐 −1 𝑥 = 0𝑏16 ⋅ 𝑥3 + 0𝑑16 ⋅ 𝑥2 + 0916 ⋅ 𝑥 + 0𝑒16 𝑎1 09 0𝑒 0𝑏 0𝑑 𝑏
𝑎2 = ⋅ 1
0𝑑 09 0𝑒 0𝑏 𝑏2
𝑎3 0𝑏 0𝑑 09 0𝑒 𝑏3

45
Візуалізація роботи алгоритму AES:

AES Rijndael Visualization

46
4. Режими виконання блокових шифрів

Режим шифрування – метод


застосування блочного шифру, що
дозволяє перетворити
послідовність блоків відкритих
даних у послідовність блоків
зашифрованих даних

При цьому для шифрування одного блоку можуть використовуватись дані іншого блоку.

Зазвичай режими шифрування використовуються для зміни процесу шифрування так, щоб результат
шифрування кожного блоку був унікальним незалежно від даних, що шифруються, і не дозволяв
зробити які-небудь висновки про їх структуру. Це зумовлено, перш за все, тим, що блокові шифри
шифрують дані блоками фіксованого розміру, і тому існує потенційна можливість витоку інформації
про частини даних, що повторюються, шифруються на тому самому ключі.
47
4. Режими виконання блокових шифрів
Режим простої заміни (ECB, Electronic Coding Book)

Кожен блок 𝑃𝑖 шифрується окремо та незалежно від інших


блоків алгоритмом 𝐸𝑘 та ключем 𝑘

С𝑖 = 𝐸𝑘 𝑃𝑖 𝑃𝑖 = 𝐷𝑘 𝐶𝑖

48
4. Режими виконання блокових шифрів
Режим простої заміни (ECB, Electronic Coding Book)
+ Незалежне (паралельне) шифрування блоків
– При використанні одного ключа ідентичні блоки відкритого тексту
шифруються в ідентичні блоки зашифрованого тексту
– Перестановка блоків зашифрованого тексту спричинює
перестановку відповідних блоків відкритих текстів

49
Приклад збереження статистичних особливостей відкритого тексту (оскільки
однаковим блокам шифротексту відповідають однакові блоки відкритого тексту).

Відкритий текст у вигляді Криптограма, отримана Криптограма, отримана


зображення шифруванням в режимі ECB шифруванням в іншому
режимі

50
4. Режими виконання блокових шифрів
Режим зв’язування блоків (CBC, Cipher Block Chaining)

Кожен блок 𝑃𝑖 додається за модулем 2 з попередньо зашифрованим


блоком С𝑖−1 , а потім результат передається на вхід функції 𝐸𝑘 .
Для шифрування 𝑃1 використовують вектор ініціалізації IV
(Initialization Vector) – послідовність випадкових символів розміром n

С1 = 𝐸𝑘 𝑃1 ⊕𝐼𝑉 𝑃1 = 𝐷𝑘 𝐶1 ⊕𝐼𝑉
С𝑖 = 𝐸𝑘 𝑃𝑖 ⊕С𝑖−1 𝑃𝑖 = 𝐷𝑘 𝐶𝑖 ⊕С𝑖−1

51
52
Розглянемо приклад роботи режиму шифрування CBC. Нехай
в якості криптоперетворення задано гамування з блоком
ключа: K={0101101} та вектор ініціалізації IV={1111111}

Відкритий текст

53
Недоліки CBC:
• Помилка в одному блоці може поширюватися на інші блоки.
• Можливість визначення початку зміни даних по зміні шифротексту
(якщо порівняти шифротексти двох повідомлень з тим самим ключем, то
номер першого блоку, у якому шифротексти різняться, буде відповідати
номеру першого блоку, у якому розрізняються вихідні повідомлення)
• Можливість зміни блоку шифротексту Ci-1 шляхом зміни блоку
повідомлення Pi
• неможливість розпаралелювання шифрування (оскільки для шифрування
кожного i-го блоку потрібен блок, зашифрований на попередньому кроці
(блоки пов'язані між собою)).

54
Переваги CBC:
• постійна швидкість обробки блоків (швидкість визначається
ефективністю реалізації шифру; час виконання операції «xor» дуже
малий);
• відсутність статистичних особливостей, характерних для режиму ECB
(оскільки кожен блок відкритого тексту «змішується» із блоком
шифротексту, отриманому на попередньому кроці шифрування);
• можливість розпаралелювання розшифрування.

Криптограма, отримана шифруванням в


режимі МВС 55
4. Режими виконання блокових шифрів
Режим зв’язування блоків (CBC, Cipher Block Chaining)

Останній блок шифротексту в CBC


залежить від IV, ключів і всіх бітів
відкритого тексту, тому він може
використовуватися для автентифікації
повідомлення та відправника і
називається кодом автентифікації
повідомлення або MAC (Message
Authentication Code)

56
Режим шифрування РСВС (Propagating Cipher Block Chaining)

Недоліки CBC призвели до створення вдосконаленого режиму


зчеплення блоків РСВС.

57
РСВС має специфічну властивість - помилка шифротексту призводить до неправильного
дешифрування всіх наступних блоків. Це означає, що перевірка стандартного блоку наприкінці
повідомлення забезпечує цілісність всього повідомлення. Завдяки цій властивості РСВС
застосовувався у протоколі аутентифікації Kerberos та дозволяв виявляти помилки. Пізніше
замінений на CBC.

Звісно, цей режим не позбавлений недоліків. Перестановка двох блоків шифротексту призводить
до неправильної розшифровки двох відповідних блоків відкритого тексту, але через XOR над
відкритим текстом і шифротекстом подальші помилки компенсуються. Тому, якщо під час
перевірки цілісності перевіряються лише кілька останніх блоків розшифрованого тексту, можна
отримати частково зіпсоване повідомлення. 58
4. Режими виконання блокових шифрів
Режим зі зворотнім зв’язком по шифротексту
(CFB, Cipher Feedback)
CFB перетворює блоковий шифр у потоковий, що
самосинхронізується.
Попередньо зашифрований блок С𝑖−1 шифрується ще раз і додається
за модулем 2 з 𝑃𝑖

С1 = 𝑃1 ⊕𝐸𝑘 𝐼𝑉 𝑃1 = 𝐶1 ⊕𝐷𝑘 (𝐼𝑉)


С𝑖 = 𝑃𝑖 ⊕𝐸𝑘 (С𝑖−1 ) 𝑃𝑖 = 𝐶𝑖 ⊕𝐷𝑘 С𝑖−1

59
4. Режими виконання блокових шифрів
Режим зі зворотнім зв’язком по шифротексту
(CFB, Cipher Feedback)
+ Можливість шифрувати блоки довжиною менше n біт (не потрібне
доповнення блоків)
+ – Помилка у відкритих даних впливає на всі подальші зашифровані
дані, але самоусувається в ході розшифрування

60
4. Режими виконання блокових шифрів
Режим зі зворотнім зв’язком по виходу (OFB, Output
Feedback)

OFB перетворює блоковий шифр у синхронний потоковий шифр.


Операції виконуються із підмножиною бітів 𝑂𝑖−1 , що являє собою
частину попередньо зашифрованого блоку С𝑖−1 . Результат одразу
передається на наступний крок та додається за модулем 2 з 𝑃𝑖

С1 = 𝑃1 ⊕𝐸𝑘 𝐼𝑉 𝑃1 = 𝐶1 ⊕𝐷𝑘 (𝐼𝑉)


С𝑖 = 𝑃𝑖 ⊕𝐸𝑘 (𝑂𝑖−1 ) 𝑃𝑖 = 𝐶𝑖 ⊕𝐷𝑘 𝑂𝑖−1

61
4. Режими виконання блокових шифрів
Режим зі зворотнім зв’язком по виходу (OFB, Output
Feedback)
+ Можливість шифрувати блоки довжиною менше n біт (не потрібне
доповнення блоків)
+ Помилка у відкритих даних не впливає на всі подальші
зашифровані дані
– Не дозволяє одночасно шифрувати декілька блоків

62
4. Режими виконання блокових шифрів
Режим лічильника (CTR, Counter Mode)

Лічильник 𝐶𝑡𝑟𝑖−1 може бути будь-якими значеннями


(послідовністю), що не повторюються. Найпоширенішими є прості
лічильники, що на кожному кроці збільшуються на 1.
Лічильник зашифровується та додається за модулем 2 з 𝑃𝑖

С𝑖 = 𝑃𝑖 ⊕𝐸𝑘 (𝐶𝑡𝑟𝑖−1 )
𝑃𝑖 = 𝐶𝑖 ⊕𝐷𝑘 𝐶𝑡𝑟𝑖−1
𝐶𝑡𝑟𝑖−1 =IV|Nonce

63
4. Режими виконання блокових шифрів
Режим лічильника (CTR, Counter Mode)

+ Блоки незалежні один від одного — вони залежать тільки від


значень лічильника (не поширюється помилка)
– Потрібен синхронний лічильник для відправника та отримувача

64
5.3 Алгоритм шифрування “Калина”

1. Алгоритм шифрування «Калина»


«Калина» – блоковий симетричний
шифр, описаний у національному стандарті
України ДСТУ 7624:2014 (введений в дію з 1
липня 2015 р.).

Стандарт розроблено у
співпраці Держспецзв'язку, ПАТ «Інститут
інформаційних технологій» та провідних
українських науковців на чолі із Горбенком І. Д.

65
1. Алгоритм шифрування «Калина»

Раніше в Україні діяв ДСТУ ГОСТ 28147:2009


(перевиданий ГОСТ 28147-89 – радянський і
російський стандарт шифрування).

Цей стандарт вже також виведений із дії в


Білорусі та видозмінений у РФ.

66
1. Алгоритм шифрування «Калина»
Основні характеристики

1) Спроектований на основі SР-мережі (AES);

2) Забезпечує захист від відомих методів криптоаналізу;

3) Має високу швидкодію на сучасних і перспективних


програмних та програмно-апаратних платформах;

4) Визначає 10 режимів роботи.

67
1. Алгоритм шифрування «Калина»
Розмір блоку 128, 256 або
Матриця стану при Nb = 2:
512 бітів
𝑠0,0 𝑠0,1
𝑠1,0 𝑠1,1
Матриця стану має 8 рядків 𝑠2,0 𝑠2,1
та Nb стовпців байтів (64  𝑠3,0 𝑠3,1
Nb біт), що являють собою 𝑠4,0 𝑠4,1
елементи поля 𝐺𝐹 28 𝑠5,0 𝑠5,1
𝑠6,0 𝑠6,1
𝑠7,0 𝑠7,1

68
1. Алгоритм шифрування «Калина»
Заповнення матриці стану (128 біт)

69
1. Алгоритм шифрування «Калина»
Довжина ключа може бути
Матриця ключа при Nk = 4:
128, 256 або 512 бітів

Ключ: матриця байтів, яка 𝑘0,0 𝑘0,1 𝑘0,2 𝑘0,3


𝑘1,0 𝑘1,1 𝑘1,2 𝑘1,3
має 8 рядків Nk стовпців
𝑘2,0 𝑘2,1 𝑘2,2 𝑘2,3
Розмір блока і довжина ключа 𝑘3,0 𝑘3,1 𝑘3,2 𝑘3,3
використовуються у 𝑘4,0 𝑘4,1 𝑘4,2 𝑘4,3
позначенні шифру як 𝑘5,0 𝑘5,1 𝑘5,2 𝑘5,3
параметр. Наприклад, Калина- 𝑘6,0 𝑘6,1 𝑘6,2 𝑘6,3
128/256 𝑘7,0 𝑘7,1 𝑘7,2 𝑘7,3

70
1. Алгоритм шифрування «Калина»
Кількість раундів шифрування алгоритму «Калина»

Кількість раундів шифрування для різних довжин ключа


Розмір
блоку Довжина ключа Довжина ключа Довжина ключа
128 бітів (Nk = 2) 256 бітів (Nk = 4) 512 бітів (Nk = 8)
128 (Nb = 2) 10 14 –
256 (Nb = 4) – 14 18
512 (Nb = 8) – – 18
Довжина ключа збігається з розміром блока або удвічі більша
за нього

71
1. Алгоритм шифрування «Калина»
Зашифрування за алгоритмом «Калина»
I. Додавання з нульовим ключем по модулю K0
264 SubBytes
II. Nr-1 раундів, кожен з яких складається з ShiftRows
чотирьох етапів: MixColumns
1. Підстановка байтів;
Nr-1 разів Ki
2. Зсув рядків;
SubBytes
3. Перемішування стовпців;
ShiftRows
4. Додавання раундового ключа по модулю 2
MixColumns
III. Завершальний раунд Nr, в якому замість ⊕
Kn
виконується додавання по модулю 264

72
1. Алгоритм шифрування «Калина»
Додавання з нульовим підключем по модулю 264
Операція ⊞ забезпечує побітове додавання раундового
ключа до матриці стану за модулем 264.

𝑠0,0 𝑠0,1 𝑠0,2 𝑠0,3 𝑘0,0 𝑘0,1 𝑘0,2 𝑘0,3


𝑠1,0 𝑠1,1 𝑠1,2 𝑠1,3 𝑘1,0 𝑘1,1 𝑘1,2 𝑘1,3
𝑠2,0 𝑠2,1 𝑠2,2 𝑠2,3 𝑘2,0 𝑘2,1 𝑘2,2 𝑘2,3
𝑠3,0 𝑠3,1 𝑠3,2 𝑠3,3 𝑘3,0 𝑘3,1 𝑘3,2 𝑘3,3
𝑠4,0 𝑠4,1 𝑠4,2 𝑠4,3 𝑘4,0 𝑘4,1 𝑘4,2 𝑘4,3
𝑠5,0 𝑠5,1 𝑠5,2 𝑠5,3 𝑘5,0 𝑘5,1 𝑘5,2 𝑘5,3
𝑠6,0 𝑠6,1 𝑠6,2 𝑠6,3 𝑘6,0 𝑘6,1 𝑘6,2 𝑘6,3
𝑠7,0 𝑠7,1 𝑠7,2 𝑠7,3 𝑘7,0 𝑘7,1 𝑘7,2 𝑘7,3

73
1. Алгоритм шифрування «Калина»

Приклад 1.1:
1816 + 8616 = 9E16

Приклад 1.2:
6D16 + 9B16 = 10816 → 0816

74
1. Алгоритм шифрування «Калина»
Підстановка байтів
Кожен байт матриці стану замінюється відповідно до заданої
таблиці підстановки (загалом є 4 таблиці)

75
1. Алгоритм шифрування «Калина»

Для перетворення може використовуватися й інший набір


підстановок

76
1. Алгоритм шифрування «Калина»
До байтів одного рядка
поточного стану
застосовується одна й та
сама підстановка.
𝑠0,𝑖 0-рядок 0
𝑠1,𝑖 1-рядок 1
𝑠2,𝑖 2-рядок 2
𝑠3,𝑖 3-рядок 3
𝑠4,𝑖 4-рядок 0
𝑠5,𝑖 5-рядок 1 Результат підстановки для значення 5А –
𝑠6,𝑖 6-рядок 2 це число 66, що знаходиться в таблиці на
𝑠7,𝑖 7-рядок 3 перетині 6-го рядка та 11 стовпця.

77
1. Алгоритм шифрування «Калина»
Зсув рядків
Рядки стану циклічно зсувають праворуч на різну кількість
байтів, залежно від розміру блока
Номер
Значення зсуву, байтів
Довжина блоку Довжина блоку Довжина блоку
рядка
128 бітів 256 бітів 512 бітів
0 0 0 0
1 0 0 1
2 0 1 2
3 0 1 3
4 1 2 4
5 1 2 5
6 1 3 6
7 1 3 7

78
1. Алгоритм шифрування «Калина»
a a
b b a a
c c b b
d d c c
e e d d
f f e e
a a
g g f f
b b
h h g g
c c
h h
d d
Зсув рядків 128-
бітового блоку e e Зсув рядків 512-
f f бітового блоку
g g
h h

Зсув рядків 256-


бітового блоку

79
1. Алгоритм шифрування «Калина»
Перемішування стовпців

Стовпці стану розглядають як многочлен над полем 𝐺𝐹(28 ) та


множать за модулем 𝑥 8 + 1 на фіксований многочлен 𝑐(𝑥):
𝑐 𝑥 = 0116 ⋅ 𝑥 7 + 0516 ⋅ 𝑥 6 + 0116 ⋅ 𝑥 5 + 0816 ⋅ 𝑥 4 + 0616 ⋅ 𝑥 3 + 0716 ⋅ 𝑥 2 + 0416 ⋅ 𝑥 + 0116

𝑏0 08 06 07 04 𝑎0
01 01 05 01
𝑏1 04 01 01 05 01 08 06 07 𝑎1
𝑏2 07 04 01 01 05 01 08 06 𝑎2
Або у матричному
𝑏3 06 07 04 01 01 05 01 08 ⋅ 𝑎3
вигляді: 𝑏4
=
08 06 07 04 01 01 05 01 𝑎4
𝑏5 01 08 06 07 04 01 01 05 𝑎5
𝑏6 05 01 08 06 07 04 01 01 𝑎6
𝑏7 01 05 01 08 06 07 04 01 𝑎7

80
1. Алгоритм шифрування «Калина»
Для множення у полі 𝐺𝐹(28 ) алгоритм «Калина»
використовує нерозкладний многочлен
𝑚 𝑥 = 𝑥 8 + 𝑥 4 + 𝑥 3 + 𝑥 2 +1

Наприклад, результат 01 01 05 01 08 06 07 04 A8 4D
04 01 01 05 01 08 06 07 14 A7
множення фіксованої 07 04 01 01 05 01 08 06 C4 4F
матриці на один 06 07 04 01 01 05 01 08 ⋅ 5E = 33
деякий стовпець 08 06 07 04 01 01 05 01 B4 C3
01 08 06 07 04 01 01 05 57 48
матриці стану матиме 05 01 08 06 07 04 01 01 BB 5F
вигляд: 01 05 01 08 06 07 04 01 1F 0C

81
1. Алгоритм шифрування «Калина»
Додавання раундового ключа по модулю 2

Операція ⊕ забезпечує побітове додавання раундового


ключа до матриці стану за модулем 2.
𝑠0,0 𝑠0,1 𝑠0,2 𝑠0,3 𝑘0,0 𝑘0,1 𝑘0,2 𝑘0,3
𝑠1,0 𝑠1,1 𝑠1,2 𝑠1,3 𝑘1,0 𝑘1,1 𝑘1,2 𝑘1,3
𝑠2,0 𝑠2,1 𝑠2,2 𝑠2,3 𝑘2,0 𝑘2,1 𝑘2,2 𝑘2,3
𝑠3,0 𝑠3,1 𝑠3,2 𝑠3,3 𝑘3,0 𝑘3,1 𝑘3,2 𝑘3,3
𝑠4,0 𝑠4,1 𝑠4,2 𝑠4,3 𝑘4,0 𝑘4,1 𝑘4,2 𝑘4,3
𝑠5,0 𝑠5,1 𝑠5,2 𝑠5,3 𝑘5,0 𝑘5,1 𝑘5,2 𝑘5,3
𝑠6,0 𝑠6,1 𝑠6,2 𝑠6,3 𝑘6,0 𝑘6,1 𝑘6,2 𝑘6,3
𝑠7,0 𝑠7,1 𝑠7,2 𝑠7,3 𝑘7,0 𝑘7,1 𝑘7,2 𝑘7,3

82
1. Алгоритм шифрування «Калина»
Nb+Nk+1 (const)
Розгортання ключів K
SubBytes
ShiftRows
1. З ключа шифрування K формується допоміжний ключ MixColumns
Kt з довжиною, що дорівнює розміру блока (64  Nb K
біт) з використанням трьох раундів зашифрування. SubBytes
ShiftRows

Вхіднимим даними для перетворення є число Nb + Nk + 1 MixColumns

(у двійковому вигляді), інші байти заповнюються нулями. K


SubBytes
У якості раундових ключів використовується ключ ShiftRows
шифрування K (якщо ключ довше блоку, MixColumns
використовується його молодша і старша половини). Kt

83
1. Алгоритм шифрування «Калина»
K
Розгортання ключів Kt+tmvi

SubBytes
2. На основі ключа K та допоміжного ключа Kt ShiftRows
формуються раундові ключі K2i (з парними індексами) MixColumns
довжиною, що дорівнює розміру блока (64  Nb біт), з
Kt+tmvi
використанням двох раундів зашифрування для
SubBytes
кожного раундового ключа.
ShiftRows
MixColumns
У якості раундових ключів використовується результат Kt+tmvi
додавання по модулю 264 допоміжного ключа Kt та
K2i
змінної tmvi – двійкове значення, яке залежить від
індексу раундового ключа, який формується.

84
1. Алгоритм шифрування «Калина»
Розгортання ключів

3. З раундових ключів K2i з парними Розмір блоку, Зсув вліво


індексами формуються раундові біт (байт) (байт)
ключі K2i+1 (з непарними індексами) 128(16) 7
шляхом циклічного зсуву
256(32) 11
попереднього ключа з парним
індексом вліво на 2  Nb + 3 байт. 512(64) 19

Загалом використовується Nr+1 раундових ключів Ki (i = 0,1 .., Nr),


кожен довжиною 64×Nb біт.

85
1. Алгоритм шифрування «Калина»
Дешифрування за алгоритмом «Калина»
I. Виконуються операції з п. II, але на початку Kn
замість ⊕ виконується віднімання по модулю InvMixColumns
264 з ключем останнього раунду
InvShiftRows
II. Nr-1 раундів, кожен з яких складається з InvSubBytes
чотирьох етапів: Nr-1 разів Ki
1. Додавання раундового ключа за модулем 2;
2. Зворотна операція до перемішування стовпців; InvMixColumns
3. Зсув рядків в зворотному порядку; InvShiftRows
4. Обернена операція до підстановки байтів. InvSubBytes
III. Віднімання з ключем нульового раунду по K0
модулю 264

86
1. Алгоритм шифрування «Калина»
Операція, зворотна операції перемішування стовпців

Стовпці стану множать на фіксований многочлен 𝑐 −1 𝑥 оберений до


𝑐(𝑥):

𝑐 −1 𝑥 = 9516 ⋅ 𝑥 7 + 7616 ⋅ 𝑥 6 + 𝐴816 ⋅ 𝑥 5 + 2𝐹16 ⋅ 𝑥 4 + 4916 ⋅ 𝑥 3 + 𝐷716 ⋅ 𝑥 2 + 𝐶𝐴16 ⋅ 𝑥 + 𝐴𝐷16


𝑏0 76 𝐴8 𝑎0
𝐴𝐷 95 2𝐹 49 𝐷7 𝐶𝐴
𝑏1 𝐶𝐴 𝐴𝐷 95 76 𝐴8 2𝐹 49 𝐷7 𝑎1
𝑏2 𝐷7 𝐶𝐴 𝐴𝐷 95 76 𝐴8 2𝐹 49 𝑎2
Або у матричному 𝑏3 49 𝐷7 𝐶𝐴 𝐴𝐷 95 76 𝐴8 2𝐹 ⋅ 𝑎3
=
вигляді: 𝑏4 2𝐹 49 𝐷7 𝐶𝐴 𝐴𝐷 95 76 𝐴8 𝑎4
𝑏5 𝐴8 2𝐹 49 𝐷7 𝐶𝐴 𝐴𝐷 95 76 𝑎5
𝑏6 76 𝐴8 2𝐹 49 𝐷7 𝐶𝐴 𝐴𝐷 95 𝑎6
𝑏7 95 76 𝐴8 2𝐹 49 𝐷7 𝐶𝐴 𝐴𝐷 𝑎7

87
1. Алгоритм шифрування «Калина»
Зсув рядків в зворотному порядку
Рядки стану циклічно зсувають ліворуч на різну кількість
байтів, залежно від розміру блока
Номер
Значення зсуву, байтів
Довжина блоку Довжина блоку Довжина блоку
рядка
128 бітів 256 бітів 512 бітів
0 0 0 0
1 0 0 1
2 0 1 2
3 0 1 3
4 1 2 4
5 1 2 5
6 1 3 6
7 1 3 7

88
1. Алгоритм шифрування «Калина»
a a
b b a a
c c b b
d d c c
e e d d
a a
f f e e
b b
g g f f
c c
h h g g
d d
h h
Зворотний зсув e e

рядків 128- f f Зворотний зсув


бітового блоку g g рядків 512-бітового
h h блоку
Зворотний зсув
рядків 256-бітового
блоку

89
1. Алгоритм шифрування «Калина»
Обернена операція до операції підстановки байтів
Кожен байт матриці стану замінюється відповідно до заданої
таблиці зворотної заміни

90
1. Алгоритм шифрування «Калина»

91
2. Режими роботи «Калина»
Стандарт ДСТУ 7624:2014 (Калина) визначає алгоритм
симетричного блокового перетворення для забезпечення
конфіденційності і (або) цілісності даних

Назва режиму Позначення Послуга безпеки
режиму
Проста заміна (базове
1 ЕСВ Конфіденційність
перетворення)
2 Гамування CTR Конфіденційність
Гамування зі зворотнім
3 CFB Конфіденційність
зв’язком за шифротекстом
4 Вироблення імітовставки СМАС Цілісність
5 Зчеплення шифроблоків CBC Конфіденційність

92
2. Режими роботи «Калина»

Назва режиму Позначення Послуга безпеки
режиму
Гамування зі зворотнім
б OFB Конфіденційність
зв’язком за шифрогамою
Вибіркове гамування із Конфіденційність і цілісність
7 прискореним виробленням GСМ, GМАС (GСМ), тільки цілісність
імітовставки (GМАС)
Вироблення імітовставки і Цілісність і
8 CCM
гамування конфіденційність

9 Індексованої заміни ХТS Конфіденційність


Конфіденційність і
10 Захисту ключових даних KW
цілісність

93
ЛЕКЦІЯ 6
з дисципліни “Основи криптографії”

ТЕМА “СИМЕТРИЧНІ
КРИПТОАЛГОРИТМИ. ПОТОКОВЕ
ШИФРУВАННЯ”
1. Загальні відомості про потокові шифри

Потоковий шифр – шифр, що


перетворює кожен символ
(літеру, біт або байт) відкритого
тексту у символ шифротексту,
залежно від ключа та
розташування символів у тексті

Ключовий потік (гама) – це бітова послідовність, що


визначається за допомогою ключа шифру
1. Загальні відомості про потокові шифри

Генератор ключів видає потік бітів 𝐾𝑖 , які будуть


використовуватися як гама. Джерело повідомлень генерує
біти відкритих даних 𝑃𝑖 , які додаються за модулем 2 з гамою,
внаслідок чого виходять біти зашифрованих даних С𝑖 :

С𝑖 = 𝑃𝑖 ⊕𝐾𝑖 𝑃𝑖 = 𝐶𝑖 ⊕𝐾𝑖
1. Загальні відомості про потокові шифри
Синхронні потокові шифри

Синхронні потокові шифри – це шифри, у яких потік ключів


генерується незалежно від відкритого й зашифрованого
повідомлення

+ Відсутність ефекту поширення помилок (якщо тільки один біт


спотворений, то тільки він буде розшифрований неправильно)
+ Захист від вставок і вилучень фрагментів зашифрованого
повідомлення, оскільки вони призведуть до втрати синхронізації й
будуть виявлені
– Можлива підміна окремих бітів зашифрованого повідомлення
1. Загальні відомості про потокові шифри
Потокові шифри, що самосинхронізуються
Потокові шифри, що самосинхронізуються (асинхронні потокові
шифри) – це шифри, в яких потік ключів створюється функцією
ключа й фіксованою кількістю знаків зашифрованого
повідомлення (використовується n попередніх знаків
шифротексту для обчислення потоку ключа)

+ Дешифрувальний генератор, прийнявши n бітів, автоматично


синхронізується із шифрувальним генератором
+ Розсіювання статистики відкритого тексту
– Чутливий до розкриття повторною передачею
2. Генератори псевдовипадкових чисел

Стійкість потокових шифрів цілком залежить від якості й


криптографічної стійкості генератора псевдовипадкових
чисел, за допомогою якого отримується потік ключа

Генератор псевдовипадкових чисел (ГПВЧ) – це пристрій


або алгоритм, який за заданими параметрами генерує
послідовність псевдовипадкових чисел (ПВЧ)
2. Генератори псевдовипадкових чисел
Послідовність
псевдовипадкових чисел –
Послідовність випадкових
відтворювана послідовність,
чисел – послідовність,
сформована за допомогою
сформована за допомогою
детермінованого алгоритму
фізичного процесу, результат
(незалежно від способу його
якого є непередбачуваний і
реалізації), що володіє
не може бути повторно
статистичними властивостями
відтворений
послідовностей випадкових
чисел
2. Генератори псевдовипадкових чисел
Метою використання ГПВЧ у потокових шифрах є отримання
нескінченної ключової послідовності, за використання
відносно малої довжини самого початкового ключа.
Ключ, який породжує гаму також називають зародком (seed)
2. Генератори псевдовипадкових чисел

Найважливішою характеристикою ГПВЧ є довжина періоду


повторення, після якого випадкові числа, на виході ГПВЧ
почнуть повторюватися

Псевдовипадкову послідовність можна використовувати як


ключ тільки до повтору, інакше потоковий шифр виродиться в
нестійкий алгоритм звичайного XOR
2. Генератори псевдовипадкових чисел
Вимоги до ГПВЧ

1) Непередбачуваність (неможливо визначити наступне число з


1
імовірністю, більшою за , де 𝑚– потужність алфавіту генератора);
𝑚
2) Відтворюваність дозволяє повторити (за відомих початкових
значень) з абсолютною точністю послідовність на виході ГПВЧ в
довільний момент часу та довільну кількість разів;
3) Великий період повторення (настільки великий, що його
неможливо відтворити сучасними технічними засобами);
4) Числа, що генеруються мають бути статистично рівномірно
розподілені.
2. Генератори псевдовипадкових чисел
Лінійний конгруентний генератор (LCG)

Для обчислення чергового числа 𝑥𝑖+1 використовується


формула:
𝑥𝑖+1 = 𝑎 ∙ 𝑥𝑖 + 𝑏 𝑚𝑜𝑑 𝑚,
де 𝑎, 𝑏, 𝑚 – деякі константи, a 𝑥𝑖 – попереднє псевдовипадкове
число, a 𝑥0 – початкове значення (seed)

Якщо параметри LCG обрані правильно, то генератор буде


породжувати випадкові числа з максимальним періодом, що
дорівнює 𝑚
2. Генератори псевдовипадкових чисел
Приклад 2.1: 𝑎 = 5, 𝑏 = 3, 𝑚 = 11, 𝑥0 = 1.
𝑥1 = 5 ∙ 1 + 3 𝑚𝑜𝑑 11 = 8; 𝑥5 = 5 ∙ 4 + 3 𝑚𝑜𝑑 11 = 1;
𝑥2 = 5 ∙ 8 + 3 𝑚𝑜𝑑 11 = 10; 𝑥6 = 5 ∙ 1 + 3 𝑚𝑜𝑑 11 = 8;
𝑥3 = 5 ∙ 10 + 3 𝑚𝑜𝑑 11 = 9; 𝑥7 = 5 ∙ 8 + 3 𝑚𝑜𝑑 11 = 10;
𝑥4 = 5 ∙ 9 + 3 𝑚𝑜𝑑 11 = 4; 𝑥8 = 5 ∙ 10 + 3 𝑚𝑜𝑑 11 = 9.

Лінійні конгруентні генератори не рекомендують


використовувати, оскільки криптоаналітики навчилися
відновлювати всю послідовність ПВЧ із кількох значень
2. Генератори псевдовипадкових чисел
ГПВЧ на основі регістрів зсуву з лінійним зворотним зв'язком
(LFSR)
Зворотний зв’язок є функцією XOR певних бітів регістра, які
називають відводами (taps)
Наприклад, для 4-бітового LFSR
Розташування відводів для многочлен зворотного зв'язку:
зворотного зв'язку може 𝑥4 + 𝑥3 + 1
бути представлене x1 x2 x3 x4
многочленом з x0

коефіцієнтами 0 або 1
2. Генератори псевдовипадкових чисел
Алгоритм LFSR
1. У регістр записується початкове значення.
2. Обчислюється XOR відповідних бітів (відводів).
3. Обчислений біт записується до першої позиції регістру ліворуч.
4. Усі решта біт зсуваються на одну позицію праворуч.
5. Останній біт з правого боку усувається з регістру і стає черговим
бітом псевдовипадкової послідовності.
6. Алгоритм повторюється з 2 кроку.
2. Генератори псевдовипадкових чисел
Приклад 2.2:
Номер Внутрішній стан Результат обчислення Біт, псевдовипадкової
стану QRST ST послідовності
1 1011 0 1
2 0101 1 1
3 1010 1 0
4 1101 1 1
5 1110 1 0
6 1111 0 1
7 0111 0 1
8 0011 0 1
9 0001 1 1
10 1000 0 0
2. Генератори псевдовипадкових чисел

LFSR розміром n бітів може перебувати в одному з 2n–1 станів.


Тому, теоретично можна генерувати псевдовипадкову
послідовність із максимальним періодом 2n–1.
2. Генератори псевдовипадкових чисел
ГПВЧ на основі алгоритму BBS

Широке поширення в криптографії набув алгоритм Блюма –


Блюма – Шуба (від прізвищ авторів – L. Blum, M. Blum, M. Shub),
який називають ще генератором квадратичних лишків.

Послідовність, сформована за допомогою цього методу, має


статистичні властивості, близькі до генераторів випадкових
чисел, а метод є досить крипостійким
2. Генератори псевдовипадкових чисел
Алгоритм BBS
1. Обирають два великих простих числа 𝑝 та 𝑞, які конгруентні. При
діленні цих чисел на 4 повинен виходити однаковий залишок 3.
2. Обчислюється 𝑀 = 𝑝 ∙ 𝑞 – ціле число Блюма.
3. Вибирається інше випадкове ціле число 𝑥, взаємно просте з 𝑀.
4. Обчислюється 𝑥0 = 𝑥 2 𝑚𝑜𝑑 𝑀 – стартове число генератора.
5. На кожному n-му кроці обчислюється 𝑥𝑛+1 = 𝑥𝑛2 𝑚𝑜𝑑 𝑀.

6. Результатом n-го кроку є один (зазвичай молодший) біт числа 𝑥𝑛+1 .


2. Генератори псевдовипадкових чисел
Приклад 2.3: Нехай 𝑝 = 11, 𝑞 = 19, (переконуємося, що
11 𝑚𝑜𝑑 4 = 3, 19 𝑚𝑜𝑑 4 = 3).
Тоді 𝑀 = 𝑝 ∙ 𝑞 = 11 ∙ 19 = 209.
Виберемо 𝑥, взаємно просте з 𝑀: нехай 𝑥 = 3.
Обчислимо стартове число генератора 𝑥0 :
𝑥0 = 𝑥 2 𝑚𝑜𝑑 𝑀 = 32 𝑚𝑜𝑑 209 = 9 𝑚𝑜𝑑 209 = 9
Далі обчислимо перші десять чисел 𝑥𝑖 за алгоритмом BBS. Як
випадковий біт будемо брати молодший біт у двійковому записі
числа 𝑥𝑖 .
2. Генератори псевдовипадкових чисел
3. Потоковий шифр RC4
RC4 (Rivest Cipher 4, Ron's Code) –
потоковий шифр, який розробив
Рональд Рівест у 1987 р.

Шифр RC4 застосовувався в деяких


широко поширених стандартах і
протоколах таких, як WEP, WPA і TLS Рональд Лінн
(до 2015 року) Рівест
3. Потоковий шифр RC4
Ініціалізація матриці стану і масиву ключів

Матриця стану (256 байт) початково заповнюється значеннями:


S[0] = 0, S[1] = 1, S[2] = 2, …, S[254] = 254, S[255] = 255.
Ключем є послідовність байтів, що записується у тимчасовий
масив T:
Т[0], Т[1], Т[2], …, Т[254], Т[255].
Якщо ключ шифрування має точно 256 байтів, то байти
копіюються в масив T, інакше байти повторюються, поки не
заповниться масив T
3. Потоковий шифр RC4
Перестановка матриці стану на основі значень ключа

Кожен черговий елемент Si


обмінюється місцями з
елементом Sj, номер j якого
визначається сумою номера
елементу j, самого елементу Si
та елементу ключа Ti.
Значення лічильників i та j
спочатку дорівнюють 0.
3. Потоковий шифр RC4
Перестановка матриці стану і генерація ключового потоку

Два елементи матриці стану


міняються місцями на основі
двох індивідуальних змінних i
та j, що обчислюються за
відповідними формулами.
Потім сума значень елементів Si
та Sj визначає індекс t елементу
St, який використовуватиметься
як ключ k.
3. Потоковий шифр RC4
Генерація ключового потоку
Шифрування RC4
(ПВЧ) у RC4

При шифруванні байт K


додають за модулем 2 з
байтом відкритого тексту

Приклад роботи RC4


4. Інші потокові шифри
Потоковий шифр SNOW 2.0

Потоковий симетричний шифр SNOW 2.0 є генератором


ключових потоків, який використовує як вхідні дані 128
або 256-бітовий секретний ключ K і 128-бітовий вектор
ініціалізації IV. На сьогодні цей шифр є стандартизованим
та являє собою один з найбільш швидких програмно
орієнтованих потокових шифрів
4. Інші потокові шифри
Потоковий шифр Salsa 20

Програмно-орієнтований алгоритм Salsa 20 став


переможцем міжнародного конкурсу eSTREAM. Для
ініціалізації внутрішнього стану використовується ключ
довжиною 256 біт, 64-бітний nonce та 64-бітна позиція
блоку ключового потоку. Максимальна довжина
псевдовипадкової ключової послідовності дорівнює 270
біт
4. Інші потокові шифри
Потоковий шифр Trivium

Trivium – це симетричний апаратно-орієнтований


паралельний потоковий шифр. Trivium найбільш простий
шифр проекту eSTREAM, який демонструє відмінні
результати криптостійкості. Trivium призначений для
генерації 264 біт ключового потоку з 80 біт секретного
ключа і 80 біт вектору ініціалізації. Шифр є біт-
орієнтованим
4. Інші потокові шифри
Потоковий шифр Grain

Grain – синхронний поточний апаратно-орієнтований


шифр. Залежно від апаратної реалізації може бути біт-
орієнтованим або слово-орієнтованим. На вхід подається
ключ довжиною 80 біт та IV довжиною 64 біти. Довжина
ключового потоку, який може бути вироблений на одній
парі ключ/вектор – 244 біт

You might also like