Криптосистема Окамото — Утиямы

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

Криптосистема Окамото — Утиямы — вероятностная криптосистема, предложенная в 1998 году Тацуаки Окамото и Сигэнори Утиямой, построена на основе логарифмической функции L, определённой над мультипликативной группой (Z/n)*, где n=p2q, а p и q являются большими простыми числами.

Например, если p — большое простое число и γpZ𝕡𝟚𝕟, такое, чтo γp=x<p2 для x=1modp, то γp имеет структуру группы по отношению к мультипликативному модулю p2. Функция log:γpZp, связывающая x1p с x, определена на n=p2q и обладает гомоморфными свойствами, а в частности:

(x,yγp)log(xymodp2)=log(x)+log(y)modp

,

или, более общо:

(gγp,mZp)log(gmmodp2)=mlog(g)modp

Алгоритмизация

Генерация ключа
  1. Выбираются два больших различных простых числа p и q и вычисляется n=p2q;
  2. Выбирается число g(/n)* такое, что gp11modp2;
  3. Вычисляется h=gnmodn

Таким образом, (n,g,h) — открытый ключ, (p,q) — секретный ключ.

Шифрование

Чтобы зашифровать k-битное сообщение m, где 0<m<2k1:

  1. Выбирается случайное r/n;
  2. Вычисляется шифртекст: C=gmhrmodn
Расшифровка

Для L(x)=x1p расшифровка сообщения C:

m=L(Cp1modp2)L(gp1modp2)modp.

Свойства

Криптосистема является аддитивно гомоморфной, так как при m1+m2<p выполняется:

(m1)(m2)=(gm1r1c)(gm2r2c)modn=gm1+m2(r1r2)cmod=(m1+m2),

где (m) является функцией шифрования от сообщения m.

Стойкость криптосистемы Окамото — Утиямы основана на сложности задачи факторизации числа n и требует O(log3n) битовых операций.

Снижение сложности расшифровки

Возможно понизить сложность схемы до O(log2n), для этого выбирается p через большой (160-битный) коэффициент t следующим образом[1]: p1=tu и модифицируется схему следующим образом:

  1. Выбрать произвольное число g<n такое, что gp=g(p1)modp2
  2. Вычислить G=gumodn
  3. Выбрать произвольное число g<n и вычислить H=gnumodn

Тогда тройка значений (n,G,H) образует открытый ключ, а (p,q) — секретный ключ.

Шифрование
  1. Выбрать случайным образом число r<n
  2. Расшифровать (k1)-битное сообщение m следующим образом: c=GmHrmodn .
Расшифровка
  1. c=ctmodp2=gm(p1)gnr(p1)=gpmmodp2;
  2. m=log(c)log(gp)1modp.

Примечания

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

Литература

  • Okamoto, Tatsuaki; Uchiyama, Shigenori (1998). «A new public-key cryptosystem as secure as factoring». Advances in Cryptology — EUROCRYPT’98.
  • Accelerating Okamoto-Uchiyama’s Public-Key Cryptosystem (Jean-S´ebastien Coron, David Naccache, Pascal Paillier)

Шаблон:Криптография

  1. Accelerating Okamoto-Uchiyama’s Public-Key Cryptosystem (Jean-S´ebastien Coron, David Naccache, Pascal Paillier)