GMR er en kryptografisk algoritme , der bruges til at skabe en digital signatur. Opkaldt efter de første bogstaver fra skaberne - Ronald Rivest , Silvio Micali og Shafi Goldwasser .
GMR er baseret på den høje beregningsmæssige kompleksitet af faktorisering af store heltal, som RSA -kryptosystemet . Men i modsætning til det er GMR modstandsdygtig over for angreb baseret på valgt klartekst [1] .
Det kan siges, at en kryptoanalytiker har "knækket" en digital signatur , hvis det perfekte angreb tillader ham at gøre følgende med en sandsynlighed, der ikke er nul [2] :
Antag, at Alice skal sende en sekvens af beskeder til Bob, der er digitalt signeret . Lad Alice antage at signere beskeder, den tilfældige krypteringsparameter er . Den offentlige nøgle består af følgende komponenter:
|
.
Den private nøgle består af primtal, der muliggør effektiv beregning af de inverse funktioner og .
Overvej tilfældet med at generere en signatur for én besked , det vil sige og . Alice vælger et tilfældigt tal fra området og beregner beskedsignaturen :
og .Efter at have modtaget den underskrevne besked, tjekker Bob det sekventielt
For at signere beskeder bygger Alice et hash-træ med blade fra rodelementet . Alle interne træspidser vælges tilfældigt og lige sandsynligt fra værdisættet , på samme måde i tilfælde af en enkelt besked. Hver intern node er sikkert forbundet med begge dens underordnede noder ved at beregne værdien af , placeret i toppunktet, på samme måde som beregnet ovenfor . Endelig er meddelelsen sikkert forbundet med det i -te blad i godkendelsestræet ved at evaluere en værdi på samme måde som beregnet ovenfor . Meddelelsessignaturen består af
Som envejsfunktioner kan bruges til og , hvor funktionen tager en bitstreng som input og returnerer et heltal repræsenteret af bits i omvendt rækkefølge [6] . Funktionen accepterer også en bitstreng og returnerer dens længde. Plus- eller minustegnet vælges således, at værdien er positiv og ikke overstiger . I dette tilfælde udføres beregningen af den inverse funktion i en tid proportional med , hvor er længden af strengen , forudsat at de signerede meddelelser har samme længde. Således kan signaturen af en -bit-meddelelse beregnes i tid [6] .
Goldwasser, Micali og Rivest beviste [3] at GMR-algoritmen ikke tillader en kryptoanalytiker at udføre et adaptivt angreb baseret på en valgt besked, nemlig at udføre en eksistentiel forfalskning af en signatur genereret af GMR-skemaet. En kryptanalytiker, der har fået signaturer for et antal meddelelser, kan ikke forfalske en signatur for nogen yderligere meddelelse.
Generaliseringer af GMR-skemaet til brug som et udpeget bekræftersignaturskema er mulige [7] .