Mitä hajautukset ovat?

Hajautukset ovat matemaattisia kaavoja, jotka ottavat jonon eri pituisia tietoja, yleensä tekstimuodossa, ja muuntavat ne lyhyemmiksi, kiinteäpituisiksi numeerisiksi arvoiksi. Hajautuksia käytetään usein tietokannoissa, jotta haut nopeutuisivat ja tehostuisivat. Niitä käytetään myös salauksessa sen varmistamiseksi, että salasanat eivät vaarannu, ja muun muassa digitaalisten allekirjoitusten todentamiseen. Hajautukset käyttävät myös tiivistefunktioiden nimeä, ja niitä voidaan pitää myös algoritmeina.

Hajautuksilla on suuri rooli tietokantahaun helpottamisessa. Jos esimerkiksi nimistä koostuvassa tietokannassa käyttäjä tekee haun “John Doe”, tietokoneen on vastattava haun kaikkia merkkejä jokaisen tietokannan merkintään. Jokaisella nimen merkillä olisi 26 erilaista mahdollisuutta – englanninkielisen aakkosten kirjaimet – ja merkintöjen vaihteleva pituus hidastaisi myös hakua.

Sitä vastoin hajautustoiminnon käyttäminen helpottaisi tietokoneen elämää huomattavasti. Kunkin tekstimerkkijonon muuttaminen numerosarjaksi yksinkertaistaisi hakua, koska tietokoneella olisi vain kymmenen mahdollisuutta tarkistaa jokainen merkki: numerot “0” – “9.” Numerosarjan kiinteä pituus auttaa myös tietokonetta tekemään tehtävänsä tehokkaammin.

Tietokannassa, jossa on käytössä hash -toiminto, kaikilla merkinnöillä on vastaava yksilöllinen numero. Tätä kutsutaan hajautusavaimeksi. Tässä tapauksessa, kun teet haun, tietokone käyttää ensin tiivistefunktiota kirjoittamaasi syötteeseen, kuten “John Doe”. Tuloksena on numeerinen arvo, esimerkiksi “456789.” Tietokone voi tällöin nopeasti yhdistää tämän tuloksen oikeaa merkintää vastaavaan tiivisteavaimeen.

Hajautukset toimivat myös digitaalisina allekirjoituksina. Esimerkiksi lähettäjä Robert haluaa lähettää asiakirjan jollekin ja vastaanottaja Mary haluaa varmistaa, ettei asiakirjaa ole peukaloitu matkan aikana. Lähettäjän Robertin on suoritettava asiakirja vain tiivistefunktion kautta, mikä johtaa numeeriseen arvoon. Tämän jälkeen Robert salaa hajautusavaimen ja lähettää asiakirjan salatun avaimen mukana.

Mary vastaanottaa molemmat kohteet ja purkaa hajautusavaimen salauksen. Hän näkee nyt asiakirjan numeerisen arvon ennen sen lähettämistä. Varmistaakseen, että hänen käsissään oleva asiakirja on täsmälleen sama, hän suorittaa asiakirjan tietokoneen hajautustoiminnon avulla. Lopuksi hän vertaa molempia avaimia. Jos ne ovat samat, asiakirjaa ei muutettu matkalla vastaanottajalle.

On olemassa monia erilaisia ​​hash -toimintoja, joista jokaisella on omat matemaattiset kaavansa. Jotta tiivistefunktio toimisi, sen on minimoitava mahdolliset törmäykset, jotka tapahtuvat, kun kahdella tietokantamerkinnällä on sama tiivisteavain. Hash-toimintojen on myös oltava yksisuuntaisia. Tämä tarkoittaa, että voit tuottaa avaimen tietokannan merkinnästä tai asiakirjasta, mutta et toisinpäin. Toisin sanoen, et voi “kääntää” alkuperäistä asiakirjaa sen tiivisteavaimella.