• Nie Znaleziono Wyników

Akcelerator kryptograficzny

W dokumencie Index of /rozprawy2/10579 (Stron 39-44)

3. Implementacja algorytmów kryptograficznych w układach FPGA na przykładzie algo-

3.4. Akcelerator kryptograficzny

na dwie cz˛e´sci (potok dwuetapowy). Pierwsza modyfikacja to realizacja bloku podstawieniowego (S-Box) i operacji liniowej (M 0 i M 1) w postaci T-Box, przy wykorzystaniu zasobów pami˛eci blokowej (BRAM). Z uwagi na rozmiar pojedynczej pami˛eci blokowej w nowoczesnych układach Xilinx, mo˙z-liwe jest zaimplementowanie obu wykorzystywanych bloków T-Box w jednym module BRAM. Druga modyfikacja to wprowadzenie dwuetapowego potoku (operacja T-Box oraz w 2 etapie operacja XOR). O ile pierwsza modyfikacja zwi˛eksza liczb˛e taktów zegara, które s ˛a potrzebne do uko´nczenia pojedyn-czego szyfrowania dwukrotnie, o tyle potokowo´s´c pozwala znacznie zwi˛ekszy´c maksymaln ˛a cz˛estotli-wo´s´c pracy. Zatem zysk w postaci du˙zo mniejszego zu˙zycia zasobów, nie jest zwi ˛azany z du˙z ˛a strat ˛a na przepustowo´sci szyfrowania.

Porównuj ˛ac implementacj˛e zaproponowan ˛a w niniejszej rozprawie oraz w pracy [140] nale˙zy zwró-ci´c uwag˛e na nast˛epuj ˛ace cechy:

– implementacja z niniejszej rozprawy (opublikowana w roku 2008) była pierwsz ˛a implementacj ˛a algorytmu CLEFIA w układzie FPGA.

– w obu implementacjach wykorzystano ró˙zne podej´scia, a tak˙ze realizowano ró˙zne cele. W niniej-szej zastosowano podej´scie w pełni potokowe, a celem było uzyskanie maksymalnej przepusto-wo´sci modułu. Zu˙zycie zasobów logicznych miało na tym etapie drugorz˛edne znaczenie. W pracy [140] skupiono si˛e na obni˙zeniu zu˙zycia zasobów oraz umo˙zliwieniu pracy w trybach innych ni˙z ECB. W tym celu wykorzystano podej´scie iteracyjne.

– w pracy [140] nie wykonano implementacji generatora podkluczy oraz nie przeprowadzono sprz˛e-towej weryfikacji modułu. Stworzenie działaj ˛acego akceleratora kryptograficznego było wa˙znym elementem prac opisanych w niniejszej rozprawie.

Porównanie obu implementacji dla technologii Virtex 4 i Virtex 5 zaprezentowano w tabeli 3.7. Dodatkowo, pokazano wyniki dla implementacji ASIC uzyskane w pracy [169].

Analiza zaprezentowanych wyników potwierdza, ˙ze porównywane implementacje sprz˛etowe maj ˛a skrajnie ró˙zne wła´sciwo´sci. Wersje iteracyjne ASIC i FPGA z pracy [140] charakteryzuj ˛a si˛e wyst˛epo-waniem opó´znienia (ang. delay) od 18 do 36 taktów zegara, wzgl˛ednie niskim u˙zyciem zasobów logicz-nych oraz do´s´c nisk ˛a przepustowo´sci ˛a. Zaproponowana w ramach niniejszej rozprawy w pełni potokowa wersja ma du˙z ˛a przepustowo´s´c, która osi ˛agana jest kosztem znacznego zu˙zycia zasobów logicznych.

3.4. Akcelerator kryptograficzny

Moduł szyfruj ˛acy algorytmu CLEFIA (w wersji dla klucza 128-bitowego) zdecydowano si˛e zaim-plementowa´c i przetestowa´c na dwóch kartach z układami FPGA: ADM-XP (układ FPGA Xilinx Virtex II Pro 100) oraz RASC RC 100 (układ FPGA Xilinx Virtex 4 LX 200).

3.4.1. Implementacja na karcie ADM-XP

Karta ADM-XP firmy Alpha-Data zawiera układ FPGA Virtex II Pro 2VP100 firmy Xilinx, banki pami˛eci DDR SRAM i DDR SDRAM, interfejs PCI oraz przedni i tylny moduł wej´s´c/wyj´s´c, które

umo˙z-T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

3.4. Akcelerator kryptograficzny 36

Tabela 3.7: Porównanie sprz˛etowych implementacji algorytmu CLEFIA

ASIC FPGA

[169] własna [140] I [140] II własna [140] I [140] II Układ 90 nm Virtex 4 Virtex 5

Slice 21,07* 9896 625 205 2612 170 86 BRAM - 0 4+1 2+ 1 0 4+1 2+1 Maks. cz˛estotliwo´s´c 746,27 167 179 294 167 240 366 [MHz] Opó´znienie 18 0** 18 36 0** 18 36 (delay) Przepustowo´s´c 5306 21376 1273 1045 21376 1707 1301 [Mb/s] Przepustowo´s´c/Slice - 2,1 2,0 5,1 8,2 10,0 8,2 [Mb/s/s]

* miara kgates (liczba tysi˛ecy bramek przelicznikowych) ** implementacja potokowa, w odró˙znieniu od iteracyjnej, nie wprowadza opó´znienia

liwiaj ˛a podł ˛aczenie dodatkowych modułów RAM, przetworników AC/CA oraz interfejsu Camera Link. Architektura przedstawiona została na rysunku 3.9. Karta posiada jeszcze dwie dodatkowe cechy, które ułatwiaj ˛a budow˛e akceleratora: mo˙zliwo´s´c transferu danych poprzez DMA (ang. Direct Memory Ac-cess) oraz rozbudowane wsparcie programowe w postaci pakietu SDK (ang. Software Development Kit). W jego skład wchodz ˛a: biblioteka do obsługi karty z poziomu j˛ezyka C/C++ oraz liczne przykładowe aplikacje.

3.4. Akcelerator kryptograficzny 37

Kart˛e ADM-XP ł ˛aczy si˛e z komputerem PC za pomoc ˛a odpowiedniego adaptora. W opisywanych pracach wykorzystywany był moduł ADC-PCM. Urz ˛adzenie, dzi˛eki mostkowi PCI — PCI Intel 21154 ma mo˙zliwo´s´c pracy w standardzie PCI 2.2. w trybie 64 bit / 66 MHz (maksymalny teoretyczny transfer 533 MB/s). Wspierany jest te˙z tryb 32 bit / 33 MHz (maksymalny teoretyczny transfer 133 MB/s). Kart˛e ADM-XP mo˙zna podł ˛aczy´c tak˙ze do adaptora ADC-EMC pracuj ˛acego w standardzie PCI-X. Wi˛ecej informacji dost˛epnych jest w dokumentacji [4].

Podczas prowadzonych wcze´sniej prac, w oparciu o t ˛a konfiguracj˛e, stworzono działaj ˛acy akcelerator kryptograficzny dla algorytmu DES. Osi ˛agni˛eto wówczas maksymalny transfer danych na poziomie ok. 115 MB/s przy cz˛estotliwo´sci pracy ok. 80 MHz [88]. Stworzenie podobnego systemu w przypadku szy-fru CLEFIA okazało si˛e bardzo nieefektywne z powodu 128-bitowej magistrali danych (dla DES miała ona 64 bity). Z uwagi na konieczno´s´c buforowania danych (sklejania dwóch słów 64-bitowych w jedno słowo 128-bitowe) efektywny transfer i cz˛estotliwo´s´c pracy zmalałaby dwukrotnie. Zdecydowano si˛e za-tem na przeprowadzenie testu, w którym w pami˛eci typu ROM umieszczono 32 wektory testowe, które nast˛epnie poddano szyfrowaniu, a rezultat operacji został odczytany był przez komputer PC. Poniewa˙z karta ADM-XP umo˙zliwia płynne ustalanie cz˛estotliwo´sci pracy zegara (w zakresie od 6 MHz — 160 MHz), mo˙zliwe było precyzyjne okre´slenie maksymalnej cz˛estotliwo´sci pracy proponowanej logiki. Dla trybu “definicja” warto´s´c graniczna wynosiła 110 MHz, a dla pozostałych trybów 140 MHz.

3.4.2. Implementacja na karcie RC 100

Karta RC 100 firmy SGI współpracuje z superkomputerem Altix 4700, umo˙zliwiaj ˛ac tworzenie apli-kacji programowo-sprz˛etowych, w których cz˛e´s´c oblicze´n przeprowadzona jest w zasobach rekonfiguro-walnych. Wyposa˙zona jest w dwa układy FPGA Virtex 4 LX 200 firmy Xilinx oraz 10 modułów pami˛eci QDR SRAM o pojemno´sci 8 MB (po 5 modułów na układ FPGA). Karta podł ˛aczona jest do systemu komputerowego za pomoc ˛a szybkiego ł ˛acza NUMALink, które teoretycznie zapewnia transfer 3,2 GB/s (w obie strony). Praktyczna weryfikacja maksymalnej przepustowo´sci ł ˛acza zaprezentowana w pracach [114] i [182] pokazała, ˙ze w zale˙zno´sci od trybu pracy, transfer wynosił 2,4 i 1,4 GB/s. Przy projek-towaniu logiki wykorzystuje si˛e dostarczone przez producenta SDK oraz interfejs do pami˛eci RAM i magistrali NUMALink — Core Services. Szczegóły budowy oraz korzystania z karty opisane s ˛a w do-kumencie [64].

Opisane ´srodowisko bardzo dobrze nadaje si˛e do budowy akceleratora kryptograficznego, poniewa˙z zapewnia wydajn ˛a komunikacj˛e i pozwala w pełni wykorzysta´c mo˙zliwo´sci modułu sprz˛etowego FPGA. Dla zrealizowanej implementacji algorytmu CLEFIA, cz˛estotliwo´s´c pracy 100 MHz oznacza, ˙ze przepu-stowo´s´c szyfrowanych danych osi ˛aga 1,5 GB/s.

Logika na karcie RC 100 mo˙ze pracowa´c z programowalnymi cz˛estotliwo´sciami zegara 50, 66, 100 i 200 MHz. Analiza danych zaprezentowanych w tabeli 3.5 pokazała, ˙ze wszystkie wersje algorytmu przeznaczone dla technologii Virtex 4 powinny dobrze działa´c przy cz˛estotliwo´sci 100 MHz. Tez˛e t ˛a udało si˛e potwierdzi´c eksperymentalnie, uruchamiaj ˛ac algorytm na karcie RC 100 i przeprowadzaj ˛ac testy na losowym zbiorze danych. Podobne testy, przeprowadzone dla cz˛estotliwo´sci zegara 200 MHz pokazały, ˙ze ˙zadna z wersji nie działa poprawnie, co jest zgodne z wynikami otrzymanymi w symulacji.

T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

3.4. Akcelerator kryptograficzny 38

Maksymalny uzyskany transfer danych (1,2 GB/s) jest ni˙zszy od maksymalnej przepustowo´sci mo-dułu szyfruj ˛acego CLEFIA, pracuj ˛acego przy cz˛estotliwo´sci 100 MHz (1,5 GB/s). Zatem, w przypadku omawianej aplikacji, cz˛estotliwo´s´c 100 MHz wydaje si˛e wystarczaj ˛aca. W warunkach wyst˛epowania górnego limitu transferu (1,2 GB/s), gdy nie jest wymagane zastosowanie rozwi ˛azania pracuj ˛acego z naj-wy˙zsz ˛a mo˙zliw ˛a cz˛estotliwo´sci ˛a, wskazane jest u˙zycie opracowanego modułu szyfrowania w wersji "definition", poniewa˙z wymaga ono najmniejszych zasobów logicznych. Zaprezentowany akcelerator kryptograficzny wykonuje szyfrowanie ponad 6 razy szybciej ni˙z opisana w dokumencie [164] aplikacja programowa, działaj ˛aca na procesorze ogólnego przeznaczenia (190 MB/s na procesorze Athlon 4000+). ´Swiadczy to o realnej przewadze rozwi ˛azania rekonfigurowalnego nad programowym. Poniewa˙z ´srodo-wisko HPC karty RC 100 umo˙zliwia transfer danych z kilkakrotnie wi˛eksz ˛a pr˛edko´sci ˛a ni˙z popularne standardy (PCI, PCI-X, podstawowe wersje PCI-E), bardzo dobrze nadaje si˛e do testowania wysoko wydajnych algorytmów w układach FPGA.

3.4.3. Wnioski z budowy akceleratora kryptograficznego

Układy FPGA umo˙zliwiaj ˛a implementacj˛e wydajnych modułów szyfruj ˛acych, co zostało pokazane w poprzednich rozdziałach. Obecnie, wraz z stosowaniem nowych technologii (28-nm) maksymalne cz˛estotliwo´sci pracy logiki zwi˛ekszaj ˛a si˛e. Jednak˙ze, powstaje pytanie, czy wraz ze wzrostem tego para-metru, ro´snie tak˙ze realna szybko´s´c działania akceleratora kryptograficznego. Je˙zeli za akcelerator uzna si˛e urz ˛adzenie, które na wej´sciu przyjmuje N-bitów danych niezaszyfrowanych, a na wyj´sciu zawraca N-bitów zaszyfrowanych, to jego maksymaln ˛a przepustowo´s´c oblicza si˛e jako N × cz˛estotliwo´s´c. Przy-kładowo dla opisanego w rozdziale 3.3.7 potokowego modułu CLEFIA otrzymuje si˛e 128 bitów × 167 MHz = 21376 Mb/s. Powstaje pytanie jak dostarczy´c i odebra´c taki strumie´n danych? Schemat akcelera-tora współpracuj ˛acego z komputerem PC (lub superkomputerem) pokazano na rysunku 3.10.

FPGA CLEFIA 21376 Mb/s PCI-64 (900 Mb/s) NUMA Link (9830 Mb/s) PC Superkomputer HDD

Rysunek 3.10: Schemat akceleratora kryptograficznego Wyró˙zni´c mo˙zna trzy elementy, które decyduj ˛a o maksymalnej przepustowo´sci: – przepustowo´s´c logiki w samym układzie FPGA,

– przepustowo´s´c ł ˛acz ˛a pomi˛edzy komputerem nadrz˛ednym (host), a układem FPGA, – przepustowo´s´c odczytu i zapisu z dysku twardego komputera.

Szerszego komentarza wymagaj ˛a dwa ostanie elementy. W przypadku karty ADM-XP komunikacja pomi˛edzy komputerem, a FPGA odbywa si˛e za pomoc ˛a mechanizmu DMA (ang. Direct Memory Access — bezpo´sredni dost˛ep do pami˛eci operacyjnej). Kontroler DMA na karacie ADM-XP zarz ˛adza zapisem i odczytem z pami˛eci RAM komputera. Przeprowadzone eksperymenty [88] pokazały, ˙ze mo˙zliwe jest

3.4. Akcelerator kryptograficzny 39

uzyskanie transferu ok. 900 Mb/s. W przypadku karty RC-100 uzyskano maksymalny transfer 9830 Mb/s. Obie warto´sci s ˛a ni˙zsze od maksymalnej przepustowo´sci modułu CLEFIA.

Opisany powy˙zej przypadek zakłada, ˙ze dane, które b˛ed ˛a szyfrowane lub deszyfrowane, znajduj ˛a si˛e w pami˛eci RAM komputera (lub superkomputera). W przypadku, gdy celem jest przeprowadzenie ope-racji kryptograficznej na danych przechowywanych na dysku twardym, nale˙zy rozwa˙zy´c jeszcze mak-symaln ˛a pr˛edko´s´c zapisu i odczytu tego urz ˛adzenia. W badaniach przeprowadzonych w roku 2008 uzy-skano maksymaln ˛a pr˛edko´s´c zapisu i odczytu z dysku na poziomie ok. 600 Mb/s. Współcze´snie dost˛epne dyski SSD (ang. Solid State Drive), zbudowane w oparciu o pami˛e´c typu flash, umo˙zliwiaj ˛a transfer da-nych z pr˛edko´sciami do 4800 Mb/s, co powoduje, ˙ze w ˛askie gardło zostaje przeniesione z transferu dysk twardy — RAM do transferu RAM — FPGA. Warto zauwa˙zy´c, ˙ze zaimplementowany moduł CLEFIA zapewnia wy˙zsz ˛a przepustowo´s´c.

W najnowszych kartach z układem FPGA najbardziej wydajnym ł ˛aczem jest PCI Express. Przykła-dowo karta VC707 firmy Xilinx, wyposa˙zona w układ Virtex 7 dysponuje mo˙zliwo´sci ˛a pracy w standar-dzie PCI Express drugiej generacji (gen2) x8, a architektura przygotowana jest do pracy w standarstandar-dzie PCI Express trzeciej generacji (gen3). Zatem teoretycznie mo˙zliwe jest uzyskanie transferu na nast˛epu-j ˛acych poziomach:

– gen2 — 25600 Mb/s (przy zało˙zeniu, ˙ze 20% transferu tracone jest na protokół komunikacyjny, a przepustowo´s´c pojedynczego ł ˛acza to 4000 Mb/s),

– gen3 — 64553 Mb/s (przy zało˙zeniu, ˙ze 1,5% transferu tracone jest na protokół komunikacyjny, a przepustowo´s´c pojedynczego ł ˛acza to 8192 Mb/s).

Warto jeszcze zwróci´c uwag˛e, ˙ze warto´sci teoretyczne mog ˛a znacznie odbiega´c od praktycznych, z uwagi na specyfik˛e architektury systemu PC (np. współdzielenie magistrali przez kilka urz ˛adze´n). Graficzne zestawienie maksymalnych transferów zaprezentowano na rysunku 3.11. Zaproponowana im-plementacja szyfru CLEFIA zapewnia przepustowo´s´c nieznacznie mniejsz ˛a od PCI Express gen2 oraz wi˛eksz ˛a od dost˛epnych pami˛eci masowych (SSD, HDD).

0 10000 20000 30000 40000 50000 60000 [Mb/s] HDD ADM-XP SSD DES RC-100 CLEFIA

PCI Express gen 2 PCI Express gen 3

Rysunek 3.11: Porównanie maksymalnych transferów danych

Podsumowuj ˛ac powy˙zsze rozwa˙zania warto podkre´sli´c, ˙ze na przepustowo´s´c implementowanego w układzie FPGA modułu nale˙zy spojrze´c równie˙z przez pryzmat mo˙zliwo´sci dostarczenia i odebrania przetwarzanych danych. Układy FPGA s ˛a niejednokrotnie w stanie zapewni´c szybko´s´c przetwarzania danych wi˛eksz ˛a, ni˙z mo˙zliwa do wykorzystania w konkretnym systemie obliczeniowym. Jak pokazuje podany przykład modułu CLEFIA, ograniczeniem cz˛esto bywa pr˛edko´s´c pracy dysku twardego lub ma-gistrali ł ˛acz ˛acej komputer PC z kart ˛a FPGA, a nie szybko´s´c przetwarzania w układzie FPGA.

T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

W dokumencie Index of /rozprawy2/10579 (Stron 39-44)