430 likes | 658 Views
Implementacja systemu obliczeń rozproszonych w strukturach reprogramowalnych do kryptoanalizy szyfrów opartych na krzywych eliptycznych. Orkiszewski Marcin. Warszawa 17.03.2010. Koncepcja projektu.
E N D
Implementacja systemu obliczeń rozproszonych w strukturach reprogramowalnych do kryptoanalizy szyfrów opartych na krzywych eliptycznych. Orkiszewski Marcin Warszawa 17.03.2010
Koncepcja projektu • Piotr Majkowski – System rozpraszania obliczeń z zastosowaniem w rozwiązywaniu zagadnienia logarytmu dyskretnego na krzywych eliptycznych [praca inżynierska 2006] • Piotr Majkowski – Automatyzacja procesu tworzenia sprzętowego narzędzia służącego do rozwiązywania zagadnienia logarytmu dyskretnego na krzywych eliptycznych [praca magisterska 2008]
Dlaczego krzywe eliptyczne ? • Obecnie najpoważniejszy konkurent dla RSA • Mniejsza długość klucza przy tym samym poziomie bezpieczeństwa
Status wyzwań z list Certicom • Stacja robocza 500 MHz Digital Alpha z systemem Linux • Szacunkowe wartości dla maszyny Pentium 100
Obliczenia rozproszone • Możliwość zastosowania wielu układów FPGA, jak i zwykłych komputerów klasy PC • Wykorzystanie Internetu – np. Seti@Home
Krzywe eliptyczne nad GF(2n) Krzywa eliptycznaE nad ciałem GF(2n) jest zdefiniowana przez następujące równanie: y2 + xy = x3 + ax2 + b gdzie a, b GF(2n). CiałoGF( 2n) – elementami ciała są binarne, nwymiarowe wektory współrzędnych w ustalonej bazie.
Ciało modularne GF(2n) • Elementy ciała – wektory m-elementowe, których reprezentacja zależy od wybranej bazy • Dodawanie w ciele – operacja XOR między wektorami ciała • Mnożenie w ciele – zależy od wybranej bazy
Baza wielomianowa (potęgowa) • Reprezentacja wektorów: (1, a, a2, … , an-1) • Wykorzystywana w implementacjach „software” • Zależy od wielomianu ciała(wiele reprezentacji !) • Operacja mnożenia – cykliczne przesuwanie i wykonywanie operacji XOR - redukcja wielomianem ciała
Mnożenie w bazie potęgowej (1) • 1. Cykliczna rotacja i operacja XOR
Mnożenie w bazie potęgowej (2) • 2. Redukcja wielomianem ciała
Baza normalna • Reprezentacja wektorów • Istnieje tylko jeden wielomian ciała (jedna reprezentacja !) • Istnieje klasa baz normalnych zwana bazami gaussowskimi (bazy gaussowskie klasy 1 i 2 nazywane są optymalnymi bazami normalnymi)
Operacje w bazie normalnej • Dla baz normalnych można wyznaczyć macierz mnożenia, która jest niezależna od mnożonych elementów. • Dla optymalnych baz normalnych macierz mnożenia ma dwie jedynki w każdym wierszu (w pierwszym wierszu jest jedna jedynka) • Operacja potęgowania (x2n) – rotacja wektora o n pozycji
Wykorzystanie baz normalnych • Istnienie macierzy mnożenia umożliwia szybkie wyznaczenie wyniku mnożenia w środowisku sprzętowym (zrównoleglenie obliczeń) • Potęgowanie jako operacja rotacji w środowisku sprzętowym realizowana jest w jednym cyklu • Problem – nie dla wszystkich ciał istnieją optymalne bazy normalne
Operacje na krzywych eliptycznych • Ciało GF(2n) – dodawanie • Baza – mnożenie, potęgowanie • Reprezentacja punktów - operacje na krzywej
Reprezentacje punktów na krzywej • Reprezentacja afiniczna (X, Y) • Reprezentacja rzutowa (X, Y, Z) • Zależność między reprezentacjami:
Złożoność operacji na krzywej • M – mnożenie, P - potęgowanie, O - odwrotność • Wyznaczenie odwrotności jest bardzo czasochłonne
Algorytm rho-Pollarda • Najlepszy znany obecnie algorytm rozwiązywania ECDLP • Algorytm probabilistyczny oparty na błądzeniu przypadkowym Idea – wykrycie kolizji punktów Xk, Xm ckP+ dkQ = cmP + dmQ ECDL = (ck – cm)(dk – dm)-1 mod n
CYKL Przestrzeń punktów dla algorytmu rho Pollarda
Równoległa wersja rho-Pollarda • Liniowy wzrost szybkości w stosunku do użytych procesorów Idea – wykrycie kolizji punktów między dwiema jednostkami błądzącymi DP – punkty wyróżnione
Zalety algorytmu rho Pollarda • Liniowy wzrost szybkości • Łatwe wykorzystanie w obliczeniach rozproszonych(model komunikacji klient <-> host) • Zapotrzebowanie na pamięć i przepustowość łączy regulowane odpowiednim doborem kryterium • Można dołączać nowe jednostki w trakcie obliczeń
Wybór reprezentacji punktów • Kryterium wyróżniające zastosowane w algorytmie rhoPollardauniemożliwia zastosowanie rzutowej (oraz mieszanej) reprezentacji punktów ! Współrzędne afiniczne zależą od współrzędnej Z. Porównywanie współrzędnych X nie jest jednoznaczne z porównywaniem współrzędnych x !
Sprzętowa jednostka łamiąca • Dodawanie punktów na krzywej • Dodawanie współczynników c, d • Porównywanie punktów (kryterium)
Dodawanie punktów na krzywej Dodawanie elementów GNB – operacja XOR [1 cykl] Podnoszenie do kwadratu GNB - rotacja [1 cykl] Mnożenie elementów GNB – macierz mnożenia [1 cykl] Odwracanie elementu GNB – 8 mnożeń, 8 rotacji [8 cykli] Dodawanie punktów na krzywej– 10 mnożeń, 10 rotacji [10 cykli]
Realizacja jednostki • System on a Programmable Chip – NIOS II (Altera) - system mikroprocesorowy implementowany w układach reprogramowalnych FPGA • Programowa implementacja protokołu TCP/IP oraz protokołów warstwy aplikacji • Łatwe zarządzanie równolegle pracującymi modułami (pełna skalowalność) • Możliwość wykorzystania układu do innych projektów
Architektura SoPC (układ DE2-70) • Programowa obsługa stosu TCP/IP (LwIP) • 5 jednostek obliczeniowych • Sprzętowa obsługa MAC – 100 Mbit/s
Platformy uruchomieniowe • Wykorzystano platformy: • DE2-70-EP2C70N – duże możliwości obliczeniowe • DE2-EP2C35N – dodatkowe jednostki
Wyniki dla różnych platform • Szacownie czasów łamania dla krzywej ECC2-89(złamanej w 1998 r. w 26 dni przez 70 komputerów 500 MHz)
Oprogramowanie • Realizacja hosta zbierającego wyniki i rozdzielającego punkty początkowe • Implementacja protokołu wymiany danych • Stworzenie programowej wersji jednostki łamiącej • Stworzenie oprogramowania do generowania baz, wyznaczania macierzy konwersji, testów układu, itp..
Dalszy rozwój • Uruchomienie systemu na większej liczbie jednostek sprzętowych oraz komputerach klasy PC • Dalsza optymalizacja sprzętowej jednostki obliczeniowej, m.in. prace nad współdzieleniem zasobów przez jednostki łamiące. • Łamanie kolejnych krzywych z listy Certicom
Copacobana • 120 układów FPGA (Spartan-3) • Łamanie krzywej ECC2-89 nad GF(p) – 119 godzin
219 konsol PlayStation 3 • Łamanie krzywej 112 bitowej nad GF(p)
Łamanie krzywej ECC2K-130 • http://www.ecc-challenge.info/