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