Secure Hash Algorithm
# Secure Hash Algorithm

Le préfixe SHA (acronyme de Secure Hash Algorithm) est associé à plusieurs fonctions de hachage cryptographiques publiées par le NIST en tant que Federal Information Processing Standard (FIPS).

Les fonctions SHA-0, SHA-1 et SHA-2 ont été conçues par la NSA ; leurs spécifications sont décrites par les publications FIPS-180, dont la dernière version à ce jour est le FIPS-180-4.

## SHA-0

    SHA-0 s'appelait originellement SHA, et a été publiée en 1993 comme Federal Information Processing Standard. Elle est inspirée des fonctions MD4 et MD5 de Ron Rivest. Le NIST recommande formellement de ne pas l'utiliser depuis 1996, pour des questions de sécurité. Elle est cependant restée un objet d'étude pour la communauté académique, en tant que prototype de SHA-1.

## SHA-1

    SHA-1 est une version légèrement modifiée de SHA-0 publiée en 1995 comme Federal Information Processing Standard, qui produit comme celle-ci un haché de 160 bits. Il existe des attaques théoriques pour la recherche de collisions, de complexité nettement moindre que l’attaque générique des anniversaires. Elle a été très utilisée dans les protocoles et applications de sécurité, mais, à cause de l'existence de ces attaques, tend à être remplacée par SHA-256.

## SHA-2

    SHA-2 est une famille de fonctions de hachage cryptographiques publiée en 2002 comme Federal Information Processing Standard, qui regroupe à l'origine SHA-224, SHA-256, SHA-384 et SHA-512. Ces fonctions produisent des hachés de taille différente (désignée par le suffixe, en bits). Le standard FIPS-180-4 (mars 2012) est augmenté de deux versions tronquées de SHA-512, SHA-512/256 (haché de 256 bits) et SHA-512/224 (haché de 224 bits). Elles utilisent des algorithmes très similaires, eux-mêmes largement inspirés de celui de SHA-1. L'un est à base de mots de 32 bits (et d'un découpage en blocs de 512 bits) pour SHA-256 et sa version tronquée SHA-224. L'autre est à base de mots de 64 bits (et d'un découpage en blocs de 1024 bits) pour SHA-512 et ses versions tronquées SHA-384, SHA-512/256 et SHA-512/224. Les attaques connues sur SHA-1 n'ont pu être transposées à SHA-2, même si la construction est proche.

## SHA-3

    SHA-3, originellement Keccak, est une nouvelle fonction de hachage cryptographique décrite en août 2015 par la publication FIPS-202. Elle a été sélectionnée en octobre 2012 par le NIST à la suite d'un concours public lancé en 2007, ceci car les faiblesses découvertes sur MD5 et SHA-1 laissent craindre une fragilité de SHA-2 qui est construite sur le même schéma. Elle possède des variantes qui peuvent produire des hachés de 224, 256, 384 et 512 bits. Elle est construite sur un principe tout à fait différent de celui des fonctions MD5, SHA-1 et SHA-2.
