Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Novija izmjena
Starija izmjena
racfor_wiki:razno:hash_funkcije [2022/01/08 15:38]
mterihaj stvoreno
racfor_wiki:razno:hash_funkcije [2024/12/05 12:24] (trenutno)
Redak 1: Redak 1:
 ===== Sažetak ===== ===== Sažetak =====
  
-How do you write an abstract? Identify your purposeYou're writing about a correlation between lack of lunches in schools and poor grades… Explain the problem at hand. Abstracts state the “problem” behind your work. … Explain your methods. … ([[https://www.aje.com/arc/make-great-first-impression-6-tips-writing-strong-abstract/|Source]]) Save your work regularly!!! Describe your results (informative abstract only). … Abstract should be no longer that 400 words. Napomena: sadržaj na vrhu stranice generira se automatski na temelju naslova dokumentu.+Hash funkcije ili funkcije sažetka imaju široku primjenuOmogućavaju nam osigurati autentičnost i integritet podataka prilikom prijenosa kroz nesigurne medijeKako bi se funkcija mogla koristiti sigurnosne svrhe, i kako bi se spriječilo narušavanje sigurnosti, bitno je da zadovoljava neke sigurnosne zahtjeve.
  
-Keywords: abstract; bastract; astract; retract; tractor 
 ===== Uvod ===== ===== Uvod =====
  
-===== Poglavlje 1 =====+Hash funkcija je funkcija koja preslikava ulazni podatak proizvoljne duljine u izlaznu vrijednost, odnosno sažetak ili hash, koji je uvijek fiksne duljine. Ovo preslikavanje je jednosmjerno, odnosno, na temelju izlazne vrijednosti nije moguće odrediti ulaznu vrijednost. Izračunavanje sažetka se izvodi u determinističkom vremenu. Također, prilikom računanja sažetka za istu ulaznu vrijednost, izlazna vrijednost je uvijek ista. Hash vrijednosti se često prikazuju kao niz znakova u heksadekadskoj bazi. Algoritmi i operacije koje koriste te funkcije su javni te ne koriste se ključevi. Činjenica da su javni omogućava i verifikaciju i certifikaciju algoritama.
  
 +===== Primjene =====
  
 +Hash funkcije imaju brojne primjene, navedeno je nekoliko čestih primjena.
  
 +==== Stvaranje i provjera digitalnog potpisa ====
  
 +Digitalni potpis je sigurnosni mehanizam kojim se osigurava autentičnost, integritet i neporecivost potpisanih podataka. Za ostvarenje digitalnog potpisa se koristi asimetrični kriptografski algoritam i hash funkcija. Nad ulaznim podacima se izračunava hash, koji se zatim šifrira privatnim ključem pošiljatelja. Ovime se omogućava da bilo tko provjeri autentičnost i integritet primljenih podataka dešifriranjem šifriranog sažetka i usporedbom s vlastito izračunatim sažetkom.
  
 +==== Provjera integriteta i autentičnosti datoteka ====
  
 +Prilikom prijenosa datoteka kroz razne medije mogući su razni napadi, kao što su presretanje i izmjena podataka, čime je moguće da je originalna datoteka zamijenjena sa zlonamjernom ili lažiranom. Kako bi to spriječili, često je poželjno provjeriti integritet i autentičnost primljenih datoteka, odnosno da li su to stvarno datoteke koje smo htjeli preuzeti. U tu svrhu, strana koja objavljuje ili šalje datoteke često objavljuje i hash od tih datoteka. Taj hash je javno objavljen kako bi bilo tko mogao izvršiti provjeru i uvjeriti se da su datoteke autentične i cjelovite.
  
-===== Poglavlje 2 =====+==== Pohrana i provjera lozinki ====
  
 +Lozinke u sustavima se često pohranjuju u obliku sažetka izračunatog nad stvarnom vrijednošću lozinke. Ovime se onemogućava se pristupom pohranjenim podacima ili u slučaju napada, curenja podataka, sazna stvarna vrijednost lozinke. Provjera lozinke je jednostavna, uspoređuje se spremljena hash vrijednost s izračunatim hashom prilikom prijave.
  
  
-===== Poglavlje 3 =====+===== Sigurnosna svojstva =====
  
-===== Poglavlje ... =====+Za navedene primjene hash funkcija, bitno je da zadovoljavaju određena važna sigurnosna svojstva.
  
 +==== Preimage resistance ====
  
 +Otpornost na izračunavanje ulazne vrijednosti. Ne postoji reverzna funkcija koja će za određeni hash izračunati vrijednost koja je bila ulaz u funkciju.
  
 +==== Second preimage resistance ====
 +
 +Otpornost na izračunavanje ulazne vrijednosti koja ima isti hash kao i neka druga određena vrijednost i hash.
 +
 +==== Collision resistance ====
 +
 +Otpornost na kolizije. Nije moguće pronaći dvije različite vrijednosti koje će dati isti sažetak. Zbog činjenice da je izlaz hash funkcije fiksne duljine, uvijek će postojati više ulaznih vrijednosti koje će davati istu izlaznu vrijednost, stoga su teoretski napadi grubom silom uvijek mogući. Međutim, u praksi, ovo kod većine algoritama nije izvedivo zbog same duljine izlazne vrijednosti.
 +
 +==== Difuzija ====
 +
 +Promjenom jednog bita ulazne vrijednosti dolazi do promjene što više bitova izlazne vrijednosti.
 +Sljedeći primjer ilustrira kako izmjena jednog slova ulaznog niza znakova rezultira kompletno različitim izlazom.
 +
 +<code>
 +s1 = 'Fakultet elektrotehnike i računarstva'
 +s2 = 'Fakultet elektrotehnike i racunarstva'
 +
 +MD5(s1) = 58d75906bddec0577b6b975bc495cc40
 +MD5(s2) = f650f893fca58c8d4cf46d769e8faef7
 +
 +SHA256(s1) = d607158e55d9372b3281db9c1b88493fba064b8cb80e37fd5613c0c4b9309759
 +SHA256(s2) = d5979c790d44a038fae49b7316e60d65ad0a328900aa193819bc5f5c10eed76a
 +</code>
 +
 +
 +===== Poznate funkcije =====
 +
 +Postoje brojne hash funkcije, u nastavku je dan opći pregled nekih najpoznatijih funkcija.
 +
 +==== MD5 ====
 +
 +Message-digest algoritam objavljen 1992. godine. Ulaznu vrijednost dijeli na blokove duljine 512 bitova, a izlazna vrijednost je duljine 128 bitova. MD5 algoritam se smatra nesigurnim i neprikladnim za uporabu u sustavima gdje je bitna sigurnost od 2010. godine jer su otkrivene brojne ranjivosti koje narušavaju sigurnosne zahtjeve. Unatoč tome, i dalje se koristi.
 +
 +==== SHA-1 ====
 +
 +Secure Hash Algorithm 1 je objavila NSA, 1993. godine. Ulazna vrijednost se dijeli na blokove duljine 512 bitova, a izlazna vrijednost je duljine 160 bitova. Ovaj algoritam, od 2005. godine, se također smatra nesigurnim i neprikladnim za uporabu u svrhu ostvarenja digitalnih potpisa.
 +
 +==== SHA-2 ====
 +
 +Secure Hash Algorithm 2 je skup algoritama koje je objavila NSA, 2001. godine. Ovisno o algoritmu, izlaz je duljine 224, 256, 384 ili 512 bitova (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256). SHA-2 se i danas smatra sigurnim skupom algoritama.
 +
 +==== SHA-3 ====
 +
 +Secure Hash Algorithm 3 je skup algoritama koje je objavio NIST, 2015. godine. Ovaj set algoritama koristi značajno drugačiji pristup za izračunavanje hash vrijednosti koji im dozvoljava da izlaz bude proizvoljne duljine. SHA-3 se također smatra sigurnim.
 +
 +
 +===== Napadi =====
 +
 +==== Collision attack ====
 +
 +Cilj napada kolizijom je pronaći dvije ulazne vrijednosti koje daju istu hash vrijednost. Općenito se smatra kada se pronađe napad kolizijom na određenu hash funkciju koji ima manju složenost od rođendanskog napada, da se ta funkcija smatra nesigurnom i neprikladnom za primjenu. Za MD5 napad kolizijom je moguće izvesti unutar nekoliko sekundi čak od 2007. godine na prosječnom računalu.
 +
 +==== Preimage attack ====
 +
 +Napad na izračun ulazne vrijednosti su značajno teži za izvesti nego napadi na koliziju. Nekoliko ovakvih napada je do sada pronađeno za poznatije funkcije, ali oni nisu praktično izvedivi.
 +
 +==== Birthday attack ====
 +
 +Prema teoriji vjerojatnosti, vjerojatnost da 2 osobe iz skupa od n osoba imaju rođendan na isti dan može se izračunati prema sljedećoj formuli
 +{{:racfor_wiki:razno:birthday_probability.png?nolink&150|}}
 +
 +Ako u prethodnoj formuli zamijenimo d s brojem mogućih vrijednosti, 365, a n s brojem osoba, 23, dobije se rezultat od približno 50.73%. Ovaj rezultat može biti dosta neintuitivan, jer sa značajno malim brojem osoba u skupu se postiže prilično velika vjerojatnost. Poopći li se ovaj pristup na hash funkcije, gdje d predstavlja duljinu izlazne vrijednosti u bitovima, a n broj ulaza, vidljivo je da je primjenom rođendanskog napada, moguće pronaći koliziju u značajno manjoj složenosti nego što bi bio opći napad grubom silom.
 +
 +==== Brute-force attack ====
 +
 +Najprimitivniji napad na bilo kakav kriptosustav je napad grubom silom. Protiv ovog napada teorijski se nije moguće obraniti ako se vrijeme napada smatra neograničeno. U stvarnosti ovakav napad je često onemogućen samom duljinom izlazne vrijednosti hash funkcije, jer upravo to određuje složenost ovakvog napada.
 +
 +==== Rainbow table ====
 +
 +Ova vrsta napada nastoji smanjiti vrijeme potrebno za pronalazak ulazne vrijednosti koja rezultira traženim hashom. To se postiže prethodnim izračunavanjem i pohranom hash vrijednosti za veliku količinu ulaznih vrijednosti. Ovo se često primjenjuje prilikom napada na lozinke koje su pohranjene kao hash vrijednosti u sustavu. Ljudi često koriste iste lozinke na više sistema, često koriste neke jednostavne, popularne lozinke. Pohranom hash vrijednosti za mnoge česte lozinke kao i za lozinke koje su prethodno otkrivene nekim drugim napadom, moguće je napraviti kolekciju, odnosnu tablicu parova lozinka-hash koje se zatim mogu iskoristiti za napad. Ovakve, već gotove tablice su dostupne napadačima. Rješenje protiv ovog napada je korištenje tzv. salt uz hash lozinke. Dodavanjem nasumične vrijednosti ulaznoj vrijednosti u hash funkciju se onemogućava klasični napad rainbow tablicama. Salt se pohranjuje uz lozinku te nije šifriran. Naravno, napad je moguće izvesti za pojedinačnu kombinaciju salt-lozinka, ali takav napad je znatno usporen.
  
  
 ===== Zaključak ===== ===== Zaključak =====
  
 +Javnost algoritama i operacija korištenih u algoritmima omogućava verifikaciju tih algoritama. Konstantnim istraživanjima i kriptoanalizom algoritama se otkrivaju potencijalne mane ili opasnosti koje narušavaju sigurnost. Jednom kada je otkrivena kritična ranjivost u nekom algoritmu, bitno je u svim sigurnosno kritičnim sustavima zamijeniti korišteni algoritam kako bi se spriječili potencijalni napadi na sustav.
  
  
 ===== Literatura ===== ===== Literatura =====
  
-[1] [[http://books.google.hr/books?id=mFJe8ZnAb3EC&printsec=frontcover#v=onepage&q&f=false|PlassJan L., Roxana Moreno, and Roland BrünkenCognitive Load TheoryCambridge University Press2010.]]+[1] [[https://www.garykessler.net/library/crypto.html#hash|Gary C. Kessler. An Overview of Cryptography]] 
 + 
 +[2] [[https://eprint.iacr.org/2011/565.pdf|Saif Al-KuwariJames HDavenportRussell JBradfordCryptographic Hash Functions: Recent Design Trends and Security Notions2011]]
  
-[2] [[http://www.google.com/books?id=duWx8fxkkk0C&printsec=frontcover#v=onepage&q&f=false|Mayer, Richard EThe Cambridge handbook of multimedia learning. Cambridge University Press2005.]]+[3] [[https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/lecture-notes/MIT6_046JS15_lec21.pdf|MIT 6.046J - Design and Analysis of Algorithms2015]]
  
-[3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, PA, Sweller, J. and Clark, REWhy minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teachingEducational psychologist 41, no2, pp 75-862006]]+[4] [[https://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf|M.M.JStevens. Collisions for MD52007]]
  
 +[5] [[https://csrc.nist.gov/projects/hash-functions|NIST - Hash Functions]]
  
racfor_wiki/razno/hash_funkcije.1641656291.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0