Optimal asymmetrisk kryptering med polstring

OAEP ( engelsk  Optimal A symmetric Encryption P adding , Optimal asymmetrisk encryption with addition) er et additionsskema , der normalt bruges sammen med en envejsfunktion med en hemmelig indgang (for eksempel RSA- eller Rabin-funktioner ) for at øge den kryptografiske styrke af sidstnævnte. OAEP blev foreslået af Mihir Bellare og Phillip Rogaway [1] , og dens anvendelse til RSA blev efterfølgende standardiseret i PKCS#1 og RFC 2437 .

Historie

Den originale version af OAEP, foreslået af Bellare og Rogaway i 1994, blev hævdet at være modstandsdygtig over for angreb baseret på valgt chiffertekst i kombination med enhver envejs hemmelig indtastningsfunktion [1] . Yderligere undersøgelser har vist, at en sådan ordning kun er modstandsdygtig over for angreb baseret på ikke-adaptiv valgt chiffertekst [2] . På trods af dette er det blevet bevist, at skemaet i den tilfældige orakelmodel , når man bruger standard RSA med chiffereksponent , også er modstandsdygtigt over for angreb baseret på adaptivt valgt chiffertekst [ 3] . Nyere arbejde har vist, at i standardmodellen (når hash-funktioner ikke er modelleret som tilfældige orakler) er det ikke muligt at bevise modstand mod adaptive chiffertekstangreb ved brug af RSA [4] .

OAEP-algoritme

Det klassiske OAEP-skema er et to -cellet Feistel -netværk , hvor data i hver celle transformeres ved hjælp af en kryptografisk hash-funktion . Som input modtager netværket en besked med kontrolnuller tilføjet og en nøgle - en tilfældig streng [5] .

Diagrammet bruger følgende notation:

Kryptering

  1. Meddelelsen er tilføjet nuller, på grund af hvilke den når bits i længden.
  2. En tilfældig -bit-streng genereres .
  3. udvider lidt af en streng til bits.
  4. .
  5. komprimerer lidt til lidt.
  6. .
  7. krypteret tekst .

Dekryptering

  1. Tilfældig streng gendannes
  2. Den oprindelige besked gendannes som
  3. De sidste tegn i den dekrypterede besked kontrolleres for nul. Hvis der er ikke-nul tegn, så er beskeden blevet forfalsket af en angriber.

Ansøgning

OAEP-algoritmen bruges til at forbehandle meddelelsen, før RSA bruges . Beskeden udfyldes først til en fast længde ved hjælp af OAEP og krypteres derefter med RSA. Samlet kaldes dette krypteringsskema RSA-OAEP og er en del af den nuværende offentlige nøglekrypteringsstandard ( RFC 3447 ). Det blev også bevist af Viktor Boyko, at visningsfunktionen i modellen af ​​tilfældige orakler er en alt-eller-intet-type transformation[4] .

Ændringer

På grund af sådanne mangler som umuligheden af ​​at bevise kryptografisk modstand mod angreb baseret på valgt chiffertekst , samt skemaets lave hastighed [6] , blev der efterfølgende foreslået OAEP-baserede modifikationer, der eliminerer disse mangler.

OAEP+ algoritme

Victor Shoup har , der er modstandsdygtigt over for adaptive chiffertekstangreb, når det kombineres med enhver envejs bagdørsfunktion [2] .

Kryptering
  1. En tilfældig -bit-streng genereres .
  2. konverteres til en længdestreng .
  3. konverteres til en længdestreng .
  4. Venstre side af beskeden er sammensat .
  5. konverteres til en længdestreng .
  6. Den højre side af beskeden er ved at blive skrevet .
  7. krypteret tekst .
Dekryptering
  1. Den tilfældige streng gendannes .
  2. er opdelt i to dele og , med henholdsvis størrelser og bits.
  3. Den oprindelige besked gendannes som .
  4. Hvis den ikke er opfyldt , er meddelelsen forfalsket.

SAEP/SAEP+ algoritme

Dan Bonet har foreslået to forenklede implementeringer af OAEP, navngivet henholdsvis SAEP og SAEP+. Hovedideen med at forenkle kryptering er fraværet af det sidste trin - beskeden blev "limet" med den oprindeligt genererede tilfældige streng . Kredsløbene består således kun af én Feistel-celle , på grund af hvilken en stigning i driftshastigheden opnås [7] . Forskellen mellem algoritmerne fra hinanden kommer til udtryk i registreringen af ​​kontrolbittene. I tilfælde af SAEP er disse nuller, mens dette for SAEP+ er en hash fra (henholdsvis som i OAEP og OAEP+) [5] . Ulempen ved algoritmerne er en kraftig reduktion af beskedens længde. Pålideligheden af ​​skemaer i tilfælde af brug af Rabin-funktionen og RSA er kun blevet bevist med følgende begrænsning på længden af ​​den transmitterede tekst: for SAEP + og desuden for SAEP [8] . Det er værd at bemærke, at ved omtrent samme hastighed har SAEP+ færre begrænsninger på meddelelseslængden end SAEP [8] , på grund af hvilket det er anerkendt som mere at foretrække [8] .

Diagrammet bruger følgende notation:

SAEP+ kryptering
  1. En tilfældig -bit-streng genereres .
  2. konverteres til en længdestreng .
  3. konverteres til en længdestreng .
  4. Beregnet .
  5. krypteret tekst .
SAEP+ dekryptering
  1. Beregnet , hvor og  er strenge af henholdsvis størrelse og .
  2. Ligestillingen kontrolleres . Hvis lighed er sand, så er den oprindelige besked , hvis ikke, så er beskeden forfalsket af en angriber.

Se også

Noter

  1. 1 2 Optimal asymmetrisk kryptering Sådan krypteres med RSA, 1995 , s. en.
  2. 1 2 OAEP Reconsidered, 2001 , s. en.
  3. RSA–OAEP er sikkert under RSA Assumption, 2001 , s. en.
  4. 1 2 Envejshandel mod udvalgt chiffertekstsikkerhed i faktorbaseret kryptering, 2006 , s. en.
  5. 1 2 Forenklet OAEP for RSA- og Rabin-funktionerne, 2001 , s. 277.
  6. Et billigt alternativ til OAEP, 2001 , s. en.
  7. Forenklet OAEP for RSA- og Rabin-funktionerne, 2001 , s. 275.
  8. 1 2 3 Forenklet OAEP for RSA- og Rabin-funktionerne, 2001 , s. 290.

Litteratur