MulBasicIdent

Материал из testwiki
Перейти к навигации Перейти к поиску

MulBasicIdent — базовый мультилинейный алгоритм шифрования на основе идентификационных данных[1]. Данный алгоритм является обобщением метода выработки общего ключа с помощью билинейных спариваний (BasicIdent), предложенного Дэном Боне и Мэтью К. Франклином в 2001 году[2].

Параметры протокола

В протоколе используются следующие параметры и группы:

  • n — число участвующих в генерации общего ключа сторон;
  • IDi — уникальное двоичное число (идентификатор) пользователя с номером i;
  • G1 — аддитивная циклическая группа;
  • G2 — мультипликативная циклическая группа.

Группы G1 и G2 используются для дальнейшего построения мультилинейного отображения.

Описание алгоритма

Данный алгоритм решает задачу шифрования сообщения для n абонентов с идентификаторами ID1,…,IDn[1]. Протокол состоит из этапов инициализации, получения закрытого ключа, шифрования и расшифрования. Пусть k∈ℤ — принимаемый алгоритмом на этапе инициализации параметр стойкости.

Инициализация

  1. На основе k Центром генерации закрытых ключей (PKG) вырабатывается простой порядок q групп G1 и G2, 2n-мультилинейное отображение μ:G1×G1×…×G1⏟2n→G2 и произвольный образующий элемент группы P∈G1.
  2. Центром PKG случайным образом выбираются элементы s1,…,sn∈ℤq∗ и вычисляется набор открытых ключей Ppub1=s1P,…,Ppubn=snP.
  3. Центром PKG выбираются криптографические хеш-функции H1:{0,1}∗→G1∗ и H2:G2→{0,1}l для некоторого l∈ℤ, где {0,1}∗ — множество двоичных векторов произвольной длины, а {0,1}l — множество двоичных векторов длины l.

В данном алгоритме пространства сообщений и шифротекстов представляют собой множества ϑ={0,1}l и C=G1∗×{0,1}l соответственно, элементы s1,…,sn∈ℤq∗ являются мастер-ключами абонентов, а системными параметрами является набор ⟨G1,G2,μ,l,P,Ppub1,…,Ppubn,H1,H2⟩.

Получение закрытого ключа

Для идентификаторов абонентов ID1,…,IDn∈{0,1}∗:

  1. Центр вычисляет QID1=H1(ID1)∈G1∗,…,QIDn=H1(IDn)∈G1∗.
  2. Центр вычисляет закрытые ключи dID1=s1QID1,…,dIDn=snQIDn, где s1,…,sn — мастер-ключи.

Шифрование

Для шифрования сообщения M с помощью идентификаторов ID1,…,IDn∈{0,1}∗: абонент выполняет следующие операции:

  1. Вычисляет QID1=H1(ID1)∈G1∗,…,QIDn=H1(IDn)∈G1∗.
  2. Выбирает случайный элемент r∈ℤq∗.
  3. Вычисляет шифротекст C=⟨rP,M⊕H2(gr)⟩, где g=μ(QID1,…,QIDn,Ppub1,…,Ppubn)∈G2∗.

Расшифрование

Для расшифрования шифротекста C=⟨U,V⟩ абонентом с идентификатором IDi с помощью закрытого ключа dIDi∈G1∗ вычисляется открытый текст следующим образом:

V⊕H2(μ(QID1,…,QIDi−1,dIDi,QIDi+1,…,QIDn,Ppub1,…,Ppubi−1,U,Ppubi+1,…,Ppubn))=M

Корректность схемы

Корректность алгоритма подтверждается выполнением следующего равенства, смысл которого сводится к подстановке в аргумент функции H2 на этапе расшифрования выражений для закрытого ключа dIDi=siQIDi и элемента U=rP:

μ(QID1,…,QIDi−1,dIDi,QIDi+1,…,QIDn,Ppub1,…,Ppubi−1,U,Ppubi+1,…,Ppubn)=μ(QID1,…,QIDn,Ppub1,…,P,…,Ppubn)sir=μ(QID1,…,QIDn,Ppub1,…,Ppubn)r=gr

Так как V=M⊕H2(gr), то на этапе расшифрования получаем M⊕H2(gr)⊕H2(gr)=M.

Криптографическая стойкость

Протокол является стойким при адаптивной атаке с выбором открытого текста и в предположении сложности мультилинейной проблемы Диффи-Хеллмана (MDH)[1].

Описание атаки на протокол

Модели безопасности широковещательного шифрования основаны на играх, проводимых злоумышленником (атакующим алгоритмом) с запросчиком (challenger).

Игра злоумышленника, проводящего атаку на алгоритм широковещательного шифрования, состоит из процедуры инициализации, 2-х этапов проведения запросов, постановки задачи и вывода результата.

Инициализация

Запросчик принимает параметр стойкости k∈ℕ, запускает процедуру инициализации алгоритма, передает атакующему алгоритму параметры params и сохраняет мастер-ключи master−keys в секрете. Определены G1 — аддитивная циклическая группа простого порядка q с образующим элементом P, и G2 — мультипликативная циклическая группа простого порядка q.

Этап 1

Атакующий алгоритм генерирует запросы q1,…,qm и отправляет их запросчику, где qi является:

  1. Запросом закрытого ключа ⟨IDi′⟩. В данном случае запросчик запускает процедуру генерации закрытого ключа di′∈G1, соответствующего открытому ключу ⟨IDi′⟩, и передает di′∈G1 атакующему алгоритму.
  2. Запросом расшифрования ⟨IDi′,Ci′⟩. В данном случае запросчик запускает процедуру генерации закрытого ключа di′∈G1, соответствующего открытому ключу ⟨IDi′⟩. Далее запускает процедуру расшифрования шифротекста Ci′ с помощью di′ и передает полученный открытый текст атакующему алгоритму.

Данные запросы проводятся адаптивно, то есть каждый запрос qi может зависеть от ответов на запросы q1,…,qi−1.

После завершения этапа 1 атакующий алгоритм генерирует 2 открытых текста M0,M1∈ϑ равной длины и набор идентификаторов абонентов ID1,…,IDn, для которых он проводит атаку, где ϑ — множество открытых текстов произвольной длины. Единственным ограничением является тот факт, что IDi≠IDj′ при i=1,…,n,j=1,…,m во время этапа 1.

Постановка задачи

Запросчик случайно выбирает бит b∈{0,1} и отправляет Cb=Encrypt(params,ID1,…,IDn,Mb) алгоритму.

Этап 2

Атакующий алгоритм генерирует и отправляет запросчику дополнительные запросы qm+1,…,ql, где qi является:

  1. Запросом закрытого ключа ⟨IDj′⟩, где IDi≠IDj′ для i=1,…,n,j=m+1,…,l. Запросчик отвечает так же, как и во время этапа 1.
  2. Запросом расшифрования ⟨IDj′,Cj′⟩, где ⟨IDj′,Cj′⟩≠⟨IDi′,Ci′⟩ для i=1,…,n,j=m+1,…,l. Запросчик отвечает так же, как и во время этапа 1.

Данные запросы могут проводиться адаптивно, как и во время этапа 1.

Результат

Атакующий алгоритм возвращает бит b′∈{0,1} и выигрывает игру, если b=b′.

Выигрышем при проведении атаки злоумышленника A на алгоритм E называется следующая функция параметра стойкости k∈ℕ: AdvE,A(k)=|Pr[b=b′]−12|, где Pr[b=b′] — вероятность события, состоящего в совпадении значений битов b и b′.

Улучшение

На основе алгоритма MulBasicIdent с помощью метода Фуджисаки-Окамото построен полный алгоритм широковещательного шифрования на основе идентификационных данных MulFullIdent.

Примечания

Шаблон:Примечания

Литература