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

Предпосылки Традиционная модель шифрования на открытом ключе недостаточно общая: отправитель шифрует сообщение на открытом ключе, и только владелец закрытого ключа, ассоциированного с открытым ключом, может расшифровать полученный текст и восстановить сообщение. Такой подход возможен только для связи вида точка — точка, когда зашифрованные данные предназначены для одного конкретного пользователя, который известен отправителю заранее. В других же задачах, в которых отправитель данных хочет установить некую политику, определяющую круг лиц, которым разрешён доступ к данным, данный подход не работает. На практике встречается достаточно много подобных задач, следовательно, требуется новый подход, который обеспечивает более универсальный контроль над зашифрованными данными. Предикативное шифрование является одним из таких подходов.

Определение Схема предикативного шифрования для класса предикатов над множеством атрибутов состоит из следующих 4-х алгоритмов: Создание открытого и «главного» закрытого ключей, и соответственно. Генерация закрытого ключа, связанного с конкретным предикатом . Шифрование сообщения производится при помощи открытого ключа и атрибута , описывающего сообщение . Функция расшифрования возвращает исходное сообщение только в том случае, когда предикат и атрибут связаны между собой, а именно если:

.''Jonathan Katz, Amit Sahai, Brent Waters Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products. — Journal of cryptology, 2013, pp 191—224.''Dan Boneh, Amit Sahai, Brent Waters Functional Encryption: Definitions and Challenges. -Theory of cryptography, 2011, pp 253—273

Predicate-only Scheme

Описание схемы В данной схеме шифротекст связан с некоторым вектором , а закрытый ключ — с вектором . В процессе расшифрования необходимо проверить, что скалярное произведение . В процессе проверки данного соотношения пользователь не должен получать никакой информации о векторе . Для этого используется билинейная группа порядка , где  — произведение трёх простых чисел. Более детально данная схема выглядит следующим образом:

Генерация открытого и закрытого ключей Выбираются простые числа , группа , такая что : Выбирается билинейное отображение : Выбираются случайные числа: Открытым ключом является набор данных : Закрытый ключ : Генерация связанного закрытого ключа Пусть предикат описывается n-мерным вектором Выбираются случайные числа : Связанным закрытым ключом является: Шифрование Пусть, Выбираются случайные числа Тогда шифротекст Расшифрование На выходе алгоритма расшифрования получится 1 только в том случае, если :

Проверка корректности схемы

Так как , то схема верна.

Примеры других схем ID-based encryption Схема, в которой открытым ключом пользователя может служить некоторая уникальная информация о пользователе, например его e-mail адрес. Hidden Vector Encryption Схема, в которой предикаты и сообщения определяются векторами. Корректное расшифрование происходит, если данные векторы совпадают покомпонентно. То есть:

Схема, основанная на скалярном произведении (Inner Product Encryption) Схема, в которой значение предиката определяется скалярным произведением атрибута и закрытого ключа, ассоциированного с этим предикатом.

См. также Attribute-based Encryption ID-based encryption

Примечания

Категория:Криптография