Keccak

Avanzado

Keccak (pronunciado "quechak") es una versátil función criptográfica diseñada por Guido Bertoni, Joan Daemen, Michaël Peeters y Gilles Van Assche. Aunque es posible usar Keccak con otros fines, es mayormente conocida por ser una función que ofrece mayores niveles de seguridad en comparación con algoritmos de hash más antiguos, como SHA-1 o SHA-2.

SHA son las siglas de Secure Hash Algorithm y se refiere al conjunto de funciones hash criptográficas publicado por el National Institute of Standards and Technology (NIST, Instituto Nacional de Normas y Tecnología) de los Estados Unidos. Tanto SHA-1 como SHA-2 fueron diseñados por la National Security Agency (NSA, Agencia de Seguridad Nacional) y, por lo tanto, presentan una estructura similar. Si bien Keccack admite el mismo tamaño de salida (longitudes de cada hash) que SHA-2, su mecanismo de trabajo es bastante diferente. Aun así, Keccak es parte de la familia de los SHA y a menudo se lo llama SHA-3.

En 2004, se realizaron ataques teóricos a SHA-1, y se pusieron a disposición del público en 2005. Unos años más tarde, en 2011, el NIST declaró a SHA-2 como la nueva función hash estándar que se debía utilizar. No obstante, la migración de SHA-1 a SHA-2 fue un poco lenta, y no fue hasta principios de 2017 que un gran porcentaje de desarrolladores y científicos informáticos finalmente migró a SHA-2. Poco después, Google anunció un ataque de colisión a SHA-1 exitoso en febrero de 2017, por lo que SHA-1 dejó de considerarse seguro desde entonces, y actualmente se desaconseja su uso.
La función Keccak (SHA-3) comenzó a desarrollarse alrededor de 2007 después de que el NIST anunciara una competencia pública y un proceso de revisión, en busca de una nueva función hash criptográfica que pudiera superar las fallas potenciales de los anteriores SHA-1 y SHA-2.

Aunque no se ha demostrado ningún ataque importante contra SHA-2 hasta ahora, se espera que las funciones hash se vulneren con el tiempo y que se dediquen años a desarrollar una nueva función estándar. Teniendo en cuenta eso, además de los ataques que se realizaron con éxito contra SHA-1 en 2004 y 2005, el NIST percibió la necesidad de crear un nuevo algoritmo criptográfico de hash. En 2012, el NIST declaró a Keccak como el algoritmo ganador de la competencia, y este se estandarizó como el miembro más reciente de la familia de los SHA (de ahí, SHA-3). 

Una de las razones por las que el NIST eligió a Keccak es por su estructura innovadora, que demostró ser más segura y eficiente que la de otros algoritmos. Técnicamente hablando, el algoritmo SHA-3 se basa en las llamadas funciones de esponja (o construcción de esponja), en contraste con la construcción de Merkle Damgård que emplean SHA-1 y SHA-2.

Hasta el momento, SHA-2 aún se considera seguro y es ampliamente utilizado. Por ejemplo, Bitcoin y otras criptomonedas utilizan SHA-256 y este tiene un rol esencial en el proceso de minería. En el futuro, podríamos ver una creciente adopción de SHA-3, ya que no parece estar cerca de llegar a experimentar ataques exitosos. No obstante, veremos cómo se desarrollan más algoritmos hash criptográficos en estos próximos años a medida que el campo de la criptografía progresa y se descubren nuevas fallas.