Cramer-Shoup kryptosystem

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.

Valgt chiffertekstangreb

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 .

Ikke-adaptivt angreb

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).

Adaptivt angreb

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:

Diffie-Hellman-diskriminationsproblemet

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.

Grundlæggende skema

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øglegenerering

Nøglegenereringsalgoritmen fungerer som følger:

Kryptering

Meddelelse givet . Krypteringsalgoritmen fungerer som følger

Dekryptering

Efter at have modtaget chifferteksten og brugt den private nøgle :

Protokol korrekthed

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 .

Forenklet diagram

Forskelle fra grundskemaet

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 .

Et eksempel på et forenklet kredsløb

Lad os sige, at vi har en rækkefølge . Følgelig  - .

Nøglegenerering

Nøglegenereringsalgoritmen fungerer som følger:

  • Alice genererer tilfældige og tilfældige elementer
  • Alice beregner .
  • Den offentlige nøgle er , den private nøgle er .
Kryptering

Meddelelse givet . Krypteringsalgoritmen fungerer som følger

  • Bob vælger tilfældigt .
  • Bob beregner følgende værdier:
    • ;
    • ;
    • ;
  • Bob sender chifferteksten til Alice.
Dekryptering

Efter at have modtaget chifferteksten og brugt den private nøgle :

  • Alice tjekker tilstanden .
  • Betingelsen er opfyldt, så meddelelsen krypteret af Bob vises .

Bevis for sikkerhed

Sætning

Cramer-Shope-kryptosystemet er modstandsdygtigt over for angreb baseret på adaptivt valgt chiffertekst under følgende forhold:

  • Hash-funktionen er valgt fra den universelle familie af envejs-hash-funktioner.
  • Diffie-Hellman-diskriminationsproblemet er svært for gruppen .

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.

Opbygning af en simulator

Nøglegenereringssimuleringsskemaet er som følger:

  • Indgangen til simulatoren er .
  • Simulatoren bruger den givne .
  • Simulatoren vælger tilfældige variabler .
  • Simulatoren beregner .
  • Simulatoren vælger en tilfældig hashfunktion og genererer en offentlig nøgle . Simulator skjult nøgle: .

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.

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.

Links