Kriptografska Hash funkcija

Kriptografska definicija Hash funkcije

Kriptografska funkcija hašiša je vrsta algoritma koji se može pokrenuti na komadu podataka, kao pojedinačna datoteka ili lozinka, kako bi se proizvela vrijednost zvana kontrolna suma.

Glavna upotreba kriptografske heš funkcije je da verifikuje autentičnost dela podataka. Dve datoteke mogu biti sigurne da budu identične samo ako su kontrolna suma nastala iz svake datoteke, koristeći istu kriptografsku funkciju hašiša, identična.

Neke od najčešće korišćenih kriptografskih hash funkcija uključuju MD5 i SHA-1 , mada i mnogi drugi postoje.

Napomena: Kriptografske funkcije za haške se često nazivaju kratkim funkcijama , ali to nije tehnički ispravno. Funkcija hash je generički izraz koji se obično koristi za obuhvatanje kriptografskih hash funkcija zajedno sa drugim vrstama algoritama kao što su cikličke redundančne provjere.

Kriptografske funkcije Hash: Korišćeni slučaj

Recimo da preuzmete najnoviju verziju Firefox pretraživača . Zbog bilo kog razloga, trebalo je da ga preuzmete sa lokacije koja nije Mozilla. Ne hostuje na sajtu na kojem ste naučili da verujete, želite se uveriti da je instalaciona datoteka koju ste upravo preuzeli potpuno identična što Mozilla nudi.

Koristeći kalkulator kontrolne sume , izračunate kontrolnu tačku koristeći određenu kriptografsku funkciju hašiša (recite SHA-2), a zatim uporedite to sa onom objavljenom na Mozillinoj web lokaciji.

Ako su jednaki, onda možete biti sasvim sigurni da je preuzimanje kojeg imate Mozilla nameravao da imate.

Pogledajte šta je verzija? Više o ovim specijalnim kalkulatorima, plus više primjera korištenja kontrolnih suma da biste bili sigurni da su datoteke koje ste preuzeli stvarno ono što ste očekivali.

Može li se kriptografske Hash funkcije preokrenuti?

Funkcije kriptografskih hašiša su dizajnirane da spreče mogućnost obrnutih kontrolnih suma koje oni stvaraju nazad u originalne tekstove.

Međutim, iako su praktično nemoguće obrnuti, to ne znači da su 100% garantovane da štite podatke.

Nešto što se zove rainbow sto se može iskoristiti za brzo shvatanje čistog teksta kontrolne sume. Tabele Rainbow-a su u suštini rečnici koji navode hiljade, milione ili čak milijarde zajedno sa odgovarajućom vrijednošću teksta.

Iako to tehnički ne menja algoritam kriptografskog hašiša, to bi moglo i biti, pošto je to tako jednostavno. U stvarnosti, pošto nikakav duljni sto ne može navesti sve moguće kontrolne sveske u postojanju, obično su samo "korisni" za jednostavne fraze ... kao slabe lozinke.

Evo pojednostavljene verzije duginog stola kako bi se pokazalo kako će se raditi kada koristite SHA-1 kriptografsku hašnu funkciju:

Plaintext SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Da bi se ove vrednosti shvatile pomoću kontrolne sume, zahtevalo bi da haker razume koji je kriptografski algoritam haša korišten da bi ih generisao.

Za dodatnu zaštitu, neke web stranice koje čuvaju korisničke lozinke izvršavaju dodatne funkcije u algoritmu kriptografskog hašiša nakon što se generiše vrednost, ali pre nego što je uskladištena.

Ovo stvara novu vrijednost koju samo web server razume i ne poklapa se s originalnom kontrolnom sesijom.

Na primjer, nakon unosa lozinke i generisane kontrolne sume, može se razdvojiti na nekoliko dijelova i preurediti prije nego što je uskladišteno u bazi lozinke, ili se određeni znakovi mogu zamijeniti drugim. Kada korisnik pokuša da se identificira sledeći put kada se uključi, ovu dodatnu funkciju tada biće promenjen od strane web servera i originalne kontrolne sume generisane ponovo, kako bi se potvrdilo da je korisnička lozinka važeća.

Radi to pomaže ograničiti korisnost hack-a gde su ukradene sve kontrolne sume.

Ponovo, ideja ovde je izvršavanje funkcije koja je nepoznata, tako da ako haker zna kriptografski heš algoritam, ali ne ovaj prilagođeni, onda je poznavanje kontrole lozinke nepotrebno.

Lozinke i kriptografske Hash funkcije

Slično kao sto je duge boje, kako baza podataka čuva korisničke lozinke. Kada unesete vašu lozinku, kontrolna suma se generiše i upoređuje sa onom u zapisu sa korisničkim imenom. Tada vam je odobren pristup ako su identični.

S obzirom na to da kriptografska funkcija hašiša proizvodi nepovratnu kontrolnu ocjenu, da li to znači da možete napraviti svoju lozinku jednostavno kao 12345 , umjesto 12 @ 34 $ 5 , jednostavno zato što se same kontrolne sume ne mogu shvatiti? Definitivno ne, i evo zašto ...

Kao što vidite, ove dve lozinke su nemoguće dešifrirati samo gledajući samo na kontrolnu tačku:

MD5 za 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Dakle, na prvi pogled možda mislite da je apsolutno dobro koristiti bilo koju od ovih lozinki. Ovo je definitivno tačno ako napadač pokuša da otkrije vašu lozinku pogađajući kontrolnium MD5 (koji niko ne radi), ali nije istina ako se izvrši brutalna sila ili rečnik napada (što je uobičajena taktika).

Napad brutalne sile je kada se uzimaju više slučajnih uboda u pogađanju lozinke. U ovom slučaju, bilo bi lako lako pogoditi "12345", ali je prilično teško slučajno shvatiti drugu. Napad rečnika sličan je po tome što napadač može isprobati svaku riječ, broj ili frazu sa liste uobičajenih (i manje obično korištenih) lozinki, "12345" definitivno je onaj koji bi se pokušao.

Dakle, iako kriptografske haške funkcije proizvode teško nemoguće - da pretpostavite checkums, i dalje biste trebali koristiti složenu lozinku za sve vaše online i lokalne korisničke naloge.

Savet: Pogledajte primjere slabih i jakih lozinki ako niste sigurni da li se vaša smatra jakom lozinkom.

Više informacija o kriptografskim Hash funkcijama

Izgleda da kriptografske hašne funkcije su povezane sa enkripcijom, ali ova dva dela funkcionišu na veoma različite načine.

Šifriranje je dvosmerni proces u kojem je nešto šifrovano da postane nečitljivo, ali se kasnije dešifruje kasnije i ponovo se koristi. Možete šifrirati datoteke koje ste sačuvali tako da oni koji im pristupe neće biti u mogućnosti da ih koriste, ili možete koristiti šifrovanje prenosa datoteka za šifriranje datoteka koje se kreću preko mreže, poput onih koje učitavate ili preuzimate na mreži.

Kao što je gore opisano, funkcije kriptografskih hašiša funkcionišu drugačije, jer se ne treba smenjivati ​​kontrolnim šumama sa posebnom lozinkom za de-hehing-om, kao što je kako se šifrovane datoteke čitaju sa posebnom lozinkom za dešifrovanje. Jedina svrha kriptografskih hašnih funkcija služi je upoređivanje dva komada podataka, kao što su prilikom preuzimanja datoteka, čuvanja lozinki, povlačenja podataka iz baze podataka itd.

Moguće je da kriptografska hašišna funkcija proizvodi istu kontrolnu tačku za različite podatke. Kada se ovo desi, zove se sudar. Jasno je da je ovo veliki problem, s obzirom da je čitava tačka kriptografske hašne funkcije u potpunosti jedinstvena kontrolna suma za svaki unet podatak u njega.

Razlogi kolizije mogu da se pojave zato što svaka kriptografska hašišna funkcija proizvodi vrednost fiksne dužine bez obzira na ulazne podatke. Na primjer, kriptografska funkcija MD5 generiše 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 , i e10adc3949ba59abbe56e057f20f883e za tri potpuno različita bloka podataka.

Prva kontrolna suma je od 12345 , druga generirana od preko 700 slova i brojeva, a treća je od 123456 . Sva tri ulaza su različitih dužina, ali rezultati su uvijek samo 32 karaktera od kada je korišten MD5.

Kao što vidite, praktično nema ograničenja na broj kontrolnih suma koji se mogu kreirati, s obzirom da svaka mala promjena u ulazu treba da dovede do potpuno drugog kontrolnog suma. Međutim, pošto postoji ograničenje broja kontrolnih suma koje može da proizvede kriptografska hašišna funkcija, uvijek postoji mogućnost da ćete naići na sudar.

Zbog toga su kreirane druge kriptografske funkcije. Dok MD5 generiše vrednost od 32 karaktera, SHA-1 generiše 40 karaktera, a SHA-2 (512) generiše 128. Što je veći broj znakova koje ima kontrolna suma, manja je verovatnoća da će doći do sudara jer daje više prostora za jedinstvene vrednosti.