Mikä on hash-törmäys?
Hash-törmäys tarkoittaa sitä, että kahdesta eri syötteestä syntyy täsmälleen sama hash-tulos. Kuvittele kaksi erilaista avainta, jotka avaavat jotenkin saman digitaalisen lukon. Harvinaista, mutta jos niin käy väärän algoritmin kanssa, luvassa on draamaa.
”Jos yksikin törmäys on mahdollinen, kaikki on rikki.” Ei aivan. Vahvat algoritmit on suunniteltu niin, että käytännössä hash-törmäys on äärimmäisen epätodennäköinen. Nykyaikaisissa järjestelmissä on myös useita suojakerroksia, joten yksittäinen heikkous ei kaada koko taloa.
Näin hash-törmäys toimii
Hashia voi ajatella pienenä tunnisteena suurelle datamäärälle. Tässä lyhyt katsaus siihen, miten syötteestä päädytään tilanteeseen ”hups”.
- Syöte: Lähtökohtana on jokin viesti, tiedosto tai transaktio.
- Hash: Kryptografisten hash-funktioiden ryhmään kuuluva funktio muuntaa syötteen kiinteän pituiseksi merkkijonoksi.
- Törmäys: Koska mahdollisia tuloksia on rajallinen määrä mutta syötteitä loputtomasti, kaksi eri syötettä voi tuottaa saman tuloksen.
- Hyökkäys: Vakava uhka syntyy, jos joku pystyy tarkoituksella laatimaan kaksi eri syötettä, jotka törmäävät, ja vaihtamaan sitten toisen toiseen.
- Suojaus: Hyvät algoritmit tekevät törmäyksen etsimisestä tähtitieteellisen kallista, joten satunnainen arvailu vie aikaa ja rahaa.
Juuri siitä on kyse.
Miksi hash-törmäyksillä on merkitystä?
Miksi tästä matematiikan ja koodin hiljaisesta nurkasta pitäisi välittää?
- Hyöty: Vahva törmäyksenkestävyys pitää datan tunnisteet yksilöllisinä, jolloin vilpille jää vähemmän tilaa.
- Näkökulma: Törmäykset uhkaavat esimerkiksi lohkoketjuteknologian, ohjelmistopäivitysten ja tiedostojen tarkistuksen eheyttä.
- Merkitys: Hash-törmäykset tulevat vastaan lompakoissa, pörsseissä, todisteissa ja auditointityökaluissa, jotka luottavat hash-arvojen yhtäläisyyteen.
Jos vaihtoehto on tarjolla, valitse useita suojakeinoja yhdisteleviä menetelmiä, kuten kaksoishashausta, ja suosi laajasti arvioituja algoritmeja, joiden tulokset ovat pitkiä.
Hash-törmäysten keskeiset ominaisuudet
Mikä tekee tästä ilmiöstä erityisen ja mieleen painamisen arvoisen?
- Väistämätön: Kun tuloksia on rajallinen määrä ja syötteitä rajattomasti, jokin syötepari törmää laatikkoperiaatteen mukaisesti.
- Vaikea: Nykyaikaisissa hash-funktioissa törmäyksen tarkoituksellinen löytäminen on suunniteltu laskennallisesti äärimmäisen raskaaksi.
- Allekirjoitukset: Monissa digitaalisissa allekirjoituksissa allekirjoitetaan hash-arvo, joten törmäyksenkestävyys suojaa allekirjoittajia huijausviesteiltä.
Miten hash-törmäys lasketaan?
Tarvittavaa työmäärää voi arvioida syntymäpäiväparadoksin avulla. Kun hashin pituus on k bittiä, satunnaisten yritysten määrä, jolla on noin 50 prosentin mahdollisuus löytää jokin törmäys, on likimain neliöjuuri luvusta kaksi potenssiin k kerrottuna noin 1,177:llä.
n_fifty_percent ≈ 1.1774 * sqrt(2^k) Esimerkki: kun k on 256, tarvittavien yritysten määrä on käsittämättömän suuri. Siksi törmäyksen etsiminen raakaa voimaa käyttämällä ei ole viikonlopun projekti.
Muunnelmat
Tutkimuksissa ja hyökkäyksissä esiintyy erilaisia muotoja:
- Törmäys: Kahdella eri syötteellä on sama hash.
- Toinen esikuva: Annetusta syötteestä etsitään toinen syöte, jolla on sama hash.
- Esikuva: Annetulle hash-arvolle etsitään mikä tahansa syöte, joka tuottaa sen.
- Etuliite: Valitun etuliitteen törmäyksessä kahdella eri tavalla alkavalla viestillä on sama hash.
SHA-256:lle ei ole tiedossa julkista, käytännössä toteuttamiskelpoista törmäystä. Jos joku väittää sellaisen löytäneensä, odota laajaa vertaisarviointia ja testituloksia ennen kuin panikoit tai juhlit.
Esimerkki
Jos hyökkääjä pystyisi luomaan kaksi eri transaktiota, joilla on sama txid, hän saattaisi yrittää kaksinkertaisen kulutuksen temppua vaihtamalla toisen transaktion toiseen sen jälkeen, kun olet allekirjoittanut sen.
Hauska fakta
MD5-törmäykset osoitettiin vuosikymmeniä sitten, ja SHAttered-projekti tuotti julkisesti SHA-1-törmäyksen kahdella eri PDF-tiedostolla. Se oli näyttävä kannanotto, joka vauhditti algoritmin poistamista käytöstä.
Yhteenveto
Yhden lauseen tiivistelmänä hash-törmäys on harvinainen tilanne, jossa kahdella eri syötteellä on sama digitaalinen sormenjälki. Nykyaikainen kryptografia tekee kovasti töitä, jotta se jäisi pelkäksi nippelitiedoksi.
.