¿Qué es SHA-3 y por qué lo cambiamos?

59

El 2 de octubre, NIST decidió que SHA-3 es el nuevo algoritmo de hash estándar. ¿Esto significa que debemos dejar de usar SHA-2 porque no es seguro?

¿Qué es este SHA-3 de todos modos?

    
pregunta Lucas Kauffman 04.10.2012 - 16:17
fuente

4 respuestas

58

La SHA-3 competencia fue un proceso abierto mediante el cual el NIST definió una nueva función de hash estándar (estándar para Usos federales de EE. UU., Pero las cosas son tales que esto probablemente se convertirá en un estándar de facto mundial. El proceso se inició en 2007. En ese momento, se habían encontrado una serie de puntos débiles y ataques en los predecesores de las funciones SHA-2 (SHA-256, SHA-512 ...), a saber, MD5 y SHA-1, por lo que se temía que el SHA-256 pronto se "rompiera" o al menos se debilitara. Dado que la elección y especificación de una primitiva criptográfica lleva tiempo, el NIST comenzó el proceso SHA-3, con la intención tácita pero claramente entendida de encontrar un reemplazo para SHA-2.

SHA-2 resultó ser más robusto de lo esperado. Realmente no sabemos por qué; hay algunos argumentos a medias (la expansión del mensaje no es lineal, la función acumula el doble de operaciones elementales que SHA-1 ...) pero también existe la sospecha de que SHA-256 permaneció ileso porque todos los investigadores estaban ocupados trabajando en los candidatos SHA-3. De todos modos, como SHA-2 Doom se pospuso aparentemente de manera indefinida, el NIST cambió sus objetivos y, en lugar de elegir un reemplazo , definió un plan de respaldo : una función que se puede mantener En un armario de vidrio, para ser utilizado en caso de emergencia. En consecuencia, rendimiento perdió la mayor parte de su relevancia.

Esto resalta la elección de Keccak : entre los finalistas de la competencia, fue la función más diferente de SHA -2 y el AES; por lo tanto, redujo el riesgo de que todos los algoritmos criptográficos estándar se rompan simultáneamente, y el NIST se atrape metafóricamente con su kilt hacia abajo.

No seamos apresurados: no solo SHA-2 sigue siendo bueno (tanto oficial como científicamente), sino que SHA-3 se acaba de anunciar : tomará algunos más meses antes de que podamos obtener una especificación (aunque podemos preparar implementaciones basadas en lo que se envió para el concurso). Lo que se debe hacer ahora (y se debería haber hecho hace una década, en realidad) es preparar protocolos y aplicaciones para agilidad de algoritmo , es decir, la capacidad de cambiar funciones si es necesario. surge (de la misma manera que SSL / TLS tiene "conjuntos de cifrado").

    
respondido por el Thomas Pornin 04.10.2012 - 17:13
fuente
10

Hay al menos un uso para el cual SHA-2 es aparentemente mejor que SHA-3 y es estiramiento de teclas .

SHA-3 fue diseñado para ser muy eficiente en hardware pero es relativamente lento en software. SHA-3 toma aproximadamente el doble de tiempo en comparación con SHA-2 para ejecutarse en el software y aproximadamente una cuarta parte del tiempo para ejecutarse en hardware.

Dado que SHA-3 toma el doble de tiempo para ejecutarse en el software, si desea el mismo tiempo de manejo de contraseñas en su servidor, tendría que hacer la mitad del número de iteraciones. Pero los atacantes pueden usar una implementación de hardware para descifrar contraseñas. Debido a esto, los atacantes pueden descifrar las contraseñas hash SHA-3 ocho veces más rápido que las contraseñas hash SHA-2: 2 veces más rápido porque necesitamos reducir a la mitad el número de iteraciones hash y 4 veces más rápido debido a que el hardware SHA-3 es más rápido que SHA-2 hardware.

    
respondido por el David Wachtfogel 05.10.2012 - 07:22
fuente
6

El 2 de octubre de 2012, el NIST decidió qué algoritmo se usaría para realizar el hash. Este fue el algoritmo de Keccak.

El algoritmo Keccak se basa en la estrategia de esponjas herméticas . Es el nuevo algoritmo estándar. Utilizamos estándares para hacer que tengan mejor compatibilidad.

Keccak fue diseñado por Guido Bertoni, Joan Daemen (uno de los creadores de AES), Michaël Peeters y Gilles Van Assche. Lo construyeron basándose en su algoritmo de Radiogatùn .

¿Significa esto que SHA-2 no es seguro? Ningún SHA-2 aún se considera seguro, solo sabemos que en el futuro ya no será seguro y necesitamos seguridad de que habrá una alternativa disponible. Tampoco queremos hacer la transición de un día a otro, por lo que ya estandarizaron un nuevo algoritmo de hash, para que las personas tengan tiempo de cambiar y para que sepamos que tenemos un algoritmo seguro a mano cuando lo necesitamos.

    
respondido por el Lucas Kauffman 04.10.2012 - 16:17
fuente
3

Uno de los beneficios que veo de SHA-3 sobre SHA-1 y SHA-2 es que no es sensible a los ataques de extensión. Eso significa que los protocolos basados en él (por ejemplo, los MAC) son inherentemente más robustos.

    
respondido por el SquareRootOfTwentyThree 05.10.2012 - 08:03
fuente

Lea otras preguntas en las etiquetas