• Nie Znaleziono Wyników

Układ generowania podkluczy

W dokumencie W numerze m.in.: (Stron 41-47)

WE WY

Andrzej Skorupski, Szczepan Kaniewski 40

Realizując tę koncepcję można spodziewać się rozwiązania składającego się z dużej liczby elementów logicznych. Dlatego takie rozwiązanie będzie mogło zostać zrealizowane tylko w największych układach FPGA. Szybkość działania układu będzie wynikała z całkowitego opóźnienia układu iteracyjnego. Najtrud-niejszym problemem będzie implementacja układu generowania podkluczy, gdyż jest to układ 128 wejściowy i 52x16=832 wyjściowy. Układ ten nie wy-maga elementów logicznych, a jedynie wykorzystuje magistrale połączeń.

Badania symulacyjne z zastosowaniem systemu Quartus firmy Altera pokaza-ły, że taki układ da się zrealizować używając jednego z największych układów FPGA. Wymagana liczba elementów wynosi 40200 i dodatkowo 68 mnożarek 9. bitowych, co wymusza zastosowanie drogiego układu FPGA (układ z rodziny Cyclone II EP2C50F484C8 w cenie ok. 180$). Czas opóźnienia układu wynosi 1.06 μs. Taki czas opóźnienia wynika z iteracyjności procesu i jego wielkość stanowi pewne zaskoczenie, gdyż projektant nie ma wpływu na sposób prowa-dzenia połączeń przez system Quartus. Wymagana liczba końcówek układu wynosi 256 (64 wejścia, 128 wejść klucza i 64 wyjścia).

4.2. Układ z podkluczami generowanymi sekwencyjnie

Skomplikowane połączenia kombinacyjnego generowania podkluczy (więc długi czas opóźnienia) można wyeliminować przez zastosowanie sekwencyjne-go układu generowania podkluczy. Generowanie podkluczy może być tak zorga-nizowane, aby w czasie pojedynczej iteracji dostępne były podklucze potrzebne tylko dla tej iteracji. W takim rozwiązaniu można układ iteracyjny zastąpić ukła-dem sekwencyjnym, co oznacza, że można zrealizować układ szyfrowania tylko dla jednej (pośród ośmiu) iteracji i wyniki z wyjścia podawać ponownie na wej-ścia (dla następnej iteracji). Na rysunku 7 pokazano schemat blokowy takiego układu.

Rys. 7. Sekwencyjny układ szyfratora

Generator Dane 64 bity Podklucze 96 bity

Numer Iteracji

4 bity

Układ jednej iteracji Dane 64 bity

Klucz 128 bity Start Zegar

Wynik szyfrowania aktualnej iteracji 64 bity

Wynik 64 bity

O możliwości jednoukładowej implementacji szyfratora blokowego... 41 Symulacja takiej koncepcji pokazała, że liczba koniecznych elementów spa-dła do 6851 bloków LE i 8 mnożarek 9. bitowych. Pozwala to na zastosowanie znacznie mniejszego układu FPGA (EP2C35F672C6 o cenie ok. 38$). Wydłu-żył się jednak czas opóźnienia do 2.36 μs.

4.3. Układ szyfrowania ze zdekomponowaną iteracją

Celem dalszego zmniejszenia liczby użytych elementów logicznych można zaprojektować szyfrator dekomponując układ pojedynczej iteracji na poszcze-gólne operacje (sumowania logicznego, iloczynowania logicznego i operacji sumy mod 2). Koncepcja taka umożliwi dalsze zmniejszenie liczby użytych elementów, choć prawdopodobnie kosztem zmniejszenia szybkości działania.

Na jedną iterację algorytmu IDEA składają się cztery operacje mnożenia modu-lo 264 +1, cztery operacje dodawania modulo 264 oraz sześć operacji sumy mo-dulo 2. Można zaprojektować trzy układy realizujące poszczególne wyżej wy-mienione operacje i odpowiednio sterować podawaniem argumentów. Schemat realizacji pojedynczej iteracji przedstawiono na rysunku 8.

Rys. 8. Schemat zdekomponowanego układu pojedynczej iteracji

W wyniku syntezy tego procesu otrzymano układ składający się z 2804 blo-ków LE i wykorzystujący dwie mnożarki 9. bitowe. Czas opóźnienia takiego układu wzrósł do 10,36 μs.

4.4. Układ szyfrowania z szeregowym wejściem dla klucza

Zmiany w konstrukcji układu zmierzające do zmniejszenia liczby wymaga-nych elementów nie prowadziły do radykalnego zmniejszenia kosztu urządze-nia. Jest to wynikiem zapotrzebowania układu na końcówki wejścia/wyjścia.

S umato r m odulo 216

M nożark a mo dulo 2 +116

P ostelementowy sumator modulo 2

Bank wyników pośrednich

Andrzej Skorupski, Szczepan Kaniewski 42

Aby zatem ograniczyć zapotrzebowanie na końcówki, zdecydowano się na roz-patrzenie wariantu projektu z szeregowym podawaniem klucza szyfrującego.

Zamieniono w ten sposób 128-bitowe wejście na wejście jednobitowe. Dodano za to element układu odpowiedzialny za konwersję podawanych w kolejnych chwilach czasowych bitów do wymaganej postaci tak, aby wykorzystać rozwią-zanie zastosowane w projekcie z podpunktu 2.2. Uzyskano układ, który składa się z 6570 elementów, jego czas opóźnienia wynosi 34.4 μs, ale daje się umie-ścić w układzie EP2C8AF256A7, którego cena wynosi 23,5$.

5. Podsumowanie

Analizując poszczególne rozwiązania można rozróżniać je pod względem wymaganej liczby elementów i szybkości działania. Różnice dotyczące liczby elementów można przełożyć na wymagany typ zastosowanego układu FPGA, a zatem na cenę. Z podanych wyników symulacji widać, że im mniej elemen-tów, tym wolniejszy układ. Przyjęcie kompromisu pomiędzy przedstawionymi rozwiązaniami może silnie zależeć od długości planowanej serii produkcyjnej.

Planując krótką serię, można jako kryterium optymalizacji przyjąć szybkość działania z większą wagą niż cenę i wtedy należy wybrać jeden z pierwszych wariantów rozwiązań. Jeśli założy się długą serię produkcyjną, to jako kryte-rium optymalizacji z większą wagą należy wybrać cenę i wtedy warto przyjąć do realizacji jeden z ostatnich wariantów.

L

ITERATURA

:

[1] Anderson R., Inżynieria zabezpieczeń, WNT 2005.

[2] Bauer F.L., Sekrety kryptografii, Helion 2003.

[3] Kaniewski S., Metodyka projektowania złożonych układów cyfrowych w strukturach FPGA, Politechnika Warszawska, praca magisterska 2008.

[4] Menezes A.J., Kryptografia stosowana, WNT 2005.

[5] Pawłowski M., Materiały do wykładu z przedmiotu Projektowanie Urzą-dzeń Cyfrowych, Materiały wewnętrzne Instytutu Informatyki PW.

[6] Rybicka-Francik K., Opis algorytmu IDEA, http://sun.iinf.polsl.gliwice.pl/~kfrancik/bsk.

[7] Rybicka-Francik K., Opis algorytmu DES, http://sun.iinf.polsl.gliwice.pl/~kfrancik/bsk.

[8] Schneider B., Kryptografia dla praktyków, WNT 1995.

[9] Shakill K., Język VHDL, WNT 2001.

[10] Stinson D.R., Kryptografia w teorii i praktyce, WNT 2005.

O możliwości jednoukładowej implementacji szyfratora blokowego... 43

POSSIBILITY OF ONE DEVICE IMPLEMENTATION BLOCK CODING IN PROGRAMMABLE STRUCTURES

Abstract

The main target of this paper is a comparison of various FPGA’s implementation of IDEA cryptography algorithm. Wide range of programmable devices make possible to choose a solution with appropriate parameters like speed or cost. Rapid prototyping with simulation and analysis of few parameters is possible using computer aided design systems EDA. Results of such projects permit achieving a compromise between cost and technical parameters.

STUDIA INFORMATYCZNE

NR 1 ROK 2010

W dokumencie W numerze m.in.: (Stron 41-47)

Powiązane dokumenty