Keccak (prononciation: [kɛtʃak], comme “ketchak”)[1] est une fonction de hachage cryptographique conçue par Guido Bertoni, Joan Daemen, Michaël Peeters et Gilles Van Assche à partir de la fonction RadioGatún.
SHA-3 est issu de la NIST hash function competition qui a élu l'algorithme Keccak[2] le . Elle n’est pas destinée à remplacer SHA-2, qui n’a à l'heure actuelle pas été compromise par une attaque significative, mais à fournir une autre solution à la suite des possibilités d'attaques contre les standards MD5, SHA-0 et SHA-1.
Keccak est une fonction éponge[3],[4] dans laquelle les blocs du messages sont XORés avec des bits initiaux, ensuite permutés de manière réversible.
L'algorithme Keccak tel que soumis initialement est parfois utilisé, il diffère de l'algorithme spécifié par le NIST car le NIST a spécifié la manière de compléter le message lorsque la longueur du message n'est pas égale à la taille requise en entrée par la fonction éponge. Les résultats sont différents[5].