SHA-256 vs SHA-512: katero zgoščevalno funkcijo izbrati?

SHA-256 in SHA-512 obe spadata v družino SHA-2, ki jo je zasnovala NSA in standardiziral NIST. Iz katerih koli podatkov ustvarita izvleček fiksne velikosti in danes veljata za varni. Razlika je v velikosti izvlečka, zmogljivosti glede na arhitekturo in nekaj varnostnih podrobnostih. Tukaj je, katero izbrati in zakaj.

Družina SHA-2

SHA-2 združuje več različic (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256), ki delijo isto strukturo, a se razlikujejo po velikosti besed in izvlečka. Številka označuje velikost izvlečka v bitih: SHA-256 ustvari 256 bitov (64 šestnajstiških znakov), SHA-512 pa 512 (128 znakov).

Te izvlečke lahko izračunate z našim generatorjem zgoščevalnih vrednosti ali prepoznate algoritem iz izvlečka z identifikatorjem zgoščevalnih vrednosti. Ne zamenjujte z MD5, ki je za varnost zastarel (glejte našo primerjavo MD5 vs SHA-256).

SHA-256

SHA-256 deluje na 32-bitnih besedah in ustvari 256-bitni izvleček. To je najbolj razširjena zgoščevalna funkcija na svetu: certifikati TLS, podpisi Bitcoina, preverjanje celovitosti datotek, git. Njen krajši izvleček je priročen za shranjevanje, prikaz in prenos.

  • Izvleček: 256 bitov, 64 šestnajstiških znakov
  • Besede: 32-bitne, optimalne na 32-bitnih platformah in vgrajenih sistemih
  • Razširjenost: največja, univerzalna podpora

SHA-512

SHA-512 deluje na 64-bitnih besedah in ustvari 512-bitni izvleček. Protiintuitivno je na sodobnem 64-bitnem procesorju za velike količine pogosto hitrejša od SHA-256, ker obdela več podatkov na krog. Njen daljši izvleček ponuja tudi večjo varnostno rezervo.

  • Izvleček: 512 bitov, 128 šestnajstiških znakov
  • Besede: 64-bitne, optimalne na 64-bitnih arhitekturah
  • Naravna odpornost: SHA-512 ni ranljiva za napad s podaljšanjem dolžine pri uporabi okrnjenih različic (SHA-512/256)

Primerjalna tabela

Merilo SHA-256 SHA-512
Velikost izvlečka256 bitov (64 hex)512 bitov (128 hex)
Velikost besed32 bitov64 bitov
Hitrost na 64-bit CPEDobraPogosto boljša
Hitrost na 32-bit / vgrajenihBoljšaPočasnejša
Varnostna rezervaZelo visokaŠe višja
Podaljšanje dolžineRanljivaRanljiva (razen okrnjenih različic)
RazširjenostUniverzalnaŠiroka

Zmogljivost

Zmogljivost je odvisna od arhitekture. Na 64-bitnem strežniku ali prenosniku lahko SHA-512 prekosi SHA-256 za 20 do 50 % pri velikih datotekah, ker na iteracijo obdela večje bloke. Na 32-bitnem mikrokrmilniku ali v omejenem okolju prevzame prednost SHA-256.

V praksi je za majhne vnose (geslo, identifikator) razlika zanemarljiva. Merljiva postane šele pri velikih količinah ali visokih pretokih.

Kdaj izbrati eno ali drugo

Izberite SHA-256, kadar

  • Ciljate na največjo združljivost in kompakten format
  • Ciljate na vgrajene sisteme, IoT ali 32-bitne platforme
  • Preverjate celovitost datotek ali podpisujete certifikate
  • Krajši izvleček olajša prikaz in shranjevanje

Izberite SHA-512, kadar

  • Zgoščujete velike količine na 64-bitnih strežnikih
  • Želite čim večjo varnostno rezervo
  • Uporabljate SHA-512/256 za odpornost na podaljšanje dolžine ob ohranitvi 256 bitov

Pomembno: nobena od obeh ni primerna za zgoščevanje gesel. Za to uporabite bcrypt ali Argon2, zasnovana, da sta počasna in soljena.

Priporočilo

Za splošno uporabo je SHA-256 privzeta izbira: univerzalno podprta, kompaktna, povsem varna. Odločite se za SHA-512, če zgoščujete velike količine na 64-bitni strojni opremi ali želite dodatno varnostno rezervo. Za shranjevanje gesel pa se obrnite na namensko funkcijo, kot je Argon2id, nikoli zgolj na SHA-2.

Pogosta vprašanja

Ali je SHA-512 varnejši od SHA-256?

SHA-512 ponuja višjo teoretično varnostno rezervo zaradi daljšega izvlečka, vendar je SHA-256 že zdaj daleč zunaj dosega trenutnih napadov. Za skoraj vse primere uporabe veljata obe za varni.

Zakaj je lahko SHA-512 hitrejši od SHA-256?

Ker upravlja 64-bitne besede in na krog obdela večje bloke. Na nativnem 64-bitnem procesorju to izravna dodatni strošek in ga pogosto naredi hitrejšega pri velikih količinah. Na 32-bitnem sistemu je obratno.

Ali lahko zgoščujem gesla s SHA-256 ali SHA-512?

Ne, to bi bila napaka. Ti funkciji sta hitri, zato ju je lahko napasti z grobo silo. Uporabite bcrypt ali Argon2id, ki sta namenoma počasna in vključujeta sol.

Kaj je SHA-512/256?

To je SHA-512, katerega izvleček je okrnjen na 256 bitov, z drugačnimi začetnimi vrednostmi. Dobimo 256-bitni izvleček, hitrost SHA-512 na 64 bitih in naravno odpornost na napad s podaljšanjem dolžine.