In che modo RSA-OAEP decrittografa un messaggio di chiave simmetrica?

Aug 21 2020

In un messaggio di chiave simmetrica crittografata RSA-OAEP (ad esempio AES). Il messaggio viene quindi decrittografato dall'altra parte quando R è un numero casuale di cui l'altra parte non è a conoscenza. quindi Come può recuperare la chiave quando è XORed con A Hash (hash1) Che non lo sa. Non penso che l'output di Hash2aiuti con niente. Destra?

Risposte

3 kelalaka Aug 21 2020 at 19:59

OAEP è il riempimento ottimale della crittografia asimmetrica per RSA e sviluppato da M. Bellare, P. Rogaway, nel 1995 e standardizzato in PKCS # 1 v2 e RFC 2437 .

  • Crittografia asimmetrica ottimale: come crittografare con RSA. Estratto esteso in Advances in Cryptology

La tua immagine nasconde alcuni interni dell'OAEP. Eccone uno migliore;

L'MFG è la funzione di generazione della maschera che dovrebbe essere un oracolo casuale. Gli MFG sono simili a una funzione hash crittografica tranne per il fatto che mentre l'output di una funzione hash standard è una dimensione fissa, l'MGF supporta l'output di lunghezza variabile.

Se OAEP viene sviluppato dopo XOF ( Extendable Output Functions ), la dimostrazione sarà molto più semplice.

Torna alla tua domanda

Come può recuperare la chiave quando è XORed con A Hash (hash1) Che non sa. Non penso che l'output di Hash2 aiuti con nulla. Destra?

Possiamo formalizzare sopra come;

\begin{align} T &= lhash \mathbin\| PS \| \texttt{01} \mathbin\| Message\\ maskedDB &= MFG1(seed) \oplus T \\ maskedSeed &= MFG2(maskedDB) \oplus seed\\ \end{align}

Nello standard PKCS # 1, lo stesso MFG viene utilizzato come oracoli casuali. Ho fatto una distinzione numerando.$MFG1$ è preso il $seed$ come input.

Ora, hai ricevuto un messaggio che ti è stato inviato da RSA-OAEP. Ottieni il file$maskedSeed$ e $maskedDB$

Il $seed$ può essere calcolato da

$$seed = maskedSeed \oplus maskedDB$$ e ora conosciamo il file $seed$.

Ora il $T$ può essere calcolato da

$$ T = MFG1(seed) \oplus maskedDB $$

Ora ottieni il file codificato $message$ bloccare e controllarlo.

$$T = lhash \mathbin\| PS \| \texttt{01} \mathbin\| Message$$