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

Метод відкритого ключа

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

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

Алгоритм шифрування з відкритим ключем 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).