SHA-2 (acrònim anglès de Secure Hash Algorithm 2) és un conjunt de funcions hash criptogràfiques dissenyades per l'Agència de Seguretat Nacional (NSA) dels Estats Units i publicats per primera vegada el 2001.[1][2] Es construeixen utilitzant la construcció Merkle–Damgård, a partir d'una funció de compressió unidireccional construïda utilitzant l'estructura de Davies–Meyer a partir d'un xifratge de blocs especialitzat.
SHA-2 inclou canvis significatius respecte al seu predecessor, SHA-1. La família SHA-2 consta de sis funcions hash amb resums (valors hash) de 224, 256, 384 o 512 bits: [3] SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/ 224, SHA-512/256. SHA-256 i SHA-512 són noves funcions hash calculades amb vuit paraules de 32 i 64 bits, respectivament. Utilitzen diferents quantitats de canvi i constants additives, però les seves estructures són pràcticament idèntiques, només es diferencien en el nombre de rondes. SHA-224 i SHA-384 són versions truncades de SHA-256 i SHA-512 respectivament, calculades amb diferents valors inicials. SHA-512/224 i SHA-512/256 també són versions truncades de SHA-512, però els valors inicials es generen mitjançant el mètode descrit a Federal Information Processing Standards (FIPS) PUB 180-4.
SHA-2 va ser publicat per primera vegada pel National Institute of Standards and Technology (NIST) com a estàndard federal dels EUA (FIPS). La família d'algorismes SHA-2 està patentada als EUA.[4] Els Estats Units han alliberat la patent sota una llicència lliure de drets d'autor.[5]
A partir del 2011, els millors atacs públics trenquen la resistència a la preimatge durant 52 de les 64 rondes de SHA-256 o 57 de les 80 rondes de SHA-512, i la resistència a la col·lisió durant 46 de les 64 rondes de SHA-256.[6][7]
Figura de la dreta: els components blaus realitzen les següents operacions:
La rotació per bits utilitza diferents constants per a SHA-512. Els números donats són per SHA-256.
El vermell és l'addició mòdul 2 ³² per SHA-256, o 2 64 per SHA-512.