Schéma Elgamal je kryptosystém s veřejným klíčem založený na obtížnosti výpočtu diskrétních logaritmů v konečném poli . Šifrovací systém zahrnuje šifrovací algoritmus a algoritmus digitálního podpisu. Schéma ElGamal je základem dřívějších standardů digitálního podpisu ve Spojených státech ( DSA ) a Rusku ( GOST R 34.10-94 ).
Schéma navrhl Taher El-Gamal v roce 1985 . [1] ElGamal vyvinul variantu Diffie-Hellmanova algoritmu . Vylepšil systém Diffie-Hellman a získal dva algoritmy, které byly použity pro šifrování a pro autentizaci. Algoritmus ElGamal nebyl na rozdíl od RSA patentován, a proto se stal levnější alternativou, protože nebyly vyžadovány žádné licenční poplatky. Předpokládá se, že algoritmus je pokryt patentem Diffie-Hellman.
Šifrovací systém ElGamal je ve skutečnosti jedním ze způsobů, jak generovat veřejné klíče Diffie-Hellman . Šifrování ElGamal by se nemělo zaměňovat s algoritmem digitálního podpisu ElGamal.
Zpráva musí být menší než . Zpráva je zašifrována následovně:
Je snadné vidět, že délka šifrovaného textu ve schématu ElGamal je dvojnásobkem délky původní zprávy .
Při znalosti soukromého klíče lze původní zprávu vypočítat ze šifrovaného textu pomocí vzorce:
Zároveň je snadné to zkontrolovat
a proto
.Pro praktické výpočty je vhodnější následující vzorec:
Protože je do schématu ElGamal zavedena náhodná proměnná , lze ElGamalovu šifru nazvat vícehodnotovou substituční šifrou. Kvůli náhodnosti výběru čísla se takové schéma také nazývá pravděpodobnostní šifrovací schéma. Pravděpodobnostní povaha šifrování je výhodou schématu ElGamal, protože pravděpodobnostní schémata šifrování vykazují větší sílu ve srovnání se schématy se specifickým šifrovacím procesem. Nevýhodou šifrovacího schématu ElGamal je, že šifrovaný text je dvakrát delší než prostý text. U pravděpodobnostního šifrovacího schématu samotná zpráva a klíč nedefinují šifrový text jednoznačně. Ve schématu ElGamal je nutné použít různé hodnoty náhodné proměnné pro šifrování různých zpráv a . Pokud použijete totéž , pak pro odpovídající šifrové texty a vztah je splněn . Z tohoto výrazu se dá snadno vypočítat , pokud někdo ví .
Digitální podpis slouží k tomu, aby bylo možné identifikovat změny dat a určit identitu podepisující osoby. Příjemce podepsané zprávy může pomocí digitálního podpisu prokázat třetí straně, že podpis skutečně provedl odesílatel. Při práci v režimu podpisu se předpokládá, že existuje pevná hashovací funkce , jejíž hodnoty leží v intervalu .
Chcete-li podepsat zprávu , provedou se následující operace:
Při znalosti veřejného klíče je podpis zprávy ověřen následovně:
Uvažovaný algoritmus je správný v tom smyslu, že podpis vypočítaný podle výše uvedených pravidel bude přijat při jeho ověření.
Transformace definice , máme
Dále z Fermatovy Malé věty vyplývá, že
Číslo musí být náhodné a nesmí být duplikováno pro různé podpisy získané se stejnou hodnotou tajného klíče.
je snadné ověřit, že se jedná o správný digitální podpis zprávy .
V současné době jsou kryptosystémy s veřejným klíčem považovány za nejslibnější. Patří mezi ně schéma ElGamal, jehož kryptografická síla je založena na výpočetní složitosti problému diskrétního logaritmu , kde při daném p , g a y je nutné vypočítat x , které vyhovuje srovnání:
GOST R34.10-1994 , přijatý v roce 1994 v Ruské federaci, který upravoval postupy pro generování a ověřování elektronického digitálního podpisu, byl založen na schématu ElGamal. Od roku 2001 se používá nový GOST R 34.10-2001 využívající aritmetiku eliptických křivek definovaných nad jednoduchými Galoisovými poli . Existuje velké množství algoritmů založených na schématu ElGamal: jsou to algoritmy DSA , ECDSA , KCDSA , Schnorr schéma .
Porovnání některých algoritmů:
Algoritmus | Klíč | Účel | Kryptografická odolnost, MIPS | Poznámky |
RSA | Až 4096 bitů | Šifrování a podepisování | 2.7•10 28 pro 1300bitový klíč | Na základě obtížnosti problému faktorizace velkého počtu ; jeden z prvních asymetrických algoritmů. Zahrnuto v mnoha normách |
ElGamal | Až 4096 bitů | Šifrování a podepisování | Při stejné délce klíče je kryptografická síla rovna RSA, tzn. 2.7•10 28 pro 1300bitový klíč | Na základě obtížného problému výpočtu diskrétních logaritmů v konečném poli; umožňuje rychle generovat klíče bez ohrožení bezpečnosti. Používá se v algoritmu digitálního podpisu DSS standardu DSA |
DSA | Až 1024 bitů | Pouze podpis | Na základě obtížnosti problému diskrétního logaritmu v konečném poli ; přijat jako stát americký standard; používá se pro tajnou a neutajovanou komunikaci; Developerem je NSA. | |
ECDSA | Až 4096 bitů | Šifrování a podepisování | Kryptoodolnost a rychlost provozu jsou vyšší než u RSA | Moderní směr. Vyvinutý mnoha předními matematiky |