¿Se debe usar SHA-1 con RSA-OAEP?

9

PKCS # 1 define SHA1 como una función hash predeterminada y todas las implementaciones son compatibles con esta función hash y las funciones de generación de máscara basadas en SHA1. En algunas implementaciones, puede cambiar la función hash utilizada para el relleno OAEP.

¿Se puede usar un hash SHA1 para cifrar datos aleatorios (claves de cifrado simétricas) o se debe usar otro método de hashing?

¿Existen ataques o vulnerabilidades conocidas?

¿Cuáles son las ventajas de otras funciones hash?

    
pregunta Bernhard 28.01.2016 - 16:53
fuente

1 respuesta

12

Se sabe que SHA-1, como función hash, es "ligeramente inestable". Es una función hash de 160 bits (su salida es una secuencia de 160 bits); como tal, debería ofrecer 2 80 resistencia a las colisiones, mientras que parece que su verdadera resistencia está más cerca de 2 61 o algo así.

Sin embargo, OAEP no pide mucho de su función hash subyacente. Parece que la resistencia a la colisión no es realmente necesaria para garantizar la seguridad del sistema de encriptación. Consulte este artículo para obtener más información (es un poco técnico).

Conclusión: no sabemos de ningún ataque que funcione contra RSA-OAEP al aprovechar cualquier debilidad de SHA-1; ni siquiera estamos seguros si tal ataque puede existir en absoluto. En ese sentido, no se conoce ninguna ventaja, desde un punto de vista criptográfico, al cambiar de SHA-1 a otra función hash en el contexto de RSA-OAEP .

Sin embargo , la moda actual es disparar SHA-1 a primera vista e insistir en cambiar a una de las funciones SHA-2 (por ejemplo, SHA-256 o SHA-512) de manera sistemática. Por lo tanto, el uso de SHA-256 es bueno para las relaciones públicas y le ahorrará algo de tiempo, ya que adherirse a SHA-1 requerirá justificarse ante muchas personas.

Tenga en cuenta que SHA-256 tiene una salida más grande (256 bits), lo que impone un límite inferior en el tamaño de los datos que podrá cifrar. Si utiliza una clave pública RSA de 2048 bits (256 bytes), el tamaño máximo del mensaje con RSA-OAEP + SHA-1 será de 214 bytes (1712 bits), mientras que será de 190 bytes (1520 bits) para RSA-OAEP + SHA-256. Si todo lo que está cifrando son claves para el cifrado simétrico, esto no debería importar en la práctica.

    
respondido por el Thomas Pornin 28.01.2016 - 17:12
fuente

Lea otras preguntas en las etiquetas