(Microsoft PowerPoint - Implementacja algorytmu, wyszukuj_cego
Transkrypt
(Microsoft PowerPoint - Implementacja algorytmu, wyszukuj_cego
Implementacja algorytmu, wyszukującego pseudokwadraty liczb pierwszych, w układach FPGA Maciej Majchrzyk Praca Magisterska Opiekun: Dr inż. Paweł Tomaszewicz Plan prezentacji Cel pracy. Co to są pseudokwadraty? Algorytm ich wyszukiwania. Zaawansowanie prac. Pozostało do zrobienia. Podsumowanie i pytania końcowe. Wyszukiwanie pseudokwadratów 2 Cel pracy Zaprojektować układ FPGA wyszukujący pseudokwadraty liczb pierwszych. Układ dostaje wartości początkowe niezbędne do obliczeń, poczym realizuje algorytm przesiewania liczb naturalnych w celu odnalezienia pseudokwadratu. Wyszukiwanie pseudokwadratów 3 Co to są pseudokwadraty? Niech p będzie nieparzystą liczbą pierwszą. Pseudokwadratem Lp nazywamy najmniejszą liczbę naturalną spełniającą następujące warunki: Lp≡ 1(mod8) Lp Symbol Legendre’a q =1 dla wszystkich liczb pierwszych q ≤ p Lp nie jest kwadaratem liczby naturalnej Wyszukiwanie pseudokwadratów 4 Historia pseudokwadratów 1924 Kraitchik jako pierwszy zbadał pseudokwadraty 1933 Pierwsze testy pierwszości opracowane przez Halla 1926 Lehmer skonstruował pierwszy mechaniczne urządzenie do przesiewania zbioru liczb naturalnych oraz w 1956 urządzenia wykorzystujące układy scalone 1991 znaleziono L229 przy pomocy urządzenia OASiS II 1996 Lukes, Patterson, Williams zbudowali MSSU i odkryli L277 Wyszukiwanie pseudokwadratów 5 Zastosowanie pseudokwadratów Znaczenie pseudokwadratów bierze się stąd, że mogą być one efektywnie wykorzystywane do rozpoznawania liczb pierwszych. Dlatego: Zastosowanie : Kryptografia Wyszukiwanie pseudokwadratów 6 Dlaczego FPGA? Liczba pierwsza zakres przeszukiwania 3 73 17 9912 53 12743472 107 61541278920 241 553831272246620000 Wyszukiwanie pseudokwadratów 7 Dlaczego FPGA c.d. Zakresy w których szukamy pseudokwadratu Lp rosną do nieskończoności wraz ze wzrostem p. Dlatego układy FPGA wydają się być lepsze od rozwiązań programowych. Prosty algorytm wyszukiwania, który można łatwo zaimplementować w układzie. Możliwość zrównoleglenia obliczeń Wyszukiwanie pseudokwadratów 8 Podział pracy Praca została podzielona na 2 części: Część sprzętową zrealizowaną w układzie FPGA Układ przeszukuje zbiór liczb naturalnych. Część programowa: dostarcza danych początkowych, odbiera wyniki działania układu oraz je wyświetla. Wyszukiwanie pseudokwadratów 9 Algorytm wyszukiwania 1. 2. 3. Poczynając od pseudokwadratu poprzedniej liczby pierwszej sprawdzamy wartości symboli Lagender’a dla każdego q≤p. Jeżeli któraś z wartości jest różna od 1 to zwiększamy liczbę sprawdzaną o 24, jeśli mamy same jedynki to mamy pseudokwadrat. Jeżeli nowa sprawdzana liczba jest kwadratem liczby naturalnej to znowu zwiększamy liczbę o 24. Wyszukiwanie pseudokwadratów 10 Część sprzętowa Moduł główny Automat sterujący Szyna Legendre’a mod3 mod5 mod7 ....... . Wyszukiwanie pseudokwadratów mod281 mod291 mod293 11 Działanie modułu mod q dodaj mod q Legend e zrobione Każdy moduł oblicza wartość symbolu Legendre’a dla liczby x mod q, gdzie x jest sprawdzaną liczbą a q liczbą pierwszą. Sam moduł nie zna obecnej liczby zna tylko resztę z dzielenia przez q. Każdorazowe zwiększenie liczby sprawdzanej powoduje zwiększenie obecnej reszty o 24 i ewentualne podzielenie liczby przez q. Wartości symboli Legendre’a dla poszczególnych reszt zawarte są w tablicach. Wyszukiwanie pseudokwadratów 12 Wyniki działania układu Wyszukiwanie pseudokwadratów 13 Pozostało do zrobienia Część programowa: Wysyłanie, odbieranie danych z układu Wizualizacja wyników Zapewnienie komunikacji części programowej ze sprzętową przez łącze USB Wyszukiwanie pseudokwadratów 14 Dziękuję za uwagę Wyszukiwanie pseudokwadratów 15