Шифрування з відкритим ключем: визначення, особливості та види алгоритмів

Ідея кодування з відкритим ключем вперше була представлена в Стенфордському університеті в 1976 році М. Хеллманом, Р. Меркле і У. Діффі.

Двома типами алгоритмів PKC є: RSA – абревіатура, яка отримала назву на честь винахідників: Rivest, Shamir and Adelman і DSA (Digital Signature Algorithm). Шифрування PKC еволюціонувало для задоволення зростаючих безпечних комунікаційних потреб багатьох секторів і галузей промисловості, особливо військового спрямування. На відміну від криптографії з симетричним ключем шифрування з відкритим ключем – це відносно нова концепція.

Етапи виникнення криптосистем

Симетрична криптографія так само добре підходить для великих фінансових корпорацій, які використовують секретну передачу інформації. З поширенням незахищених комп’ютерних мереж за останні кілька десятиліть відчувалася нагальна необхідність використання криптографії в більш широких масштабах. Симетричний ключ виявився непрактичним з-за проблем, з якими він зіткнувся при управлінні системою. Це призвело до виникнення шифрування з відкритим ключем.

Етапи процесу створення:

  • 1977 рік. Винайдений RSA групою програмістів Р. Рівестом, А. Шамір і Л. Ключі.
  • 1978 рік. Створено Макеліс з-за проблем для декодування кодів Goppa.
  • 1979 рік. Вийшов Рабін, заснований на проблемі факторингу і пов’язаний з RSA.
  • 1984 рік. Видано Chor-Rivest.
  • 1985 рік. Вийшов Elgamal на основі дискретного логарифму.

Інші асиметричні криптосистеми:

  • Еліптичний метод на основі еліптичних кривих, що нагадує Elgamal.
  • Merkle / Hellman – на основі завдання про рюкзаку LUC, як і RSA, утворює послідовність Лукаса.
  • MNLN – такий же, як RSA.
  • Принцип шифрування, переваги і недоліки

    Щоб зрозуміти принцип асиметричного шифрування, потрібно завжди пам’ятати, що маєте справу не тільки з одним ключем, а з двома. Шифрування з відкритим ключем починається з публікації відкритого ключа. Публікацію можна зробити, наприклад, через сервер, а також поштою. Користувачеві не потрібно передавати його по безпечному шляху, кожен може заволодіти відкритим ключем. Часто навіть бажано, щоб він поширювався глобально, щоб гарантувати, що ніякий інший відкритий ключ не поширюється під фальшивими іменами.

    За допомогою системи шифрування з відкритим ключем кожен здатний засекретити інформацію для господаря відкритого ключа. Тому повідомлення розшифровується одержувачем його секретним ключем. Ось чому так важливо, щоб ключ залишався таємним. Його володар може розшифрувати всі повідомлення, зашифровані іншими, власним відкритим ключем.

    Такі криптосистеми застосовуються для шифрування даних з відкритим ключем, аутентифікації і цілісності. Відомими прикладами, заснованими на асиметричних методах, є OpenPGP чи S/MIME, а також криптографічні протоколи, такі як SSH, SSL/TLS і навіть https засновані на асиметричних криптосистемах.

    Переваги:

  • Відносно висока безпека.
  • Не потрібно стільки ключів, як у симетричному методі шифрування, тим самим менше зусиль для створення секретності.
  • Відсутність проблеми з передачею ключів.
  • Можливість аутентифікації за допомогою цифрових підписів.
  • Недоліками систем шифрування з відкритим ключем є:

  • Алгоритми працюють дуже повільно: приблизно в 10 000 разів повільніше симетричних.
  • Велика необхідна довжина ключа.
  • Проблеми з декількома користувачами, коли повідомлення має бути додатково зашифровано.
  • Засоби захисту гібридних процедур.
  • Ризик безпеки, доступний для кожного відкритого ключа, що також є недоліком систем шифрування з відкритим ключем.
  • Асиметрична криптографія

    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

    Кожна людина або сторона, що бажає брати участь у спілкуванні з використанням криптографії, генерує відразу кілька варіантів, а саме відкритий і закритий ключ шифрування. Процес описаний нижче:

  • Генерувати модуль RSA (n).
  • Підбирають два простих числа p та q.
  • Знаходять похідний номер e. Число e повинно бути більше 1 і менше (p – 1) (q – 1). Для e і (p – 1) (q – 1) не повинно бути загального фактора, крім 1.
  • Виконують шифрування за допомогою відкритого ключа.
  • Пара чисел (n, e) формує відкритий ключ RSA. Хоча n є частиною відкритого ключа, труднощі з факторизації такого числа забезпечують, що зловмисник не може знайти за кінцеве час два простих числа (p & q), що використовуються для одержання n. Це розуміння є основою 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, узяті тут, є невеликими значеннями. Практично ці значення повинні бути дуже значущими.

    Алгоритм обчислення:

  • Нехай два простих числа рівні p = 7, q = 13. Таким чином, модуль n = pq = 7 х 13 = 91.
  • Вибирають e = 5, що є допустимим вибором, так як немає числа, яке є загальним фактором 5 і (p – 1) (q – 1) = 6 × 12 = 72, за винятком 1. Пара чисел (n, e) = (91, 5) формує відкритий ключ і може бути доступна всім, кому потрібно надіслати зашифровані повідомлення. Вхід p = 7, q = 13 і e = 5. Вихід буде дорівнює d = 29.
  • Переконуються, що обчислений d правильний – de = 29 × 5 = 145 = 1 mod 72.
  • Отже, відкритий ключ – це (91, 5) і закриті ключі (91, 29).
  • Шифрування і дешифрування

    Далі процес шифрування і дешифрування є відносно простим і легко обчислюваним. Цікаво, що RSA безпосередньо не працює з рядками біт, як у випадку симетричного методу. Він працює з числами по модулю n. Отже, необхідно представити відкритий текст, як ряд чисел, менших n.

    Шифрування RSA:

  • Припустимо, що відправник хоче відправити текстове повідомлення кому-то, відкритий ключ (n, e).
  • Потім відправник представляє відкритий текст як серію чисел менше n.
  • Зашифрувати перший відкритий текст P, який є номером за модулем n. Процес шифрування – це простий математичний крок, C = Pe mod n.
  • Іншими словами, зашифрований текст C дорівнює відкритого тексту P, помноженому на нього e раз, а потім зменшеному по модулю n. Це означає, що C також менше n. Повертаючись до прикладу генерації ключів з відкритим текстом P = 10, отримуємо шифрований текст: C = 105 mod 91.

    Розшифровка RSA:

  • Процес дешифрування RSA також дуже простий. Припустимо, що одержувач пари ключів (n, e) отримав текст C.
  • Одержувач піднімає значення C для ключа d. Результат по модулю n буде відкритим текстом P: Plaintext = Cd mod n.
  • Повертаємося знову до числового прикладу, шифрований текст C = 82 дешифрован до числа 10 з використанням закритого ключа 29: Plaintext = 8229 mod 91 = 10.
  • Безпека RSA залежить від сильних сторін двох окремих функцій. Криптосистема RSA є найпопулярнішою криптосистемой відкритого ключа, що ґрунтується на практичній складності факторизації великих чисел.

    Функція шифрування – вважається односпрямованої функцією перетворення відкритого тексту в зашифрований текст і може бути скасована лише з допомогою секретного ключа d. Складність визначення відкритого і закритого ключа шифрування RSA еквівалентна факторизації модуля n. Таким чином, зловмисник не може використовувати знання відкритого ключа RSA для визначення секретного ключа RSA, якщо тільки він не може визначити n. Це також одностороння функція, перехід від значень p & q до модулю n легко, але зворотне не представляється можливим.

    Якщо будь-яка з цих двох функцій буде не односторонньої, то RSA порушується. Фактично, якщо технологія факторингу ефективно розроблена, то RSA більше не буде в безпеці. Сила шифрування RSA різко знижується проти атак, якщо число p і q не є простими числами або вибраний відкритий ключ e є невеликим числом.

    Криптосистема ElGamal

    Поряд з RSA, існують і інші криптосистеми з відкритим ключем. Багато з них засновані на різних версіях проблеми дискретного логарифму.

    Криптосистема ElGamal, звана варіантом еліптичної кривої, також заснована на задачі дискретного логарифму. Вона отримує силу захисту з припущення, що дискретні логарифми не можуть бути знайдені в практичному часовому інтервалі для заданого числа, тоді як зворотна операція потужності може бути розрахована ефективно.

    Наприклад, проста версія ElGamal, яка працює з числами modulo p. У разі варіантів еліптичної кривої метод заснований на абсолютно різних системах числення. Кожен користувач криптосистеми ElGamal генерує пару ключів наступним чином:

  • Вибір великого простого числа p. Зазвичай вибирається просте число від 1024 до 2048 біт.
  • Вибір генераторного елемента g. Це число повинне бути від 1 до p – 1.
  • Він є генератором мультиплікативної групи цілих чисел по модулю р. Це означає, що для будь-якого цілого m co-prime з p існує таке ціле число k, g k = a mod n. Наприклад, 3 є генератором групи 5 (Z 5 = {1, 2, 3, 4}).
  • 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 включає наступні ключові компоненти:

  • Політика сертифікації – це специфікація безпеки, яка визначає структуру та ієрархію екосистеми PKI, а також політики, пов’язані з керуванням ключами, безпечним зберіганням, обробкою, анулюванням.
  • Кореневий центр сертифікації (CA) відповідає за аутентифікацію ідентичностей у системі.
  • Проміжний ЦС сертифікований кореневим ЦС для конкретних цілей, визначених політикою сертифіката.
  • Цифрові сертифікати зазвичай видаються і підписуються центрами сертифікації.
  • База даних сертифікатів зберігає їх запису.
  • Служба анулювання – це сервери, на яких публікуються оновлені списки відкликаних сертифікатів (CRL) або Online Certificate Status Protocol (OCSP), які використовують CRL і відповідають на перевірки відкликання для пристроїв, які самі не можуть обробляти CRL.
  • Таким чином, асиметричні криптосистеми використовуються для шифрування, аутентифікації і цілісності. Якщо у зловмисника відсутній сертифікат відкритого ключа шифрування, він ніколи не зможе скористатися секретними даними. Відомими прикладами, заснованими на асиметричних методах, є OpenPGP чи S/MIME. Але також криптографічні протоколи, такі як SSH, SSL/TLS або навіть https, засновані на асиметричних криптосистемах.