Предпосылки
Традиционная модель шифрования на открытом ключе недостаточно общая: отправитель шифрует сообщение на открытом ключе, и только владелец закрытого ключа, ассоциированного с открытым ключом, может расшифровать полученный текст и восстановить сообщение. Такой подход возможен только для связи вида точка — точка, когда зашифрованные данные предназначены для одного конкретного пользователя, который известен отправителю заранее. В других же задачах, в которых отправитель данных хочет установить некую политику, определяющую круг лиц, которым разрешён доступ к данным, данный подход не работает. На практике встречается достаточно много подобных задач, следовательно, требуется новый подход, который обеспечивает более универсальный контроль над зашифрованными данными. Предикативное шифрование является одним из таких подходов[1].
Определение
Схема предикативного шифрования для класса предикатов
над множеством атрибутов
состоит из следующих 4-х алгоритмов:
- Создание открытого и «главного» закрытого ключей,
и
соответственно.
- Генерация закрытого ключа, связанного с конкретным предикатом
.
- Шифрование сообщения
производится при помощи открытого ключа
и атрибута
, описывающего сообщение
.
- Функция расшифрования возвращает исходное сообщение
только в том случае, когда предикат
и атрибут
связаны между собой, а именно если:
.[1][2]
Predicate-only Scheme
Описание схемы
В данной схеме шифротекст связан с некоторым вектором
, а закрытый ключ — с вектором
. В процессе расшифрования необходимо проверить, что скалярное произведение
. В процессе проверки данного соотношения пользователь не должен получать никакой информации о векторе
. Для этого используется билинейная группа
порядка
, где
— произведение трёх простых чисел. Более детально данная схема выглядит следующим образом:
- Генерация открытого и закрытого ключей
- Выбираются простые числа
, группа
, такая что :
- Выбирается билинейное отображение :
- Выбираются случайные числа:
- Открытым ключом является набор данных :
- Закрытый ключ :
- Генерация связанного закрытого ключа
- Пусть предикат описывается n-мерным вектором
- Выбираются случайные числа :
- Связанным закрытым ключом является:
- Шифрование
- Пусть,
- Выбираются случайные числа
- Тогда шифротекст
- Расшифрование
- На выходе алгоритма расшифрования получится 1 только в том случае, если :
Проверка корректности схемы
Так как
, то схема верна.[1]
Примеры других схем
- Схема, в которой отрытым ключом пользователя может служить некоторая уникальная информация о пользователе, например его e-mail адрес.
- Схема, в которой предикаты и сообщения определяются векторами. Корректное расшифрование происходит, если данные векторы совпадают покомпонентно. То есть:
[1]
- Схема, основанная на скалярном произведении (Inner Product Encryption)
- Схема, в которой значение предиката определяется скалярным произведением атрибута и закрытого ключа, ассоциированного с этим предикатом.
[2]
Примечания
- 1 2 3 4 Jonathan Katz, Amit Sahai, Brent Waters Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products. — Journal of cryptology, 2013, pp 191—224.
- 1 2 Dan Boneh, Amit Sahai, Brent Waters Functional Encryption: Definitions and Challenges. -Theory of cryptography, 2011, pp 253—273
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .