SHA-256 vs SHA-512: millise räsifunktsiooni valida?

SHA-256 ja SHA-512 kuuluvad mõlemad SHA-2 perekonda, mille kavandas NSA ja standardiseeris NIST. Need toodavad mis tahes andmetest fikseeritud suurusega räsi ja neid peetakse tänapäeval turvaliseks. Erinevus seisneb räsi suuruses, jõudluses sõltuvalt arhitektuurist ja mõnedes turvadetailides. Vaatame, kumba valida ja miks.

SHA-2 perekond

SHA-2 koondab mitu varianti (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256), millel on sama struktuur, kuid mis erinevad sõnade ja räsi suuruse poolest. Number näitab räsi suurust bittides: SHA-256 toodab 256 bitti (64 kuueteistkümnendsüsteemi märki), SHA-512 toodab 512 (128 märki).

Saad neid räsisid arvutada meie räsigeneraatoriga või tuvastada algoritmi räsi põhjal räsituvastajaga. Mitte segi ajada MD5-ga, mis on turvalisuse mõttes aegunud (vaata meie võrdlust MD5 vs SHA-256).

SHA-256

SHA-256 töötab 32-bitiste sõnadega ja toodab 256-bitise räsi. See on maailma kõige levinum räsifunktsioon: TLS-sertifikaadid, Bitcoini allkirjad, failide terviklikkuse kontroll, git. Selle lühem räsi teeb selle mugavaks salvestamiseks, kuvamiseks ja edastamiseks.

  • Räsi: 256 bitti, 64 kuueteistkümnendsüsteemi märki
  • Sõnad: 32 bitti, optimaalne 32-bitistel platvormidel ja sardsüsteemides
  • Levik: kõige laiem, universaalne tugi

SHA-512

SHA-512 töötab 64-bitiste sõnadega ja toodab 512-bitise räsi. Vastuoluliselt on see kaasaegsel 64-bitisel protsessoril suurte mahtude puhul sageli kiirem kui SHA-256, sest töötleb iga vooru kohta rohkem andmeid. Selle pikem räsi pakub ka suuremat turvavaru.

  • Räsi: 512 bitti, 128 kuueteistkümnendsüsteemi märki
  • Sõnad: 64 bitti, optimaalne 64-bitistel arhitektuuridel
  • Natiivne vastupidavus: SHA-512 ei ole haavatav pikkuse laiendamise rünnaku suhtes, kui kasutada selle kärbitud variante (SHA-512/256)

Võrdlustabel

Kriteerium SHA-256 SHA-512
Räsi suurus256 bitti (64 hex)512 bitti (128 hex)
Sõnade suurus32 bitti64 bitti
Kiirus 64-bitisel CPU-lHeaSageli parem
Kiirus 32-bitisel / sardsüsteemisParemAeglasem
TurvavaruVäga kõrgeVeel parem
Pikkuse laiendamineHaavatavHaavatav (välja arvatud kärbitud variandid)
LevikUniversaalneLai

Jõudlus

Jõudlus sõltub arhitektuurist. 64-bitisel serveril või sülearvutil võib SHA-512 ületada SHA-256 suurte failide puhul 20 kuni 50 %, sest töötleb iga iteratsiooni kohta suuremaid plokke. 32-bitisel mikrokontrolleril või piiratud keskkonnas saab SHA-256 eelise tagasi.

Praktikas on väikeste sisendite puhul (parool, identifikaator) erinevus tühine. See muutub mõõdetavaks alles suurte mahtude või kõrgete läbilaskevõimete korral.

Millal kumba valida

Vali SHA-256, kui

  • Sihid maksimaalset ühilduvust ja kompaktset vormingut
  • Sihid sardsüsteeme, IoT-d või 32-bitiseid platvorme
  • Kontrollid failide terviklikkust või allkirjastad sertifikaate
  • Lühike räsi lihtsustab kuvamist ja salvestamist

Vali SHA-512, kui

  • Räsid suuri mahte 64-bitistel serveritel
  • Soovid võimalikult suurt turvavaru
  • Kasutad SHA-512/256, et seista vastu pikkuse laiendamisele, säilitades 256 bitti

Oluline: kumbki neist ei sobi paroolide räsimiseks. Selleks kasuta bcrypt'i või Argon2'd, mis on kavandatud aeglaseks ja soolatuks.

Soovitus

Üldiseks kasutuseks on SHA-256 vaikevalik: universaalselt toetatud, kompaktne, küllaldaselt turvaline. Vali SHA-512, kui räsid suuri mahte 64-bitisel riistvaral või kui soovid täiendavat turvavaru. Paroolide salvestamiseks pöördu pühendatud funktsiooni nagu Argon2id poole, mitte kunagi ainult SHA-2 poole.

Korduma kippuvad küsimused

Kas SHA-512 on turvalisem kui SHA-256?

SHA-512 pakub tänu pikemale räsile suuremat teoreetilist turvavaru, kuid SHA-256 on juba praeguste rünnakute ulatusest tublisti väljas. Peaaegu kõigi kasutusalade jaoks peetakse mõlemat turvaliseks.

Miks võib SHA-512 olla kiirem kui SHA-256?

Sest see käsitleb 64-bitiseid sõnu ja töötleb iga vooru kohta suuremaid plokke. Natiivsel 64-bitisel protsessoril kompenseerib see lisakulu ja muudab selle suurte mahtude puhul sageli kiiremaks. 32 bitil on vastupidi.

Kas saan paroole räsida SHA-256 või SHA-512-ga?

Ei, see oleks viga. Need funktsioonid on kiired, seega kergesti rünnatavad jõhkra jõuga. Kasuta bcrypt'i või Argon2id-d, mis on tahtlikult aeglased ja sisaldavad soola.

Mis on SHA-512/256?

See on SHA-512, mille räsi on kärbitud 256 bitini, erinevate algväärtustega. Saadakse 256-bitine räsi, SHA-512 kiirus 64 bitil ja natiivne vastupidavus pikkuse laiendamise rünnakule.