Алгоритм Діффі-Хелмана, забезпечуючи конфіденційність передачі ключа, не може гарантувати того, що він присланий саме тим партнером, який передбачається. Для вирішення цієї проблеми був запропонований протокол STS (station-to-station). Цей протокол для ідентифікації відправника використовує техніку електронного підпису. Підпис шифрується загальним секретним ключем, після того як він сформований. Підпис включає в себе ідентифікатори як P1, так і P2 .. Захищений патентом США № 4405829. Розроблений в 1977 році в Массачусетському технологічному інституті (США). Отримав назву за першими літерами прізвищ авторів (Rivest, Shamir, Adleman). Крипостійкість заснована на обчислювальній складності завдання розкладання великого числа на прості множники. RSA належить до так званих асиметричним алгоритмам, у яких ключ шифрування не співпадає з ключем дешифрування. Один з ключів доступний всім (так робиться спеціально) і називається відкритим ключем, інший зберігається тільки у його хазяїна і невідомий нікому іншому. За допомогою одного ключа можна робити операції тільки в один бік. Якщо повідомлення зашифровано за допомогою одного ключа, то розшифрувати його можна тільки за допомогою іншого. Маючи один з ключів неможливо (дуже складно) знайти інший ключ, якщо розрядність ключа висока.
Опис RSA:
Алгоритм RSA складається з наступних пунктів:
1. Вибрати прості числа p і q.
2. Обчислити n = p * q.
. Обчислити m = (p - 1) * (q - 1).
. Вибрати число d взаємно просте з m.
. Вибрати число e так, щоб e * d = 1 (mod m).
Числа e і d є ключами. Шіфруемие дані необхідно розбити на блоки - числа від 0 до n - 1. Шифрування та дешифрування даних проводяться таким чином:
1. Шифрування: b = ae (mod n).
2. Дешифровка: a = bd (mod n).
Слід також зазначити, що ключі e і d рівноправні, тобто повідомлення можна шифрувати як ключем e, так і ключем d, при цьому розшифровка повинна бути зроблена за допомогою іншого ключа .. Розроблений в 1985 році. Названий за прізвищем автора - Ель-Гамаль. Алгоритм Ель-Гамаля може використовуватися для формування електронного підпису або для шифрування даних. Він базується на труднощі обчислення дискретного логарифма. Для генерації пари ключів спочатку береться просте число p і два випадкових числа g і x, кожне з яких менше p. Потім обчислюється:
= g x mod p
Загальнодоступними ключами є y, g і p, а секретним ключем є х. Для пі...