Відкрите розподіл ключів

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

Постановка завдання захисту інформації

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

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

Теоретичні основи рішення задачі

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

Загальна схема протоколу виглядає наступним чином:

Попередній етап

  • отримати p - велике просте число;
  • отримати повне розкладання числа (p -1) на множники;
  • обчислити первісний корінь r по модулю p (r mod p).

Складене число розкладається на прості множники (на прості числа або їх позитивні цілі ступеня, можливо нульові), де pi - прості числа; bi - ступеня простих чисел.

Для обчислення первісної кореня необхідно, щоб для будь-якого числа з інтервалу виконувалася умова. При виконанні цієї умови будь-яке число можна представити у вигляді. де x - деяке позитивне ціле число з інтервалу. Пара чисел (p, r) використовується в якості відкритого ключа.

Робочий етап

Нехай і - два абонента, яким необхідно отримати загальний секретний ключ. тоді:

1. генерує елемент. обчислює і відправляє результат

2. генерує елемент. обчислює і відправляє результат

3. обчислює значення

4. обчислює значення

Після отримання значення і необхідно знищити.

В результаті виконання протоколу кожен з абонентів і отримує загальний ключ. який може бути використаний в симетричних системах шифрування. При цьому, противник, якому відомий відкритий ключ (p, r) не зможе обчислити значення. При перехопленні чисел і противник так само не зможе отримати значення.

Основні криптографічні конструкції і їх стійкість

Цей протокол був запропонований в 1976 році і є першим протоколом такого класу. Також його можна назвати одним з найвідоміших протоколів відкритого розподілу ключів.

Протокол Діффі-Хеллмана не забезпечує ні аутентифікацію. ні підтвердження ключа, ні аутентифікацію учасників протоколу. Активний противник може побудувати атаку на протокол шляхом включення в канал (атака "Людина посередині").

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

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

Демонстраційна програма, що показує роботу даного протоколу:
Вихідний код на мові C #: File: DHSourceCode.txt
Виконуваний файл: File: DiffieHellmanProg.zip

Відкрите розподіл ключів

Ця криптосистема була запропонована в 1985 році. Ель-Гамаль запропонував цю схему на основі піднесення до степеня за модулем великого простого числа. Він удосконалив систему Діффі-Хеллмана і отримав два алгоритму, які використовувалися для шифрування і для забезпечення аутентифікації.

Практичні застосування криптографічних конструкцій, особливості їх реалізації

Перше практичне застосування криптосистем з відкритим ключем - організація обміну ключами між віддаленими користувачами через відкриті канали зв'язку

IKE (Internet Key Exchange)

IKE - стандартний протокол IPsec, який використовується для забезпечення безпеки взаємодії у віртуальних приватних мережах. Протокол IKE дозволяє погоджувати алгоритми і математичні структури для процедури обміну ключами Діффі-Хеллмана, а також процесів аутентифікації.

IPsec (IP Security) - набір протоколів для забезпечення захисту даних, що передаються по межсетевому протоколу IP. Дозволяє здійснювати підтвердження справжності (аутентифікацію), перевірку цілісності та / або шифрування IP-пакетів. IPsec також включає в себе протоколи для захищеного обміну ключами Діффі-Хеллмана в мережі Інтернет.

Протоколи IKE вирішують три завдання:

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

• керують параметрами з'єднання і захистом від деяких типів атак, контролюють виконання всіх досягнутих угод;

• забезпечують створення, управління ключової інформації сполуки, безпосередній обмін ключами (в тому числі можливість їхньої частої зміни).

PGP (Pretty Good Privacy)

PGP - популярна програма для шифрування, дешифрування і цифрового підпису повідомлень електронної пошти, файлів та іншої інформації, представленої в електронному вигляді. Вона працює за принципом несиметричного шифрування, що дозволяє обмінюватися відкритими ключами через небезпечні канали зв'язку. Закриті ключі не передаються, тому програма організована так, що всі команди відправки і обміну ключів оперують тільки відкритими ключами.

PGP дозволяє користувачам обмінюватися файлами або повідомленнями з використанням функції секретності і встановленням автентичності.

PGP поєднує використання криптографічного системи RSA і Діффі-Хеллмана.

PGP виконує алгоритм "дайджесту повідомлень" (виявлення факту зміни документа або повідомлення) для реалізації електронного підпису і упаковку даних перед шифруванням.

У PGP використовується два взаємопов'язаних ключа: публікується відкритий і секретний ключ. За допомогою відкритого ключа зашифрована повідомлення, а розшифрування відбувається за допомогою секретного ключа. Таким чином, будь-хто може зашифрувати повідомлення, використовуючи відкритий ключ, але розшифрувати його зможе тільки власник секретного ключа.

Протокол управління кріптоключа SKIP

Протокол SKIP (Simple Key Management for Internet Protocol) може використовуватися як інтегрує середовища і системи управління кріптоключа.

Протокол базується на криптографії відкритих ключів Діффі-Хеллмана і має ряд переваг:

  • забезпечує досить високу ступінь захисту інформації;
  • забезпечує швидку зміну ключів;
  • допускає модульну заміну систем шифрування;
  • підтримує групові розсилки захищених повідомлень;
  • вносить мінімальну надмірність.

бібліографічний покажчик

Перейти до списку літератури по розділу "Відкрите розподіл ключів".