La propiedad de SHA-1 que se usa aquí es su resistencia a las imágenes previas : es computacionalmente inviable, por lo que sabemos, calcular un mensaje m que produce un salida dada SHA-1 ( m ), o incluso para obtener alguna "información" en m . Hay dos formas de calcular una preimagen:
- Tienes suerte. Pruebe muchas imágenes posibles hasta que se encuentre una.
- Aprovechar una debilidad es la estructura de la función hash.
El método "suerte" requiere un promedio de intentos de 2n para una función de hash con una salida de n -bit; con SHA-1, n = 160 , lo que hace que el "ataque de suerte" sea demasiado costoso (alrededor de mil millones de billones de veces más de lo que es tecnológicamente viable). En cuanto a las debilidades estructurales, todavía no se conoce ninguna (hay debilidades conocidas en SHA-1, pero afectan la resistencia a las colisiones, no a las preimágenes). Incluso el MD5 estaría bien aquí, debido a su rotura publicada (y hay una debilidad estructural conocida en el MD5 que hace que las preimágenes sean más fáciles de calcular que usar suerte, todavía inviable, pero un poco más fácil). p>
Por lo tanto, reemplazar SHA-1 con SHA-256 o SHA-512 no ayudaría, ya que SHA-1 ya es lo más seguro que se puede obtener, y no existe un nivel de seguridad que no se rompa. Por otro lado, cualquier modificación a un protocolo criptográfico rompe la compatibilidad con las implementaciones existentes y lo lanza al peligroso reino de los criptogramas hechos en casa, por lo que no se puede recomendar.