Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методи та засоби захисту інформації.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
246.27 Кб
Скачать

Асиметричні алгоритми шифрування даних. Математичні проблеми, що лежать в основі асиметричних криптоалгоритмів. Алгоритм rsa.

Асиметричні алгоритми шифрування — алгоритми шифрування, які використовують різні (і такі які важко обчислити один з одного) ключі для шифрування та розшифрування даних. Асиметричні криптосистеми — ефективні системи криптографічного захисту даних, які також називають криптосистемами з відкритим ключем. В таких системах для зашифровування даних використовується один ключ, а для розшифровування — інший ключ (звідси і назва — асиметричні). Перший ключ є відкритим і може бути опублікованим для використання усіма користувачами системи, які шифрують дані. Розшифровування даних за допомогою відкритого ключа неможливе. Для розшифровування даних отримувач зашифрованої інформації використовує другий ключ, який є секретним. Зрозуміло, що ключ розшифровування не може бути визначеним з ключа зашифровування. Головне досягнення асиметричного шифрування в тому, що воно дозволяє людям, що не мають існуючої домовленості про безпеку, обмінюватися секретними повідомленнями. Необхідність відправникові й одержувачеві погоджувати таємний ключ по спеціальному захищеному каналі цілком відпала. Прикладами криптосистем з відкритим ключем є Elgamal (названа на честь автора, Тахіра Ельгамаля), RSA (названа на честь винахідників: Рона Рівеста, Аді Шаміра і Леонарда Адлмана), Diffie-Hellman і DSA, Digital Signature Algorithm (винайдений Девідом Кравіцом). В основі асиметричних алгоритмів лежать:

  1. Факторизація великих чисел.

  2. Знаходження дискретного логарифму за модулем.

RSA (абревіатура від прізвищ Rivest, Shamir і Adleman) - криптографічний алгоритм з відкритим ключем, що грунтується на обчислювальній складності завдання факторизації великих цілих чисел. Криптосистема RSA стала першою системою, придатної і для шифрування, і для цифрового підпису. Алгоритм використовується у великому числі криптографічних додатків, включаючи PGP, S / MIME, TLS / SSL, IPSEC / IKE та інших. Безпека алгоритму RSA побудована на принципі складності факторизації. Алгоритм використовує два ключі — відкритий (public) і секретний (private), разом відкритий і відповідний йому секретний ключі утворюють пари ключів (keypair). Відкритий ключ не потрібно зберігати в таємниці, він використовується для шифрування даних. Якщо повідомлення було зашифровано відкритим ключем, то розшифрувати його можна тільки відповідним секретним ключем.

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

Для початку необхідно згенерувати відкритий і секретні ключі:

1. Візьмемо два великих простих числа p and q.

2. Визначимо n, як результат множення p on q (n = p * q).

3. Виберемо випадкове число, яке назвемо d. Це число повинне бути взаємно простим (не мати жодного спільного дільника, крім 1) з результатом множення (p-1) * (q-1).

4. Визначимо таке число е, для якого є істинним наступне співвідношення (e * d) mod ((p-1) * (q-1)) = 1.

5.Hазовем відкритим ключем числа e і n, а секретним - d і n.

Для того, щоб зашифрувати дані по відкритому ключу {e, n}, необхідно наступне:

1. розбити текст, що шифрується, на блоки, кожний з яких може бути представлений у вигляді числа M (i) = 0,1,2 ..., n-1 (тобто тільки до n-1).

2. зашифрувати текст, що розглядається як послідовність чисел M (i) за формулою C (i) = (M (I) ^ e) mod n.

Щоб розшифрувати ці дані, використовуючи секретний ключ {d, n}, необхідно виконати наступні обчислення: M (i) = (C (i) ^ d) mod n. У результаті буде отримано безліч чисел M (i), які представляють собою вихідний текст.