ElGamal

Z testwiki
Skočit na navigaci Skočit na vyhledávání

ElGamal je jeden z algoritmů asymetrické kryptografie, má ovšem nevýhodu, že šifrovaná data jsou dvakrát delší než data nešifrovaná. To je možná důvodem, proč není jeho nasazení tak masivníŠablona:Fakt/dne, jako nasazení algoritmu RSA, který tímto nedostatkem netrpí. Opírá se o problém výpočtu diskrétního logaritmu.

Konstrukce systému

Nechť je zvolena veřejně známá cyklická grupa q, tzn. celé číslo q, tzv. modul grupy, a celé číslo g, tzv. generátor dané grupy. Potom si i-tý účastník volí svůj tajný klíč ki, tak, že 0<ki<q a vypočte veřejný klíč kipub jako kipub=gkimodq, jenž zveřejní. Pokud potom chce poslat uživatel A zprávu P uživateli B (zpráva musí být menší než q), A musí znát veřejný klíč B, tzn. kBpub. Poté probíhá komunikace podle následujícího schématu.

  • A zvolí náhodné číslo kA takové, že 0<kA<q.
  • A spočte kApub=gkAmodq, K=(kBpub)kAmodq a Q=PKmodq a pošle pár Q,kApub uživateli B.
  • Uživatel B spočte K=(kApub)kBmodq a k tomuto číslu určí inverzní prvek K1 (vzhledem k operaci v grupě q).
  • Uživatel B spočte zprávu P jako P=QK1modq.

Korektnost algoritmu

S využitím vět algebry platí:

  • i,j,g- generátor, q - modul q, cyklická grupa v modulu q.
  • ki0<ki<q,kj0<kj<q
    • ki a kj jsou soukromé klíče i a j
  • kipub=gkimodqK=(kipub)kjmodq a ekvivalentně pro kjpub
    • kipub je veřejný klíč a K je soukromý sdílený klíč pro šifrování komunikace mezi i a j
  • K=(gki)kjmodq=(gkj)kimodq=gkikjmodq
  • QK1modq=PKK1modq=Pmodq

Analýza

Na prolomení toho systému by musel útočník vyřešit problém diskrétního logaritmu, což je považováno za nepolynomiální problém, protože v současnosti neexistuje algoritmus, který by zvládl vypočítat diskrétní logaritmus v cyklické grupě s polynomiální složitostí.

Šablona:Pahýl Šablona:Autoritní data