La fonction SHA-512 est apparue en même temps que SHA-256 et devient comme celle-ci en 2002 un standard fédéral de traitement de l’information (FIPS du NIST). Elle produit un haché de 512 bits.
L’algorithme est très similaire à celui de SHA-256 mais avec une différence importante dans la taille des données traitées : la taille de bloc est de 1024 bits (et non 512 bits), et l’algorithme opère sur des mots de 64 bits (la taille de mot-mémoire de beaucoup de processeurs modernes). En particulier les opérations arithmétiques, particulièrement optimisées sur ces processeurs se font sur 64 bits.
La structure de l’algorithme est la même que celle de SHA-256 mais le message est découpé en blocs de 1024 bits ; les nombres qui apparaissent (variables h0, … , h7, constantes … ) sont sur 64 bits et l’addition se fait modulo 264 ; les valeurs des initialisations et des constantes sont différentes (forcément puisque sur 64 et non 32 bits) ; la fonction de compression utilise 80 tours (au lieu de 64) ;
la longueur du message (en binaire) ajoutée à celui-ci dans la phase de bourrage (renforcement de Merkle-Damgård) est un entier de 128 bits (big-endian) et non 64 bits, ce qui limite la taille théorique maximale du message à 2128 bits et non plus 264 bits ; les valeurs des décalages et décalages circulaires sont modifiées de façon à tenir compte de la nouvelle longueur des mots.