Криптосистема Боне — Го — Ниссима

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

Криптосистема Боне — Го — Ниссима — частично гомоморфная криптосистема, являющаяся модификацией криптосистемы Пэйе[1] и криптосистемы Окамото — Утиямы[2]. Разработана Дэном Боне[3] совместно с Ю Чжин Го и Коби Ниссимом[4] в 2005 году[5]. Основывается на конечных группах составного порядка и билинейных спариваний на эллиптических кривых; система позволяет оценить многовариантные квадратичные полиномы на шифротекстах (например, дизъюнктивная нормальная форма второго порядка (2-ДНФ)).

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

Используемый в криптосистеме БГН алгоритм основан на задаче Бернсайда.[6].

Алгоритм работы

Как и все системы гомоморфного шифрования, КБГН включает следующие процессы: Генерация ключа, шифрование и расшифрование.

Конструкция использует некоторые конечные группы составного порядка, которые поддерживают билинейное отображение. Используются следующие обозначения:

  1. 𝔾 и 𝔾1- две циклические группы конечного порядка n.
  2. g — генератор 𝔾.
  3. f — билинейное отображение f:𝔾×𝔾𝔾1. Другими словами, для всех u,v𝔾 и a,b мы имеем f(ua,vb)=f(u,v)ab. Мы также требуем выполнение условия : f(g,g) является генератором 𝔾1

Мы говорим, что 𝔾 — билинейная группа, если существует группа 𝔾1 и билинейное отображение, определённое выше.[7]

Генерация ключа

Генерация_Ключа(τ):

  • Подавая на вход параметр безопасности τ+, вычисляем алгоритм X(τ), чтобы получить кортеж (q1,q2,𝔾,𝔾1,f). Алгоритм работает следующим образом:
    1. Сгенерируем два случайных τ — битовых числа q1 и q2 и положим n=q1q2.
    2. Создадим билинейную группу 𝔾 порядка n, где n > 3 — заданное число, которое не делится на 3:
      1. Найдём наименьшее натуральное число , такое что p=n1 — простое число и p=3mod4.
      2. Рассмотрим группу точек на эллиптической кривой y2=x3+x определённую над 𝔽p. Поскольку p=3mod4 кривая имеет p+1=n точек в 𝔽p. Поэтому группа точек на кривой имеет подгруппу порядка n, которую обозначим через 𝔾.
      3. Пусть 𝔾1 подгруппа в 𝔽p2*порядка n. Модифицированный алгоритм спаривания Вейля (Спаривание Вейля является билинейным, кососимметричным, невырожденным отображением[8][4][9][10]) на кривой выдаёт билинейное отображение f:𝔾×𝔾𝔾1, удовлетворяющее заданным условиям
    3. На выходе получим (q1,q2,𝔾,𝔾1,f).
  • Пусть n=q1×q2. Выберем два случайных генератора g,uR𝔾 и определим h, как h=uq2. Тогда h это случайный генератор подгруппы 𝔾 порядка q1. Открытый ключ : OK=(n,𝔾,𝔾𝟙,f,g,h). Закрытый ключ : SK=q1.[11][7]

Шифрование

Шифр(OK,M):

Мы предполагаем, что пространство сообщений состоит из целых чисел в наборе {0,T}. Чтобы зашифровать сообщение M с помощью открытого ключа OK выбираем случайный параметр rR{0,1,...,n1} и вычисляем

C=gMhr𝔾 .

Полученный результат и есть шифротекст.[11][7]

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

Расшифр(SK,C):

Чтобы расшифровать шифротекст используя закрытый ключ SK=q1, рассмотрим следующее выражение

Cq1=(gMhr)q1=(gq1)M .

Пусть g^=gq1 . Чтобы восстановить M достаточно вычислить дискретный логарифм Cq1 по основанию g^.

Следует отметить, что дешифрование в этой системе занимает полиномиальное время в размере пространства сообщений.[11][7]

Примеры

Пример работы алгоритма

Сначала мы выбираем два различных простых числа

q1=7 q2=11.

Вычислим произведение

n=q1q2=7×11=77.

Далее мы строим группу эллиптических кривых с порядком n, которая имеет билинейное отображение. Уравнение для эллиптической кривой

y2=x3+x

которое определяется над полем 𝔽p для некоторого простого числа p=3mod4. В этом примере мы устанавливаем

p=307.

Следовательно, кривая суперсингулярна с #(E(p))=p+1=308 рациональными точками, которая содержит подгруппу 𝔾 с порядком n=77(=308/4) . В группе 𝔾 мы выбираем два случайных генератора

g=[182,240], u=[28,262]

где эти два генератора имеют порядок n и вычислим

h=uq2=[28,262]11=[99,120]

где h порядка q1=7. Мы вычисляем зашифрованный текст сообщения

M=2 .

Возьмём r=5 и вычислим

C=gMhr=[182,240]2[99,120]5=[256,265].

Для расшифровки мы сначала вычислим

g^=gq1=[182,240]7=[146,60]

и

Cq1=(gMhr)q1=(gq1)M=[256,265]7=[299,44].

Теперь найдём дискретный логарифм, перебирая все степени g^=gq1 следующим образом

g^1=[146,60]

g^2=[299,44]

g^3=[272,206]

g^4=[191,151]

g^5=[79,171]

g^6=[79,136]

g^7=[191,156]

g^8=[272,101]

g^9=[299,263]

g^10=[146,247]

g^11=.

Обратите внимание, что g^2=Cq1. Следовательно, расшифровка зашифрованного текста равна 2, что соответствует исходному сообщению.[12]

Оценка 2-ДНФ

Частично гомоморфная система позволяет оценить 2-ДНФ.

На входе: У Алисы есть 2-ДНФ формула ϕ(x1,...,xn)=i=1k(li,1li,2), а у Боба есть набор переменных a=a1,...,an{0,1}n . Обе стороны на входе содержат параметр безопасности τ.

  1. Боб выполняет следующие действия:
    1. Он исполняет алгоритм Генерация_Ключа(τ), чтобы вычислить OK,SK и отправляет OK Алисе.
    2. Он вычисляет и отправляет Шифр(OK,aj) для j=1,...,n.
  2. Алиса выполняет следующие действия:
    1. Она выполняет арифметизацию Φ(ϕ) заменяя «» на «+», «» на «×» и «xj¯» на «(1xj)».Отметим, что Φ это полином степени 2.
    2. Алиса вычисляет шифрование r×Φ(a) для случайно выбранного r используя гомоморфные свойства системы шифрования. Результат отправляется Бобу.
  3. Если Боб получает шифрование «0», он выводит «0»; в противном случае, он выводит «1».[13]

Гомоморфные свойства

Система является аддитивно гомоморфной. Пусть (n,𝔾,𝔾𝟙,f,g,h) — открытый ключ. Пусть C1,C2𝔾1 — шифротексты сообщений m1,m2{0,1} соответственно. Любой может создать равномерно распределённое шифрование m1+m2modn вычисляя произведение C=C1C2hr для случайного чила r в диапазоне {0,1,...,n1}.

Более важно то, что любой может умножить два зашифрованных сообщения один раз, используя билинейное отображение. Определим g1=f(g,g) и h1=f(g,h) . Тогда g1 порядка n, а h1 порядка q1. Кроме того, для некоторого (неизвестного) параметра α, напишем h=gαq2 . Предположим, что нам известны два шифротекста C1=gm1hr1𝔾, C2=gm2hr2𝔾. Чтобы построить шифрование произведения m1×m2modn, выберем случайное число r𝕟 и положим C=f(C1,C2)h1r𝔾1. Получаем C=f(C1,C2)h1r=f(gm1hr1,gm2hr2)h1r=gm1m2hm1r2+r2m1+αq2r1r2+r=g1m1m2h1r~𝔾1, гдеr~=m1r2+r2m1+αq2r1r2+r — распределено равномерно в 𝕟, как и необходимо.

Таким образом, C является равномерно распределённым шифрованием m1×m2modn, но только в группе 𝔾1, а не в 𝔾 (поэтому допускается только одно умножение).[11]

Стойкость системы

Стойкость данной схемы основана на задаче Бернсайда: зная элемент группы составного порядка n=q1q2, невозможно определить его приналежность к подгруппе порядка q1.

Пусть τ+, а (q1,q2,𝔾,𝔾1,f) — кортеж, созданный X, где n=q1q2. Рассмотрим следующую задачу. Для заданного (n,𝔾,𝔾1,f) и элемента x𝔾, выведем «1», если порядок x равен q1, в противном случае, выведем «0». Другими словами, без знания факторизации группы порядка n, необходимо узнать, находится ли элемент x в подгруппе группы 𝔾. Данная задача называется задачей Бёрнсайда[7].

Понятно, что если мы можем учесть групповой порядок n в криптосистеме, то мы знаем закрытый ключ q1, и в результате система взломана. Кроме того, если мы можем вычислить дискретные логарифмы в группе 𝔾, то мы можем вычислить q2 и q1=n/q2. Таким образом, необходимые условия для безопасности: сложность факторинга n и сложность вычисления дискретных логарифмов в 𝔾.[14]

Примечания

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

Литература

Ссылки

Шаблон:Криптосистемы с открытым ключом