Skip to main content

Što je funkcija kriptografskog djelovanja?

3-Programiranje u C FER (Lipanj 2026)

3-Programiranje u C FER (Lipanj 2026)
Anonim

Kriptografska hash funkcija je algoritam koji se može izvoditi na podacima kao što su pojedinačna datoteka ili lozinka za izradu vrijednosti zove checksum.

Glavna upotreba kriptografske hashe funkcije je provjeriti vjerodostojnost dijela podataka. Dvije se datoteke mogu pretpostaviti da su identične samo ako su kontrolni zbrojevi generirani iz svake datoteke, koristeći istu funkciju kriptografske hashe, identični.

Neke često korištene kriptografske hashe funkcije uključuju MD5 i SHA-1, iako mnogi drugi također postoje.

Cryptographic hash funkcije često se nazivaju "hash funkcije", ali to nije tehnički ispravno. Hash funkcija je generički pojam koji obuhvaća kriptografske funkcije hash zajedno s drugim vrstama algoritama kao što su cikličke redundantne provjere.

Kriptofunkcijske funkcije: slučaj upotrebe

Recimo da preuzmete najnoviju verziju Firefox preglednika. Iz nekog razloga trebali biste je preuzeti s web-mjesta koja nisu Mozilla-ina. Budući da se ne hostira na web mjestu koje ste naučili pouzdati, željeli biste provjeriti je li instalacijska datoteka koju ste upravo preuzeli točno jednaka onoj koju nudi Mozilla.

Pomoću kalkulatora za provjeru zbroja provjera pomoću određene kriptografske hash funkcije, kao što je SHA-2, a zatim usporedite s onom objavljenom na Mozillinu web mjestu. Ako su ravnopravni, možete biti razumno sigurni da je preuzimanje koju imate jest onaj koji je Mozilla trebala imati.

Može li se funkcije kriptografske uklanjanja preokrenuti?

Kriptografske hash funkcije su dizajnirane kako bi spriječile sposobnost preokretanja čekova koje stvaraju natrag u izvorne tekstove. Međutim, iako je gotovo nemoguće preokrenuti, oni nisu 100 posto zajamčeni za zaštitu podataka.

Hakeri mogu koristiti dugačak tablicu kako bi otkrili običan tekst čeka.

Dnevni stolovi su rječnici koji bilježe tisuće, milijune ili čak milijarde kontrolnih zbrojova uz njihovu odgovarajuću vrijednost teksta.

Iako ovo tehnički ne preokreće kriptografski hash algoritam, to bi moglo biti dobro, budući da je tako jednostavna za napraviti. U stvarnosti, budući da stolovi duga ne mogu popisati sve moguće checksumove koji postoje, obično su korisni samo za jednostavne fraze kao slabe lozinke.

Evo pojednostavljene verzije duga tablice kako biste pokazali kako će se raditi pri upotrebi SHA-1 kriptografske hashe funkcije:

cistiSHA-1 kontrolni zbroj
123458cb2237d0679ca88db6464eac60da96345513964
password1e38ad214943daad1d64c102faec29de4afe9da3d
volim svog psaa25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Haker mora znati koji je kriptografski hash algoritam upotrijebljen za generiranje checksumova kako bi se utvrdile vrijednosti.

Za dodatnu zaštitu, neke web stranice koje pohranjuju korisničke lozinke obavljaju dodatne funkcije na kriptografskom hash algoritmu nakon generiranja vrijednosti, ali prije nego što se pohranjuju. Ovaj proces stvara novu vrijednost koju samo web poslužitelj razumije i koji ne odgovara izvornom kontrolnom iznosu.

Na primjer, nakon unošenja lozinke i generiranja kontrolnog zbroja, ona se može razdvojiti na nekoliko dijelova i preurediti prije nego što se pohrani u bazu podataka lozinke ili se neki znakovi mogu zamijeniti s drugima. Prilikom pokušaja autentifikacije sljedeći put kada se korisnik prijavljuje, web poslužitelj preokreće tu dodatnu funkciju, a izvorni kontrolni zbroj ponovno se generira kako bi provjerio je li korisnička lozinka valjana.

Poduzimanje ovih koraka ograničava korisnost hakiranja gdje su svi kontrolni brojevi ukradeni. Ideja je izvršiti funkciju koja je nepoznata, pa ako haker zna kriptografski hash algoritam, ali ne i prilagođeni, onda poznavanje lozinke checksumova nije korisno.

Lozinke i kriptografske funkcije

Baza podataka sprema korisničke lozinke na način sličan dugačkoj tablici. Kada unesete zaporku, generirat će se kontrolni zbroj i uspoređivati ​​s onom na snimci s korisničkim imenom. Tada ćete dobiti pristup ako su dva identična.

S obzirom da kriptografska hash funkcija proizvodi nepovratan kontrolni zbroj, je li sigurno da lozinka bude jednostavna kao 12345, umjesto 12@34$5, jednostavno zato što se kontrolni zbrojevi ne mogu razumjeti? Ne, i evo zašto.

Ove dvije lozinke mogu se jednostavno dešifrirati samo gledanjem samo na kontrolne vrijednosti:

MD5 za 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 za 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Na prvi pogled, možda mislite da je u redu koristiti bilo koju od tih lozinki. To vrijedi ako je napadač pokušao shvatiti vašu lozinku pretpostavljajući kontrolni zbroj MD5, koji nitko ne čini, ali nije istina ako se provodi silan ili rječnik napada, što je uobičajena taktika.

Brutalni napad napada događa se kada se uzme više slučajnih uboda na nagađanje zaporke. U ovom slučaju, bilo bi lako pogoditi 12345, ali prilično je teško slučajno odrediti drugu. Napad rječnik je sličan po tome što napadač može isprobati svaku riječ, broj ili izraz s popisa uobičajenih (i ne tako čestih) lozinki i12345 je jedna od onih uobičajenih zaporki.

Iako kriptografske hashe funkcije stvaraju čekove s teškoćama koje se ne mogu predvidjeti, trebali biste i dalje koristiti složenu lozinku za sve svoje online i lokalne korisničke račune.

Više informacija o kriptografskim funkcijama

Moglo bi se činiti da su kriptografske hashe funkcije povezane s enkripcijom, ali ova dva rada rade na različite načine.

Šifriranje je dvosmjerni proces u kojem se nešto šifrira kako bi postalo nečitljivo, a potom se kasnije dešifrira kako bi se ponovno upotrijebili normalno. Možda ćete šifrirati datoteke koje ste pohranili tako da svatko tko ih pristupi ne može ih koristiti ili možete koristiti šifriranje prijenosa datoteka za šifriranje datoteka koje se kreću putem mreže, poput onih koje prenesete ili preuzimate na mreži.

Kritičke hashe funkcije rade drugačije, jer se kontrolni zbrojevi ne trebaju preokrenuti posebnom lozinkom za dehashing. Jedina svrha kriptografske hash funkcije služi za usporedbu dva dijela podataka, kao što su preuzimanje datoteka, pohranjivanje lozinki i povlačenje podataka iz baze podataka.

Moguće je da kriptografska hash funkcija proizvodi isti kontrolni zbroj za različite dijelove podataka. Kada se to dogodi, zove se sudar, što je ogroman problem s obzirom na cijelu točku kriptografske hashe funkcije, da unese jedinstvene kontrolne vrijednosti za svaki unos podataka u nju.

Do sudara može doći jer svaka kriptografska hash funkcija proizvodi vrijednost fiksne duljine bez obzira na ulazne podatke. Na primjer, kriptografska hash funkcija MD5 generira 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 i e10adc3949ba59abbe56e057f20f883e za tri potpuno različite blokove podataka.

Prvi provjera iznosi od 12345, Drugi je generiran s više od 700 slova i brojeva, a treći je iz 123456.

Sva tri ulaza imaju različite duljine, ali rezultati su uvijek dužni samo 32 znaka, budući da je MD5 kontrolni broj korišten.

Nema ograničenja broja čekova koji bi mogli biti stvoreni jer svaka malena promjena u ulazu trebao proizvesti sasvim drugačiji kontrolni zbroj. Budući da postoji ograničenje broja čekova koji jedan kriptografski hash funkcija može proizvesti, uvijek postoji mogućnost da ćete naići na sudar.

Zato su stvorene druge kriptografske hash funkcije. Dok MD5 generira vrijednost od 32 znaka, SHA-1 generira 40 znakova, a SHA-2 (512) generira 128. Što je veći broj znakova koji ima checksum, to je manje vjerojatno da će doći do sudara.