мв лр зівкс

83
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ з курсу Захист інформації в компютерних системахдля студентів денної та заочної форм навчання спеціальності 7.091501 “Комп' ютерні системи та мережіЗатверджено на засіданні кафедри компютерних систем протокол 7 від 07.04.2010р. та Методичною радою ЧДТУ, протокол 49 від 11.05.2010 р. Черкаси 2010

Upload: sergiy-isaev

Post on 26-May-2015

186 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: мв лр зівкс

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ

з курсу “Захист інформації в комп’ютерних системах” для студентів денної та заочної форм навчання

спеціальності 7.091501 “Комп'ютерні системи та мережі”

Затверджено на засіданні кафедри комп‘ютерних систем протокол № 7 від 07.04.2010р. та Методичною радою ЧДТУ, протокол № 49 від 11.05.2010 р.

Черкаси

2010

Page 2: мв лр зівкс

Укладачі: Швидкий В.В., к.т.н., доцент Фауре Е.В., к.т.н. Лісіцина О.С. Рецензент: Рудницький В.М., д.т.н., професор

Методичні вказівки до виконання лабораторних робіт з курсу “Захист інформації в комп’ютерних системах” для студентів денної та заочної форм навчання спеціальності 7.091501 “Комп'ютерні системи та мережі” [Електронний ресурс] / Укл. В.В. Швидкий, Е.В. Фауре, О.С. Лісіцина М-во освіти і науки України, Черкас. держ. технол. ун-т. – Черкаси : ЧДТУ, 2010. – 83с.

Методичні вказівки призначені для користувачів, які хотіли б поповнити свої знання в

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

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

Методичні вказівки призначені для студентів, які навчаються за спеціальністю 7.091501 “Комп'ютерні системи та мережі”.

Е л е к т р о н н е н а в ч а л ь н е в и д а н н я

МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ

з курсу “Захист інформації в комп’ютерних системах” для студентів денної та заочної форм навчання

спеціальності 7.091501 “Комп'ютерні системи та мережі”

В авторській редакції

------------------------------------------------------------------------------------------------------------- Гарн. Times New Roman. Обл.-вид. арк 2,28. Реєстраційний № 923.

------------------------------------------------------------------------------------------------------------- Черкаський державний технологічний університет Свідоцтво про державну реєстрацію ДК № 896 від 16.04.2002 р.

бульвар Шевченка, 460, м. Черкаси, 18006.

Page 3: мв лр зівкс

3

ЗМІСТ ПЕРЕДМОВА ........................................................................................................... 4

ЗАГАЛЬНІ ВИМОГИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ.................... 5

ЛАБОРАТОРНА РОБОТА №1 БАЗОВІ ОПЕРАЦІЇ КРИПТОСИСТЕМ ТА ШИФРИ НА ЇХНІЙ ОСНОВІ .................................................................................. 6

ЛАБОРАТОРНА РОБОТА №2 ШИФРИ ЦЕЗАРЯ, ВІЖЕНЕРА, ВЕРНАМА ..... 14

ЛАБОРАТОРНА РОБОТА №3 ДОСЛІДЖЕННЯ СТАТИСТИЧНИХ ВЛАСТИВОСТЕЙ БІГРАМНИХ ШИФРІВ .......................................................... 22

ЛАБОРАТОРНА РОБОТА №4 КРИПТОСИСТЕМА DES. РЕЖИМ ПРОСТОЇ ЗАМІНИ .................................................................................................................. 27

ЛАБОРАТОРНА РОБОТА №5 КРИПТОСИСТЕМА DES. РЕЖИМ ЗЧЕПЛЕННЯ БЛОКІВ ........................................................................................... 38

ЛАБОРАТОРНА РОБОТА №6 КРИПТОСИСТЕМА DES. РЕЖИМИ ГАМУВАННЯ ........................................................................................................ 43

ЛАБОРАТОРНА РОБОТА №7 ВІДКРИТЕ ПОШИРЕННЯ КЛЮЧІВ В МЕРЕЖАХ ПЕРЕДАВАННЯ ДАНИХ.................................................................. 48

ЛАБОРАТОРНА РОБОТА №8 КРИПТОСИСТЕМА RSA................................... 55

ЛАБОРАТОРНА РОБОТА №9 ОРГАНІЗАЦІЯ ЕЛЕКТРОННОГО ЦИФРОВОГО ПІДПИСУ ...................................................................................... 61

ЛАБОРАТОРНА РОБОТА №10 КРИПТОСИСТЕМА ЕЛЬ-ГАМАЛЯ ............... 69

ЛАБОРАТОРНА РОБОТА №11 БЛОКУВАННЯ КАНАЛУ ВИТОКУ НЕБЕЗПЕЧНОГО СИГНАЛУ У ВІДКРИТИЙ РАДІОПРОСТІР......................... 76

ДОДАТОК А .......................................................................................................... 81

СПИСОК ВИКОРИСТАНОЇ ТА РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ .............. 82

Page 4: мв лр зівкс

4

ПЕРЕДМОВА

Дисципліна «Захист інформації в комп’ютерних системах» займає

важливе місце у підготовці студентів спеціальності 7.091501 «Комп’ютерні

системи та мережі». Вона спирається на основні поняття з теорії інформації та

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

застосовувало людство від появи письменства до сьогодення.

Метою викладання дисципліни є засвоєння основних принципів захисту

інформації під час збереження, обробки і передавання даних в комп’ютерних

системах і мережах; засвоєння методів і алгоритмів протидії доступу до

інформації з метою її несанкціонованого читання або модифікації.

Мета лабораторних робіт полягає в набутті навичок практичної роботи з

криптографічними перетвореннями інформації, оцінки якості алгоритму

шифрування на основі аналізу статистичних властивостей відкритих та

зашифрованих повідомлень, визначення параметрів технічних засобів

блокування каналу витоку небезпечного сигналу у відкритий радіопростір.

Page 5: мв лр зівкс

5

ЗАГАЛЬНІ ВИМОГИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ

Лабораторні роботи виконують підгрупи з 2-3 студентів протягом 4 годин

з оформленням і поданням звіту про виконання роботи.

До лабораторної роботи допускаються студенти, які:

- пройшли контроль викладачем ступеня підготовленості до виконання

поточної лабораторної роботи;

- захистили усі попередні виконані лабораторні роботи.

Лабораторні роботи захищаються в індивідуальному порядку.

Кожна підгрупа оформлює звіт про виконану лабораторну роботу на

аркушах формату А4 (210x297), що має відповідати вимогам ЄСКД, ЄСПД та

ISO 11801.

Виконання лабораторних робіт складається з таких етапів:

1. Проведення попереднього контролю підготовленості студентів до

виконання лабораторної роботи.

2. Захист попередніх робіт.

3. Виконання поточної роботи і отримання практичних результатів.

4. Оформлення звіту.

5. Оцінювання результатів роботи студента викладачем у процесі захисту

поточної лабораторної роботи.

Page 6: мв лр зівкс

6

Лабораторна робота №1

БАЗОВІ ОПЕРАЦІЇ КРИПТОСИСТЕМ ТА ШИФРИ НА ЇХНІЙ ОСНОВІ

Мета роботи:

– вивчення найпростіших операцій шифрування;

– набуття навиків створення ключів на основі таблиць підстановок і

перестановок;

– вивчення процесу зміни ентропії при криптографічних перетвореннях.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Сучасні алгоритми криптографічного захисту інформації базуються на

декількох найпростіших операціях, апробованих століттями розвитку

тайнопису.

Таких операцій дві:

– перестановки;

– підстановки (заміни).

Шифри, побудовані на основі цих операцій, відповідно, називаються

шифрами перестановки та шифрами замін, а шифри, що їх поєднують,

називають композиційними.

Перестановочні шифри будуються на основі:

1) перестановки біт (бітові перестановки);

2) перестановки символів тексту (байтові перестановки);

3) перестановки випадкових за розміром груп символів. Цей метод також

називають методом «тасування карт».

У перестановочних шифрах криптограма утворюється шляхом

перестановки біт, символів або груп символів за визначеним правилом, яке

задається таблицею перестановок.

Таблиця перестановок є ключем шифру.

Page 7: мв лр зівкс

7

Перестановочні шифри на основі перестановки біт будуються

наступним чином:

– біти символів відкритого тексту нумеруються в порядку їхнього

розташування в тексті (0,1,2……К);

– створюється таблиця перестановок (таблиця чисел 0…К,

розташованих у випадковому порядку). Ця таблиця є ключ шифрування.

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

Окремим випадком перестановки біт є їхній циклічний зсув.

Приклад.

Нехай алфавіт містить символи {A, B, C, D}, які закодовані рівномірним кодом

наступним чином:

Символ A B C D

Код 00 01 10 11

Послідовність біт при передаванні повідомлення DAC має такий вигляд: 110010.

Позиція символу в тексті 1 2 3 4 5 6

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

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

кільці цілих чисел за формулою ii M

β α= , де iβ – i-й елемент кільця лишків, α –

примітивний елемент, M – модуль. У якості модуля оберемо 7M = , а 3α = .

Послідовність елементів кільця лишків:

Номер елементу кільця 0 1 2 3 4 5

iβ 1 3 2 6 4 5

Таблиця перестановок біт:

Початкова позиція символу 1 2 3 4 5 6

Позиція після перетворення 1 3 2 6 4 5

Результат перетворення:

Позиція символу шифртексту 1 2 3 4 5 6

Шифртекст 1 0 1 1 0 0

Символьне представлення B D A

Page 8: мв лр зівкс

8

Перестановочні шифри на основі перестановки символів тексту

будуються наступним чином:

– символи відкритого тексту нумеруються в порядку їхнього

розташування в тексті (0,1,2……К);

– створюється таблиця перестановок (таблиця чисел 0…К,

розташованих у випадковому порядку). Ця таблиця є ключем шифрування.

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

Приклад.

Позиція символу в тексті 1 2 3 4 5 6 7 8 9 10 11 12

Відкритий текст к р и п т о з а х и с т

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

послідовності елементів кільця лишків у кільці цілих чисел. У якості модуля оберемо

13M = , а 7α = .

У цьому випадку послідовність елементів кільця лишків приймає вигляд:

Номер елементу кільця 0 1 2 3 4 5 6 7 8 9 10 11

iβ 1 7 10 5 9 11 12 6 3 8 4 2

Сформуємо таблицю перестановок:

Початкова позиція символу 1 2 3 4 5 6 7 8 9 10 11 12

Позиція після перестановки 1 7 10 5 9 11 12 6 3 8 4 2

На основі відкритого тексту й таблиці перестановок маємо:

Позиція символу шифртексту 1 2 3 4 5 6 7 8 9 10 11 12

Шифртекст к т х с п а р и т и о з

Перестановочні шифри на основі «тасування карт» будуються

наступним чином:

– символи відкритого тексту нумеруються у порядку їхнього

розташування в тексті (0,1,2……К);

– відрізок з (0,1,2……К) символів розділяється на сегменти випадкової

довжини, для чого створюється таблиця 1 довжин сегментів сумарної довжини,

рівної довжині відкритого тексту;

Page 9: мв лр зівкс

9

– створюється таблиця 2 перестановок сегментів.

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

2 перестановок сегментів.

Таблиця 1 довжин сегментів и таблиця 2 перестановок сегментів

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

«тасування карт» проводиться багаторазово, при цьому кількість циклів

«тасування» (раундів шифрування) тримається в секреті и є елементом ключа.

Таким чином, ключ складається з 3 елементів:

– таблиця 1 довжин сегментів;

– таблиця 2 перестановок сегментів;

– число циклів «тасування».

Приклад.

Позиція символу тексту 1 2 3 4 5 6 7 8 9 10 11 12

Відкритий текст к р и п т о з а х и с т

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

максимальну довжину сегменту оберемо, рівною 4. Таблиця 1 довжин сегментів сформуємо

за допомоги кільця лишків з параметрами 13M = и 7α = .

Таблиця 1 довжин сегментів:

Номер елементу кільця 0 1 2 3 4 5 6 7 8 9 10 11

41iβ + 2 4 3 2 2 4 1 3 4 1 1 3

Номер сегменту 1 2 3 4 5 - - - - - - -

Довжина сегменту 2 4 3 2 1 - - - - - - -

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

параметрами 13M = и 7α = .

Таблиця 2 перестановок сегментів:

Номер елементу кільця 0 1 2 3 4 5 6 7 8 9 10 11

51iβ + 2 3 1 1 5 2 3 2 4 4 5 3

Початкова позиція сегменту 1 2 3 - 4 - - - 5 - - -

Позиція після перестановки 2 3 1 - 5 - - - 4 - - -

Page 10: мв лр зівкс

10

Виконаємо два раунди шифрування.

1-й раунд:

Номер сегменту 1 2 3 4 5

Відкритий текст кр ипто зах ис т

Шифртекст зах кр ипто т ис

2-й раунд:

Номер сегменту 1 2 3 4 5

Шифртекст після 1 раунду за хкри пто ти с

Шифртекст пто за хкри с ти

Таким чином, отримаємо зашифроване методом тасування карт повідомлення:

птозахкристи.

Шифри замін будуються наступним чином:

– створюється відкритий алфавіт, символи алфавіту нумеруються

числами (0,1,2……К);

– створюється таблиця підстановок (таблиця чисел 0…К, розташованих у

випадковому порядку).

У шифрограмі символи відкритого тексту замінюються символами з

таблиці замін.

Термін «підстановка» (заміна) означає, що криптограма утворюється

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

таблиці замін. Таблиця замін є ключем шифрування.

Приклад.

Нехай відкритий алфавіт заданий наступним чином: Приклад алфавіту джерела для символів української мови

1 А 9 І 17 С 25 Щ 2 Б 10 К 18 Т 26 Ю 3 В 11 Л 19 У 27 Я 4 Г 12 М 20 Ф 28 Є 5 Д 13 Н 21 Х 29 Ь 6 Е 14 О 22 Ц 30 И 7 Ж 15 П 23 Ч 31 пробіл 8 З 16 Р 24 Ш 32 .

Page 11: мв лр зівкс

11

Відкритий текст к р и п т о з а х и с т

Номер символу в алфавіті 10 16 30 15 18 14 8 1 21 30 17 18

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

породженою конгруенц-генератором з параметрами 13K = , 3C = , 37M = . Беручи до

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

i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

j 1 4 6 32 28 22 18 3 30 11 23 31 24 7 8 21

i 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

j 5 19 16 14 25 20 29 2 17 27 9 26 13 12 15 10

Замінимо символи відкритого тексту на символи з таблиці замін:

Відкритий текст к р и п т о з а х и с т

Номер символу в алфавіті 10 16 30 15 18 14 8 1 21 30 17 18

Номер символу в табл. замін 11 21 12 8 19 7 3 1 25 12 5 19

Шифртекст л х м з у ж в а щ м д у

Відзначимо, що процедури підстановок і перестановок не руйнують

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

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

застосуваннях доповнюються операцією рандомізації – операцією вирівнювання

статистики. Операція рандомізації приводить статистику шифрповідомлення до

рівномірної та максимізує ентропію.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості. Визначити базові операції криптоалгоритмів.

2. Пройти попереднє опитування, яке стосується базових операцій

криптоалгоритмів, полів Галуа й операцій у них.

3. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

4. Кожна підгрупа:

− формує відкрите повідомлення (будь-який смисловий текст);

Page 12: мв лр зівкс

12

− обчислює ентропію відкритого тексту.

4. Кожна підгрупа:

− розробляє алгоритм перестановочного шифру на основі бітових (символи

кодуються рівномірним кодом), байтових перестановок, а також методу

«тасування карт»;

− створює свої ключі та шифрує повідомлення перестановочним шифром;

− обчислює ентропію ключа;

− обчислює ентропію шифртексту.

Примітка. У якості ключової послідовності використовувати кільце лишків у

кільці цілих чисел.

5. Кожна підгрупа:

− розробляє алгоритм шифру замін;

− створює свої ключі та шифрує повідомлення шифром замін;

− обчислює ентропію ключа;

− обчислює ентропію шифртексту.

Примітка. У якості генератора ключової послідовності використовувати

конгруенц-генератор.

Відкритий текст і ключі кожна підгрупа формує самостійно незбіжними з

текстом і ключами інших підгруп.

6. Виконати аналіз отриманих результатів.

7. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема та мета роботи.

2. Алгоритми шифрування (у вигляді блок-схем).

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

Page 13: мв лр зівкс

13

4. Шифртексти повідомлення, отримані в результаті криптографічних

перетворень за вказаними алгоритмами.

5. Статистика й ентропія відкритого тексту та шифртекстів.

6. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання, виявляються недоліки

базових криптоалгоритмів.

КОНТРОЛЬНІ ПИТАННЯ

1. Яка повинна бути мінімальна довжина ключа для підстановочного та

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

шифру?

2. Чи змінюють розглянуті криптографічні алгоритми статистику й ентропію

повідомлення? Чому?

3. Визначити методику злому підстановочного й перестановочного шифрів.

4. Сутність методу частотного аналізу.

5. Порівняти складність алгоритмів дешифрування підстановочного й

перестановочного шифрів.

6. Визначити особливості реалізації підстановочного й перестановочного

шифру на ЕОМ.

7. Порівняти складність реалізації шифрів, що базуються на перестановці

символів та методі «тасування карт».

Page 14: мв лр зівкс

14

Лабораторна робота №2

ШИФРИ ЦЕЗАРЯ, ВІЖЕНЕРА, ВЕРНАМА

Мета роботи:

– вивчення шифрів Цезаря, Віженера, Вернама та їхніх властивостей;

– набуття навиків формування ключів для цих шифрів і виконання

процедури шифрування;

– вивчення характеру зміни ентропії після виконання криптографічних

перетворень.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Криптографія виникла разом з писемністю. У історичних документах

древніх цивілізацій Індії, Єгипту, Месопотамії маються відомості про системи та

способи складання шифрованого листа. Так, у древньоіндійських рукописах

міститься виклад 64-х способів перетворення тексту. Серед них написання

знаків не за порядком, а врозкид за деяким правилом. Багато з наведених

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

прихованість перепису. Наведена система заміни літер. Згадується, що тайнопис

є одним з 64-х мистецтв, яким слід володіти як чоловікам, так і жінкам.

З цим періодом пов’язані такі імена, як полководець Лісандр, полководець

Еней, Полібій, Юлій Цезар та інші.

Шифр Цезаря

За свідоцтвами древньоримського історика Гай Юлій Цезар (102 або 100-

44 до н.е.) використовував його для тайного перепису. У шифрі Цезаря кожна

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

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

Цезар використовував зсув на три позиції.

Page 15: мв лр зівкс

15

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

(початкового) тексту в шифрограму виконується поворотом графа алфавіту на

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

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

таблиця замін, яка містить циклічно зсунутий початковий алфавіт.

Рис.2.1 Граф алфавіту

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

відбувається відповідно до наступної математичної моделі:

Bi = | Ai + K |N – рівняння шифрування;

Аi = | Вi – K |N – рівняння розшифрування,

де Ai – символ відкритого тексту,

Bi – символ шифртексту,

K – ключ шифрування,

i – номер символу в тексті ( ∞≤≤ i0 ),

N – об’єм алфавіту. Приклад. Необхідно зашифрувати слово «студент» шифром Цезаря. Для початку створимо алфавіт з 32 символів української мови. Пронумеруємо їх

числами 0…31. Символи української мови розташуємо в алфавіті в довільному порядку, як, наприклад, у таблиці 2.1.

Шифрування виконується наступним чином:

Початковий текст: С Т У Д Е Н Т Номер символу: 01 04 06 02 22 08 04 Ключ: 20 20 20 20 20 20 20 Новий код: 21 24 26 22 10 28 24

а б

в ю

я

Page 16: мв лр зівкс

16

Шифртекст: Ф З Р Е Ч Ж З

Таблиця 2.1

Конструкція алфавіту

Номер символу Символ Номер

символу Символ Номер символу Символ Номер

символу Символ

0 б 8 н 16 точка 24 з 1 с 9 ш 17 ю 25 м 2 д 10 ч 18 в 26 р 3 о 11 л 19 ц 27 х 4 т 12 п 20 і 28 ж 5 к 13 г 21 ф 29 ш 6 у 14 є 22 е 30 и 7 я 15 а 23 пробіл 31 ь

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

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

величиною зсуву алфавіту. Оскільки число різних зсувів на одиницю менше

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

Достатньо перебрати всі можливі величини зсуву – від 1 до 31 у випадку

українського алфавіту (табл. 2.1). Повідомлення буде розшифровано, як тільки

утвориться усвідомлюваний текст.

Суперпозиція двох операцій шифрування на ключах k1 и k2 є шифрування

на ключі k1+k2. У загальному випадку множина шифрувальних перетворень

шифру Цезаря утворює абелеву групу.

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

Шифр Віженера

Людству знадобилося не одна сотня років для того, щоб зрозуміти, що

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

з групи різних символів.

Вперше цей метод описав Джовані-Баттіста Беллазо у книзі у 1553 році,

проте у XIX столітті отримав ім’я Блеза Віженера.

Page 17: мв лр зівкс

17

У якості ключа використовується не одна літера, як у шифрі Цезаря, а

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

шифрів Цезаря з різними значеннями зсуву.

Математична модель шифрування-розшифрування для шифру Віженера

приймає вигляд:

Bi = | Ai + Kj |N – рівняння шифрування;

Аi = | Вi – Kj |N – рівняння розшифрування;

де Ai – символ відкритого тексту,

Bi – символ шифртексту,

Kj – символ ключової послідовності,

i – номер символу в тексті ( ∞≤≤ i0 ),

j – номер символу ключа, при цьому j=| i |L, де: L – довжина ключа,

N – об’єм алфавіту. Приклад. Нехай шифром Віженера необхідно зашифрувати слово «студент». У якості ключа

шифрування оберемо слово «Марія». Використаємо алфавіт, наведений у таблиці 2.1.

Початковий текст: С Т У Д Е Н Т Номер символу: 01 04 06 02 22 08 04 Ключ: М А Р І Я М А Сума за mod32: 26 19 0 22 29 01 19 Шифртекст: Р Ц Б Е Щ С Ц

Шифр Віженера заслужив свою репутацію за виняткову стійкість до

«ручного» злому. В XIX столітті Фрідріх Касіскі повністю зламав шифр, а деякі

досвідчені криптоаналітики іноді зламували шифр ще в XVI столітті. Гілберт

Вернам спробував поліпшити зламаний шифр, (він отримав назву «шифр

Вернама-Віженера» в 1918 році), але, незважаючи на те, що він зробив, шифр

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

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

Шифр Вернама (англ. One-time pad — схема одноразових блокнотів).

У 1917 році американський інженер фірми АТТ висунув ідею, що кожний

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

Page 18: мв лр зівкс

18

ключа повинна бути рівною довжині відкритого тексту, а ключ повинен бути

одноразовим. Для шифру Вернама рівняння шифрування-розшифрування

приймає вигляд:

Bi = | Ai + Ki |N – рівняння шифрування;

Аi = | Вi – Ki |N – рівняння розшифрування;

де Ai – символ відкритого тексту,

Bi – символ шифртексту,

Ki – символ ключової послідовності,

i – номер символу ( ∞≤≤ i0 ),

N – об’єм алфавіту, Приклад. Нехай шифром Вернама необхідно зашифрувати слово «студент». Алфавіт – з таблиці

2.1. У якості ключа будемо використовувати випадкову послідовність чисел.

Початковий текст: С Т У Д Е Н Т Номер символу: 01 04 06 02 22 08 04 Ключ: 28 13 06 22 07 23 17 Сума за mod32: 29 17 12 24 29 0 21 Шифртекст: Щ Ю Л З Щ Б Ф

У 1949 році Клод Шеннон опублікував роботу, в якій довів абсолютну

стійкість шифру Вернама. При цьому ключ повинен володіти трьома критично

важливими властивостями:

1) бути істино випадковим;

2) за довжиною бути не менше довжини відкритого тексту;

3) використовуватися тільки один раз.

Шифр Вернама, побудований з використанням ключа, що задовольняє

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

шифру збільшення числа перехоплених шифрограм не додає знань ані про

відкритий текст, ані про ключ шифрування.

Умови, яким повинен відповідати ключ, настільки сильні, що практичне

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

Page 19: мв лр зівкс

19

використовується для передавання повідомлень найвищої секретності.

Складність реалізації умов гарантованої стійкості пояснюється наступним:

- складно отримати ключ нескінченної довжини (такий ключ неможливо

отримати, якщо генератор випадкових чисел – скінченний автомат, а

генератор випадкових чисел на основі хаотичного руху електронів

характеризується температурною та часовою нестабільністю);

- складно забезпечити контроль одноразового використання ключа або його

фрагментів (для цього необхідно мати нескінченну пом’ять).

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

3. Кожна підгрупа:

− формує відкрите повідомлення (будь-який смисловий текст, який містить

150-200 символів);

− обчислює ентропію відкритого тексту.

4. Кожна підгрупа:

− формує ключ и виконує шифрування відкритого тексту шифром Цезаря;

− обчислює ентропію отриманого шифртексту.

5. Кожна підгрупа:

− формує ключ и виконує шифрування відкритого тексту шифром

Виженера;

− обчислює ентропію отриманого шифртексту.

6. Кожна підгрупа:

− формує ключ и виконує шифрування відкритого тексту шифром Вернама;

− обчислює ентропію отриманого шифртексту.

Примітка. У якості генератора ключової послідовності використовувати

генератор кільця лишків у кільці цілих чисел.

Page 20: мв лр зівкс

20

Відкритий текст і ключі кожна підгрупа формує самостійно незбіжними з

текстом і ключами інших підгруп.

7. Виконати аналіз отриманих результатів.

8. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема та мета роботи.

2. Алгоритми шифрування (у вигляді блок-схем).

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

4. Шифртексти повідомлення, отримані в результаті криптографічних

перетворень за вказаними алгоритмами.

5. Статистика й ентропія відкритого тексту та шифртекстів.

6. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання, визначаються можливі

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

КОНТРОЛЬНІ ПИТАННЯ

1. У чому відмінність операцій шифрування і розшифрування для шифрів

Цезаря, Віженера, Вернама?

2. Чи змінюють розглянуті криптографічні алгоритми статистику й ентропію

повідомлень?

3. Довжина ключа для шифрів Цезаря, Віженера, Вернама.

4. Швидкість зміни ключів для шифрів Цезаря, Віженера, Вернама.

5. Шифр Вернама. Труднощі практичної реалізації.

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

стійкість.

7. Чому шифр Вернама називають «схемою одноразових блокнотів»?.

8. Визначити можливу методику злому шифрів Цезаря, Віженера, Вернама.

Page 21: мв лр зівкс

21

Page 22: мв лр зівкс

22

Лабораторна робота №3

ДОСЛІДЖЕННЯ СТАТИСТИЧНИХ ВЛАСТИВОСТЕЙ БІГРАМНИХ

ШИФРІВ

Мета роботи:

− вивчення алгоритму біграмного шифрування;

– набуття навиків формування ключів для цих шифрів і виконання

процедури шифрування;

− дослідження статистичних властивостей відкритого тексту, ключової

послідовності, біграмного шифртексту;

− вивчення характеру зміни кількості інформації та ентропії для різних

ключів. Вибір на цій основі ключа шифрування.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Біграмне шифрування – це криптографічний алгоритм, призначений для

шифрування груп із двох символів (біграм).

Засновник біграмних шифрів — німецький абат Іоганн Трисемус, який у

1508 році в своїй роботі з криптології «Поліграфія» вперше відмітив можливість

шифрування біграмами, тобто двосимвольними поєднаннями.

Біграмний «Шифр Плейфера» використовувався Великобританією в роки

Першої світової війни.

Шифр Плейфера або квадрат Плейфера – ручна симетрична техніка

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

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

підстановки и в більш складних системах шифрування Віженера. Таким чином,

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

через труднощі з частотним аналізом. Він може бути проведений, але не для 26

можливих символів (латинський алфавіт), а для 26х26=676 можливих біграм.

Page 23: мв лр зівкс

23

Аналіз частоти біграм можливий, але є значно більш важким і вимагає набагато

більшого об’єму зашифрованого тексту.

Біграмний шифр «Подвійний квадрат» був винайдений англійцем

Чарльзом Уітстоном у 1854 році. Шифр Уітстона відкрив новий етап у історії

розвитку криптографії. Шифр "подвійний квадрат" використовує відразу дві

таблиці, розміщені по одній горизонталі, а шифрування йде біграмами, як у

шифрі Плейфера. Ці не дуже складні модифікації привели до появи на світ

якісно нової криптографічної системи ручного шифрування. Шифр "подвійний

квадрат" виявився дуже надійним і зручним та використовувався Німеччиною

навіть у роки Другої світової війни.

Пояснимо процедуру шифрування цим шифром на прикладі.

Нехай алфавіт обраний таким чином:

Таблиця 3.1 Алфавіт джерела

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 а б в г д е ж з і к л м н о п р 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 с т у ф х ц ч ш щ ю я є ь и прб .

Ключ шифрування зводиться до створення двох таблиць розмірності 8*4

(8 стовпців и 4 рядки), наприклад, наведеного нижче виду, тобто послідовності

символів алфавіту в довільному порядку.

Таблиця 3.2 Ключ шифрування

а 1 б 2 в 3 г 4 д 5 е 6 ж 7 з 8 . я ш ф р м з г і к л м н о п р прб ю ч у п л н в с т у ф х ц ч ш и є ц т о к е б щ ю я є ь и прб . 32 ь щ х с ж і д а

Ліва табл. Права табл.

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

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

таблиці, а другий символ – у правій таблиці. Потім подумки будують

Page 24: мв лр зівкс

24

прямокутник таким чином, щоб символи біграми лежали в його протилежних

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

шифртексту.

Якщо символи початкового повідомлення лежать у одному рядку, то і

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

- для першого символу біграми визначаємо номер стовпця з цим

символом у лівій таблиці (наприклад, 5 стовпець);

- у правій таблиці в цьому рядку в 5 стовпці знаходимо символ

шифртексту;

- для другого символу біграми у правій таблиці знаходимо стовпець, що

містить цей символ (наприклад, 7);

- символ зашифрованого тексту визначається за 7 стовпцем лівої таблиці.

Припустимо, що шифрується наступне повідомлення:

Виконую роботу. Люба.

Після розбиття повідомлення на біграми:

Ви ко ну ю_ ро бо ту ._ Лю ба ._

Шифрується біграма початкового тексту Ви. Буква В знаходиться в

стовпці 3 и рядку 1 лівої таблиці. Буква и знаходиться в стовпці 1 и рядку 3

правої таблиці. Це означає, що прямокутник утворюється рядками 1 и 3, а також

стовпцями 3 лівої таблиці и 1 правої таблиці. Отже, в біграму шифртексту

входять символ «.», розташований у стовпці 1 и рядку 1 правої таблиці, и буква

у, розташована в стовпці 3 и рядку 3 лівої таблиці, тобто отримуємо біграму

шифртексту .у.

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

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

букву біграми шифртекста беруть з правої таблиці в стовпці, що відповідає

першій букві біграми повідомлення – символ з 5 стовпця п. Друга буква біграми

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

Page 25: мв лр зівкс

25

біграми повідомлення – символ з 4 стовпця м. Тому біграма повідомлення ну

перетворюється в біграму шифртексту пм.

Аналогічним чином шифруються усі біграми повідомлення:

Повідомлення ви ко ну ю_ ро бо ту ._ лю ба ._

Шифртекст .у пт пм ьк пш рт тк ьз чк гю ьз

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

3. Кожна підгрупа формує алфавіт (на основі української, російської,

англійської мов) з 32 символів (включаючи пробіл – прб.).

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

не меншим 150-200 символів алфавіту.

5. Кожна підгрупа формує 3 ключі (3 таблиці шифрування):

− довільної послідовності символів алфавіту;

− конгруентних чисел;

− генерацією на ЕОМ випадкових чисел.

У кожній підгрупі ключі різні.

6. За правилами біграмного шифрування сформувати 3 шифртексти.

7. Виконати статистичний аналіз:

− відкритого тексту;

− ключових послідовностей;

− шифртекстів.

8. Визначити ключ, за якого досягається максимум невизначеності

шифртексту.

9. Виконати аналіз отриманих результатів.

10. Оформити звіт. Зробити висновки про результати виконаної роботи.

Page 26: мв лр зівкс

26

ЗМІСТ ЗВІТУ

1. Тема та мета роботи.

2. Алгоритм шифрування (у вигляді блок-схеми).

3. Алфавіт повідомлення, відкрите повідомлення.

4. 3 таблиці шифрування.

5. 3 шифртексти.

6. Результати статистичного аналізу, вибір ключа.

7. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Алгоритм біграмного шифрування.

2. Властивості біграмного шифрування.

3. Ключ біграмного шифрування.

4. Чи змінює біграмне шифрування статистику повідомлення та його

ентропію? Чому?

5. Який вплив ключів шифрування на зміну статистики повідомлення?

6. Як визначити частоту зміни ключів для біграмного шифрування?

7. Особливості реалізації алгоритму біграмного шифрування на ЕОМ.

8. Визначити можливу методику злому біграмних шифрів. Ефективність

частотного аналізу.

Page 27: мв лр зівкс

27

Лабораторна робота №4

КРИПТОСИСТЕМА DES. РЕЖИМ ПРОСТОЇ ЗАМІНИ

Мета роботи:

– вивчення алгоритму криптографічного перетворення DES;

– набуття навиків шифрування за стандартом DES у режимі простої заміни;

– дослідження процесу зміни ентропії після виконання криптографічних

перетворень.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

DES (Data Encryption Standard) – симетричний алгоритм блокового

шифрування. DES розроблений фірмою IBM і затверджений урядом США у

1977 році як офіційний стандарт (FIPS 46-3).

Для DES рекомендовано декілька режимів:

• режим електронної кодової книги ECB (режим простої заміни),

• режим зчеплення блоків СВС,

• режим зворотного зв’язку по виходу OFB (режим простого гамування),

• режим зворотного зв’язку по шифртексту CFB (режим посиленого

гамування).

У цій лабораторній роботі розглянемо перший з перерахованих режимів

роботи DES – режим простої заміни.

Алгоритм DES розроблений для криптографічного перетворення даних

розрядністю 64 біти на основі 64-бітового ключа. Розшифровування

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

інверсним по відношенню до процесу шифрування даних.

Процес шифрування даних пояснюється рис. 4.1.

Page 28: мв лр зівкс

28

Рис. 4.1. Блок-схема алгоритму DES

Спочатку 64 біти вхідної послідовності переставляються у відповідності

до таблиці. 4.1. Таким чином, 58-й біт вхідної послідовності стає 1-м бітом, біт

50 – бітом 2 і т.д.

Таблиця 4.1 Початкова перестановка

58 60 62 64 57 59 61 63

50 52 54 56 49 51 53 55

42 44 46 48 41 43 45 47

34 36 38 40 33 35 37 39

26 28 30 32 25 27 29 31

18 20 22 24 17 19 21 23

10 12 14 16 9 11 13 15

2 4 6 8 1 3 5 7

Отримана послідовність біт розділяється на дві послідовності: L(0) і R(0),

кожна з яких містить 32 біти. Після цього виконується ітеративний процес

Page 29: мв лр зівкс

29

шифрування, який описується наступними формулами (f – функція

шифрування):

L (i) = R (i-1) i = 1, 2, ..., 16;

R (i) = L (i -1) + f (R (i -1), K (i)) i = 1, 2, ..., 16.

Аргументами функції шифрування є послідовність R, отримана на

попередньому кроці ітерації, і 48-бітовий ключ K(i), який є результатом функції

перетворення 64-бітового ключа шифрування. Детально функція шифрування і

алгоритм отримання ключів K(i) описані нижче.

На останньому кроці ітерації будуть отримані послідовності L(16) і R(16),

які конкатенуються в 64-бітову послідовність L(16) і R(16). Після цього

отримана 64-бітова послідовність переставляється у відповідності до таблиці

4.2.

Таблиця 4.2 Кінцева перестановка

40 39 38 37 36 35 34 33

8 7 6 5 4 3 2 1

48 47 46 45 44 43 42 41

16 15 14 13 12 11 10 9

56 55 54 53 52 51 50 49

24 23 22 21 20 19 18 17

64 63 62 61 60 59 58 57

32 31 30 29 28 27 26 25

Отримана послідовність з 64 біт і буде зашифрованою вхідною

послідовністю.

Процес розшифровування даних є інверсним по відношенню до процесу

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

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

до таблиці 4.2, а потім над послідовністю біт L(16) R(16) виконуються ті ж дії,

що і в процесі шифрування, але в зворотному порядку. Ітеративний процес

розшифровування може бути описаний наступними формулами:

R(i-1)= L(i) i = 16, 15, ..., 1;

L(i-1)= R(i)+ f (L(i),K(i)) i = 16, 15, ..., 1.

Page 30: мв лр зівкс

30

На останньому кроці ітерації будуть отримані послідовності L(0) і R(0), які

конкатенуються в 64-бітову послідовність L(0) R(0). У отриманій послідовності

64 біта переставляються у відповідності до таблиці 4.1. Результат такого

перетворення – вихідна послідовність біт (розшифроване 64-бітове значення).

Функція шифрування f(R,K) схематично показана на рис. 4.2.

Для обчислення значень функції f використовується функція розширення

E (з 32 біт до 48), функції S(1), S(2) ..., S(8) (перетворення 6-бітового числа в 4-

бітове) і функція Р (перестановка біт у 32-бітовій послідовності). Наведемо

визначення цих функцій. Аргументами функції шифрування є R (32 біта) і K (48

біт). Результат виконання функції E(R) є 48-бітове число, яке складається за

модулем 2 з числом К.

Рис 4.2. Блок-схема функції шифрування f

Таким чином, отримується 48-бітова послідовність, яка розглядається, як

конкатенація 8 рядків завдовжки по 6 біт, тобто (В(1) В(2) В(3) В(4) В(5) В(6)

В(7) В(8)). Результат функції S(i)(B(i)) – 4-бітова послідовність, яку

позначатимемо L(i). У результаті конкатенації всіх 8 отриманих послідовностей

L(i) маємо 32-бітову послідовність L = L(1) L(2) L(3) L(4) L(5) L(6) L(7) L(8).

Нарешті, для отримання результату функції шифрування треба переставити біти

послідовності L. Для цього застосовується функція перестановок P(L).

Page 31: мв лр зівкс

31

Функція розширення Е, що виконує розширення 32 біт до 48,

визначається табл. 4.3. У відповідності до цієї таблиці перші три біта Е(R) – це

біти 32, 1, 2, а останні – 31, 32, 1.

Таблиця 4.3 Функція розширення Е

32 4 8 12 16 20 24 28

1 5 9

13 17 21 25 29

2 6

10 14 18 22 26 30

3 7

11 15 19 23 27 31

4 8

12 16 20 24 28 32

5 9

13 17 21 25 29 1

Функція S(i), яка перетворює 6-бітові числа в 4-бітові, визначається табл. 4.4.

Таблиця 4.4 Функція перетворення S(i)

S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4 7 13 4 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

Продовження табл. 4.4

S7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

Page 32: мв лр зівкс

32

13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Для табл. 4.4 потрібні додаткові пояснення. Кожна з функцій S(i)

перетворює 6-бітовий вхід у 4-бітовий вихід за наступним алгоритмом:

• перший і останній біти вхідної послідовності визначають номер рядка k;

• другий, третій, четвертий і п'ятий біти вхідної послідовності задають

номер колонки q;

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

знаходиться на перетині рядку k і колонки q.

Функція перестановки біт P(L), що також використовується для

визначення функції шифрування, задається значеннями, наведеними в табл. 4.5.

У послідовності L 32 біти переставляються так, щоб біт 16 став першим бітом,

біт 7 – другим і т.д.

Таблиця 4.5 Функція перестановки P

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14

32 27 3 9 19 13 30 6 22 11 4 25

Для завершення опису алгоритму шифрування даних залишилося навести

алгоритм отримання ключів К(i), i = 1,2,...,16, розмірністю в 48 біт. Ключі К(i)

визначаються з 64-бітового ключа шифрування, як це показано на рис. 4.3.

Page 33: мв лр зівкс

33

Рис. 4.3. Блок-схема алгоритму формування ключів

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

вибору певних біт і їхньої перестановки, як це показано в табл. 4.6. Причому,

перші 4 рядки визначають, як обираються біти послідовності С(0) (першим

бітом послідовності С(0) буде біт 57 ключа шифру, потім біт 49 і т.д., а

останніми – біти 44 і 36 ключа), а наступні чотири рядки – як обираються біти

послідовності D(0) (тобто послідовність D(0) складатиметься з бітів 63, 55, ...,

12, 4 ключа шифру).

Таблиця 4.6 Функція перестановки і вибору послідовності В

57 49 41 33 25 17 9 1 58 50 42 34 26 18

10 2 59 51 45 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22

14 6 61 53 45 37 29 21 13 5 28 20 12 4

Як видно з табл. 4.6, для генерації послідовностей С(0) і D(0) не

використовуються біти 8, 16, 24, 32, 40,48, 56 і 64 ключа шифру. Ці біти не

впливають на шифрування і можуть бути використані для інших цілей

(наприклад, для контролю парності). Таким чином, насправді ключ шифрування

є 56-бітовим.

Page 34: мв лр зівкс

34

Після визначення С(0) і D(0) рекурсивно визначаються C(i) і D(i), i = 1, 2,

..., 16. Для цього застосовуються операції зсуву вліво на один або два біти

залежно від номера кроку, як це показано в табл. 4.7.

Таблиця 4.7 Функція зсуву S(i)

Номер ітерації

Кількість зсувів

Номер ітерації

Кількість зсувів

1 1 9 1 2 1 10 2 3 2 11 2 4 2 12 2 5 2 13 2 6 2 14 2 7 2 15 2 8 2 16 1

Операції зсуву виконуються для послідовностей С(i) і D(i) незалежно.

Наприклад, послідовність С(3) отримується шляхом зсуву вліво на дві позиції

послідовності С(2), а послідовність D(3) – шляхом зсуву вліво на дві позиції

послідовності D(2). Слід мати на увазі, що виконується циклічний зсув уліво.

Ключ K(i), що визначається на кожному кроці ітерації, є результатом

вибору певних біт з 56-бітової послідовності C(i) D(i) та їхньої перестановки.

Іншими словами: K(i)=K(C(i) D(i)), де функція K визначається даними,

наведеними в табл. 4.8.

Таблиця 4.8 Функція перестановки і вибору K 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

Як випливає з табл. 4.8, перший біт K(i) – це 14-й біт послідовності

C(i) D(i), другий – біт 17-й, останній – біт 32-й.

Page 35: мв лр зівкс

35

Визначимо стійкість криптоалгоритму до впливу помилок каналу зв'язку.

Відзначимо, що DES – блоковий шифр, де кожен блок даних шифрується

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

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

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

унаслідок чого будь-яка помилка каналу даних призводить до поширення

впливу одного помилкового біта даний на всі символи блоку, включаючи (як

наслідок виконання замін) розмноження помилок до такої міри, що в межах

блоку ймовірність помилки стає рівною 0,5. Таким чином, одна помилка у

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

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

3. Кожна підгрупа:

− формує відкрите повідомлення (будь-який смисловий текст, що

складається з 24 символів);

− кодує символи відкритого тексту кодами ASCII. Розширена таблиця

ASCII наведена в додатку А;

− обчислює ентропію відкритого тексту;

− формує ключ шифрування, що складається з 64 біт (8 символів в коді

ASCII).

8. Кожна підгрупа:

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

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

допускається не менше 3;

− обчислює ентропію шифртексту;

Page 36: мв лр зівкс

36

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

таблиці ASCII кодів.

Відкритий текст і ключі кожна підгрупа формує самостійно незбіжними з

текстом і ключами інших підгруп.

9. Виконати аналіз отриманих результатів.

10. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Алгоритм шифрування (у вигляді блок-схеми).

3. Відкритий текст. Ключ шифрування з зазначенням процедури його

отримання.

4. Проміжні результати декількох раундів шифрування.

5. Шифртекст повідомлення.

6. Статистика й ентропія відкритого тексту та шифртексту.

7. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Блокове і потокове шифрування. Сфери застосування. Переваги та недоліки.

2. Переваги та недоліки алгоритму шифрування DES.

3. Режими роботи DES. Їхні властивості та відмінності. Сфери застосування.

4. Трудомісткість операцій шифрування і розшифрування для алгоритму DES у

режимі простої заміни.

5. Чи зміниться шифртекст, якщо всі біти відкритого тексту і ключа будуть

нульовими?

6. Основна функція шифрування DES (функція Фейстеля).

Page 37: мв лр зівкс

37

7. Слабкі та частково слабкі ключі DES.

8. Криптоаналіз шифру DES за допомогою словника.

Page 38: мв лр зівкс

38

Лабораторна робота №5

КРИПТОСИСТЕМА DES. РЕЖИМ ЗЧЕПЛЕННЯ БЛОКІВ

Мета роботи:

– вивчення алгоритму криптографічного перетворення DES;

– набуття навиків шифрування за стандартом DES у режимі зчеплення

блоків;

– вивчення процесу зміни ентропії після виконання криптографічних

перетворень.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Нагадаємо, що DES (Data Encryption Standard) – симетричний алгоритм

блокового шифрування, розроблений фірмою IBM і затверджений урядом США

в 1977 році як офіційний стандарт (FIPS 46-3).

Для DES рекомендовано 4 режими, перераховані в попередній

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

Недоліком блокових шифрів, що працюють в режимі простої заміни, є те,

що однакові блоки відкритого тексту дають однакові блоки шифртексту. Для

усунення цього недоліку використовують зчеплення блоків перед

шифруванням, тобто складання за модулем два наступні блоки відкритого

тексту з попереднім блоком шифртексту.

Така процедура дозволяє домогтися сильного ефекту розсіювання –

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

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

підвищенні криптостійкості цього режиму шифрування. Іншим наслідком

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

зв'язку одна помилка в каналі передавання шифрповідомлення призводить до

повного спотворення всього подальшого потоку даних. Великий трек помилки

Page 39: мв лр зівкс

39

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

інформаційних потоків з великою природною надмірністю. З іншого боку, у

зв'язку з тим, що не існує кодів, що гарантують 100% виявлення помилок (не

кажучи про їх виправлення), у каналах передавання даних важко визначити

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

поліному (величину надмірності, що вноситься, або допустиме значення втрати

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

передавання даних вельми проблематично.

У той же час, режим зчеплення блоків дуже ефективний для вироблення

імітовставки.

Блок-схема алгоритму шифрування DES у режимі зчеплення блоків

наведена на рис. 5.1.

Рис. 5.1. Блок-схема алгоритму шифрування DES у режимі зчеплення блоків

На рис. 5.1 введені наступні позначення: ВТ – відкритий текст; ШП –

шифрперетворення; ШТ – шифртекст; С0 – 64-бітовий початковий вектор.

Поблокова схема шифрування представлена на рис. 5.2.

Page 40: мв лр зівкс

40

ВБ1

+

ШП

ШБ1

С0

ВБ2

+

ШП

ШБ2

...

Рис. 5.2. Блок-схема алгоритму шифрування DES у режимі зчеплення блоків На рис. 5.2 позначені блоки перших двох ітерацій: ВБ1, ВБ2 – перший і

другий блоки відкритого тексту відповідно; ШБ1, ШБ2 – перший і другий блоки

шифртексту відповідно; вектор С0 тримається в таємниці.

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

алгоритмом, аналогічним алгоритму для режиму простої заміни.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

3. Кожна підгрупа:

− використовує відкрите повідомлення, сформоване для реалізації режиму

простої заміни (будь-який смисловий текст, що складається з 24

символів);

− кодує символи відкритого тексту кодами ASCII (таблиця ASCII наведена в

додатку А);

− обчислює ентропію відкритого тексту;

− формує 64-бітовий початковий вектор С0 (8 символів у коді ASCII);

− формує 64-бітовий ключ шифрування (8 символів у коді ASCII).

4. Кожна підгрупа:

Page 41: мв лр зівкс

41

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

зчеплення блоків. Кількість ітерацій при перетворенні кожного блоку

допускається не менше 3;

− обчислює ентропію шифртексту;

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

таблиці ASCII кодів.

Відкритий текст і ключі кожна підгрупа формує самостійно незбіжними з

текстом і ключами інших підгруп.

5. Виконати аналіз отриманих результатів.

6. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Алгоритм шифрування (у вигляді блок-схеми).

3. Відкритий текст. Початковий вектор. Ключ шифрування.

4. Проміжні результати декількох раундів шифрування.

5. Шифртекст повідомлення.

6. Статистика й ентропія відкритого тексту і шифртексту.

7. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Блокове і потокове шифрування. Сфери застосування. Переваги та недоліки.

2. Переваги та недоліки алгоритму шифрування DES.

3. Режими роботи DES. Їхні властивості та відмінності. Сфери застосування.

4. Доцільність використання режиму зчеплення блоків.

5. Трудомісткість операцій шифрування і розшифрування для алгоритму DES у

режимі зчеплення блоків.

Page 42: мв лр зівкс

42

6. Прикладні застосування режиму зчеплення блоків DES.

7. Вимоги до каналу зв’язку при передаванні даних, зашифрованих за

алгоритмом DES у режимі зчеплення блоків.

8. Трек помилки для різних режимів роботи DES.

Page 43: мв лр зівкс

43

Лабораторна робота №6

КРИПТОСИСТЕМА DES. РЕЖИМИ ГАМУВАННЯ

Мета роботи:

– вивчення алгоритму криптографічного перетворення DES;

– набуття навиків шифрування за стандартом DES у режимах простого та

посиленого гамування;

– вивчення процесу зміни ентропії після виконання криптографічних

перетворень.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Гамування – метод шифрування, побудований на «накладенні»

псевдовипадкової послідовності (ПВП) – гами – на відкритий текст. Звичайно це

підсумовування в якомусь кінцевому полі (наприклад, у полі GF(2)), тоді

рівняння шифрування має вигляд:

Y X γ= ⊕ , (6.1)

де Y – шифртекст (ШТ);

Х – відкритий текст (ВТ);

γ – гама шифру (ключ шифрування).

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

чого рівняння розшифрування має вигляд:

Y X Xγ γ γ⊕ = ⊕ ⊕ = . (6.2)

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

синхронізації гам на передавальній і приймальній сторонах. Організація

частотного ділення каналу на канал даних і канал синхронізації веде до великих

втрат при виділенні каналів, а також до втрат пропускної спроможності каналу.

Часове ділення каналів даних і синхронізації призводить до необхідності

Page 44: мв лр зівкс

44

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

пропускної спроможності.

Схема криптосистеми, що виконує шифрування простим гамуванням,

представлена на рис. 6.1.

а) б)

Рис. 6.1. Схема шифрування у режимі простого гамування: а – у передавачі; б – у приймачі.

Режим гамування криптосистеми DES є режимом зворотного зв'язку по

виходу (OFB — Output Feed Back).

Блок-схема алгоритму шифрування DES у режимі простого гамування

наведена на рис. 6.2.

Рис. 6.2. Блок-схема алгоритму шифрування DES у режимі простого гамування

Вектор початкового завантаження (ВПЗ на рис. 6.2) визначає гаму і

тримається в таємниці. Криптографічні перетворення в блоках

шифрперетворення (ШП) виконуються за алгоритмом, аналогічним алгоритму

для режиму простої заміни.

Поблокова схема шифрування DES у режимі простого гамування

представлена на рис. 6.3.

Page 45: мв лр зівкс

45

Рис. 6.3. Блок-схема алгоритму шифрування DES в режимі простого гаммирования

У режимі посиленого гамування криптосистеми DES присутній зворотний

зв'язок по шифртексту (CFB — Cipher Feed Back).

Блок-схема алгоритму шифрування DES у режимі посиленого гамування

наведена на рис. 6.4.

Рис. 6.4. Блок-схема алгоритму шифрування DES у режимі посиленого гамування

Поблокова схема шифрування DES у режимі посиленого гамування

представлена на рис. 6.5.

Рис. 6.5. Блок-схема алгоритму шифрування DES у режимі посиленого гамування

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

шифртексту призводить до спотворення одного біту у відкритому тексті. У

Page 46: мв лр зівкс

46

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

спотворення всього подальшого потоку даних.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

3. Кожна підгрупа:

− використовує відкрите повідомлення, сформоване для реалізації режиму

простої заміни (будь-який смисловий текст, що складається з 24

символів);

− кодує символи відкритого тексту кодами ASCII (таблиця ASCII наведена в

додатку А);

− обчислює ентропію відкритого тексту;

− формує 64-бітовий вектор початкового завантаження ВПЗ для генерації

гами (8 символів у коді ASCII);

− формує 64-бітовий ключ шифрування (8 символів у коді ASCII).

4. Кожна підгрупа:

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

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

гами допускається не менше 3;

− обчислює ентропію гами та шифртексту;

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

таблиці ASCII кодів.

5. Кожна підгрупа:

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

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

гами допускається не менше 3;

− обчислює ентропію гами та шифртексту;

Page 47: мв лр зівкс

47

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

таблиці ASCII кодів.

Відкритий текст і ключі кожна підгрупа формує самостійно незбіжними з

текстом і ключами інших підгруп.

6. Виконати аналіз отриманих результатів.

7. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

8. Алгоритм шифрування (у вигляді блок-схеми).

2. Відкритий текст. Вектор початкового завантаження. Ключ шифрування.

3. Проміжні результати шифрування.

4. Шифртекст повідомлення.

5. Статистика і ентропія відкритого тексту, ключа і шифртексту.

6. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Блокове і потокове шифрування. Сфери застосування. Переваги та недоліки.

2. Переваги та недоліки алгоритму шифрування DES.

3. Режими роботи DES. Їхні властивості та відмінності. Сфери застосування.

4. Трудомісткість операцій шифрування і розшифрування для алгоритму DES у

режимах гамування.

5. Трек помилки для різних режимів роботи DES.

6. Вимоги до каналу зв’язку при передаванні даних, зашифрованих за

алгоритмом DES у режимах простого та посиленого гамування.

Page 48: мв лр зівкс

48

Лабораторна робота №7

ВІДКРИТЕ ПОШИРЕННЯ КЛЮЧІВ У МЕРЕЖАХ ПЕРЕДАВАННЯ

ДАНИХ

Мета роботи: опанувати методику організації розсилки секретних

ключів відкритими каналами.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Відкрите поширення ключів у мережах передавання даних є можливим

завдяки алгоритму Діффі – Хеллмана.

Алгоритм Діффі – Хеллмана – це алгоритм, що дозволяє двом сторонам

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

прослухування, але захищений від підміни канал зв'язку. Процедура отримання

ключа за алгоритмом Діффі–Хеллмана передує сеансу обміну секретними

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

Отриманий ключ використовується в криптосистемах з симетричним сеансним

ключем.

Алгоритм був уперше опублікований Уітфілдом Діффі та Мартіном

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

Для забезпечення конфіденційного обміну в мережах з відкритими

каналами зв'язку використовують так звану односторонню функцію, тобто таку

функцію f(x), що для будь-якого “х” з області визначення f(x) легко

обчислюється, тоді як зворотну до неї функцію 1( )x f y−= обчислити

неможливо або, принаймні, дуже важко.

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

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

Одностороння функція в кільці цілих чисел має вигляд :

Page 49: мв лр зівкс

49

( ) XM

f x α= , (7.1)

де M

Xα – лишок числа αх по модулю М.

Пряме обчислення цієї функції для будь-якого цілого Х не є складним.

Приклад. Для α=7 і М=967 необхідно обчислити f(х) для х=753. Спочатку представимо 753=1·29 +0·28 +1·27+1·26+1·25+1·24+0·2 3+0·22+0·21+1·20. Тоді ( ) 753 512 128 64 32 16

967 967753 7 7 7 7 7 7 7f = = ⋅ ⋅ ⋅ ⋅ ⋅

Тепер обчислимо квадратичні лишки: 1

9677 7=

2

9677 49=

4 2

967 9677 49 467= =

8 2

967 9677 467 514= =

16 2

967 9677 514 205= =

32 2

967 9677 205 444= =

64 2

967 9677 444 835= =

128 2

967 9677 835 18= =

256 2

967 9677 18 324= =

512 2

967 9677 324 540= = .

Знайдемо f(753)=

967

1163264128512

967

753 7777777 ⋅⋅⋅⋅⋅= =│540·18·835·444·205·7│967=243.

Таким чином, пряме обчислення функції f(753) не є складним і вимагає не більше 14 множень, зворотне обчислення (знаходження числа Х за відомим примітивним елементом, модулем і β=243) обчислювально складно або просто неможливе.

У формулі (7.1) α є примітивним елементом кільця лишків по модулю М в

кільці цілих чисел. Нагадаємо, що кільце – це алгебраїчна система, в якій

визначено три операції:

- додавання;

- віднімання;

- множення.

Множина цілих чисел утворює кільце.

Елементи кільця можуть бути обчислені за формулами (7.2) або (7.3):

Page 50: мв лр зівкс

50

jj M

α α= , (7.2)

1j j Mα α α−= ⋅ . (7.3)

Максимальне число елементів у кільці дорівнює М-1. Це означає, що

період кільця лишків у кільці цілих чисел, утвореному примітивним елементом,

рівний Т=М–1.

Приклад Для М=13 і α =7 отримаємо: α0=|70|13=1 α7=|77|13=6 α1=|71|13= 7 α8=|78|13=3 α2=|72|13=10 α9=|79|13=8 α3=|73|13= 5 α10=|710|13=4 α4=|74|13= 9 α11=|711|13=2 α5=|75|13=11 α12=|712|13=1 α6=|76|13=12 α 13=|713|13=7 Оскільки при α=7 період Т=М-1=12, це означає, що число 7 є примітивним елементом

кільця лишків по модулю 13. У цьому кільці існують прямі ( jα ) і зворотні елементи ( 1

jα − ) такі, що

1 1j jα α −⋅ = .

Обчислення зворотних елементів проводиться за процедурами,

заснованими на алгоритмі Евкліда з використанням розкладання числа j

у

ланцюговий дріб.

Сутність цього алгоритму зводиться до того, що передостанній

наближений дріб 1

1

n

n

QP визначає зворотні елементи, при цьому 1

1j nPα −−= , якщо

ланцюговий дріб непарного порядку, і 11j nM Pα −

−= − , якщо ланцюговий дріб

парного порядку.

Приклад. Обчислимо α2

-1.

313

111031

1013

2 ++=+==

αM ; 1

1

1 413 3

n

n

PQ

= + = ;

Page 51: мв лр зівкс

51

Ланцюговий дріб непарного порядку.. Це означає, що α2

-1=4 и | α2 α2-1 | М = |10х4| 13=1.

Тепер повернемося до організації ключового обміну. Нехай усім

користувачам мережі відомі α і М.

Кожен користувач (наприклад, користувач “1”) обирає ціле число Х1<М.

Це означає, що він і лише він несе відповідальність за його розголошування.

Далі він обчислює

11

X

MY α= .

Y1 не тримається в таємниці, а розміщується у відкритому довіднику.

Аналогічно користувач “2” обирає ціле число Х2<М. Це означає, що він і лише

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

22

X

MY α= .

Y2 не тримається в таємниці, а розміщується у відкритому довіднику.

Надалі, якщо користувачі ”1” і ”2” бажають установити конфіденційний

зв'язок в мережі з відкритими каналами, то абонент ”1” візьме з довідника Y2 і

обчислить

1 2 112 2

X X X

M MZ Y α= = ,

а абонент ”2” візьме з довідника Y1 і обчислить

2 1 221 1

X X X

M MZ Y α= = .

Неважко помітити, що Z12= Z21. Це означає, що число Z12 може бути

використане як ключ криптоустановки абонента “1”. У свою чергу, число Z21

може бути використане в якості ключа криптоустановки абонента “2”. Крім

того, числа Z12 і Z21 також можуть бути використані як покажчик координати

розміщення сеансного ключа в деякій секретній книзі ключів. Слід звернути

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

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

аутентифікації. Аутентифікація є підтвердження того факту, що абонент “1”

Page 52: мв лр зівкс

52

дійсно працює з абонентом “2” і навпаки, абонент “2” має бути впевнений, що

працює з абонентом “1”.

Приклад. Нехай М=13 α=7. Нехай абонент “1” обрав Х1=5, а абонент “2” обрав Х2=8. Ці числа вони тримають у

таємниці. Абонент “1” обчислює Y1=|75|13=α5=11,

а абонент “2” Y2=|78|13=α8=3.

Ці числа містяться у відкритому довіднику. Тепер, якщо абоненти 1 і 2 бажають встановити захищений зв'язок, абонент “1” обчислює

1 512 2 13

3 9XM

Z Y= = = , а абонент “2” обчислює

2 821 1 13

11 9XM

Z Y= = = . Таким чином, користувачі “1” і “2” зовсім незалежно один від одного обчислюють

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

Відносно стійкості такої криптосистеми відзначимо, що якщо

противникові відомі α‚ М і в його розпорядженні знаходиться відкритий

довідник (чисел Yj), то простим перебором Х=1,2,3..М при обчисленні Y

визначаються Xj усіх абонентів замкнутого угрупування або Xj тих абонентів

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

виводи:

– стійкість криптосистеми, в якій Ζ є посиланням на секретну книгу, вище

за стійкість криптосистеми, в якій Ζ є ключем шифрування;

– криптостійкість системи прямо пропорційна розрядності модуля М і

часу обчислення одного варіанту числа Х. Потрібна розрядність модуля М може

бути визначена за формулою

( )lgn TN= ,

де Т – криптостійкість (секунд)

Ν – число варіантів, що аналізуються за одну секунду.

Приклад. Вимога з криптостійкості – 1 рік (Т=31,5·106 сек.). Число варіантів, що аналізуються за одну секунду Ν= 105.

Page 53: мв лр зівкс

53

Тоді n=lg31,5·1011=11+ lg31,5=11+1,5=13. Отже, для виконання заданих вимог розрядність модуля має бути не менше 13 десяткових розрядів (якщо витрачати не кожну цифру 4 біта, то розрядність модуля повинна перевищувати 52 біта).

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2 особи в кожній.

3. Кожна підгрупа обирає просте число М>1000. Обирається примітивний

елемент α такий, що для кільця лишків ii M

β α= період Т=М-1.

4. Кожен учасник підгрупи:

− обирає iX M< і тримає його в таємниці;

− обчислює iY і розміщує його у відкритому довіднику (записує на дошці,

зошиті, заносить у файл із загальним доступом). Якщо збігаються i jY Y=

(а відповідно, і i jX X= ), кожен учасник підгрупи змінює ключ iX .

5. Для зв'язку “i” і “j” учасників підгрупи учасник “i” обчислює

iXij j M

Z Y= , а учасник “j” обчислює

jXji i M

Z Y= .

6. Перевірити симетрію ключів (їх рівність).

7. Виконати аналіз отриманих результатів.

8. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Алгоритм відкритого поширення ключів (у вигляді блок-схеми).

3. Значення М, визначення примітивного елементу. Значення Хi.

4. Розрахунки Yi, Zij.

5. Висновки.

Page 54: мв лр зівкс

54

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Дати визначення наступних алгебраїчних систем: група, кільце, поле.

Навести приклади.

2. Визначити поняття симетричної та несиметричної ключової системи.

3. Що зміниться в кільці при зміні примітивного елементу.

4. Одностороння функція. У яких шифрсистемах використовуються

односторонні функції.

5. Алгоритм Евкліда знаходження зворотних елементів.

6. Алгоритм Діффі-Хеллмана, його особливості.

7. Стійкість криптосистеми Діффі-Хеллмана.

8. Підвищення стійкості криптосистеми Діффі-Хеллмана за рахунок

використання секретної книги ключів.

Page 55: мв лр зівкс

55

Лабораторна робота №8

КРИПТОСИСТЕМА RSA

Мета роботи:

– вивчення принципу дії шифрсистеми RSA;

– набуття навичок розрахунку ключів.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Опублікована в листопаді 1976 року стаття Уїтфілда Діффі і Мартіна

Хеллмана «Нові напрями в криптографії» перевернула уявлення про

криптографічні системи, заклавши основи криптографії з відкритим ключем.

Розроблений згодом алгоритм Діффі-Хеллмана-Меркле дозволяв двом сторонам

отримати загальний секретний ключ, використовуючи незахищений канал

зв'язку. Проте цей алгоритм не вирішував проблему аутентифікації.

Вивчивши цю статтю, Рональд Рівест, Аді Шамір і Леонард Адлеман з

Массачусетського Технологічного Інституту провели пошук математичної

функції, яка дозволяла реалізувати сформульовану Діффі і Хеллманом модель

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

заснований на відмінності в тому, наскільки легко знаходити великі прості

числа і наскільки складно розкладати на множники добуток двох великих

простих чисел. Винайдений алгоритм шифрування отримав згодом назву RSA.

Криптосистема Рівеста-Шаміра-Адлемана (RSA) є блоковим шифром, в

якому відкритий текст і шифртекст є цілими числами. Ця система схожа на

систему ключового обміну, засновану на використанні односторонньої функції –

піднесення до ступеня в модульній арифметиці. Принципова відмінність

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

складеним числом.

Page 56: мв лр зівкс

56

Знаючи відкритий текст S0, модуль N і показник ступеня Е (що є ключем

шифрування), можна обчислити шифртекст SШ як

0E

Ш NS S= . (8.1)

Функція зведення в ступінь (8.1) є односторонньою: її пряме обчислення

за будь-яких S0, E, N нескладне, зворотне обчислення навіть при відомому N є

неможливим або, принаймні, надзвичайно ускладненим.

Проте до цієї функції є “таємний хід”, тобто ключ розшифрування D,

такий, що дозволяє виконати операцію обернення функції, тобто за SШ

обчислити S0. Криптостійкість системи RSA базується на тому факті, що

знаходження великих простих чисел (наприклад, з 200 десяткових знаків) не

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

чисел (факторизація) виявляється обчислювально надзвичайно складним.

На приймальній стороні за допомогою ключа розшифрування D

обчислюється

0DШ N

S S= . (8.2)

Принцип роботи шифросистеми RSA полягає в наступному:

1) Криптограф обирає два дуже великих простих числа P, Q і обчислює

добуток

N = P • Q (8.3)

і значення функції Ейлера

M = ( P – 1 ) • ( Q – 1 ). (8.4)

2) Обирається випадковим чином ціле число Е, взаємно просте з M.

Зазвичай у якості Е беруть прості числа, що містять невелику кількість

одиничних бітів у двійковому записі.

3) Обчислюється число D, мультиплікативно зворотне до Е за модулем М,

тобто число, що задовольняє рівнянню:

| DE |M = 1. (8.5)

Page 57: мв лр зівкс

57

Одне з чисел {E, D} є ключем шифрування, інше –ключем

розшифрування (не є принциповим, яке з цих чисел є ключем шифрування, а

яке – розшифрування, тобто порядок їх використання в шифросистемі).

Зазвичай вважається, що пара P=(E, N) публікується як відкритий ключ

RSA, а пара S=(D, N) грає роль секретного ключа RSA і тримається в таємниці.

При використанні шифросистеми RSA в двоточковому з'єднанні та в

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

з'єднання типу “начальник – підлеглий” (”Н” – ”П”).

Криптограф, обчисливши D і E, роздає їх під розпис ”Н” і ”П”. З цієї миті

”Н” і ”П” несуть відповідальність за розголошування кожен свого ключа.

Обмін інформацією (наприклад, від ”Н” до ”П”) зводиться до наступного.

1) Повідомлення (що складається з букв а0, а1, а2, а3, … , аk) перетворюється

на число

S0 = a0 320 + a1 321 + a2 322 + … + ak 32k.

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

від 0 до N-1.

2) Обчислюється шифртекст

0D

Ш NS S=

і відправляється до ”П”.

3) Одержувач ”П” обчислює

2 0ЕШ N

S S S= = .

Процес обміну завершений.

Визначимо стійкість криптоалгоритму до дії помилок у каналі зв'язку.

Відзначимо, що RSA є блоковим шифром, де все повідомлення є одним блоком

даних – число S<N. Кожен блок даних шифрується незалежно від попередніх і

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

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

Page 58: мв лр зівкс

58

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

алфавіту іншим, будь-яка помилка при передаванні шифртексту каналом зв'язку

веде до неправильної розшифровки всього тексту. Таким чином, довжина треку

помилки дорівнює довжині повідомлення, а ймовірність помилки в

повідомленні стає рівною 0,5.

Приклад.

P = 71; N = PQ = 71x73 = 5183 Q = 73; M = (P-1) (Q-1) = 70x72 = 5040 Примітка: тут числа P, Q всього лише дворозрядні замість необхідних 100-200

десяткових розрядів лише для того, щоб зробити обчислення здійсненними на калькуляторі. Оберемо D = 443, тоді

5040 167 1 1 111 11 11 11109 1 1443 443 2 2 2

58 1167 1 151109 158

MD

= = + = + = + = + =+ + +

+ ++

213

17

11

11

11

12

111

727

11

11

11

12

111

5171

11

11

12

111

++

++

++

+=

++

++

++=

++

++

+=

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

1

1

n

n

QP

=11+91

2173

317

11

11

11

12

1=

++

++

+

Знайдемо

1

1

n

n

QP

Page 59: мв лр зівкс

59

1

1

5040 2173 5040 91 2173 443 962640 962639 1443 91 443 91 40313 40313

n

n

PMD Q

⋅ − ⋅ −− = − = = =

Оскільки ланцюговий дріб парного порядку (n=8), то зворотним елементом до D є E=M – Pn-1 = 5040 – 2173 = 2867 (для дробу непарного порядку – з непарним числом членів – E=Pn-1).

Перевіримо | DE |M = | 443x2867 |5040 = | 127008 |5040 = 1 Отже, процедура вибору ключів завершена.

D=443, E=2867. D передається під відповідальність ”Н”, E передається під відповідальність ”П”.

Нехай ”Н” відправляє ”П” повідомлення S0 = AA = 1x321 + 1x320 = 33. ”Н” обчислює SШ=|S0

D|N=|33443|5183. Врахуємо, що 443=256+128+32+16+8+2+1 Обчислимо: | S0

1 |N = 331 = 33, | S0

2 |N = | 332 |5183 = 1089, | S0

4 |N = | 10892 |5183 = 4197, | S0

8 |N = | 41972 |5183 = 2975, | S0

16 |N = | 29752 |5183 = 3244, | S0

32 |N = | 32442 |5183 = 2046, | S0

64 |N = | 20462 |5183 = 3435, | S0

128 |N = | 34352 |5183 = 2717, | S0

256 |N = | 27172 |5183 = 1497. Тоді

SШ = | 1497x2717x2046x3244x2975x1089x33 |5183 = 4951. Тому SШ = 4951.

”П” після отримання SШ обчислює

S2 = | SШE |N = | 49512867 |5183. Врахуємо, що 2867 = 2048 + 512 + 256 + 16 + 2 + 1.

| SШ1 |N = | 49511 |5183 = 4951, | SШ2 |N = | 49512 |5183 = 1994, | SШ4 |N = | 19942 |5183 = 675, | SШ8 |N = | 6752 |5183 = 4704, | SШ16 |N = | 47042 |5183 = 1389, | SШ32 |N = | 13892 |5183 = 1245, | SШ64 |N = | 12452 |5183 = 308, | SШ128 |N = | 3082 |5183 = 1570, | SШ256 |N = | 15702 |5183 = 2975, | SШ512 |N = | 29752 |5183 = 3244, | SШ1024 |N = | 32442 |5183 = 2046, | SШ2048 |N = | 20462 |5183 = 3435.

Тоді S2 = | 3435x3244x2975x1245x1389x1994x4951 |5183 = 33. Дешифрування завершене – S2= S0.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

Page 60: мв лр зівкс

60

3. Кожна підгрупа спочатку виконує функцію ключового центру: обравши P,

Q, обчислює N і M. Кожен учасник підгрупи задає унікальне значення Еi,

обчислює Di.

4. Кожен учасник підгрупи:

− формує відкрите повідомлення;

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

учасником відкритого ключа: (Е2, N) – для першої учасника, (Е1, N) – для

другого учасника;

− розшифровує зашифроване іншим учасником повідомлення за допомоги

відомого йому секретного ключа: (D1, N) – для першого учасника, (D2, N)

– для другого учасника;

− виконує перевірку на відповідність відкритого тексту і розшифрованого

тексту.

5. Виконати аналіз отриманих результатів.

6. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Алгоритм шифрування (у вигляді блок-схеми).

3. Вибір значень P, Q. Розраховані значення N і M.

4. Вибір відкритого ключа Е, обчислення секретного ключа D.

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

6. Зашифроване та розшифроване повідомлення.

7. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

Page 61: мв лр зівкс

61

1. Чому функція зведення в ступінь у модульній арифметиці є

односторонньою?

2. Як на підставі вимог до стійкості шифру визначити значення N?

3. Яке число множень необхідно зробити для обчислення ступінчастої функції

ступеня ”n”?

Лабораторна робота №9

ОРГАНІЗАЦІЯ ЕЛЕКТРОННОГО ЦИФРОВОГО ПІДПИСУ

Мета роботи:

– вивчити властивості електронного цифрового підпису;

– набути навичок формування електронного цифрового підпису.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Електронний цифровий підпис (ЕЦП) – реквізит електронного документа,

призначений для його захисту від підробки.

ЕЦП отримують криптографічним перетворенням змісту електронного

документу (ключ шифрування тримається в таємниці), що дозволяє

ідентифікувати власника сертифікату ключа, а також установити факт

наявності/відсутності модифікації інформації в електронному документі.

ЕЦП використовується для дистанційного укладання/розірвання

комерційних операцій, виконання грошових розрахунків і інших правових дій

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

банківськими установами, органами державної влади).

У мережах передавання даних ЕЦП використовується для встановлення

джерела повідомлення, контролю цілісності інформації та розсилки ключів.

Цифровий підпис може бути застосований як до відкритих, так і до

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

Page 62: мв лр зівкс

62

Алгоритм вироблення електронного цифрового підпису полягає в

наступному.

1. Обирають два великі прості числа P, Q, які тримаються в таємниці.

Обчислюються два числа

N = P · Q,

M = ( P – 1 ) · ( Q – 1 ).

2. Повідомлення переводиться в цифрову форму за наступною формулою:

1

Li

ii

S P V=

= ⋅∑ ,

де L – довжина повідомлення;

iP – номер в алфавіті символу, що знаходиться на i-тій позиції в тексті;

V – об'єм алфавіту.

Повідомлення має бути таким, аби виконувалася умова S < N.

3. По цьому повідомленню виробляється імітовставка, ключ для вироблення

якої відомий відправникові й одержувачеві.

4. Для цифрового підпису формується два ключі:

– ключ К1 (закритий ключ власника ключа);

– ключ К0 (відкритий ключ, що зберігається у нотаріуса).

Ключ К1 обирає і тримає в таємниці керівник підприємства, організації,

установи, тобто особа, що підписує юридично важливий документ (або довірена

особа, оскільки жоден начальник або нотаріус не займатиметься тонкощами

криптографії – він наймає фахівців даного профілю, тобто Вас для вирішення

завдань забезпечення безпеки інформаційного обміну).

За допомогою комп'ютера (за програмою, що вирішує діофантови

рівняння) обчислюється ключ К0, який розміщується напроти прізвища

керівника або особи, повноважної підписувати юридично значимі документи, у

відкритому довіднику, що зберігається у нотаріуса. Ключі К0 і К1 є ключі

довготривалого користування.

Page 63: мв лр зівкс

63

5. Нехай деяке підприємство сформувало юридично значиме повідомлення в

текстовій формі.

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

підписав цей документ, – це і є його особистий підпис. Повідомлення

доповнюється імітовставкою.

Сума імітовставки і числа–прізвища керівника, що підписав документ,

шифрується окремим ключем К1 – ключем цифрового підпису. Отриманий

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

сума – це, власне, і є цифровий підпис.

Повне повідомлення (вихідний текст, особистий підпис і ЕЦП)

відсилаються адресатові поштою, якщо текстова частина повідомлення

відкрита. Повне повідомлення також може шифруватися з використанням

сеансного ключа і відправлятися адресатові як шифрповідомлення.

6. Адресат дешифрує отримане повідомлення (якщо він його отримав як

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

7. Для встановлення цілісності повідомлення і встановлення особи

відправника:

– за відкритою текстовою частиною обчислюється імітовставка;

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

довіднику знаходиться ключ К0 цієї особи. Використовуючи ключ К0,

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

прізвище того, хто підписав документ;

– порівнюється імітовставка, вироблена на основі прийнятого тексту, з

імітовставкою, прийнятою з повідомленням (у складі контрольної суми);

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

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

контрольної суми.

Page 64: мв лр зівкс

64

Збіг імітовставок свідчить про повну ідентичність відправленого й

отриманого повідомлення (про його цілісність).

Збіг підписів свідчить і служить доказом того факту, що відправником

повідомлення є особа, яка вказана в тексті повідомлення.

Приклад

1. Оберемо пару простих чисел Р=71, Q=73. N=P·Q=71·73=5183. M=(P-1) · (Q-1)=70·72=5040. 2. Оберемо D=443. Тоді

5040 1111443 2 11

11 11 17132

MD

= = ++

++

++

+

.

Отримаємо ланцюговий дріб 8-го порядку. Виділимо (n-1)-й наближений дріб:

1

1

1 2 1 7 31 1 1 1 9 12 11 11 11 173

n

n

PQ

= + =+

++

++

.

Для дробу парного порядку: E=M–Pn-1 = 5040–2173=2867 Перевіряємо: |DE|M=|443*2867|5040=1 Одне з цих чисел приймаємо як відкритий ключ – Ко=D=443, а інше як закритий – К1=Е=2867. 3. Процедура формування цифрового підпису. Нехай вихідний текст такий: “Терміново вишліть гроші на адресу Маші. АДА” Обчислюється імітовставка. Примітка:

Для спрощення процедури обчислення імітовставка в даному прикладі обчислюється не по всьому тексту в цілому, а лише по останньому слову “Маші” як лишок по модулю 9.

Приклад алфавіту наведений в таблиці 9.1.

Page 65: мв лр зівкс

65

Таблиця 9.1 Приклад алфавіту джерела

1 А 9 І 17 С 25 Щ 2 Б 10 К 18 Т 26 Є 3 В 11 Л 19 У 27 Ю 4 Г 12 М 20 Ф 28 Я 5 Д 13 Н 21 Х 29 И 6 Е 14 О 22 Ц 30 Ь 7 Ж 15 П 23 Ч 31 пробіл 8 З 16 Р 24 Ш 32 .

Обчислення імітовставки: |Маші|9=|12*323+1*322+24*321+9*320|9=|393216+1024+768+9|9=|395017|9=7. Обчислюється АДА = 1*322+5*321+1*320=1024+160+1=1185. Додаємо імітовставку. Отримаємо: S=1185+7=1192. АДА, як людина, що підписала документ і якій відомий закритий ключ шифрування, обчислює: | 2867

51831192E

Ш NS S= = .

Оскільки 2867=2048+512+256+32+16+2+1, то 2867 2048 512 256 32 16 2 1

5183 5183 5183 5183 5183 5183 5183 5183 51831192 1192 1192 1192 1192 1192 1192 1192ШS = = ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ .

Тому 1 1

51831192 1192S = = ,

2 2

51831192 722S = = ,

4 2

5183722 2984S = = ,

8 2

51832984 5045S = = ,

16 2

51835045 3495S = = ,

32 2

51833495 3877S = = ,

64 2

51833877 429S = = ,

128 2

5183429 2636S = = ,

256 2

51832636 3276S = = ,

512 2

51833276 3366S = = ,

1024 2

51833366 5101S = = ,

2048 2

51835101 1541S = = .

Тоді 5183

1541 3366 3276 3877 3495 722 1192 3270ШS = ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ = . Отже, 3270ШS = . Текст повідомлення доповнюється набором цифр ШS і виглядає так: “Терміново вишліть гроші на адресу Маші. АДА 3270”, де 3270 – цифровий підпис.

Page 66: мв лр зівкс

66

4. Процедури одержувача. Отримавши шифрповідомлення, одержувач, використовуючи сеансний ключ,

дешифрує його. За особистим підписом ідентифікує відправника повідомлення. З відкритого довідника визначає відкритий ключ К0 дешифрування цифрового підпису. Відкритий ключ АДИ з довідника D=443. Знаючи відкритий ключ, обчислюється:

4435183

3270Dd Ш N

S S= = .

Враховуючи, що 443=256+128+32+16+8+2+1, 443 256 128 32 16 8 2 1

5183 5183 5183 5183 5183 5183 5183 5183 51833270 3270 3270 3270 3270 3270 3270 3270dS = = ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ .

Обчислюємо 1 1

51833270 3270ШS = = ,

2 2

51833270 371ШS = = ,

4 2

5183371 2883ШS = = ,

8 2

51832883 3340ШS = = ,

16 2

51833340 1784ШS = = ,

32 2

51831784 294ШS = = ,

64 2

5183294 3508ШS = = ,

128 2

51833508 1622ШS = = ,

256 2

51831622 3102ШS = = .

5183

3102 1622 294 1784 3340 371 3270 1192dS = ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ = . 1192dS = .

Обчислюється слово АДА.

АДА=1*322+5*321+1*320=1185. Обчислюється імітовставка в цифровому підписі: 1192-1185=7 Обчислюється імітовставка за прийнятим текстом (нагадаємо, що імітовставка

береться як лишок по модулю 9 слова “Маші”). |Маші|9=|12*323+1*322+24*321+9*320|9=7.

Імітовставки збіглися, що дає підставу стверджувати:

– текст повідомлення дійсно підписала АДА; – повідомлення, отримане приймачем, ідентично (відсутні будь-які зміни) повідомленню, підписаному АДОЮ при відправці.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2 особи в кожній.

3. Кожна підгрупа спочатку виконує функцію ключового центру: вибравши P і

Q, обчислює N і M. Кожен учасник підгрупи задає унікальне D, обчислює Е.

Page 67: мв лр зівкс

67

4. Розміщує відкритий ключ у відкритому довіднику

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

в таємниці.

6. Кожен учасник підгрупи:

− формує відкрите повідомлення;

− виробляє імітовставку;

− формує особистий підпис;

− обчислює суму імітовставки і особистого підпису. Шифрує цю суму за

допомоги обчисленого закритого ключа: (D1, N) – для першого учасника,

(D2, N) – для другого учасника;

− відкрите повідомлення, доповнене особистим підписом і ЕЦП, передає

іншому учасникові;

− за допомоги відомого йому відкритого ключа: (Е2, N) – для першого

учасника, (Е1, N) – для другого учасника підгрупи, обчислюється

імітовставка з цифрового підпису;

− обчислюється імітовставка за прийнятим повідомленням;

− порівнюються імітовставки.

7. Виконати аналіз отриманих результатів.

8. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Алгоритм формування цифрового підпису (у вигляді блок-схеми).

3. Вибір значень P і Q. Розраховані значення N і M.

4. Вибір відкритого ключа D, обчислення секретного ключа Е.

5. Відкритий текст з особистим підписом.

6. Процес обчислення імітовставки.

7. Процес вироблення ЕЦП.

Page 68: мв лр зівкс

68

8. Процес перевірки отриманого повідомлення на предмет підміни та

приналежності його особі, яка підписала повідомлення.

9. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Процес формування імітовставки.

2. Процес формування ЕЦП.

3. Алгоритм вироблення електронного цифрового підпису.

4. Процедура встановлення цілісності повідомлення і встановлення особи

відправника.

5. Проблема вибору та збереження ключів формування ЕЦП.

6. Проблема підробки ЕЦП.

7. Який криптоалгоритм найбільш зручний для вироблення імітовставки?

8. Який криптоалгоритм найбільш зручний для вироблення ЕЦП?

Page 69: мв лр зівкс

69

Лабораторна робота №10

КРИПТОСИСТЕМА ЕЛЬ-ГАМАЛЯ

Мета роботи: вивчити методику і опанувати навики криптографічного

перетворення в шифрсистемі Ель-Гамаля.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

При створенні відомчих (корпоративних) мереж передавання даних

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

даної мережі, але і з абонентами суміжних мереж, тобто забезпечувати захист

не лише внутрішньомережного, але й міжмережного трафіку. Якщо абоненти

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

міжгалузевої або міждержавної взаємодії мереж, організувати єдину ключову

систему практично дуже складно, оскільки необхідний єдиний правовий

механізм норм і правил міжмережної взаємодії, тобто міжгалузева або

міждержавна угода з норм і правил взаємодії адміністрацій мереж. Ще

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

цих ситуацій доцільно мати таку систему шифрування, таку ключову систему,

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

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

різних юрисдикцій відправника й одержувача є алгоритм «подвійного

гамування». Сутність його полягає в тому, що джерело (абонент 1) і приймач

(абонент 2) використовують кожен свою гаму шифру.

Абонент 1 шифрує вихідне (відкрите) повідомлення S0, накладаючи свою

гаму (γ1), формує та відправляє одержувачеві шифрповідомлення S1=S0+γ1

(знаком + позначена операція додавання за модулем два).

Page 70: мв лр зівкс

70

Абонент 2 шифрує отримане шифрповідомлення S1, накладаючи свою

гаму (γ2), тим самим формує і повертає абонентові 1 шифрповідомлення

S2=S1+γ2=S0+γ1+γ2.

Абонент 1 знімає свою гаму (γ1) в шифрповідомленні S2, тобто формує і

відправляє одержувачеві шифрповідомлення S3=S2+γ1=S0+γ1+γ2+ γ1= S0+γ2.

Абонент 2 дешифрує отримане шифрповідомлення S3, знімаючи свою

гаму (γ2): S4=S0+γ2=S0+γ2+γ2=S0. Сеанс передавання даних завершений.

Одне окремо перехоплене криптоаналітиком повідомлення (S1, S2 або S3)

не дозволяє розкрити шифр. Проте перехоплення всіх трьох повідомлень

S1,S2,S3 дозволяє обчислити

S1+S2+S3=S0+γ1+S0+γ1+γ2+S0+γ2 =S0.

Шифр розкритий. Відповідно, розкрита шифрсистема, оскільки розкрита

гама:

- S1+S0=γ1;

- S2+S0=γ2.

Таким чином, за всієї простоти криптоалгоритм «подвійного гамування»

не має стійкості, якщо не прийняти міри захисту від попадання криптоаналітику

всіх трьох шифрограм. Цього недоліку позбавлена криптосистема Ель-Гамаля.

Криптосистема Ель-Гамаля для всіх користувачів системи визначає деяке

дуже велике просте число М і не тримає його в таємниці. Кожен учасник обміну

генерує випадкове число Xj<M, де j – порядковий номер абонента. Після цього

обчислює зворотний елемент Xj-1. Числа Xj і Xj

-1 тримаються в таємниці, а

абонент несе повну відповідальність за їх розголошування.

Вихідне (відкрите) повідомлення представляється цілим числом S0<М.

За необхідності обміну даними між абонентами – відправником 1 і

одержувачем 2 – виконується наступна процедура:

− Відправник 1 шифрує повідомлення ключем Х1, тобто обчислює

Page 71: мв лр зівкс

71

11 0

X

MS S=

і відправляє його одержувачеві 2;

− Одержувач 2 отримане повідомлення S1 шифрує своїм ключем Х2,

тобто обчислює

2 1 22 1 0

X X X

M MS S S= =

і відправляє його відправникові 1;

− Відправник 1, отримавши повідомлення S2 від одержувача 2,

“знімає” свій ключ процедурою 1 1

1 1 2 1 23 2 0 0

X X X X X

M M MS S S S

− −

= = =

і відправляє його до одержувача 2;

− Одержувач 2, отримавши повідомлення S3 “знімає” свій ключ

процедурою 1 1

2 2 24 3 0 0

X X X

M MS S S S

− −

= = = .

Процедура передавання повідомлення від Відправника 1 до Одержувача 2

закінчена. Криптоаналітик на будь-якому етапі обміну не може обчислити Хj і

Xj-1 на основі перехопленого повідомлення.

Приклад. Оберемо М=131, доводимо його до відома всіх абонентів. Припустимо, абоненти А і

В обрали собі незалежно і таємно числа Х1=17; Х2=37. Кожен з них незалежно і таємно обчислює Х1

-1 і Х2-1, тобто зворотні елементи. Функція Ейлера для простого М ϕ(М)=М-

1=130. Х1

-1 обчислюється наступним чином:

1

( ) 130 11 1 1 17 7 7 76 1 117 17 1 1 1

5 111 1 116 15

MX

ϕ= = + = + = + = +

+ + ++ +

+

Знаходимо передостанній наближений дріб, відкидаючи молодший член 1/5 1

1

1 2 237 71 3 312

n

n

PQ

= + = + =+

Оскільки ланцюговий дріб непарного порядку, то Х1-1=23.

Page 72: мв лр зівкс

72

1

1 1

( ) 130 23 130 3 17 23 390 391 117 3 51 51 51

n

n

PMX Q

ϕ −

⋅ − ⋅ − −− = − = = = .

Звідси 17 і 23 – зворотні елементи. Перевіримо виконання умови |X1·Х1

-1|ϕ(М)=1: │17·23│130=│391│130=1. Отже, абонент А має секретні ключі Х1=17; Х1

-1=23, які знає лише він. Тому він і лише він несе відповідальність за їх розголошування.

Аналогічно, абонент В обчислює

2

( ) 130 19 1 13 3 318 137 37 1 1 119 118

MX

ϕ = = + = + = ++ +

+

,

27

213

1

1 =+=−

n

n

QP .

Оскільки ланцюговий дріб парного порядку 130 7 2 130 7 37 260 259 137 2 74 74 74

⋅ − ⋅ −− = = = , а зворотний елемент Х2-1=ϕ(М)–Рn-1=130–7=123.

Перевіримо, чи виконується |X2 ·Х2-1 |ϕ(М)=1: |37·123|130 = |4551|130 = |35·130+1|130 =1.

Таким чином, абонент В має Х2=37; Х2-1=123, які він тримає в таємниці та несе

відповідальність за їх розголошування. Нехай абонент А відправляє повідомлення абоненту В. Нехай це повідомлення після

перетворення на чисельне значення дорівнює S0=21. Абонент А обчислює 1 17 16 1

1 0 131 131 13121 21 21X

MS S= = = ⋅ .

|211|131=21, |212|131=48, |214|131=77, |218|131=34, |2116|131=108. S1=|108·21|131=|2668|131=41. Це повідомлення відправляється відкритим каналом абонентові В. Криптоаналітик,

якщо навіть знає М, не знаючи S0, не обчислить Х1 або, не знаючи Х1, не обчислить S0. Абонент В, отримавши S1, шифрує його своїм ключем Х2, тобто обчислює

2 37 32 4 12 1 131 131 131 131

41 41 41 41XM

S S= = = ⋅ ⋅ .

|411|131=41, |412|131=109, |414|131=91, |418|131=28, |4116|131=129, |4132|131=4. S2= |4·91·41|131=121. Повідомлення S2 відправляється абоненту А. Отримавши S2, абонент А “знімає” свій ключ Х1, обчислюючи 1

1 23 16 4 2 13 2 131 131 131 131 131

121 121 121 121 121X

MS S

= = = ⋅ ⋅ ⋅ .

Page 73: мв лр зівкс

73

|1211|131=121, |1212|131=100, |1214|131=44, |1218|131=102, |12116|131=55. S3=|55·44·100·121|131=94. Повідомлення S3 відправляється абонентові В. Абонент В, отримавши S3, “знімає” свій ключ процедурою 1

2 123 64 32 16 8 2 14 3 131 131 131 131 131 131 131

94 94 94 94 94 94 94X

MS S

= = = ⋅ ⋅ ⋅ ⋅ ⋅ .

|941|131=94, |942|131=59, |944|131=75, |948|131=123, |9416|131=64, |9432|131=35, |9464|131=46. S4=|46·35·64·123·59·94|131=21. S4=S0. Процес передавання повідомлення завершений. Слід зазначити, що шифр Ель-Гамаля є блоковим шифром, що обробляє

інформацію блок за блоком, тоді як «подвійне гамування» є метод потокового

шифрування. За блокового шифрування будь-яка помилка в каналі передавання

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

(оскільки і шифрування, і дешифрування зводиться до виконання операції

піднесення до ступеня), за потокового шифрування одна помилка в каналі

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

в місці збою каналу даних. Послідовність помилок, викликаних збоєм каналу

передавання даних прийнято називати треком помилок. Через це потокові

шифри мають нульовий трек помилки, тоді як блокові мають трек помилки,

практично рівний довжині блоку.

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

вимоги, що пред'являються до каналу передавання даних.

Page 74: мв лр зівкс

74

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Група студентів ділиться на підгрупи по 2-3 особи в кожній.

3. Кожна підгрупа обирає М.

4. Кожен учасник підгрупи задає унікальне значення Хi, обчислює Xi-1.

5. Кожен учасник підгрупи формує відкрите повідомлення.

6. Підгрупа виконує наступні дії:

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

другому учаснику обміну;

− другий учасник приймає зашифроване повідомлення, шифрує його

своїм ключем і передає шифртекст першому учасникові;

− перший учасник «знімає» свій ключ і передає шифртекст другому

учасникові;

− другий учасник «знімає» свій ключ, тим самим розшифровує

повідомлення, отримуючи відкритий текст;

− передавання виконати в обидві сторони.

7. Виконати аналіз отриманих результатів.

8. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Алгоритм шифрування (у вигляді блок-схеми).

3. Вибір значення M.

4. Вибір ключа Хi, обчислення Xi-1.

5. Відкритий текст, його чисельний еквівалент.

6. Опис процедури обміну.

7. Процес шифрування, передавання та розшифрування повідомлення.

8. Висновки.

Page 75: мв лр зівкс

75

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Дайте визначення поняттям:

– просте і складене число;

– звідний та незвідний багаточлен.

2. Основні властивості кілець лишків у кільці цілих чисел.

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

зворотний переклад для алфавіту, що складається з 32 символів.

4. Алгоритм роботи шифрсистеми Ель-Гамаля.

5. Криптостійкість шифрсистеми Ель-Гамаля.

6. Проблема генерування ключів.

7. Порівняння швидкодії алгоритму Ель-Гамаля і подвійного гамування.

8. Довжина треку помилки за шифрування подвійним гамуванням і методу

Ель-Гамаля.

Page 76: мв лр зівкс

76

Лабораторна робота №11

БЛОКУВАННЯ КАНАЛУ ВИТОКУ НЕБЕЗПЕЧНОГО СИГНАЛУ У

ВІДКРИТИЙ РАДІОПРОСТІР

Мета роботи: визначити найбільш безпечний для здоров'я людини

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

рахунок його зашумлення.

СТИСЛІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Фізичні процеси, що відбуваються в технічних засобах при їхньому

функціонуванні, створюють у довколишньому просторі побічні

випромінювання, які в тій або іншій мірі пов'язані з інформацією, що

обробляється.

Фізичні явища, які є основою появи цих випромінювань, мають різний

характер, але, проте, вони можуть розглядатися, як неумисне передавання

конфіденційної інформації деякою "побічною системою зв'язку", яка утворена

джерелом небезпечного випромінювання, середовищем і, можливо,

приймальною стороною (зловмисником). При цьому, на відміну від традиційних

систем зв'язку, в яких передавальна та приймальна сторони переслідують одну

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

побічної системи зв'язку "передавальна сторона" зацікавлена в максимально

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

Побічну систему зв'язку прийнято називати технічним каналом витоку

інформації.

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

відтворюється відрізком друкованого провідника усередині ПЕОМ.

Друкований провідник – носій небезпечного сигналу є антеною

паразитного генератора високочастотних коливань (високочастотної несучої),

Page 77: мв лр зівкс

77

яким є будь-яка мікросхема комп’ютера, будь-який інвертор, до виходу яких і

підключений друкований провідник. Будь-який елемент (тригер, інвертор) може

генерувати пачку високочастотних коливань під час переходу з одного стійкого

стану в інший. Таким чином, у відкритий радіопростір у вигляді

високочастотного АМ-сигналу виноситься сигнал даних. Потужність цього

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

інформації – маскування небезпечного сигналу шляхом накладання шумового

сигналу, тобто його зашумлення.

У першу чергу, для блокування каналу витоку небезпечного сигналу у

відкритий радіопростір необхідно визначити, чи знаходиться межа зони, що

охороняється, в зоні радіовидимості.

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

за наступною формулою:

( )1 2( ) 4,12R км h h= + , (12.1)

де 1h , 2h – висота передавальної та приймальної антен у метрах відповідно.

Частота і довжина хвилі паразитного електромагнітного випромінювання

небезпечного сигналу можна визначити за формулами:

1мгц

мкс

= , (12.2)

300м

мгцfλ = (12.3)

де мксτ – час наростання (спаду) струму імпульсної послідовності, що

модулюється небезпечним сигналом;

Потужність випромінювання небезпечного сигналу: 2

2 2( ) 40 lP вт Iπλ

=

, (12.4)

де I – амплітуда струму (А);

l – довжина елементарного вібратора (м);

Page 78: мв лр зівкс

78

λ – довжина хвилі (м).

Напруженість електричного поля на межі зони, що охороняється:

( )

( )

90( / ) вт

м

РE в м

r= , (12.5)

де r – відстань (по прямій) між джерелом небезпечного сигналу і межею

зони, що охороняється (м).

За формулою (12.5), знаючи чутливість панорамного розвідувального

радіоприймача, можна визначити його найбільше віддалення від межі зони, що

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

Крім того, за відомою потужністю паразитного випромінювання

небезпечного сигналу і відомою чутливістю приймача доцільно визначити

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

радіоприймача.

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

на межі зони, що охороняється, повинно не менше ніж в два рази перевищувати

напруженість небезпечного сигналу в тій же точці простору. Приклад

1. Визначимо радіус ЗРВ: h1=8*3=24м; h2=1,5м

( ) ( )1 2( ) 4,12 4,12 24 1.5 25( )R км h h км= + = + = .

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

небезпечного сигналу

6

1 1 1 .10мгц

мкс

f мгцτ −= = =

300 300 11м

мгц

мf

λ = = = .

3. Визначимо потужність випромінювання небезпечного сигналу 22

2 2 6 2 120,1( ) 40 40 9,87 (10 10 ) 394,78 10 .1,0

lP вт I втπλ

− − = = ⋅ ⋅ ⋅ ⋅ = ⋅

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

Page 79: мв лр зівкс

79

12( ) 7

( )

90 90 394,78 10( / ) 188,5 10 / 18,85 /10

вт

м

РE в м в м мкв м

r

−−⋅ ⋅

= = = ⋅ =

Висновок: напруженість електричного поля на межі зони, що охороняється, в 185,5 разів перевищує чутливості панорамного розвідувального приймача.

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

126

( )

90 394,78 100,1 10мr

−− ⋅ ⋅

⋅ = .

Звідси 7 12 6

( )10 90 394,78 10 188,5 10мr м− − −= ⋅ ⋅ = ⋅ або ( ) 1885мr м= . 6. Визначимо потужність шуму маскування за умови, що на межі зони, що охороняється,

напруженість шуму маскування повинна в два рази перевищувати напруженість небезпечного сигналу. З (12.5) витікає, що для збільшення напруженості в два рази потужність повинна збільшитися в чотири рази. Тоді потужність шуму маскування складе

12 12( ) 4 394, 78 10 1579,12 10ш втР вт− −= ⋅ ⋅ = ⋅

7. Визначимо рівень небезпечного сигналу і рівень шуму маскування. 12

3

394,78 1010lg 10(lg394,78 9) 64,010нсдбР db

⋅= = − = − .

12

3

1579,12 1010lg 10(lg1579,12 9) 58,010шдбР db

⋅= = − = − .

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Вивчити теоретичні відомості.

2. Відповідно до індивідуального варіанту:

- визначити радіус ЗРВ;

- визначити частоту і довжину хвилі паразитного електромагнітного

випромінювання небезпечного сигналу;

- визначити потужність випромінювання небезпечного сигналу;

- визначити напруженість електричного поля на межі зони, що

охороняється;

- визначити максимально допустиму відстань від межі зони, що

охороняється, до панорамного розвідувального приймача;

- визначити потужність маскуючого шуму;

- визначити рівень небезпечного сигналу і рівень шуму маскування;

Page 80: мв лр зівкс

80

3. Оформити звіт. Зробити висновки про результати виконаної роботи.

ЗМІСТ ЗВІТУ

1. Тема і мета роботи.

2. Результати виконання індивідуального завдання.

3. Висновки.

Примітка. У висновках дається оцінка виконаної роботи (що вона Вам

показала), даються відповіді на наведені нижче питання.

КОНТРОЛЬНІ ПИТАННЯ

1. Класифікація каналів витоку інформації.

2. Акусто-електричне перетворення (АЕП). Природа явища.

3. Витік небезпечного сигналу у відкритий радіопростір, природа явища.

4. Блокування каналу витоку небезпечного сигналу у відкритий радіопростір,

просторове зашумлення.

5. Організація технічного каналу витоку інформації шляхом "високочастотного

нав'язування".

6. Способи блокування каналів витоку.

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

8. Методи пошуку несанкціонованих пристроїв знімання інформації.

Page 81: мв лр зівкс

81

ДОДАТОК А

Кодова таблиця ASCII Windows (CP-1251)

Page 82: мв лр зівкс

82

СПИСОК ВИКОРИСТАНОЇ ТА РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ

1. Брассар Ж. Современная криптология. Руководство / Ж. Брассар; [пер. с

англ. Ветчинина М.П.; под ред. Лебедева А.Н.]. – М.: Полимед, 1999. –

175 с.

2. Василенко О.Н. Теоретико-числовые алгоритмы в криптографии / О.Н.

Василенко. – М.:МЦМНО, 2003. – 328 с. – (Информационная безопасность:

криптография).

3. Зегжда П.Д. Теория и практика обеспечения информационной

безопасности / П.Д. Зегжда. – М.: Яхтсмен, 1996. – 192 с. – (Защита

информации).

4. Иванов М.А. Теория, применение и оценка качества генераторов

псевдослучайных последовательностей / М.А. Иванов, И.В. Чугунков. – М.:

КУДИЦ-ОБРАЗ, 2003. – 240 с. – (СКБ – специалисту по компьютерной

безопасности).

5. Информационные технологии. Криптографическая защита информации.

Процессы формирования и проверки цифровой подписи: ГОСТ Р 34.10-

2001.

6. Романец Ю. В. Защита информации в компьютерных системах и сетях /

Романец Ю. В., Тимофеев П. А., Шаньгин В. Ф.; под ред. В.Ф. Шаньгина. –

[2-е изд.]. – М.: Радио и связь, 2001. – 376 с.

7. Системы обработки информации. Защита криптографическая. Алгоритм

криптографического преобразования: ГОСТ 28147-89. – [Введен в действие

1990-07-01]. – М.: ИПК издательство стандартов, 1989. – 28 с. –

(Государственный стандарт Союза ССР).

8. Смарт Н. Криптография / Н. Смарт; [пер. с англ. С.А. Кулешова; под. ред.

С.К. Ландо]. – М.: Техносфера, 2005. – 528 с. – (Мир программирования).

9. Стандарт електронного цифрового підпису України ДСТУ 4145-2002.

Page 83: мв лр зівкс

83

10. Теория и применение псевдослучайных сигналов / [Алексеев А.И.,

Шереметьев А.Г., Тузов Г.И., Глазов Б. И.] – М.: Наука, 1969. – 368с.

11. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные

тексты на языке Си/ Б. Шнайер; [пер. с англ. под ред. Семьянова П.В.] –

М.: Триумф, 2002. – 816 с. – (Знания и опыт экспертов).

12. Data encryption standard (DES): FIPS PUB 46-3. – [Reaffirmed 1999-10-25]. –

U.S. Department of commerce / National Institute of Standards and Technology

(NIST), 1999. – 22 p. – (Federal information processing standard).

13. RSA Laboratories, “PKCS #1: RSA Encryption Standard”, version 1.5, Nov

1993.

14. RSA Laboratories, “PKCS #3: Diffie-Hellman Key-Agreement Standard”,

version 1.4, Nov 1993.

15. Taher ElGamal. A Public-Key Cryptosystem and a Signature Scheme Based on

Discrete Logarithms / Taher ElGamal. // IEEE Transactions on Information

Theory. – 1985. – #4 – IT-31 – p. 469–472.

16. U.S. Patent #4,200,770. Cryptographic apparatus and method / Martin E.

Hellman, Bailey W. Diffie, Ralph C. Merkle. – 29 April 1980.