Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗИ - модуль3.doc
Скачиваний:
70
Добавлен:
10.02.2016
Размер:
3.19 Mб
Скачать

Abcdefghijklmnopqrstuvwxyz

За ключ-гасло обирається число, котре легко запам'ятовується, наприклад 13579. Це гасло періодично виписується над літерами відкритого тексту (одна цифра над літерою). При шифруванні літера відкритого тексту замінюється на літеру, котра відстоїть від неї праворуч (циклічно) в абетці на кількість літер, зумовлюваних відповідною цифрою гасла. Так, наприклад, за зазначеного гасла слово THE TABLE перетворюється на шифровану послідовність UKJAJCOJ.

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

Пронумеруємо літери абетки: А = 01, В = 02, С = 03, …, Z = 26.

Слово THE TABLE набуває вигляду:

20.08.05.20.01.02.12.05.

Застосуємо операцію циклічного (модульного) додавання. Від звичайного додавання ця операція відрізнюється тим, що, якщо сума перевищує 26, від неї віднімається 26; обернена операція – віднімання схарактеризовується тим, що, якщо в результаті виходить від’ємне число, до нього додається 26.

Зашифровування провадиться за операцією модульного додавання. Випишемо гасло 13579 періодично під відкритим текстом і складемо відповідні числа. Здобудемо шифртекст: 21.11.10.01.10.13.15.10., що відповідає сполученню літер UKJAJCOJ. При розшифровуванні гасло віднімається з літер шифртексту.

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

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

Шифри Віженера з коротким періодичним гаслом використовуються й у наші дні в системах шифрування, від яких не вимагається високої криптографічної стійкості. Приміром, ці шифри використовуються в програмі-архіваторі "ARJ", у програмі "Word for Wіndows" (версія 2.6)тощо.

Шифр Віженера надалі модернізувався. Так, у XІX сторіччі англійський адмірал Бофор запропонував використовувати таблицю, подану на рис.1.5. У такої таблиці є одна перевага: правила зашифровування й розшифровування за нею збігаються: і в тім, і в тім разі літери вилучаються з верхнього ряду абетки. Це створює певні зручності при використанні шифрів: не треба запам'ятовувати два різні правила (зашифровування й розшифровування).

Зауважимо, що з розвиненням математики зникла потреба у таблицях Віженера й Бофора при зашифровуванні й розшифровуванні.

У ХVІІ сторіччі Дж. Фальконер (Англія) видав книгу "Розкриття секретних повідомлень". У ній викладено деякі розроблені ним методи дешифрування. Зокрема він запропонував використовувати перебирання можливих відкритих слів за їхньою довжиною, якщо в шифрованому тексті залишалося розбивання на слова.

Запропонована Фальконером система шифрування поєднує два шифри: вертикальної перестановки й гаммування.

Наведемо приклад. Оберемо гасло ЛІЛІПУТ. За цим гаслом будується так званий номерний ряд за таким правилом: літери гасла нумеруються за абеткою, при цьому однакові літери набувають послідовних номерів. Зазначеному гаслові відповідає такий номерний ряд: 3 1 4 2 5 7 6

АБВГДЕЄ ЖЗИ І Ї Й К Л М Н О П РС Т У ФХЦЧШЩ Ь ЮЯ

1 3 5 6 7

2 4

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Рисунок 1.5 – Шифр Бофора для англійської абетки

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

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

Всього машина Джефферсона мала 36 дисків на кожному з яких було нанесено по 26 букв латинського алфавіту. Це означає, що загальна кількість варіантів, якими може бути зашифроване повідомлення дорівнює 26!*36! і має порядок 10 60.

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

У 20-х роках ХХ сторіччя було винайдено електромеханічні пристрої шифрування, котрі автоматизують процеси шифрування й дешифрування. Робота таких машин базується на принципі багатоабеткової заміни символів вихідного тексту за довгим ключем відповідно до версії шифру Віженера. Більшість з них – американська машина SІGABA (М-134), англійська TYPEX, німецька ENІGMA, японська PURPLE - були роторними машинами.

Головною деталлю роторної машини є ротор (чи колесо) із дротовими перемичками всередині. Ротор має форму диска (розміром з хокейну шайбу). На кожному боці диска розташовано рівномірно за колом m-електричні контакти, де m – кількість знаків абетки (в разі латинської абетки m = 26, української – 33). Кожен контакт на передньому боці диска з'єднано з одним з контактів на задньому боці. Як наслідок електричний сигнал, котрий являє собою знак, буде переставлено відповідно до того, як він проходить через ротор від переднього боку до заднього.

Приміром, ротор можна закомутувати дротовими перемичками для підставляння А замість Ф, Б – замість У, С – замість Л і т. п. При цьому вихідні контакти одного ротора мають приєднуватися до вхідних контактів ротора, який слідує за ним. Тоді, наприклад, якщо на клавіатурі чотирироторної машини натискалася клавіша А, то перший ротор міг перетворити її на літеру Ф, яка, пройшовши через другий ротор, могла стати літерою Т, яку третій ротор міг замінити на літеру К, котра могла бути перетворена четвертим ротором на літеру Е шифртексту. Після цього ротори поверталися – і наступного разу заміна була іншою. Аби спантеличити криптоаналітиків, ротори оберталися з різною швидкістю.

Щоб роторна машина була оптимальною, повинні виконуватись наступні умови:

  • період повторення має бути великим;

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

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

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

  • роторів;

  • порядку розташування роторів;

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

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

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

Роторні машини були найважливішими криптографічними пристроями під час другої світової війни й домінували, принаймні, до кінця 50–х років минулого сторіччя.

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

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

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

= (Х0, Х1, ..., Xn–1)

на шифртекст

= (Y0, Y1 ...,Yn1)

за допомогою підставляння Цезаря

Yi = (Xi + Ki) mod m, 0 < i < n,

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

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

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

Xi = (YiКi) mod m,

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

Одноразову систему винайдено 1917 року американцями Дж. Моборном та Г. Вернамом. Для реалізації цієї системи підставляння іноді використовують одноразовий нотатник. Цей нотатник складено з відривних листків, на кожному з яких надруковано таблицю з випадковими числами (ключами) Ki. Нотатник виконується в двох екземплярах: один використовується відправником, а другий – одержувачем. Для кожного символу Xi повідомлення використовується свій ключ Кi з таблиці лише одноразово. Після того як таблицю використано, її має бути вилучено з нотатника і знищено. Шифрування нового повідомлення розпочинається з нового листка.

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

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

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

2 Принципи криптографічного захисту інформації

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

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

Чому проблема використання криптографічних методів в інформаційних системах (ІС) стала сьогодні надто актуальна?

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

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

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

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

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

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

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

Існує досить велика кількість методів захисту інформації. Щодо криптографічних, то до їх складу відносять методи, в основі яких лежать секретні алгоритми. Термін „секретний алгоритм” має широке тлумачення, але насамперед, мається на увазі алгоритм, який цілком або будь-який параметр чи частина параметрів якого, відомі лише учасникам інформаційного процесу.

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

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

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

- згідно з характером взаємовідносин, що мають захищатись;

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

- згідно з можливостями зловмисників.

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

2.2 Секретна система зв’язку

Задача, що полягає у захисті інформації під час передачі по каналах зв’язку, вперше була сформульована К. Шенноном у вересні 1945 року, а опублікована у відкритому вигляді у 1949 році в технічному журналі Bell System Technical Journal. Він запропонував секретну систему зв’язку, що приведена на рисунку 2.1.

Згідно із запропонованою системою, на стороні, що передає повідомлення Ті мається джерело повідомлень і джерело ключів Кj. При цьому, на обох множинах Т і К, завдані розподілення Р(Т) і Р(К). Це означає, що для будь-якого Ті є Т визначена ймовірність р(Ті) є Р(Т), а для будь-якого Кj є К визначена ймовірність р(Кі) є Р(К) і виконуються правила.

і .

Рисунок 2.1 – Схема секретної системи зв’язку

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

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

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

Існують наступні загальні вимоги до реалізації криптографічних алгоритмів:

- криптографічні алгоритми повинні бути адаптовані до новітньої програмно-апаратної бази (наприклад, алгоритми блочного шифрування в програмній реалізації повинні бути адаптовані до операцій з 64-розрядними числами);

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

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

- обсяг повідомлення в ході виконання операцій шифрування повинен зводитися до мінімуму;

- повинно бути виключене явище розмноження помилок.

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

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

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

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

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

До переваг програмної реалізації можна віднести те, що програма, написана під одну операційну систему, може бути модифікована під будь-який тип ОС.

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

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

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

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

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

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

Крім того, за допомогою методик такого типу можна здійснювати автентифікацію користувачів за допомогою паролів (статичних чи динамічно змінюваних, котрі можуть зберігатися на різних носіях ключової інформації – смарт-карти, touch-memory і т. д.) або на основі унікальних для кожного користувача біометричних характеристик.

2.3.1 Параметри сучасних шифрів

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

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

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

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

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

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

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

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

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

  1. Мінімальна імовірність практичного дешифрування – обґрунтована числова величина, що характеризує практичну значимість алгоритму дешифрування. Ця величина залежить від багатьох параметрів і, в першу чергу від вимог до безпеки. Один і той же шифр в різних умовах буде мати різні величини цього параметру.

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

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

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

  5. Пам’ять обчислювача – доступна пам’ять, що використовується в процесі обчислення та зберігання даних.

  6. Надійність алгоритму дешифрування – імовірність дешифрування, що визначається обраним методом дешифрування та алгоритмом його реалізації.

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

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

Нехай М – множина всіх можливих методів аналізу шифру F з імовірністю дешифрування (мінімальна імовірність практичного дешифрування). Через S визначимо множину всіх алгоритмів дешифрування, що вимагають пам’яті не більше за величину RAM і відповідають множині М. Крім того, нехай С - множина всіх обчислювачів. Тоді визначимо через Q(c,s) важкість дешифрування алгоритму S по відношенню до обчислювача Q для всіх s S та с С.

З урахуванням сказаного, можна зробити наступне визначення. Стійкість шифру F при заданій мінімальній надійності  та максимальному об’ємі пам’яті RAM, називається величина Q(F), що дорівнює

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

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

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

2.3.2 Елементарні криптографічні перетворення

У статті, що була опублікована Шенноном у 1949 році, було запропоновано будувати шифри, які задовольняють певним умовам щодо їх стійкості, шляхом використання послідовності операцій заміни, перестановок та функціональних перетворень. Такі операції називають елементарними криптографічними перетвореннями (рис.2.2). Щоб перетворення можна було називати елементарним, воно повинно досить легко реалізовуватися програмними або апаратними засобами.

Рисунок 2.2 Елементарні криптографічні перетворення

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

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

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

З урахуванням сказаного, множину шифровеличин U можна розглядати як множину слів Uі алфавіту А*.

а множину шифроперетворень V як множину слів Vі алфавіту В*

Тоді а Якщо кількість символів у алфавітах А і В відповідно дорівнює п і т, тоді загальна кількість шифровеличин Uі повинна складати N п а загальна кількість шифроперетворень Vі повинна складати М т.

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

Множину V можна представити як сімейство з r варіантів такого її розподілення

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

і кожна з підмножин не повинна бути пустою

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

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

У найпростішому випадку шифровеличини співпадають із символами алфавіту Ат, за допомогою яких утворюються відкриті повідомлення, а шифроперетворення із символів алфавіту Вп, з якого утворюються криптограми. Причому, Вп, частіше за все, є підстановкою на Ат , що утворюється за допомогою відображення . Тодіп = т i N=M. Шифри, які передбачають співпадання довжини шифровеличин та відповідних до них шифроперетворень, називають шифрами рівнозначної заміни. В протилежному випадку мають місце шифри різнозначної заміни.

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

де k – є ключ до шифру.

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

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

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

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

Щоб запобігти повному перенесенню статистичних характеристик відкритих повідомлень на відповідні до них криптограми, у минулі часи до складу алфавіту Вп, з якого утворюються закриті криптограми, добавляли додаткові символи так, щоб n < m. Під час зашифрування повідомлень у такий спосіб, кожен символ відкритого тексту можна було замінити на один кількох різних символів заздалегідь визначеної підмножини алфавіту Вп. Цей принцип добре ілюструється рисунком 2.4. Шифри такого типу називають шифрами багатозначної заміни або шифрами пропорційної заміни.

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

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

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

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

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

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

Перестановкою набору цілих чисел від 0 до N-1 будемо називати зміну порядку їх запису. Для того, щоб показати, що символ аі переставлено з i-тої позиції в позицію (i), де 0 (i) < n, скористаємось таким записом

Загальне число перестановок на множині (0,1, ... , N-1) дорівнює

Далі перестановку набору S={s0,s1, ... , sN-1} символів будемо розглядати як взаємно-однозначне відображення на себе

Якщо повідомлення, що підлягає зашифруванню сформоване символами алфавіту А, загальна кількість яких дорівнює т, загальна кількість варіантів, що дають змогу утворити перестановку у групі з п символів, дорівнює (mn)!.

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

Довжина блоку визначає потужність ключового простору. Якщо вона складається з бінарних символів і дорівнює п’яти, існує 120 способів її перестановки. Це означає, що для реалізації такого шифру потрібен пристрій, пам’ять якого повинна вміщувати всі 120 таблиць відповідних перестановок, тобто 2880 біт. У разі ж коли довжина блоку складає 128 символів, операція перестановки стає технічно неможливою, хоча потужність ключового простору, що вона забезпечить, буде дорівнювати 2128 або 1038. В цьому полягає фундаментальна дилема криптографії – ми знаємо, що є ідеалом, але він для нас практично недосяжний.

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

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

2.3.3 Будування композиційних шифрів.

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

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

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

Таким чином, якщо система R1 передбачає наявність т ключів, що обираються відповідно з імовірностями

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

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

Слід пам’ятати, що множення секретних систем у загальному випадку не є комутативним (тобто R1 R2R2 R1), хоча можуть існувати й виняткові ситуації.

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

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

Найкраще, якщо такі елементарні перетворення будуть параметричними, тобто, такими, що залежать кожне від свого ключа ( рис.2.6).

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

  • Розсіювання – це властивість шифру, що вказує на те, як кожен символ у відкритому тексті впливає на шифрування символів у закритому тексті. У оптимальному випадку, кожен із символів відкритого тексту повинен впливати на всі символи у закритому тексті. Це означає, що коли у відкритому тексті (блоці) змінити хоча б один символ, то у відповідному до нього закритому тексті (блоці) кожен символ поміняє своє значення на протилежне з імовірністю, що дорівнює 0,5.

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

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

Спрощена система системи “Люцифер” наведена на рисунку 2.7. Перед тим як виконувати зашифрування, повідомлення розподіляють на блоки фіксованої довжини.

Узв’язку із тим, що реалізація замін та перестановок символів вимагає достатньо великої пам’яті, черговий блок інформації, якій підлягає зашифруванню розподіляється на блоки меншої довжини. У наведеному на рисунку прикладі, 16 розрядний блок розділяється на чотири 4-х розрядні блоки, для кожного з яких передбачається наявність 32-х бітного блоку пам’ятіS, що забезпечують заміну вхідних символів. Якщо обмежитись одним блоком пам’яті на всі 16 розрядів, то його загальний об’єм складав би 216 бітів або 16384 байтів, тобто у 1024 разів більше.

Виходи всіх блоків S під’єднуються до загального блоку Р, що забезпечує перестановку вхідних символів. Загальна пам’ять, що потребує реалізація такого блоку має складати лише 32 біти. Саме виконання рівномірної перестановки у межах всього 16-ти розрядного блоку надає ефективність розсіюванню символів блоку, що підлягає зашифруванню.

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

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

Другий спосіб формування складних криптографічних систем називається “виваженою сумою” і передбачає наявність декількох простих систем (двох і більше, наприклад R1 і R2). Кожного разу, перед зашифруванням чергового повідомлення, випадковим чином з імовірністю р, обирається система шифрування R1, або система шифрування R2, з імовірністю q = 1- р. Таким чином, в загальному випадку, у криптографічному перетворені повідомлення буде брати участь одна із двох окремих секретних систем із загальною областю визначення за правилом . Щоб таку систему можна було практично реалізувати, необхідно, щоб вибір секретної системи повністю визначався складом ключа. В цьому разі буде забезпечено співпадання процедур зашифрування та розшифрування як на стороні джерела повідомлень, так і на приймальній стороні.

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

кожен з яких перетворює повідомлення Ті в одну з т можливих криптограм. Якщо на основі обраного ключа буде вибрана система R1, то повідомлення Ті буде перетворене на одну з криптограм з імовірностями Якщо ж, навпаки, буде обрано систему R2 , це повідомлення буде перетворене на одну з криптограм з імовірностями

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

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

2.4 Загальні відомості про блочні шифри.

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

Розподілення повідомлення на блоки пов’язане із технічними та алгоритмічними особливостями реалізації криптографічних систем.

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

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

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

Зворотною стороною зростання складності криптоаналізу блочних шифрів є складність доказового обґрунтування їх криптографічної стійкості.

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

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

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

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

В сучасних блочних шифрах блоки відкритого тексту і шифртексту уявляють собою двійкові послідовності довжиною звичайно 64 біта. Тобто кожний блок може приймати 264 значень. Тому підстановки виконуються в абетках дуже великого розміру (264 ≈ 1019 „символов”)

Під N – розрядним блоком будемо розуміти послідовність з одиниць і нулів довжини N3:

х = (х0, х1, …, хn-1) Z2,N;

х в Z2,N можна тлумачити як вектор та як двійкове уявлення цілого числа

= .

Наприклад, якщо N = 4, то

(0,0,0,0) → 0 (0,1,0,0) → 4 (1,0,0,0) → 8 (1,1,0,0) → 12

(0,0,0,1) → 1 (0,1,0,1) → 5 (1,0,0,1) → 9 (1,1,0,1) → 13

(0,0,1,0) → 2 (0,1,1,0) → 6 (1,0,1,0) → 10 (1,1,1,0) → 14

(0,0,1,1) → 3 (0,1,1,1) → 7 (1,0,1,1) → 11 (1,1,1,1) → 15

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

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

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

Блочним шифром будемо звати елемент  ,  : х→ у=  (x), де х = (х0, х1, …, хN-1), (у0, у1, …, уN-1)

Припустимо, що

(xi) = уi, 0i < m,

для деякого , вихідного тексту Х = { xi : xi Z2,N } та шифртексту Y = {уi}.

Якщо х{xi},то (xi) {уi}, так як є перестановкою на Z2,N .

Коли відомо, що належить невеликій підмножині П з , тоді можна зробити деякий висновок. Наприклад, коли

П = {j : 0 j< 2N }, j(i) =(i+j) (mod2N), 0i < 2,

то значення (x)при завданном значенні х однозначно визначає . В цьому випадку Х є підмножиною підстановки Цезаря на Z2,N .

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

xi уi, 0i < m,

не зможе визначити вихідний текст, який відповідав би у{уi}.

Якщо для шифрування вихідного тексту використовується підсистема

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

Ключевою системою блочних шифрів є підмножина П[К] симетричеської групи

П[К] = { {k}:kK},

яке індексується по параметру kK; де k – ключ, а К – простір ключей. При цьому треба, щоб різні ключи відповідали різним підстановкам Z2,N .

Ключева система блочних шифрів П[К] використовується наступним образом. Користувач i та користувач j деяким образом укладають згоду відносно ключа k з К, вибираючи, таким чином, елемент з П[К] та передають текст, який зашифровуваний з використанням обранної підстановки. Для того, щоб обозначити Nрозрядний блок шифрованного тексту, який відповідає Nрозрядному блоку вихідного тексту х з використанням підстановки {k} за допомогою ключа k наведемо запис

y = {k,х}.

Припустімо, що злочинцю

  • Відомий простір ключей;

  • Відомий алгоритм визначення підстановки {k} по значенню ключа k;

  • Невідомо, який саме ключ обрано користувачем.

Тоді злочинець може:

  • Получити ключ внаслідок недбалості користувача i та користувача j;

  • Перехопити (шляхом перехоплення телефонних та комп’ютерних повідомлень) шифрованний текст y,який передається від користувача i до користувача j, а потім „перебирати” усі ключи з ключевого простіру К доки не буде одержане повідомлення вихідного тексту, яке можна було б розуміти.

  • Получити відповідні вихідний та шифрованний тексти (x у) та скористатися методом „перебирання” усіх ключів з ключевого простіру К.

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

    • листинг на мові асемблеру характеризується дуже виявленним структурованним форматом;

    • цифрове уявлення графічної та звукової інформації має невеликий набір знаків.

Припустімо, що N = 64 та кожний елементможе використовуватися як підстановка, так що К =

Тоді

  • Існує 264 64-розрядних блоків; злочинець не може використовувати каталог з 264≈1.8·1019 рядками;

  • Випробування на ключ при кількості ключів, які дорівнюють (264)!, практично є неможливими; відповідність вихідного та зашифровуванного текстів для деякіх Nрозрядних блоків {k,xi} = уi , 0i < m, не дає злочинцю ніякої інформації відносно значення {k,x} для x { x i}.

Системи шіфрування з блочними шифрами, абеткою Z2,64 та простіром ключів

К = є неподільними (тому, що виходить за межі можливості як, злочинця, так і того користувача, що створив вихідний текст).

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

  • Досить велике N (64 чи більше) для того, щоб ускладнити користування каталогом;

  • Досить великий простір ключів для того, щоб виключити змогу підбору кдючів;

  • Складні співвідношення {k,x}: х→ у=  (k,x) поміж вихідним повідомленням та шифртекстом для того, щоб аналітичні та/чи статистичні методи визначення вихідного тексту та/чи ключа на базі відповідності вихідного повідомлення та шифртексту було не можна реалізувати.

2.5 Генерування блочних шифрів.

2.5.1 Використання нелінійних структур для побудови блочних шифрів.

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

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

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

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

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

Ті

Кі

Варіант попередньої комбінації

даних і ключа

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

Варто мати на увазі, що, застосовуючи деяку операцію «», необхідно

Ti

Ki

Ti+1

подбати, щоб для неї існувала зворотна їй операція«». Тобто вона повинна бути придатна для реалізації умов побудови симетричної криптосистеми.

К) К = Т

Ti Ki

Ti+1

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

Тi+1 = Тi fi , Кi ).

У загальному виді, цю функцію можна записати так

Тi+1 = F(Тi , Кi ).

Відмінність цих виразів у тому, що функціяFповинна мати зворотну операцію, а функціяf– не обов'язково.

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

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

Зворотність виразуозначає, що повинна існувати ефективнообчислюючафункція g (Тi+1, Кi )задовольняюча умові

F(Тi Кi ) = g (Тi+1, Кi ) .

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

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

2.5.2 Використання мереж Фейстеля.

Самим розповсюдженим способом створення блочних шифрів є використання мереж Фейстеля (Рис.2.9).

Підвищення ефективності шифрування було можливим лише у разі відмови від лінійної структури алгоритму. Але, в цьому разі, дуже важко забезпечити зворотний характер криптографічних перетворень. Проблема була у тому, щоб побудувати алгоритм, який не містив би їх взагалі. І ця задача була вирішена співробітниками лабораторії фірми IBM Watson Research Lab нової оригінальної архітектури симетричного шифру на базі незворотних перетворень.

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

Рисунок 2.9 Схема мережі Фейстеля

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

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

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

Щодо другої (правої) половини нового блоку, то вона є результатом гаммування лівої половини попереднього блоку (складанням її ”по модулю два” зі створеною гаммою) за правилом

Як видно із цього виразу, перетворення правої частини блоку залежить від змісту ключа Кі . Це означає, що для кожної ітерації шифрування потрібен окремий ключ. Таким чином, як і у схемі, яку запропонував К. Шеннон, кожне перетворення блоку, який підлягає шифруванню має бути параметричним (тобто таким, що залежить від деякого параметру). Крім того, зважаючи на те, що протягом однієї ітерації буде зашифрованою лише половина блоку, загальне їх число має бути парним. І самі ключі Кі , і функції Fi ( Ri , Кі ), можуть мати свій власний вигляд для кожного етапу шифрування. Що стосується проміжних ключів, то вони можуть бути сформовані з головного ключа за допомогою якого-небудь алгоритму або окремо, таким чином, щоб вони були незалежні один від одного.

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

Звичайно виникає питання про те, чи буде перетворення, яке виконано за допомогою схеми Фейстеля зворотним? Властивість схеми Фейстеля полягає в тому, що навіть коли у якості нелінійного перетворення використовується функція, яка сама не є зворотною, або до якої не існує зворотної функції, перетворення залишається зворотнім. Справа тут у тому, що для виконання зворотного перетворення не треба обчислювати функціюFi-1( Ri , Кі ). Єдине, про що слід пам’ятати – під час розшифровування даних проміжні ключі мають використовуватися у зворотному порядку. Більш того, схема Фейстеля є симетричною.

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

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

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

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

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

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

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

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

2.6 Поточні шифри

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

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

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

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

2.7 Шифри гаммування

2.7.1 Накладення гамми шифру на відкритий текст.

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

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

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

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

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

, i = 1 ... М,

де i-й блок шифртексту; i-й блок гамми шифру; i-й блок відкритого тексту; М – кількість блоків відкритого тексту.

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

= .

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

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

При шифруванні методом гаммування як ключ використовується випадковий рядок бітів, котрий поєднується з відкритим текстом, також поданим у двійковому вигляді (наприклад А = 00000, У = 00001, З = 00010 і т. д.), за допомогою побітового додавання за модулем 2 – і в результаті виходить шифрований текст.

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

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

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

До криптографічно стійкого генератора псевдовипадкової послідовності чисел (гамми шифру) пред'являються три основних вимоги:

  • період гамми повинен бути доволі великим для шифрування повідомлень різної довжини;

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

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

Довжина періоду гамми є найважливішою характеристикою генератора псевдовипадкових чисел. По закінченні періоду числа розпочнуть повторюватися – і їх можна буде завбачати. Необхідна довжина періоду гамми визначається степенем закритості даних. Чим довше є ключ, тим складніше його добрати. Довжина періоду гамми залежить від обраного алгоритму здобування псевдовипадкових чисел.

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

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

Один з перших способів генерування псевдовипадкових чисел на ЕОМ запропонував 1946 року Джон фон Нейман. Суть цього способу полягає в тому, що кожне наступне випадкове число утворюється піднесенням до квадрата попереднього числа з відкиданням цифр молодших і старших розрядів. Однак цей спосіб виявився ненадійним – і від нього невдовзі відмовились.

З відомих процедур генерування послідовності псевдовипадкових цілих чисел найчастіше застосовується так званий лінійний конгруентний генератор. Цей генератор продукує послідовність псевдовипадкових чисел Y1, Y2,..., Yі-1, Yі, ..., використовуючи співвідношення

Yi = (a · Yi-1 + b) mod m,

де Yii-тe (поточне) число послідовності; Yi-1 – попереднє число послі-довності; а, b та m – константи; m – модуль; а – множник (коефіцієнт); b – приріст. Поточне псевдовипадкове число Yi дістають з попереднього числа Yi-1 множенням його на коефіцієнт а, додаванням з прирістом b та обчисленням остачі від ділення на модуль m. Дане рівняння генерує псевдовипадкові числа з періодом повторювання, котрий залежить від обираних значень параметрів а, b та m і може сягати значення m. Значення модуля m обирається дорівнюваним 2n або простому числу, наприклад

m = 231 – 1. Приріст b має бути взаємно простим з m, коефіцієнт а має бути непарним числом.

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

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

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

;

(2.7.1)

,

де h0 0,hk = 1 і кожне hi належить до поля GF(q).

Розв’язком цих рівнянь є послідовність елементів а0, а1, а2, ... поля GF(q). Співвідношення (2.7.1) визначає правило обчислення ak за відомими значеннями величин а0, а1, а2, ..., аk–1. Потім за відомими значеннями а0, а1, а2, ..., аk визначають ak+1 і т. д. Як наслідок за початковими значеннями а0, а1, а2, ..., аk–1 можна побудувати нескінченну послідовність, причому кожен її наступний член визначається з k попередніх. Послідовності такого виду легко зреалізовуються на комп'ютері; при цьому реалізація виходить особливо простою, якщо всі hi та ai набувають значень 0 та 1 з поля GF(2).

На рис.2.13 подано лінійну послідовну перемикальну схему, яку може бути використано для обчислення суми (2.7.1) і, отже, для обчислення значення ak за значеннями k попередніх членів послідовності. Вихідні величини а0, а1, а2, ..., аk–1 вміщують в розряди регістру зсування, послідовні зсунення вмісту якого відповідають обчисленню послідовних символів; при цьому вихід i-го зсунення дорівнює ai. Даний пристрій називають генератором послідовності чисел, побудованим на базі зсувового регістру з лінійним зворотним зв'язком.

Позначення:

– суматор за модулем 2

– ланцюг (відвід) з коефіцієнтом передавання h, h = 0 або 1

– запам'ятовувальна комірка, котра зберігає а, тобто на виході

комірки а = 0 або а = 1

Рисунок 2.13 – Генератор з регістром зсування

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

h (X) = hj Х j,

де Х – формальна змінна; hj – коефіцієнт при Х j, який набуває значення 0 чи 1; h0 ≠ 0, hk = 1, і нехай n – найменше ціле додатне число, для якого багаточлен Xn – 1 ділиться на h(X). Окрім того, багаточлен

g(X) = (Xn – 1) / h (X).

Тоді розв’язки рекурентних співвідношень

hj ai+J = 0

у вигляді послідовності елементів a0, a1, ai, …, an–1 є періодичні з періодом п і сукупність, складена з перших періодів усіх можливих розв’язків, розглядуваних як багаточлени за модулем (Xn – 1), тобто

a (X) = a0 Xn–1 + a1 Xn–2 + … + an–2 X + an–1,

збігається з ідеалом, породженим багаточленом g(X) в алгебрі багаточленів за модулем (Xn – 1).

Зауважимо, що якщо за такого визначення багаточлена a(X) елементи а0, а1, а2, … обчислюються в порядку зростання номерів, то коефіцієнти багаточлена a(X) обчислюються, розпочинаючи з коефіцієнтів при ступенях вищих порядків. Слід також зазначити, що вигляд багаточлена

визначає конфігурацію зворотних зв'язків (відводів) hj в генераторі з регістром зсування. Інакше кажучи, якщо в багаточлена h(X) коефіцієнт hj = 1, це означає, що відвід hj у схемі генератора наявний, якщо ж у багаточлена h(X) коефіцієнт hj = 0, то відвід hj в схемі генератора є відсутній. У якості h(X) необхідно обирати незвідний примітивний багаточлен. За такого обрання багаточлена h(X) зі старшим степенем m генератор забезпечує видавання псевдовипадкової послідовності двійкових чисел з максимально можливим періодом 2m – 1.

Розглянемо за приклад трирозрядний регістр зсування з лінійним зворотним зв'язком (рис.2.14), побудований відповідно до незвідного примітивного багаточлена

h(X) = X3 + X2 + 1,

де коефіцієнти h3 = 1, h2 = 1, h1 = 0, h0 = 1.

Рисунок 2.14 – Трирозрядний регістр зсування зі зворотними зв'язками

Нехай ключем є 101. Регістр розпочинає працювати з цього стану; послідовність станів регістру наведено на Рис.2.14. Регістр проходить через усі сім ненульових станів – і знову повертається до свого вихідного стану 101. Це є найдовший період даного регістру з лінійним зворотним зв'язком. Така послідовність називається послідовністю максимальної довжини для зсувового регістра (Maxіmal Length Shіft Regіster Sequence – MLSRS). За будь-якого цілого m існує m-бітова послідовність MLSRS з періодом 2m – 1. Зокрема за m = 100 послідовність матиме період 2100 – 1 і не повторюватиметься 1016 років при передаванні лініями зв'язку зі швидкістю 1 Мбіт/с.

У нашому прикладі вихідною послідовністю (гаммою шифру) Гш зсувового регістру зі зворотним зв'язком є послідовність 1010011, котра циклічно повторюється. У цій послідовності є чотири одиниці й три нулі і їхній розподіл є настільки близький до рівномірного, наскільки це є можливе в послідовності, котра має довжину 7. Якщо розглянути пари послідовних бітів, то пари 10 та 01 з'являються двічі, а пари 00 та 11 – одноразово, що знову стає настільки близьким до рівномірного розподілу, наскільки це є можливо. У разі послідовності максимальної довжини для m-розрядного регістру ця властивість рівнорозподілюваності поширюється на трійки, четвірки й т. д. бітів, аж до m-бітових груп. Внаслідок такої близькості до рівномірного розподілу послідовності максимальної довжини часто використовуються в якості псевдовипадкових послідовностей у криптографічних системах, котрі імітують роботу криптостійкої системи одноразового шифрування.

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

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

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

Нехай S(і) – вектор-стовпець, який складається з m символів 0 та 1 й визначає стан регістру в і-й момент часу. Тоді

S(i + 1) = A · S(i) mod 2,

де А – матриця розміром mm, котра визначає положення відводів регістру зі зворотним зв'язком.

Для трирозрядного регістру (рис.2.14)

А = .

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

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

S (1) – перша група m відомих бітів ключового потоку;

S (2) – наступна група (розпочинаючи з номера 2) з m відомих бітів

ключового потоку;

S (m + 1) – остання група з m відомих бітів ключового потоку.

Далі можна утворити дві матриці розміром mm:

X(1) = [S(1), S(2), …, S(m)];

X(2) = [S(2), S(3), …, S(m + 1)],

пов'язані співвідношенням

X(2) = A · X(1) mod 2.

Можна довести, що для будь-якої послідовності максимальної довжини матриця X(1) завжди є несингулярна, тому матрицю А можна обчислити як

A = X(2) [X(1)]–1 mod 2.

Обертання матриці Х(1) потребує (щонайбільш) біля m3 операцій, тому легко виконується за будь-якого розумного значення m.

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

Рисунок 2.15 – Лінійний регістр зсування

з нелінійними логічними ланцюгами на виході

Функція f має обиратися у такий спосіб, аби забезпечити оптимальний баланс поміж нулями й одиницями, а „фільтрована” послідовність має розподіл, близький до рівномірного. Необхідно також, аби „фільтрована” послідовність мала великий період. Якщо (2m – 1) є простим числом (як у прикладі: за m = 3 маємо 23 – 1 = 7), то „фільтрована” послідовність може мати період (2m – 1) (при обранні структури зсувового регістру відповідно до незвідного примітивного багаточлена h(X) степеня m). До згаданих значень m належать, зокрема, такі: 2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607, 1279, 2203, 2281, а здобуті в такий спосіб прості числа називаються простими числами Мерсена.

Незважаючи на те, що „фільтровану” вихідну послідовність зазвичай не можна здобути за допомогою m-розрядного зсувового регістру з лінійним зворотним зв'язком, її завжди можна здобути за допомогою зсувового регістру більшої довжини з лінійним зворотним зв'язком. Регістр довжиною (2m – 1) завжди дозволить це зробити, а іноді для цього придатен і більш короткий регістр.

3 симетричні криптографічні системи

3.1 класичні симетричні криптосистеми

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

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

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

  • Перестановки

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

  • Одно- та багатоабеткові підстановки

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

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

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

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

  • Поточні шифри

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

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

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

  • Гаммування

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

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

3.2 Криптосистема Хілла

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

Еа,b: → ;

Еа,b: t Еа,б(t);

Еа,b(t) = at + b (mod m),

де a, b – цілі числа, 0  a, b < m; НСД (найбільший спільний дільник) (am) = 1, для визначення n-грам

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

Нехай є лінійним перетворенням, описуваним квадратною матрицею, причому

: .

Криптосистема, розроблена Хіллом, базується на лінійній алгебрі.

Нехай простори вихідних повідомлень та криптотекстів збігаються і дорівнюють ∑, де ∑ – англійська абетка. Надамо літерам номери відповідно до порядку їхнього слідування в абетці:

Таблиця 3.1 - Відповідність поміж англійською абеткою та множиною цілих

0

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

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Всі арифметичні операції виконуються за модулем 26 (кількість літер в абетці). Це означає, що 26 ототожнюється з 0, 27 – з 1, 28 – з 2 і т. д.

Оберемо ціле число d  2. Воно зазначає розмірність використовуваних матриць. У процедурі зашифровування набори з d літер вихідного повідомлення зашифровуються разом. Візьмемо d = 2.

Нехай тепер А – квадратна dd матриця. Елементами А є цілі числа від 0 до 25. Вимагатимемо далі, аби матриця А була невиродженою, тобто існувала обернена матриця А–1. Наприклад,

А = таА–1 = .

Нагадаємо, що арифметичні операції провадяться за модулем 26. Це дає, приміром,

2 · 17 + 5 · 9 = 79 = 1 + 3 · 26 = 1,

тобто, як і мало бути, одиницю на головній діагоналі одиничної матриці.

Зашифровування здійснюється за допомогою рівняння

АР = С,

де Р та Сd-розмірні вектори-стовпці. Більш докладно: кожен набір з d літер вихідного повідомлення визначає вектор Р, компонентами якого є номери літер. Врешті, С знову інтерпретується як набір d літер криптотексту.

Наприклад, HELP визначає два вектори:

P1 = =таP2 = =.

З рівнянь

АP1 = =C1 та АP2 = =C2

дістаємо криптотекст HІTE.

Розглянемо тепер сферу діяльності криптоаналітика. Припустімо, що аналітик здогадався, що d = 2. Йому потрібно віднайти матрицю А чи, ще краще, обернену матрицю А–1. З цією метою він обирає вихідне повідомлення HELP і довідується, що відповідний криптотекст є HІTE. Криптоаналітикові відомо, що

А =таА =.

Це може бути записано у вигляді

А = ==.

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

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

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

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

А =,А =таА =.

Не існує оберненої квадратної матриці, котру може бути утворено з трьох векторів-стовпців, які з'являються як коефіцієнти М.

Криптоаналітик виявляє, що кожна обернена квадратна матриця

А′ =

може бути базисом криптосистеми, оскільки вона шифрує SAHARA як CKVOZІ. Отже, криптоаналітик може зупинитися на матриці

А′ = ,

для якої оберненою є матриця

(А′)–1 = .

Криптоаналітик є готовий до перехоплення криптотексту. Він дістає текст NAFG й одразу обчислює

= та=.

Два вектори-стовпці породжують вихідне повідомлення NAZІ. Однак легальний користувач знає оригінальну матрицю А та її обернену матрицю й обчислює

= та=,

що дає вихідне повідомлення NAVY.

Криптоаналітик припустився прикрої помилки, котра могла спричинитися до хибних кроків.

Алгоритм зашифровування в криптосистемі Хілла.

Дано квадратну матрицю виду

А = .

  1. Обчислюється визначник D матриці А:

D = а11а22а12а21 = 3 · 5 – 2 · 3 = 15 – 6 = 9.

2 Визначається долучена матриця алгебричних доповнень А*, складена з алгебричних доповнень до елементів матриці А, причому алгебричне доповнення до елемента аij перебуває на перетинанні j-того рядка й і-того стовпця.

А* = .

Під алгебричним доповненням Аij елемента аij розуміють мінор Мij, домножений на (–1)i+j:

Аij = (–1)i+j Мij,

тобто

А11 = (–1)1+1 · М11 = (–1)2 · а22 = 1· 5 = 5;

А12 = (–1)2+1 · М12 = (–1)3 · а12 = –1· 2 = –2;

А21 = (–1)1+2 · М21 = (–1)3 · а21 = –1· 3 = –3;

А22 = (–1)2+2 · М22 = (–1)4 · а11 = 1· 3 = 3.

Отже, можна записати здобуту матрицю алгебричних доповнень:

А* = .

3 Визначається обернена матриця А–1.

За обернену матрицю для А слугуватиме матриця, котра виходить із долученої матриці А* діленням усіх її елементів на D.

А–1 = =.

Перевіримо, чи виконується умова А·А–1 = Е, де Е – квадратна одинична матриця.

За правилом перемножування матриць, елемент, який розміщено в і-тому рядку й j-тому стовпці матриці добутку, дорівнює сумі добутків відповідних елементів і-того рядка матриці А та j-того стовпця матриці А–1.

А· А–1 = ·===

= =Е.

Отже, можна дійти висновку, що обернену матрицю знайдено правильно.

4 Зведення оберненої матриці за модулем 26.

А–1 mod 26 = mod 26 =mod 26 =.

Нотатка: число 135 – це результат пушуку числа, яке дає залишок 5 за модулем 26. При цьому виконується додаткова умова – знайдене число повинно ділитися на 9 без залишку. Аналогічно здобуваються числа 153, 180, 81.

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

Зашифровування здійснюється за допомогою рівняння А · Р = С, де А – матриця перетворення; Р – вектор, компонентами якого є номери літер відкритого повідомлення відповідно до табл. 3.1; С – вектор, компонентами якого є номери літер закритого повідомлення відповідно до табл. 3.1.

Зашифруємо слово HELP.

Спочатку розіб'ємо n-граму відкритого тексту на біграми. Потім у кожній біграмі відкритого тексту замінимо кожну літеру на її числовий еквівалент відповідно до табл. 3.1.

Вихідне повідомлення HELP визначає два вектори:

Р1 = =таР2 = =;

С1 = А · Р1 = ·=mod 26 =mod 26 =;

С2 = А · Р2 = ·=mod 26 =mod 26 =.

Отже, здобули послідовність чисел 7, 8, 0, 19.

З табл. 3.1 дістаємо криптотекст HІAT.

Процес розшифровування йде за зворотним алгоритмом.

Р1 = А–1· С1 = ·=mod 26 =mod 26 =;

Р2 = А–1· С2 = ·=mod 26 =mod 26 =.

Здобута цифрова послідовність 7, 4, 11, 15 відповідно до табл. 3.1 надає можливість відновити вихідний текст: HELP.

3.3 Сучасні симетричні криптосистеми

К.Шеннон в своїх роботах по теорії зв′язку зробив висновки, що в практичних шифрах необхідно використовувати два принципу: розсіювання та перемішування.

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

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

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

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

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

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

3.4 Стандарт шифрування DЕS

Стандарт шифрування даних DES (Data Encryption Standard) був опублікований у 1977 р. Національним бюро стандартів США. Типичний блоковий шифр, стандарт DES призначений для захисту від несанкціонованого доступу до важливої, але несекретної інформації в державних і комерційних організаціях США. Алгоритм, покладений в основу стандарту, у 1980 був схвалений Національним інститутом стандартів і технологій США (НІСТ). Алгоритм DES найбільш часто застосовується в системах захисту комерційної інформації.

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

Суть алгоритму зводиться до наступного.

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

Система DES використовує операції заміни та перестановок символів та додавання за модулем 2.

Зручністю застосовуваного алгоритму є те, що операції шифрування і розшифрування в DES є зворотними. Узагальнена схема процесу шифрування в алгоритмі DES має такий вигляд (Рис.3.1)

Ключ

Рисунок 3.1- Узагальнена схема шифрування в алгоритмі DES

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

Вхідна послідовність М = m1, m2, …, m64 перетворюється блоком початкових перестановок в послідовність M= m58, m50, …,m7, де mі може приймати значення 0 чи 1. Перетворення виконується по фіксованої таблиці 3.2.

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

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

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

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

Завершальне перетворення алгоритму - зворотна перестановка здійснюється за допомогою матриці зворотної перестановки IP -1.

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

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

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

Алгоритм побудований на основі мережі Фейстеля (Рис.2.10).

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

Отримана після першої перестановки 64-бітна послідовність M розбивається навпіл на два 32-розрядних блоки L0 і R0 .

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

Нехай Mi - результат i -ї ітерації:

Mi = Li Ri

де L i = m 1, m 2, …, m 32; R i = m 33, m 34,…, m 64... У цьому випадку результат ітерації описується наступними формулами:

Li = Ri-1, i =1,2,…,16;

Ri = Li-1 f (Ri-1, Ki ), i =1,2,…,16;

Функція f називається функцією шифрування. Її аргументами є послідовність Ri-1, одержана на попередньому кроці шифрування і 48-бітовий ключ шифрування K, що формується за визначеним правилом з 64-бітового ключа шифрування K.

Усі перетворення, виконувані в рамках алгоритму DES, ілюструє схема представлена на рисунку 3.2

Вхідна послідовність, 64 біт

Початкова перестановка

K 1

K 2

K 16

Вихідна послідовність (шифртекст), 64 біт

Рисунок 3.2 Схема алгоритму DES

Значення L0 і R0 виходять звичайною розбивкою блоку M, який підвергся первісній перестановці, навпіл. Далі, блок L1 виходить, за правилом L1 = R0. Для одержання значення R1, необхідно обчислити значення функції f (R1, K1 ). Ця операція здійснюється у відповідності з наступним алгоритмом (Рис. 3.3).

R i-1 32 біта

Кi, 48 біт

f (Ri-1, Ki ), 32 біта

Рисунок 3.3 - Схема обчислення функції шифрування f (Ri-1, Ki ).

На початку 32-х бітний блок розширюється до 48-ми символів. При цьому, додаткових 16 символів беруться, за визначеним правилом, з розширюваного блоку згідно таблиці 3.4.

Таблиця 3.4 Функція розширювання Е

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

Потім, до отриманого 48-ми розрядному блоку додають за модулем 2 символи першого 48-ми розрядного ключа K1.

На наступному етапі отримана 48-ми розрядна послідовність розбивається на 8 груп по 6 символів і кожна 6-ти символьна група, відповідно до шифрувальної таблиці 3.5 перетвориться в 4-символьну групу. Після цього отримані таким чином, вісім 4-х символьних груп складають 32-х бітовий блок, що піддають черговій табличній перестановці (Таблиця 3.6).

Таблиця 3.5 Функціональні перетворення Sj

Рядки

Стовпці

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

S1

0

1

2

3

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

0

1

2

3

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

4

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

0

1

2

3

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

15

10

14

7

1

10

13

0

6

9

8

7

4

15

14

3

11

5

2

12

S4

0

1

2

3

7

13

14

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

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

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

S5

0

1

2

3

2

12

14

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

0

1

2

3

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

S7

0

1

2

3

4

11

2

14

15

0

8

13

3

12

9

7

5

10

6

1

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

0

1

2

3

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

Кожна з функцій Sj (Bj) перетворює 6-бітову послідовність в 4-бітову по наступному алгоритму:

  • перший та останній біти вихідної послідовності Bj (Bj = b1 b2 b3 b4 b5 b6 , де bj = 0 чи 1) визначають номер рядка k. Тобто число b1 b6 , яке переведено з двійкової системи обчислення до десяткової – це номер рядка в таблиці 3.5;

  • другий, третій, четвертий та п’ятий бити послідовності Bj з визначають номер стовпчика l. Тобто число b2 b3 b4 b5 , яке переведено з двійкової системи обчислення до десяткової – це номер стовпця в таблиці 3.5;

  • результат перетворення обирається на перетинанні строки k та стовпця l.

Приклад. Нехай, B=011011. Тоді S(1)(B)=0101.

Дійсно, k = 1 (b1 b6 = 01(2) = 1(10))

l = 13 (b2 b3 b4 b5 = 1101(2) = 13(10))

На перетинанні стовпця 13 та рядка 1 задано число 5(10) = 0101(2) . Таким чином, послідовність 011011 перетворена на послідовність 0101.

Функція перестановки бітів P, задається таблицею 3.6.

Таблица 3.6 "Функція перестановки 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

На кожному кроці ітерації для функціонального перетворення використовується нове значення ключа Ki .

Нове значення ключа Ki обчислюється з його початкового значення. Ключ являє собою 64-бітний блок з 8 бітами контролю по парності, розташованих у позиціях 8, 16, 24, 32, 40, 48, 56, 64.

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

Таблиця 3.7- Функція первісного встановлення ключа

57

49

41

33

25

17

9

1

58

50

42

34

26

18

10

2

59

51

43

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

Результат перетворення G(K) розбивається на дві частини C0 і D0 по 28 біт кожна. Перші чотири рядки матриці визначають біти послідовності C0 (символи ключа зчитуються по рядках). Наступні чотири рядки матриці визначають біти послідовності D0. Після визначення C0 і D0 рекурсивно визначаються значення Ci і Di. З цією метою виконуються операції циклічного зсування вліво на число кроків, обумовлене таблицею 3.8

Таблиця 3.8 - Циклічні зсування

Номер

ітерації

Кількість зрушень вліво

Номер

ітерації

Кількість зрушень вліво

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

Операції зсування виконуються незалежно для послідовностей Ci і Di. Ключ Ki, обумовлений на кожнім кроці ітерації, є результат вибору конкретних 48-и біт з 56-и бітової послідовності і їхньої перестановки (рисунок 3.4)

к1

к2

к16

Рисунок 3.4 - Схема алгоритму обчислювання ключів Кi

Порядок вибору визначається функцією Н.

Ki = H ( Ci Di )

Функція H визначається матрицею, що завершує формування ключа за таблицею 3.9

Таблиця 3.9 - Функція H

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

Символи послідовностей Ci і Di. вписуються в матрицю Н, відповідно до номерів її осередків і, потім, зчитуються по рядках. Таким чином, виконується перестановка символів.

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

Операції, виконувані в процесі шифрування з використанням алгоритму DES обернені. Процедура розшифровування на стороні приймача відрізняється тільки черговістю формування ключів Ki. Вони повинні подаватися в зворотному порядку K16  K1.

Початково стандарт DЕS використовувався лише для шифрування та розшифровування даних ЕОМ. Потім він став використовуватися для других завдань, наприклад, для автентифікації чи захисту повідомлень електронної системи платежів при операціях поміж клієнтами та банками.

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

3.4.1 Режим „ Електронна кодова книга ”

Режим „ Електрона кодова книга ” ECB (Electronic Code Book) передбачає виконання криптографічних перетворювань у відповідності з головним алгоритмом DES. Кожний 64-х розрядний блок перетворюють з використанням одного і того же ключа (рис.3.5).

Прийом

Передача

Рисунок 3.5 - Режимелектронної кодової книги

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

3.4.2 Режим „Зчеплення блоків шифру”

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

М = М1М2М3М4

До першого блоку додається по модулю два первісний вектор S який регулярно змінюється на приймальній і передавальній сторонах. Після цього, отримана сума шифрується з використанням алгоритму DES. Таким чином, в канал передається 64 – х бітове повідомлення С1.

Отримана на стороні приймача сума С1 розшифровувається, потім від неї віднімається первісний вектор S.

На наступному етапі шифрування, при передачі наступного блоку, замість первісного вектору S до зашифрованного повідомлення додається передаване повідомлення С1. Ця процедура повторюється при передаванні кожного наступного 64 – розрядного блоку (рисунок 3.6)

Таким чином, останній блок шифртексту буде функцієй секретного ключа,

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

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

Рисунок. 3.6 - Режим "Зчеплення блоків шифру"

3.4.3 Режим „Зворотний зв’язок по шифру”

Цей режим допускає, щоб довжина блоку відрізнялась від 64 біт. Припустимо, що довжина блоків, на які розбивається послідовність, яку треба зашифрувати менше 64 біт (рисунок 3.7)

Зсування Зсування

Вх.бл. Вх. бл.

1 k 1 k

1 k Вих. бл. Вих. бл. 1 k

1 k 1 k

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

Рисунок 3.7 - Схема алгоритму в режимі зворотного зв’язку по шифру

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

Припустимо, що в результаті розбивання на блоки отримали n блоків довжиною k біт кожний (залишок дописується нулями).

Тоді для кожного і = 1… n блок шифртексту

Ci = Mi  Pi-1,

де Pi-1 – k старших бітів попереднього зашифровуваного блоку

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

видалення його k старших бітів та запису Ci в регістр.

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

Mi = Ci  Pi-1.

3.4.4 Режим „Зворотний зв’язок по виходу”

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

Нехай

М = М1М2 ,…, Мn

Для усіх і = 1,…, n

Ci = Mi  Pi .

де Pi - старші k бітів операції DES Ci-1.

Алгоритм шифрування ілюструє схема на рис.3.8

Зсування

Зсування

1 k Вх.бл. Вх. бл. 1 k

Вих. бл. Вих. бл.

1 k 1 k

1 k 1 k

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

Рисунок 3.8- Схема алгоритму у режимі зворотного зв’язку по виходу

Слабкість алгоритму DЕS пов’язується з невеликою довжиною ключа.

У 1993 році Вінер продемонстрував, що за 1 000 000 долл. Можна зробити машину для пошуку ключів алгоритму DЕS. При відомих вихідного та зашифровуванного тексту ця машина зможе знайти ключ за 3,5 години. Крім цього, 15 липня 1998 року коаліція компанії Cryptography Research, Advanced Wireless Technology та Electronic Frontier Foundation оголосила про атаку, яка успішно була здійснена на алгоритм DЕS. Ці компанії створили машину, що здійснювала пошук ключів під назвою DЕS Cracker (відомою також під назвою Deep Cracker), яка коштувала 250 000 долл. Зо допомогою DЕS Cracker знайшли ключ алгоритма DЕS Challenge за 56 годин. Це було доказом того, що з урахуванням рівня обчислювальних технологій кінця 1990-х років, ключ, який має довжину 56 біт є дуже малим для того, щоб забезпечити стійкість шифру з секретним ключем.

3.5 Алгоритм шифрування IDEA.

Перший варіант шифра був опубліковано в 1990 році. Його автор Ксуеджа Лай и Джеймс Месси. Кінцева назва розшифровується, як International Data Algoritm.Існує думка, що IDEA - це один з найбезпечніших блочних алгоритмів, опублікованих на сьогоднішній день.

X1(1) X2(1) X3(1) X4(1)

К1(1) К2(1) К3(1) К4(1)

К5(1)

К6(1)

К1(9) К2(9) К3(9) К4(9 )

Y1 Y2 Y3 Y4

Х1 - 16-ти бітовий підблок відкритого текста.

Y1 - 16-ти бітовий підблок шифртекста.

К1(9) - 16-ти бітовий підблок ключа.

- побітове додавання по модулю два 16-ти бітових підблоків

- додавання по модулю 216 16-ти бітових цілих

- помноження по модулю 216 - 1 16-ти бітових цілих

Рис.3.9 Один етап шифрування IDEA

Цей алгоритм передбачає попереднє розділення вихідної послідовності на 64-х розрядні блоки, які шифруються за допомогою 128-и бітового ключа. Алгоритм побудований на основі мережі Фейстеля (Рис.2.12). Алгоритм шифрування зворотний.

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

  • ХОR (додавання по модулю два);

  • додавання за модулем 216;

  • множення за модулем 216 + 1.

Всі перелічені операції виконуються з 16-ти бітовими блоками.

Спочатку 64–х - розрядний блок розбивається на чотири 16-ти - розрядних підблока Х1 , Х2 , Х3 та Х4 , які є вхідними даними для алгоритма. Усього алгоритм передбачає виконання восьми етапів.

На кожному етапі чотири підблока піддаються операціям додавання (по модулю два), додавання (по модулю 216) та множення (по модулю 216 +1) кожен з кожним та з 6-бітовими 16-ти ключами.

Кожний етап передбачає виконання наступних операцій:

  1. Помножуються Х1 і перший підключ.

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

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

  4. Помножуються Х4 і четвертий підключ.

  5. Виконується додавання за модулем два результатів (1) та (3) кроків.

  6. Виконується додавання за модулем два результатів (2) та (4) кроків.

  7. Помножуються результати кроку (5) та п`ятий підключ.

  8. Додавання за модулем 216 результатів (6) та (7) кроків.

  9. Помножуються результати кроку (8) та шостий підключ.

  10. Виконується додавання за модулем 216 результати (7) та (9) кроків.

  11. Виконується додавання за модулем два результатів (1) та (9) кроків.

  12. Виконується додавання за модулем два результатів (3) та (9) кроків.

  13. Виконується додавання за модулем два результатів (2) та (10) кроків.

  14. Виконується додавання за модулем два результатів (4) та (10) кроків.

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

По закінченні останнього восьмого цикла, виконується вихідне перетворення:

  1. Помноження першого підблока Х1 та першого підключа К1.

  2. Додавання за модулем 216 другого підблока Х2 та другого підключа К2.

  3. Додавання за модулем 216 третього підблока Х3 та третього підключа К2.

  4. Помноження четвертого підблока Х4 та першого підключа К4.

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

Алгоритм шифрувания IDEA передбачає використання 52-х ключів (по шість для кожного із восьми циклів та ще чотирьох для формування вихідного блока). Спочатку 128-и бітовий ключ розбивають на вісім 16-ти бітових підключей, шість із яких використовується в першому циклі, а два залишаються для наступного циклу. Потім 128-и бітовий ключ зсовують на 25 біт вліво та знову ділять на вісім ключей. Перші чотири з них використовують у другому циклі, останні чотири – у третьому циклі. Потім формування наступних ключів виконується аналогічно до завершення алгоритму.

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

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

Цейалгоритм запатентован в странахЄвропита США.

3.6 Стандарт шифрування ГОСТ 28147-89

Алгоритм криптографічного перетворення даних ГОСТ 28147-89 призначений для апаратної і програмної реалізації. Цей алгоритм задовольняє потребам, які предявляються до сучасних криптосистем, не накладає обмежень на секретність інформації, яка передається.

Алгоритм побудований на основі мережі Фейстеля (Рис.3.10). На кожному етапі блок вихідного повідомлення розбивається на ліву L0 і праву R0 частини, які шифрують за правилом

Li = Ri-1

Ri = Li -1 f(Ri-1 ,Ki),

При цьому використовують проміжне значення ключа Кi. Відмінність від алгоритму DES полягає у тому, що замість 56–розрядного ключа використовують 256 – розрядний ключ. В алгоритмі ГОСТ використовують нелінійну функцію fГОСТ , яка суттєво відрізняється від функції fDES що використовується в алгоритмі DES. Кількість етапів шифрування в два рази більше в порівняні з DES, тобто дорівнює 32.

Ki

f(Ri-1 ,Ki)

Рисунок 3.10 - Реалізація мережі Фейстеля в алгоритмі ГОСТ 28147-89

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

Алгоритм ГОСТ допускає декілька режимів роботи. До яких відноситься режим простої заміни, режим гаммування, режим гаммування із зворотнім звязком і режим формування імітовставки.

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

Режим простої заміни передбачає розділення шифруючої послідовності на блоки довжиною 64 розряда і є складовою частиною інших режимів шифрування. Цей режим можна використовувати тільки для шифрування блоків, довжина яких кратна 64–м бітам. В звязку з цим його використовують тільки при передачі наступного ключа. Процедура зашифровування в цьому режимі включає 32 цикли. В ключовий запам'ятовувальний пристрій вводять 256 біт ключа К в вигляді восьми 32- розрядних підключів. Зашифрування даних здійснюється за допомогою блока підстановки S, який складається з 8 вузлів заміни, та регістра зсування, який виконує циклічне зсування вліво (на 11 розрядів) 32 - розрядного вектору, отриманого з виходу блока S.

Схема алгоритму шифрування у режимі простої заміни зображена на рис. 3.11.

КЗП - ключовий пристрій, що запам'ятовує на 256 біт;

СМ1 –32-розрядний суматор за модулем 232

СМ2 32-розрядний за модулем 2

N 1, N 2 – 32-розрядні накопичувачі

R - 32-розрядний регістр циклічного зсуву

S - 32-розрядний блок підстановки, який складається з восьми вузлів заміни S1 S8 з пам'яттю 64 біт кожен.

Рисунок 3.11 – Шифрування у режимі простої заміни

Відкрите повідомлення розбивається на 64-розрядні блоки Т0.

Процедура шифрування містить 32 циклу( j=1,…,32 ).

Перед початком шифрування в ключовий пристрій, що запам'ятовує, вводять 256-розрядний ключ, що розділяється на блоки завдовжки в 32 розряди кожен.

К = К7 К6 К5 К4 К3 К2 К1 К0.

При цьому вхідна послідовність розбивається навпіл:

Т0 = a1(0), a2(0),…, a32(0), b1(0), b2(0),…, b32(0).

Біти b(0), - старші, такі, що стоять ліворуч, а а(0) - молодші біти, що стоять праворуч.

Послідовність

а(0) = a32(0), a31(0),..., a0(0)

вводять в накопичувач N 1, послідовність

b(0) = b32(0), b31(0),…, b0(0)

вводять в накопичувач N 2.

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

a(1) = f (a(0) + K0 ) b(0)

b(1) = a(0)

у даному виразі a(1) - заповнення N1 після першого циклу зашифровування; b(1) - заповнення N2 після першого циклу зашифровування; f - функція шифрування.

Аргументом функції f є сума по модулю 232 числа а(0) і числа К0. Ця функція включає дві операції над одержаною 32-х розрядною сумою (а(0) + K0 ).

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

Блок складається з восьми вузлів заміни S1 S8 з пам'яттю 64 біт кожен. 32-розрядний блок, що поступає від суматора, розбивають на вісім чотирьох- розрядних груп, кожна з яких замінюється іншою чотирьохрозрядною групою. Кожний вузол заміни можна уявити у вигляді таблиці-перестановки шістнадцяти чотирьохрозрядних двійкових чисел в межах 0000…1111. Вхідний вектор – це адреса рядка в таблиці, а число в цьому рядку є вектором на виході. Порядок заміни, що виробляється блоком S, тримається у секреті та відносно рідко змінюється.

Друга операція є циклічним зсуванням 32-х розрядного вектора ліворуч (на 11 розрядів). Ця операція виконується за допомогою регістра зсування R.

У наступному етапі здійснюється складання по модулю два результатів обчислення функції f і вмісту накопичувача N 1. Отриманий результат записують у накопичувач N 1, а у накопичувач N 2 переписують попереднє значення вектора, що містився в N 1. На цьому закінчується перший цикл шифрування.

Останні цикли виконуються аналогічно. Відмінність полягає в тому, що, починаючи з 25-го циклу, ключі подаються з блоку КЗУ в зворотному порядку K7 K0.

Таким чином, протягом всіх 32-х циклів, подача ключів здійснюється в наступному порядку:

K0 , K1 , K2 , K3 , K4 , K5 , K6 , K7 , K0 , K1 , K2 , K3 , K4 , K5 , K6 , K7,

K0 , K1 , K2 , K3 , K4 , K5 , K6 , K7 , K7 , K6 , K5 , K4 , K3 , K2 , K1 , K0 .

У 32-му циклі результат з суматора СМ2 вводиться в накопичувач N 2, а в накопичувачі N 1 зберігається його попередній вміст. При цьому вміст обох накопичувачів N 1 і N 2 є блоком зашифрованих даних Тш , відповідних блоку відкритих даних Т0.

де а(j)= a32(j), a31(j) ., a1(j), - заповнення N 1 після j -го циклу шифрування, а b(j)= b32(j), b31(j) ., b 1(j), - заповнення N 2 після j -го циклу шифрування;

j = 1,2 ., 31.

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

Тш = [a1(32), a2(32),…, a32(32), b1(32), b2(32),..., b32(32)].

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

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

[a32(32), a31(32),…, a2(32), a1(32)],

а вміст накопичувача N 2, мало вигляд

[b32(32), b31(32),…, b2(32), b1(32)] .

Розшифровування здійснюється таким чином, що і шифрування, проте порядок подачі 32-х розрядних ключів здійснюється в наступному порядку:

K0, K1, K2, K3, K4, K5, K6, K7, K7, K6, K5, K4, K3, K2, K1, K0

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6, K5, K4, K3, K2, K1, K0 .

Рівняння розшифрування при цьому мають вигляд:

а(32 - j)= f [а( 32 - j + 1) + K j-1] b(32 - j + 1)

при j = 1 ,…, 8;

b(32 - j) = а( 32 - j + 1)

а(32 - j)= f [а( 32 - j + 1) + K 32 - j(mod 8)] b(32 - j + 1)

при j = 9 ,…,31;

b(32 - j) = а(32 - j + 1)

а(0)= а(1)

при j = 32.

b(0) = f [а(1) + K 0 ] b( 1)

Одержані після 32-х циклів роботи заповнення накопичувачів N 1 і N 2 утворюють блок відкритих даних.

Т0 = [a1(0), a2(0),…, a32(0) b1(0), b2(0) ., b32(0)] .

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

Введемо функцію алгоритму шифрування методом простої заміни А(Т0)= Тш .

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

3.6.2 Режим гаммування

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

Т0(1), Т0(2), Т0(3) ., Т0(i) ., Т0(m)

де Т0(i)- i й 64-х розрядний блок відкритих даних; i = 1,…, m.

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

Гш = (Гш(1), Гш(2), … , Гш(i), … , Гш(m))

де Гш(i) i -ий 64-х розрядний блок відкритих даних; i = 1, …, m.

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

Рівняння шифрування має вигляд

Тш( i ) = Т0 ( i ) Гш( i )

де Гш( i ) = А(Yi -1 + C2 , Zi -1 + C1), i = 1, … , m; Тш( i ) i -й блок 64-х розрядного блоку зашифрованого тексту. A(.) шифрування в режимі простої заміни. C1, C2 32-х розрядні двійкові константи. Yi, Zi 32-х розрядні двійкові послідовності.

Величини Yi, Zi визначаються ітераційно по мірі формування гамми шифру.

(Yi, Zi) = A(S)

де S синхропосилка (64-розрядна двійкова послідовність).

(Yi, Zi) = А(Yi -1 + C2, Zi -1 + C1), i = 1 … m.

КЗП - ключовий пристрій, що запам'ятовує на 256 біт;

СМ1 –32-розрядний суматор за модулем 232

СМ2 32-розрядний за модулем 2

N 1, N 2 – 32-розрядні накопичувачі

R - 32-розрядний регістр циклічного зсуву

S - 32-розрядний блок підстановки, який складається з восьми вузлів заміни S1 S8 з пам'яттю 64 біт кожен.

Рис. 3.12 Схема реалізації режиму гаммування

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

У накопичувачі N 6 і N 5 наперед записуються константи, що мають наступні значення в шістнадцятковій формі:

С1 = 01010104(16) С2 = 01010101(16)

У ключовий запам’ятувальний пристрій КЗП вводиться 256 біт ключа; у накопичувачі N 1 і N 2 64-розрядна двійкова послідовність (синхропосилка)

S = (S1, S2 ., Si,…, S64 )

Ця синхропосилка є початковим заповненням накопичувачів N 1 і N 2 для послідовного формування m блоків гамми шифру.

N 1  (S32, S31 ., S2, S1 ) N 2  (S64, S63 ., S32, S31 )

Синхропосилка S шифрується в режимі простої заміни, а результат її шифрування

A(S) = (Y0, Z0)

переписується в 32-х розрядні накопичувачі N 3 і N 4, таким чином:

N 1N 3 N 2N 4

Після цього, вміст накопичувачів N 6 і N 4 підсумовується по модулю 232 – 1 в СМ4, а вміст накопичувачів N 5 і N 3 підсумовується по модулю 232 в СМ3. При цьому, в першому випадку результат підсумовування записується в накопичувач N 4, а в другому випадку  в накопичувач N 3.

На наступному кроці вміст накопичувача переписується в накопичувач N 2, а вміст накопичувача N 3 переписується в N 1. При цьому вміст накопичувачів N 4 і N 3 зберігається, а вміст накопичувачів N 1 і N 2 використовується як шифруюча гамма

Гш( 1 ) = (1( 1 ), 2( 1 ), … , 63( 1 ), 64( 1 )) ,

яка порозрядно підсумовується по модулю два в суматорі СМ5 з першим блоком послідовності

Т0( 1 )= (t1 ( 1 ), t2( 1 ) ., t63( 1 ), t64( 1 )) .

В результаті, на виході суматора СМ5 одержують перший зашифрований блок.

Тш( 1 ) = Т0( 1 ) Гш( 1 ) = (1( 1 ), 2( 1 ), … , 63( 1 ), 64( 1 )).

де i ( 1 ) = ti ( 1 ) i ( 1 ); i = 1, … , 64.

На наступному етапі шифрування, коли криптографічному перетворенню піддається блок Т0(2), зміст накопичувачів ще раз підсумовується з константами С1 і С2, що містяться в накопичувачах N 5 і N 6. Коли результати підсумовування знов опиняться в накопичувачах N 1и N 2, вони наново шифруються в режимі простої заміни і, таким чином, формується нова гамма Гш(2 ).

Формування подальших блоків гамми Гш( i ) здійснюється аналогічно.

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

Т0( i ) = Тш( i ) Гш( i ) = Тш( i ) А(Yi -1 + C2 , Zi -1 + C1), i = 1, … , m.

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

3.6.3 Режим гаммування із зворотним звязком

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

Т0(1), Т0(2), Т0(3), … , Т0(i), … , Т0(m).

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

Гш = Гш(1), Гш(2), … , Гш(i), … , Гш(m).

При цьому рівняння шифрування має вигляд

Тш( 1 ) = A(S) Т0 ( 1) = Гш( 1 )Т0 ( 1)

Тш( i ) = A(Tш( i-1 )) Т0 ( i) = Гш( i )Т0 ( i ), i = 2, … , m.

де Тш( i ) i -й блок, 64-х розрядний блок зашифрованого тексту; A(S) - функція шифрування в режимі простої заміни; m - визначає об'єм відкритих даних.

Аргументом функції A(S) на першому кроці ітеративного алгоритму є синхропосилка S, а на решті всіх етапів - попередній блок зашифрованих даних Тш( i-1).

КЗП - ключовий пристрій, що запам'ятовує на 256 біт;

СМ1 –32-розрядний суматор за модулем 232

СМ2 32-розрядний за модулем 2

N 1, N 2 – 32-розрядні накопичувачі

R - 32-розрядний регістр циклічного зсуву

S - 32-розрядний блок підстановки, який складається з восьми вузлів заміни S1 S8 з пам'яттю 64 біт кожен.

Рис 3.13 Шифрування методом гаммування із зворотним зв'язком

Процедура шифрування виконується таким чином. У КЗП вводиться 256 біт ключа; у накопичувачі N 1 і N 2 64-розрядна двійкова послідовність (синхропосилка)

S = (S1 , S2 , … , Si , … , S64 ) .

Ця синхропосилка шифрується звичайним шляхом в режимі простої заміни. Таким чином, після 32-х циклів обробки в накопичувачах N 1 і N 2 буде сформовано перший 64-х бітовий блок шифруючої гамми Гш(1) = A(S). Цей блок підсумовується по модулю два в суматорі СМ3 з блоком відкритих даних

Т0( 1 ) = (t1 ( 1 ), t2( 1 ), … , t63( 1 ), t64( 1 )) .

В результаті одержують перший блок зашифрованих даних

Тш( 1 ) = Т0( 1 ) Гш( 1 ) = (1( 1 ), 2( 1 ), … , 63( 1 ), 64( 1 )) .

Одночасно з гаммуванням, по колу зворотнього зв'язку, блок записується в накопичувачі N 1 і N 2, в подальшому, з нього формують чергову 64-х розрядну гамму Гш(2).

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

Тш = Тш( 1 ), Тш( 2 ), … , Тш( i ), … , Тш( m ), i = 1, … , m.

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

Т0( 1 ) = A(S) Тш ( 1) = Гш( 1 )Тш ( 1)

Т0( i ) = Гш( i )Т0 ( i ) = A(Tш( i-1 )) Тш ( i). i = 2, … , m.

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

3.6.4 Режим формування імітовставки

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

Імітозахист - це захист системи шифрування від нав'язування помилкових даних.

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

Значення параметра Р (число розрядів в імітовставці) вибирають з урахуванням того, що вірогідність нав'язування помилкових перешкод рівна 1/(2Р).

Перший блок відкритих даних Т0 (1) шифрують в режимі простої заміни A'() протягом перших 16-ти його циклів.

Одержане після 16-ти циклів 64-розрядне число A'( Т0(1)), підсумовують по модулю два з другим блоком даних Т0(2). Результат підсумовування

(A'( Т0(1))Т0(2))

знову піддають перетворенню A'(). Потім процедура повторюється знов. Одержане 64-розрядне число (A'( Т0(1))Т0(2)) підсумовують по модулю два з третім блоком Т0(3) і знову піддаються перетворенню A'() і так далі.

Останній блок Т0(m) (при необхідності добитий нулями до повного 64-розрядного блоку) підсумовують по модулю два з результатом підсумовування на кроці (m-1), після чого шифрують в режимі простої заміни за допомогою перетворення A'().

З одержаного 64-розрядного числа обирають відрізок Ир (імітовставку), яка має довжину Р біт:

Ир = [а(m) ( 32 - р + 1)(16), а(m) ( 32 - р + 2)(16),... , а(m)32 (16)],

де аi(m) - і-й біт 64-розрядного числа, що одержали після 16-го циклу останнього перетворення A'(), 32-р+1≤ і ≤ 32.

Імітовставка Ир передається по каналу зв’язку наприкінці данних, що є зашифровані,

Тш(1), Тш(2),..., Тш(m), Ир.

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

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

4 асиметричні криптографічні системи

4.1 Концепція криптосистеми з відкритим ключем

Ефективними системами криптографічного захисту даних є асиметрічні криптосистеми. Такі системи також називають криптосистемами з відкритим ключем. Таку назву вони отримали внаслідок того, що для зашифрування даних використовується один ключ, К1 (відкритий, несекретний), проте для розшифровування – другий ключ, К2 (секретний). Розшифровування даних за допомогою відкритого ключа не є можливим. Ключ розшифрування не можна отримати з ключа зашифрування.

Узагальнена схема криптосистеми з відкритим ключем має такий вигляд: (Рис. 4.1)

Ключ К1 – відкритий ключ відправника;

Ключ К2 – закритий ключ отримувача;

ЕК1(М) – перетворення шифрування над відкритим текстом М за допомогою ключа К1;

D К2(С) - перетворення розшифровування над шифртекстом С за допомогою ключа К2;

Рис. 4.1 Узагальнена схема асиметрічної криптосистеми

Генератор ключів розташовується на стороні отримувача, щоб не пересилати секретний ключ К2 по незахищеному каналу. Значення ключів К1, К2 не пов’зані від початкового стану генаратора ключів.

Характерні особливості асиметричних криптосистем:

1 Відкритий ключ К1 та криптограма С можуть пересилатись по незахищеному каналу зв’язку.

2 Алгоритми шифрування

Е К1 : М → С

та розшифровування

D К2 : С → М

є відкритими.

Захист інформації в асиметрічної криптосистемі базується на секретності ключа К2.

У. Диффі та М. Хеллман сформулювали вимоги, які необхідно виконувати для того, щоб шифрування за допомогою асиметричної криптосистеми було небезпечним:

1 Розрахування ключів К1 та К2 повинно бути легким, щоб отримувач міг згідно початкових умов швидко їх знайти.

2 Відправник, що знає відкритий ключ К1 та повідомлення М, може легко розрахувати криптограму

С = Е К1 (М)

3 Отримувач, за допомого секретного ключа К2 та криптограми С, може легко відновити вихідне повідомлення

М = D К2 (С) = D К2 К1 (М))

4 Злочинник, що знає відкритий ключ К1 при попиту розрахувати секретний ключ К2 наштовхується на задачу, яку не можна розв’язати.

5 Злочинник, що знає відкритий ключ К1 і криптограму С при попиту розрахувати вихідне повідомлення М наштовхується на задачу, яку не можна розв’язати.

4.2 Однонаправленні функції

Концепція асиметричних криптосистем базується на використанні однонаправлених функцій. Неформально однонаправлену функцію можливо визначити таким чином. Нехай Х та Y – деякі довільні множини. Функція

f : Х → Y

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

y = f (х), де y є Y.

В той же час для більшості y є Y достатньо важко отримати значення х є Х, таке, що f (х) = y (при цьому вважається, що існує як найменш одне таке значення х).

Основним критерієм віднесення функції f до класу однонаправлених функцій є відсутність ефективних алгоритмів зворотних перетворень Y→ Х.

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

N = P * Q

є відносно легкою задачею для ЕОМ.

Навпаки зворотна задача – розкладення на складові великого цілого

цисла N = P * Q (обчислення дільників P і Q) є задачею, яку не можна розв’язати при великих значеннях N.

Другим прикладом однонаправленої функції є модульна експонента з фіксованою основою та модулем. Нехай А і N – цілі числа, такі, що 1≤А< N.

Обчислимо множину ZN:

ZN = {0, 1, 2, …, N - 1}.

Тоді модульна експонента з основою А за модулем N уявляє функцію

f А, N : ZN → ZN,

fА, N (х) = Ах (mod N),

де Х – ціле число, 1 ≤ х ≤ N – 1.

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

Якщо y = Ах, то можна записати х = logA (y). Тому задачу обернення функції fА, N (х) звуть задачею знаходження дискретного логарифму, яку можна сформулювати наступним чином.

Для відомих цілих А, N та y треба знайти ціле число х, таке, що

Ах (mod N) = y.

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

Другим класом функцій, які використовуються при будуванні криптосистем з відкритим ключем є такі, що звуться однонаправленими функціями з секретом. Функція зветься однонаправленою з секретом тоді, якщо вона є однонаправленою та крім того, є змога ефективного обчислення зворотної функції, коли відомий „потайний хід” (секретне число, строка чи друга інформація, яка асоціюється з цією функцією). Саме такою функцією є модульна експонента з фіксованим модулем та показником степеня, яку використовують в криптосистемі шифрування данних RSA.

    1. Криптосистема шифрування данних RSA

Першою і найбільш відомою криптографічною системою з відкритим ключем є так звана система RSA, яка була запропонована в 1978 році. Її назва походить від перших букв прізвищ авторів Rivest, Shamir і Aldeman, які розробили її під час сумісних досліджень в Массачусетському технологічному інституті в 1977 році. Алгоритм RSA став першим алгоритмом, який спроможний працювати як в режимі шифрування даних, так і в режимі електронного цифрового підпису.

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

В криптоситстемі RSA відкритий ключ К1, секретний ключ К2, повідомлення М та криптограма С належать множині цілих чисел

ZN = {0, 1, 2, …, N - 1},

де N – модуль:

N = P * Q.

Тут P і Q – випадкові великі прості числа. Для забезпечення максимальної безпеки обирають P і Q однакової довжини та зберігають у таємниці.

Множина ZN з операціями складання та множення за модулем N утворює арифметику за модулем N.

Відкритий ключ К1 обирають випадково таким чином, щоб виконувалися умови:

1 < К1 ≤ φ(N); НОД (К1, φ(N) ) = 1; φ(N) = (P - 1) (Q - 1),

де φ(N) – функція Ейлера, що вказує кількість додатних цілих чисел в інтервалі від 1 до N, які є взеємно простими з N.

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

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

К1* К2 ≡ 1(mod φ(N))

чи

К1 = К2 -1 ( mod (P-1) (Q -1)).

Це можливо обчислити, тому що отримувач знає числа P і Q та може легко знайти φ(N).

Відкритий ключ К1 використовують для шифрування даних, а секретний ключ К2 – для розшифровування.

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

С = Е К1 (М) = М К1 (mod N).

Проте зворотню задачу (розшифровування криптограми С) можна вирішити згідно наступної формули:

М = D К2 (С) = С К2 (mod N).

Припустімо, що користувач А хоче передати користувачеві В повідомлення, яке зашифровоне за допомогою криптосистеми RSA. Тоді користувач А є відправником повідомлення, проте користувач В - отримувач повідомлення. Криптосистему утворює отримувач повідомлення, тобто користувач В. Розглянемо послідовність дій користувачів А та В на прикладі.

Приклад Треба зашифрувати повідомлення “САВ” за допомогою криптосистеми RSA.

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

1 Користувач В обирає два випадкових простих числа Р = 3 і Q = 11.

2 Користувач В визначає модуль N = 3 * 11 = 33.

3 Користувач В визначає функцію Ейлера

φ(N) = φ(33) = (Р - 1)( Q - 1) = 2 * 10 = 20.

Відкритий ключ К1 обирають випадково таким чином, щоб виконувалися умови:

1 < К1 ≤ 20; НОД (К1, 20 ) = 1.

Отже, нехай буде К1 = 7.

4 Користувач В розраховує значення секретного ключа К2 за допомогою розширенного алгоритму Евкліда, для якого задовольняється співвідношення

К1* К2 ≡ 1(mod φ(N))

Тобто К2 ≡ 7-1(mod 20) = 3.

5 Користувач В передає користувачеві А пару чисел (N = 33, К1 = 7).

6 Користувач А уявляє шифроване повідомлення як послідовність цілих чисел за допомогою відображення: А 1, В 2, С 3. Тоді повідомлення приймає вигляд 312( в двійковому вигляді 011.001.010),

тобто М1 = 3, М2 = 1, М3 = 2.

7 Користувач А зашифровуває за допомогою ключа К1 = 7 та модуля N =33 текст, який розбитий на блоки наступним чином:

Сi = Мi К1 (mod N) = Мi 7 (mod 33)

С1 = (37) (mod 33) = 2187 (mod 33) = 9,

С2 = (17) (mod 33) = 1 (mod 33) = 1,

С3 = (27) (mod 33) = 128 (mod 33) = 29.

Користувач А передає користувачеві В криптограму С1, С2, С3 = 9, 1, 29.

8 Користувач В розшифровуває одержане повідомлення (9, 1, 29) за допомогою секретного ключа К2 = 3:

Мi = Сi К2 (mod N) = Сi 3 (mod 33)

М1 = (93) (mod 33) = 729 (mod 33) = 3,

М2 = (13) (mod 33) = 1 (mod 33) = 1,

М3 = (293) (mod 33) = 24389 (mod 33) = 2.

Таким чином, відновлено вихідне повідомлення САВ.

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

Криптосистеми RSA зреалізовуються як апаратним, так і програмним чином. Апаратна реалізація RSA близько в 1000 разів повільніша апаратної реалізації симетричного криптоалгоритму DES. Програмна реалізація RSA близько в 100 разів повільніша програмної реалізації симетричного криптоалгоритму DES. З розвитком технологій ці характеристики можуть змінюватися, але швидкодія асиметрічних систем ніколи не досягне швидкодії симетрічних криптосистем.

    1. Схема шифрування Ель Гамаля

Схема Ель Гамаля спроможна працювати як в режимі шифрування даних, так і в режимі електронного цифрового підпису.

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

Для того щоб генерувати пару ключів (відкритий ключ, секретний ключ), спочатку вибирають деяке велике просте ціле число P і велике ціле число G, причому G < Р. Числа P та G не є секретними.

Потім обирають випадкове ціле число X, причому Х < Р. Число Х є секретним ключем.

Далі обчислюють значення відкритого ключа Y

Y = GX mod P.

Для того, щоб зашифрувати повідомлення М, обирають випадкове ціле число К, 1< K< (P -1), таке, що K і (P -1) є взаємно простими.

Потім обчислються цілі числа :

a = GK mod P,

b = YKM mod P.

Пара чисел (a,b) є шифртекстом. Довжина шифртексту удвічі більша довжини вихідного повідомлення М.

Для того, щоб розшифрувати шифртекст (a,b), обчислюють

М = b/ aX (mod P),

тому що

aX ≡ GKX mod P,

можна записати

b / aX (mod P) ≡ YKM / aX (mod P) ≡ GKX M / GKX (mod P)≡ M(mod P).

Приклад. Треба зашифрувати повідомлення М = 5 за допомогою криптосистеми Ель Гамаля.

Оберемо Р =11, G = 2, секретний ключ Х = 8.

Обчислимо значення відкритого ключа Y

Y = GХ mod P = 28 mod 11 = 256 mod 11 = 3

Тобто, Y = 3.

Оберемо деяке випадкове число К = 9.

Переконаємося, що НСД (К, Р-1) =1. Дійсно, НСД (9, 10) =1.

Обчислимо пару чисел a та b:

a = GK mod P = 29 mod 11 = 512 mod 11 = 6,

b = YKM mod P = 39*5 mod 11 = 19683*5 mod 11 = 98415mod 11 = 9

Пара чисел (6, 9) є шифртекстом.

Розшифруємо цей шифртекст. Обчислимо повідомлення М, використовуючи секретний ключ Х = 8:

М = b/ aX (mod P) = 9/68 mod 11 = 9/1679616 mod 11 = 5,

тобто

1679616* М ≡ 9 mod 11.

Розв’язання цього порівняння : М = 5.

    1. Комбінований метод шифрування.

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

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

  • генерація нових секретних та відкритих ключів базується на генерації нових великих простих чисел, а перевірка чисел на простоту потребує багато часу для обчислення на ЕОМ;

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

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

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

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

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

Якщо користувач А хоче передати користувачеві В повідомлення, яке зашифроване комбінованим методом, тоді алгоритм буде наступним:

  1. Створити (наприклад, згенерувати випадковим чином) симетричний сеансовий ключ Ks .

  2. Зашифрувати повідомлення М за допомогою сеансового ключа Ks.

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

  4. Передати по незахищенному каналу зв’язку на адресу користувача В повідомлення М разом з сеансовим ключем Ks, які є зашифровувані.

Дії користувача В будуть зворотними.

  1. Розшифрувати сеансовий ключ Ks за допомогою свого секретного ключа Kв та відкритого ключа KА користувача А.

  2. За допомогою отриманного сеансового ключа Ks розшифрувати та прочитати повідомлення М.

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

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

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

Таблиця 4.1 - Довжини ключів для симетричних та асиметричних криптосистем, які дають однакову криптостійкість.

Довжина ключа симетричної криптосистеми, біт

Довжина ключа асиметричної криптосистеми, біт

56

384

64

512

80

768

112

1792

128

2304

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

    1. Проблема ідентифікації та автентифікаціі даних.

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

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

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

Після того, коли проведена ідентифікація та автентифікація об’єкта, можна установити сферу його дій та доступні ресурси КС. Таку процедуру називають авторизацією (наданням повноваг).

Перераховані три операції ініциалізації є процедурами захисту та відносяться до одного об’єкту КС.

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

Метою автентифікаціі електронних документів є їхній захист від можливих видів злочинних дій, якими є:

  • активне перехоплення - порушник, що підключився до мережі, перехоплює документи (файли) і змінює їх;

  • маскарад-абонент С посилає документ абонентові В від імені абонента А;

  • ренегатство - абонент А заявляє, що не посилав повідомлення абонентові В, хоча насправді посилав;

  • підміна - абонент В змінює або формує новий документ і заявляє, що одержав його від абонента А;

  • повтор - абонент В повторює раніше переданий документ, що абонент А посилав абонентові В.

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

    1. Алгоритми електронного цифрового підпису.

При обробці документів в електронній формі зовсім непридатні традиційні способи встановлення дійсності по рукописному підпису й відбитку печатки на паперовому документі. Принципово новим рішенням є електронний цифровий підпис (ЕЦП).

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

  • засвідчує, що підписаний текст виходить від імені користувача, що поставив підпис;

  • не дає саме цьому користувачеві можливості відмовитися від зобов'язань, пов'язаних з підписаним текстом;

  • гарантує цілісність підписаного тексту.

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

Система ЕЦП включає дві процедури:

  1. процедуру постановки підпису;

  2. процедуру перевірки підпису.

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

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

При перевірці ЕЦП одержувач повідомлення знову обчислює геш-функцію m = h(М) прийнятого по каналу тексту М, після чого за допомогою відкритого ключа відправника перевіряє, чи відповідає отриманий підпис обчисленому значенню m геш-функції.

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

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

Кожний підпис містить наступну інформацію:

  • дату підпису;

  • термін закінчення дії ключа даного підпису;

  • інформацію про особу, що підписала файл (П.І.Б., посада, коротке найменування фірми);

  • ідентифікатор що підписав (ім'я відкритого ключа);

  • власний цифровий підпис.

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

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

  • факторизація (розкладання на множники) великих цілих чисел;

  • дискретне логарифмування.

4.7.1 Алгоритм цифрового підпису RSA.

Першою й найбільш відомою в усьому світі системою ЕЦП стала система RSA, математична схема якої була розроблена в 1977р. у Масачусетському технологічному інституті США.

Спочатку необхідно обчислити пару ключів (секретний ключ і відкритий ключ). Для цього відправник (автор) електронних документів обчислює два великих простих числа P і Q, потім знаходить їхній добуток

і значення функції Ейлера

Далі відправник обчислює число Е з умов:

і число D з умов:

Пара чисел (E,N) є відкритим ключем. Цю пару чисел автор передає партнерам по листуванню для перевірки його цифрових підписів. Число D зберігається автором як секретний ключ для підписування.

Узагальнена схема формування й перевірки цифрового підпису RSA показана на рисунку 4.2.

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

Потім обчислюють цифровий підпис S під електронним документом М, використовуючи геш-значення m і секретний ключ D:

Пара (M,S) передається партнерові-одержувачеві як електронний документ М, підписаний цифровим підписом S, причому підпис S сформований власником секретного ключа D.

Після прийому пари (M,S) одержувач обчислює геш-значення повідомлення М двома різними способами. Насамперед він відновлює геш-значення m, застосовуючи криптографічне перетворення підпису S з використанням відкритого ключа Е:

Крім того, він знаходить результат прийнятого повідомлення М за допомогою такої ж геш-функції :

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

то одержувач визнає пару (М,S) справжньою. Доведено, що тільки власник секретного ключа D може сформувати цифровий підпис S з документу М, а визначити секретне число D завдяки відкритому числу Е не легше, ніж розкласти модуль N на множники.

Крім того, можна строго математично довести, що результат перевірки цифрового підпису S буде позитивним тільки в тому випадку, якщо при обчисленні S був використаний секретний ключ D, що відповідає відкритому ключу Е. Тому відкритий ключ Е іноді називають "ідентифікатором" того, що підписав.

Рис.4.2. Узагальнена схема цифрового підпису RSA

Недоліки алгоритму цифрового підпису RSA.

1. При обчисленні модуля N, ключів Е и D для системи цифрового підпису RSA необхідно перевіряти велику кількість додаткових умов, що зробити практично важко. Невиконання кожного із цих умов уможливлює фальсифікацію цифрового підпису з боку того, хто виявить таке невиконання. Під час підписання важливих документів не можна допускати таку можливість навіть теоретично.

2. Для забезпечення криптостійкості цифрового підпису RSA стосовно спроб фальсифікації на рівні, наприклад, національного стандарту США на шифрування інформації (алгоритм DES), тобто 1018, необхідно використати при обчисленнях N, D і Е цілі числа не менш 2512 (або близько 10154) кожне, що вимагає великих обчислювальних витрат, які перевищують на 20...30% обчислювальні витрати інших алгоритмів цифрового підпису при збереженні того ж рівня криптостійкості.

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

Приклад. Припустімо, що зловмисник може сконструювати три повідомлення М1, М2 і М3, у яких геш-значення

m1=h(M1), m2=h(M2), m3=h(M3),

при чому

Припустімо, також, що для двох повідомлень М1 і М2 отримані законні підписи

та

Тоді зловмисник може легко обчислити підпис S3 для документа М3, навіть не знаючи секретного ключа D:

Дійсно,

Більш надійний і зручний для реалізації на персональних комп'ютерах алгоритм цифрового підпису був розроблений в 1984 р. американцем арабського походження Тахером Ель Гамалем. В 1991р. НИСТ США обґрунтував перед комісією Конгресу США вибір алгоритму цифрового підпису Ель Гамаля як основу для національного стандарту.

4.7.2 Алгоритм цифрового підпису Ель Гамаля.

Назва EGSA походить від слів El Gamal Signature Algorithm (алгоритм цифрового підпису Ель Гамаля). Ідея EGSA заснована на тім, що для обґрунтування практичної неможливості фальсифікації цифрового підпису може бути використана більш складне обчислювальне завдання, чим розкладання на множники великого цілого числа, - завдання дискретного логарифмування. Крім того, Ель Гамалю вдалося уникнути недоліку алгоритму цифрового підпису RSA, пов'язаної з можливістю підробки цифрового підпису під деякими повідомленнями без знання секретного ключа.

Розглянемо досконаліше алгоритм цифрового підпису Ель Гамаля. Для того щоб генерувати пару ключів (відкритий ключ - секретний ключ), спочатку вибирають деяке велике просте ціле число P і велике ціле число G, причому G < Р. Відправник і одержувач підписаного документа використовують при обчисленнях однакові великі цілі числа Р (~10308 чи ~21024) і G (~10154 чи ~2512), які не є секретними.

Відправник вибирає випадкове ціле число X, 1<Х≤(Р-1), і обчислює

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

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

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

m=h(М), 1<m<(Р-1),

і генерує випадкове ціле число K, 1< K< (P -1), таке, що K і (P -1) є взаємно простими. Потім відправник обчислює ціле число а:

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

Пара чисел (а,b) є цифровий підпис S:

S = (a,b),

який ставиться під документом М.

Три числа (M,a,b) передаються одержувачеві, у той час як пара чисел (X,K) тримається в секреті.

Після прийому підписаного повідомлення (M,a,b) одержувач повинен перевірити, чи відповідає підпис S = (а,b) повідомленню М. Для цього одержувач спочатку обчислює по прийнятому повідомленню М число

m = h(M),

тобто гешує прийняте повідомлення М.

Потім одержувач обчислює значення

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

Інакше кажучи, одержувач перевіряє справедливість співвідношення

Можна строго математично довести, що остання рівність буде виконуватися тоді, і тільки тоді, коли підпис S = (а,b) під документом М отриманий за допомогою саме того секретного ключа X, з якого був отриманий відкритий ключ Y. Таким чином, можна надійно впевнитися, що відправником повідомлення М був власник саме даного секретного ключа X, не розкриваючи при цьому сам ключ, і що відправник підписав саме цей конкретний документ М.

Слід зазначити, що обрання кожного підпису за допомогою методу Ель Гамаля вимагає нового значення K, причому це значення повинне вибиратися випадково. Якщо порушник розкриє коли-небудь, значення K, вдруге використовуваного відправником, то він зможе розкрити секретний ключ Х відправника.

Приклад. Оберемо: числа P =11, G = 2 і секретний ключ X = 8. Обчислимо значення відкритого ключа:

Припустімо, що вихідне повідомлення М характеризується геш-значенням m = 5.

Для того, щоб обчислити цифровий підпис для повідомлення М, що має геш-значення m = 5, спочатку виберемо випадкове ціле число K = 9. Переконаємося, що числа K и (Р-1) є взаємно простими.

Дійсно,

НОД (9, 10)=1.

Далі обчислюємо елементи a і b підпису:

елемент b визначаємо, використовуючи розширений алгоритм Евкліда:

При m = 5, а = 6, Х = 8, K = 9, Р= 11 одержуємо

або

Рішення: b = 3. Цифровий підпис являє собою пару: а = 6, b = 3. Далі відправник передає підписане повідомлення. Прийнявши підписане повідомлення і відкритий ключ Y = 3, одержувач обчислює геш-значення для повідомлення М: m = 5, а потім обчислює два числа:

1)

2)

Тому що ці два цілих числа рівні, прийняте одержувачем повідомлення визнається справжнім.

Схема цифрового підпису Ель Гамаля має ряд переваг у порівнянні зі схемою цифрового підпису RSA:

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

2. При виборі модуля Р досить перевірити, що це число є простим і що в числі (Р -1) є великий простий множник (тобто всього дві перевіряємих умови).

3. Процедура формування підпису за схемою Ель Гамаля не дозволяє обчислювати цифрові підписи під новими повідомленнями без знання секретного ключа (як в RSA).

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

4.7.3 Алгоритм цифрового підпису DSA.

Алгоритм цифрового підпису DSA (Digital Signature Algorithm) запропонований в 1991р. у НИСТ США для використання в стандарті цифрового підпису DSS (Digital Signature Standard). Алгоритм DSA є розвитком алгоритмів цифрового підпису Ель Гамаля й К. Шнорра.

Відправник і одержувач електронного документа використовують при обчисленні великі цілі, числа: G і Р - прості числа, L біт кожне (512≤L≤1024); q - просте число довжиною 160 біт (дільник числа (Р -1)). Числа G, Р, q є відкритими й можуть бути загальними для всіх користувачів мережі.

Відправник вибирає випадкове ціле число X, 1< Х< q. Число Х є секретним ключем відправника для формування електронного цифрового підпису.

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

Число Y є відкритим ключем для перевірки підпису відправника. Число Y передається всім одержувачам документів.

Цей алгоритм також передбачає використання односпрямованої функції гешування . У стандарті DSS визначений алгоритмбезпечного гешування SHA (Secure Hash Algorithm).

Для того щоб підписати документ М, відправник гешує його в ціле геш-значення m:

m = h(М), 1< m < q,

потім генерує випадкове ціле число K, 1< K< q, і обчислює число r:

Потім відправник обчислює за допомогою секретного ключа Х ціле число s:

Пара чисел r і s є цифровий підпис

S = (r,s)

під документом М.

Таким чином, підписане повідомлення являє собою три числа [M, r, s].

Одержувач підписаного повідомлення [M, r, s] перевіряє виконання умов

0 < r < q, 0 < s < q

і відкидає підпис, якщо хоча б одне із цих умов не виконано.

Потім одержувач обчислює значення

геш-значення

і числа

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

і перевіряє виконання умови

v = r.

Якщо умова v = r виконується, тоді підпис S = (r,s) під документом М визнається одержувачем справжнім.

Можна математично довести, що остання рівність буде виконуватися тоді, і тільки тоді, коли підпис S = (r,s) під документом М отриманий за допомогою саме того секретного ключа X, з якого був отриманий відкритий ключ Y. Таким чином, можна надійно впевнитися, що відправник повідомлення володіє саме даним секретним ключем Х (не розкриваючи при цьому значення ключа X) і що відправник підписав саме документ М.

У порівнянні з алгоритмом цифрового підпису Ель Гамаля алгоритм DSA має наступні основні переваги:

1. При будь-якому припустимому рівні стійкості, тобто при будь-якій парі чисел G і Р (від 512 до 1024 біт), числа q, X, r, s мають довжину по 160 біт, скорочуючи довжину підпису до 320 біт.

2. Більшість операцій із числами K. r, s, X при обчисленні підпису виконується за модулем числа q довжиною 160 біт, що скорочує час обчислення підпису.

3. При перевірці підпису більшість операцій із числами u1, u2, v, w також виконується за модулем числа q довжиною 160 біт, що скорочує обсяг пам'яті й час обчислення.

Недоліком алгоритму DSA є те, що при підписуванні й при перевірці підпису доводиться виконувати складні операції розподілу за модулем q:

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

Слід зазначити, що виконання алгоритму DSA може бути прискорене за допомогою виконання попередніх обчислень. Помітимо, що значення r не залежить від повідомлення М і його геш-значення m. Можна заздалегідь створити рядок випадкових значень K і потім для кожного із цих значень обчислити значення r. Можна також заздалегідь обчислити зворотні значення K-1 для кожного значення K. Потім, при надходженні повідомлення М. можна обчислити значення s для даних значень r і K-1. Ці попередні обчислення значно прискорюють роботу алгоритму DSA.

4.7.4 Алгоритм цифрового підпису ГОСТ Р 34.10-94.

Вітчизняний стандарт цифрового підпису позначається як ГОСТ Р 34.10-94 . Алгоритм цифрового підпису, обумовлений цим стандартом, концептуально близький до алгоритму DSA. У ньому використаються наступні параметри:

p - велике просте число довжиною від 509 до 512 біт або від 1020 до 1024 біт;

q - простий співмножник числа (p -1), який має довжину 254...256 біт.

a - будь-яке число, менше (р-1), при чому таке, що aq mod p=1;

х - деяке число, менше q;

y = aх mod р.

Крім того, цей алгоритм використовує односпрямовану геш-функцію Н(x). Стандарт ГОСТ Р 34.11-94 визначає геш-функцію, засновану на використанні стандартного симетричного алгоритму ГОСТ 28147-89.

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

Щоб підписати деяке повідомлення m, а потім перевірити підпис, виконуються наступні кроки.

1. Користувач А генерує випадкове число k, причому k < q.

2. Користувач А обчислює значення

Якщо Н(m) mod q = 0, то значення Н(m) mod q приймають рівним одиниці. Якщо r = 0, то вибирають інше значення k і починають знову.

Цифровий підпис являє собою два числа:

r mod 2256 і s mod 2256.

Користувач А відправляє ці числа користувачеві В.

3. Користувач B перевіряє отриманий підпис, обчислюючи

Якщо u = r, то підпис вважається справжнім.

Розходження між цим алгоритмом і алгоритмом DSA полягає в тім, що в DSA

що приводить до іншого рівняння верифікації.

Слід також зазначити, що у вітчизняному стандарті ЕЦП параметр q має довжину 256 біт. Західних криптографів цілком улаштовує q довжиною приблизно 160 біт. Розходження в значеннях параметра q є відбиттям прагнення розроблювачів вітчизняного стандарту до одержання більш безпечного підпису.

Цей стандарт вступив у дію з початку 1995 р.

    1. Керування криптографічними ключами

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

Ключова інформація – це сукупність усіх ключів, які діють в інформаційній системі (ІС). Якщонезабесзпе­че­но на­дій­не керування ключовою інформацією, то при її перехопленні, зло­чин­никмає необмеженнийдос­тупдовсієїін­фор­ма­ції.

Керування ключами–це інформаційний процес, який містить в собі три елемента:

  • генерацію ключів;

  • накопичування ключів;

  • розподілення ключів.

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

4.8.1 Генерація ключів

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

В ІС використовують спеціальні апаратні та програмні засоби генерування випадкових ключів. Звичайно застосовують давачі псевдовипадкових чисел (ПВЧ). Однак степень випадковості їхньої генерації повинна бути дуже великою. Ідеальними генераторами є пристрої на базі „натуральних” випадкових процесів. В ІС з середніми вимогами щодо захищенності, використовуються програмні генератори ключів, що обчислюють ПВЧ, як функцію від часу та (чи) числа, що вводиться користувачем.

4.8.2 Накопичування ключів

Накопичування ключів - це організація процесу зберження, обліку та вилучання ключів.

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

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

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

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