¿Cuánto tiempo debo esperar antes de usar una función hash más nueva (con suerte mejorada)? Por ejemplo:
¿Está listo el uso de SHA-3 debido a las pruebas adicionales que se realizaron durante la competencia NIST?
¿Cuánto tiempo debo esperar antes de usar una función hash más nueva (con suerte mejorada)?
La mejor pregunta para hacer es: " ¿Cuánto tiempo debo esperar antes de desactivar mi hash actual?". ¿En qué estás ahora? Si sus datos están protegidos con MD5 o SHA1, por favor, cambie. Por favor cambia ahora. Si ya estás en algo que se cree que está intacto, no tienes por qué "actualizar".
La regla general con criptografía es asumir que todo se romperá eventualmente, así que elija algo que no se sepa que esté roto en ese momento, y tenga un plan en marcha para cambiar sus datos a un nuevo algoritmo rápidamente si un El ataque se publica.
Al momento de escribir, lo siguiente es perfectamente aceptable, no se sabe que esté roto, funciones hash / funciones de derivación de claves :
Elija el que mejor se adapte a su aplicación.
¿Está listo el uso de SHA-3 debido a las pruebas adicionales que se realizaron durante la competencia NIST?
Si NIST lo ha estandarizado (que tienen en FIPS-202 ), entonces está listo para su uso!
Como dijo @RoryAlsop, tenga en cuenta que si necesita que sus datos sean compatibles con varias piezas de software, tenga en cuenta los problemas de compatibilidad; solo porque SHA3 ha sido estandarizado por dos años, no significa que haya sido adoptado ampliamente.
Una nota final, leyendo entre líneas, parece implicar que SHA3 es una "función hash más nueva (ojalá mejorada)". Quiero corregir esto.
Aunque es más nuevo, no es "mejor" que SHA2, de hecho, SHA3 ofrece exactamente los mismos niveles de seguridad que SHA2. NIST lanzó la competencia SHA3 no porque quisieran "mejorar" en SHA2, sino porque se sentían incómodos con la naturaleza de "todos tus huevos en una sola canasta" de tener solo un algoritmo hash aprobado. Eso no quiere decir que SHA2 tenga algún problema, pero si surge algo, quieren tener una ruta de migración lista.
Mala idea. SHA3 es ideal para el hash de archivos (porque es rápido), pero en realidad se consideraría una debilidad si se usa para el hashing de contraseñas (porque es rápido).
Consulte NIST SP-800-63b :
Los ejemplos de funciones de derivación de clave adecuadas incluyen la función de derivación de clave basada en contraseña 2 (PBKDF2) [SP 800-132] y el globo [GLOBO]. DEBERÍA usarse una función de memoria rígida porque aumenta el costo de un ataque.
SHA3 está diseñado para ser eficiente, ni lento (con tiempo) ni grande (con memoria).
PBKDF2 y Globo son esquemas que se envuelven alrededor de una función hash estándar para hacerla más difícil / difícil de memorizar, respectivamente. Por lo tanto, si solo desea admitir un primitivo de hashing en, digamos, su dispositivo de hardware integrado, puede envolver PBKDF2 / Globo alrededor de SHA3 y aún tener criptografía con certificado FIPS, pero no use SHA3 desnudo en las contraseñas.
En general, una vez que una función ha sido aprobada como un reemplazo para una existente, vale la pena ver cómo migraría, de modo que una vez que se identifiquen las debilidades, pueda realizar esa transición.
Se desarrollan nuevas funciones para que haya un reemplazo, ya que es un hecho que las debilidades se encontrarán en las más antiguas.
Por lo tanto, no es un caso de espera para que la nueva función tenga pruebas adicionales (aunque obviamente para la aprobación de, por ejemplo, NIST, se han realizado muchas pruebas), es un caso de espera para que haya una necesidad.
Lea otras preguntas en las etiquetas hash secure-coding