Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


ABCDEFGHIJKLMNOPQRSTUVWXYZ 7 страница




СМ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 є сума по модулю 2 32 числа а(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 1 ® N 3 N 2 ® N 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) = (g1(1), g2(1), …, g63(1), g64(1)), яка порозрядно підсумовується по модулю два в суматорі СМ5 з першим блоком послідовності Т0(1)= (t1 (1), t2(1)., t63(1), t64(1)). В результаті, на виході суматора СМ5 одержують перший зашифрований блок. Тш(1) = Т0(1) Å Гш(1) = (t1(1), t2(1), …, t63(1), t64(1)).   де ti (1) = ti (1) Å gi (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) = (t1(1), t2(1), …, t63(1), t64(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.

 

4.3 Криптосистема шифрування данних 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. З розвитком технологій ці характеристики можуть змінюватися, але швидкодія асиметрічних систем ніколи не досягне швидкодії симетрічних криптосистем.

 

 

4.4 Схема шифрування Ель Гамаля

 

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

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

Для того щоб генерувати пару ключів (відкритий ключ, секретний ключ), спочатку вибирають деяке велике просте ціле число 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.

 

 

4.5 Комбінований метод шифрування.

 

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

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

· генерація нових секретних та відкритих ключів базується на генерації нових великих простих чисел, а перевірка чисел на простоту потребує багато часу для обчислення на ЕОМ;

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

 

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

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

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

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

 

Якщо користувач А хоче передати користувачеві В повідомлення, яке зашифроване комбінованим методом, тоді алгоритм буде наступним:

1. Створити (наприклад, згенерувати випадковим чином) симетричний сеансовий ключ Ks.

2. Зашифрувати повідомлення М за допомогою сеансового ключа Ks.

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

4. Передати по незахищенному каналу зв’язку на адресу користувача В повідомлення М разом з сеансовим ключем Ks, які є зашифровувані.

 

Дії користувача В будуть зворотними.

 

5. Розшифрувати сеансовий ключ Ks за допомогою свого секретного ключа Kв та відкритого ключа KА користувача А.

6. За допомогою отриманного сеансового ключа Ks розшифрувати та прочитати повідомлення М.

 

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

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

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

 

Таблиця 4.1 - Довжини ключів для симетричних та асиметричних криптосистем, які дають однакову криптостійкість.

Довжина ключа симетричної криптосистеми, біт




Поделиться с друзьями:


Дата добавления: 2017-03-12; Мы поможем в написании ваших работ!; просмотров: 467 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

3617 - | 3433 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.