Cryptology Academy · Les

OAEP: Optimal Asymmetric Encryption Padding

Doorloop OAEP-codering en hoe deze IND-CCA2-beveiliging bereikt.

Les 3 van 413 stappen

OAEP: Optimal Asymmetric Encryption Padding is een gratis Cryptology Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Welkom

OAEP (Optimal Asymmetric Encryption Padding) biedt aantoonbaar IND-CCA2-veilige RSA-versleuteling. Het gebruikt een willekeurige codering die orakelbevragingen cryptografisch waardeloos maakt.

Doelen van OAEP

OAEP werd in 1994 ontworpen door Bellare en Rogaway met twee doelen: (1) alle aanvallen op RSA zonder padding voorkomen door randomisatie, (2) IND-CCA2-beveiliging bereiken met een formeel beveiligingsbewijs in het model van het willekeurige orakel.

OAEP-invoer

M: bericht dat moet worden versleuteld (|M| ≤ |n| - 2*hLen - 2 bytes) L: optioneel label (meestal leeg) MGF: functie voor maskergeneratie (op basis van SHA-256) r: willekeurige seed (hLen bytes)

OAEP-codering stap 1: gegevensblok

DB = lHash || PS || 0x01 || M waarbij: - lHash = Hash(L) (hash van het label) - PS = nulbytes die tot een vaste lengte opvullen - 0x01 het begin van het bericht markeert

OAEP-codering stap 2: maskeren

maskedDB = DB XOR MGF(r, len(DB)) maskedSeed = r XOR MGF(maskedDB, hLen) EM = 0x00 || maskedSeed || maskedDB Dit is het bericht met padding dat aan de RSA-versleuteling wordt aangeboden.

MGF1: functie voor maskergeneratie

MGF1(Z, L) = Hash(Z || 0x00000000) || Hash(Z || 0x00000001) || ... MGF1 met SHA-256 genereert pseudowillekeurige uitvoer van willekeurige lengte op basis van een seed. Het wordt gebruikt in OAEP en RSA-PSS.

OAEP-decodering

Gegeven EM: 1. Splits op in maskedSeed en maskedDB 2. r = maskedSeed XOR MGF(maskedDB, hLen) 3. DB = maskedDB XOR MGF(r, len(DB)) 4. Controleer of lHash overeenkomt; zoek het scheidingsteken 0x01; haal M eruit 5. Elke fout → ontsleuteling mislukt (altijd dezelfde fout)

Waarom OAEP orakelaanvallen voorkomt

De willekeurige seed r van OAEP verandert bij elke versleuteling. Een gewijzigd cijferbericht wordt met overweldigend grote waarschijnlijkheid ontsleuteld tot een willekeurig paddingbericht. Het orakel ziet bij alle wijzigingen 'ongeldig'.

IND-CCA2-beveiliging

IND-CCA2 (Indistinguishability under Chosen-Ciphertext Attack 2): een aanvaller kan Enc(M0) niet onderscheiden van Enc(M1), zelfs niet met toegang tot een ontsleutelingsorakel voor alle cijferberichten behalve het uitdagingscijferbericht. OAEP bereikt dit.

OAEP tegenover v1.5 in de praktijk

Python cryptography-bibliotheek: gebruik padding.OAEP(), niet padding.PKCS1v15(). Java: gebruik het cipher 'RSA/ECB/OAEPWithSHA-256AndMGF1Padding'. Gebruik 'RSA/ECB/PKCS1Padding' nooit voor nieuwe code.

Maximale berichtgrootte van OAEP

Voor RSA-2048 met SHA-256: Maximaal bericht = 256 - 2×32 - 2 = 190 bytes De overhead van OAEP is 2×hLen + 2 bytes. Gebruik voor langere berichten hybride AES-versleuteling: versleutel de AES-sleutel met OAEP en de gegevens met AES-GCM.

Snelle controle

Welke eigenschap maakt OAEP bestand tegen padding-orakelaanvallen?

Samenvatting

OAEP biedt aantoonbare beveiliging voor RSA-versleuteling. Vervolgens bestuderen we RSA-PSS — de overeenkomstige verbetering voor RSA-handtekeningen.
Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “OAEP: Optimal Asymmetric Encryption Padding” gratis?

Ja — de volledige tekst van “OAEP: Optimal Asymmetric Encryption Padding” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “OAEP: Optimal Asymmetric Encryption Padding”?

Doorloop OAEP-codering en hoe deze IND-CCA2-beveiliging bereikt. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “OAEP: Optimal Asymmetric Encryption Padding”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. RSA uit het boek en waarom het onveilig is
  2. PKCS#1 v1.5-padding en Bleichenbacher
  3. OAEP: Optimal Asymmetric Encryption Padding
  4. RSA-PSS voor digitale handtekeningen
← Terug naar Cryptology Academy