Cryptology Academy · Lektion

OAEP: Optimal Asymmetric Encryption Padding

Gennemgå OAEP-kodning, og hvordan den opnår IND-CCA2-sikkerhed.

Lektion 3 af 413 trin

OAEP: Optimal Asymmetric Encryption Padding er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Velkommen

OAEP (Optimal asymmetrisk krypterings-padding) giver beviseligt IND-CCA2-sikker RSA-kryptering. Den bruger tilfældig kodning, som gør orakelforespørgsler kryptografisk værdiløse.

OAEP-mål

OAEP blev designet af Bellare og Rogaway (1994) med to mål: (1) at forhindre alle angreb på lærebogs-RSA gennem randomisering, (2) at opnå IND-CCA2-sikkerhed med et formelt sikkerhedsbevis i den tilfældige orakelmodel.

OAEP-inddata

M: meddelelsen, der skal krypteres (|M| ≤ |n| - 2*hLen - 2 bytes) L: valgfri etiket (normalt tom) MGF: maskegenereringsfunktion (baseret på SHA-256) r: tilfældig startværdi (hLen bytes)

OAEP-kodning, trin 1: Datablok

DB = lHash || PS || 0x01 || M hvor: - lHash = Hash(L) (hash af etiketten) - PS = nul-bytes, der udfylder til en fast længde - 0x01 markerer begyndelsen på meddelelsen

OAEP-kodning, trin 2: Maskering

maskedDB = DB XOR MGF(r, len(DB)) maskedSeed = r XOR MGF(maskedDB, hLen) EM = 0x00 || maskedSeed || maskedDB Dette er den paddingfyldte meddelelse, der gives som input til RSA-kryptering.

MGF1: Maskegenereringsfunktion

MGF1(Z, L) = Hash(Z || 0x00000000) || Hash(Z || 0x00000001) || ... MGF1 med SHA-256 genererer pseudotilfældige uddata af vilkårlig længde fra en startværdi. Den bruges i OAEP og RSA-PSS.

OAEP-dekodning

Givet EM: 1. Opdel i maskedSeed og maskedDB 2. r = maskedSeed XOR MGF(maskedDB, hLen) 3. DB = maskedDB XOR MGF(r, len(DB)) 4. Kontrollér, at lHash stemmer overens; find 0x01-separatoren; udtræk M 5. Enhver fejl → dekrypteringen mislykkedes (altid samme fejl)

Hvorfor OAEP besejrer orakelangreb

OAEP's tilfældige startværdi r ændres ved hver kryptering. En ændret chiffertekst dekrypteres med overvældende sandsynlighed til en ensartet tilfældig paddingfyldt meddelelse. Oraklet ser 'ugyldig' for alle ændringer.

IND-CCA2-sikkerhed

IND-CCA2 (uadskillelighed under angreb med valgt chiffertekst 2): Angriberen kan ikke skelne Enc(M0) fra Enc(M1), selv med adgang til et dekrypteringsorakel for alle chiffertekster undtagen udfordringen. OAEP opnår dette.

OAEP sammenlignet med v1.5 i praksis

Python-biblioteket cryptography: brug padding.OAEP(), ikke padding.PKCS1v15(). Java: brug chifferen 'RSA/ECB/OAEPWithSHA-256AndMGF1Padding'. Brug aldrig 'RSA/ECB/PKCS1Padding' i ny kode.

OAEP's maksimale meddelelsesstørrelse

For RSA-2048 med SHA-256: Maksimal meddelelse = 256 - 2×32 - 2 = 190 bytes OAEP's overhead er 2×hLen + 2 bytes. Brug hybridkryptering til længere meddelelser: krypter AES-nøglen med OAEP og dataene med AES-GCM.

Hurtig kontrol

Hvilken egenskab gør OAEP modstandsdygtig over for padding-orakelangreb?

Opsummering

OAEP giver beviselig sikkerhed for RSA-kryptering. Nu undersøger vi RSA-PSS — den tilsvarende forbedring til RSA-signaturer.
Gratis at komme i gang

Lær Cryptology Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
67
Lektioner
261

Ofte stillede spørgsmål

Er lektionen “OAEP: Optimal Asymmetric Encryption Padding” gratis?

Ja — hele teksten til “OAEP: Optimal Asymmetric Encryption Padding” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “OAEP: Optimal Asymmetric Encryption Padding”?

Gennemgå OAEP-kodning, og hvordan den opnår IND-CCA2-sikkerhed. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Cryptology Academy?

Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “OAEP: Optimal Asymmetric Encryption Padding”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?

Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Lærebogs-RSA og hvorfor det er usikkert
  2. PKCS#1 v1.5-padding og Bleichenbacher
  3. OAEP: Optimal Asymmetric Encryption Padding
  4. RSA-PSS til digitale signaturer
← Tilbage til Cryptology Academy