(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