Kryptografia

Mitä ovat hajautusfunktiot (hash) ja mihin niitä käytetään?

Helppo
15 min

Mitä ovat hajautusfunktiot?

Hajautusfunktiot, tai tässä kontekstissa niitä voidaan kutsua myös nimellä kryptografiset tiivisteet, tunnetaan myös englanninkielisellä termillä "hash functions", ovat digitaalisen turvallisuuden kulmakiviä. Ne mahdollistavat datan muuttamisen yksilölliseksi, kiinteän mittaiseksi bittijonoksi, tarjoten siten luotettavan välineen tiedon eheyden varmistamiseen, salasanojen suojaamiseen ja digitaalisen allekirjoituksen toteuttamiseen. Käsitellään syvemmin kryptografisten tiivisteiden ominaisuuksia ja sovelluksia.

Kryptografisten tiivisteiden ominaisuudet

Kryptografiset tiivisteet perustuvat neljään perusperiaatteeseen:

  • Yksisuuntaisuus (pre-image resistance): Kun yksisuuntaisuus toimii hyvin, tiivisteen laskeminen syötteestä on helppoa, mutta tiivisteen perusteella alkuperäisen syötteen palauttaminen on käytännössä mahdotonta. Tämä ominaisuus suojaa tietoa paljastumiselta, vaikka tiiviste joutuisikin ulkopuolisten käsiin.
  • Törmäysresistanssi (collision resistance): Kun törmäysresistanssi on hyvä, on äärimmäisen epätodennäköistä, että kaksi erilaista syötettä tuottaisivat saman tiivisteen. Tämä ominaisuus on keskeinen, sillä se estää hyökkääjiä luomasta toista dokumenttia, joka tuottaisi saman tiivisteen kuin alkuperäinen dokumentti.
  • Lumivyöryefekti (avalanche effect): Pienenkin muutoksen tekeminen syötteeseen (esim. yhden bitin muuttaminen) pitäisi johtaa täysin erilaiseen tiivisteeseen.
  • Nopeus: Tiivistefunktion tulee olla riittävän nopea laskettavaksi, jotta se voidaan tehokkaasti integroida erilaisiin järjestelmiin ja sovelluksiin. Toisaalta liian nopeasti laskettava tiiviste on myös helpompi murtaa!

Sovellukset

Kryptografiset tiivisteet ovat löytäneet monipuolista käyttöä digitaalisen maailman eri kulmissa:

  • Salasanojen tallennus: Nykyaikaiset järjestelmät tallentavat salasanojen tiivisteitä, ei itse salasanoja. Kun käyttäjä syöttää salasanansa, järjestelmä vertaa sen tiivistettä tallennettuun tiivisteeseen. Tämä menetelmä suojaa käyttäjien salasanoja, jos tietokannan turvallisuus murtuu.
  • Tiedon eheyden varmistaminen (data integrity): Lähettäjä voi luoda tiivisteen tiedostosta ja jakaa sekä tiedoston että tiivisteen. Vastaanottaja voi sitten tarkistaa tiedoston eheyden laskemalla ja vertaamalla tiivistettä. Tämä menetelmä on yleinen ohjelmistojen latauksissa ja päivityksissä.
  • Digitaaliset allekirjoitukset (digital signatures): Digitaaliset allekirjoitukset käyttävät kryptografisia tiivisteitä varmistaakseen viestien aitouden ja eheyden. Allekirjoittaja luo tiivisteen viestistä, salaa sen yksityisellä avaimellaan, ja vastaanottaja voi tarkistaa allekirjoituksen purkamalla sen lähettäjän julkisella avaimella.
  • Blokki-ketjut (blockchains) ja kryptovaluutat: Blokki-ketjuteknologia, joka on esimerkiksi Bitcoinin perustana, käyttää kryptografisia tiivisteitä luodakseen yhteenliitetyt lohkot. Jokainen lohko sisältää edellisen lohkon tiivisteen, mikä luo muuttumattoman ja väärentämättömän lohkoketjun.

Tehtävä

Selvitä, mikä seuraavista ei ole hajautusalgoritmi?

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.