SHA-256 vs SHA-512: minkä tiivistefunktion valita?

SHA-256 ja SHA-512 kuuluvat molemmat SHA-2-perheeseen, jonka suunnitteli NSA ja standardoi NIST. Ne tuottavat kiinteän kokoisen tiivisteen mistä tahansa datasta ja niitä pidetään nykyään turvallisina. Ero on tiivisteen koossa, suorituskyvyssä arkkitehtuurin mukaan ja muutamissa turvallisuusyksityiskohdissa. Näin valitset kumman ja miksi.

SHA-2-perhe

SHA-2 kokoaa useita variantteja (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256), joilla on sama rakenne mutta jotka eroavat sanojen ja tiivisteen koon osalta. Numero ilmaisee tiivisteen koon bitteinä: SHA-256 tuottaa 256 bittiä (64 heksadesimaalimerkkiä), SHA-512 tuottaa 512 (128 merkkiä).

Voit laskea näitä tiivisteitä tiivistegeneraattorillamme tai tunnistaa algoritmin tiivisteen perusteella tiivistetunnistimella. Älä sekoita MD5:een, joka on turvallisuuden kannalta vanhentunut (katso vertailumme MD5 vs SHA-256).

SHA-256

SHA-256 toimii 32-bittisillä sanoilla ja tuottaa 256-bittisen tiivisteen. Se on maailman yleisin tiivistefunktio: TLS-varmenteet, Bitcoinin allekirjoitukset, tiedostojen eheyden tarkistus, git. Sen lyhyempi tiiviste tekee siitä käytännöllisen tallentaa, näyttää ja välittää.

  • Tiiviste: 256 bittiä, 64 heksadesimaalimerkkiä
  • Sanat: 32 bittiä, optimaalinen 32-bittisillä alustoilla ja sulautetuissa järjestelmissä
  • Käyttöönotto: laajin, universaali tuki

SHA-512

SHA-512 toimii 64-bittisillä sanoilla ja tuottaa 512-bittisen tiivisteen. Yllättäen modernilla 64-bittisellä prosessorilla se on usein nopeampi kuin SHA-256 suurille volyymeille, koska se käsittelee enemmän dataa kierrosta kohden. Sen pidempi tiiviste tarjoaa myös suuremman turvamarginaalin.

  • Tiiviste: 512 bittiä, 128 heksadesimaalimerkkiä
  • Sanat: 64 bittiä, optimaalinen 64-bittisillä arkkitehtuureilla
  • Natiivi vastustuskyky: SHA-512 ei ole altis pituuden laajennushyökkäykselle käytettäessä sen typistettyjä variantteja (SHA-512/256)

Vertailutaulukko

Kriteeri SHA-256 SHA-512
Tiivisteen koko256 bittiä (64 hex)512 bittiä (128 hex)
Sanojen koko32 bittiä64 bittiä
Nopeus 64-bittisellä CPU:llaHyväUsein parempi
Nopeus 32-bittisellä / sulautetussaParempiHitaampi
TurvamarginaaliErittäin korkeaVielä parempi
Pituuden laajennusAltisAltis (paitsi typistetyt variantit)
KäyttöönottoUniversaaliLaaja

Suorituskyky

Suorituskyky riippuu arkkitehtuurista. 64-bittisellä palvelimella tai kannettavalla SHA-512 voi ylittää SHA-256:n 20-50 prosentilla suurilla tiedostoilla, koska se käsittelee suurempia lohkoja iteraatiota kohden. 32-bittisellä mikrokontrollerilla tai rajoitetussa ympäristössä SHA-256 saa edun takaisin.

Käytännössä pienille syötteille (salasana, tunniste) ero on merkityksetön. Se muuttuu mitattavaksi vasta suurilla volyymeillä tai korkeilla läpisyötöillä.

Milloin valita kumpi

Valitse SHA-256, kun

  • Tavoittelet maksimaalista yhteensopivuutta ja kompaktia muotoa
  • Kohdistat sulautettuihin järjestelmiin, IoT:hen tai 32-bittisiin alustoihin
  • Tarkistat tiedostojen eheyttä tai allekirjoitat varmenteita
  • Lyhyt tiiviste helpottaa näyttämistä ja tallennusta

Valitse SHA-512, kun

  • Tiivistät suuria volyymeja 64-bittisillä palvelimilla
  • Haluat mahdollisimman suuren turvamarginaalin
  • Käytät SHA-512/256:tta vastustaaksesi pituuden laajennusta säilyttäen 256 bittiä

Tärkeää: kumpikaan ei sovi salasanojen tiivistämiseen. Siihen käytä bcryptiä tai Argon2:ta, jotka on suunniteltu hitaiksi ja suolatuiksi.

Suositus

Yleiskäyttöön SHA-256 on oletusvalinta: universaalisti tuettu, kompakti, riittävän turvallinen. Valitse SHA-512, jos tiivistät suuria volyymeja 64-bittisellä laitteistolla tai jos haluat lisäturvamarginaalin. Ja salasanojen tallentamiseen käänny erillisen funktion kuten Argon2id:n puoleen, älä koskaan pelkän SHA-2:n.

Usein kysytyt kysymykset

Onko SHA-512 turvallisempi kuin SHA-256?

SHA-512 tarjoaa suuremman teoreettisen turvamarginaalin pidemmän tiivisteensä ansiosta, mutta SHA-256 on jo selvästi nykyisten hyökkäysten ulottumattomissa. Lähes kaikkiin käyttötarkoituksiin molempia pidetään turvallisina.

Miksi SHA-512 voi olla nopeampi kuin SHA-256?

Koska se käsittelee 64-bittisiä sanoja ja suurempia lohkoja kierrosta kohden. Natiivilla 64-bittisellä prosessorilla tämä kompensoi lisäkustannuksen ja tekee siitä usein nopeamman suurilla volyymeillä. 32 bitillä on päinvastoin.

Voinko tiivistää salasanoja SHA-256:lla tai SHA-512:lla?

Ei, se olisi virhe. Nämä funktiot ovat nopeita, joten niitä on helppo hyökätä raa'alla voimalla. Käytä bcryptiä tai Argon2id:tä, jotka ovat tarkoituksella hitaita ja sisältävät suolan.

Mikä on SHA-512/256?

Se on SHA-512, jonka tiiviste on typistetty 256 bittiin eri alustusarvoilla. Saadaan 256-bittinen tiiviste, SHA-512:n nopeus 64 bitillä ja natiivi vastustuskyky pituuden laajennushyökkäykselle.