Su "RSA básico" probablemente no sea RSA estándar como se especifica en PKCS # 1 , pero el llamado "libro de texto RSA", que es inseguro porque está reducido a la exponenciación modular central y no incluye el relleno, que es esencial.
En "libro de texto RSA", la clave pública consiste en n (módulo) y e (exponente público). La clave privada es d (exponente privado). Plaintexts son enteros modulo n . El cifrado de m es me mod n ; el descifrado se obtiene aumentando la potencia d porque (m e ) d = m mod n para todos los enteros m en el rango 0 a n-1 .
De hecho, el libro de texto RSA no es seguro contra Ataques de texto cifrado seleccionados debido a la siguiente: para el módulo n y todos los mensajes m y m ', tiene:
(mm ') e = (m e ) (m' e ) mod n
En otras palabras, el cifrado de un producto es el producto de los cifrados. En la configuración de CCA:
- Hay un mensaje m y su texto cifrado c = m e mod n . El atacante sabe c y quiere encontrar m .
- Se permite al atacante obtener el descifrado de los textos cifrados que elija, siempre que ninguno de ellos sea igual a c .
- El atacante genera un m ' (módulo n ) aleatorio y calcula c' = m ' e mod n .
- El atacante solicita el descifrado de cc ' mod n : este es un módulo entero n , distinto de c , por lo que el atacante obtiene una respuesta.
- La respuesta es necesariamente igual a mm ' mod n . El atacante sabe m ' (él mismo lo eligió), por lo que calculó m fácilmente.
En cuanto a Ataques de texto simple elegidos : el cifrado asimétrico es necesariamente seguro contra CPA, si es para ofrecer alguna seguridad en absoluto. De hecho, el cifrado utiliza la clave pública, que es pública, por lo que es conocida por todos, incluido el atacante. Si el atacante quiere cifrar algunos mensajes de su elección, entonces él ... simplemente lo hace. No necesita ninguna ayuda del propietario de la clave privada, ya que el cifrado solo utiliza elementos públicos.
Si el libro de texto RSA no estuviera seguro contra el CPA, entonces estándar RSA, con el relleno, también sería débil: utilizando su método de ruptura, el atacante recuperaría el mensaje rellenado, del cual obtendría el mensaje no rellenado.
Ahora, esto no significa que el libro de texto RSA esté seguro contra los atacantes que no pueden obtener el descifrado de textos cifrados personalizados. El libro de texto RSA tiene (al menos) los siguientes problemas muy serios:
- Como se señaló anteriormente, es inseguro contra CCA.
- Si el mensaje es un número entero pequeño, el problema RSA puede ser muy fácil. Por ejemplo, si m es un entero de 200 bits y el exponente público es e = 3 , entonces m e es un entero de 600 bits, mientras que el módulo es normalmente más grande (al menos 1024 bits). Esto implica que m se puede recuperar con una raíz cúbica simple y no modular (lo que es fácil).
- El libro de texto RSA es determinista; por lo tanto, si el mensaje en sí es susceptible de fuerza bruta (por ejemplo, es una contraseña), entonces se puede recuperar probando valores de mensaje potenciales hasta que se encuentre una coincidencia.
El relleno estándar, como se especifica en PKCS # 1, resuelve estos problemas: el relleno asegura que el número entero rellenado sea lo suficientemente grande; El relleno incluye bytes aleatorios. El relleno PKCS # 1 de estilo antiguo (denominado "v1.5") en realidad no es muy fuerte contra CCA, aunque aún es bastante bueno cuando se emplea correctamente, como en SSL (requiere que el servidor SSL no sea / em> se queja cuando el descifrado de lo que envía el cliente no tiene un relleno sintácticamente válido). El relleno PKCS # 1 de nuevo estilo (denominado "OAEP") es fuerte (e incluso "probado fuerte" para un significado apropiado de "probado").