Особистісне шифрування

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

Особистісне шифрування було сформульоване Аді Шаміром у 1984 році[1]. Перша конкретна схема на базі криптографічних парувань була запронована Боне і Франкліном у 2001 році[2].

Неформальний опис ред.

Коли Аліса відправляє повідомлення Бобу за допомогою особистісного шифрування, знаючи його адресу електронної пошти bob@example.com, їй не потрібно отримувати класичний відкритий ключ Боба (зазвичай це послідовність бітів, не придатна до запам’ятовування людиною, та усної передачі). Натомість їй достатньо зашифрувати повідомлення рядком "bob@example.com" як відкритим ключем. Коли Боб отримує повідомлення, він звертається до довіреної третьої сторони — генератора закритих ключів (private key generator, PKG). Боб проходить автентифікацію, після чого генератор надає йому особистий закритий ключ, за допомогою якого Боб може розшифрувати повідомлення від Аліси. В особистісному шифруванні невід’ємною є властивість, що довірена третя особа повинна мати доступ до закритих ключів усіх отримувачів повідомлень.

Означення ред.

Схема особистісного шифрування складається з чотирьох алгоритмів: ініціалізації (setup), отримання приватного ключа (extract), шифрування (encrypt), і розшифрування (decrypt).

  • Ініціалізація. Отримує на вхід параметр безпеки  , і повертає параметри системи   і головний (закритий) ключ (master key)  . Параметри системи включають в себе простір повідомлень   і простір шифротекстів  . Алгоритм виконується генератором закритих ключів перед початком роботи системи.
  • Отримання приватного ключа. Отримує на вхід параметри системи  , ідентифікатор користувача  , головний ключ  , і повертає закритий ключ   для користувача  . Алгоритм виконується генератором закритих ключів на запит користувача  . Варто зауважити, що автентифікація користувача не входить до означення власне особистісного шифрування.
  • Шифрування. Отримує на вхід параметри системи  , ідентифікатор отримувача  , повідомлення  , і повертає шифротекст  . Виконується відправником повідомлення.
  • Розшифрування. Отримує на вхід параметри системи  , закритий ключ користувача  , шифротекст  , і повертає розшифроване повідомлення  , що відповідає шифротексту  . Виконується отримувачем  .

Схеми особистісного шифрування ред.

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

  • Схема Боне-Франкліна (Boneh-Franklin, BF-IBE).[2]
  • Схема Сакая-Касахари (Sakai-Kasahara, SK-IBE).[3]
  • Схема Боне-Боєна (Boneh–Boyen, BB-IBE).[4]

Застосування ред.

Спрощення допоміжної інфраструктури ред.

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

Анулювання ключів за терміном дії ред.

Сертифікати з відкритими ключами можуть мати термін дії. Якщо Аліса раніше надсилала повідомлення Бобу, але термін дії його старого ключа закінчився, Аліса повинна дізнатися оновлений ключ, щоб знову мати змогу надсилати Бобу повідомлення. В особистісному шифруванні, можливо уникнути цієї ситуації, якщо використовувати ідентифікатор із доданою інформацією про термін дії в певному форматі, наприклад, bob@example.com || <рік>. Таким чином, щороку Боб муситиме отримувати від генератора ключів новий закритий ключ, але Алісі не треба буде здійснювати жодних дій, окрім зміни року в ідентифікаторі, щоб продовжувати надсилати повідомлення Бобу.

Використовуючи такий підхід, можливо реалізувати анулювання ідентифікаторів у корпоративних системах, де генератор закритих ключів контролюється компанією. Щодня Боб може отримувати новий закритий ключ, що відповідає ідентифікатору виду bob@example.com || <DD-MM-YYYY>, де DD-MM-YYYY позначає поточну дату. Коли Боб закінчує співпрацю з компанією, генератор перестає видавати Бобу нові закриті ключі, і таким чином, Боб не зможе отримувати нові повідомлення.

Аналогічним чином, можна реалізувати відправлення повідомлень, які отримувач зможе прочитати тільки в майбутньому.

Авторизація на базі атрибутів ред.

Використовуючи методи з попереднього пункту, можливо також контролювати отримання Бобом повідомлення в залежності від наявності у нього певних атрибутів, які можуть надаватися генератором закритих ключів. Наприклад, Боб щодня може отримувати ключ, що відповідає ідентифікатору виду bob@example.com || <DD-MM-YYYY> || <рівень доступу>. Повідомлення, зашифроване для такого виду ідентифікатора, може бути прочитаним тільки якщо сервер надав у день DD-MM-YYYY Бобу відповідний рівень доступу.

Переваги ред.

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

Недоліки ред.

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

Посилання ред.

Джерела ред.

  1. Adi Shamir, Identity-Based Cryptosystems and Signature Schemes [Архівовано 2020-08-12 у Wayback Machine.]. Advances in Cryptology: Proceedings of CRYPTO 84, Lecture Notes in Computer Science, 7:47--53, 1984
  2. а б Boneh, Dan, and Matt Franklin, Identity-based encryption from the Weil pairing. Annual International Cryptology Conference. Springer Berlin Heidelberg, 2001.
  3. Sakai, Ryuichi; Kasahara, Masao (2003). ID Based cryptosystems with pairing on elliptic curve (PDF). Cryptography ePrint Archive. 2003/054.
  4. Boneh, Dan; Boyen, X (2004). Efficient selective-ID secure identity based encryption without random oracles. LNCS. Advances in Cryptography - EUROCRYPT 2004. Springer-Verlag. 3027: 223—238. doi:10.1007/978-3-540-24676-3_14.