La competición para seleccionar el algoritmo criptográfico de hash para reemplazar a SHA-1 y a SHA-2 ha finalizado con la elección oficial por parte del equipo NIST (National Institute of Standards and Technology) de Keccak como el nuevo algoritmo SHA-3.

sponge construction sha-3 keccak

 

 

Tras seis años de proceso, se ha tomado una decisión y el algoritmo Keccak ha sido elegido como el nuevo SHA-3. Keccak es obra de Guido Bertoni, Joan Daemen, Michaël Peeter y Gilles Van Assche trabajadores de STMicroelectronics y NXP Semiconductors. Las razones de la elección de este algoritmo por parte del NIST es debido a "su elegante diseño y su capacidad de funcionar correctamente en muchos y diferentes dispositivos".

El algoritmo Keccak, se basa en el término criptográfico de construcción de esponja, en este caso Keccak a partir de una entrada con longitud variable, le aplica una función F y obtiene como resultado una salida de longitud variable basado en una permutación de longitud determinada f operando en un número fijo b de bits (width). Este número de bits se obtiene de la suma de un valor r (bitrate) y de un valor c (capacity) es decir b=r+c.

El algoritmo funciona de la siguiente manera, inicialmente la cadena de entrada es rellenada con bits extras para enmascarar el mensaje inicial y dividida en bloques de bits de longitud r. Entonces los b bits de estado son inicializados a 0, momento en el cual se inicia la "construcción de esponja" en dos fases "absorbing" y "squeezing".

  • En la fase "absorbing", a los bloques de entrada de longitud r-bits se les aplica un XOR a los primeros r bits del estado, alternándose con la función f. Cuando todos los bloques han sido procesados, se pasa a la siguiente fase.
  • Llegados a la fase "squeezing", los primeros r bits del estado son devueltos como bloques de salida, alternándose con ejecuciones de la función f. El número de bloques de salida es seleccionado por el usuario.

Los últimos c bits del estado no son nunca afectados por los bloques de entrada y no resultan en la salida durante la segunda fase.

En apariencia y sin haber estudiado a fondo el algoritmo sin duda resulta impresionante y esperemos que su elección como SHA-3 se demuestre con el tiempo y su solidez como una decisión acertada.

Fuente