Optimale asymmetrische encryptie-padding - Optimal asymmetric encryption padding

In cryptografie is Optimal Asymmetric Encryption Padding ( OAEP ) een opvulschema dat vaak samen met RSA-codering wordt gebruikt . OAEP is geïntroduceerd door Bellare en Rogaway en vervolgens gestandaardiseerd in PKCS#1 v2 en RFC 2437.

Het OAEP-algoritme is een vorm van Feistel-netwerk dat een paar willekeurige orakels G en H gebruikt om de leesbare tekst te verwerken voorafgaand aan asymmetrische codering . In combinatie met een veilige eenrichtingspermutatie van het valluik , is bewezen dat deze verwerking in het willekeurige orakelmodel resulteert in een gecombineerd schema dat semantisch veilig is onder gekozen platte tekstaanval (IND-CPA) . Wanneer geïmplementeerd met bepaalde valdeurpermutaties (bijv. RSA), is OAEP ook bewezen veilig tegen gekozen cijfertekstaanvallen . OAEP kan worden gebruikt om een alles-of-niets-transformatie te bouwen .

OAEP voldoet aan de volgende twee doelen:

  1. Voeg een willekeurig element toe dat kan worden gebruikt om een deterministisch encryptieschema (bijv. traditionele RSA ) om te zetten in een probabilistisch schema.
  2. Voorkom gedeeltelijke decodering van cijferteksten (of andere informatielekkage) door ervoor te zorgen dat een tegenstander geen enkel deel van de leesbare tekst kan herstellen zonder in staat te zijn de eenrichtingspermutatie van het valluik om te keren .

De originele versie van OAEP (Bellare/Rogaway, 1994) toonde een vorm van " plaintext awareness " (waarvan ze beweerden dat het beveiliging tegen een gekozen cijfertekstaanval inhield) in het willekeurige orakelmodel wanneer OAEP wordt gebruikt met een valdeurpermutatie. Daaropvolgende resultaten spraken deze bewering tegen, wat aantoont dat OAEP alleen IND-CCA1 veilig was. Echter, de oorspronkelijke regeling bleek in de willekeurige orakel model te zijn IND-CCA2 veilig bij OAEP wordt gebruikt met de RSA permutatie met behulp van standaard encryptie exponenten, zoals in het geval van RSA-OAEP. Om dit probleem op te lossen, bood Victor Shoup een verbeterd schema aan (OAEP+ genaamd) dat werkt met elke permutatie van het luik in één richting . Meer recent werk heeft aangetoond dat het in het standaardmodel (dat wil zeggen, wanneer hashfuncties niet worden gemodelleerd als willekeurige orakels) onmogelijk is om de IND-CCA2-beveiliging van RSA-OAEP te bewijzen onder de veronderstelde hardheid van het RSA-probleem .

Algoritme

Image
OAEP is een Feistel-netwerk

In het schema,

  • n is het aantal bits in de RSA-modulus.
  • k 0 en k 1 zijn gehele getallen die door het protocol zijn vastgelegd.
  • m is het leesbare bericht een ( n  -  k 0  -  k 1 ) -bits koord
  • G en H zijn maskergeneratiefuncties op basis van gekozen cryptografische hashfuncties
  • ⊕ is een xor-bewerking.

Om te coderen,

  1. berichten worden opgevuld met k 1 nullen zijn n  -  k 0 bits lang.
  2. r is een willekeurig gegenereerde k 0 -bit string
  3. G breidt het k 0 bits van r te n  -  k 0 bits.
  4. X = m 00...0 ⊕ G ( r )
  5. H vermindert de n  -  k 0 bits van X tot k 0 bits.
  6. Y = rH ( X )
  7. De uitvoer is X || Y waarbij X in het diagram wordt weergegeven als het meest linkse blok en Y als het meest rechtse blok.

Gebruik in RSA: Het gecodeerde bericht kan vervolgens worden versleuteld met RSA. De deterministische eigenschap van RSA wordt nu vermeden door de OAEP-codering te gebruiken.

Om te decoderen,

  1. herstel de willekeurige string als r = YH ( X )
  2. herstel het bericht als m 00...0 = XG ( r )

Veiligheid

De " alles-of-niets "-beveiliging is van het feit dat om m te herstellen , men de hele X en de hele Y moet herstellen ; X is nodig om r uit Y te halen en r is nodig om m uit X te halen . Aangezien elk gewijzigd bit van een cryptografische hash het resultaat volledig verandert, moeten de hele X en de hele Y beide volledig worden hersteld.

Implementatie

In de PKCS#1-standaard zijn de willekeurige orakels G en H identiek. De PKCS#1-standaard vereist verder dat de willekeurige orakels MGF1 zijn met een geschikte hashfunctie.

Zie ook

Referenties

  1. ^ M. Bellare , P. Rogaway . Optimale asymmetrische versleuteling -- Hoe te versleutelen met RSA . Uitgebreide samenvatting in Advances in Cryptology - Eurocrypt '94 Proceedings, Lecture Notes in Computer Science Vol. 950, A. De Santis ed, Springer-Verlag , 1995. volledige versie (pdf)
  2. ^ Eiichiro Fujisaki, Tatsuaki Okamoto, David Pointcheval en Jacques Stern . RSA-- OAEP is veilig onder de aanname van RSA . In J. Kilian, ed., Advances in Cryptology – CRYPTO 2001, vol. 2139 van Lecture Notes in Computer Science, SpringerVerlag, 2001. volledige versie (pdf)
  3. ^ Victor Shoep. OAEP heroverwogen . IBM Zürich Research Lab, Saumerstr. 4, 8803 Ruschlikon, Zwitserland. 18 september 2001. volledige versie (pdf)
  4. ^ P. Paillier en J. Villar, Trading One-Wayness tegen Chosen-Ciphertext Security in factoring-gebaseerde versleuteling , vooruitgang in cryptologie - Asiacrypt 2006.
  5. ^ D. Brown, welke hashes maken RSA-OAEP veilig? , IACR ePrint 2006/233.
  6. ^ Bruin, Daniel RL (2006). "Welke hashes maken RSA-OAEP veilig?" (PDF) . IACR Cryptologie ePrint Archief . Ontvangen 03-04-2019 .