# Mitä SHA-256 todellisuudessa on

> Cuadernos Lacre · Konsepti · 19. toukokuuta 2026
> https://solo2.net/fi/muistikirjat/articulos/mita-sha-256-todella-on.html

Matemaattinen sormenjälki, joka mahtuu kuuteenkymmeneen neljään merkkiin ja muuttuu kokonaan, jos yksikin pilkku alkuperäisessä tekstissä liikkuu. Miksi kutsumme sitä digitaaliseksi sinetiksi.

---

## Yksinkertainen idea teknisen nimen takana

Kuvittele, että on olemassa kone, jossa on vain yksi aukko ja yksi näyttö. Aukosta syötät tekstin: sanan, lauseen tai kokonaisen romaanin. Näytölle ilmestyy hetkeä myöhemmin täsmälleen kuudenkymmenenneljän merkin pituinen jono. Tätä jonoa kutsumme ammattilaislukijalle *hashiksi* tai *kryptografiseksi tiivisteeksi*; tavalliselle lukijalle voimme kutsua sitä toistaiseksi tekstin matemaattiseksi sormenjäljeksi, aivan kuten sormenjälki on ihmiselle.

Jos syötät saman tekstin kahdesti, kone näyttää saman sormenjäljen molemmilla kerroilla. Jos syötät hieman erilaisen tekstin — yhden siirretyn pilkun tai ison kirjaimen, joka muuttuu pieneksi — kone näyttää sormenjäljen, joka on täysin erilainen kuin ensimmäinen. Ei samanlainen: erilainen. Nämä kaksi ominaisuutta yhdessä — determinismi ja herkkyys — ovat se yksinkertainen idea. Kaikki muu SHA-256:ssa on koneistoa, joka saa ne toimimaan hyvin.

On syytä sanoa alusta alkaen, mitä kone ei tee. Se ei salaa tekstiä. Se ei piilota sitä. Se ei tallenna sitä. Kone katsoo tekstiä, laskee sormenjäljen ja unohtaa tekstin. Sormenjälki ei mahdollista sen tuottaneen tekstin palauttamista; se mahdollistaa vain ehdokastekstin tarkistamisen, vastaako se alkuperäistä vai ei. Siksi sanomme, että se on *yksisuuntainen* tiiviste: se menee, mutta ei tule takaisin.

## Hash ei ole sama asia kuin salaaminen

Sekaannus on yleinen ja se on syytä selvittää: salaaminen ja hashaus ovat eri operaatioita. Salaaminen tarkoittaa tekstin muuntamista niin, että vain avaimen haltija voi palauttaa sen alkuperäiseen muotoonsa. Hashaus tarkoittaa tekstistä sormenjäljen luomista, josta alkuperäistä tekstiä ei voida koskaan palauttaa, ei avaimella eikä ilman. Ensimmäinen on suunnittelultaan palautuva; toinen suunnittelultaan peruuttamaton.

Käytännön seurauksella on väliä. Kun sovellus sanoo: "Tallennamme salasanasi salattuna", on joku, jolla on avain sen avaamiseen — sovellus itse, joka tapauksessa. Kun sovellus sanoo: "Tallennamme salasanasi hashina", sovellus itse ei voi lukea alkuperäistä salasanaa, vaikka se haluaisi; se voi vain tarkistaa, tuottaako kirjoittamasi salasana saman sormenjäljen uudelleen. Jälkimmäinen malli, hyvin tehtynä, on paljon parempi salasanasäilytykseen kuin ensimmäinen. Myöhemmin näemme, miksi "hyvin tehtynä" vaatii muutakin kuin pelkän SHA-256:n.

## Neljä ominaisuutta, jotka tekevät kryptografisesta hashista hyödyllisen

Hash-funktio, joka ansaitsee adjektiivin *kryptografinen*, täyttää neljä ominaisuutta:

1. Determinismi. Sama syöte tuottaa aina saman sormenjäljen.
2. Lumivyöryilmiö (Avalanche effect). Pieni muutos syötteessä tuottaa täysin erilaisen sormenjäljen, jolla ei ole näkyvää yhdennäköisyyttä edelliseen.
3. Käänteisen kuvion vastustuskyky. Annetun sormenjäljen perusteella ei ole laskennallisesti mahdollista löytää tekstiä, joka sen tuotti.
4. Törmäyksen vastustuskyky. Ei ole laskennallisesti mahdollista löytää kahta eri tekstiä, jotka tuottaisivat saman sormenjäljen.

"Ei laskennallisesti mahdollista" ei tarkoita "matemaattisesti mahdotonta". Se tarkoittaa, että sen saavuttamisen aika-, energia- ja rahakustannukset ylittävät moninkertaisesti kaiken kohtuudella saatavilla olevan laskentakapasiteetin summan. SHA-256:lle tämä raja mitataan kvadriljoonissa vuosissa jopa optimistisimmissa skenaarioissa erikoistuneella laitteistolla. Mikä on lukijan käytännön tarkoituksiin sama kuin "ei voida tehdä".

## SHA-256, erityisesti

Nimi kertoo kaiken. SHA on lyhenne sanoista *Secure Hash Algorithm* (turvallinen hash-algoritmi). Numero 256 osoittaa sormenjäljen koon bitteinä: kaksisataa viisikymmentäkuusi bittiä eli kolmekymmentäkaksi tavua, jotka heksadesimaalimuodossa ovat ne kuusikymmentäneljä merkkiä, jotka lukija jo tunnistaa. Standardin julkaisi yhdysvaltalainen NIST (elin, joka normalisoi tällaisia funktioita) vuonna 2001 osana SHA-2-perhettä; standardin nykyinen versio FIPS 180-4 on vuodelta 2015.

Mitat ansaitsevat hetken huomiota. Kaksisataa viisikymmentäkuusi bittiä mahdollistavat kaksi potenssiin kaksisataaviisikymmentäkuusi erilaista arvoa: luku, jossa on seitsemänkymmentäkahdeksan desimaalinumeroa, useita kertaluokkia suurempi kuin arvioitu atomien määrä havaittavassa maailmankaikkeudessa. Jokainen maailman teksti — jokainen kirja, jokainen sähköposti, jokainen viesti — osuu yhteen näistä arvoista. Todennäköisyys sille, että kaksi eri tekstiä osuisivat sattumalta samaan, on käytännön tarkoituksiin nolla.

## Miltä se näyttää koodissa

## Miksi kutsumme sitä sinetiksi

Eurooppalaisessa kirjeenvaihdossa 1400-luvulta 1800-luvulle lakka (sinettivaha) sulki kirjeen. Pisara sulatettua vahaa, päälle painettu sinetti, ja kirje jäi merkityksi toistamattomalla tavalla. Se ei suojannut sisältöä päättäväiseltä urkkijalta — paperia voitiin lukea valoa vasten, lakka voitiin murtaa — mutta se osoitti sisällön. Mikä tahansa sulkemisen muutos oli vastaanottajan nähtävissä jo ennen paperin avaamista. Lakka ei estänyt vahinkoa; se julisti sen.

Kunkin Cuadernon rungon SHA-256 täyttää saman tehtävän digitaalisessa versiossaan. Jos artikkelin yksikin sana muuttuisi julkaisuhetken ja lukuhetkesi välillä, tekstin alalaidassa oleva heksadesimaalisinetti ei enää vastaisi edessäsi olevan tekstin SHA-256-tiivistettä. Kuka tahansa lukija voisi tarkistaa sen viidellä koodirivillä. Julkaisu ei voi kirjoittaa historiaansa uudelleen ilman, että sinetti paljastaa sen. Se ei suojaa vahingolta; se tekee siitä todennettavan.

## Mitä hash ei ole

SHA-256:lta odotetaan joskus neljää käyttötapaa, jotka eivät sille kuulu:

1. Salaaminen. Hash tiivistää; se ei piilota. Jos haluat, ettei teksti ole luettavissa, sinun on salattava se, ei hashattava.
2. Kirjoittajan todentaminen. Hash ei kerro, kuka tekstin on kirjoittanut, vaan ainoastaan, mikä teksti on hashattu. Kirjoittajuuden yhdistämiseksi tarvitaan kryptografinen allekirjoitus hashin päälle, ei pelkkää hashia.
3. Salasanojen tallentaminen. Tässä on ansa, joka on syytä ymmärtää. SHA-256 on suunniteltu erittäin nopeaksi — mikä on hyvä moniin asioihin, mutta huono tähän. Hyökkääjä erikoistuneella laitteistolla voi kokeilla miljardeja salasanoja sekunnissa SHA-256-hashia vastaan, kunnes löytää sinun salasanasi. Salasanojen tallentamiseen on käytettävä tarkoituksella hitaita avaimenjohdannaisfunktioita (Key Derivation Functions), kuten Argon2, scrypt tai bcrypt, yhdistettynä *suolaan* (yksilöllinen satunnainen tieto käyttäjää kohden, joka estää kahta samaa salasanaa käyttävää henkilöä saamasta samaa hashia).
4. Hashin lukeminen kirjoittajan tunnisteena. Se ei ole sitä. Hash tunnistaa sisällön. Jos kaksi ihmistä hashaa sanan *hola* (hei) SHA-256:lla, molemmat saavat saman tiivisteen — ja se on keskeinen ominaisuus, ei vika: jos ne olisivat eri tiivisteitä, emme voisi tarkistaa julkaistun ja vastaanotetun vastaavuutta.

## Missä SHA-256 esiintyy arjessasi

Vaikka et näe sitä, SHA-256 tukee suurta osaa siitä, mitä käytät päivittäin internetissä. Bitcoinin lohkoketju rakentuu ketjuttamalla kunkin lohkon SHA-256 seuraavaan; menneen lohkon muuttaminen pakottaa laskemaan koko seuraavan ketjun uudelleen. Git, järjestelmä, jolla puolet maailman koodista versioidaan, tunnistaa jokaisen commitin sen täyden sisällön SHA-256-tiivisteellä (uusissa versioissa) tai sen edeltäjällä SHA-1:llä (vanhemmissa versioissa). HTTPS-varmenteilla, jotka todentavat verkkosivuston identiteetin sinne mennessäsi, on mukanaan SHA-256-sormenjälki. Ohjelmistolatausten mukana on usein kehittäjän julkaisema SHA-256, jotta voit tarkistaa, ettei tiedostoa ole muutettu matkan varrella. Ja kuten sanoimme, kunkin Cuaderno Lacren alalaidassa.

## Ammattilaislukijalle

Neljä operatiivista muistutusta niille, jotka päättävät järjestelmistä tai auditoivat niitä:

1. Hash ei ole salausta. Jos toimittaja sekoittaa nämä kaksi termiä teknisessä dokumentaatiossaan, on syytä kysyä, mitä hän tarkalleen ottaen tarkoittaa.
2. Salasanojen tallentamiseen ei saa koskaan käyttää pelkkää SHA-256:ta. SHA-256 on liian nopea tähän tehtävään (katso kohta 3 kohdassa *Mitä hash ei ole*). Nykyinen standardi on Argon2id: suunnittelultaan hidas, konfiguroitavissa palvelimen kapasiteetin mukaan, yhdistettynä yksilölliseen satunnaiseen *suolaan* käyttäjää kohden.
3. Asiakirjojen — sopimusten, asiakirja-aineistojen, tiedostojen — eheydelle SHA-256 on edelleen viitestandardi. Sitä käyttävät EU:n pätevöidyt aikaleimapalvelun tarjoajat.
4. Pitkäaikaiseen säilytykseen (vuosikymmenet) kannattaa laskea ja arkistoida myös SHA-3 tai SHA-512 SHA-256:n rinnalle; kryptografinen varovaisuus suosittelee olemaan turvautumatta vain yhteen funktioon vuosisataisessa arkistoinnissa.

Kuvittele, että olet rakentanut maailman monimutkaisimman dominoradan: tuhansia palikoita, kymmeniä haaroja, mekaanisia siltoja ja ramppeja, jotka risteilevät huoneen halki, huolellisesti aseteltuina palikka palikalta.

Jos napautat ensimmäistä palikkaa, ketju kaatuu täsmällisessä ja toistettavassa järjestyksessä. Sama asennus, sama aloitusnapautus → identtinen loppukuvio kaatuneista palikoista, kerta toisensa jälkeen.

Tässä on mielenkiintoinen seikka: siirrä yhtä ainoaa palikkaa puoli senttimetriä sivulle ennen aloitusta ja napauta uudelleen. Ramppi, jonka piti aktivoitua, jää liikkumattomaksi, silta ei putoa, eri haara laukeaa. Lopullinen palikkakuvio lattialla on täysin tunnistamaton verrattuna ensimmäiseen.

SHA-256 on matemaattisesti tämä rata. Kirjoittamasi teksti on palikoiden alkuasento. Algoritmi on napautus, joka vapauttaa ketjureaktion. Ja lopputulos — jota kutsumme nimellä *hash* — on lattiasta otettu pysäytyskuva, kun kaikki on pysähtynyt. Muuta yksi ainoa pilkku alkuperäisessä tekstissä, ja kuva on radikaalisti erilainen. Niin yksinkertaista ja niin dramaattista.

---

*Jos palaat tämän artikkelin alalaitaan, näet kuudenkymmenenneljän merkin heksadesimaalisinetin. Se on juuri lukemasi tekstin SHA-256-tiiviste tällä kielellä. Jos kääntäisimme artikkelin, sinetti olisi toinen; jos suomenkielisessä versiossa muuttuisi yksi sana, suomalainen sinetti muuttuisi. Sinetti ei suojaa sisältöä — sitä varten on muita työkaluja — vaan tunnistaa sen yksiselitteisesti. Ja se, vaikka se kuulostaakin vaatimattomalta, riittää siihen, ettei mikään toimitusketjun vaihe voi muuttaa sanottua ilman, että se huomataan. Kaikki muu — salaaminen, allekirjoittaminen, tunnistaminen — rakentuu tämän yksinkertaisen idean päälle.*

## Lähteet ja lisälukemista

- NIST — *FIPS PUB 180-4: Secure Hash Standard (SHS)*, elokuu 2015. SHA-2-perheen virallinen määrittely, mukaan lukien SHA-256.
- RFC 6234 — *US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)*, IETF, toukokuu 2011. Normatiivinen versio toteuttajille.
- Ferguson, N.; Schneier, B.; Kohno, T. — *Cryptography Engineering: Design Principles and Practical Applications* (Wiley, 2010). Luvut 5 ja 6 käsittelevät hash-funktioita sekä niiden oikeutettua ja oikeudetonta käyttöä.
- Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Käytännön esimerkki SHA-256:n käytöstä lohkojen ketjuttamiseen rakenteessa, joka on muuttumaton jo rakenteeltaan.
- Asetus (EU) 910/2014 (eIDAS) — pätevöityjen aikaleimojen kehys. SHA-256 on viitefunktio EU:ssa myönnettäville pätevöidyille sähköisille allekirjoituksille ja sineteille.
- Viitetoteutus Zigillä: std.crypto.hash.sha2.Sha256 kielen virallisessa arkistossa (*github.com/ziglang/zig* → lib/std/crypto/sha2.zig). Se on optimoitu ja auditoitu versio, jota Solo2 itse asiassa käyttää. Hyödyllinen vertailukohta liitteen didaktiselle toteutukselle.

---

*Cuadernos Lacre · Menzuri Gestión S.L. -julkaisu · kirjoittanut R.Eugenio · toimittanut Solo2-tiimi.*
*https://solo2.net/fi/muistikirjat/*
