User Tools

Site Tools


hash

This is an old revision of the document!


Funkcije sažetka (Hash funkcije)

Hash funkcije, odnosno funkcije sažetka, su determinističke matematičke funkcije koje ulaznu poruku pretvaraju u izlazni niz fiksne duljine, tipično u heksadekadskom obliku, pri čemu će ista ulazna poruka uvijek rezultirati istim izlaznim nizom.

Da bi hash funkcija bila sigurna, mora posjedovati sljedeća svojstva:

1) Otpornost na izračunavanje originala ili prva domenska otpornost (preimage resistance)
H=h(M) M=h-1(H) ne postoji

2) Otpornost na izračunavanje poruke koja daje isti sažetak ili druga domenska otpornost (2nd preimage resistance)
Za poznati M i H=h(M) je nemoguće pronaći M’ koji daje isti H

3) Otpornost na kolizije (collision resistance)
Nemoguće je pronaći bilo koje dvije poruke M1 i M2 za koje se dobiva isti sažetak h(M1)=h(M2)

4) Difuzija
Svaka, pa i najmanja promjena ulaznog podatka rezultira velikom i naizgled slučajnom promjenom na izlazu

Hash funkcije osiguravaju integritet, sigurnost i efikasnost u verifikaciji digitalnih podataka i osiguravanju digitalne komunikacije. Koriste se u provjerama integriteta kak bismo znali da poruka nije izmjenjena, hashiranju lozinki radi sigurnije pohrane, autentifikaciji digitalnih potpisa i u blockchainu kriptovaluta.

Neke od poznatijih hash funkcija su MD5, SHA-1, SHA-2 i SHA-3.

Jedan od osnovnih napada na hash funkcije je rođendanski napad. Rođendanski napad temelji se na statističkoj anomaliji rođendanskog problema. Matematika kaže - vjerojatnost da dvije osobe u dvorani u kojoj je ukupno=1.2 x 3651/2 = 23 ljudi imaju isti dan rođendan je veća od 50%. Isto tako,vjerojatnost da dvije poruke iz skupa od k=1.2 (2n )1/2 = 1.2x2n/2 poruka daju isti sažetak je veća od 50%, gdje je n duljina sažetka u bitovima.

Još jedan od zanimljivih napada na hashirane podatke je Rainbow table napad. Ovaj napad svoj naziv duguje šarenoj tablici unaprijed izračunatih sažetaka najčešćih lozinki. Cilj napada je dobiti lozinke spremljene u bazi podataka. Napadač uspoređuje unaprijed izračunate sažetke jedan po jedan sa sažetcima spremljenim u bazi podataka, sve dok ne nađe poklapanje. Pomoću tog poklapanja lako može doći i do ostatka lozinki u istoj bazi. Ovakav napad može se spriječiti korištenjem salta – slučajnih podataka koji se nadodaju na ulazne tijekom sažimanja.

Izvori

[1] Christof Paar, Jan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009.
[2] https://platforma.hacknite.hr/challenges
[3] Kriptografija i kriptoanaliza, predavanja, FER
[4] Budin, L.; Golub, M; Jakobović, D., Jelenković, L (2010.) (2013.), Operacijski sustavi, Element, Zagreb

hash.1695634128.txt.gz · Last modified: 2025/06/03 10:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki