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××G12nG2 и произвольный образующий элемент группы PG1.
  2. Центром PKG случайным образом выбираются элементы s1,,snq* и вычисляется набор открытых ключей 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,,snq* являются мастер-ключами абонентов, а системными параметрами является набор 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. Выбирает случайный элемент rq*.
  3. Вычисляет шифротекст C=rP,MH2(gr), где g=μ(QID1,,QIDn,Ppub1,,Ppubn)G2*.

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

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

VH2(μ(QID1,,QIDi1,dIDi,QIDi+1,,QIDn,Ppub1,,Ppubi1,U,Ppubi+1,,Ppubn))=M

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

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

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

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

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

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

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

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

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

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

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

Этап 1

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

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

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

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

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

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

Этап 2

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

  1. Запросом закрытого ключа IDj, где IDiIDj для i=1,,n,j=m+1,,l. Запросчик отвечает так же, как и во время этапа 1.
  2. Запросом расшифрования IDj,Cj, где IDj,CjIDi,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.

Примечания

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

Литература