Ключ (криптографія)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Ключ — параметр криптографічної системи, який використовується для

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

Приклади ключів:

  • Відкритий ключ — ключ, котрий дозволяється передавати по відкритому каналу зв'язку, а таємний ключ — мусить зберігатися таємно, або передаватися з використанням закритого каналу зв'язку.
  • Сеансовий ключ — ключ, що використовується під час сеансу обміну повідомленнями для захисту каналу зв'язку.

Особливості використання

[ред. | ред. код]

Жоден ключ шифрування не можна використовувати нескінченно. Час його дії має минати автоматично, подібно дозвільним документам, оскільки:[1]

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

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

Класифікація ключів

[ред. | ред. код]

Ключі розділяють залежно від того, у якій криптографічній системі їх використовують — симетричній або асиметричній. [2]

У несиметричних криптосистемах одне перетворення (відкрите) виконується на одному (відкритому) ключі, а закрите перетворення виконується на іншому (особистому) ключі. У зв'язку з цим усі ключі можна розділити на такі типи:[2]

  • Особистий ключ (англ. private key) — ключ із пари несиметричних ключів об'єкта, який повинен використовуватися тільки даним об'єктом.
  • Відкритий ключ (англ. public key) — ключ із пари несиметричних ключів об'єкта, який зроблений загальнодоступним.

Особистий і відкритий ключі використовуються в асиметричних криптографічних системах (криптосистеми з відкритим ключем)[2].

  • Симетричний ключ (англ. symmetric key) — ключ, що використовується у симетричних (одноключових) криптографічних системах.
  • Секретний ключ (англ. secret key) — ключ, який тримається в секреті і використовується тільки певною множиною об'єктів. Секретними ключами звичайно є симетричні й особисті ключі.

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

Стандарт ISO/IEC 10770 здійснює класифікацію ключів за такими ознаками:[2]

За типом криптосистеми
  • Симетрична
    • Симетричні ключі
  • Несиметрична
    • Особистий (таємний) ключ
    • Відкритий ключ
За призначенням
    • Системи шифрування
      • Ключі шифрування
      • Ключі дешифрування
      • Вектори ініціалізації
    • Системи автентифікації
      • Ключі печаток (MAC)
      • Ключі підпису
      • Ключі перевірки підпису
За ієрархією
  • Головні ключі
  • Ключі шифрування ключів
  • Транспортні ключі
  • Ключі даних
За часом використання
  • Короткострокові ключі
  • Довгострокові ключі.

Американський стандарт NIST SP 800-57 визначає додаткові типи ключів за їхнім призначенням і способом застосування[3][4][5].

Життєвий цикл ключів

[ред. | ред. код]

Генерація ключів

[ред. | ред. код]

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

Зберігання та використання ключів

[ред. | ред. код]

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

Знищення ключів

[ред. | ред. код]

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

Примітки

[ред. | ред. код]
  1. а б С. Е. Остапов, С. П. Євсеєв, О. Г. Король (2013). 10.4. Безпека керування ключами. Технології захисту інформації : навчальний посібник. Х.: Вид. ХНЕУ.
  2. а б в г д (Остапов, Євсеєв, Король; розділ: 10.1 Основні положення керування ключами. Життєвий цикл криптографічного ключа)
  3. Barker, Elaine. NIST Special Publication 800-57 Part 1 Revision 4: Recommendation for Key Management (PDF). National Institute of Standards and Technology (NIST). Архів оригіналу (PDF) за 10 грудня 2020. Процитовано 12 червня 2017.
  4. Reinholm, James H. Classification of Cryptographic Keys (Functions & Properties). Cryptomathic. Архів оригіналу за 14 липня 2017. Процитовано 12 червня 2017.
  5. Spacey, John. 12 Types of Cryptographic Key. Simplicable. Архів оригіналу за 27 червня 2017. Процитовано 12 червня 2017.

Див. також

[ред. | ред. код]

Посилання

[ред. | ред. код]