Криптосистема Дамгорда — Юрика

Материал из testwiki
Версия от 13:28, 18 апреля 2019; imported>Robiteria (Унификация написания по наименованию основной статьи; косметические изменения)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Криптосистема Дамгорда — Юрика — криптосистема с открытым ключом, предложенная Иваном Дамгордом и Мадсом Юриком в 2000 г. Является обобщением криптосистемы Пэйе для больших модулей с целью расширения области применения[1].

Предпосылки: Обобщение схемы Пэйе

Описываемая криптосистема использует расчётный модуль ns+1, где n — модуль RSA, а s — натуральное число. В случае, если s=1, представляет собой схему криптосистемe Пэйе.

Пусть n=pq, где p, q — нечётные простые числа. Заметим, что мультипликативная группа Zns+1* является декартовым произведением G×H, где G — циклическая группа порядка ns, а H — изоморфна группе Zn*. Таким образом, факторгруппа G=Zns+1*/ H тоже является циклической порядка ns. Каждому произвольному элементу aZns+1* мы ставим в соответствие элемент a=aH из факторгруппы G.

Для объяснения дальнейших рассуждений, сформулируем следующую лемму[2]

Лемма: Для любых s<p,q, элемент N+1 имеет порядок ns в мультипликативной группе Zns+1*.

Как только порядок H становится взаимно простым с ns, мы можем считать, что элемент 1+n:=(1+n)HG является генератором группы G, кроме, возможно, sp,q. Таким образом, смежными классами для H и Zns+1* являются:

H,(1+n)H,(1+n)2H,,(1+n)ns1,

что приводит к естественной нумерации этих смежных классов.

Ещё одним техническим приёмом, необходимым для обоснования дальнейших вычислений, является простой способ определения i по (1+n)imodns+1. Для его реализации, обозначим функцию L(b)=(b1)/n, тогда

L((1+n)imodns+1)=(i+(i2)n+...+(is)ns1)modns

Далее, последовательно вычисляем:

i1=imodn,i2=imodn2,

Достаточно просто вычислить i1:

i1=L((1+n)imodn2)=imodn

Дальнейшие вычисления проводим по индукции: на j-ом шаге мы знаем ij1. Тогда ij=ij1+knj1 для некоторого 0k<n. Используем это соотношение:

L((1+n)imodnj+1)=(ij+(ij2)n+...+(ijj)n(j1))modnj

Заметим, что каждый член (ijt+1)nt для j>t>0 удовлетворяет (ijt+1)nt=(ij1t+1)ntmodnj. Следовательно:

L((1+n)imodnj+1)=(ij1+knj1+(ij12)n+...+(ij1j)n(j1))modnj

Таким образом, получаем:

ij=ij1+knj1=ij1+L((1+n)imodnj+1)(ij1+(ij12)n++(ij1j)n(j1))modnj=

=L((1+n)imodnj+1)((ij12)n++(ij1j)n(j1))modnj

Описание схемы

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

  1. Случайно и независимо друг от друга выбирается два больших простых числа p и q;
  2. Вычисляется n=pq и λ как наименьшее общее кратное чисел p1 и q1;
  3. Выбирается элемент gns+1* такой, что g=(1+n)jxmodns+1 для заданного j является взаимно простым с n и xH.
    Замечание:это можно сделать проще, если сначала случайно выбрать j и x, а затем по ним вычислить g.
  4. Выбирается d такое, что dmodnn* и d=0modλ (с использованием Китайской теоремы об остатках). Например, за d можно взять λ как и в схеме Пэйе.

Таким образом, открытым ключом будет пара (n,g), а секретным — d.

Шифрование

  1. Пусть m — шифруемое сообщение, причем mns;
  2. Выбирается случайное r, такое, что rns+1*;
  3. Вычисляется шифртекст: c=gmrnsmodns+1.

Расшифровка

  1. Пусть c — шифртекст, причем cns+1*;
  2. Вычисляется cdbmodns+1. Если c -действующий шифртекст, то cd=(gmrns)d=((1+n)jmxmrns)d=(1+n)jmdmodns(xmrns)dmodλ=(1+n)jmdmodns
  3. По указанному выше алгоритму вычисляется jidmodns. Поскольку произведение jd уже известно, осталось вычислить m=(jmd)(jd)1modns.

Гомоморфизм

Система гомоморфна относительно сложения в Zns:

(x1)(x2)=(x1+x2modns).

Примечания

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

Литература

  1. Гомоморфное шифрование: безопасность облачных вычислений и другие приложения (обзор) (А.И.Трубей)
  2. A Generalisation, a Simplification and some Applications of Paillier’s Probabilistic Public-Key System (Ivan B. Damgard, Mads J. Jurik)

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

  1. Гомоморфное шифрование: безопасность облачных вычислений и другие приложения (обзор) А.И.Трубей
  2. A Generalisation, a Simplification and some Applications of Paillier’s Probabilistic Public-Key System (Ivan B. Damgard, Mads J. Jurik)