Hašovací funkce a kombinatorika na slovech
Transkript
Hašovací funkce a kombinatorika na slovech
Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Hašovacı́ funkce a kombinatorika na slovech L’ubomı́ra Balková Seminář současné matematiky 25. dubna 2012 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Program 1 Hašovacı́ funkce 2 Ditherované hašovacı́ funkce 3 Nač jsou hašovacı́ funkce dobré? 4 Nový hašovacı́ standard - SHA-3 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Program 1 Hašovacı́ funkce 2 Ditherované hašovacı́ funkce 3 Nač jsou hašovacı́ funkce dobré? 4 Nový hašovacı́ standard - SHA-3 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Jednocestnost a bezkoliznost Definice (jednocestné funkce) f : X → Y nazveme jednocestná (one-way), pokud 1 pro každé x ∈ X je snadné spočı́st y = f (x), 2 pro náhodně vybrané y ∈ f (X ) je výpočetně nemožné najı́t jejı́ vzor, tj. x ∈ X tak, že y = f (x). Definice (bezkoliznı́ funkce) f : X → Y nazveme bezkoliznı́ (collision-free), pokud je výpočetně nemožné najı́t x, x ′ ∈ X , x 6= x ′ tak, že f (x) = f (x ′ ). L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Definice kryptografické hašovacı́ funkce Definice (kryptografická hašovacı́ funkce) Necht’ N, n ∈ N a n << N a f : {0, 1}N → {0, 1}n nazveme hašovacı́ (hash function), pokud je jednocestná a bezkoliznı́. f (M) nazýváme hash (otisk, hašový kód) zprávy M. Pozn. Obvykle N = 264 − 1, N = 2128 − 1 a n stovky bitů (pro MD5/SHA-1/SHA256/SHA512 je to 128/160/256/512 bitů). L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Odolnost proti nalezenı́ vzoru Chová-li se hašovacı́ funkce f : {0, 1}N → {0, 1}n jako náhodné orákulum, pak složitost nalezenı́ vzoru (i druhého vzoru) k danému y = f (M) je 2n . Pokud lze vzor hledat jednodušeji, hovořı́me o prolomenı́ hašovacı́ funkce. L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Odolnost proti nalezenı́ kolize Chová-li se hašovacı́ funkce f : {0, 1}N → {0, 1}n jako náhodné orákulum, pak složitost nalezenı́ kolize (dvou libovolných zpráv se stejnou hašı́) je 2n/2 . Pokud lze kolize hledat jednodušeji, hovořı́me o prolomenı́ hašovacı́ funkce. Počet kolizı́: v průměru 2N−n zpráv má stejnou haš. L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Narozeninový paradox množina o m prvcı́ch, vybı́ráme k prvků po 1 s vracenı́m pravděpodobnost, že ve výběru některý prvek aspoň 2krát: P(m, k) = 1 − m(m − 1) . . . (m − k + 1) mk pro k = O(m1/2 ) a m jdoucı́ do nekonečna −k 2 . P(m, k) = 1 − e 2m . . pro k = (2m · ln 2)1/2 = m1/2 je P(m, k) = 50% Pozn. P(365, 23) = 0, 507 a P(365, 30) = 0, 706 ⇒ ve skupině 23 lidı́ najdeme s pravděpodobnostı́ 50% dvojici slavı́cı́ narozeniny ve stejný den, ve skupině 30 lidı́ s pravděpodobnostı́ 70%. Obvyklé vnı́mánı́: hledánı́ jedněch konkrétnı́ch narozenin, proto paradox. L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Damgard-Merklova konstrukce - Crypto 1989 iterativnı́ hašovacı́ funkce s využitı́m tzv. kompresnı́ funkce zpráva dlouhá až např. 264 − 1 bitů ⇒ hašovánı́ po blocı́ch (M rozdělena na 512-bitové bloky m1 , m2 , . . . , mk , kde mk přı́padně kratšı́) Damgard-Merklovo zesı́lenı́ - doplněnı́ M na délku p × 512: M doplněna bitem 1, poté bity 0 (může jich být 0 - 447) na délku p × 512 − 64 a nakonec binárnı́m zápisem délky M kompresnı́ funkce: 2 vstupy (aktuálnı́ blok zprávy mi a kontext hi −1 ) a 1 výstup (kontext hi ), tedy zpracovává širšı́ vstup na užšı́ výstup algoritmus: h0 = IV , hi = f (hi −1 , mi ) výstup hašovacı́ funkce je hk nebo jeho část dokázáno, že bezkoliznost kompresnı́ funkce ⇒ bezkoliznost hašovacı́ funkce (proto stačilo najı́t kvalitnı́ kompresnı́ funkce) L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Program 1 Hašovacı́ funkce 2 Ditherované hašovacı́ funkce 3 Nač jsou hašovacı́ funkce dobré? 4 Nový hašovacı́ standard - SHA-3 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Útok na opakujı́cı́ se kontexty pokud hi −1 = hi = f (hi −1 , mi ), pak haše m1 . . . mi −1 mi mi +1 . . . mk a m1 . . . mi −1 miℓ mi +1 . . . mk stejné, což vede k nalezenı́ 2. vzoru se složitostı́ t · 2n/2+1 + 2n−t+1 pro zprávy s délkou 2t blı́zkou 2n/2 např. pro SHA-1 lze ke zprávě o délce 260 najı́t 2. vzor se složitostı́ 2106 na rozdı́l od teoretické složitosti 2160 J. Kelsey, B. Schneier, Second preimages on n-bit hash functions for much less than 2n work L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Ditherovánı́ zpracovánı́ obrazu: simulace barev, které nemáme, náhodným mı́chánı́m pixelů podobných barev; cı́lem odstraněnı́ nežádoucı́ch liniı́ L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Ditherovánı́ hašovacı́ch funkcı́ hi = f (hi −1 , mi , di ) 1 ditherovánı́ čı́tačem: di := i (problém libovolných délek zpráv ⇒ di nad nekonečnou abecedou) 2 ditherovánı́ náhodnou posloupnostı́: di := ri (nechránı́ proti opakovánı́ bloků) 3 ditherovánı́ střı́dánı́m 0 a 1 (nechránı́ proti opakovánı́ posloupnosti bloků) 4 ditherovánı́ pomocı́ square-free a abelian square-free nekonečných slov R. Rivest, Abelian square-free dithering for iterated hash functions L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Square-free slova square-free slovo neobsahuje ww Přı́klad abracadabra OK, banana NE neexistujı́ square-free nekonečná slova nad {0, 1} existujı́ square-free nekonečná slova nad {0, 1, 2} Přı́klad Thue-Morseovo slovo uTM = 0110100110010110 . . . je cube-free (i overlap-free) odvozené slovo vTM = 2102012 . . . je square-free L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Abelian square-free slova abelian square-free slovo neobsahuje ww ′ , kde w ′ permutace w Přı́klad abelianalien NE, obsahuje alien a elian Přı́klad abcacdcbcdcadcdbdaba cabadbabcbdbcbacbcdc magické slovo S = délky 85 acbabdabacadcbcdcacd bcbacbcdcacdcbdcdadbdcbca označme σ cyklický posun σ(abcacd ) = bcdbda, pak Keränenovo abelian square-free slovo je pevný bod morfismu a → S, b → σ(S), c → σ 2 (S), d → σ 3 (S) L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Otázky 1 Jsou abelian square-free slova v ditherovánı́ v něčem lepšı́ než square-free slova? 2 Kde jinde v kryptografii lze užı́t (abelian) square-free slova? 3 Kde jinde v kryptografii lze užı́t kombinatoriku na slovech? (aperiodické PRNG) L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Program 1 Hašovacı́ funkce 2 Ditherované hašovacı́ funkce 3 Nač jsou hašovacı́ funkce dobré? 4 Nový hašovacı́ standard - SHA-3 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Kryptografické využitı́ hašovacı́ch funkcı́ jednoznačná identifikace dat (zejména pro digitálnı́ podpisy) kontrola integrity (kontrola shody velkých souborů dat) ukládánı́ a kontrola přihlašovacı́ch hesel prokazovánı́ autorstvı́ prokazovánı́ znalosti autentizace původu dat nepadělatelná kontrola integrity pseudonáhodné generátory L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Digitálnı́ otisk dat (digital fingerprint) nebo výtah zprávy (message digest) z velkých dat vytvářı́ hašovacı́ funkce jejich identifikátor (dı́ky bezkoliznosti nejsme schopni nalézt jinou zprávu se stejnou hašı́) v řadě zemı́ stojı́ digitálnı́ otisky na úrovni otisků prstů pro identifikaci lidı́, proto při digitálnı́m podpisu zprávy stačı́ podepsat jejı́ haš L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Ukládánı́ přihlašovacı́ch hesel mı́sto hesel se ukládajı́ jejich haše přihlašovánı́ do systému = výpočet haše a jeho porovnánı́ s uloženou hodnotou haše neodhalujı́ hesla, z nichž jsou vypočteny L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Klı́čovaný hašový autentizačnı́ kód HMAC hašovánı́m zpracovává nejen zprávu M, ale i tajný klı́č K použitı́: nepadělatelné zabezpečenı́ zpráv (útočnı́k nemůže data měnit bez změny HMACu a ten bez tajného klı́če nevypočte správně) průkaz znalosti při autentizaci entit (dotazovatel odešle challenge, od prokazovatele obdržı́ HMAC(challenge, K), útočnı́k z odpovědi nezı́ská klı́č K) značenı́ HMAC-SHA-1(M,K) L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Pseudonáhodné generátory chovánı́ jako náhodná orákula, změna 1 bitu na vstupu ⇒ změna každého výstupnı́ho bitu s pravděpodobnostı́ 50% PKCS#1 v.2.1(RSA Cryptography Standard) definuje MGF1 (Mask Generation Function) h(seed||0x00000001), h(seed||0x00000002), h(seed||0x00000003), . . . kde 0x hexadecimálnı́ vyjádřenı́ daného čı́sla standard pro podpisové schéma DSA definuje náhodný generátor x0 := K , xj+1 := h((K + 1 + xj ) mod 2m ), kde K je počátečnı́ vstup (klı́č) a m délka bloku hašovacı́ funkce h L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Program 1 Hašovacı́ funkce 2 Ditherované hašovacı́ funkce 3 Nač jsou hašovacı́ funkce dobré? 4 Nový hašovacı́ standard - SHA-3 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Prolomenı́ hašovacı́ch funkcı́ “masová” kryptografie na nedokazatelných (nedokázaných) principech prolomenı́ je přirozená věc 2004 - prolomena MD5 (2006 Klı́ma - generovánı́ kolizı́ na notebooku během 1 minuty) 2010 - konec platnosti SHA-1 současný platný standard SHA-2 je 3krát pomalejšı́ L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Soutěž o SHA-3 listopad 2007 - NIST (americký úřad pro standardizaci) soutěž o nový hašovacı́ standard SHA-3 požadavky: rychlost (SHA-1 7,5 cyklu procesoru/byte, SHA-2 20 cyklů procesoru/byte), nároky na pamět’ (stovky bytů) 64 algoritmů od 191 kryptologů (univerzity a elektronické giganty, ale i největšı́ světovı́ výrobci z oblasti čipů) např. firmy: Microsoft, Sony, RSA, Intel, IBM, MIT, PGP, Hitachi, známá jména: Rivest, Schneier Češi spojeni s 2 kandidáty: EDON-R (Aleš Drápal, Vlastimil Klı́ma, vlastnı́k a vynálezce Danilo Gligoroski), BMW (vlastnı́k-vynálezce Gligoroski-Klı́ma) červenec 2009 - vybráno 14 kandidátů: BLAKE, BMW, CubeHash, ECHO, Fugue, Grøstl, Hamsi, JH, Keccak, Luffa, Shabal, SHAvite-3, SIMD, Skein prosinec 2011 - vybráno 5 finalistů: BLAKE, Grøstl, JH, Keccak, Skein L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 14 kandidátů L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 BMW = Blue Midnight Wish vznikla spolupracı́ Vlastimila Klı́my na vylepšenı́ Turbo-SHA Danila Gligoroského a Sveina Knapskoga po roce práce (konec 2008) odeslána do soutěže NISTu pracovnı́ název nejprve Blue Wish, pak ale autoři zjistili, že jde o registrovanou značku, když se po x-té o půlnoci blı́žili ke konečné variantě algoritmu, napadlo je Blue Midnight Wish L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Nové nápady požadavek: většı́ bezpečnost i rychlost ⇒ nutnost nových nápadů soustavy rovnic tvořené polynomy o mnoha neznámých (booleovské proměnné) nedovedeme řešit v polynomiálnı́m čase ALE! spočı́st hodnotu náhodného polynomu 32. stupně s proměnnými a0 , a1 , . . . , a31 a b0 , b1 , . . . , b31 , např. a0 ∗ a1 ∗ · · · ∗ a31 ⊕ a0 ∗ b0 ∗ b1 ∗ b2 ∗ a12 ⊕ · · · ⊕ je náročné na pamět’ i čas (∼ počtu ∗ a ⊕) existuje operace, kterou modernı́ procesory zvládajı́ v 1 taktu (nejrychleji, jak je to možné), a přesto poskytuje 32 polynomů vysokých řádů najednou! L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Operace ADD jedná se o operaci ADD ( mod 232 )! označme a31 . . . a1 a0 binárnı́ zápis a a b31 . . . b1 b0 binárnı́ zápis b, s31 . . . s1 s0 binárnı́ zápis s = a + b mod 232 a c31 . . . c2 c1 bity přenosu (carry), pak s = (a31 ⊕ b31 ⊕ c31 , . . . , a1 ⊕ b1 ⊕ c1 , a0 ⊕ b0 ) c1 = a0 ∗ b0 c2 = a1 ∗ b1 ⊕ a1 ∗ c1 ⊕ b1 ∗ c1 c3 = a2 ∗ b2 ⊕ a2 ∗ c2 ⊕ b2 ∗ c2 ... c31 = a30 ∗ b30 ⊕ a30 ∗ c30 ⊕ b30 ∗ c30 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Kandidáti na SHA-3 dosadı́me jednotlivé výrazy pro bity přenosu do vyššı́ch bitů: c1 = a0 ∗ b0 1 term řádu 2 c2 = a1 ∗b1 ⊕a1 ∗a0 ∗b0 ⊕b1 ∗a0 ∗b0 1 term řádu 2 a 2 termy řádu 3 jedinou operacı́ a + b tak vznikne 32 polynomů, které dohromady obsahujı́ přes 2 miliardy termů řádu 2 – 32 L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Termy v součtu 32-bitových čı́sel L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Vlastnosti BMW použı́vá jen operace ADD a XOR, operace bitových posunů a cyklických bitových posunů podobně vypadajı́ všichni nejrychlejšı́ kandidáti (požadavek na rychlost vedl logicky k využitı́ operace ADD) L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Společné prvky SHA-2 a BMW iterativnı́ princip a kompresnı́ funkce padding = doplněnı́ hašované zprávy na potřebný počet bitů, zarovnánı́ na nejbližšı́ násobek 512 nebo 1024 bitů (podle toho, zda jde o BMW256/BMW512, resp. SHA256/SHA512) L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Hašovánı́ 1 předzpracovánı́ doplň zprávu M jednoznačně definovaným způsobem o délku zprávy v bitech a doplněk rozděl zprávu na celistvý násobek N m-bitových bloků M1 , M2 , . . . , MN nastav počátečnı́ hodnotu průběžné haše H0 := IV 2 výpočet haše for i = 1 to N Hi := f (Mi , Hi −1 ) 3 závěr H(M) := definovaných n bitů z hodnoty HN L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Mouchy SHA-2 podle NISTu možnost nalezenı́ multikolizı́ rychlejšı́ než u náhodného orákula u náhodného orákula složitost nalezenı́ r = 2k multikolizı́ 2n(r −1)/r operacı́, u SHA-2 pouze k2n/2 (Joux) možnost nalezenı́ kolize stejná jako u náhodného orákula (2n/2 podle narozeninového paradoxu) náchylnost na útok prodlouženı́m zprávy L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Dvojnásobná pumpa využita částı́ kandidátů na SHA-3 navržena k řešenı́ výše uvedených much Lucksem jde o zdvojnásobenı́ šı́řky průběžné haše a výsledná haš je pak polovina průběžné haše k nalezenı́ kolizı́ Jouxovým útokem je třeba k2n operacı́ výpočet ale pak trvá cca. 4krát déle L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Pumpa BMW L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Zdůvodněnı́ NISTu Security: We preferred to be conservative about security, and in some cases did not select algorithms with exceptional performance, largely because something about them made us ’nervous’, even though we knew of no clear attack against the full algorithm. 31.12.2012 - vyhlášenı́ vı́těze L’. Balková SSM Hašovacı́ funkce Ditherované hašovacı́ funkce Nač jsou hašovacı́ funkce dobré? Nový hašovacı́ standard - SHA-3 Děkuji za pozornost! L’. Balková SSM