Ідея кодування з відкритим ключем вперше була представлена в Стенфордському університеті в 1976 році М. Хеллманом, Р. Меркле і У. Діффі.
Двома типами алгоритмів PKC є: RSA – абревіатура, яка отримала назву на честь винахідників: Rivest, Shamir and Adelman і DSA (Digital Signature Algorithm). Шифрування PKC еволюціонувало для задоволення зростаючих безпечних комунікаційних потреб багатьох секторів і галузей промисловості, особливо військового спрямування. На відміну від криптографії з симетричним ключем шифрування з відкритим ключем – це відносно нова концепція.
Етапи виникнення криптосистем
Симетрична криптографія так само добре підходить для великих фінансових корпорацій, які використовують секретну передачу інформації. З поширенням незахищених комп’ютерних мереж за останні кілька десятиліть відчувалася нагальна необхідність використання криптографії в більш широких масштабах. Симетричний ключ виявився непрактичним з-за проблем, з якими він зіткнувся при управлінні системою. Це призвело до виникнення шифрування з відкритим ключем.
Етапи процесу створення:
- 1977 рік. Винайдений RSA групою програмістів Р. Рівестом, А. Шамір і Л. Ключі.
- 1978 рік. Створено Макеліс з-за проблем для декодування кодів Goppa.
- 1979 рік. Вийшов Рабін, заснований на проблемі факторингу і пов’язаний з RSA.
- 1984 рік. Видано Chor-Rivest.
- 1985 рік. Вийшов Elgamal на основі дискретного логарифму.
Інші асиметричні криптосистеми:
Принцип шифрування, переваги і недоліки
Щоб зрозуміти принцип асиметричного шифрування, потрібно завжди пам’ятати, що маєте справу не тільки з одним ключем, а з двома. Шифрування з відкритим ключем починається з публікації відкритого ключа. Публікацію можна зробити, наприклад, через сервер, а також поштою. Користувачеві не потрібно передавати його по безпечному шляху, кожен може заволодіти відкритим ключем. Часто навіть бажано, щоб він поширювався глобально, щоб гарантувати, що ніякий інший відкритий ключ не поширюється під фальшивими іменами.
За допомогою системи шифрування з відкритим ключем кожен здатний засекретити інформацію для господаря відкритого ключа. Тому повідомлення розшифровується одержувачем його секретним ключем. Ось чому так важливо, щоб ключ залишався таємним. Його володар може розшифрувати всі повідомлення, зашифровані іншими, власним відкритим ключем.
Такі криптосистеми застосовуються для шифрування даних з відкритим ключем, аутентифікації і цілісності. Відомими прикладами, заснованими на асиметричних методах, є OpenPGP чи S/MIME, а також криптографічні протоколи, такі як SSH, SSL/TLS і навіть https засновані на асиметричних криптосистемах.
Переваги:
Недоліками систем шифрування з відкритим ключем є:
Асиметрична криптографія
PKC також відомий як шифрування з відкритим ключем, асиметричне шифрування, асиметрична криптографія, асиметричний шифр, асиметричне шифрування ключів шифрування Diffie-Hellman. PKC – це криптографічний алгоритм і компонент криптосистеми, реалізований різними інтернет-стандартами, включаючи безпеку транспортного рівня (TLS), Pretty Good Privacy (PGP), GNU Privacy Guard (GPG), Secure Socket Layer (SSL) та протокол передачі гіпертексту (HTTP).
PKC забезпечує безпечний зв’язок через небезпечний канал, який дозволяє читати повідомлення тільки передбачуваним одержувачем. Наприклад, A використовує відкритий ключ B для шифрування повідомлення, яке може бути розшифровано з використанням унікального приватного ключа B.
PKC підтримує конфіденційність електронної пошти і забезпечує безпеку зв’язку, коли повідомлення знаходяться в дорозі або зберігаються на поштових серверах. PKC також є компонентом DSA, використовуваним для аутентифікації секретного ключа, який може бути перевірений будь-якою особою, що має законний доступ до відкритих ключів. Таким чином, PKC полегшує конфіденційність, цілісність даних і аутентифікацію, які формують параметри ключової інформації (IA).
PKC повільніше, ніж методи криптографії секретного ключа (або симетричної криптографії), з-за високих обчислювальних вимог. Це явний недолік систем шифрування з відкритим ключем. На відміну від симетричної криптографії, PKC використовує фіксований розмір буфера, в залежності від конкретних і малих обсягів даних, які можуть бути зашифровані і не прив’язані в потоках. Оскільки використовується широкий діапазон можливих ключів шифрування, PKC є більш надійним і менш сприйнятливим до спроб порушення захисту.
Метод відкритого ключа
Для шифрування і дешифрування використовуються різні ключі. Це властивість, яка встановлює схему, відмінну від симетричного шифрування. Кожен приймач володіє унікальним ключем дешифрування, зазвичай званим закритим.
Одержувачу необхідно опублікувати той, який називається відкритим ключем методу шифрування. Деяка впевненість у його справжності необхідна в цій схемі, щоб уникнути підміни зловмисників в якості одержувача. Як правило, цей тип криптосистеми включає довірену третю сторону, яка засвідчує, що конкретний відкритий ключ належить тільки конкретної людини або об’єкту.
Алгоритм шифрування з відкритим ключем RSA досить складний, щоб заборонити зловмиснику виводити відкритий текст зашифрованого тексту і ключа шифрування загального доступу.
Генерація пари RSA
Кожна людина або сторона, що бажає брати участь у спілкуванні з використанням криптографії, генерує відразу кілька варіантів, а саме відкритий і закритий ключ шифрування. Процес описаний нижче:
Створення секретного ключа полягає в наступному. Приватний ключ d обчислюється з p, q і e. Для заданих n і e існує єдине число d. Число d є інверсією e по модулю (p – 1) (q – 1). Це означає, що d – це число менше (p – 1) (q – 1), але таке, що при множенні на e воно дорівнює 1 по модулю (p – 1) (q – 1). Це співвідношення написано математично наступним чином:
ed = 1 mod (p − 1)(q − 1).
Розширений евклидовый алгоритм приймає p, q і e у якості вхідних даних і дає d в якості висновку. Нижче наведено приклад створення пари RSA Key. Для зручності розуміння прості числа p & q, узяті тут, є невеликими значеннями. Практично ці значення повинні бути дуже значущими.
Алгоритм обчислення:
Шифрування і дешифрування
Далі процес шифрування і дешифрування є відносно простим і легко обчислюваним. Цікаво, що RSA безпосередньо не працює з рядками біт, як у випадку симетричного методу. Він працює з числами по модулю n. Отже, необхідно представити відкритий текст, як ряд чисел, менших n.
Шифрування RSA:
Іншими словами, зашифрований текст C дорівнює відкритого тексту P, помноженому на нього e раз, а потім зменшеному по модулю n. Це означає, що C також менше n. Повертаючись до прикладу генерації ключів з відкритим текстом P = 10, отримуємо шифрований текст: C = 105 mod 91.
Розшифровка RSA:
Безпека RSA залежить від сильних сторін двох окремих функцій. Криптосистема RSA є найпопулярнішою криптосистемой відкритого ключа, що ґрунтується на практичній складності факторизації великих чисел.
Функція шифрування – вважається односпрямованої функцією перетворення відкритого тексту в зашифрований текст і може бути скасована лише з допомогою секретного ключа d. Складність визначення відкритого і закритого ключа шифрування RSA еквівалентна факторизації модуля n. Таким чином, зловмисник не може використовувати знання відкритого ключа RSA для визначення секретного ключа RSA, якщо тільки він не може визначити n. Це також одностороння функція, перехід від значень p & q до модулю n легко, але зворотне не представляється можливим.
Якщо будь-яка з цих двох функцій буде не односторонньої, то RSA порушується. Фактично, якщо технологія факторингу ефективно розроблена, то RSA більше не буде в безпеці. Сила шифрування RSA різко знижується проти атак, якщо число p і q не є простими числами або вибраний відкритий ключ e є невеликим числом.
Криптосистема ElGamal
Поряд з RSA, існують і інші криптосистеми з відкритим ключем. Багато з них засновані на різних версіях проблеми дискретного логарифму.
Криптосистема ElGamal, звана варіантом еліптичної кривої, також заснована на задачі дискретного логарифму. Вона отримує силу захисту з припущення, що дискретні логарифми не можуть бути знайдені в практичному часовому інтервалі для заданого числа, тоді як зворотна операція потужності може бути розрахована ефективно.
Наприклад, проста версія ElGamal, яка працює з числами modulo p. У разі варіантів еліптичної кривої метод заснований на абсолютно різних системах числення. Кожен користувач криптосистеми ElGamal генерує пару ключів наступним чином:
N | N 3 | 3 n mod 5 |
1 | 3 | 3 |
2 | 9 | 4 |
3 | 27 | 2 |
4 | 81 | 1 |
Вибір секретного ключа. Приватним ключем x є будь-яке число, більше 1 і менше, ніж (p-1). Обчислення частини відкритого ключа. Значення y обчислюється за параметрами p, g і закритого ключа x наступним чином:
y = gx mod p.
Отримання відкритого ключа. Відкритий ключ ElGamal складається з трьох параметрів (p, g, y).Припустимо, наприклад, що p = 17 і g = 6. Можна стверджувати, що 6 є генератором групи Z 17. Закритий ключ x може бути будь-яким числом більше 1 і менше 71, тому вибирають x = 5. Потім значення y обчислюється наступним чином:
y = 65 mod 17 = 7.
Таким чином, закритий ключ дорівнює 62, а відкритий ключ – (17, 6, 7).
Еліптична крива ECC
Еліптична крива криптографії (ECC) – це термін, використовуваний для опису набору криптографічних інструментів і протоколів, безпека яких заснована на спеціальних версіях проблеми дискретного логарифму. Він не використовує числа modulo p. ECC заснований на наборах чисел, пов’язаних з математичними об’єктами, які називаються еліптичними кривими. Існують правила для додавання і обчислення кратних цих чисел, як і для чисел за модулем p.
ECC включає в себе варіанти багатьох криптографічних схем, які спочатку були розроблені для модульних чисел, таких як шифрування ElGamal, алгоритми шифрування з відкритим ключем і цифрового підпису. Вважається, що завдання дискретного логарифма набагато складніше стосовно точок еліптичної кривої.
Це викликає перехід від чисел по модулю «p» до точок еліптичної кривої. Також еквівалентний рівень безпеки може бути отриманий з більш короткими ключами, якщо використовують варіанти з еліптичної кривої. Більш короткі клавіші призводять до двох переваг шифрування інформації з відкритим ключем:
Ці переваги роблять варіанти схеми шифрування на основі еліптичної кривої дуже привабливими для додатків, де обмежені обчислювальні ресурси. Можна швидко порівняти схеми RSA і ElGamal з різних аспектів.
RSA | ElGamal |
Більш ефективний для шифрування. | Більш ефективний для дешифрування. |
Менш ефективний для дешифрування. | Більш ефективний для дешифрування. |
Для певного рівня безпеки RSA потрібні довгі ключі. | Для того ж рівня безпеки потрібні дуже короткі ключі. |
Метод широко використовується. | Новий метод і поки не дуже популярний на ринку. |
Протокол Secure Sockets Layer (SSL)
Інтернет-трафік, який передає інформацію через проміжні комп’ютери, може бути перехоплений третьою стороною:
Уособлення може мати дві форми:
Криптографія з відкритим ключем забезпечує захист від інтернет-атак.
Алгоритм шифрування і його переваги безпеки
Недоцільно обчислювати закритий ключ на основі відкритого ключа. З-за цього відкриті ключі можуть вільно застосовуватися, що дозволяє легко і зручно використовувати шифрування вмісту і перевірку цифрових підписів, а секретні ключі можуть зберігатися в таємниці, гарантуючи, що тільки власники закритих ключів можуть розшифровувати вміст і створювати цифрові підписи.
Оскільки відкриті ключі повинні бути розділені, але занадто великі, щоб їх легко запам’ятовувати, вони зберігаються в цифрових сертифікатів для безпечного транспортування та спільного використання. Приватні ключі не використовуються спільно, вони просто зберігаються в програмному забезпеченні або операційній системі, яку використовують, або на апаратне забезпечення, наприклад, токені USB, апаратне забезпечення, що містить драйвери, які дозволяють використовувати його з програмним забезпеченням або операційною системою.
Цифрові сертифікати видаються організаціями, відомими як центри сертифікації (ЦС). Основними бізнес-додатками для криптографії з відкритим ключем є:
Припускаючи, що приватний ключ не був скомпрометований, шифрування даних і повідомлень забезпечує наступні переваги:
Інфраструктура відкритого інструменту
Інфраструктура відкритих ключів (PKI) є фонової кібербезпеки і заходом, яка описується як сукупність правил, політик і процедур, необхідних для створення, управління, розподілу, використання, зберігання та відкликання цифрових сертифікатів.
PKI заснований на асиметричної криптографії, широко використовується сьогодні для забезпечення електронного зв’язку для онлайн-покупок, інтернет-банкінгу та електронної пошти, а також для захисту повідомлень між мільйонами користувачів і веб-сайтів, які вони підключають до використання HTTPS.
Хоча можна легко шифрувати повідомлення без PKI, користувач не можете легко перевірити, з ким він спілкується. Іншими словами, інфраструктура PKI допомагає йому аутентифікувати або перевіряти особу, з якою він спілкується.
Типова екосистема PKI включає наступні ключові компоненти:
Таким чином, асиметричні криптосистеми використовуються для шифрування, аутентифікації і цілісності. Якщо у зловмисника відсутній сертифікат відкритого ключа шифрування, він ніколи не зможе скористатися секретними даними. Відомими прикладами, заснованими на асиметричних методах, є OpenPGP чи S/MIME. Але також криптографічні протоколи, такі як SSH, SSL/TLS або навіть https, засновані на асиметричних криптосистемах.