| Uporaba kriptografije v internetu |
Zgoščevalne funkcije(cryptographic hash functions, one-way hash functions) Zgoščevalne funkcije preslikajo poljubno dolg niz znakov v blok konstantne dolžine, ki je nekakšen prstni odtis oziroma povzetek vhodnega niza (message digest, message fingerprint). Od zgoščevalne funkcije pričakujemo, da:
Pri ocenjevanju zgoščevalnih funkcij se uporabljajo izrazi:
Rezultat mora torej enolično identificirati datoteko. Zaradi te lastnosti so povzetki postali nepogrešljivi pri digitalnem podpisovanju, kjer zašifriramo samo povzetek, in pa kot indikatorji nespremenjenosti podatkov v postopkih za prenos podatkov. Ne smemo pa teh funkcij zamenjevati s kompresijskimi postopki (zip in podobnimi), kjer vedno lahko iz zgoščene datoteke dobimo nazaj prvotno datoteko. Postopek se začne tako, da vhodno datoteko razdelimo na bloke konstantne dolžine in konec dopolnimo do polnega bloka (padding). Potem zaporedoma obdelujemo bloke:
Ena od možnosti je, da za zgoščevalno funkcijo uporabimo katerega od simetričnih algoritmov: vhodno datoteko razbijemo na bloke take dolžine, kot ustrezajo algoritmu, prvi blok zašifriramo s ključem, vsak naslednji blok seštejemo (XOR) z zašifriranim povzetkom prejšnjega bloka. Vendar se zaenkrat v glavnem uporabljajo posebej za to razviti algoritmi (MD5, SHA-1), ker so hitrejši.
Kako dolg pa naj bi bil povzetek?
Ali je 128 bitov dovolj, da ne bo možno najti enakih povzetkov različnih sporočil (collision free)?
Izkoriščanje kolizij pri prekratkih povzetkih imenujejo "birthday attack". Ime ima po paradoksu rojstnega dne (birthday paradox): če kot "povzetek" za vsakega človeka izberemo obletnico njegovega rojstnega dne (k je število dni v letu, k=365), iz zgornje formule dobimo rezultat 22.3. To pomeni, da bosta od 23 naključno izbranih ljudi z verjetnostjo 50% vsaj dva imela isti rojstni dan. Najbolj znane zgoščevalne funkcije so - MD5 (MD je okrajšava za Message Digest) Razvil jo je Ronald Rivest leta 1991. Opisana je v RFC 1321.
- SHA (Secure Hash Algorithm) - zdaj verzija SHA-1, Razvili sta jo organizaciji NIST in NSA in je objavljena kot standard
FIPS PUB 180-1 (1995). Ravno tako kot MD5 obdeluje bloke po 512 bitov.
Obdeluje jih v petih registrih po 32 bitov, kar da 160-bitni rezultat.
- HAVAL To je verzija MD5, ki so jo razvili Yuliang Zheng, Josef Pieprzyk in Jennifer Seberry. Lahko se izbere število ponovitev algoritma in dolžino rezultata (od 92 do 256 bitov). so leta 1996 razvili Hans Dobbertin, Antoon Bosselaers in Bart Preneel v sklopu evropskega projekta RIPE. Obdeluje 512-bitne bloke v petih zankah, rezultat je 160-biten. Novi teoretični dosežki, objavljeni na konferenci Crypto 2004 Niels Ferguson in Bruce Schneier v knjigi "Practical Cryptography" (Wiley Publishing, 2003, stran 95) pravita, da zgoščevalne funkcije še niso bile dovolj analizirane in da znanje na tem področju za 20 let zaostaja za znanjem o blokovnih algoritmih. To se popravlja, saj je bilo na konferenci Crypto 2004 predstavljenih več projektov na to temo:
Gre za teoretične dosežke, ki zaenkrat najbrž niso praktično uporabni. Če iz dveh datotek, ki se razlikujeta v nekaj bitih, dobimo enak povzetek, to še ne pomeni, da lahko za dve konkretni pogodbi dobimo enak povzetek. Reakcije na konferenco so spodbudile NIST, da je objavil sporočilo o uporabi SHA-1. V njem previdevajo zamenjavo SHA-1 s SHA-256 ali SHA-512 do leta 2010. Februarja 2005 je dodatno vznemirjenje povzročil Schneierjev dnevniški zapis, v katerem omenja, da kroži povzetek članka Xiaoyun Wang, Yiqun Lise Yin in Hongbo Yu, kjer trdijo, da so našli učinkovite postopke za iskanje kolizij za SHA-1 v 269 poskusih, kar je seveda bistveno manj od 280 poskusov. V povzetku navajajo primer kolizije za okrnjen SHA-1 (58 zank namesto 80). Članek z naslovom Finding Collisions in the Full SHA-1 je na voljo od konca junija 2005. V intervjuju Yiqun Lisa Yin pravi, da so našli dve pomanjkljivosti SHA-1 - priprava datoteke na začetku postopka bi morala biti boljša in matematični postopek v prvih 20 zankah ima nepričakovane varnostne slabosti. Odmevi na to novico so naslednji:
Zaenkrat torej to še ne pomeni konca e-trgovanja (263 operacij je ogromna številka), je pa jasno, da bo treba SHA-1 nadomestiti z varnejšo funkcijo prej, kot smo mislili pred nekaj leti. NIST priporoča naslednje korake:
April 1998, dopolnjeno septembra 2006
|