# SHA-2

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. 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: 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. Els Estats Units han alliberat la patent sota una llicència lliure de drets d'autor.
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.
Figura de la dreta: els components blaus realitzen les següents operacions:
$\operatorname {Ch} (E,F,G)=(E\land F)\oplus (\neg E\land G)$
$\operatorname {Ma} (A,B,C)=(A\land B)\oplus (A\land C)\oplus (B\land C)$
$\Sigma _{0}(A)=(A\!\ggg \!2)\oplus (A\!\ggg \!13)\oplus (A\!\ggg \!22)$
$\Sigma _{1}(E)=(E\!\ggg \!6)\oplus (E\!\ggg \!11)\oplus (E\!\ggg \!25)$
La rotació per bits utilitza diferents constants per a SHA-512. Els números donats són per SHA-256.
El vermell $\color {red}\boxplus$ és l'addició mòdul 2 ³² per SHA-256, o 2 $^{64}$ per SHA-512.

## Aplicacions

La funció hash SHA-2 s'implementa en algunes aplicacions i protocols de seguretat àmpliament utilitzats, com ara TLS i SSL, PGP, SSH, S/MIME i IPsec.
SHA-256 s'utilitza per autenticar paquets de programari Debian i en l'estàndard de signatura de missatges DKIM; SHA-512 forma part d'un sistema per autenticar el vídeo d'arxiu del Tribunal Penal Internacional del genocidi ruandès. SHA-256 i SHA-512 es proposen per utilitzar-los a DNSSEC. Els proveïdors d'Unix i Linux estan passant a utilitzar SHA-2 de 256 i 512 bits per a un hash segur de contrasenyes.
Diverses criptomonedes, inclosa Bitcoin, utilitzen SHA-256 per verificar transaccions i calcular la prova de treball o la prova de participació. L'augment dels xips acceleradors ASIC SHA-2 ha portat a l'ús d'esquemes de prova de treball basats en scrypt.

## Referències

* ↑ «On the Secure Hash Algorithm family» (en anglès). Arxivat de l'original el 2016-03-30.
* ↑ Federal Register Notice 02-21599, Announcing Approval of FIPS Publication 180-2
* ↑ «IPR Details: The United States of America as represented by the National Security Agency's general license statement» (en anglès). IETF Datatracker. [Consulta: 17 febrer 2008].
* ↑ Lilly, Glenn M., "Device for and method of one-way cryptographic hashing", US 6829355, publicada 2004-12-07, assignada a National Security Agency
* ↑ «IPR Details: The United States of America as represented by the National Security Agency's general license statement» (en anglès). IETF Datatracker. [Consulta: 17 febrer 2008].
* ↑ Dmitry Khovratovich, Christian Rechberger; Alexandra Savelieva IACR Cryptology ePrint Archive, 2011:286, 2011.
* ↑ Mario Lamberger; Florian Mendel IACR Cryptology ePrint Archive, 2011:37, 2011.
* ↑ «Debian codebase in Google Code». Arxivat de l'original el 7 novembre 2011. [Consulta: 8 novembre 2011].
* ↑ John Markoff, A Tool to Verify Digital Records, Even as Technology Shifts, New York Times, January 26, 2009
* ↑ RFC 5702,RFC-Editor.org
* ↑ Ulrich Drepper, Unix crypt with SHA-256/512
* ↑ Bitcoin, Surplus. «Bitcoin Does Not Waste Energy» (en anglès). Surplus Bitcoin. Arxivat de l'original el 2022-05-28. [Consulta: 20 abril 2020].