Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Опорный конспект

.pdf
Скачиваний:
20
Добавлен:
30.05.2020
Размер:
2.34 Mб
Скачать

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

2 Система шифрування Віженера

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

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

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

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

входи:

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

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

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

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

( 0 , 1 , , r 1 ) .

Система шифрування Віженера перетворить відкритий текст x (x0 , x1 , , xn 1 ) у шифротекст

y ( y0 , y1 , , yn 1 ) за допомогою ключа ( 0 , 1 , , r 1 ) відповідно до правила

Tn : xn (x0 , x1 , , xn 1 ) yn ( y0 , y1 , , yn 1 ) ,

де

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( y

, y , , y

 

) (

 

 

),

 

(x ), ,

 

 

 

 

 

i

(i mod r ) .

 

y

n

n 1

0

(x

1

n 1

(x

n 1

))

,

 

 

0

1

 

0

 

1

 

 

 

 

Наприклад, з використанням шифру Віженера виконати шифрування відкритого тексту М= “БЕЗ КАЛИНИ НЕМА УКРАЇНИ” ключем Key =“БАРВІНОК”.

Випишемо вихідне повідомлення в рядок і запишемо під ним ключове слово з циклічним повторенням. У третій рядок будемо виписувати літери шифротексту, обумовлені таблицею Віженера (таблиця 2 дадатка Б).

M

Б

Е

З

К

А

Л

И

Н

И

Н

Е

М

А

У

К

Р

А

Ї

Н

И

Key

Б

А

Р

В

І

Н

О

К

Б

А

Р

В

І

Н

О

К

Б

А

Р

В

C

В

Е

Щ

М

І

Я

Ш

Ю

І

Н

Ц

О

І

Є

Я

Б

Б

Ї

Ґ

Ї

У результаті отримаємо шифротекст, що записано блоками по п'ять букв ВЕЩМІ ЯШЮІН ЦОІЄЯ ББЇҐЇ.

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

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

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

А

Б

В

Г

Ґ

Д

Е

Є

Ж

З

И

0

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

 

І

Ї

Й

К

Л

М

Н

О

П

Р

С

11

12

13

14

15

16

17

18

19

20

21

 

 

 

 

 

 

 

 

 

 

 

21

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ю

Я

22

23

24

25

26

27

28

29

30

31

32

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

Б1

Е7

З9

К14

А0

Л15

И10

Н17

И10

Н17

Б1

А0

Р20

В2

І11

Н17

О18

К14

Б1

А0

В2

Е7

Щ29

М16

І11

Я32

Ш28

Ю31

І11

Н17

 

 

 

 

 

 

 

 

 

 

Е6

М16

А0

У23

К14

Р20

А0

Ї12

Н17

И10

Р20

В2

І11

Н17

О18

К14

Б1

А0

Р20

В2

Ц26

О18

І11

Є7

Я32

Б1

Б1

Ї12

Ґ4

Ї12

У результаті одержимо той самий шифротекст, що й у випадку використання таблиць Віженера: ВЕЩМІ ЯШЮІН ЦОІЄЯ ББЇҐЇ .

3 Шифр “Подвійний квадрат Уітстона”

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

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

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

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

Наприклад, використовуючи подвійний квадрат Уітстона, зашифрувати повідомлення «НЕ ЦУРАЙТЕСЬ ТОГО СЛОВА, ЩО МАТИ СПІВАЛА».

Будемо розглядати український алфавіт, який доповнимо символами “.” (крапка), “,” (кома) та “_” (пропуск). Разом алфавіт буде містити 36 символів. Отож візьмемо таблиці розміром 6 6 (рис. 1).

А

І

Р

Ч

Ю

Я

И

Б

Ї

С

Ш

,

П

З

В

Й

Т

Щ

Ц

Ж

О

Г

К

У

_

Х

Є

Н

Ґ

Л

.

Ь

Ф

Д

Е

М

Ь

Ш

З

А

В

Б

Р

Ю

Щ

Ж

Ґ

Г

С

П

Я

Ч

Є

Д

Й

О

Т

_

Е

Ц

Ї

К

Н

У

Ф

Х

І

И

Л

М

,

.

 

Рисунок 1 – Таблиці для шифру “Подвійний квадрат Уітстона”

Розбиваємо текст на біграми:

 

 

 

НЕ | _Ц | УР | АЙ | ТЕ | СЬ | _Т | ОГ | О_ | СЛ |

 

 

ОВ | А, | _Щ | О_ | МА | ТИ | _С | ПІ | ВА | ЛА

 

 

Відповідно до алгоритму виконаємо відповідні перетворення:

 

НЕ ФГ

ТЕ ЄК

О_ ГТ

_Щ НИ

_С ЇП

_Ц ХЦ

СЬ РЧ

СЛ ЩД

О_ ГТ

ПІ С.

УР Й,

_Т НЦ

ОВ ЕР

МА МЯ

ВА ЧР

АЙ ЬЦ

ОГ ЦЇ

А, В.

ТИ ПЕ

ЛА УЯ

Отже, маємо шифротекст, записаний блоками по 5 символів: ФГХЦЙ ,ЬЦЄК РЧНЦЦ ЇГТЩД ЕРВ.Н ИГТМЯ ПЕЇПС .ЧРУЯ .

22

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

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

Ь

Ш

З

А

В

Б

Р

Ю

Щ

Ж

Ґ

Г

С

П

Я

Ч

Є

Д

Й

О

Т

_

Е

Ц

Ї

К

Н

У

Ф

Х

І

И

Л

М

,

.

А

І

Р

Ч

Ю

Я

И

Б

Ї

С

Ш

,

П

З

В

Й

Т

Щ

Ц

Ж

О

Г

К

У

_

Х

Є

Н

Ґ

Л

.

Ь

Ф

Д

Е

М

Рисунок 2 – Таблиці для розшифрування в шифрі “Подвійний квадрат Уітстона”

4 Одноразова система шифрування

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

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

 

 

 

 

 

 

Одноразова система шифрує вихідний

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

x (x0 , x1 , , xn 1 ) у шифротекст

y ( y0 , y1 , , yn 1 ) за допомогою підстановки

 

 

 

 

Yi ( X i Ki ) mod m,

0 i n ,

(3.6)

де Ki i-й елемент випадкової ключової послідовності.

Ключовий простір K одноразової системи являє собою набір дискретних випадкових величин з Zm і містить mn значень.

Процедура розшифрування описується співвідношенням (3.7)

X i (Yi Ki ) mod m ,

(3.7)

де

Ki i-й елемент тієї самої випадкової ключової послідовності.

Одноразову систему було винайдено в 1917 р. американцями Дж. Моборном і Г. Вернамом. Для реалізації цієї системи підстановки іноді використовують одноразовий блокнот. Цей блокнот складається з відривних сторінок, на кожній з яких надрукована таблиця з випадковими числами (ключами) Ki . Блокнот виконується у двох екземплярах: один використовується відправником, а інший

- одержувачем. Для кожного символа X i повідомлення використовується свій ключ Ki з таблиці тільки

один раз. Після того як таблиця була використана, вона повинна бути вилучена із блокнота та знищена. Шифрування нового повідомлення починається з нової сторінки.

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

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

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

23

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

5 Шифрування методом Вернама

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

Відкритий текст представляється в коді Бодо (у вигляді п'ятизначних імпульсних комбінацій). У цьому коді, наприклад, буква «А» мала вигляд (+ + – – –). На паперовій стрічці ця буква одержувала такий вигляд (рис. 3) .

Знак «+» означав отвір, а знак «-» – його відсутність. При зчитуванні зі стрічки п'ятірка металевих щупів «пізнавала» отвір (при наявності отвору щуп замикав електричний ланцюг) і на лінії зв'язку посилався імпульс струму (рис. 4).

Рисунок 3 – Паперова стрічка системи Вернама

Рисунок 4 – Імпульс струму в системі Вернама Вернам запропонував електромеханічно покоорди-натно додавати імпульси знаків секретного

тексту з імпульсами гами.

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

Додавання здійснювалося за модулем 2.

0 0 = 0,

0 1 = 1,

1 0 = 1,

1 1 = 0 ,

де

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

0– знак «-» коду Бодо,

1– знак «+» коду Бодо.

Нехай, наприклад, знак гами має вигляд

+ – + – – (10100).

Тоді буква «А» при шифруванні переходить у двійкову комбінацію 01100 (– + + – –). При розшифруванні необхідно повторити покоординатно ту саму операцію

(01100) (10100) = (11000) = А.

Схема шифрування методом Вернама подана на рисунку 5

24

Рисунок 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

Соседние файлы в предмете Защита информации