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

Криптосистема Окамото–Утиямы — это криптосистема с открытым ключом, предложенная в 1998 году Тацуаки Окамото и Сигенори Утиямой. Система работает в мультипликативной группе целых чисел по модулю n , где n имеет вид p 2 q , а p и q — большие простые числа . ( З / н З ) {\displaystyle (\mathbb {Z} /n\mathbb {Z})^{*}}

Фон

Пусть — нечетное простое число. Определим . — подгруппа группы с (элементами являются ). п {\displaystyle p} Г = { х ( З / п 2 З ) | х 1 мод п } {\displaystyle \Gamma =\{x\in (\mathbb {Z} /p^{2} \mathbb {Z})^{*}|x\equiv 1 {\bmod {p}}\}} Г {\displaystyle \Гамма} ( З / п 2 З ) {\displaystyle (\mathbb {Z} /p^{2}\mathbb {Z})^{*}} | Г | = п {\displaystyle |\Гамма |=p} Г {\displaystyle \Гамма} 1 , 1 + п , 1 + 2 п 1 + ( п 1 ) п {\displaystyle 1,1+p,1+2p\точки 1+(p-1)p}

Определить по Л : Г З / п З {\displaystyle L:\Gamma \to \mathbb {Z} /p\mathbb {Z} } Л ( х ) = х 1 п {\displaystyle L(x)={\frac {x-1}{p}}}

Л {\displaystyle L} является гомоморфизмом между и аддитивной группой : то есть, . Поскольку является биективным, то это изоморфизм. Г {\displaystyle \Гамма} З / п З {\displaystyle \mathbb {Z} /p\mathbb {Z} } Л ( а б ) = Л ( а ) + Л ( б ) мод п {\displaystyle L(ab)=L(a)+L(b){\bmod {p}}} Л {\displaystyle L}

Теперь можно показать следующее как следствие:

Пусть такое, что и для . Тогда х Г {\displaystyle x\in \Гамма} Л ( х ) 0 мод п {\displaystyle L(x)\neq 0{\bmod {p}}} у = х м мод п 2 {\displaystyle y=x^{m}{\bmod {p}}^{2}} 0 м < п {\displaystyle 0\leq m<p}

м = Л ( у ) Л ( х ) = у 1 х 1 мод п {\displaystyle m={\frac {L(y)}{L(x)}}={\frac {y-1}{x-1}}{\bmod {p}}}

Следствие является прямым следствием . Л ( х м ) = м Л ( х ) {\displaystyle L(x^{m})=m\cdot L(x)}

Операция

Как и многие криптосистемы с открытым ключом , эта схема работает в группе . Эта схема гомоморфна и, следовательно, пластична . ( З / н З ) {\displaystyle (\mathbb {Z} /n\mathbb {Z})^{*}}

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

Пара открытого и закрытого ключей генерируется следующим образом:

  1. Сгенерируйте два больших простых числа и . п {\displaystyle p} д {\displaystyle д}
  2. Вычислить . н = п 2 д {\displaystyle n=p^{2}q}
  3. Выберите случайное целое число, такое что . г { 2 н 1 } {\displaystyle g\in \{2\точки n-1\}} г п 1 1 мод п 2 {\displaystyle g^{p-1}\not \equiv 1\mod p^{2}}
  4. Вычислить . час = г н мод н {\displaystyle h=g^{n}{\bmod {n}}}

Тогда открытый ключ — это , а закрытый ключ — это . ( н , г , час ) {\displaystyle (н,г,ч)} ( п , д ) {\displaystyle (п,д)}

Шифрование

Сообщение можно зашифровать с помощью открытого ключа следующим образом. м < п {\displaystyle м<р} ( н , г , час ) {\displaystyle (н,г,ч)}

  1. Выберите случайное целое число . г { 1 н 1 } {\displaystyle r\in \{1\точки n-1\}}
  2. Вычислить . с = г м час г мод н {\displaystyle c=g^{m}h^{r}{\bmod {n}}}

Значение представляет собой шифрование . с {\displaystyle с} м {\displaystyle м}

Расшифровка

Зашифрованное сообщение можно расшифровать с помощью закрытого ключа следующим образом. с {\displaystyle с} ( п , д ) {\displaystyle (п,д)}

  1. Вычислить . а = Л ( с п 1 мод п 2 ) {\displaystyle a=L(c^{p-1}{\bmod {p^{2}}})}
  2. Вычислите . и будут целыми числами. б = Л ( г п 1 мод п 2 ) {\displaystyle b=L(g^{p-1}{\bmod {p^{2}}})} а {\displaystyle а} б {\displaystyle б}
  3. Используя расширенный алгоритм Евклида , вычислите обратное значение по модулю : б {\displaystyle б} п {\displaystyle p}
    б = б 1 мод п {\displaystyle b'=b^{-1}{\bmod {p}}} .
  4. Вычислить . м = а б мод п {\displaystyle m=ab'{\bmod {p}}}

Значение представляет собой расшифровку . м {\displaystyle м} с {\displaystyle с}

Пример

Пусть и . Тогда . Выберите . Тогда . п = 3 {\displaystyle p=3} д = 5 {\displaystyle q=5} н = 3 2 5 = 45 {\displaystyle n=3^{2}\cdot 5=45} г = 22 {\displaystyle г=22} час = 22 45 мод 4 5 = 37 {\displaystyle h=22^{45}{\bmod {4}}5=37}

Теперь, чтобы зашифровать сообщение , мы выбираем случайное число и вычисляем . м = 2 {\displaystyle м=2} г = 13 {\displaystyle r=13} с = г м час г мод н = 22 2 37 13 мод 4 5 = 43 {\displaystyle c=g^{m}h^{r}{\bmod {n}}=22^{2}37^{13}{\bmod {4}}5=43}

Чтобы расшифровать сообщение 43, мы вычисляем

а = ( 43 2 мод 3 2 ) 1 3 = 1 {\displaystyle a={\frac {(43^{2}{\bmod {3}}^{2})-1}{3}}=1} .
б = ( 22 2 мод 3 2 ) 1 3 = 2 {\displaystyle b={\frac {(22^{2}{\bmod {3}}^{2})-1}{3}}=2} .
б = 2 1 мод 3 = 2 {\displaystyle b'=2^{-1}{\bmod {3}}=2} .

И наконец . м = а б = 2 {\displaystyle m=ab'=2}

Доказательство правильности

Мы хотим доказать, что значение, вычисленное на последнем шаге расшифровки, равно исходному сообщению . Мы имеем а б мод п {\displaystyle ab'{\bmod {p}}} м {\displaystyle м}

( г м час г ) п 1 ( г м г н г ) п 1 ( г п 1 ) м г п ( п 1 ) г п д ( г п 1 ) м мод п 2 {\displaystyle (g^{m}h^{r})^{p-1}\equiv (g^{m}g^{nr})^{p-1}\equiv (g^{p-1})^{m}g^{p(p-1)rpq}\equiv (g^{p-1})^{m}\mod p^{2}}

Итак, для восстановления нам нужно взять дискретный логарифм с основанием . Это можно сделать, применив , следующим образом. м {\displaystyle м} г п 1 {\displaystyle g^{p-1}} Л {\displaystyle L}

По малой теореме Ферма , . Так как можно записать с . Тогда и справедливо следствие из предыдущего: . г п 1 1 мод п {\displaystyle g^{p-1}\equiv 1{\bmod {p}}} г п 1 1 мод п 2 {\displaystyle g^{p-1}\not \equiv 1{\bmod {p}}^{2}} г п 1 = 1 + п г {\displaystyle g^{p-1}=1+pr} 0 < г < п {\displaystyle 0<r<p} Л ( г п 1 ) 0 мод п {\displaystyle L(g^{p-1})\not \equiv 0 {\bmod {p}}} м = Л ( ( г п 1 ) м ) Л ( г п 1 ) мод п {\displaystyle m={\frac {L((g^{p-1})^{m})}{L(g^{p-1})}}{\bmod {p}}}

Безопасность

Можно показать, что обращение функции шифрования так же сложно, как факторизация n , что означает, что если бы злоумышленник мог восстановить все сообщение из шифрования сообщения, он бы смог факторизовать n . Семантическая безопасность (то есть злоумышленники не могут восстановить какую-либо информацию о сообщении из шифрования) основывается на предположении о p -подгруппе, которое предполагает, что трудно определить, находится ли элемент x в подгруппе порядка p . Это очень похоже на проблему квадратичной остаточности и проблему более высокой остаточности . ( З / н З ) {\displaystyle (\mathbb {Z} /n\mathbb {Z})^{*}}

Ссылки

  • Окамото, Тацуаки; Учияма, Сигенори (1998). «Новая криптосистема с открытым ключом, такая же безопасная, как факторизация». Достижения в криптологии – EUROCRYPT'98 . Конспект лекций по информатике . Том 1403. Springer. С. 308–318. doi :10.1007/BFb0054135. ISBN 978-3-540-64518-4.
Взято с "https://en.wikipedia.org/w/index.php?title=Okamoto–Uchiyama_cryptosystem&oldid=1182469695"