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ę