3. Принципи асиметричного шифрування.
Асиметричні алгоритми шифрування — алгоритми шифрування, які використовують різні (і такі які важко обчислити один з одного) ключі для шифрування та розшифрування даних.
Асиметричні криптосистеми — ефективні системи криптографічного захисту даних, які також називають криптосистемами з відкритим ключем. В таких системах для зашифровування даних використовується один ключ, а для розшифровування — інший ключ (звідси і назва — асиметричні). Перший ключ є відкритим і може бути опублікованим для використання усіма користувачами системи, які шифрують дані. Розшифровування даних за допомогою відкритого ключа неможливе. Для розшифровування даних отримувач зашифрованої інформації використовує другий ключ, який є секретним. Зрозуміло, що ключ розшифровування не може бути визначеним з ключа зашифровування.
Головне досягнення асиметричного шифрування в тому, що воно дозволяє людям, що не мають існуючої домовленості про безпеку, обмінюватися секретними повідомленнями. Необхідність відправникові й одержувачеві погоджувати таємний ключ по спеціальному захищеному каналі цілком відпала. Прикладами криптосистем з відкритим ключем є Elgamal (названа на честь автора, Тахіра Ельгамаля), RSA (названа на честь винахідників: Рона Рівеста, Аді Шаміра і Леонарда Адлмана), Diffie-Hellman і DSA, Digital Signature Algorithm (винайдений Девідом Кравіцом).
Початок асиметричним шифру було покладено в роботі «Нові напрямки в сучасній криптографії» Уітфілд Діффі та Мартіна Хеллмана, опублікованій в 1976 році. Перебуваючи під впливом роботи Ральфа Меркле (Ralph Merkle) про поширення відкритого ключа, вони запропонували метод отримання секретних ключів, використовуючи відкритий канал. Цей метод експоненціального обміну ключів, який став відомий як обмін ключами Діффі-Хеллмана, був першим опублікованим практичним методом для встановлення поділу секретного ключа між завіреними користувачами каналу. У 2002 році Хеллмана запропонував називати даний алгоритм «Діффі — Хеллмана — Меркле», визнаючи внесок Меркле в винахід криптографії з відкритим ключем. Ця ж схема була розроблена Малькольмом Вільямсоном в 1970-х, але трималася в секреті до 1997 року. Метод Меркле з розповсюдження відкритого ключа був винайдений в 1974 році і опублікований в 1978, його також називають загадкою Меркле.
У 1977 році вченими Рональдом Рівестом (Ronald Linn Rivest), Аді Шамір (Adi Shamir) і Леонардом Адлеманом (Leonard Adleman) з Массачусетського Технологічного Інституту (MIT) був розроблений алгоритм шифрування, заснований на проблемі про розкладанні на множники. Система була названа за першими літерами їхніх прізвищ. Ця ж система була винайдена Клиффордом Коксом (Clifford Cocks) в 1973 році, що працював в центрі урядового зв'язку (GCHQ). Але ця робота зберігалася лише у внутрішніх документах центру, тому про її існування було не відомо до 1977 року. RSA став першим алгоритмом, придатним і для шифрування, і для цифрового підпису.
4. Односторонні функції та функції-пастки
Під односторонньої функцією розуміється ефективно обчислювана функція, для звернення якої (тобто для пошуку хоча б одного значення аргументу по заданому значенню функції) не існує ефективних алгоритмів. Зауважимо, що зворотна функція може і не існувати.
Під
функцією розумієьться множину відображень
{fn},
де fn:
𝜮n
→ 𝜮n,
m
= m(n).
Для простоти припустимо, що n
пробігає натуральний ряд, а відображення
fn,
визначені усюди. Функція f
називається чесною, якщо
поліном q(x),
такий що
n
q(m(n))
n.
Формально поняття односторонньої функції описується таким чином: Чесна функція f називається односторонньою, якщо
1. Існує поліноміальний алгоритм, який для всякого х обчислює f(x);
2. Для будь-якої поліноміальної ймовірнісної машини Тюрінга А виконано наступне. Нехай рядок х обраний випадковим чином з множини 𝜮n.Тоді для будь-якого полінома р і всіх достатньо великих n
P{f(A(f(x)))=f(x)} < 1/p(n).
Друга умова якісно означає наступне. Будь-яка поліноміальна імовірнісна машина Тюрінга А може за даним у знайти х з рівняння f (x) = у лише з надзвичайно малою ймовірністю.
Зауважимо, що вимогу чесності опустити не можна. Оскільки довжина вхідного слова f(x) машини А дорівнює m, їй може не вистачити поліноміального від m часу просто на виписування рядка х.
Функцією-пасткою називається одностороння функція, для якої зворотну функцію обчислити просто, якщо є деяка додаткова інформація, і складно, якщо така інформація відсутня.
В якості завдань, що призводять до односторонніх функцій, можна навести такі:
1. Розкладання числа на прості співмножники.
Обчислити добуток двох простих чисел дуже просто. Однак, для рішення зворотної задачі - розкладання заданого числа на прості співмножники, ефективного алгоритму в даний час не існує.
2. Дискретне логарифмування в кінцевому простому полі (проблема Діффі-Геллмана).
Криптосистеми з відкритим ключем ґрунтуються на односторонніх функціях-пастках. При цьому відкритий ключ визначає конкретну реалізацію функції, а секретний ключ дає інформацію про пастку. Будь-хто, хто знає пастку, може легко обчислювати функцію в обох напрямках, але той, у кого така інформація відсутня, може виробляти обчислення тільки в одному напрямку. Прямий напрямок використовується для шифрування і для верифікації цифрових підписів, а зворотне - для розшифрування та вироблення цифрового підпису.
У всіх криптосистемах з відкритим ключем чим більше довжина ключа, тим вище відмінність між зусиллями, необхідними для обчислення функції в прямому і зворотному напрямках (для того, хто не володіє інформацією про пастку).
