SHA-256 vs SHA-512: ktorú hašovaciu funkciu zvoliť?

SHA-256 aj SHA-512 patria do rodiny SHA-2, ktorú navrhla NSA a štandardizoval NIST. Vytvárajú odtlačok s pevnou veľkosťou z akýchkoľvek údajov a dnes sa považujú za bezpečné. Rozdiel spočíva vo veľkosti odtlačku, vo výkone podľa architektúry a v niekoľkých bezpečnostných detailoch. Tu je, ktorú zvoliť a prečo.

Rodina SHA-2

SHA-2 zoskupuje viacero variantov (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256), ktoré zdieľajú rovnakú štruktúru, ale líšia sa veľkosťou slov a odtlačku. Číslo udáva veľkosť odtlačku v bitoch: SHA-256 vytvára 256 bitov (64 šestnástkových znakov), SHA-512 vytvára 512 (128 znakov).

Tieto odtlačky môžete vypočítať naším generátorom hašu alebo rozpoznať algoritmus z odtlačku pomocou identifikátora hašu. Nezamieňať s MD5, ktorý je z bezpečnostného hľadiska zastaraný (pozri naše porovnanie MD5 vs SHA-256).

SHA-256

SHA-256 pracuje so slovami s 32 bitmi a vytvára odtlačok s 256 bitmi. Je to najrozšírenejšia hašovacia funkcia na svete: certifikáty TLS, podpisy Bitcoinu, overovanie integrity súborov, git. Jeho kratší odtlačok ho robí praktickým na ukladanie, zobrazovanie a prenos.

  • Odtlačok: 256 bitov, 64 šestnástkových znakov
  • Slová: 32 bitov, optimálne na 32-bitových platformách a vo vstavaných systémoch
  • Rozšírenie: najširšie, univerzálna podpora

SHA-512

SHA-512 pracuje so slovami s 64 bitmi a vytvára odtlačok s 512 bitmi. Protiintuitívne je na modernom 64-bitovom procesore pri veľkých objemoch často rýchlejšia ako SHA-256, pretože spracuje viac údajov na jedno kolo. Jeho dlhší odtlačok ponúka aj vyššiu bezpečnostnú rezervu.

  • Odtlačok: 512 bitov, 128 šestnástkových znakov
  • Slová: 64 bitov, optimálne na 64-bitových architektúrach
  • Natívna odolnosť: SHA-512 nie je zraniteľná voči útoku predĺžením dĺžky pri použití jeho skrátených variantov (SHA-512/256)

Porovnávacia tabuľka

Kritérium SHA-256 SHA-512
Veľkosť odtlačku256 bitov (64 hex)512 bitov (128 hex)
Veľkosť slov32 bitov64 bitov
Rýchlosť na 64-bitovom CPUDobráČasto vyššia
Rýchlosť na 32 bitoch / vstavanéVyššiaPomalšia
Bezpečnostná rezervaVeľmi vysokáEšte vyššia
Predĺženie dĺžkyZraniteľnáZraniteľná (okrem skrátených variantov)
RozšírenieUniverzálneŠiroké

Výkon

Výkon závisí od architektúry. Na 64-bitovom serveri alebo notebooku môže SHA-512 prekonať SHA-256 o 20 až 50 % pri veľkých súboroch, pretože spracuje väčšie bloky na iteráciu. Na 32-bitovom mikrokontroléri alebo v obmedzenom prostredí preberá výhodu SHA-256.

V praxi je pri malých vstupoch (heslo, identifikátor) rozdiel zanedbateľný. Merateľným sa stáva až pri veľkých objemoch alebo vysokých priepustnostiach.

Kedy zvoliť jednu alebo druhú

Zvoľte SHA-256, keď

  • Smerujete k maximálnej kompatibilite a kompaktnému formátu
  • Cielite na vstavané systémy, IoT alebo 32-bitové platformy
  • Overujete integritu súborov alebo podpisujete certifikáty
  • Krátky odtlačok uľahčuje zobrazovanie a ukladanie

Zvoľte SHA-512, keď

  • Hašujete veľké objemy na 64-bitových serveroch
  • Chcete čo najširšiu možnú bezpečnostnú rezervu
  • Používate SHA-512/256 na odolnosť voči predĺženiu dĺžky pri zachovaní 256 bitov

Dôležité: ani jedna z nich nie je vhodná na hašovanie hesiel. Na to použite bcrypt alebo Argon2, ktoré sú navrhnuté tak, aby boli pomalé a solené.

Odporúčanie

Na všeobecné použitie je SHA-256 predvolenou voľbou: univerzálne podporovaný, kompaktný, dostatočne bezpečný. Zvoľte SHA-512, ak hašujete veľké objemy na 64-bitovom hardvéri alebo ak chcete dodatočnú bezpečnostnú rezervu. A na ukladanie hesiel sa obráťte na vyhradenú funkciu ako Argon2id, nikdy na samotnú SHA-2.

Časté otázky

Je SHA-512 bezpečnejšia ako SHA-256?

SHA-512 ponúka vyššiu teoretickú bezpečnostnú rezervu vďaka svojmu dlhšiemu odtlačku, ale SHA-256 je už ďaleko mimo dosahu súčasných útokov. Pre takmer všetky použitia sa obe považujú za bezpečné.

Prečo môže byť SHA-512 rýchlejšia ako SHA-256?

Pretože manipuluje so slovami s 64 bitmi a spracuje väčšie bloky na jedno kolo. Na natívnom 64-bitovom procesore to vyrovná dodatočné náklady a robí ju často rýchlejšou pri veľkých objemoch. Na 32 bitoch je to naopak.

Môžem hašovať heslá pomocou SHA-256 alebo SHA-512?

Nie, bola by to chyba. Tieto funkcie sú rýchle, teda ľahko napadnuteľné hrubou silou. Použite bcrypt alebo Argon2id, ktoré sú zámerne pomalé a obsahujú soľ.

Čo je SHA-512/256?

Je to SHA-512, ktorej odtlačok je skrátený na 256 bitov, s odlišnými inicializačnými hodnotami. Získa sa odtlačok s 256 bitmi, rýchlosť SHA-512 na 64 bitoch a natívna odolnosť voči útoku predĺžením dĺžky.