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ę