Алгоритм RSA: Методичні вказівки до виконання і оформлення практичної роботи № 5

Страницы работы

Содержание работы

ПРАКТИЧНА РОБОТА №5

ПО ДИСЦИПЛІНІ КРИПТОЛОГІЯ

АЛГОРИТМ RSA”


Зміст

Теоретична частина.. 5

Приклад розв’язання задачі11

Вимоги до виконання і оформлення практичної  роботи.. 14

Варіанти завдань. 17

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

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


 1. Теоретична частина

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

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

У криптосистемі RSA відкритий ключ КA, секретний ключ КB, повідомлення М і криптограма С належать безлічі цілих чисел

,                                              (1)

де N – модуль:

.                                      (2)

Р і Q – випадкові великі прості числа.

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

Множина ZN з операціями додавання й множення за модулем N утворює арифметику за модулем N.

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

                             ,                                                    (3)

,                                         (4)

де   – функція Ейлера, що  показує  кількість позитивних цілих чисел в інтервалі від 1 до N, які взаємно прості з N:

.

Умова (4) означає, що відкритий ключ КA і функція Ейлера  повинні бути взаємно простими. Далі, використовуючи розширений алгоритм Евкліда, обчислюють секретний ключ K B із порівняння:

                                (5)

або

       .

Це можна здійснити, завдяки тому що одержувач В знає пару простих чисел (P,Q) і може легко знайти . Зауважимо, що KB і N повинні бути взаємно простими.

Відкритий ключ КA використовують для зашифрування даних, а секретний ключ KB – для розшифрування. Перетворення шифрування визначає криптограму Cчерез пару (відкритий ключ КA, повідомлення М) відповідно до такої формули:

.               (6)

Обернення функції , тобто визначення значення М за відомим значенням С, К A та N, практично нездійсненне при N > 2512. Проте зворотну задачу, тобто задачу розшифрування криптограми C, можна розв’язати, використовуючи пари (секретний ключ K B, криптограма C) за такою формулою:

.                         (7)

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

.                                      (8)

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

,

або

.                                    (9)

Величина відіграє важливу роль у теоремі Ейлера, яка стверджує: якщо , то

,

або в  більш загальній формі

.                        (10)

Зіставляючи вирази (9) і (10), одержуємо

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

Саме тому для обчислення секретного ключа KB використовують співвідношення (5). Таким чином, якщо криптограму

піднести до степеню KB, то в результаті відновлюється вихідний відкритий текст М, тому що

Таким чином, одержувач В, що створює криптосистему, захищає два параметри: секретний ключ KB і пару чисел (P,Q), добуток яких дає значення модуля N. З іншого боку, одержувач В відкриває значення модуля N і відкритий ключ КА . Супротивнику відомі лише значення К А та N. Якби він зміг розкласти число N на множники Р и Q, то він довідався б "потайний хід" - трійку чисел { Р,Q, К A }, обчисливши значення функції Ейлера

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

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

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

2. Користувач В обчислює значення модуля N

;

3. Користувач В обчислює функцію Ейлера (8)

;

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

, ;

5. Користувач В обчислює значення секретного ключа КB, використовуючи розширений алгоритм Евкліда при розв’язку порівняння

;

6. Користувач В пересилає користувачеві А пару чисел
(N, КA) по незахищеному каналу.

Похожие материалы

Информация о работе

Предмет:
Криптология
Тип:
Методические указания и пособия
Размер файла:
172 Kb
Скачали:
0