Kriptografska Hash funkcija

Kriptografska opredelitev funkcije Hash

Kriptografska razpršilna funkcija je nekakšen algoritem, ki se lahko izvaja na posameznem podatku, kot je posamezna datoteka ali geslo, da bi ustvarili vrednost, imenovano kontrolna vsota.

Glavna uporaba kriptografske razpršilne funkcije je preverjanje pristnosti kosov podatkov. Dve datoteki sta lahko enaki samo, če so kontrolna vsota, ki je bila ustvarjena iz vsake datoteke, z isto kriptografsko razpršilno funkcijo, enaka.

Nekatere pogosto uporabljane kriptografske funkcije hašiša vključujejo MD5 in SHA-1 , čeprav obstajajo tudi številne druge.

Opomba: Funkcije kriptografskega razprševanja se pogosto imenujejo kratkoročne funkcije , vendar to tehnično ni pravilno. Funkcija hash je bolj generičen izraz, ki se navadno uporablja za zajemanje kriptografskih funkcij hašiša skupaj z drugimi vrstami algoritmov, kot so preverjanja ciklične redundance.

Kriptografske funkcije Hash: primer uporabe

Recimo, da prenesete najnovejšo različico brskalnika Firefox . Iz kakršnega koli razloga ste ga morali prenesti s spletnega mesta, ki ni Mozilla. Če niste gostili na mestu, na katerem ste se naučili zaupati, bi se radi prepričali, da je namestitvena datoteka, ki ste jo pravkar prenesli, popolnoma enaka, kar ponuja Mozilla.

Z uporabo kalkulatorja kontrolne vsote izračunate kontrolno vsoto s posebno kriptografsko funkcijo (recimo SHA-2) in jo primerjate s tistim, objavljenim na spletnem mestu Mozilla.

Če so enaki, potem ste lahko razumno prepričani, da je prenos, ki ga imate, namenjen tistemu, ki ste ga želeli imeti.

Glejte Kaj je preverjanje? za več o teh posebnih kalkulatorjih, plus več primerov uporabe kontrolnih vsot, da zagotovite, da datoteke, ki jih prenesete, resnično tisto, kar ste pričakovali.

Ali se lahko kriptografske funkcije Hash preusmerijo?

Funkcije šifriranja kriptografije so zasnovane tako, da preprečujejo možnost, da se povratne kontrolne opombe, ki jih ustvarjajo nazaj, spremenijo v izvirna besedila.

Kljub temu, da je praktično nemogoče obrniti, to ne pomeni, da so 100% zagotovljene za zaščito podatkov.

Nekaj, ki se imenuje mavrična miza, se lahko uporabi za hitro odkrivanje navadnega besedila kontrolne vsote. Mavrične mize so v bistvu slovarji, ki naštevajo tisoče, milijone ali celo milijarde skupaj z njihovo ustrezno vrednostjo navadnega besedila.

Medtem ko to tehnično ne spremeni kriptografskega algoritma za haše, bi lahko bilo tako, saj je tako preprosto storiti. V resnici, saj nobena mavrična miza ne more navajati vseh možnih kontrolnih vsot, ki so obstajala, so običajno le "v pomoč" za preproste fraze ... kot šibka gesla.

Tukaj je poenostavljena različica mavrične mize, da bi pokazali, kako bi deloval pri uporabi SHA-1 kriptografske razpršilne funkcije:

Golo besedilo Preglednica SHA-1
12345 8cb2237d0679ca88db6464eac60da96345513964
geslo1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemidog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Za te vrednosti, ki jih je treba ugotoviti z uporabo kontrolne vsote, bi morali vedeti, da heker razume, kateri kriptografski algoritem je bil uporabljen za njihovo generiranje.

Za dodatno zaščito nekatere spletne strani, ki shranjujejo uporabniška gesla, izvajajo dodatne funkcije za algoritem šifriranja kriptografije po ustvarjanju vrednosti, vendar preden so shranjene.

To ustvari novo vrednost, ki jo razume samo spletni strežnik in se ne ujema natančno s prvotno kontrolno vsoto.

Po vnosu gesla in ustvarjanju kontrolne vsote je na primer mogoče ločeno razdeliti na več delov in preurediti, preden se shrani v bazo gesel, ali pa se lahko nekateri znaki zamenjajo z drugimi. Ko uporabnik poskuša preveriti pristnost, ko se naslednjič vklopi, bo ta dodatna funkcija nato obrnil spletni strežnik in prvotno preverjanje, ki je nastalo znova, da preveri, ali je uporabniško geslo veljavno.

S tem se zmanjša uporabnost kramlja, kjer so ukradene vse kontrolne vsote.

Ponovno je ideja, da izvedemo funkcijo, ki je neznana, tako da če hacker pozna algoritem šifriranja kriptografije, vendar ne ta po meri, potem poznavanje preverjanja gesla ni koristno.

Gesla in kriptografske funkcije Hash

Podobno kot mavrična tabela je, kako baza podatkov shrani uporabniška gesla. Ko vnesete geslo, se generira kontrolna vsota in primerja s tistim, ki je vpisano z uporabniškim imenom. Nato vam omogoči dostop, če sta obe enaki.

Glede na to, da kriptografska razpršilna funkcija povzroči nepopravljivo kontrolno vsoto, ali to pomeni, da lahko svoje geslo preprosto nastavite na 12345 , namesto na 12 @ 34 $ 5 , preprosto zato, ker samih preverjanj ni mogoče razumeti? Definitivno ne, in tukaj je ...

Kot vidite, ta dva gesla sta nemogoča za dešifriranje tako, da gledata samo na kontrolno vsoto:

MD5 za 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Torej, na prvi pogled lahko mislite, da je popolnoma v redu, če uporabite katero od teh gesel. To je vsekakor res, če je napadalec poskušal ugotoviti vaše geslo z uganjanjem kontrolne vsote MD5 (kar nihče ne dela), vendar to ni res, če se izvaja napad z brutalno silo ali slovar (ki je običajna taktika).

Napad sile z močjo je, ko se pri uganjanju gesla vzame več naključnih izboklin. V tem primeru bi bilo zlahka uganiti "12345", vendar je zelo težko naključno ugotoviti drugo. Napad v slovarju je podoben, ker lahko napadalec vsake besede, številko ali frazo preskusi s seznama pogostih (in manj pogosto uporabljenih) gesel, kar je definitivno "12345", ki bi ga lahko preizkusili.

Torej, čeprav kriptografski hash funkcije težko nemogoče, da bi presodili kontrolne vsote, bi morali še vedno uporabljati zapleteno geslo za vse vaše spletne in lokalne uporabniške račune.

Namig: Oglejte si primere slabih in močnih gesel, če niste prepričani, ali je vaše mnenje močno geslo.

Več informacij o funkcijah šifriranja kriptografije

Morda se zdi, da so šifrirni hash funkcije povezane s šifriranjem, vendar obe delata na zelo različne načine.

Šifriranje je dvosmerni proces, kjer je nekaj šifrirano, da postane neberljivo, nato pa se kasneje ponovno dešifrira. Lahko šifrirate datoteke, ki ste jih shranili , da jih ne bo mogel uporabljati vsi, ki jih dostopajo, ali pa lahko šifrirate prenos datotek za šifriranje datotek, ki se premikajo prek omrežja, kot so tisti, ki jih naložite ali prenesete na spletu.

Kot je opisano zgoraj, kriptografske funkcije hašenja delujejo drugače, ker se ne sme zamenjati s kontrolnim gumba s posebnim geslom za odstranjevanje, kot je to, kako se šifrirane datoteke berejo s posebnim geslom za dešifriranje. Edini namen kriptografskih funkcij razprševanja je primerjava dveh podatkov, na primer pri prenosu datotek, shranjevanju gesel, vlečenju podatkov iz baze podatkov itd.

Možno je, da kriptografska funkcija hašiša ustvari isto kontrolno točko za različne podatke. Ko se to zgodi, se imenuje trk. Jasno je, da je to ogromen problem, glede na to, da je celotna točka kriptografske funkcije haša, da naredimo povsem enkratne kontrolne vsote za vse vnesene podatke vanj.

Razlogi trkanja se lahko pojavijo, ker vsaka kriptografska razpršena funkcija proizvede vrednost fiksne dolžine, ne glede na vhodne podatke. Na primer, kriptografska funkcija MD5 generira 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 in e10adc3949ba59abbe56e057f20f883e za tri popolnoma drugačne blokade podatkov.

Prva kontrolna vsota je od 12345 , druga pa je ustvarjena z več kot 700 črkami in številkami, tretja pa s 123456 . Vsi trije vhodi so različne dolžine, rezultati pa so vedno oddaljeni le 32 znakov od uporabe MD5.

Kot lahko vidite, praktično ni omejitve števila kontrolnih vsot, ki bi jih bilo mogoče ustvariti, saj naj bi vsaka majhna sprememba vnosa povzročila popolnoma drugačno kontrolno vsoto. Vendar, ker obstaja omejitev števila kontrolnih vsot, ki lahko povzroči kriptografsko razpršilno funkcijo, obstaja vedno možnost, da boste naleteli na trk.

Zato so bile ustvarjene druge kriptografske funkcije. Medtem ko MD5 ustvari vrednost 32 znakov, SHA-1 ustvari 40 znakov in SHA-2 (512) ustvari 128. Večje število znakov, ki jih ima kontrolna vsota, manj verjetno bo trk, ker zagotavlja več prostora edinstvene vrednosti.