Page 167 - 4636
P. 167
Явний недолік алгоритмів з секретним ключем полягає в тому, що для відправки комусь
захищеного повідомлення необхідно розташовувати безпечним способом передачі цій особі
секретного ключа. А якщо у вас є безпечний метод передачі ключа, то чому не скористатися цим
самим методом для передачі повідомлень?
На щастя, в 1976 р. стався прорив, коли Діффі (Diffie) і Хеллман (Heilman) опублікували перший
алгоритм шифрування з відкритим ключем.
Шифрування відкритим ключем
Шифрування відкритим ключем (public key encryption) базується на двох різних ключах –
відкритому і секретному. Як показано на рис.9.5, відкритий ключ використовується для шифрування
повідомлень, а секретний – для їх дешифрування.
Відкритий Закритий
ключ ключ
Відкритий Алгоритм Зашифрований Алгоритм Відкритий
текст шифруванн текст шифрування текст
Рисунок 9.5 - При шифруванні з відкритим ключем для шифрування і дешифрування
використовуються різні ключі
Перевага цього підходу полягає в тому, що, як випливає з його назви, відкритий ключ можна
вільно поширювати. Будь-яка людина, якій ви передали свій відкритий ключ, може відправити вам
захищене повідомлення. Але оскільки секретним ключем володієте тільки ви, то тільки ви і зможете
дешифрувати повідомлення .
Найбільш відомий алгоритм з відкритим ключем – це алгоритм RSA, який розробили Райвест
(Rivest), Шамір (Shamir) і Адлеман (Adleman) в Мічиганському технологічному інституті(MIT) і
опубліку в 1978 р. Раніше алгоритм RSA був захищений патентом, але термін дії патенту закінчився у
вересні 2000 р.
Величезною перевагою алгоритмів з відкритим ключем є можливість передачі відкритого ключа
незахищеним каналом, не турбуючись, що він буде прочитаний третьою стороною. Незважаючи на це,
системи з секретним ключем все ще широко використовують. Часто можна побачити гібридні
системи. У таких системах алгоритм з відкритим ключем застосовують для передачі секретного ключа,
який використовують для обміну даними до кінця сеансу зв'язку. Ця додаткова складність
компенсується тим, що алгоритми з секретним ключем працюють на три порядки швидше від
алгоритмів з відкритим ключем.
9.6 Цифрові підписи
Цифрові підписи (digital signature) відносяться до криптографічних алгоритмів з відкритим
ключем, але із зміненими ролями відкритого і секретного ключів. Відправник може зашифрувати і
підписати повідомлення своїм секретним ключем. Коли повідомлення отримано, одержувач може
дешифрувати його, використовуючи відкритий ключ відправника. З огляду на те, що відправник – це
164