Kombinatorika na slovech v kryptologii L ubomíra Balková Seminář současné matematiky březen 2014
Program 1 2 APRNG Statistické testy
Program 1 2 APRNG Statistické testy
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 jeho 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 x, tak, že f(x) = f(x ).
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 = 2 64 1, N = 2 128 1 a n stovky bitů (pro MD5/SHA-1/SHA256/SHA512 je to 128/160/256/512 bitů).
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 2 n. Pokud lze vzor hledat jednodušeji, hovoříme o prolomení hašovací funkce.
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 2 n/2. Pokud lze kolize hledat jednodušeji, hovoříme o prolomení hašovací funkce. Počet kolizí: v průměru 2 N n zpráv má stejnou haš.
Narozeninový paradox Pozn. 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) m k pro k = O(m 1/2 ) a m jdoucí do nekonečna P(m,k). = 1 e k2 2m pro k = (2m ln2) 1/2. = m 1/2 je P(m,k). = 50% 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.
Damgardova Merkleova konstrukce Crypto 1989 iterativní hašovací funkce s využitím tzv. kompresní funkce zpráva dlouhá až např. 2 64 1 bitů hašování po blocích (M rozdělena na 512-bitové bloky m 1,m 2,...,m k, kde m k případně kratší) Damgardovo Merkleovo 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 m i a kontext h i 1 ) a 1 výstup (kontext h i ), tedy zpracovává širší vstup na užší výstup algoritmus: h 0 = IV, h i = f(h i 1,m i ) výstup hašovací funkce je h k nebo jeho část dokázáno, že bezkoliznost kompresní funkce bezkoliznost hašovací funkce (proto stačilo najít kvalitní kompresní funkce)
Útok na opakující se kontexty pokud h i 1 = h i = f(h i 1,m i ), pak haše m 1...m i 1 m i m i+1...m k a m 1...m i 1 m l i m i+1...m k stejné, což vede k nalezení 2. vzoru se složitostí t 2 n/2+1 +2 n t+1 pro zprávy s délkou 2 t bĺızkou 2 n/2 např. pro SHA-1 lze ke zprávě o délce 2 60 najít 2. vzor se složitostí 2 106 na rozdíl od teoretické složitosti 2 160 J. Kelsey, B. Schneier, Second preimages on n-bit hash functions for much less than 2 n work, 2005
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 liníı
Ditherování hašovacích funkcí h i = f(h i 1,m i,d i ) 1 ditherování čítačem: d i := i (problém libovolných délek zpráv d i nad nekonečnou abecedou) 2 ditherování náhodnou posloupností: d i := r i (nechrání proti opakování bloků) 3 ditherování střídáním 0 a 1 (nechrání proti opakování 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, 2005
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 Thueovo Morseovo slovo t = 0110100110010110... je cube-free (Dokažte, že je dokonce overlap-free!, tj. neobsahuje faktor awawa, kde a {0,1} a w je slovo nad {0,1}, klidně i prázdné) odvozené slovo v = 2102012... je square-free (Dokažte s využitím předchozí znalosti!)
Abelian square-free slova abelian square-free slovo neobsahuje ww, kde w permutace w Příklad abelianalien NE, obsahuje alien a elian Příklad magické slovo S = abcacdcbcdcadcdbdaba cabadbabcbdbcbacbcdc acbabdabacadcbcdcacd bcbacbcdcacdcbdcdadbdcbca délky 85 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)
Otázky 1 Jsou abelian square-free slova v ditherování v něčem lepší než square-free slova? 2 Najděte vhodné ditherační posloupnosti (nesmí mít nízkou komplexitu). 3 Zkoumejte odolnost ditherovaných hašovacích funkcí vůči známým útokům. 4 Studujte jiné způsoby ditherování.
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
Prolomení hašovacích funkcí masová kryptografie na nedokazatelných (nedokázaných) principech prolomení je přirozená věc 2004 prolomena MD5 (2006 Kĺı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ší
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 Kĺıma, vlastník a vynálezce Danilo Gligoroski), BMW (vlastník-vynálezce Gligoroski Kĺı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
14 kandidátů
BMW = Blue Midnight Wish vznikla spoluprací Vlastimila Kĺı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 bĺıžili ke konečné variantě algoritmu, napadlo je Blue Midnight Wish
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 a 0,a 1,...,a 31 a b 0,b 1,...,b 31, např. a 0 a 1 a 31 a 0 b 0 b 1 b 2 a 12 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!
Operace ADD jedná se o operaci ADD ( mod 2 32 )! označme a 31...a 1 a 0 binární zápis a a b 31...b 1 b 0 binární zápis b, s 31...s 1 s 0 binární zápis s = a+b mod 2 32 a c 31...c 2 c 1 bity přenosu (carry), pak s = (a 31 b 31 c 31,...,a 1 b 1 c 1,a 0 b 0 ) c 1 = a 0 b 0 c 2 = a 1 b 1 a 1 c 1 b 1 c 1 c 3 = a 2 b 2 a 2 c 2 b 2 c 2... c 31 = a 30 b 30 a 30 c 30 b 30 c 30
Kandidáti na SHA-3 dosadíme jednotlivé výrazy pro bity přenosu do vyšších bitů: c 1 = a 0 b 0 1 term řádu 2 c 2 = a 1 b 1 a 1 a 0 b 0 b 1 a 0 b 0 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
Termy v součtu 32-bitových čísel
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)
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)
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ů M 1,M 2,...,M N nastav počáteční hodnotu průběžné haše H 0 := IV 2 výpočet haše 3 závěr for i = 1 to N H i := f(m i,h i 1 ) H(M) := definovaných n bitů z hodnoty H N
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 = 2 k multikolizí 2 n(r 1)/r operací, u SHA-2 pouze k2 n/2 (Joux) možnost nalezení kolize stejná jako u náhodného orákula (2 n/2 podle narozeninového paradoxu) náchylnost na útok prodloužením zprávy
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 k2 n operací výpočet ale pak trvá cca. 4krát déle
Pumpa BMW
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. 2.10.2012 vyhlášení vítěze Keccak
APRNG Statistické testy Program 1 2 APRNG Statistické testy
APRNG Statistické testy rozlišujeme dva druhy generátorů: 1 generátor pravých náhodných čísel (RNG) založen na náhodnosti fyzikálních jevů 2 generátor pseudonáhodných čísel (PRNG) algoritmus vytvářející posloupnosti čísel chovající se zdánlivě náhodně
APRNG Statistické testy Lineární kongruenční generátor (LCG) definován rekurentním vztahem x n+1 = (ax n +c) mod m 0 < m modulo 0 a < m multiplikátor 0 c < m posunutí 0 x 0 < m seed nevýhody LCG: periodičnost mřížková struktura
APRNG Statistické testy Mrížková struktura LCG Obrázek: RANDU: a = 65539, m = 2 31, c = 0
APRNG Statistické testy APRNG dány dva LCG X = (x n ) n 0 a Y = (y n ) n 0 a nekonečné aperiodické slovo u = u 1 u 2 u 3... nad {0,1} pak APRNG Z = (z n ) n 0 založený na slově u získáme pomocí algoritmu: 1 postupně čteme písmena slova u 2 čteme-li ve slově u po i-té nulu, potom na konec posloupnosti Z přidáme i-tý člen posloupnosti X 3 čteme-li ve slově u po i-té jedničku, potom na konec posloupnosti Z přidáme i-tý člen posloupnosti Y
APRNG Statistické testy APRNG APRNG založené na podtřídě cut and project slov jsou aperiodické a nemají mřížkovou strukturu L.-S. Guimond, Jan Patera, Jiří Patera, Statistical properties and implementation of aperiodic pseudorandom number generators, 2003
APRNG Statistické testy Slova s dobře rozmístěnými výskyty APRNG založené na slovech splňujících vlastnost DRV nemají mřížkovou strukturu nekonečné aperiodické slovo u nad {0, 1} má vlastnost DRV právě tehdy, když pro libovolné m N a pro libovolný faktor w splňuje slovo u následující podmínku: označíme i 1,i 2,... výskyty w v u, pak { ( u1 u 2...u ij 0, u 1 u 2...u ij 1 ) mod m j N } = Z 2 m
APRNG Statistické testy Sturmovská slova nekonečné slovo u nazveme sturmovské, pokud jeho faktorová komplexita splňuje C u (n) = n+1 pro každé n N aperiodická mají vlastnost DRV sturmovská slova jsou šiřší třídou než cut and project slova uvažovaná v článku
APRNG Statistické testy Fibonacciho slovo sturmovské generování pomocí substituce ϕ : 0 01,1 0 f je pevný bod substituce ϕ f = 010010100100101001010010010100100101001010...
APRNG Statistické testy Thueovo Morseovo slovo není sturmovské generování pomocí substituce ϕ : 0 01,1 10 t je pevný bod substituce ϕ t = 011010011001011010010110011010011001011...
APRNG Statistické testy Thueovo Morseovo slovo kombinace stejných LCG pomocí Thueova Morseova slova zachovává mřížkovou strukturu Thueovo Morseovo slovo tedy nemá vlastnost DRV (Dokažte přímo z definice, že Thueovo Morseovo slovo nemá vlastnost DRV!)
APRNG Statistické testy TestU01, PractRand výborné výsledky (ve srovnání s LCGs) časová penalizace malá, možný kompromis mezi pamětí a rychlostí generování vícepísmenná abeceda je lepší kombinování LCGs rozdílné kvality není dobré
APRNG Statistické testy Otázky Proč jsou vzniklé APRNGs tak dobré v testech? Existuje souvislost kvality generátoru s jinými kombinatorickými vlastnostmi slov (komplexita, palindromy, frekvence faktorů apod.)?
APRNG Statistické testy Otázky Proč jsou vzniklé APRNGs tak dobré v testech? Existuje souvislost kvality generátoru s jinými kombinatorickými vlastnostmi slov (komplexita, palindromy, frekvence faktorů apod.)?
APRNG Statistické testy Generator Time(10 10 ) BigCrush PractRand LCG(2 47 115,71971110957370,0) 281 14 1TB LCG(2 63 25,2307085864,0) 277 2 >16TB LCG(2 59,13 13,0) 14.1 19 128MB LCG(2 63,5 19,1) 14.4 19 8GB LCG(2 63,9219741426499971445,1) 14.4 19 8GB LCG(2 64,2862933555777941757,1) 14.0 18 32GB LCG(2 64,3202034522624059733,1) 14.1 14 16GB LCG(2 64,3935559000370003845,1) 14.0 13 8GB
APRNG Statistické testy Generator Time(10 10 ) BigCrush PractRand Combination Fibonacci 25.7 (8 ) 0 (0) (9 ) 2TB Total 9 combinations (1 ) 0 (1) {1,0} (22 ) 0 (0) (25 ) 1TB Total 27 combinations Fibonacci2 17.3 (4 ) 0 (1) {0,1,1} {0,2,1} {0,1,2} {0,2,2} (1 ) 0 (2) {0,0,0} (2 ) 0.5TB {0,0,2} (22 ) 0 (0) (16 ) 2TB Total 27 combinations (4 ) 0 (1) {1,1,0} {2,1,0} {1,2,0} {2,2,0} Tribonacci 25.7 (1 ) 0 (2) {0,0,0} (7 ) 4TB {0,0,0} {0,1,1} {0,2,1} {0,1,2} {0,2,2} {0,1,0} {0,2,0} (2 ) 8TB {0,0,2} {0,0,1} (2 ) 1TB {1,0,0} {2,0,0}