Файл: Опорный конспект.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.06.2024

Просмотров: 73

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 5 – Схема шифрування та розшифрування повідомлень методом Вернама Вернам створив пристрій, що робить зазначені операції автоматично, без участі шифрувальника.

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

Відзначимо одну важливу особливість шифру Вернама, що послужила надалі обґрунтуванню теорії досконалого шифру, яку було запропоновано американським класиком криптографії К. Шенноном. Справа в тому, що при застосуванні шифру Вернама за перехопленим шифрованим текстом видгляу b1 , b2 , , bn , може ховатися будь-який відкритий текст a1 , a2 , , an , . Будь-якому

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

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

Уцій ситуації був запропонований простий вихід: гама шифру записувалася на стрічку, склеєну

вкільце. Таким чином, вона ставала не випадковою, а періодичною (як у шифрі Віженера). Шифр ставав нестійким.

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

6 Роторні машини

У 20-х роках XX століття були винайдені електромеханічні пристрої шифрування, що автоматизують процес шифрування. Принцип роботи таких машин заснований на багатоалфавітній заміні символів вихідного тексту згідно з значенням довгого ключа відповідно до версії шифру Віженера. Більшість із них – американська машина SIGABA (М-134), англійська TYPEX, німецька ENIGMA, японська PURPLE - були роторними машинами.

Головною деталлю роторної машини є ротор (або колесо) із дротовими перемичками усередині. Ротор має форму диска (розміром з хокейну шайбу). На кожній стороні диска рівномірно по колу розташовано m електричних контактів, де m – число знаків алфавіту (у випадку латинського алфавіту m=26). Кожен контакт на передній стороні диска з'єднаний з одним із контактів задньої сторони, як показано на рис. 6. У результаті електричний сигнал, що являє собою символ відкритого тексту, буде поданий відповідно до того, як він проходить через ротор від передньої сторони до задньої. Наприклад, ротор можна закомутувати дротовими перемичками для підстановки G замість A, U замість В, R замість С і т.д.

Ротори ( i ) можна об'єднати в банк роторів таким чином, щоб вихідні контакти одного ротора

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

25


Рисунок 6 – Банк роторів Шифротекст отриманий за допомогою роторної машини ускладнюється ще й тим, що ротори

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

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

Найпростіше з можливих рухів ротора – це рух за принципом одометра; воно використовувалося в німецькій машині Enigma під час Другої світової війни. При шифруванні одного знаку праве крайнє колесо повертається на одну позицію. Коли це (і будь-яке інше) колесо переміститься на m позицій і зробить повний оборот, колесо, розміщене ліворуч від нього, пересунеться на одну позицію, і процес буде повторюватися. Цей процес проведе банк роторів крізь всі його можливі положення, перш ніж цикл повториться. Оскільки всі ротори переміщаються з різними швидкостями, період n-роторної

машини становить 26 n (при m = 26).

Для закону руху ротора бажані такі характеристики:

період повинен бути більшим;

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

Рух за принципом одометра оптимально в змісті першої вимоги, але зовсім незадовільно

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

Інше рішення полягає в обмеженні числа допустимих зупинних місць для кожного ротора за рахунок введення зовнішнього фіксуючого кільця, на якому певним способом зафіксовані місця зупинок. При використанні латинського алфавіту можна змусити машини повертатися та зупинятися в такий спосіб. Першому колесу дозволяється зупинятися в кожній з 26 позицій, другому колесу - тільки в 25 позиціях, третьому колесу - тільки в 23 позиціях і так далі до шостого колеса, якому дозволяється зупинятися тільки в 17 позиціях. Період такої роторної машини тепер становить 101 млн, а не 266≈309 млн, як у випадку руху за принципом одометра. Втрата в довжині періоду з успіхом окупається отриманою складністю руху роторів. Тепер друга вимога задовольняється досить добре, оскільки кожне з коліс прокручується після шифрування кожного знаку і колеса можуть рухатися відносно одне до одного.

Роторна машина може бути настроєна за ключем зміною будь-яких її змінних:

роторів;

порядку розміщення роторів;

числа місць зупинки на колесо;

характеру руху і т. д.

7 Шифрування методом гамірування

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

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

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

26


Слід зазначити, що перед зашифруванням відкриті дані M розбивають на блоки M i однакової

довжини, як правило, по 64 бітів. Гама шифру генерується у вигляді послідовності блоків G i аналогічної довжини.

Рівняння зашифрування можна записати у вигляді

Ci Gi M i ,

(3.8)

де

1 i m, m – кількість блоків відкритого тексту; C i i-й блок шифротексту;

Gi i-й блок гами шифру;

M i i-й блок відкритого тексту.

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

M i Gi Ci .

(3.9)

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

Розглянемо приклад. Для ілюстрації шифрування тексту методом гамірування візьмемо двійкові коди символів відкритого тексту M та як гаму G – випадкову послідовність двійкових кодів.

Нехай маємо відкритий текст M=«SMAIL» і гаму

G={1010011, 1010100, 1000111, 1010111} – випадкову послідовність бітів.

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

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

S

M

A

I

L

ASCII -код

83

77

65

73

76

Двійковий код

1010011

1001101

1000001

1001001

1001100

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

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

1010011

1001101

1000001

1001001

1001100

Гама

1100001

1010011

1010100

1000111

1010111

Шифротекст

0110010

0011110

0010101

0001110

0011011

ASCII-код

50

94

107

108

89

Шифротекст

2

^

K

l

Y

У результаті одержали шифротекст C=«2^klY», що відповідає відкритому тексту M=«SMAIL».

27


Задачі

1.За допомогою шифру Віженера виконати шифрування відкритого тексту M з ключем Key

М= «НІЖНО ВПЛІТАЄТЬСЯ В ГОМІН ДНІПРА

ДОБРЕ І ЩИРЕ ШЕВЧЕНКІВСЬЕ СЛОВО» Key=«СКОМАРОВСЬКИЙ».

2.Виконати розшифрування шифротексту С (ключове слово – «EMPIRE»). При розшифруванні врахувати, що алфавіт містить пробіл, за яким ідують символи латинського алфавіту

C = «MRPPI FGOUM RYMAH NRYMD UNRWZ OANJE FTIZNI MIQWR EQUNG EIALW RNSMX RJEUA STWYE NCMRY MRCIZ JEEIC XKJQP QXEBD LBJYM LRKME TGJJX EEDIK MFFPB ZJEZD WWCEI DCCIE DBRKF YAIFZ Y».

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

C =«ORIOM GKRIE MXSIX CISIG XEJSK ZRXJK SGWBZ GLRIM XSLUN LPXQM AUSVX MREEA KMBTJ SDAWS JKLME WLYXM NZLDA EQLQT FTCML XSONO FMKRI EMXJR IUXST MVUQX SONEA XXIEM XSSRC XLSNW PELRI XFYLX DALTY SFQUX SOAPE HXDR I».

Список літератури

22Усатенко Т.М. Криптологія: Навчальний посібник. – Суми: Вид-во СумДУ, 2008. – 164 с.

23Шнайдер Брюс. Прикладная криптология. Протоколы, алгоритмы, исходные тексты на языке Си. – М.: Издательство ТРИУМФ, 2002

24Столлингс Вильям. Криптография и защита сетей: принципы и практика /Пер. с англ – М.: Издательский дом «Вильямс», 2001.

25Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. – М.: КУДИЦ-ОБРАЗ, 2001.

26Брассар Ж. Современная криптология / Пер с англ. – М.: Полимед, 1999.

27Жельников В. Криптография от папируса до компьютера. –М.: ABF, 1996.

28Введение в криптографию /Под общей ред. В.В. Ященко. – СПб.: Питер, 2001.

28

Традиційні симетричні криптосистеми

Блочні шифри

План

1 Алгоритм DES

Блочні шифри

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

C E(M , Key) ,

X D(C, Key) .

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

однакову фіксовану розрядність, але необов'язково таку, що дорівнює довжині ключа.

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

Криптоалгоритм іменується ідеально стійким, якщо прочитати зашифрований блок даних можна тільки перебравши всі можливі ключі, до тих пір, поки повідомлення не виявиться осмисленим. Оскільки за теорією вірогідності шуканий ключ буде знайдений з вірогідністю 0,5 після перебору половини всіх ключів, то на злом ідеально стійкого криптоалгоритму з ключем довжини N буде потрібно в середньому 2N 1 перевірка. Таким чином, в загальному випадку стійкість блокового шифру залежить тільки від довжини ключа і зростає експоненціально з її зростанням. Окрім цієї умови до ідеально стійких криптоалгоритмів застосовується ще одна дуже важлива вимога, якій вони повинні обов'язково відповідати. При відомих початковому і зашифрованому значеннях блоку ключ, яким проведене це перетворення, можна дізнатися також тільки повним перебором. Ситуації, в яких сторонньому спостерігачу відома частина початкового тексту зустрічаються повсюди. Це можуть бути стандартні написи в електронних бланках, фіксовані заголовки форматів файлів, що досить часто трапляються в тексті довгі слова або послідовності байтів. У світлі цієї проблеми описана вище вимога не є надмірною і також строго виконується стійкими криптоалгоритмами, як і перша.

Таким чином, на функцію стійкого блочного шифру E(M , Key) накладаються такі умови:

1Функція E(M , Key) повинна бути зворотною.

2Не повинно існувати інших методів прочитання повідомлення M по відомому блоку C , окрім як повним перебором ключів Key .

3Не повинно існувати інших методів визначення яким ключем Key було проведене перетворення відомого повідомлення M в повідомлення C , окрім як повним перебором ключів.

1 Алгоритм DES

Американський стандарт криптографічного захисту даних (Data Encryption Standard), прийнятий в 1978 році є типовим представником сімейства блочних шифрів. Цей шифр допускає ефективну апаратну та програмну реалізації, причому можливо досягнення швидкостей до декількох мегабайтів за секунду.

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

Процес шифрування полягає в початковій перестановці 64 бітів вхідного блоку, шістнадцяти циклах шифрування та зворотній перестановці бітів (рис. 1)

29


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

Рисунок 1 – Загальна схема процесу шифрування в алгоритмі DES

Розглянемо алгоритм докладніше. Припустимо, з файлу зчитано 64-бітний блок X (x1 , x2 , x3 , , x64 ) , який перетворюється за допомогою початкової перестановки IP (рис. 2) в 64-

бітний блок X 0 IP( X ) .

Рисунок 2 – Матриця початкової перестановки IP

Після IP-перестановки 16 разів повторюється процедура шифрування блока X 0 за допомогою

функції f . Позначимо

 

X i

– результат i-ї ітерації;

 

Li

– перші (ліві) 32 біти блоку X i , Li

(xi,1 , xi,2 , , xi,32 ) ;

Ri

– останні (праві) 32 біти блоку X i ,

Ri (xi,33 , xi,34 , xi,64 ) (xi,1 , xi,2 , xi,32 ) .

Таким чином,

 

X i Li Ri .

Тоді результатом i-ї операції буде:

Li Ri 1 ,

Ri Li 1 f (Ri 1 , Ki ) ,

де

– операція додавання за модулем 2;

Ki i-те перетворення ключа шифрування K .

Функція f виконує операції над значенням Ri 1 (результатом минулої операції) та поточним значенням 48-бітного ключа Ki (з відокремленням зайвих бітів). До речі, після 16-ї ітерації ліва і права половини блока не міняються місцями (рис. 3). По закінченні шифрування виконується відновлення позицій бітів за допомогою матриці перестановок IP 1 (рис. 4).

Розглянемо докладніше функцію f .

Крок 1 На кожній ітерації масив Ri 1 розширюється до 48 бітів за допомогою таблиці розподілення бітів E . Блок Ri 1 розбивається на вісім блоків по 4 біти (рис. 5).

30