Optimal asymmetrisk kryptering med stoppning

OAEP ( engelska  Optimal A symmetric Encryption P adding , Optimal asymmetric encryption with addition) är ett tilläggsschema , vanligtvis använt i kombination med någon enkelriktad funktion med en hemlig ingång (till exempel RSA- eller Rabin-funktioner ) för att öka den kryptografiska styrkan av den senare. OAEP föreslogs av Mihir Bellare och Phillip Rogaway [1] , och dess tillämpning på RSA standardiserades därefter i PKCS#1 och RFC 2437 .

Historik

Den ursprungliga versionen av OAEP, som föreslagits av Bellare och Rogaway 1994, påstods vara resistent mot attacker baserade på vald chiffertext i kombination med valfri enkelriktad hemlig ingångsfunktion [1] . Ytterligare studier har visat att ett sådant schema endast är resistent mot attacker baserade på icke-adaptiv vald chiffertext [2] . Trots detta har det bevisats att i den slumpmässiga orakelmodellen , när man använder standard RSA med chifferexponent , är schemat också motståndskraftigt mot attacker baserade på adaptivt vald chiffertext [3] . Nyare arbete har visat att i standardmodellen (när hashfunktioner inte modelleras som slumpmässiga orakel) är det inte möjligt att bevisa motstånd mot adaptiva chiffertextattacker när man använder RSA [4] .

OAEP-algoritm

Det klassiska OAEP-schemat är ett Feistel-nätverk med två celler , där data i varje cell transformeras med hjälp av en kryptografisk hashfunktion . Som indata får nätverket ett meddelande med kontrollnollor som lagts till och en nyckel - en slumpmässig sträng [5] .

Diagrammet använder följande notation:

Kryptering

  1. Meddelandet läggs till med nollor, vilket gör att det når bitar i längd.
  2. En slumpmässig bitsträng genereras .
  3. expanderar lite av en sträng till bitar.
  4. .
  5. komprimerar bit för bit.
  6. .
  7. krypterad text .

Dekryptering

  1. Slumpmässig sträng återställs
  2. Det ursprungliga meddelandet återställs som
  3. De sista tecknen i det dekrypterade meddelandet kontrolleras för noll. Om det finns tecken som inte är noll, har meddelandet förfalskats av en angripare.

Applikation

OAEP-algoritmen används för att förbehandla meddelandet innan RSA används . Meddelandet utfylls först till en fast längd med OAEP och krypteras sedan med RSA. Tillsammans kallas detta krypteringsschema RSA-OAEP och är en del av den nuvarande krypteringsstandarden för publika nyckel ( RFC 3447 ). Det bevisades också av Viktor Boyko att synfunktionen i modellen av slumpmässiga orakel är en transformation av typ allt-eller-inget[4] .

Ändringar

På grund av sådana brister som omöjligheten att bevisa kryptografiskt motstånd mot attacker baserat på vald chiffertext , samt den låga hastigheten i schemat [6] , föreslogs därefter OAEP-baserade modifieringar som eliminerar dessa brister.

OAEP+ algoritm

Victor Shoup har som är resistent mot adaptiva chiffertextattacker när det kombineras med valfri envägsbakdörrsfunktion [2] .

Kryptering
  1. En slumpmässig bitsträng genereras .
  2. konverteras till en längdsträng .
  3. konverteras till en längdsträng .
  4. Den vänstra sidan av meddelandet är sammansatt .
  5. konverteras till en längdsträng .
  6. Den högra sidan av meddelandet komponeras .
  7. krypterad text .
Dekryptering
  1. Den slumpmässiga strängen återställs .
  2. är uppdelad i två delar och , med storlekar respektive bitar.
  3. Det ursprungliga meddelandet återställs som .
  4. Om inte uppfyllt är meddelandet förfalskat.

SAEP/SAEP+ algoritm

Dan Bonet har föreslagit två förenklade implementeringar av OAEP, namngivna SAEP respektive SAEP+. Huvudidén med att förenkla kryptering är frånvaron av det sista steget - meddelandet "limmades" med den ursprungligen genererade slumpmässiga strängen . Således består kretsarna av endast en Feistel-cell , på grund av vilken en ökning av drifthastigheten uppnås [7] . Skillnaden mellan algoritmerna från varandra uttrycks i registreringen av kontrollbitarna. När det gäller SAEP är dessa nollor, medan för SAEP+ är detta en hash från (respektive som i OAEP och OAEP+) [5] . Nackdelen med algoritmerna är en kraftig minskning av meddelandets längd. Tillförlitligheten hos scheman vid användning av Rabin-funktionen och RSA har endast bevisats med följande begränsning av längden på den överförda texten: för SAEP + och dessutom för SAEP [8] . Det är värt att notera att vid ungefär samma hastighet har SAEP+ färre begränsningar för meddelandelängden än SAEP [8] , på grund av vilket det anses vara mer föredraget [8] .

Diagrammet använder följande notation:

SAEP+-kryptering
  1. En slumpmässig bitsträng genereras .
  2. konverteras till en längdsträng .
  3. konverteras till en längdsträng .
  4. Beräknat .
  5. krypterad text .
SAEP+-dekryptering
  1. Beräknat , där och  är strängar av storlek respektive .
  2. Jämställdheten kontrolleras . Om jämlikhet är sant, då är det ursprungliga meddelandet , om inte, då är meddelandet förfalskat av en angripare.

Se även

Anteckningar

  1. 1 2 Optimal asymmetrisk kryptering Hur man krypterar med RSA, 1995 , sid. ett.
  2. 1 2 OAEP Reconsidered, 2001 , sid. ett.
  3. RSA–OAEP är säkert under RSA-antagandet, 2001 , sid. ett.
  4. 1 2 Trading One-Wayness against Chosen-Ciphertext Security in Factoring-Based Encryption, 2006 , sid. ett.
  5. 1 2 Förenklad OAEP för RSA- och Rabin-funktionerna, 2001 , sid. 277.
  6. Ett billigt alternativ för OAEP, 2001 , sid. ett.
  7. Förenklad OAEP för RSA- och Rabin-funktionerna, 2001 , sid. 275.
  8. 1 2 3 Förenklad OAEP för RSA- och Rabin-funktionerna, 2001 , sid. 290.

Litteratur