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

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

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

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

Добавлен: 05.06.2024

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

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

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

Асиметричні криптосистеми

План

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

2 Односпрямовані функції

3 Криптосистема шифрування даних RSA

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

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

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

35

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

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

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

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

Узагальнена схема криптосистеми з відкритим ключем показана на рисунку 1. В цій криптосистемі застосовують два різних ключі: K A – відкритий ключ

відправника A; K B – таємний ключ одержувача В.

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

залежать від початкового стану генератора ключів.

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

повинно бути обчислювально нерозв’язаною задачею.

 

Рисунок 1 – Узагальнена схема асиметричної криптосистеми

 

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

 

 

 

1

Відкритий ключ K A і криптограма C

можуть бути відправлені

по

незахищених каналах, тобто зловмиснику відомі значення K A та C.

 

 

2

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

: M C ) і

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

: C M

є

 

 

A

 

B

 

відкритими.

Захист інформації в асиметричній криптосистемі засновано на таємності ключа

K B .

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

1 Обчислення пари ключів ( K A , K B ) одержувачем B на основі початкової

умови повинно бути простим.

2 Відправник A, знаючи відкритий ключ K A і повідомлення М, може легко

обчислити криптограму

C EK

(M ) E A (M ) .

(4.1)

 

A

 

3 Одержувач В, використовуючи таємний ключ K B і криптограму C, може

легко відновити вихідне повідомлення

36


M DK

(C) DB (C) DB [EA (M )] . (4.2)

 

B

4Зловмисник, знаючи відкритий ключ K A , при спробі обчислити таємний ключ K B натрапляє на непереборну обчислювальну проблему.

5Зловмисник, знаючи пари ( K A , C), при спробі обчислити вихідне

повідомлення M натрапляє на непереборну обчислювальну проблему.

2 Односпрямовані функції

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

Нехай Х і Y – деякі довільні множини. Функція f : X Y є односпрямованою, якщо для всіх x X можна легко обчислити функцію y f (x), y Y , але для більшості y Y досить складно одержати значення x X , таке, що f (x) y (при цьому вважають, що існує принаймні одне таке значення x ).

Основним критерієм віднесення функції f до класу односпрямованих функцій є

відсутність ефективних алгоритмів зворотного перетворення Y X .

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

знаходження значення

N P * Q

(4.3)

є простою задачею для ЕОМ.

Зворотна задача – розкладання на множники великого цілого числа, тобто знаходження дільників P і Q великого цілого числа N P * Q , є практично

нерозв’язною задачею при досить великих значеннях N .

За сучасними оцінками теорії чисел при цілому N 2664 й P Q для розкладання числа N буде потрібно близько 1023 операцій, тобто задача практично

нерозв’язна.

 

 

Наступний характерний приклад односпрямованої функції – це модульна

експонента з фіксованими підставою й модулем. Нехай A й N цілі числа, такі,

що 1 A N . Визначимо множину Z N

Z N 0, 1, 2, N 1 .

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

f A, N : Z N Z N

f

A,N

(x) Ax (mod N) ,

 

 

де x – ціле число, 1 x N 1.

Існують ефективні алгоритми, що дозволяють досить швидко обчислити значення функції f A, N (x) .

Якщо y Ax , то, природно, x log A ( y) .

Тому, задачу обернення функції f A, N (x) називають задачею знаходження

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

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

Ax (mod N) y .

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

37


За сучасними оцінками теорії чисел при досить великих цілих числах A 2664 й N 2664 рішення задачі дискретного логарифмування (знаходження показника ступеня x для відомого y ) потребує близько 1026 операцій, тобто ця задача має в

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

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

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

Функція f : X Y належить до класу односпрямованих функцій з "потаємним

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

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

3 Криптосистема шифрування даних RSA

Алгоритм RSA запропонували в 1978 р. Р.Райвест (Rivest), А.Шамір (Shamir) і А.Адлеман (Adleman). Алгоритм одержав свою назву від перших букв прізвищ його авторів. Алгоритм RSA став першим повноцінним алгоритмом з відкритим ключем, що може працювати як у режимі шифрування даних, так і у режимі електронного цифрового підпису.

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

У криптосистемі RSA розглядають: відкритий ключ K A ; таємний ключ K B ;

повідомлення M й криптограма C належать множині цілих чисел

Z N 0, 1, 2, N 1 ,

(4.4)

де N - модуль

 

N P * Q .

(4.5)

Тут P й Q – випадкові великі прості числа. Для забезпечення максимальної безпеки вибирають P і Q однакової довжини й зберігають у секреті. Множина Z N з операціями додавання та множення за модулем N утворює

арифметику за модулем N .

Відкритий ключ K A вибирають випадково так, щоб виконувалися умови:

1 K A (N),

(4.6)

НОД (K A , (N)) 1,

(4.7)

де (N ) – функція Ейлера.

 

Функція Ейлера (N ) вказує кількість додатних цілих чисел в інтервалі від 1

до N , які взаємно прості з N

 

(N ) (P 1)(Q 1) .

 

Умова (3.7) означає, що відкритий ключ K A

і функція Ейлера (N ) повинні бути

взаємно простими.

 

38


Далі, використовуючи розширений алгоритм Евкліда, обчислюють таємний ключ K B , такий, що

KB * K A 1mod (N)

(4.8)

або

 

 

 

K

B

K 1 mod( P 1)(Q 1)

.

 

A

Це можна здійснити, тому що одержувач B знає пару простих чисел P, Q і може

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

для розшифрування.

Процес зашифрування визначає криптограму C через пару ( K A , М) у відповідності

до формули (4.9).

 

 

C E

K

(M ) E

A

(M ) M K A mod N

(4.9)

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

Обернення функції C M K A mod N , тобто

визначення значення M за відомим значенням

C, K

A

, N практично не здійсненне при N2512.

 

 

 

 

 

 

 

 

Однак обернену задачу, тобто задачу розшифрування криптограми C, можна вирішити, використовуючи пару ( K B , C ) за формулою (4.10).

M D

(C) D (C) C KB mod N . (4.10)

KB

B

Процес розшифрування можна записати так:

DB (EA (M )) M

(4.11)

Підставляючи в (4.11) значення (4.9) і (4.10), одержуємо:

(M K A )KB M mod N

 

або

 

M K A KB M mod N .

(4.12)

Відповідно до теореми Ейлера, яка стверджує, що якщо НСД x, N 1 , то

x ( N ) 1mod N

 

або

 

x n* ( N ) 1 x mod N .

(4.13)

Порівнюючи вираження (4.12) і (4.13), одержуємо

K A * KB n * (N) 1

або, що те саме,

K A * KB 1mod (N) .

Саме тому для обчислення таємного ключа K B використовують співвідношення

(4.8).

Таким чином, якщо криптограму

C M K A mod N

піднести до степеня K B , то в результаті відновлюється вихідний відкритий текст

М, тому що

(M K A )KB M K AKB M n* ( N ) 1 M mod N .

Отже, одержувач B, що створює криптосистему, захищає два параметри: таємний ключ K B і пару чисел P, Q , добуток яких дає значення модуля N. З

іншого боку, одержувач B відкриває значення модуля N і відкритий ключ K A . Зловмиснику відомі лише значення K A та N. Якби він зміг розкласти число N на множники P й Q, то він довідався б "потаємний хід" – трійку чисел {P,Q, K A} , обчислив значення функції Ейлера (N ) та визначив значення таємного ключа

K B .

39


Однак, як було відзначено раніше, розкладання дуже великого числа N на множники не здійсненно обчислювальними методами (за умови, що довжини обраних Р и Q становлять не менше 100 десяткових знаків).

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

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

1Користувач B вибирає два довільних великих простих числа P й Q.

2Користувач B обчислює значення модуля N згідно з (4.5).

3Користувач B обчислює функцію Ейлера (N ) й вибирає значення відкритого ключа K A з урахуванням виконання умов (4.6) і (4.7).

4Користувач B обчислює значення таємного ключа K B за формулою (4.8), використовуючи розширений алгоритм Евкліда.

5Користувач B пересилає незахищеним каналом користувачу A пару чисел (N, K A ).

Якщо користувач A має бажання передати користувачу B повідомлення М, він виконує такі

кроки.

6.Користувач A розбиває вихідний відкритий текст М на блоки, кожний з яких може бути поданий у вигляді числа M i , 0 M i N 1.

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

Ci M iK A mod N

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

C1 , C2 , C3 , ,Ci , .

8.Користувач B розшифровує прийняту криптограму C1 , C2 , C3 , ,Ci , , використовуючи таємний ключ K B , за формулою

M i CikB mod N .

40