SHA-2 este un set de funcții criptografice pe bază de hash create de NSA (Agenția de Securitate Națională Americană). SHA vine de la Secure Hash Algorithm – algoritm de securitate hash.
Funcțiile criptografice pe bază de hash sunt operațiuni matematice care rulează pe bază de date digitale. Comparând hash-ul procesat (execuția algoritmului) cu o valoare hash cunoscută și previzibilă, se poate determina integritatea datelor. De exemplu, procesarea hash-ului unui fișier descărcat și compararea rezultatului cu rezultatul unui hash publicat înainte poate să arate dacă descărcarea a fost modificată sau dacă s-au făcut intervenții asupra ei. Un aspect cheie al funcțiilor criptografice hash este rezistența lor la coliziune – nimeni nu ar trebui să poată să găsească două valori introduse diferite care rezultă în același output hash.
Variante de SHA-2
SHA-2 include schimbări semnificative față de predecesorul său, SHA-1. Familia SHA-2 are șase funcții hash cu digest (valori hash) care sunt 224, 256, 384 sau 512 biți – SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
SHA-256 și SHA-512 sunt funcții noi de hash procesate cu cuvinte în 32 respectiv 64 de biți. Folosesc cantități diferite de schimbări și constante de aditivi, dar structurile lor sunt virtual identice, ceea ce diferă este numărul de runde. SHA-224 și SHA-384 sunt variante trunchiate ale primelor două, procesate cu valori inițiale diferite. SHA-512/224 și SHA-512/256 sunt de asemenea versiuni trunchiate ale lui SHA-512, dar valorile inițiale sunt generate folosind metoda descrisă în FIPS PUB 180-4. SHA-2 a fost publicat în 2001 ca standard federal american. Familia de algoritmi SHA-2 este patentată în SUA, iar patentul a fost eliberat cu licență gratuită.
În 2005, a apărut un algoritm pentru a găsi coliziuni SHA-1, făcute în pași de 2000 de ori mai puțini decât se credea posibil inițial. Deși până în 2015 nu a fost publicată nici o coliziune SHA-1, securitatea SHA-1 este mai slabă decât se intenționa și deci nu mai este recomandată pentru aplicații care depind de rezistența la coliziune, cum ar fi semnăturile digitale.
În prezent, cel mai bun atac public arăta o rezintență de 52 de runde pentru SHA-256 sau 57 de runde pentru SHA-512, iar rezistența la coliziune este de 46 de runde pentru SHA-256.