9 Kryptoanaliza funkcji skrotu 2014


2014-04-29
Agenda
Bezpieczeństwo
" Ataki na funkcje skrótu
i ochrona danych
 paradoks urodzinowy
 atak Nostradamusa
" Ataki na implementacje RSA  podstawy
Ataki na jednokierunkowe
teoretyczne
funkcje skrótu oraz
 modularne potęgowanie ^2
implementacjÄ™ algorytmu RSA
 mnożenie i redukcja Mongomerego
 mnożenie Karatsuba
Problem urodzinowy
Problem przed-urodzinowy
" Jak wiele osób musi być w tym samym pokoju
" Przypuśćmy, że jest N osób w pokoju
aby prawdopodobieństwo znalezienia dwóch
" Jak duże musi być N aby osób obchodzących urodziny w tym samym
dniu byÅ‚o wiÄ™ksze od ½ ?
prawdopodobieństwo, że znajdziemy
 1 -ð 365/365 ×ð 364/365 ×ð ×ð ×ð(365-ðN+1)/365
kogoś, kto się urodził w tym samym dniu
 Przyrównujemy do ½ i rozwiÄ…zujemy:
co my sami bÄ™dzie Å‚ð ½?
N = 23
 RozwiÄ…zanie: ½ = 1 -ð (364/365)N dla N
" Dziwne? Paradoksalne?
 Czyli N = 253
" Nie.
Powinno być około sqrt(365) ponieważ
poszukujemy par x i y
Urodziny i funkcje skrótu Atak urodzinowy na podpis
" Jeżeli h(x) ma N bitów, ma 2N różnych wartości
" Przypuśćmy, że mamy n-bitową funkcję skrótu
" Zauważmy, że sqrt(2N) = 2N/2
" Malkolm generuje dokument (MZ), w którym
" Stąd przy 2N/2 różnych wejściach możemy liczyć na
Alicja przyznaje siÄ™ do napadu na bank
wystÄ…pienie kolizji.
 Chce dostać podpis Alicji pod wiadomością (MZ)
  atak urodzinowy  przeszukiwanie kompletne
 Malkolm generuje petycjÄ™ dotyczÄ…cÄ… zwolnienia z
" N-bitowy symetryczny algorytm wymaga okoÅ‚o 2N-ð1
egzaminu wszystkich osób, których imię zaczyna się
sprawdzeń aby znalezć klucz
na A (MD)
" Dla N-bitowej funkcji skrótu: wystarczy 2N/2 tylko
 Alicja chętnie podpisuje wiadomość (MD)
Jak Intruz może wykorzystać paradoks
urodzinowy aby uzyskać podpis pod
wiadomością (MZ)?
1
2014-04-29
Atak urodzinowy na podpis Atak urodzinowy na podpis
" Intruz generuje 2n/2 wariantów (MD) " Alicja podpisała niewinną petycję MD,j
 Wszystkie majÄ… takie same znaczenie jak P
" Intruz ma [h(MD,j)]Alicja
 Generuje wartości f-cji skrótu: h(MD,0),h(MD,1),&
" Ale
" Intruz generuje 2n/2 wariantów Mz
[h( MD,j)]Alicja = [h(MZ,k)]Alicja
 Wszystkie majÄ… takie same znaczenie jak MZ
 Obliczamy wartości skrótów: h(MZ,0),h(MZ,0),&
" Alicja  nieroztropnie podpisała
" Paradoks urodzin mówi nam, że dla pewnego j
szkodliwy donos MZ,0
oraz k otrzymamy h(MD,j)= h(MZ,k)
" Atak wykorzystuje tylko paradoks
urodzin
Aukcje online Aukcje online
" Niech Ala, Bolek, Czarek uczestniczÄ… w aukcji
" Protokół nie jest bezpieczny!
" Ala obstawia A, Bolek B i Czarek C
" Jest możliwy atak poszukiwania
 Chcą zachować tajność stawek
wstecznego
" RozwiÄ…zanie
 Ala, Bolek i Czarek zgłaszają skróty h(A),h(B),h(C)  Bolek oblicza h(A) dla domniemanego A
 Skróty są zgłaszane elektronicznie online
" Jak zapobiec?
 Następnie można ujawnić wartości A, B, C
" Ala oblicza h(A,R), R  jest losowe
" Skróty nie ujawniają wartości
 Alicja musi ujawnić A oraz R
" Nie można zmienić stawki po wysłaniu (brak
 Intruz nie jest w stanie sprawdzić wszystkich
kolizji)
A i R
Aukcje online Aukcje online
" Słaba odporność na kolizje 
" Niech B = $1000 oraz Bolek zgłasza
dla każdego danego bloku x, znalezienie
h(B,R)
takiego y różnego od x, dla którego H(y)=H(x)
" Ujawniamy: A = $1 oraz C = $2
nie jest wykonywalne na drodze obliczeń
" Bolek chce zmienić swoją propozycję
na: Bóð = $3
" Odporność na kolizje 
znalezienie pary (x,y), że H(y)=H(x) nie jest
" Bolek oblicza h(Bóð,Róð) dla różnych Róð aż
wykonywalne na drodze obliczeń
znajdzie h(Bóð,Róð) = h(B,R)
 Jak wiele możliwości musi sprawdzić?
 Około 2n skrótów
2
2014-04-29
Atak słabych kolizji
Przewidywanie przyszłości
" Atak na kolizje dla zadanego skrótu wymaga
" Intruz twierdzi, że potrafi przewidzieć przyszłość
nakładu około 2n operacji
" 1 stycznia 2014, ogłasza y, twierdząc, że y = h(x)
 Gdzie x jest kursem PLN/EUR w dniu 30.05.2014
" Atak na dowolnÄ… kolizjÄ™ wymaga jedynie
" 1 czerwca 2014, Intruz ujawnia x takie, że y = h(x)
około 2n/2
 I wszystko siÄ™ zgadza & (x  jest kursem PLN/EUR w dniu
" Atak Nostradamusa rozwiÄ…zuje problem
30.05.2014)
kolizji przy tylko 2n/2 skrótach
" Czy to dowodzi nadprzyrodzonych zdolności Intruza?
 np. w przypadku naszej aukcji online
 można wykorzystać np. dla skrótu Merkle-
Damgard
Przewidywanie przyszłości Atak Nostradamusa
" Intruz podaje wartość y " Nostradamus (1503-1566)
 Niektórzy twierdzą, że potrafił przewidzieć
" Niech P będzie kursem PLN/EUR w dniu
przyszłość
30.05.2014
 Lecz można to sprawdzić jedynie w formie
" Jeżeli Intruz nie potrafi przewidywać
retrospektywy
przyszłości, to musi znalezć takie S, że
" Atak Nostradamusa
y = h(P,S)
 Intruz może przewidzieć przyszłość
" Intruz może próbować 2n różnych skrótów S
 Zamienia rzÄ…d problemu przepowiedni z 2n na 2n/2
 Lecz jest to pracochłonne
 Ma zastosowanie dla dowolnej funkcji skrótu
 Może da się szybciej?
Merkle-Damgard
Struktura diamentu
Atak Nostradamusa
" Wybieramy
" Obliczanie kolizji: praca rzÄ™du 2×ð2n/2
losowo M0
 Porównanie jednego zbioru z drugim
" Obliczamy
" Przygotować kolizję w inteligentny sposób
d00 = f(IV,M0)
" Tak aby zdeterminować y  wartość skrótu
" oraz M1,& ,M7
" Jeżeli zdefiniujemy P, możemy wymóc
qðZnajdujemy M00,M01 dajÄ…ce kolizjÄ™:
wartość skrótu y
d10 = f(d00,M00) = f(d01,M01)
 Potrzeba nam określonego S
qðKontynuujemy: y = d30  jest poszukiwanym
skrótem
3
2014-04-29
Atak Nostradamusa
Atak Nostradamusa
" Skoro tylko znajdzie Sóð
" Obliczenia wstępne
 Przechodzi ścieżką od d0j do dk0
 Oblicz wartości struktury diamentowej o
" W przypadku prezentowanej struktury diamentu,
wysokości 2k
jeżeli Intruz odkrył, że
f(IV,P,Sóð) = d02
 Wybierz y = dk0 jako przepowiadany skrót
" Wtedy h(P,Sóð,M02,M11,M20) = d30 = y
" Kiedy skrót  przepowiedni jest znany,
 Przypominamy, że y jest skrótem przepowiedni
Intruz:
" Niech x = (P,Sóð,M02,M11,M20)
 Niech P będzie przepowiednią
" Oraz x jest wartością przepowiedni:
 P jest kursem PLN/EUR w dniu 30.05.2014,
 Wybiera losowo Sóð, gdzie (P,Sóð) jeden blok
 Sóð,M02,M11,M20 wartoÅ›ciÄ… losowÄ… uniemożliwiajÄ…cÄ… atak
 Aż do znalezienia takiego f(IV,P,Sóð)=d0j dla
przeszukania wstecz na  przepowiedniÄ™
pewnego j
Atak Nostradamusa
Atak Nostradamusa
" Jak kosztowny?
" W celu zminimalizowania kosztu
" Zakładając, że struktura diamentu ma wysokość
przyrównajmy dwie wartości z
2k i funkcja skrótu ma wyjście n bitowe
poprzedniego slajdu w celu znalezienia k
- Z jednej stron mamy: 2×ð2n/2(2k -ð 1) H" 2n/2+k+1
" Mamy n/2 + k/2 + 1 = n -ð k co daje
 Można zredukować do 2n/2+k/2+1
k = (n -ð 4)/3
- Z drugiej chcemy osiÄ…gnąć zysk wymiaru: 2n-ðk
" Dla MD4 lub MD5, n = 128, więc k = 41
" Struktura diamentu o wysokości 241
" Ostateczny koszt ataku to 287
Nostradamus
RSA
" Atak wymierzony przeciw algorytmom
" RSA
opartym na idei Merkle-Damgard
 Klucz publiczny: (e,N)
" Nie jest praktyczny dla funkcji 128-bit  Klucz prywatny: d
" Szyfrowanie M
" Ostatecznie korzystanie ze skrótu w
C = Me (mod N)
celu przekonania kogoÅ› o czymÅ› nie jest
" Deszyfrowanie C
tak bezpieczne jak się wydawać może &
M = Cd (mod N)
4
2014-04-29
Potęgowanie modularne
Ataki na implementacje RSA
" Ataki związane ze specyfiką potęgowania
" Ataki na implementacje RSA
modulo
 Nie ma ataków w sensie ścisłym na algorytm RSA
" Dla zwiększenia wydajności implementacja
" Zależności czasowe
potęgowania modulo korzysta z pewnej
 Potęgowanie jest kosztowe obliczeniowo
kombinacji:
 Wykorzystanie różnic w czasie obliczeń pojawiających
 Powtarzania operacji podnoszenia do potęgi 2
się dla różnych wykładników (kluczy prywatnych)
 Chińskiego twierdzenia o resztach (Chinese
" Ataki na błędy
Remainder Theorem - CRT)
 Wstrzykiwanie błędów może spowodować ujawnienie
 Mnożenia Montgomery
informacji o kluczu prywatnym
 Okna przesuwnego (Sliding window)
 Mnożenia Karatsuba
Powtarzanie ^2
Powtarzanie ^2
" Przykład potęgi modulo
" Algorytm
 520 = 95367431640625 = 25 mod 35
// oblicz y = xd (mod N)
// gdzie binarnie d = (d0,d1,d2,& ,dn) with d0 = 1
" Lepiej: powtarzanie ^2
o 20 = 10100 (binarnie) s = x
o (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20)
for i = 1 to n
o Czyli 2 = 1×ð 2, 5 = 2 ×ð 2 + 1, 10 = 2 ×ð 5, 20 = 2 ×ð 10
s = s2 (mod N)
o 51= 5 mod 35
if di == 1 then
o 52= (51)2 = 52 = 25 mod 35
s = s ×ð x (mod N)
o 55= (52)2 ×ð 51 = 252 ×ð 5 = 3125 = 10 mod 35
o 510 = (55)2 = 102 = 100 = 30 mod 35 end if
o 520 = (510)2 = 302 = 900 = 25 mod 35
next i
" Brak wielkich liczb + wzrost wydajności
return s
 W tym przypadku, 5 kroków vs 20
Okno przesuwne Chińskie Twierdzenie o resztach
" Jedno z zasadniczych twierdzeń, wiążące
" Problem czas vs pamięć dla algorytmu ^2
własności liczby całkowitej n z własnościami jej
" Zamiast przetwarzać bit po bicie&
czynników w rozkładzie na iloczyn potęg liczb
" & przetwarzane jest n bitów w jednym
pierwszych, jest twierdzenie noszÄ…ce nazwÄ™
kroku chińskiego twierdzenia o resztach.
 Wykorzystanie wcześniej obliczonych wartości
przechowywanych w pamięci
 Zazwyczaj n = 5
5
2014-04-29
Chińskie Twierdzenie o resztach Chińskie Twierdzenie o resztach
" Jeśli liczby całkowite dodatnie: " Chinese Remainder Theorem (CRT)
n1, n2, n3, ... , nk
" Chcemy obliczyć:
są parami względnie pierwsze, zaś
Cd (mod N) gdzie N = pq
a1, a2, a3, ... , ak
" Dzięki CRT, możemy obliczyć Cd mod p oraz q, a
są dowolnymi liczbami całkowitymi, to istnieje
potem  skleić wynik
taka liczba całkowita a, że:
" Dwa dzielenia modulo rozmiaru N1/2
a a" a1(mod n1),
 Zamiast pojedynczego o rozmiarze N
a a" a2(mod n2),
" CRT  daje możliwość znacznego przyspieszenia
...........................
obliczeń
a a" ak(mod nk),
Algorytm CRT
Algorytm CRT
" Korzystając z wcześniej obliczonych wartości
" Dane:
" C, d, N, p,q " Obliczamy:
oraz
" Szukane:
Cd (mod N) gdzie N = pq
" następnie:
" Oblicz
oraz
dp = d (mod (p -ð 1)) oraz dq = d (mod (q -ð 1))
" Wynik:
" A następnie a oraz b takie, że
a = 1 (mod p) oraz a = 0 (mod q)
b = 0 (mod p) oraz b = 1 (mod q)
Przykład CRT
CRT
" Niech N = 33, p = 11, q = 3 oraz d = 7
" Sprawia wrażenie dużej  pracochłonności
 Wtedy e = 3 (lecz jest zbędne w tym przykładzie)
" Lecz jest wręcz przeciwnie dużym
" Oblicz
 zyskiem
dp = 7 (mod 10) = 7 oraz dq = 7 (mod 2) = 1
 Daje możliwość 4-krotnego przyspieszenia
" Oraz , a = 12, b = 22 spełniają warunki
obliczeń
" Niech C = 5
 Chcemy obliczyć Cd = 57 (mod 33) " Problemy?
 Znajdz Cp = 5 (mod 11) = 5 oraz Cq = 5 (mod 3) = 2
 Czynniki p oraz q liczby N muszą być znane
 Następnie xp = 57 = 3 (mod 11), xq = 21 = 2 (mod 3)
 Czynniki te powinny być znane jedynie
" Sprawdz: 57 = 3 ×ð 12 + 22 ×ð 2 = 14 (mod 33)
właścicielowi klucza prywatnego!
6
2014-04-29
CiÄ…g dalszy (zastosowania)
Na następnym wykładzie
7


Wyszukiwarka