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

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

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

У результаті буде отримана послідовність чисел M i , які являють собою вихідне

повідомлення М. Щоб алгоритм RSA мав практичну цінність, необхідно мати можливість без істотних витрат генерувати великі прості числа, вміти оперативно обчислювати значення ключів K A та K B .

Наприклад, виконаємо шифрування повідомлення “Буду завтра”.

Нехай P=59, Q=61. Тоді N P * Q 59 * 61 3599 , а (2773) 3480 . Виберемо як відкритий ключ K A довільне число з урахуванням виконання умов (4.6) і (4.7). Нехай K A 53 . Згідно (4.8) таємний ключ KВ 197 .

Подамо повідомлення як послідовність цілих чисел у діапазоні від 1 до 32. Нехай

A – 01, Б – 02, В – 03, ..., Я – 32.

Тоді повідомлення “Буду завтра” буде подано у вигляді

02 20 05 20 08 01 03 19 17 01.

Розбиваємо повідомлення на блоки по чотири цифри

0220 0520 0801 0319 1701

і кодуємо кожен блок:

C1 22053 mod 3599 0099, C2 52053 mod 3599 3273, C3 80153 mod 3599 2050, C4 31953 mod 3599 0719,

C5 170153 mod 3599 1664.

У результаті одержимо шифр 0099 3273 2050 0719 1664.

Для відновлення вихідного тексту необхідно обчислити модульну експоненту, підвівши зашифроване значення Ci в степінь K В за модулем N:

M1 99197 mod 3599 0220, M 2 3273197 mod 3599 0520, M 3 2050197 mod 3599 0801, M 4 719197 mod 3599 0319, M 5 1664197 mod 3599 1701.

Таким чином, отримали відновлене вихідне повідомлення

0220 0520 0801 0319 1701.

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

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

Безпека й швидкодія криптосистеми RSA

Безпека алгоритму RSA базується на труднощах розв’язання задачі факторизації великих чисел, що є добутками двох великих простих чисел. Дійсно, крипостійкість алгоритму RSA визначається тим, що після формування таємного ключа K B й відкритого ключа K A "стираються" значення простих чисел P й Q, і

тоді винятково важко визначити таємний ключ K B за відкритим ключем K A ,

41

оскільки для цього необхідно розв’язати задачу знаходження дільників P та Q модуля N.

Розкладання величини N на прості множники Р і Q дозволяє обчислити функцію(N ) (P 1)(Q 1) , а потім визначити таємне значення K B , використовуючи

рівняння (4.8).

Іншим можливим способом криптоаналізу алгоритму RSA є безпосереднє обчислення або підбір значення функції (N ) . Якщо встановлено значення (N ) ,

то співмножники P й Q обчислюються досить просто. Справді, нехай x P Q N 1 (N ),

y (P Q)2 (P Q)2 4 * N.

Знаючи (N), можна визначити х і потім y; знаючи х та y, можна визначити числа

P і Q з таких співвідношень:

 

1

 

 

 

1

 

 

 

P

(x

y ), Q

(x y ) .

2

2

 

 

 

 

 

 

 

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

Задача факторизації є задачею, яка важко розв’язується для великих значень модуля N.

Спочатку автори алгоритму RSA пропонували для обчислення модуля N вибирати прості числа P й Q випадковим чином, по 50 десяткових розрядів кожне. Вважалося, що такі великі числа N дуже важко розкласти на прості множники. Один з авторів алгоритму RSA, Р.Райвест, вважав, що розкладання на прості множники числа з майже 130 десяткових цифр, наведеного в їхній публікації, зажадає більше 40 квадрильйонів років машинного часу. Однак цей прогноз не виправдався через порівняно швидкий прогрес обчислювальної потужності комп’ютерів, а також поліпшення алгоритмів факторизації.

Один з найбільш швидких алгоритмів, відомих у цей час, алгоритм NFS (Number Field Sieve) може виконати факторизацію великого числа N (із числом десяткових розрядів більше 120) за число кроків, оцінюваних величиною

1

2

e2(ln N )3 (ln(lnN )) 3

У 1994 р. було факторизовано число з 129 десятковими цифрами. Це вдалося здійснити математикам А.Ленстра й М.Манассі за допомогою організації розподілених обчислень на 1600 комп’ютерах, об’єднаних мережею, протягом восьми місяців. На думку А.Ленстра та М.Манассі, їхня робота компрометує криптосистеми RSA і створює більшу погрозу їхнім подальшим застосуванням. Тепер розроблювачам криптоалгоритмів з відкритим ключем на базі RSA доводиться уникати застосування чисел довжиною менше 200 десяткових розрядів. Останні публікації пропонують застосовувати для цього числа довжиною не менше 300 десяткових розрядів.

4 Схема шифрування Поліга - Хеллмана

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

Аналогічно схемі RSA криптограма C і відкритий текст M визначаються зі співвідношень:

42

C M K A mod N ,

(4.14)

M C K B mod N ,

(4.15)

де

K A * KB 1mod(деяке складене число) . (4.16)

На відміну від алгоритму RSA у цій схемі число N не визначається через два великих простих числа; число N повинне залишатися частиною таємного ключа. Якщо хто-небудь довідається значення K A та N, він зможе обчислити значення

K B .

Не знаючи значень K A або K B , зловмисник буде змушений обчислювати значення

K A (log M C) mod N .

Відомо, що це є важкою задачею. Схема шифрування Поліга - Хеллмана запатентована в США [9] і Канаді.

5 Алгоритм шифрування Ель Гамаля

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

Для того щоб генерувати пари ключів (відкритий ключ K A і таємний ключ K B ),

спочатку вибирають деяке велике просте число P і велике ціле число G степені якого за модулем P породжують велику кількість елементів множини Z P ,

причому G P . Числа P й G можуть бути поширені серед групи користувачів. Потім вибирають випадкове ціле число K B , причому KB P . Число K B є таємним

ключем і повинне зберігатися в секреті. Далі обчислюють відкритий ключ K A

K

A

G KB mod P .

(4.17)

 

 

 

 

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

що задовольняє такі умови:

 

1 K P 1,

(4.18)

НОД (K , (P 1)) 1 .

(4.19)

Потім обчислюють числа

 

a G K mod P,

(4.20)

b K

K * M mod P.

(4.21)

 

 

 

A

 

Пари чисел (а,b) є шифротекстом. Помітимо, що довжина шифротексту вдвічі більша довжини вихідного відкритого тексту М.

Для того щоб розшифрувати шифротекст (а,b), обчислюють

M

b

mod P .

(4.22)

 

 

a K B

 

Довести, що співвідношення (4.22) справедливо, можна виходячи з (3.17) , (3.20) і (3.21), оскільки

b

 

K A K *M

 

(G K B ) K * M

 

G K B *K * M

M mod P .

a K B

a K B

(G K ) K B

 

 

 

 

G K *K B

Наприклад, виберемо Р = 17, G = 5, таємний ключ K B = 2. Обчислюємо

K A G KB mod P 52 mod 17 8 .

Отже, відкритий ключ K A = 8.

Нехай повідомлення М = {Д}={5}.

Виберемо деяке випадкове число K = 3. Перевіримо умову (3.19) дійсно НСД (3,16) =1. Обчислюємо пари чисел а та b:

43

b K A

aG K mod P 53 mod 17 125 6 mod 17,

bK A K * M mod P 83 * 5 mod 17 2560 10 mod 17.

Таким чином, шифротекстом для літери Д є пара чисел (6,10).

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

M

b

mod P

10

mod 17 .

a K B

62

 

 

 

Вираз

M 1062 mod 17

можна подати у вигляді

62 * M 10 mod 17 .

Розв’язуючи дане порівняння, знаходимо М = 5.

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

Усистемі Ель Гамаля відкритого шифрування той самий ступінь захисту, що для алгоритму RSA з модулем N з 200 знаків, досягається вже при модулі P в 150 знаків. Це дозволяє в 5-7 разів збільшити швидкість обробки інформації. Але у такому варіанті відкритого шифрування немає підтвердження достеменності повідомлень.

Система Ель Гамаля не позбавлена певних недоліків. Серед них можна зазначити такі:

1 Відсутність семантичної стійкості. Якщо G – примітивний елемент множини Z P ,

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

відрахуванням. Це робиться піднесенням числа x у степінь

p 1

за модулем P

2

 

 

 

 

 

 

 

( p 1)

 

 

 

 

x 2 mod P .

 

 

 

Якщо результат дорівнює 1, то х – квадратичне відрахування за модулем Р, якщо –1 , то х – квадратичне невирахування. Далі пасивний зловмисник перевіряє, чи є GK і G K A квадратичними відрахуваннями. G K *K A буде квадратичним відрахуванням тоді й тільки тоді, коли і GK , і G K A будуть квадратичними відрахуваннями. Якщо це так, то K * M mod P буде квадратичним відрахуванням тоді й тільки тоді,

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

2 Подільність шифру. Якщо дано шифрований текст (a, b), можна одержати інший шифрований текст, змінивши тільки другу частину повідомлення. Справді, помноживши b на GU (U 0), можна одержати шифротекст для іншого вихідного повідомлення M M * GU .

6 Схема шифрування Рабіна

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

Для генерації ключів вибирається пара простих чисел p, q , таких що

p 3 mod 4,

(4.23)

q 3 mod 4.

Ці прості числа і є таємним ключем. Відкритим ключем є число

44

N p * q .

(4.24)

Для шифрування повідомлення M , де

(M N ) , обчислюється

C M 2 mod N .

(4.25)

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

 

 

 

p 1

 

 

 

 

 

 

 

 

 

 

 

 

 

m C 4

mod p,

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p 1

 

 

 

 

 

 

 

 

 

 

m

2

( p C 4 ) mod p,

(4.26)

 

 

 

 

 

 

 

 

 

 

 

q 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

3

C 4

mod q,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q 1

 

 

 

 

 

 

 

m

4

(q C 4 ) mod q.

 

 

 

 

 

 

 

 

 

 

Потім вибираються два цілих числа

a q (q 1 mod p),

(4.27)

b p ( p 1 mod q).

Чотирма можливими рішеннями є:

M1

(am1 bm3 ) mod N ,

 

M 2

(am1

bm4 ) mod N ,

(4.28)

M 3

(am2

bm3 ) mod N ,

 

M 4

(am2

bm4 ) mod N.

 

Одне із чотирьох результатів, M1 , M 2 , M 3 і M 4 , є повідомлення M . Наприклад, виконаємо шифрування тексту M 15 , використовуючи схему

шифрування Рабіна. Згідно з (4.23) виберемо пари чисел p, q , нехай p 11 й q 7 .

Тоді, відкритий ключ N=77.

Шифротекст C згідно з (4.25)

C 152 mod 77 71 .

Виконаємо розшифрування. Виходячи з (4.26), маємо m1 4, m2 7, m3 1, m4 6.

Згідно з (4.27)

a 7 * ( 1 mod 11) 7 * 8 56,

 

7

 

b 11* ( 1 mod 7) 11* 2 22.

 

11

 

Тоді за (4.28) одержимо M1 15, M2 48, M 3

36, M 4 69.

Дійсно, одне із чотирьох значень, а саме:

M1 і є відкритий текст M .

Задачі

1 Використовуючи криптосистему RSA, виконати цифровий підпис для повідомлення М={2, 3, 4}. Відомо, що P=37, Q=17. Відповідь надати у вигляді послідовного набору чисел.

2 Виконайте алгоритм RSA для таких значень параметрів P, Q, KA , KB , M:

P=7, Q=13, KA =5, M=5;

P=5, Q=11, KB = 9, M =8;

P=13, Q=11, KA =17, M=9;

P=17, Q=7, KB =11, M =7.

45

3 Відомо, що в системі RSA відкритим ключем деякого користувача є KA =5, n=576. Встановити таємний ключ KB .

4У криптосистемі з відкритим ключем, використовує RSA, було перехоплено шифрований текст C=16, був зашифрований відкритим ключем KA =7, N=21.

Встановити відкритий текст M.

5Нехай в деякій системі RSA кожен з користувачів має особистий таємний ключ KB та відкритий ключ KA . Припустимо, що деякий користувач довідався, що

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

6У криптосистемі Ель Гамаля виконати шифрування відкритого тексту М={2, 3, 4} (зашифрування та розшифрування). Обрати числа P та Q із запропонованого набору чисел {15, 17, 20, 28, 24, 21}. Таємний ключ Х та число К обрати згідно з вимогами шифру.

7Виконайте алгоритм Ель Гамаля для таких значень параметрів P, G, X, K, M, a, b:

P=13, G=9, X=5, K=7, M=6;

P=17, G=7, X=8, K=5, a=11, b=10; P=23, G=10, X=11, K=7, a=14, b=16.

8Виконайте шифрування (зашифрування та розшифрування) відкритого тексту M, використовуючи схему шифрування Рабіна.

9Виконайте шифрування (зашифрування та розшифрування) відкритого тексту M, використовуючи схему шифрування Поліга-Хеллмана

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

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

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

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

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

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

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

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

46

Керування ключами

План 1 Алгоритм шифрування Діффі - Хеллмана

Керування ключами

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

Розподіл ключів можна організувати різними способами.

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

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

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

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

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

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

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

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

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

Прикладом реалізації схеми 5 може бути алгоритм генерації ключів Діффі-Хеллмана.

1 Алгоритм шифрування Діффі - Хеллмана

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

Припустимо, що обом учасникам обміну відомі деякі два натуральні числа M і N, де N – просте число. Вони можуть бути відомі й усім іншим зацікавленим особам. Для того щоб створити невідомий більше нікому секретний ключ, обидві сторони генерують випадкові числа: перший абонент – число X, другий абонент – число Y.

Потім перший абонент обчислює значення

LA M X mod N

і пересилає його другому учаснику, а другий учасник обчислює значення

LB M Y mod N

і передає його першому.

47

Зловмисник одержує обидва значення

LA

та

LB , але модифікувати їх (втрутитися в процес

передачі) не може.

 

 

 

 

 

 

 

 

 

 

 

 

На другому етапі перший абонент, на основі наявного в нього числа X й отриманого по мережі

числа LB , обчислює значення

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K

A

L

X mod N ,

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

а другий абонент на основі наявних у нього чисел Y та LA обчислює значення

 

 

 

K

B

L

Y mod N .

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

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

K A KB :

K

A

L

X mod N (M Y ) X

mod N M YX mod N

 

 

B

 

 

 

 

 

 

 

 

 

M XY mod N (M X )Y

mod N L

Y mod N K

B

.

 

 

 

 

 

 

 

 

 

A

 

 

Числа K A , KB можуть використовуватися як ключі при обміні даними з використанням традиційних

систем шифрування.

Наприклад, нехай абонентам A і B відомі деякі два числа M =17 й N=23. Абонент A генерує випадкове число Х=3 й обчислює значення

LA=113 mod 23=14.

Абонент B генерує випадкове число Y=5 й обчислює значення

LB=175 mod 23 21.

Абонент A передає абонентові B значення LA,, а абонент B абонентові A значення LВ. Кожний з абонентів A та B обчислюють секретний ключ згідно з прийнятими даними LA і LВ.

А: K A 213 mod 23 15 , B: K B 145 mod 23 15 .

При спробі визначити значення чисел X та Y за перехопленим значенням LA і LB супротивник

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

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

Контрольні питання

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

2Назвіть способи організації розподілу ключів.

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

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

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

6Назвіть відомі алгоритми генерації ключів.

7Дайте визначення поняттю “сеансів ключ”.

8Дайте визначення поняттю “головний ключ”.

9Поясніть роботу алгоритму генерації ключів Діффі-Хеллмана.

10На яких лініях зв’язку можна використовувати алгоритм Діффі-Хеллмана?

Задачі

1 Виконайте алгоритм генерації ключів Діффі-Хеллмана для чисел M, N, X, Y:

M=17, N=23, X=5, Y=8;

M=13, N=31, X=7, Y=12;

M=19, N=29, X=6, Y=9.

2Розгляньте схему Діффі-Хеллмана з простим числом N=11 та M=2.

1)Якщо користувач A має відкритий ключ LA =9, то яким буде значення таємного ключа X користувача А?

2)Якщо користувач B має відкритий ключ LB =3, то яким буде спільний таємний ключ?

48

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

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

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

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

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

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

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

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

49

Криптографічні протоколи

План

1 Поняття протоколу

2 Призначення та учасники протоколів

3 Учасники протоколів

4 Типи протоколів

5 Атаки на протоколи

6 Типи організації зв’язків у криптографічних протоколах

50

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