Kriptográfia Tizedik előadás SHA, Whirlpool, HMAC és CMAC Németh L. Zoltán SZTE, Számítástudom studomány Alapjai Tanszék 2008 ősz
Hash és MAC algoritmusok Hash Függvények tetszőleges méretm retű adatot fix hosszúságúra sűríteneks az üzenetet blokkonként nt dolgozzák k fel valamilyen tömörítő fgv-en (compression function) alapulnak, melyek vagy kifejezetten erre a célra c készk szültek (pl. SHA) vagy blokktitkosítóra épülnek (Whirlpool( /az AES-re re/) Üzenethitelesítő kódok (MAC) az üzenetből l (kulccsal) fix hosszú hitelesítő kódot készk szít ez a kód k d hitelesíti ti az üzenetet vagy hash függvény alapúak ak (pl. HMAC) vagy blokktitkosító alapúak ak (CBC módban, m pl. CMAC)
Hash algoritmusok általános struktúrája
Az MD5 az egyik legelterjedtebb hash függvény 128 bites hash értéket ad ez 32 db hexadecimális számjegy (16 pár) p tervezője Ronald Rivest,, 1991 az MD4 helyettesítésére letölt ltéseknél l ellenőrz rző összegként használt persze ha a hash érték k ugyanabból l a forrásb sból származik (szintén n letölt ltött), tt), akkor csak véletlen v hibák k ellen véd, rosszindulatú hamisítások sok ellen nem jelszvaknak hash értékként való tárolására ra is használj lják számos táblázat van, könnyk nnyű jelszavak MD5 hash értékeivel, a táblt blázatok fejlettebb változata v a szivárv rványtáblák (rainbow tables), melyek mérete m jóval j kisebb
Az MD5 biztonsága 128 bit -> > szület letésnapi támadt madás -> > 2 64 túl kicsi! brute force módon spec.. hardverrel ütközés találhat lható: : (MD5CRK osztott projekt) 1996, 2004: kriptoanalízissel is ütközés s találhat lható 2006: ma már m r egy notebookon egy perc alatt két k ellentétes tes tartalmú,, de azonos MD5 hash értékű üzenet/program/tanúsítvány generálhat lható de egy adott üzenthez ugyanolyan hash értékű másikat keresni továbbra is nehéz ezért az őt t alkalmazó hitelesítési si protokollok és HMAC kódok k nincsenek közvetlenk zvetlenül l veszélyben peresze át t kell róla r térni t újabb algoritmusokra
SHA, Secure Hash Algorithm SHA eredeti tervezői NIST & NSA 1993-ban felülvizsg lvizsgálás1995-ben -> SHA-1 név USA szabvány FIPS 180, 180-1,, 180-2, Internet RFC3174 is SHA az algoritmus,, SHS a szabvány Alapja a DSA (Digital Signature Algorithm)-nak az MD4 hasfüggv ggvény terevei alapján néhány ny fontos különbsk nbséggel 160-bit bites hash értéket ad 2005-ben ben: ütközés s (azaz két k t egyforma SHA hash értékű fájl) találhat lható 2 69 művelettel (a 2 80 helyett), ami jövőbeli j alkalmazását t megkérd rdőjelezi helyette SHA-2 2 : több t változat, v hosszabb hash értékekkel
A felülvizsg lvizsgált lt SHA NIST bocsátotta ki: FIPS 180-2 (2002-ben) az SHA-2 2 három h új j változata, v bithossz szerint SHA-256, SHA-384, SHA-512 CÉL: erőss ssége illeszkedjen az AES által nyújtott nagyobb biztonsághoz strukt uktúrája és s részletei r az SHA-1-hez hasonlóak ak így analízis zisük k is hasonló de jóval j biztonságosabb 2005 NIST: 2010-ig át t kell térni t rájukr az SHA-1-ről
SHA-512 áttekintés
Az SHA-512 tömörítő függvénye ez az algoritmus szíve (F)( az üzenetet 1024-bit bites blokkokra kokra bontja 80 körön n keresztül: aktualizálja lja az 512-bit bites puffert 8db x 64bites szó (regiszterek): a,b,c,d,e,f,g,h egy 64-bit bites W t értéket, ami az aktuális üzenetblokkból l származik és s egy körkonstansot,, ami az első 80 prímsz mszám köbgyökéneinek a törtrt rtrészének az eleje (minden körben más) m
Az SHA-512 körfüggvénye Ezt ismétli körönként nyolcvanszor!
A W t értékek számol molása az üzenetblokkból
Whirlpool az európai NESSIE) project által támogatott másik m hash függvény NESSIE = New European Schemes for Signatures, Integrity, and Encryption tömörítő függvényként nt az AES módosított változatát t használja teljesítm tménye és s biztonsága összevethető, (ha nem jobb), mint az MD és s SHA hasfüggv ggvény családnak
Whirlpool áttekintés
A W Whirlpool blokktitkosító kifejezetten hash függvény készk szítéséhez használt titkosító az AES biztonságával és s hatékonys konyságával de a blokkméret 512-bit bit, és így a hash érték k is struktúrája és s függvf ggvényei hasonlóak ak az AES-hez de a bemenetet soronként nt kezeli 10 körrel rendelkezik a GF(2^8) testet más m s polinommal adja meg más S-box,, más m s tervezési módszerrel m
A W Whirlpool blokktitkosító
A Whirlpool biztonsága és s teljesítm tménye Whirlpool elég új j javaslat ezért kevés s tapasztalat áll rendelkezésre vele kapcsolatban de sokminden,, ami az AES-re igaz, igaz rá is vizsgálatok szerint : nagyobb a hardverigénye, mint az SHA-nak de az általa nyújtott teljesítm tmény is jobb
Üzenethitelesítő algoritmusok a hash függvényekkel szemben kulcs segíts tségével képezik az üzenetből l a hitelesítő MAC kódotk eredeti javaslat: használjunk hash függvényeket MAC(kucs kucs, üzenet) := = Hash(kulcs kulcs üzenet) de ennek több t gyenge pontja van, nem biztonságos két általános tervezési elv: HMAC: hash függvény alapú MAC CMAC: titkosító alapú MAC Így minden konkrét hash függvénnyel (MD5, SHA-512, Whirlpool) ) illetve blokktitkosítóval (3DES, AES) lehet üzenethitelesítő algoritmust készk szíteni
HMAC Az RFC2104 Internet szabvány specifikálja HMAC K = Hash[(K + XOR opad) ) Hash[(K + XOR ipad) M)]] ahol K + a kulcs feltöltve ltve opad, ipad speciális feltölt ltő konstansok a választott v hash függvény, csak 3-mal több blokkra kell alkalmazni, mint, ha csak az üzenet hash értéket számoln molnánknk bármely hash függvényre alkalmazható pl.. MD5, SHA-1, RIPEMD-160, Whirlpool ez a sebesség/biztons g/biztonság g függvf ggvényében választható meg
HMAC áttekintés
A HMAC biztonsága bizonyíthat tható,, hogy a biztonsága arányos a használt hash algoritmus biztonságával biztonságát t egy üzenet HMAC kódjának sikeres hamisításához hoz szüks kséges üzenet HMAC érték párok számában mérikm támadási típusok: t brute force a használt kulcs ellen (2( n ) szület letésnapi támadt madások (2 n/2 de ehhez nagyon sok (2 n ) üzenet HMAC érték k pár p r kell ugyanazzal a kulccsal.) így még m g a 128-bites MD5-tel is biztonságos
CMAC CMAC = titkosító alapú üzenethitelesítő kód Cipher-based Message Authentication Code már r láttuk l a DAA-t (CBC-MAC (DES-re alapul)) széles körben k használt (USA) de az üzenet mérete m korlátozott ez kiválthat ltható 2 kulcsk használat latával és feltölt ltéssel NIST szabvány: SP800-38B
CMAC áttekintés
Felhasznált lt irodalom Virrasztó Tamás: Titkosítás és s adatrejtés: Biztonságos kommunikáci ció és s algoritmikus adatvédelem, delem, NetAcademia Kft., Budapest, 2004. Online elérhet rhető: http:// ://www.netacademia.net/book.aspx?id=1# William Stallings: Cryptography and Network Security,, 4th Edition, Prentice Hall, 2006. (Chapter 12) Lawrie Brown előad adás s fólif liái i (Chapter( 12)