¿Cómo descifra RSA-OAEP un mensaje de clave simétrica?

Aug 21 2020

En un mensaje de clave simétrica cifrada RSA-OAEP (AES, por ejemplo). Luego, la otra parte descifra el mensaje cuando R es un número aleatorio que la otra parte no conoce. Entonces, ¿cómo puede recuperar la clave cuando está XORed con un hash (hash1) que no sabe? No creo que esa salida Hash2ayude con nada. ¿Correcto?

Respuestas

3 kelalaka Aug 21 2020 at 19:59

OAEP es un relleno de cifrado asimétrico óptimo para RSA y desarrollado por M. Bellare, P. Rogaway, en 1995 y estandarizado en PKCS # 1 v2 y RFC 2437 .

  • Cifrado asimétrico óptimo: cómo cifrar con RSA. Resumen extendido en Avances en criptología

Tu imagen escondiendo algunos internos de la OAEP. Aquí uno mejor;

Se espera que la función de generación de máscara MFG sea ​​un oráculo aleatorio. Los MFG son similares a una función hash criptográfica, excepto que mientras que la salida de una función hash estándar es de tamaño fijo, MGF admite la salida de una longitud variable.

Si OAEP se desarrolla después de XOF ( Funciones de salida extensibles ), la prueba será mucho más fácil.

De vuelta a tu pregunta

Cómo puede recuperar la clave cuando está XORed con un hash (hash1) que no sabe. No creo que la salida de Hash2 ayude con nada. ¿Correcto?

Podemos formalizar arriba como;

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

En el estándar PKCS # 1, se usa el mismo MFG como oráculos aleatorios. He hecho una distinción al numerar.$MFG1$ se toma el $seed$ como entrada.

Ahora, recibió un mensaje que le envió RSA-OAEP. Obtienes el$maskedSeed$ y $maskedDB$

los $seed$ puede ser calculado por

$$seed = maskedSeed \oplus maskedDB$$ y ahora sabemos el $seed$.

Ahora el $T$ puede ser calculado por

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

Ahora consigue el codificado $message$ bloquear y comprobarlo.

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