Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Orkiszewski Marcin PowerPoint Presentation
Download Presentation
Orkiszewski Marcin

Orkiszewski Marcin

166 Vues Download Presentation
Télécharger la présentation

Orkiszewski Marcin

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Implementacja systemu obliczeń rozproszonych w strukturach reprogramowalnych do kryptoanalizy szyfrów opartych na krzywych eliptycznych. Orkiszewski Marcin Warszawa 17.03.2010

  2. 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]

  3. Dlaczego krzywe eliptyczne ? • Obecnie najpoważniejszy konkurent dla RSA • Mniejsza długość klucza przy tym samym poziomie bezpieczeństwa

  4. Status wyzwań z list Certicom • Stacja robocza 500 MHz Digital Alpha z systemem Linux • Szacunkowe wartości dla maszyny Pentium 100

  5. Obliczenia rozproszone • Możliwość zastosowania wielu układów FPGA, jak i zwykłych komputerów klasy PC • Wykorzystanie Internetu – np. Seti@Home

  6. 1. Krzywe eliptyczne

  7. 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.

  8. 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

  9. 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

  10. Mnożenie w bazie potęgowej (1) • 1. Cykliczna rotacja i operacja XOR

  11. Mnożenie w bazie potęgowej (2) • 2. Redukcja wielomianem ciała

  12. 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)

  13. 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

  14. 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

  15. Operacje na krzywych eliptycznych • Ciało GF(2n) – dodawanie • Baza – mnożenie, potęgowanie • Reprezentacja punktów - operacje na krzywej

  16. Reprezentacje punktów na krzywej • Reprezentacja afiniczna (X, Y) • Reprezentacja rzutowa (X, Y, Z) • Zależność między reprezentacjami:

  17. Złożoność operacji na krzywej • M – mnożenie, P - potęgowanie, O - odwrotność • Wyznaczenie odwrotności jest bardzo czasochłonne

  18. 2. Algorytm rhoPollarda

  19. 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

  20. CYKL Przestrzeń punktów dla algorytmu rho Pollarda

  21. 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

  22. 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ń

  23. 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 !

  24. 3. Realizacja systemu

  25. Sprzętowa jednostka łamiąca • Dodawanie punktów na krzywej • Dodawanie współczynników c, d • Porównywanie punktów (kryterium)

  26. 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]

  27. 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

  28. Architektura SoPC (układ DE2-70) • Programowa obsługa stosu TCP/IP (LwIP) • 5 jednostek obliczeniowych • Sprzętowa obsługa MAC – 100 Mbit/s

  29. Platformy uruchomieniowe • Wykorzystano platformy: • DE2-70-EP2C70N – duże możliwości obliczeniowe • DE2-EP2C35N – dodatkowe jednostki

  30. 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)

  31. Wyniki dla zestawu DE2-70

  32. Łamanie krzywej ECC2_89

  33. 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..

  34. Host (Ethernet)

  35. Programowa jednostka łamiąca

  36. 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

  37. 4. Inne systemy łamiące

  38. Copacobana • 120 układów FPGA (Spartan-3) • Łamanie krzywej ECC2-89 nad GF(p) – 119 godzin

  39. 219 konsol PlayStation 3 • Łamanie krzywej 112 bitowej nad GF(p)

  40. Łamanie krzywej ECC2K-130 • http://www.ecc-challenge.info/

  41. Łamanie krzywej ECC2K-130