JH es una función hash criptográfica presentada al concurso de funciones hash NIST por Hongjun Wu. Aunque fue elegido como uno de los cinco finalistas de la competencia, JH finalmente perdió ante el candidato de hash del NIST, Keccak . [1] JH tiene un estado de 1024 bits y funciona en bloques de entrada de 512 bits. El procesamiento de un bloque de entrada consta de tres pasos:
- XOR el bloque de entrada en la mitad izquierda del estado.
- Aplicar una permutación sin clave de 42 rondas (función de cifrado) al estado. Este consta de 42 repeticiones de:
- Divida la entrada en 256 bloques de 4 bits y asigne cada uno a través de una de las dos cajas S de 4 bits , la elección se realiza mediante un programa de claves de 256 bits dependiente de la ronda. De manera equivalente, combine cada bloque de entrada con un bit de clave y asigne el resultado a través de una caja S de 5 → 4 bits.
- Mezcle bloques adyacentes de 4 bits usando un código separable de distancia máxima sobre GF (2 4 ) .
- Permuta bloques de 4 bits para que estén adyacentes a diferentes bloques en las siguientes rondas.
- XOR el bloque de entrada en la mitad derecha del estado.
General | |
---|---|
Diseñadores | Hongjun Wu |
Certificación | Finalista SHA-3 |
Detalle | |
Tamaños de resumen | 224, 256, 384, 512 |
Velocidad | 16.1 cpb en Core 2 en modo de 64 bits usando SSE2; 37,3 cpb utilizando ANSI C. |
El resumen resultante son los primeros 224, 256, 384 o 512 bits del valor final de 1024 bits. Es muy adecuado para una implementación de corte de bits usando el conjunto de instrucciones SSE2 , dando velocidades de 16.8 ciclos por byte .
Referencias
- ^ "NIST selecciona al ganador de la competencia Secure Hash Algorithm (SHA-3)" (Comunicado de prensa). NIST . 2012-10-02 . Consultado el 2 de octubre de 2012 .
enlaces externos
- El sitio web de JH
- Página de JH en el zoológico SHA-3
- Código fuente VHDL desarrollado por Cryptographic Engineering Research Group (CERG) en la Universidad George Mason