Post Reference Customers Zastosowanie kryptosystemów opartych na krzywych eliptycznych nad ciałami skończonymi w zabezpieczaniu transakcji z wykorzystaniem kart inteligentnych mgr inż. Grzegorz Wojtenko 28.03.2017 / 1
Post Reference Customers Zastosowanie kryptosystemów opartych na krzywych eliptycznych nad ciałami skończonymi w zabezpieczaniu transakcji z wykorzystaniem kart inteligentnych Post Reference Customers 28.03.2017 / 2
Post Reference Customers Plan seminarium Post Reference Customers 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 28.03.2017 / 3
Struktura płatności na świecie Post Reference Customers Gotówka Czeki Karty eGotówka W sklepie 60% 10% 30% 0% W sieci 95% 5% Katalog/ telefon 70% 28.03.2017 / 4
Płatności w Polsce – Q3/Q4 2006 (źródło: NBP) Post Reference Customers 28.03.2017 / 5
Przebieg transakcji płatniczej Post Reference Customers Centrum rozliczeniowe Wydawca ISO8583 itd.. NDC/DDC/ Ap40/SPDH/ ISO8583 itd.. 28.03.2017 / 6
Karty inteligentne a karty magnetyczne Post Reference Customers 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! 28.03.2017 / 7
Kryptosystemy – co się porównuje Post Reference Customers 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 28.03.2017 / 8
Post Reference Customers ECC a RSA Post Reference Customers ECC RSA Weryfikacja podpisu Generacja podpisu Uzgodnienie kluczy Rozmiar klucza/podpisu Rozmiar kodu 28.03.2017 / 9
Czynniki decydujące o efektywności Post Reference Customers 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 28.03.2017 / 10
Post Reference Customers Krotność punktu (1) Post Reference Customers 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 28.03.2017 / 11
Post Reference Customers Krotność punktu (2) Post Reference Customers Metody bazujące na endomorfizmach: - Expansion Method ( - endomorfizm Frobeniusa) NAF- Expansion Method JSF - Expansion Method Endomorfizm Frobeniusa: 28.03.2017 / 12
Post Reference Customers Ataki na krzywe Post Reference Customers 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) 28.03.2017 / 13
Zabezpieczenia przed atakami SSCA Post Reference Customers 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. 28.03.2017 / 14
Zabezpieczenia przed atakami DSCA Post Reference Customers 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: WADA: klasa algorytmów add-and-double always randomizacja przez nadmiarowość reprezentacji randomizacja przez wykorzystanie ciał izomorficznych 28.03.2017 / 15
algorytm rho-Pollarda: dP=Q Post Reference Customers 28.03.2017 / 16
rho-P. - przyspieszanie Post Reference Customers 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 28.03.2017 / 17
Obserwatorzy, kryterium cechy (1) Post Reference Customers 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ą. 28.03.2017 / 18
Obserwatorzy, kryterium cechy (2) Post Reference Customers 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 28.03.2017 / 19
rho-P: cała grupa vs. „grupa” pkt. pierwszych Post Reference Customers 28.03.2017 / 20
Redukcja złożoności rho-P: Post Reference Customers 28.03.2017 / 21
Rozkład liczb pierwszych w zbiorze N Post Reference Customers 28.03.2017 / 22
Post Reference Customers Jumping champion (JC) Post Reference Customers JC – liczba całkowita, która jest najczęstszą różnicą kolejnych liczb pierwszych dla liczb od 1000 do 10e12 takim championem jest 6 28.03.2017 / 23
Rozkłady punktów pierwszych na krzywych Post Reference Customers 28.03.2017 / 24
Rozkład liczb pierwszych i pkt. pierwszych Post Reference Customers 28.03.2017 / 25
Jak trafiać na punkty pierwsze? (1) Post Reference Customers 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 28.03.2017 / 26
Jak trafiać na punkty pierwsze ? (2) Post Reference Customers 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: jeżeli to ale Statystyczne wyznaczanie pozycji punktów pierwszych jest zbyt drogie! 28.03.2017 / 27
Post Reference Customers Propozycja Post Reference Customers Doświadczalny wybór reguły funkcji iteracyjnej charakteryzującej się częstszym trafianiem na punktu spełniające kryterium cechy 28.03.2017 / 28
Post Reference Customers Metoda alternatywna Post Reference Customers 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 28.03.2017 / 29
Krok1: Wyznaczanie obserwatorów Post Reference Customers 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ść 28.03.2017 / 30
Nowe kryterium zajścia kolizji Post Reference Customers Wyliczenie jednej liczby reprezentującej wszystkich obserwatorów: 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 28.03.2017 / 31
Krok 2: Wyznaczanie reguły (1) Post Reference Customers 28.03.2017 / 32
Krok 2: Wyznaczanie reguły (2) Post Reference Customers 28.03.2017 / 33
Krok 2: Wyznaczanie reguły (3) Rząd grupy Nr reguły Liczba punktów pierwszych/ liczba iteracji 262469 1 16,457% 2 15,361% 3 17,361% 4 16,239% 524203 16,219% 10,298% 13,033% 15,469% 1048909 14,349% 11,436% 15,400% 14,443% 2097517 14,231% 12,575% 13,073% 17,354% Post Reference Customers 28.03.2017 / 34
Post Reference Customers Porównanie reguł Post Reference Customers 28.03.2017 / 35
Faza II: rho-P. z wybraną regułą Post Reference Customers rząd grupy 65437 teoretyczna liczba iteracji 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% do 80 rzeczywista liczba iteracji reguły 18. 368 300 rzeczywista liczba iteracji reguły 19. 360 170 28.03.2017 / 36
Post Reference Customers Przykład: Post Reference Customers 28.03.2017 / 37
Zrównoleglenie metody Post Reference Customers 28.03.2017 / 38
Zastosowanie metody w różnych grupach Post Reference Customers 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 28.03.2017 / 39
Generatory oparte na krzywych - ECRNG Post Reference Customers 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 - funkcja przekształcająca reprezentację binarną współrzędnej x punktu P w liczbę całkowitą - funkcja odrzucenia części skrajnych bitów 28.03.2017 / 40
Propozycja – generator Pollard-ECRNG Post Reference Customers Idea: zastąpienie formuły funkcją iteracyjną algorytmu rho-Pollarda Uproszczony algorytm Pollard-ECRNG 1. wybierz losowy punkt Q 2. wyznacz z formuły wg. Teske 3. wyznaczaj sekwencje , gdzie funkcje oraz jak w oryginalnym logarytmie ECRNG. 28.03.2017 / 41
Post Reference Customers Pytania? Post Reference Customers Dziękuję za uwagę 28.03.2017 / 42