GMR je kryptografický algoritmus používaný k vytváření digitálního podpisu. Pojmenováno podle prvních písmen tvůrců - Ronalda Rivesta , Silvia Micaliho a Shafiho Goldwassera .
GMR je založeno na vysoké výpočetní složitosti faktorizace velkých celých čísel, jako je kryptosystém RSA . Na rozdíl od něj je však GMR odolný vůči útokům založeným na zvoleném otevřeném textu [1] .
Dá se říci, že kryptoanalytik „prolomil“ digitální podpis , pokud mu dokonalý útok umožňuje s nenulovou pravděpodobností provést následující [2] :
Předpokládejme, že Alice potřebuje poslat Bobovi sekvenci zpráv, které jsou digitálně podepsané . Nechte Alici, aby podepisovala zprávy, parametr náhodného šifrování je . Veřejný klíč se skládá z následujících komponent:
|
.
Soukromý klíč se skládá z prvočísel , která umožňují efektivní výpočet inverzních funkcí a .
Zvažte případ generování podpisu pro jednu zprávu , tedy a . Alice vybere náhodné číslo z rozsahu a vypočítá podpis zprávy :
a .Po obdržení podepsané zprávy to Bob postupně zkontroluje
K podepisování zpráv Alice sestaví hash tree s listy z kořenového prvku . Všechny vnitřní vrcholy stromu jsou vybírány náhodně a stejně pravděpodobně z množiny hodnot , podobně jako v případě jedné zprávy. Každý vnitřní uzel je bezpečně spojen s oběma svými podřízenými uzly výpočtem hodnoty , umístěné ve vrcholu, stejným způsobem, jak je vypočítáno výše . Nakonec je zpráva bezpečně spojena s i-tým listem autentizačního stromu vyhodnocením hodnoty stejným způsobem, jak je vypočítáno výše . Podpis zprávy se skládá z
Jako jednosměrné funkce lze použít pro a , kde funkce bere jako vstup bitový řetězec a vrací celé číslo reprezentované bity v obráceném pořadí [6] . Funkce také přijímá bitový řetězec a vrací jeho délku. Znaménko plus nebo mínus se volí tak, aby hodnota byla kladná a nepřesahovala . V tomto případě se výpočet inverzní funkce provádí v čase úměrném , kde je délka řetězce , za předpokladu, že podepsané zprávy mají stejnou délku. Signaturu -bitové zprávy lze tedy vypočítat v čase [6] .
Goldwasser, Micali a Rivest prokázali [3] , že algoritmus GMR neumožňuje kryptoanalytikovi úspěšně provést adaptivní útok na základě zvolené zprávy, konkrétně provést existenciální padělek podpisu generovaného schématem GMR. Kryptanalytik, který získal podpisy pro více zpráv, nemůže zfalšovat podpis pro žádnou další zprávu.
Zobecnění schématu GMR pro použití jako určené schéma potvrzovacího podpisu je možné [7] .