Az Elgamal-séma egy nyilvános kulcsú kriptorendszer , amely a diszkrét logaritmusok véges mezőben történő kiszámításának nehézségén alapul . A kriptorendszer tartalmaz egy titkosítási algoritmust és egy digitális aláírási algoritmust. Az ElGamal-séma a korábbi digitális aláírási szabványok alapja az Egyesült Államokban ( DSA ) és Oroszországban ( GOST R 34.10-94 ).
A sémát Taher El-Gamal javasolta 1985 - ben . [1] ElGamal kifejlesztette a Diffie-Hellman algoritmus egy változatát . Javította a Diffie-Hellman rendszert, és kapott két algoritmust, amelyeket titkosításra és hitelesítésre használtak. Az RSA-val ellentétben az ElGamal algoritmust nem szabadalmazták, így olcsóbb alternatívává vált, mivel nem kellett licencdíjat fizetni. Úgy gondolják, hogy az algoritmus a Diffie-Hellman szabadalom hatálya alá tartozik.
Az ElGamal titkosítási rendszer valójában az egyik módja a Diffie-Hellman nyilvános kulcsok előállításának . Az ElGamal titkosítás nem tévesztendő össze az ElGamal digitális aláírási algoritmussal.
Az üzenetnek kisebbnek kell lennie, mint . Az üzenet a következőképpen van titkosítva:
Könnyen belátható, hogy az ElGamal sémában a rejtjelezett szöveg hossza kétszerese az eredeti üzenet hosszának .
A titkos kulcs ismeretében az eredeti üzenet a rejtjelezett szövegből a következő képlet segítségével számítható ki :
Ugyanakkor ez könnyen ellenőrizhető
és ezért
.A gyakorlati számításokhoz a következő képlet alkalmasabb:
Mivel az ElGamal-sémába egy valószínűségi változó kerül be , az ElGamal-rejtjel többértékű helyettesítési rejtjelnek nevezhető. A számválasztás véletlenszerűsége miatt az ilyen sémát valószínűségi titkosítási sémának is nevezik. A titkosítás valószínűségi jellege az ElGamal séma előnye, mivel a valószínűségi titkosítási sémák erősebbek, mint egy adott titkosítási eljárást alkalmazó sémák. Az ElGamal titkosítási séma hátránya, hogy a titkosított szöveg kétszerese a nyílt szövegnek. Valószínűségi titkosítási séma esetén maga az üzenet és a kulcs nem határozza meg egyértelműen a rejtjelezett szöveget. Az ElGamal sémában egy véletlen változó különböző értékeit kell használni a különböző üzenetek titkosításához és . Ha ugyanazt használod , akkor a megfelelő rejtjelezett szövegekre és a kapcsolat teljesül . Ebből a kifejezésből könnyen kiszámolható , ha tudja .
A digitális aláírás az adatváltozások azonosítását és az aláíró személyazonosságának megállapítását szolgálja. Az aláírt üzenet címzettje digitális aláírással bizonyíthatja harmadik félnek, hogy az aláírást valóban a feladó írta. Ha aláírási módban dolgozik, feltételezzük, hogy van egy rögzített hash függvény , amelynek értékei az intervallumban vannak .
Egy üzenet aláírásához a következő műveleteket kell végrehajtani:
A nyilvános kulcs ismeretében az üzenet aláírását a következőképpen ellenőrizzük:
A figyelembe vett algoritmus abban az értelemben helyes, hogy a fenti szabályok szerint számított aláírást az ellenőrzéskor elfogadjuk.
Átalakítva a definíciót , megvan
Továbbá Fermat kis tételéből az következik, hogy
A számnak véletlenszerűnek kell lennie, és nem szabad megkettőznie ugyanazzal a titkos kulcsértékkel kapott különböző aláírásokat.
könnyen ellenőrizhető, hogy a pár a megfelelő digitális aláírás az üzenethez .
Jelenleg a nyilvános kulcsú kriptorendszerek számítanak a legígéretesebbnek. Ezek közé tartozik az ElGamal-séma, amelynek kriptográfiai erőssége a diszkrét logaritmus - probléma számítási bonyolultságán alapul , ahol p , g és y mellett ki kell számítani x -et , amely kielégíti az összehasonlítást:
Az Orosz Föderációban 1994 -ben elfogadott GOST R34.10-1994 , amely szabályozta az elektronikus digitális aláírás generálására és ellenőrzésére vonatkozó eljárásokat, az ElGamal sémán alapult. 2001 óta használják az új GOST R 34.10-2001 szabványt , amely az egyszerű Galois-mezőkön meghatározott elliptikus görbék aritmetikáját használja . Az ElGamal sémára épülő algoritmusok nagy száma létezik: ezek a DSA , ECDSA , KCDSA algoritmusok, Schnorr séma .
Néhány algoritmus összehasonlítása:
Algoritmus | Kulcs | Célja | Kriptográfiai ellenállás, MIPS | Megjegyzések |
RSA | Akár 4096 bit | Titkosítás és aláírás | 2,7•10 28 1300 bites kulcshoz | A nagyszámú faktorizációs probléma nehézsége alapján ; az egyik első aszimmetrikus algoritmus. Számos szabványban szerepel |
ElGamal | Akár 4096 bit | Titkosítás és aláírás | Ugyanazon kulcshosszúság esetén a kriptográfiai erősség megegyezik az RSA-val, azaz. 2,7•10 28 1300 bites kulcshoz | A diszkrét logaritmusok véges mezőben történő kiszámításának nehéz feladatán alapul; lehetővé teszi a kulcsok gyors generálását a biztonság veszélyeztetése nélkül. A DSA szabványú DSS digitális aláírási algoritmusában használatos |
DSA | Akár 1024 bit | Csak aláírás | A diszkrét logaritmus -feladat nehézsége alapján véges mezőben ; államként fogadják el amerikai szabvány; titkos és nem minősített kommunikációra használják; A fejlesztő az NSA. | |
ECDSA | Akár 4096 bit | Titkosítás és aláírás | A kriptográfiai ellenállás és a működési sebesség magasabb, mint az RSA-é | Modern irány. Számos vezető matematikus fejlesztette ki |