Identity based encryption system
Схема Cocks IBE — это система шифрования на основе идентификации, предложенная Клиффордом Коксом в 2001 году. [1] Надежность схемы основана на сложности квадратичной проблемы невязкости .
ПКГ выбирает:
- общедоступный RSA-модуль , где являются главными и хранятся в секрете,
- сообщение и шифровальное пространство и
- безопасная общедоступная хэш-функция .
Когда пользователь хочет получить свой закрытый ключ, он связывается с PKG через защищенный канал. ПКГ
- выводит с детерминированным процессом из (например, многократное применение ),
- вычисляет (который выполняет либо или , см. ниже) и
- передает пользователю.
Чтобы немного зашифровать (закодировано как / ) для , пользователь
- выбирает случайный с ,
- выбирает случайный с , отличается от ,
- вычисляет и и
- отправляет пользователю.
Чтобы расшифровать зашифрованный текст для пользователя , он
- вычисляет если или в противном случае, и
- вычисляет .
Обратите внимание: здесь мы предполагаем, что шифрующий объект не знает, имеет квадратный корень из или . В этом случае нам нужно отправить зашифрованный текст для обоих случаев. Как только эта информация станет известна шифрующему объекту, необходимо отправить только один элемент.
Прежде всего отметим, что поскольку (т.е. ) и , или или является квадратичным вычетом по модулю .
Поэтому, является квадратным корнем из или :
Более того, (для случая, когда является квадратичным вычетом, та же идея справедлива и для ):
Можно показать, что нарушение схемы эквивалентно решению квадратичной проблемы невязкости , которая, как предполагается, является очень сложной. Общие правила выбора модуля RSA сохраняются: Используйте безопасный , сделать выбор единообразными и случайными и, кроме того, включают некоторые проверки подлинности для (в противном случае атака с адаптивным выбранным зашифрованным текстом может быть организована путем изменения пакетов, передающих один бит, и использования оракула для наблюдения за влиянием на расшифрованный бит).
Основным недостатком этой схемы является то, что она может шифровать сообщения только побитно, поэтому она подходит только для небольших пакетов данных, таких как сеансовый ключ. Для иллюстрации рассмотрим 128-битный ключ, который передается с использованием модуля 1024 бит. Тогда нужно отправить 2×128×1024 бит = 32 Кбайт (когда неизвестно, будет ли является квадратом a или −a ) , что приемлемо только для сред, в которых ключи сеанса изменяются нечасто.
Эта схема не сохраняет конфиденциальность ключа, т. е. пассивный злоумышленник может восстановить значимую информацию о личности получателя, наблюдая за зашифрованным текстом.