Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
125 Кібербезпека / 4 Курс / 4.2_Управління інформаційною безпекою / Лiтература / Крижанівський_В.Б._Безпека_програм_і...docx
Скачиваний:
129
Добавлен:
23.10.2019
Размер:
1.26 Mб
Скачать

Опис алгоритму Введення

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

• Якщо відомо x, то обчислити f(x) відносно просто

• Якщо відомо f(x), то для x немає простого шляху обчислення

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

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

В криптографічного системі з відкритим ключем кожен учасник має в своєму розпорядженні як відкритим ключем (англ. public key), так і секретним ключем (англ. secret key). Кожен ключ - це частина інформації. В криптографічного системі RSA кожен ключ складається з пари цілих чисел. Кожен учасник створює свій відкритий і секретний ключ самостійно. Секретний ключ кожен з них тримає в секреті, а відкриті ключі можна повідомляти кому завгодно або навіть публікувати їх. Відкритий і секретний ключі кожного учасника обміну повідомленнями утворюють «узгоджену пару» в тому сенсі, що вони є взаємно зворотними.

Алгоритм створення відкритого і секретного ключів

RSA-ключі генеруються таким чином:

1. Вибираються два випадкових простих числа p і q заданого розміру (наприклад, 1024 біта кожне).

2. Обчислюється їх добуток n = pq, яке називається модулем.

3. Обчислюється значення функції Ейлера від числа n:

4. Вибирається ціле число e, взаємно просте з значенням функції Ейлера. Звичайно як e беруть прості числа, що містять невелику кількість одиничних бітів в двійковій запису, наприклад, прості числа Ферма 17, 257, або 65 537.

o Число e називається відкритою експонентою (англ. public exponent)

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

o Занадто малі значення e, наприклад 3, потенційно можуть послабити безпеку схеми RSA.

5. Обчислюється число d, мультиплікативно зворотне до числа e по модулю.

o Число d називається секретної експонентою.

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

6. Пара P = (e, n) публікується в якості відкритого ключа RSA (англ. RSA public key).

7. Пара S = (d, n) відіграє роль секретного ключа RSA (англ. RSA private key) і тримається в секреті.

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

Схема RSA

Припустимо, сторона хоче послати стороні повідомлення.

Цифровий підпис

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

Алгоритм:

• Взяти відкритий текст

• Створити цифровий підпис за допомогою свого таємного ключа

• Надіслати пару, що складається з повідомлення і підпису.

Алгоритм:

• Прийняти пару

• Взяти відкритий ключ боку

• Перевірити справжність підпису:

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

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

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