Post Reference Customers

advertisement
Zastosowanie kryptosystemów opartych
na krzywych eliptycznych nad ciałami
skończonymi w zabezpieczaniu transakcji
z wykorzystaniem kart inteligentnych
mgr inż. Grzegorz Wojtenko
Zastosowanie kryptosystemów opartych na
krzywych eliptycznych nad ciałami
skończonymi w zabezpieczaniu transakcji
z wykorzystaniem kart inteligentnych
Plan seminarium
 Transakcje finansowe – tło i uwarunkowania
 Porównanie kryptosystemów
 Krzywe eliptyczne w kryptografii
 Ataki na kryptosystemy oparte na krzywych eliptycznych
 Algorytm rho-Pollarda
 Przyspieszanie rho-Pollarda
 Generatory oparte na krzywych eliptycznych
 Podsumowanie
Struktura płatności na świecie
Gotówka
Czeki
Karty
eGotówka
60%
10%
30%
0%
0%
0%
95%
5%
0%
30%
70%
0%
W sklepie
W sieci
Katalog/
telefon
Płatności w Polsce – Q3/Q4 2006
(źródło: NBP)
Przebieg transakcji płatniczej
Centrum rozliczeniowe
Wydawca
ISO8583 itd..
NDC/DDC/
Ap40/SPDH/
ISO8583 itd..
Karty inteligentne a karty magnetyczne
 Przewaga kart mikroprocesorowych nad magnetycznymi:
 bezpieczeństwo przetwarzania i przechowywania danych
 większa pamięć
 wieloaplikacyjność
 bezstykowe rozwiązania
 ale karta mikroprocesorowa jest wielokrotnie droższa!
Kryptosystemy – co się porównuje
 długość kluczy
 długość podpisu cyfrowego oraz certyfikatu
 długość wiadomości konieczna do uzgodnienia klucza
 złożoność procesu generowania pary kluczy
 szybkość deszyfrowania i generowania podpisu
 łatwość walidacji parametrów bazowych, w tym klucza
publicznego
 rozmiar kodu aplikacji
ECC a RSA
ECC
Weryfikacja podpisu
Generacja podpisu
Uzgodnienie kluczy
Rozmiar
klucza/podpisu
Rozmiar kodu
RSA
Czynniki decydujące o efektywności
 metoda znajdowania krotności punktu dP
 reprezentacja punktów na krzywej (rodzaj współrzędnych),
 rodzaj ciała odniesienia i związane z nim metody realizacji
arytmetyki w ciele,
 platforma implementacji (dedykowana lub ogólnego
przeznaczenia, sprzęt, oprogramowanie, w tym firmware
i middleware) oraz dostępne zasoby sprzętowe,
 język implementacji i sposób programowania
Krotność punktu

(1)
Metody uniwersalne:
 metoda binarna (ang. Binary Method)
 metoda binarna ze znakiem (ang. Signed Binary Method)
 metoda Yacobiego (ang. Yacobi’s Method)
 metoda Bos-Costera (ang. Bos-Coster’s Method)
 metoda NAF (ang. Non-Adjacent Form method)
 metoda JSF (ang. Joint-Sparse Form method)
 metoda połowienia punktu (ang. Point Halving method)
 oraz ich rozwinięcia o obliczenia wstępne
Cel: minimalizacja liczby Hamminga rozwinięcia mnożnika d
Krotność punktu
(2)
 Metody bazujące na endomorfizmach:
  - Expansion Method ( - endomorfizm Frobeniusa)
 NAF-  Expansion Method
 JSF -  Expansion Method
Endomorfizm Frobeniusa:
( x, y)  ( x q , y q )
 2  t  q  0
2
(  t  q) P  0
qP  t( P)   2 ( P)
m   j 0 m j  j
k
mP  ( j 0 m j  j )( P)  (...((mk ( P)  mk 1 P)  mk 2 P)...  m1 P)  m0 P
k
Ataki na krzywe
naiwne przeszukiwanie
 Polinga-Hellmana (redukcja do podgrup)
 małych i dużych kroków (ang. baby step, giant step)
 rho-Pollarda:
 w oparciu o cykl Floyda
 Oorchota-Wienera (zrównoleglenie)
 redukcja MOV (redukcja do logarytmu dyskretnego w F)
 na bazie krzywych hipereliptycznych
 ataki SDA:
 SSCA (ang. Simple Side Channel Analysis)
 DSCA (ang. Differential Side Channel Analysis)
Zabezpieczenia przed atakami SSCA
 fikcyjne operacje arytmetyczne,
 nierozróżnialne lub zunifikowane formuły na dodawanie
i podwojenie punktu,
 wykorzystanie algorytmów mnożenia punktu ze stałą liczbą
operacji grupowych.
Zabezpieczenia przed atakami DSCA
 randomizacja mnożnika:
 zmiana reprezentacji (binarnej) mnożnika d
 zaciemnianie punktu, np.: dP = (d+k1+k2n)P-k1P
 randomizacja elementu bazowego:
 dP = d(P + R) – S, gdzie R tajne, takie że: S = dR
 np. metoda BRIP (binary expansion with random initial point )
 alg. Kima:
s # r  d
dP  i [d i ( P  R)  si R]  i d i P  i (d i  si ) R  dP  (d  s) R  dP# rR
 WADA: klasa algorytmów add-and-double always
 randomizacja przez nadmiarowość reprezentacji
 randomizacja przez wykorzystanie ciał izomorficznych
algorytm rho-Pollarda:
X i 1
dP=Q
 X i  P, gdy X i  T1

 2 X i ,
gdy X i  T2
 X  Q, gdy X  T
i
3
 i
X i  ai P  bi Q
X 2i  a2i P  b2i Q
ai P  bi Q  a 2i P  b2i Q
(ai  a 2i ) P  (b2i  bi )Q
(ai  a2i )  (b2i  bi )d mod n
d  (ai  a 2i )  (b2i  bi ) 1 mod n
rho-P. - przyspieszanie
 zrównoleglenie wg Oorschota-Wienera
 znajdowanie wielu logarytmów w tej samej grupie
 wyróżnienie klas równoważności:
 krzywe ABC
 punkty przeciwne
 niealgebraiczne zbiory – kryterium cechy
Obserwatorzy, kryterium cechy
(1)
 Definicje:
 Obserwator – wyróżniony punkt w danej grupie cyklicznej,
którego logarytm jest znany. Po napotkaniu obserwatora w
wybranej metodzie poszukiwania logarytmu jej złożoność
obliczeniowa staje się liniowa.
 Punkt pierwszy – punkt na krzywej, którego współrzędna x jest
liczbą pierwszą.
Obserwatorzy, kryterium cechy
(2)
 Cel: ograniczenie przestrzeni badanych punktów do
punktów spełniających wybrane kryterium cechy
 Cecha powinna się charakteryzować:
 łatwość sprawdzenia
 determinizm pozwalający określić rozkład punktów o wybranej
cesze pośród wszystkich punktów w grupie
 nieliczność, tzn. im mniejsza liczba elementów niealgebraicznej
„podgrupy”, tym większa redukcja przeszukiwanej przestrzeni
 Kryterium podstawowe: pierwszość współrzędnej x punktu
rho-P: cała grupa vs. „grupa” pkt. pierwszych
Redukcja złożoności rho-P:
1
ln n
Rozkład liczb pierwszych w zbiorze N
Jumping champion (JC)
 JC – liczba całkowita, która jest najczęstszą różnicą
kolejnych liczb pierwszych
 dla liczb od 1000 do 10e12 takim championem jest 6
Rozkłady punktów pierwszych na krzywych
E ( F67108859) : y 2  x 3  24 x  128
E ( F67108859) : y 2  x 3  12 x  16
E ( F8388593) : y 2  x 3  21x  18
Rozkład liczb pierwszych i pkt. pierwszych
Jak trafiać na punkty pierwsze?
 d – zmienna losowa określająca liczbę punktów bazowych
(„odległość”), które należy dodać do danego punktu
pierwszego, aby uzyskać kolejny punkt pierwszy
Zmienna d ma rozkład geometryczny
(1)
Jak trafiać na punkty pierwsze ?
(2)
 Niech:
 n – rząd grupy punków,
 n’ – rząd grupy punktów pierwszych,
 k – liczba operacji grupowych, które trzeba wykonać, aby w
trakcie wykonania jednej iteracji funkcji F trafić na punkt pierwszy,
 P* - prawdopodobieństwo, że wybrany punkt jest punktem
pierwszym i wynosi:
1
P 
jeżeli
S
n

2 1
n'
k
2
ln p
to k 1  1
ln p
ale
k  E (d )
Statystyczne wyznaczanie pozycji punktów
pierwszych jest zbyt drogie!
Propozycja
Doświadczalny wybór reguły funkcji iteracyjnej
charakteryzującej się częstszym trafianiem na punktu
spełniające kryterium cechy
Metoda alternatywna
 Faza I – inicjalizacja
 Krok 1. Wyznaczyć zbiór obserwatorów
 Krok 2. Na losowej próbce punktów badanej krzywej wyznaczyć
regułę, która statystycznie częściej, niż inne reguły trafia na
wyróżnione punkty
 Faza II – zasadnicza
 Krok 3. Uruchomić algorytm rho-Pollarda, gdzie funkcją
iteracyjną będzie reguła wyznaczona w Kroku 2
Krok1: Wyznaczanie obserwatorów
 sprawdź, czy dana liczba jest pierwsza i czy wyznacza
punkt na krzywej
 retrospektywnie, dla działającego rho-P sprawdzaj, który z
punktów jest pierwszy
 wyznacz punkt i sprawdź jego pierwszość
l
l
i 1
i 1
n   E (d )   (1 / P *)
Nowe kryterium zajścia kolizji

Wyliczenie jednej liczby reprezentującej wszystkich
obserwatorów:
n
Obs _ total  p1  p 2  ...  p n   pi
i 1

Nowe kryterium: NWD(Obs_total, Xx), gdzie Xx jest
współrzędną x punktu wygenerowanego przez funkcję
iteracyjną F:
 NWD(Obs_total, Xx) =1 – brak kolizji
 NWD(Obs_total, Xx) = pi – zaszła poszukiwana kolizja
 NWD(Obs_total, Xx) ≠ 1 oraz NWD(Obs_total, X) ≠ pi – brak
informacji
Krok 2: Wyznaczanie reguły
(1)
20
Liczba liczb pierwszych
19
18
17
16
15
14
13
12
11
10
1
2
3
Numer reguły
4
5
Liczba liczb pierwszych
Krok 2: Wyznaczanie reguły
(2)
12
10
8
6
4
2
0
Reguła 1
Reguła 2
1
2
3
4
5
6
7
Przedziały krzyw ych
8
9
10
Reguła 3
Reguła 3
Reguła 5
Krok 2: Wyznaczanie reguły
Rząd
grupy
Nr reguły
Liczba punktów pierwszych/
liczba iteracji
262469
1
16,457%
262469
2
15,361%
262469
3
17,361%
262469
4
16,239%
524203
1
16,219%
524203
2
10,298%
524203
3
13,033%
524203
4
15,469%
1048909
1
14,349%
1048909
2
11,436%
1048909
3
15,400%
1048909
4
14,443%
2097517
1
14,231%
2097517
2
12,575%
2097517
3
13,073%
2097517
4
17,354%
(3)
Porównanie reguł
1,5
1
0,5
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Numer reguły
Faza II: rho-P. z wybraną regułą
E ( F65521) : y  x  7 x  29
2
3
rząd grupy
teoretyczna liczba iteracji
65437
320
teoretyczny udział punktów pierwszych
18,40%
udział punktów pierwszych dla reguły 18.
16,93%
udział punktów pierwszych dla reguły 19.
23,61%
0
do 80
rzeczywista liczba iteracji reguły 18.
368
300
rzeczywista liczba iteracji reguły 19.
360
170
Przykład:
E ( F16381 ) : y 2  x 3  11x  19
liczba iteracji
250
200
150
100
50
0
0
1
5
10
25
liczba obserwatorów
50
100
Zrównoleglenie metody
Q  P 
X 1  k1 P
Q  dP
X 2  X 1  k2 P
...
X m  X m 1  k m P
X 2  lP  obserwator2
X 2  lP  obserwator 2
X 1  k 2 P  lP  obserwator 2
k1 P  k 2 P  lP  obserwator 2
P ( k1  k 2  l )  m 2 P
Zastosowanie metody w różnych grupach
 metoda nie zależy od struktury i charakteru grupy, w której
poszukiwany jest logarytm,
 można ją stosować zarówno dla krzywych określonych nad
ciałami złożonymi jak i do poszukiwania logarytmu
dyskretnego w grupach multiplikatywnych
 w przypadku krzywych nad ciałami złożonymi
odpowiednikiem liczb pierwszych są wielomiany moniczne
Generatory oparte na krzywych - ECRNG
Ri  si Q
Q – parametr inicjalizacyjny będący losowo wybranym
punktem na krzywej
si – liczba całkowita otrzymana z reprezentacji bitowej
współrzędnej x pewnego punktu P
x ()
- funkcja przekształcająca reprezentację binarną
współrzędnej x punktu P w liczbę całkowitą
t ()
- funkcja odrzucenia części skrajnych bitów
si 1  x( si P)
ri  t ( x( Ri ))
Propozycja – generator Pollard-ECRNG
 Idea: zastąpienie formuły
Ri  si Q funkcją iteracyjną
algorytmu rho-Pollarda
Uproszczony algorytm Pollard-ECRNG
t ()
1. wybierz losowy punkt Q  P
2. wyznacz Ri z formuły wg. Teske
3. wyznaczaj sekwencje ri  t ( x( Ri )) , gdzie funkcje
oryginalnym logarytmie ECRNG.
x () oraz t ()
jak w
Pytania?
Dziękuję za uwagę
Download