9 Kryptoanaliza funkcji skrotu 2014

background image

2014-04-29

1

Bezpieczeństwo

i ochrona danych


Ataki na jednokierunkowe

funkcje skrótu oraz

implementację algorytmu RSA

Agenda

• Ataki na funkcje skrótu

– paradoks urodzinowy
– atak Nostradamusa

• Ataki na implementacje RSA – podstawy

teoretyczne

– modularne potęgowanie ^2
– mnożenie i redukcja Mongomerego
– mnożenie Karatsuba



Problem przed-urodzinowy

• Przypuśćmy, że jest N osób w pokoju
• Jak duże musi być N aby

prawdopodobieństwo, że znajdziemy
kogoś, kto się urodził w tym samym dniu
co my sami będzie

½?

– Rozwiązanie: ½ = 1

(364/365)

N

dla N

– Czyli N = 253

Problem urodzinowy

• Jak wiele osób musi być w tym samym pokoju

aby prawdopodobieństwo znalezienia dwóch
osób obchodzących urodziny w tym samym
dniu było większe od ½ ?

– 1

365/365

364/365

(365

N+1)/365

– Przyrównujemy do ½ i rozwiązujemy:

N = 23

• Dziwne? Paradoksalne?
• Nie.

Powinno być około sqrt(365) ponieważ
poszukujemy par x i y

Urodziny i funkcje skrótu

• Jeżeli h(x) ma N bitów, ma 2

N

różnych wartości

• Zauważmy, że sqrt(2

N

) = 2

N/2

• Stąd przy 2

N/2

różnych wejściach możemy liczyć na

wystąpienie kolizji.

– “atak urodzinowy” — przeszukiwanie kompletne

• N-bitowy symetryczny algorytm wymaga około 2

N

1

sprawdzeń aby znaleźć klucz

• Dla N-bitowej funkcji skrótu: wystarczy 2

N/2

tylko

Atak urodzinowy na podpis

• Przypuśćmy, że mamy n-bitową funkcję skrótu
• Malkolm generuje dokument (M

Z

), w którym

Alicja przyznaje się do napadu na bank

– Chce dostać podpis Alicji pod wiadomością (M

Z

)

– Malkolm generuje petycję dotyczącą zwolnienia z

egzaminu wszystkich osób, których imię zaczyna się
na A (M

D

)

– Alicja chętnie podpisuje wiadomość (M

D

)

Jak Intruz może wykorzystać paradoks
urodzinowy aby uzyskać podpis pod
wiadomością (M

Z

)?

background image

2014-04-29

2

Atak urodzinowy na podpis

• Intruz generuje 2

n/2

wariantów (M

D

)

– Wszystkie mają takie same znaczenie jak P
– Generuje wartości f-cji skrótu: h(M

D,0

),h(M

D,1

),…

• Intruz generuje 2

n/2

wariantów M

z

– Wszystkie mają takie same znaczenie jak M

Z

– Obliczamy wartości skrótów: h(M

Z,0

),h(M

Z,0

),…

• Paradoks urodzin mówi nam, że dla pewnego j

oraz k otrzymamy h(M

D,j

)= h(M

Z,k

)

Atak urodzinowy na podpis

• Alicja podpisała niewinną petycję M

D,j

• Intruz ma [h(M

D,j

)]

Alicja

• Ale

[h( M

D,j

)]

Alicja

= [h(M

Z,k

)]

Alicja

• Alicja ‘nieroztropnie’ podpisała

szkodliwy donos M

Z,0

• Atak wykorzystuje tylko paradoks

urodzin

Aukcje online

• Niech Ala, Bolek, Czarek uczestniczą w aukcji
• Ala obstawia A, Bolek B i Czarek C

– Chcą zachować tajność stawek

• Rozwiązanie

– Ala, Bolek i Czarek zgłaszają

skróty

h(A),h(B),h(C)

– Skróty są zgłaszane elektronicznie online
– Następnie można ujawnić wartości A, B, C

• Skróty nie ujawniają wartości
• Nie można zmienić stawki po wysłaniu (brak

kolizji)

Aukcje online

• Protokół nie jest bezpieczny!
• Jest możliwy atak poszukiwania

wstecznego

– Bolek oblicza h(A) dla domniemanego A

• Jak zapobiec?
• Ala oblicza h(A,R), R – jest losowe

– Alicja musi ujawnić A oraz R
– Intruz nie jest w stanie sprawdzić wszystkich

A i R

Aukcje online

• Niech B = $1000 oraz Bolek zgłasza

h(B,R)

• Ujawniamy: A = $1 oraz C = $2
• Bolek chce zmienić swoją propozycję

na: B

= $3

• Bolek oblicza h(B

,R

) dla różnych R

znajdzie h(B

,R

) = h(B,R)

– Jak wiele możliwości musi sprawdzić?
– Około 2

n

skrótów

Aukcje online

Słaba odporność na kolizje –

dla każdego danego bloku x, znalezienie
takiego y różnego od x, dla którego H(y)=H(x)
nie jest wykonywalne na drodze obliczeń


Odporność na kolizje –

znalezienie pary (x,y), że H(y)=H(x) nie jest
wykonywalne na drodze obliczeń

background image

2014-04-29

3

Atak słabych kolizji

• Atak na kolizje dla zadanego skrótu wymaga

nakładu około 2

n

operacji

• Atak na dowolną kolizję wymaga jedynie

około 2

n/2

• Atak Nostradamusa rozwiązuje problem

kolizji przy tylko 2

n/2

skrótach

– np. w przypadku naszej aukcji online
– można wykorzystać np. dla skrótu Merkle-

Damgard

Przewidywanie przyszłości

• Intruz twierdzi, że potrafi przewidzieć przyszłość
• 1 stycznia 2014, ogłasza y, twierdząc, że y = h(x)

– Gdzie x jest kursem PLN/EUR w dniu 30.05.2014

• 1 czerwca 2014, Intruz ujawnia x takie, że y = h(x)

– I wszystko się zgadza … (x – jest kursem PLN/EUR w dniu

30.05.2014)

• Czy to dowodzi nadprzyrodzonych zdolności Intruza?

Przewidywanie przyszłości

• Intruz podaje wartość y
• Niech P będzie kursem PLN/EUR w dniu

30.05.2014

• Jeżeli Intruz nie potrafi przewidywać

przyszłości, to musi znaleźć takie S, że
y = h(P,S)

• Intruz może próbować 2

n

różnych skrótów S

– Lecz jest to pracochłonne
– Może da się szybciej?

Atak Nostradamusa

• Nostradamus (1503-1566)

– Niektórzy twierdzą, że potrafił przewidzieć

przyszłość

– Lecz można to sprawdzić jedynie w formie

retrospektywy

• Atak Nostradamusa

– Intruz może przewidzieć przyszłość
– Zamienia rząd problemu przepowiedni z 2

n

na 2

n/2

– Ma zastosowanie dla dowolnej funkcji skrótu

Merkle-Damgard

Atak Nostradamusa

• Obliczanie kolizji: praca rzędu 2

2

n/2

– Porównanie jednego zbioru z drugim

• Przygotować kolizję w inteligentny sposób
• Tak aby zdeterminować y – wartość skrótu
• Jeżeli zdefiniujemy P, możemy wymóc

wartość skrótu y

– Potrzeba nam określonego S

Struktura diamentu

• Wybieramy

losowo M

0

• Obliczamy
d

00

= f(IV,M

0

)

• oraz M

1

,…,M

7

Znajdujemy M

00

,M

01

dające kolizję:

d

10

= f(d

00

,M

00

) = f(d

01

,M

01

)

Kontynuujemy: y = d

30

– jest poszukiwanym

skrótem

background image

2014-04-29

4

Atak Nostradamusa

• Obliczenia wstępne

– Oblicz wartości struktury diamentowej o

wysokości 2

k

– Wybierz y = d

k0

jako przepowiadany skrót

• Kiedy skrót ‘przepowiedni’ jest znany,

Intruz:

– Niech P będzie przepowiednią
– Wybiera losowo S

, gdzie (P,S

) jeden blok

– Aż do znalezienia takiego f(IV,P,S

)=d

0j

dla

pewnego j

Atak Nostradamusa

• Skoro tylko znajdzie S

– Przechodzi ścieżką od d

0j

do d

k0

• W przypadku prezentowanej struktury diamentu,

jeżeli Intruz odkrył, że
f(IV,P,S

) = d

02

• Wtedy h(P,S

,M

02

,M

11

,M

20

) = d

30

= y

– Przypominamy, że y jest skrótem przepowiedni

• Niech x = (P,S

,M

02

,M

11

,M

20

)

• Oraz x jest wartością przepowiedni:

– P jest kursem PLN/EUR w dniu 30.05.2014,
– S

,M

02

,M

11

,M

20

wartością losową uniemożliwiającą atak

przeszukania wstecz na ‚przepowiednię’

Atak Nostradamusa

• Jak kosztowny?
• Zakładając, że struktura diamentu ma wysokość

2

k

i funkcja skrótu ma wyjście n bitowe

- Z jednej stron mamy: 2

2

n/2

(2

k

1) ≈ 2

n/2+k+1

– Można zredukować do 2

n/2+k/2+1

- Z drugiej chcemy osiągnąć zysk wymiaru: 2

n

k

Atak Nostradamusa

• W celu zminimalizowania kosztu

przyrównajmy dwie wartości z
poprzedniego slajdu w celu znalezienia k

• Mamy n/2 + k/2 + 1 = n

k co daje

k = (n

4)/3

• Dla MD4 lub MD5, n = 128, więc k = 41
• Struktura diamentu o wysokości 2

41

• Ostateczny koszt ataku to 2

87

Nostradamus

• Atak wymierzony przeciw algorytmom

opartym na idei Merkle-Damgard

• Nie jest praktyczny dla funkcji 128-bit
• Ostatecznie korzystanie ze skrótu w

celu przekonania kogoś o czymś nie jest
tak bezpieczne jak się wydawać może …

RSA

• RSA

Klucz publiczny

: (e,N)

Klucz prywatny

: d

• Szyfrowanie M

C = M

e

(mod N)

• Deszyfrowanie C

M = C

d

(mod N)

background image

2014-04-29

5

Ataki na implementacje RSA

• Ataki na implementacje RSA

– Nie ma ataków w sensie ścisłym na algorytm RSA

• Zależności czasowe

– Potęgowanie jest kosztowe obliczeniowo
– Wykorzystanie różnic w czasie obliczeń pojawiających

się dla różnych wykładników (kluczy prywatnych)

• Ataki na błędy

– Wstrzykiwanie błędów może spowodować ujawnienie

informacji o kluczu prywatnym

Potęgowanie modularne

• Ataki związane ze specyfiką potęgowania

modulo

• Dla zwiększenia wydajności implementacja

potęgowania modulo korzysta z pewnej
kombinacji:

– Powtarzania operacji podnoszenia do potęgi 2
– Chińskiego twierdzenia o resztach (Chinese

Remainder Theorem - CRT)

– Mnożenia Montgomery
– Okna przesuwnego (Sliding window)
– Mnożenia Karatsuba

Powtarzanie ^2

• Przykład potęgi modulo

5

20

= 95367431640625 = 25 mod 35

• Lepiej:

powtarzanie ^2

o 20 = 10100 (binarnie)
o (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20)
o Czyli 2 = 1

2, 5 = 2

2 + 1, 10 = 2

5, 20 = 2

10

o 5

1

= 5 mod 35

o 5

2

= (5

1

)

2

= 5

2

= 25 mod 35

o 5

5

= (5

2

)

2

5

1

= 25

2

5 = 3125 = 10 mod 35

o 5

10

= (5

5

)

2

= 10

2

= 100 = 30 mod 35

o 5

20

= (5

10

)

2

= 30

2

= 900 = 25 mod 35

• Brak wielkich liczb + wzrost wydajności

– W tym przypadku, 5 kroków vs 20

Powtarzanie ^2

Algorytm

// oblicz y = x

d

(mod N)

// gdzie binarnie d = (d

0

,d

1

,d

2

,…,d

n

) with d

0

= 1

s = x

for i = 1 to n
s = s

2

(mod N)

if d

i

== 1 then

s = s

x (mod N)

end if
next i
return s

Okno przesuwne

• Problem czas vs pamięć dla algorytmu ^2
• Zamiast przetwarzać bit po bicie…
• … przetwarzane jest n bitów w jednym

kroku

– Wykorzystanie wcześniej obliczonych wartości

przechowywanych w pamięci

– Zazwyczaj n = 5

Chińskie Twierdzenie o resztach

• Jedno z zasadniczych twierdzeń, wiążące

własności liczby całkowitej n z własnościami jej
czynników w rozkładzie na iloczyn potęg liczb
pierwszych, jest twierdzenie noszące nazwę
chińskiego twierdzenia o resztach.

background image

2014-04-29

6

Chińskie Twierdzenie o resztach

• Jeśli liczby całkowite dodatnie:

n1, n2, n3, ... , nk
są parami względnie pierwsze, zaś
a1, a2, a3, ... , ak
są dowolnymi liczbami całkowitymi, to istnieje
taka liczba całkowita a, że:

a ≡ a1(mod n1),
a ≡ a2(mod n2),
...........................
a ≡ ak(mod nk),

Chińskie Twierdzenie o resztach

• Chinese Remainder Theorem (CRT)
• Chcemy obliczyć:

C

d

(mod N) gdzie N = pq

• Dzięki CRT, możemy obliczyć C

d

mod p oraz q, a

potem “skleić” wynik

• Dwa dzielenia modulo rozmiaru N

1/2

– Zamiast pojedynczego o rozmiarze N

• CRT – daje możliwość znacznego przyspieszenia

obliczeń

Algorytm CRT

• Dane:
• C, d, N, p,q
• Szukane:

C

d

(mod N) gdzie N = pq

• Oblicz

d

p

= d (mod (p

1)) oraz d

q

= d (mod (q

1))

• 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)

Algorytm CRT

• Korzystając z wcześniej obliczonych wartości
• Obliczamy:

• następnie:

• Wynik:

oraz

oraz

Przykład CRT

• Niech N = 33, p = 11, q = 3 oraz d = 7

– Wtedy e = 3 (lecz jest zbędne w tym przykładzie)

• Oblicz

d

p

= 7 (mod 10) = 7 oraz d

q

= 7 (mod 2) = 1

• Oraz , a = 12, b = 22 spełniają warunki
• Niech C = 5

– Chcemy obliczyć C

d

= 5

7

(mod 33)

– Znajdź C

p

= 5 (mod 11) = 5 oraz C

q

= 5 (mod 3) = 2

– Następnie x

p

= 5

7

= 3 (mod 11), x

q

= 2

1

= 2 (mod 3)

• Sprawdź: 5

7

= 3

12 + 22

2 = 14 (mod 33)

CRT

• Sprawia wrażenie dużej „pracochłonności”
• Lecz jest wręcz przeciwnie dużym

“zyskiem”

– Daje możliwość 4-krotnego przyspieszenia

obliczeń

• Problemy?

– Czynniki p oraz q liczby N muszą być znane
– Czynniki te powinny być znane jedynie

właścicielowi klucza prywatnego!

background image

2014-04-29

7



Ciąg dalszy (zastosowania)

Na następnym wykładzie


Wyszukiwarka

Podobne podstrony:
Ataki na kryptograficzne funkcje skrótu
Kryptoanaliza funkcji skrótu
8 Funkcje skrotu
Funkcje skrótu v2
8 Funkcje skrotu
arkusz FUNKCJE 2014
PLANOWANIE tras FUNKCJE i WYTUSZANIE szlaków 2014
13 Zastosowania kryptografi 2014
FUNKCJE I ČRËDúA PR PRACY (09 10 2014)
2014 11 04 Dec nr 434 MON Narodowe Centrum Kryptologii odznaka pamiątkowa
PRZYGOTOWANIE DO SPRAWDZIANU - FUNKCJA LINIOWA - POZIOM ROZSZERZONY 2013 2014, Sprawdziany, p
Własności granic funkcji, aaa, studia 22.10.2014, całe sttudia, Studia1, 1 semestr
PRZYGOTOWANIE DO SPRAWDZIANU - FUNKCJA KWADRATOWA I - poziom rozszerzony 2013 2014, Sprawdziany,
PRZYGOTOWANIE DO SPRAWDZIANU - FUNKCJA KWADRATOWA II - poziom rozszerzony 2013 2014, Sprawdziany,
1 02 2014 Funkcje języka

więcej podobnych podstron