Cramer – Shoup-systemet er en offentlig nøglekrypteringsalgoritme . Den første algoritme, der viste sig modstandsdygtig over for angreb baseret på adaptivt valgt chiffertekst . Designet af Ronald Kramer og Victor Shoup i 1998. Algoritmens sikkerhed er baseret på Diffie-Hellman-diskriminationsantagelsen . Det er en udvidelse af ElGamal-ordningen , men i modsætning til ElGamal-ordningen er denne algoritme uoverskuelig(En hacker kan ikke erstatte chifferteksten med en anden chiffertekst, der ville blive dekrypteret til en tekst relateret til originalen, dvs. være en funktion af den). Denne robusthed opnås ved brug af en universel envejs-hash-funktion og yderligere beregninger, hvilket resulterer i en chiffertekst, der er dobbelt så stor som ElGamal-ordningen.
Et kryptografisk angreb, hvor en kryptoanalytiker indsamler information om en chiffer ved at gætte chifferteksten og dekryptere den med en ukendt nøgle. Kryptanalytikeren kan bruge dekryptering flere gange for at få den dekrypterede chiffertekst. Ved hjælp af de modtagne data kan han forsøge at gendanne den hemmelige nøgle til dekryptering. Et chiffertekstangreb kan være adaptivt eller ikke-adaptivt.
Det var velkendt, at mange udbredte kryptosystemer var sårbare over for et sådant angreb, og i mange år mente man, at angrebet var upraktisk og kun af teoretisk interesse. Tingene begyndte at ændre sig i slutningen af 1990'erne, især da Daniel Bleichenbacher demonstrerede et praktisk chiffertekstbaseret angreb på SSL -servere ved hjælp af en form for RSA -kryptering .
I et ikke-adaptivt angreb bruger kryptanalytikeren ikke resultaterne af tidligere dekrypteringer, det vil sige, at chiffertekster er valgt på forhånd. Sådanne angreb kaldes frokostangreb (frokosttid eller CCA1).
I tilfælde af et adaptivt angreb vælger kryptoanalytikeren adaptivt en chiffertekst, der afhænger af resultaterne af tidligere dekrypteringer (CCA2).
Modstandsdygtighed over for adaptive angreb kan ses på eksemplet med spillet:
Der er flere tilsvarende formuleringer af Diffie-Hellman-diskriminationsproblemet. Den, vi skal bruge, ser sådan ud.
Lade være en gruppe af orden , hvor er et stort primtal. Også - . Og der er to fordelinger:
En algoritme, der løser Diffie-Hellman-problemet, er en probabilistisk algoritme , der effektivt kan skelne mellem de anførte to distributioner. Det vil sige, at en algoritme, der tager en af de to fordelinger som input, skal returnere 0 eller 1, og har også en tendens til 0.
Diffie-Hellman-diskriminationsproblemet er svært, hvis der ikke eksisterer en sådan polynomiel probabilistisk algoritme.
Lad os have en rækkefølge , hvor er et stort primtal. Beskeder er elementer . Vi bruger også en generisk familie af envejs-hash-funktioner, der kortlægger lange bitstrenge til elementer , hvor — .
Nøglegenereringsalgoritmen fungerer som følger:
Meddelelse givet . Krypteringsalgoritmen fungerer som følger
Efter at have modtaget chifferteksten og brugt den private nøgle :
Lad os tjekke rigtigheden af krypteringsskemaet (dekryptering af den krypterede besked giver den samme besked). I betragtning af det og , har vi . Også og . Derfor lykkes dekrypteringskontrollen, og den oprindelige meddelelse vises .
For at opnå sikkerhed mod ikke-adaptive angreb (og kun dem), kan du forenkle protokollen betydeligt uden at bruge . Ved kryptering bruger vi , og ved dekryptering tjekker vi at .
Lad os sige, at vi har en rækkefølge . Følgelig - .
NøglegenereringNøglegenereringsalgoritmen fungerer som følger:
Meddelelse givet . Krypteringsalgoritmen fungerer som følger
Efter at have modtaget chifferteksten og brugt den private nøgle :
Cramer-Shope-kryptosystemet er modstandsdygtigt over for angreb baseret på adaptivt valgt chiffertekst under følgende forhold:
Bevis : For at bevise sætningen vil vi antage, at der er en modstander, der kan bryde protokollen, og vi vil vise, at hvis betingelsen om hashfunktionen er opfyldt, får vi en modsigelse med betingelsen om Diffie-Hellman-problemet. Input til vores probabilistiske algoritme er givet fra fordelingen eller . På et overfladisk niveau vil konstruktionen se sådan ud: vi vil bygge en simulator, der vil producere en fælles distribution bestående af crackerens vision af kryptosystemet efter en række angreb og den skjulte bit b genereret af generationsoraklet (ikke inkluderet i kikserens syn, skjult for ham). Idé med beviset: vi vil vise, at hvis inputtet er en fordeling af , så vil simuleringen lykkes, og modstanderen vil have en ikke-triviel fordel ved at gætte den tilfældige bit b. Vi vil også vise, at hvis inputtet er en fordeling fra , så afhænger fjendens vision ikke af og , og derfor vil fjendens overlegenhed være ubetydelig (mindre end det omvendte polynomium). Herfra kan vi konstruere distributionsforskellen og : vi kører kryptosystemsimulatoren (prints ) og crackeren (prints ) på samme tid og udskriver hvis og andet.
Nøglegenereringssimuleringsskemaet er som følger:
Det kan ses, at genereringen af simulatornøglen er forskellig fra genereringen af nøglen i protokollen (der ).
Dekrypteringssimulering . Fortsætter på samme måde som i protokollen, med den forskel at
Krypteringssimulering . Givet et input , vælger simulatoren en tilfældig værdi , beregner og udlæser . Nu vil beviset for sætningen følge af de følgende to lemmaer.
Lemma 1. Hvis simulatoren får en fordeling fra , så er den fælles fordeling af angriberens vision af kryptosystemet og den skjulte bit statistisk set ikke til at skelne fra et rigtigt angreb på kryptosystemet.
Lemma 2. Hvis simulatoren gives en fordeling fra , så afhænger fordelingen af den skjulte bit ikke af fordelingen af kikserens syn.