Криптография и криптология
Криптография > Открытый ключ > Шифр Эль Гамаля
 
 

Шифр Эль Гамаля

Шифровальщики регулярно производили поиски наиболее эффективных систем открытого кодирования, и в 1985 году Эль Гамаль изобрел такую схему на основе возведения в степень по модулю большого простого числа. Для этого берется большое простое число Р. Сообщения представляются в виде целых числами S из промежутка (1, Р). Оригинальный способ трансляции сообщения S выглядит в исполнении Шамира, одного из создателей RSA, таким образом:

  1. Адресант А и респондент b знают только Р. A берет случайное число Х из промежутка (1,Р) и B тоже берет случайное число Y из такого же промежутка.
  2. A кодирует сообщение S1=S**X MOD Р и высылает B.
  3. B кодирует его своим ключом S2=S1**Y MOD Р и пересылает S2 к A.
  4. A снимает свой шифр S3=S2**(-X) MOD Р и передает S3 к B.
  5. Респондент В дешифрует сообщение: S=S3**(-Y) MOD Р.

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

После, хотя колода и находится у крупье, он не в состоянии ее раскрыть, поскольку карты закодированы ключом игрока. Крупье берет свою карту точно так же как и игрок.