background image

409

W dzisiejszych czasach trudno sobie wyobrazić dziedzinę szero-

ko  rozumianej  telekomunikacji,  w której  cyfrowe  przetwarzanie  sy-
gnałów  DSP (Digital  Signal  Processing)  nie  miałoby  zasadniczego
znaczenia. Odnosi się to do wszystkich warstw systemu telekomuni-
kacyjnego:  od  urządzeń  przetwarzających  obrazy,  dźwięki,  dane 
alfanumeryczne na sygnały (i odwrotnie), przez sieci telekomunika-
cyjne  przenoszące  i komutujące  te  sygnały,  aż  po  systemy  urzą-
dzeń, zapewniających dostarczanie różnorakich treści, zwanych po-
wszechnie usługami. Można tu wymienić takie przykłady, jak: mode-
my  telefoniczne,  systemy  cyfrowego  szerokopasmowego  dostępu
abonenckiego  DSL (Digital  Subscriber  Line),  dostępu  radiowego,
rozpoznawanie  mowy  i mówców,  telewizja  cyfrowa  wysokiej  roz-
dzielczości, telefonia komórkowa i satelitarna czy związana z więk-
szością wymienionych systemów – kryptografia. Trzeba podkreślić,
że  tak  szerokie  zastosowanie  techniki  cyfrowej  w telekomunikacji
znalazło zastosowanie dopiero w momencie opanowania technolo-
gii  wytwarzania  na  wielką  skalę  scalonych  układów  specjalizowa-
nych ASIC (Application Specific Integrated Circuits). Coraz większą
popularnością w tym zakresie cieszą się procesory sygnałowe – mi-
krokomputery skonstruowane specjalnie do cyfrowego przetwarza-
nia sygnałów. Obecnie z procesorami sygnałowymi w wielu zastoso-
waniach  mogą  konkurować  układy  programowalne  i reprogramo-
walne. 

Dynamiczny rozwój cyfrowych technik telekomunikacyjnych daje

się  zauważyć  zwłaszcza  w systemach  multimedialnych.  Ogólnie
można  powiedzieć,  że  telekomunikacyjny  system  multimedialny  to
zespół środków technicznych i procesów, umożliwiających przekaz
i prezentację wiadomości za pomocą przynajmniej dwóch, wzajem-
nie zsynchronizowanych, środków przekazu, takich jak: mowa, mu-
zyka, ruchomy obraz, tekst, grafika itp. Powszechnie jest on utożsa-
miany z takimi usługami, jak: wideotelefonia, wideokonferencja, wi-
deo  na  żądanie  (lub  prawie  na  żądanie),  telepraca,  teleedukacja,
telezakupy itd. W takim systemie wyróżnia się trzy podstawowe ele-
menty funkcjonalne: serwer usług multimedialnych, terminale multi-
medialne oraz sieć dostępu do usług. Zadaniem sieci jest przenie-
sienie sygnałów dotyczących usług – oferowanych przez serwery –
do terminali, a także wymiana danych między serwerami. Płaszczy-
zna transportowa takiej sieci jest na ogół bardzo dobrze rozwinięta
i przystosowana do przenoszenia sygnałów cyfrowych z dużą szyb-
kością.  Najczęściej  są  w niej  stosowane  kable  światłowodowe
i szybkie techniki transmisyjne: SDHATMFrame-Relay itp. Najbar-
dziej krytycznym elementem tego systemu jest abonencka sieć do-
stępowa, przenosząca sygnały multimedialne od węzłów sieci trans-
portowej  do  terminalu  i na  odwrót.  Ze  względu  na  istniejącą  infra-
strukturę  kablową  tej  sieci  (najczęściej  symetryczna  para
przewodów miedzianych, tzw. skrętka), stało się konieczne opraco-
wanie systemów umożliwiających transmisję cyfrową do (i od) abo-
nenta z dużą szybkością. 

W tej  części  sieci  powszechnie  przyjmowana  szerokość  pasma

podstawowego 300 Hz – 3400 Hz nie wynika z własności linii trans-
misyjnej,  lecz  z przepustowości  filtrów  stosowanych  (dla  transmisji
telefonicznej) w punktach styku z siecią transportową. Wspomniana
skrętka  umożliwia  (oczywiście  po  usunięciu  filtrów)  wykorzystanie
pasma do 1 MHz, a jedynym ograniczeniem szybkości transmisji cy-
frowej jest długość kabla i jakość jego wykonania. Efektywne zwięk-
szenie  wykorzystania  pasma  do  transmisji  dwukierunkowej  osiąga
się przez stosowanie odpowiednich kodów liniowych oraz przez sto-
sowanie  cyfrowej  kompensacji  (kasowania)  echa  (Echo  Canceller)
w układach rozgałęźnych po stronie abonenta i po stronie sieci. 

Na  przykład  w sieciach  ISDN dla  dostępu  podstawowego 

(2B + D) do transmisji o szybkości 144 kbit/s (2 kanały po 64 kbit/s
+ 16 kbit/s dla kanału sygnalizacyjnego) wykorzystuje się kod linio-
wy  2B1Q  (2-Binary 1-Quatenary)  oraz  technikę  kompensacji  echa.
Sprowadza się ona do wytworzenia w nadajniku przez adaptacyjny
filtr cyfrowy sygnału identycznego z przebiegiem echowym i odjęcia
go od całkowitego sygnału odbieranego. 

Podobną zasadę kasowania echa stosuje się w systemach dostę-

powych DSL. Opracowano (i dalej się rozwija) systemy HDSL (High
data  rate  Digital  Subscribe  Line
),  ADSL (Asymmetric  Digital  Sub-
scribe Line
), VDSL (Very high data rate Digital Subscribe Line) o róż-
nych przepływnościach i różnych technikach kodowania. 

Kodowanie  liniowe  i cyfrowe  kasowanie  echa  w systemach  do-

stępowych  i sieciach  ISDN  to  niewielka  część  szerokiego  zakresu
stosowania  cyfrowego  przetwarzania  sygnałów.  Ogromne  znacze-
nie  mają  techniki  kodowania  sygnałów  telefonicznych  i wizyjnych,
umożliwiające  zmniejszenie  przepływności  kanałów  służących  do
ich przenoszenia, a także wykrywanie i ewentualnie korekcję błędów
transmisji. Wystarczy powiedzieć, że w systemach radiokomunikacji
ruchomej  szybkość  strumienia  sygnału  mowy  zmniejsza  się 
z 64 kbit/s (w systemach PCM) do szybkości poniżej 10 kbit/s. 

W społeczeństwie informacyjnym wiele dziedzin życia gospodar-

czego i kulturalnego korzysta z elektronicznego przekazywania da-
nych. Ogromnego znaczenia nabiera zatem poufność, a nawet taj-
ność  przekazywanych  informacji.  Z coraz  większym  przekonaniem
przyjmowany  jest  pogląd,  że  ochrona  danych  będzie  odgrywała
podstawową rolę w funkcjonowaniu przyszłych systemów informa-
cyjnych. Dotyczy ona głównie aplikacji telekomunikacyjnych, takich
jak telefonia bezprzewodowa i komórkowa, faksy, pagery, płatna te-
lewizja,  komercyjne  produkty  audio/wideo  itp.  Jednak  najważniej-
szym obszarem, w którym decydujące znaczenie mają mechanizmy
ochrony  informacji,  jest  komunikacja  cyfrowa,  a w szczególności
sieć internetowa. 

Mechanizmy ochrony komunikacji cyfrowej są realizowane za po-

mocą  specjalnych  protokołów  bezpieczeństwa  i w formie  algoryt-
mów  kryptograficznych  stały  się  częścią  wielu  standardowych  roz-
wiązań,  jak  IPSec (protokół  internetowy),  SSL (Secure  Socket 
Layer
),  szyfrowane  komórki  sieci  ATM  oraz  różnych  standardów 
ANSI dla bankowości. Eksplozja wzrostu usług internetowych w za-
kresie handlu i biznesu, w tym operacji finansowych i obrotu kapita-
łowego, spowodowała, że realizacja mechanizmów zabezpieczenia
przed nieuprawnionym dostępem do informacji stała się ogromnym
wyzwaniem. 

PRZEGLĄD TELEKOMUNIKACYJNY  

ROCZNIK LXXVI

nr 8–9/2003

Tadeusz ŁUBA*, Krzysztof JASIŃSKI*, Bogdan ZBIERZCHOWSKI*

Programowalne układy

przetwarzania sygnałów 

i informacji – technika cyfrowa 

w multimediach i kryptografii

*

Instytut Telekomunikacji Politechniki Warszawskiej
e-mail: luba@tele.pw.edu.pl, kjasio@tele.pw.edu.pl, 
bogdan@tele.pw.edu.pl 

background image

Jak widać, zakres zastosowań układów cyfrowych w telekomuni-

kacji będzie coraz większy i niedobrze byłoby, gdyby w rozwoju tej
techniki i jej ogromnych rynkowych możliwości nie uczestniczyły fir-
my polskie. Zrozumienie tych szans jest szczególnie istotne w dobie
rewolucyjnego rozwoju technologii układów programowalnych [26].
Dotychczasowe sukcesy polskich firm w komercyjnych aplikacjach
techniki cyfrowej w telekomunikacji potwierdzają tę tezę. Doskona-
łym przykładem może tu być firma ADB Polska, założona przed pię-
ciu laty przez pracowników naukowych Politechniki Zielonogórskiej.
Z dużym  powodzeniem  opracowuje  ona  i sprzedaje  w milionach
sztuk – również na rynki zagraniczne – urządzenia telewizji cyfrowej. 

W artykule opisano podstawowe właściwości układów programo-

walnych oraz możliwości ich zastosowania w przetwarzaniu sygna-
łów i informacji. Omówiono przykłady eksperymentalnych i przemy-
słowych aplikacji multimedialnych oraz realizacje algorytmów kryp-
tograficznych.  Przedstawiono  nową  ofertę  na  rynku  cyfrowych
układów telekomunikacyjnych – produkty wirtualne. Wskazano tak-
że na ogromne znaczenie syntezy logicznej w tych zastosowaniach. 

ROLA UKŁADÓW PROGRAMOWALNYCH
W ROZWOJU TECHNIKI CYFROWEJ
DLA POTRZEB PRZETWARZANIA 
SYGNAŁÓW I INFORMACJI

W  technice  cyfrowej  w ostatnich  latach  obserwuje  się  ogromne

zmiany w metodach projektowania układów i systemów cyfrowych
oraz  w technologiach  wykonywania  urządzeń  cyfrowych.  Z punktu
widzenia technologii jest to postęp od układów katalogowych i płyt-
ki  drukowanej  do  specjalizowanych  układów  ASIC i specjalizowa-
nych procesorów ASIP (Application Specific Instruction Set Proces-
sors
)  o złożoności  sięgającej  milionów  bramek.  W szczególności
udoskonalenia  procesu  technologicznego,  polegające  na  reduko-
waniu  wymiarów  elementów  półprzewodnikowych  i zwiększaniu
liczby warstw metalizowanych połączeń, a także nowe techniki pro-
gramowania umożliwiły opracowanie generacji struktur FPLD (Field
Programmable Logic Devices
) z możliwością reprogramowania i re-
konfiguracji  [21],  [30].  Te  cechy  układów  FPLD  umożliwiają  imple-
mentacje algorytmów DSP, niekiedy znacznie lepsze w porównaniu
z implementacjami na procesorach sygnałowych. 

Obecnie  produkowane  układy  FPLD,  w zależności  od  struktury,

klasyfikuje  się  na  układy  matrycowe  –  CPLD (Complex  PLD)  oraz
układy komórkowe – FPGA. 

Elementem charakterystycznym dla architektury CPLD jest wyko-

rzystanie w układach wielu struktur typu PAL (Programmable Array
Logic
) zgrupowanych w bloki SPLD (Simple PLD). Bloki te są ze so-
bą połączone szybką, programowaną matrycą połączeniową, jak to
pokazano na rys. 1. Jej zadaniem jest przesyłanie sygnałów między

wejściami  zewnętrznymi  a wewnętrznymi  blokami  logicznymi  oraz
między tymi blokami. 

Niezależnie od wykonania, ważnymi parametrami matrycy połą-

czeniowej,  będącej  krytycznym  fragmentem  układów  CPLD,  są:
zdolność łączeniowa i czas propagacji sygnału. Pod pojęciem zdol-
ności  łączeniowej  rozumie  się  możliwość  łączenia  dowolnych  ele-
mentów struktury programowalnej. Producenci układów rozwiązują
związane z tym problemy w różny sposób, czego efektem są różno-
rodne  architektury  matryc  połączeniowych,  w „dużych”  układach
CPLD – także wielopoziomowe. Architektura matrycy połączeniowej
i technologia zastosowana do jej realizacji mają duży wpływ na czas
propagacji sygnału. We współczesnych układach CPLD czas propa-
gacji sygnału przez matrycę połączeniową nie przekracza zazwyczaj
0,8... 3 ns (m. in. matryce GRP firmy Lattice, PIA – Altera, PIM – Cy-
press, ZIA – Xilinx). Dostępne są także układy, w których czas pro-
pagacji skrócono do ok. 100... 200 ps (ZIA, AIM – Xilinx). 

Grupą układów programowalnych o architekturze i budowie ele-

mentarnych komórek logicznych, znacznie odmiennej od architektu-
ry  i budowy  komórek  układów  SPLD  i CPLD,  są  struktury  FPGA
(Field Progammable Gate Array). Na rys. 2 pokazano ułożenie komó-
rek logicznych oraz traktów połączeniowych, charakterystyczne dla
większości układów FPGA. 

410

PRZEGLĄD TELEKOMUNIKACYJNY 

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys.  1.  Struktura  CPLD.  Oznaczenia:  PIA  (Programmable  Inter-

connect Array) – matryca połączeniowa, SPLD – prosta struktura PLD 
typu PAL

O

Rys. 2. Struktura FPGA. Oznaczenia: PIP (Programmable Intercon-

nect  Point)  –  programowalne  punkty  połączeniowe,  RC  (Routing
Channels
) – trakty połączeniowe, I/O – bloki wejściowo-wyjściowe, LB
(Logic Blocks
) – bloki logiczne

Praktycznie  wszystkie  obecnie  produkowane  układy  programo-

walne  są  wyposażone  w reprogramowalne  matryce  pamięciowe.
Najczęściej są stosowane dwa rodzaje matryc: z komórkami pamię-
ci SRAM (Static RAM) i trwałej EEPROM, a coraz rzadziej PROM lub
EPROM. Układy reprogramowalne CPLD i FPGA oferuje na świecie
kilku  producentów.  Są  to  zarówno  układy  z matrycami  SRAM,  jak
i EEPROM.  Nieulotne  matryce  EEPROM  charakteryzują  się  ograni-
czoną liczbą dopuszczalnych cykli reprogramowania, zazwyczaj od
100 do 1000, gwarantują natomiast długi czas przechowywania za-
pisanych w nich konfiguracji (do 100 lat) bez zasilania. 

W aplikacjach wymagających dużej pojemności logicznej są sto-

sowane przede wszystkim struktury FPGA, w których rolę elementu
pamięciowego  spełnia  komórka  pamięci  nietrwałej  SRAM.  Po  każ-
dorazowym  włączeniu  zasilania  niezbędne  jest  wprowadzenie  da-
nych o konfiguracji, czyli tzw. inicjalizacja konfiguracji matrycy. Pro-
ces rekonfiguracji we wszystkich układach FPGA przebiega podob-
nie,  przy  czym  –  w zależności  od  typu  układu  –  czas  inicjalizacji
struktury waha się od 1ms (układy serii AT6000) aż do 320 ms (ukła-
dy FLEX10K). Dzięki wykorzystaniu standardowych interfejsów sze-
regowych SDI (Serial Data Interface) w układach FPGA oraz JTAG-
ISP 
w układach CPLD, dane konfiguracyjne można „załadować” do

background image

411

struktury programowalnej za pomocą lokalnego sterownika lub spe-
cjalnego interfejsu programującego. Strumień danych konfiguracyj-
nych  jest  zwykle  przechowywany  w standardowej  pamięci  stałej
o dowolnej organizacji lub w specjalnej pamięci szeregowej. 

Ze względu na właściwości matryc pamięciowych, do stosowania

w aplikacjach  rekonfigurowalnych  są  predestynowane  układy
FPGA. 

Głównym celem rekonfiguracji systemu jest dostosowanie struk-

tury funkcjonalnej, dostępnej w ramach jego architektury podstawo-
wej, do wymagań realizowanych algorytmów. W przypadku realiza-
cji algorytmów, które „nie mieszczą” się w całości w strukturze sys-
temu,  istnieje  konieczność  ich  rozłożenia  na  sekwencje  podzadań
realizowanych kolejno w odpowiednich konfiguracjach. Warunkiem
niezbędnym  do  realizacji  całego  algorytmu  jest  zdolność  systemu
rekonfigurowalnego  do  wymiany  danych  konfiguracyjnych  wraz
z przekazaniem  wyników  uzyskanych  w bieżącej  konfiguracji  do
kontynuowania  obliczeń  w następnej  konfiguracji.  Taki  sposób  re-
konfiguracji systemu podczas jego działania jest wyróżniany termi-
nem run-time

Obecnie  stosuje  się  kilka  metod  rekonfiguracji  układów  FPGA

[40]. Najprostszym implementacyjnie, ale niezbyt efektywnym spo-
sobem rekonfiguracji, jest zmiana konfiguracji (tzw. kontekstu) całej
struktury programowalnej. Polega ona na szeregowym wprowadze-
niu strumienia nowych danych konfiguracyjnych. Wadą tej metody
jest konieczność przerwania pracy całego układu, co w konsekwen-
cji  może  obniżyć  wydajność  całego  systemu.  Układy  wyposażone
w taki mechanizm rekonfiguracji są nazywane jednokontekstowymi.
Większość obecnie produkowanych układów FPGA można uważać
za układy jednokontekstowe o różnych czasach rekonfiguracji. 

Bardziej efektywnym sposobem rekonfiguracji jest rekonfiguracja

częściowa. Jest ona możliwa pod warunkiem przerwania pracy ukła-
du, podobnie jak w przypadku układów jednokontekstowych, cho-
ciaż dzięki możliwości wymiany tylko niezbędnej części danych kon-
figuracyjnych  średni  czas  rekonfiguracji  może  być  –  zależnie  od
przyjętego sposobu przydziału zadań – znacznie krótszy. 

Do  najbardziej  znanych  układów  rekonfigurowalnych  należą

struktury  AT40K/KA/KAL,  AT6000  oraz  FPSLIC  AT94  (wszystkie 
wymienione  rodziny  są  to  układy  FPGA,  produkowane  przez  firmę
Atmel [13]) oraz Virtex/Virtex II i Virtex E (produkowane przez firmę
Xilinx). 

Ogromną zaletą układów AT40K/KA/KAL oraz AT6000 jest możli-

wość  ich  częściowej  rekonfiguracji  bez  konieczności  „wyłączania”
pozostałej, nie poddawanej rekonfiguracji, części układu. Uzyskanie
tak dobrego efektu użytkowego jest możliwe dzięki zaawansowane-
mu mechanizmowi wymiany danych konfiguracyjnych CacheLogic,
w który wyposażono wszystkie układy obydwu rodzin. 

Zupełnie  inną  architekturę  i nieco  inne  walory  użytkowe  mają

układy AT94, nazywane w nomenklaturze producenta także FPSLIC
(Field Programmable System Level Integrated Circuit). Integrują one
bowiem w jednej strukturze rekonfigurowalną matrycę FPGA oraz 8-
bitowy  mikrokontroler  RISC.  Budowa,  właściwości  (w  tym  możli-
wość częściowej rekonfiguracji) i podstawowe parametry matryc re-
konfigurowalnych są identyczne jak dla matryc stosowanych w ukła-
dach  AT40K.  Możliwości  użytkowe  układów  AT94K  znacznie
zwiększa fakt zintegrowania w ich strukturze szybkiego mikrokontro-
lera o architekturze RISC, którego wydajność dochodzi do 40 MIPS.
Szczegółowy opis architektury układów FPSLIC można znaleźć m.
in. w artykule [40]. 

Do  stosowania  w aplikacjach  nie  wymagających  częściowej  re-

konfiguracji  struktury  układu  doskonale  nadają  się  układy  z rodzin
Virtex oraz APEX, które należą obecnie do grupy najwyżej zaawan-
sowanych  technologicznie  układów  FPGA.  O ich  dużych  zaletach
decydują m. in. mechanizmy sprzętowej implementacji pamięci róż-
nego typu (w tym FIFO oraz DualPort FIFO), możliwość łączenia blo-
ków  logicznych  w bloki  funkcjonalne  bez  wykorzystywania  lokal-
nych zasobów połączeniowych, a także krótki czas rekonfiguracji. 

Jednak nie tylko z tych powodów układy FPGA mają przeważają-

ce zalety w implementacjach algorytmów DSP. Decydującym czyn-
nikiem w coraz powszechniejszym zastosowaniu układów FPGA do
syntezy  układów  DSP  jest  ich  specyficzna,  ziarnista  i potokowa
struktura wewnętrzna. Zalety tej struktury objawiają się już na pozio-
mie  najprostszych  –  ale  wyjątkowo  typowych  w DSP  –  układów
mnożenia skalarnego z akumulacją. Na rys. 3 pokazano uproszczo-
ną strukturę mnożenia szeregowego, realizowanego w jednowymia-

rowej matrycy systolicznej. Każde ogniwo tego układu można bez-
pośrednio  zrealizować  w pojedynczych  komórkach  struktur  FPGA,
a niezależność tej struktury od liczby bitów przetwarzanych słów jest
dodatkową zaletą decydującą o wydajności i skalowalności realizo-
wanych algorytmów. Układy szeregowego mnożenia bitowego znaj-
dują zastosowanie w realizacjach filtrów typu FIR [26], [36]. 

Komórkowa  budowa  struktur  FPGA,  a w szczególności  możli-

wość grupowania często wykorzystywanych bloków tablic odwzoro-
wań (tablic prawdy) LUT (Look Up Table) w wielowyjściowe pamię-
ci,  znakomicie  ułatwia  realizację  układów  arytmetyki  rozproszonej
DA (Distributed Arithmetic)  [26]. Strukturę układu DA pokazano na
rys. 4. Zaletą architektury DA jest wygodna i efektywna implementa-
cja w strukturach FPGA. Przeprowadzone eksperymenty [36] wska-
zują, że równoległe i rozproszone układy mnożące implementowa-
ne w strukturach FPGA są 6 razy szybsze przy zaledwie 2,5-krotnym
zwiększeniu zasobów sprzętowych. 

Rekonfigurowalne układy FPGA, które zapoczątkowały nową erę

w dziedzinie projektowania układów DSP, stanowią również dosko-
nałe  medium  implementacyjne  do  realizacji  algorytmów  szyfrują-
cych  w różnych  zastosowaniach,  takich  jak  protokoły  bezpieczeń-
stwa  komunikacji  w sieciach,  ochrona  i potwierdzanie  autentycz-
ności informacji i dokumentów oraz do realizacji maszyn wyszukują-
cych klucze w kryptoanalizie. 

Głównym atutem układów rekonfigurowalnych jako medium kon-

strukcyjnego jest ich zdolność „adaptacyjna”, polegająca na możli-
wości dostosowania architektury logicznej do typu, kształtu i właści-
wości  realizowanych  funkcji.  Do  efektywnego  wykorzystania 
możliwości tych układów, zarówno pod względem optymalizacji lo-
gicznej, jak też parametrów fizycznych (szybkość, moc, powierzch-
nia) jest potrzebna gruntowna znajomość funkcji i własności imple-
mentowanych algorytmów. Środkiem do osiągnięcia tak określone-
go celu jest wiedza o sposobach odwzorowywania podstawowych
operacji i funkcji algorytmu w strukturę podstawową matrycy rekon-
figurowalnej oraz wybór logicznej reprezentacji danych, odpowied-
niej do specyfikacji algorytmu architektury. 

Większość  algorytmów  szyfrowania  można  przedstawić  za  po-

mocą grafu przepływu danych, który jest zbudowany zaledwie z kil-
ku różnych komponentów, realizujących mniej lub bardziej złożone
operacje arytmetyczne i funkcje logiczne. Poniżej przedstawiono li-
stę najczęściej stosowanych operacji i funkcji. 

M

Proste operacje arytmetyczne, takie jak dodawanie i odejmowa-

nie. 

M

Operacje  na  krótkich  słowach  binarnych  o nietypowych  długo-

ściach. 

PRZEGLĄD TELEKOMUNIKACYJNY  

ROCZNIK LXXVI

nr 8–9/2003

O

Rys. 3. Jednowymiarowa systoliczna matryca sumatora;  D – prze-

rzutnik

O

Rys. 4. Architektura DA. Oznaczenia: RP – rejestry przesuwające,

POT – rejestr potokowy, R – rejestr wyjściowy

background image

M

Operacje mnożenia – mnożenie ogólne (dowolne wartości ope-

randów), mnożenie modularne, mnożenie z obcięciem wyniku, mno-
żenie  przez  stałą,  mnożenie  z użyciem  kodowania  nadmiarowego
operandów etc. 

M

Równoległe operacje logiczne. 

M

Sekwencje operacji logicznych. 

M

Tablice odwzorowań LUT, np. nieliniowe typu S-box. 

M

Operacje rotacji i przesunięcia. 
Dla każdej z wymienionych operacji można wyznaczyć efektyw-

ne odwzorowanie w strukturze matrycy rekonfigurowalnej. Zastoso-
wanie takich „wzorów” realizacyjnych do projektowania algorytmów
kryptograficznych pozwala lepiej wykorzystać walory systemów re-
konfigurowalnych. 

EKSPERYMENTALNE I PRZEMYSŁOWE
APLIKACJE MULTIMEDIALNE

Wraz  z wprowadzeniem  rekonfigurowalnych  struktur  logicznych

pojawiły się nowe możliwości ich zastosowań w dziedzinie przetwa-
rzania obrazów i dźwięku. Pierwszą architekturą komputera konfigu-
rowanego ze strukturami FPGA była wirtualna maszyna, pomyślana
jako  programowalna  pamięć  aktywna  PAM (Programmable  Active
Memory
);  miała  ona  formę  rekonfigurowalnego  koprocesora  stero-
wanego  standardowym  procesorem.  Rola  procesora  sprowadzała
się do zarządzania konfiguracją macierzy układów FPGA, które peł-
niły funkcje koprocesora, i współpracy z tym koprocesorem, analo-
gicznie jak w konwencjonalnych komputerach. 

Przykładami  zastosowania  platformy  PAM  do  realizacji  specjali-

zowanych maszyn liczących są między innymi: system DECPeRLe
zaprojektowany  przez  Digital  Equipment  Corporation’s  Paris  Re-
search  Laboratory  [38]  i system  SPLASH,  opracowany  w Super-
computer Research Center [3]. 

Systemy PeRLe-0 i PeRLe-1 cechuje wielka efektywność rozwią-

zywania  zadziwiająco  szerokiej  klasy  problemów  obliczeniowych.
Są  one  zbudowane  z macierzy  dwuwymiarowej  układów  FPGA 
komunikującej  się  z otoczeniem  zewnętrznym  za  pomocą  szyny
o dużej przepływności. 

Oprócz  16  układów  macierzy  4x4  FPGA  system  zawiera  1 MB

pamięci statycznej RAM na każdej z krawędzi macierzy FPGA. Układ
został zaprojektowany do przyspieszenia realizacji zadań wymaga-
jących dużych mocy obliczeniowych przy założeniu, że części reali-
zowanego  algorytmu,  które  stanowią  jego  „wąskie  gardło”,  będą
przekazywane do wykonania układowi. Do specyfikacji zadań zosta-
ło  zaprojektowane  specjalne  środowisko  programowe  [4],  które 
łączy w sobie cechy kompilatorów złożonych języków programowa-
nia oraz systemów do projektowania sprzętu. Lista problemów, któ-
re efektywnie rozwiązywano za pomocą DEC PeRLe, zawiera wiele
istotnych zadań z dziedziny przetwarzania obrazu i dźwięku, jak na
przykład:  mnożenie  dużych  liczb  całkowitych,  kompresja  danych,
rozwiązywanie równań Laplace’a, synteza dźwięku, rozpoznawanie
wzorca, splot w dziedzinie dwuwymiarowej, kompresja obrazu. 

Innym  przykładem  wysoko  wyspecjalizowanej  maszyny  liczącej

jest  system  SPLASH  zaprojektowany  w Supercomputer  Research
Center [3], [8] oraz jego następca SPLASH-2. Podobnie jak system
DEC PeRLe, współpracuje on ze stacją roboczą, przyspieszając jej
działanie w tych sytuacjach, gdy nie może ona uporać się z zada-
niem  wymagającym  dużych  mocy  obliczeniowych.  Architektura
SPLASH-2 została zaprojektowana jako macierz systoliczna na po-
jedynczej płytce o 16 elementach obliczeniowych, z których każdy
zawiera układ FPGA oraz lokalną pamięć. Analogicznie jak w przy-
padku PeRLe, stworzono środowisko programistyczne, dające moż-
liwość tworzenia aplikacji. Miało ono wbudowany symulator języka
VHDL [1],  [2],  język  opisu  logiki  LDG [9]  oraz  model  programowy
SIMD [10]. Za pomocą systemu SPLASH uruchomiono i przetesto-
wano wiele aplikacji. Otrzymane wyniki świadczą o jego dużej efek-
tywności. Lista przykładowych problemów rozwiązanych za pomocą
systemu SPLASH-2 zawierała m. in. następujące zadania: wyszuki-
wanie tekstu, przetwarzanie obrazów, ustalanie zmiennego przecin-
ka oraz splot w dziedzinie dwuwymiarowej. 

Eksperymenty  przeprowadzone  z

architekturami  PeRLe

i SPLASH  pokazały,  że  pojedyncza  platforma  obliczeniowa  zbudo-
wana z układów FPGA może zapewnić imponującą efektywność dla

bardzo  szerokiej  rodziny  zastosowań.  Tak  wysoki  poziom  efektyw-
ności był możliwy do osiągnięcia dzięki zaprojektowaniu dla każde-
go  z wymienionych  problemów  specjalizowanej  architektury.  Me-
chanizmy  rekonfiguracji  gwarantują,  że  z wykorzystaniem  tego  sa-
mego  sprzętu  można  realizować  niezliczoną  liczbę  różnych
architektur  logicznych.  Osiągnięcie  wysokiej  efektywności  syste-
mów PeRLe i SPLASH było możliwe dzięki: 
M

wyspecjalizowaniu bloków funkcjonalnych; 

M

wykorzystaniu współbieżności; 

M

optymalizacji procesów i interfejsów komunikacyjnych; 

M

wyspecjalizowaniu układów wejściowo-wyjściowych. 
Niewątpliwie  eksperymenty  te  stały  się  bezpośrednią  przyczyną

zastosowania układów programowalnych w komercyjnych (przemy-
słowych)  aplikacjach  telekomunikacyjnych.  Typowym  przykładem
mogą być satelitarne systemy telemetryczne firmy TSI TelSys [16],
w których  rekonfigurowalna  matryca  składająca  się  z 12  układów
APEX20K100  spełnia  rolę  rekonfigurowalnego  systemu  DSP,  auto-
matycznie  dostosowującego  się  do  protokołu  transmisyjnego  śle-
dzonej misji satelitarniej (EOS, SBIRS-High, DRTS, Heliosat). 

Możliwość  rekonfiguracji  układów  CPLD  wykorzystała  firma  LG

Information & Telecommunications. W jej ofercie znajdują się urzą-
dzenia  stosowane  w systemach  komórkowych  CDMA (Code  Divi-
sion Multiple Access
), W-CDMA (Wideband CDMA) oraz WLL (Wire-
less Local Loop
). We współpracy z firmą Hanaro Telecom [12] firma
LGIE wdrożyła do produkcji modemy W-CDMA, w których zastoso-
wano po cztery układy EPF10K100. Zastosowanie układów rekonfi-
gurowalnych wiąże się z możliwością szybkiego i w miarę bezpro-
blemowego  dostosowania  toru  obróbki  sygnału  do  modyfikacji
wprowadzanych w zaleceniach ITU, które mają na celu m. in. zwięk-
szenie  przepływności  kanałów  transmisyjnych,  przy  jednoczesnym
zawężeniu zajmowanego pasma. 

Układy rekonfigurowalne znalazły zastosowanie także we współ-

czesnych telewizyjnych systemach retransmisyjnych, czego przykła-
dem może być rodzina procesorów wizyjnych D1 firmy Snell & Wil-
cox [12]. Według danych producenta, zastosowanie układów rekon-
figurowalnych  spowodowało  obniżenie  kosztu  wykonania  takiego
procesora  o ok.  30%  w stosunku  do  klasycznych  rozwiązań  opar-
tych na procesorach sygnałowych. 

Amerykańska  firma  Metalithic  Systems  jest  producentem  profe-

sjonalnego,  studyjnego  sprzętu  audio,  w tym  wielu  cyfrowych 
konsol mikserskich. W 1999 roku inżynierowie tej firmy opracowali

412

PRZEGLĄD TELEKOMUNIKACYJNY 

ROCZNIK LXXVI

nr 8–9/2003

O

Rys.  5.  Schemat  blokowy  systemu  ze  zdalnie  rekonfigurowanym

blokiem sprzętowym; 1, 2, 3, 4 – etapy rekonfiguracji

background image

413

128-kanałową konsolę, wykonaną na układach Spartan firmy Xilinx,
w której możliwość rekonfiguracji układów wykorzystano do budowy
różnego rodzaju efektów audio, w tym cyfrowego pogłosu i kompre-
sji szumów [15]. 

Szczególnym  przykładem  w grupie  opracowań  komercyjnych

jest propagowana od 1998 roku przez firmę Xilinx idea budowania
sprzętu rekonfigurowanego przez Internet – IRL (Internet Reconfigu-
rable Logic
), co schematycznie pokazano na rys. 5 [17]. 

Pierwsze komercyjne aplikacje IRL opracowały i wdrożyły w 1999

roku  firmy  Bosch  i Siemens,  które  testują  możliwości  stosowania
układów  zdalnie  rekonfigurowalnych  w aplikacjach  samochodo-
wych  [17].  Na  początku  2001  roku,  w wyniku  prac  prowadzonych
wspólnie  z LG  Electronics  oraz  konsorcjum:  Xilinx,  Celoxica  oraz
WindRiver, powstały – wykorzystujące układy Virtex E – zdalnie re-
konfigurowalne:  odtwarzacz  MP3  oraz  internetowy  telefon  VoIP
[14].  Urządzenia  te  mają  zostać  wdrożone  do  masowej  produkcji
przed końcem 2003 roku. 

UKŁADY PROGRAMOWALNE 
W KRYPTOGRAFII

Wśród pierwszych implementacji szyfrów blokowych w układach

programowalnych szczególnie interesujące były dwa opracowania.
Pierwsze powstało w Szwajcarskim Federalnym Instytucie Technicz-
nym w Lozannie pod akronimem CryptoBooster [25]. CryptoBooster
spełnia  funkcje  rekonfigurowalnego,  modułowego  koprocesora
kryptograficznego, który współpracuje z głównym komputerem jako
akcelerator operacji kryptograficznych. Próbnym modułem wykona-
nym w tej architekturze była realizacja symetrycznego szyfru bloko-
wego  IDEA.  Przeprowadzone  testy  wykazały,  że  pod  względem
szybkości  i przepustowości  koprocesor  nadaje  się  do  zastosowań
w szybkich sieciach, jak ATM, SONET i GigaEthernet. 

Drugi przykład to projekt wykorzystujący rekonfigurowalny proce-

sor PipeRench opracowany w Carnegie Mellon University [37]. Ory-
ginalna warstwowa architektura procesora PipeRench, zaprojektowa-
na  w CMU,  została  zoptymalizowana  pod  względem  implementacji
kryptograficznych. Jej głównymi cechami są: wirtualizacja, potokowa
organizacja ścieżki danych i zerowy pozorny czas rekonfiguracji. Wir-
tualizacja  umożliwia  implementację  algorytmów  nie  mieszczących
się  w całości  w fizycznej  strukturze  systemu.  W architekturze 
PipeRench  zrealizowano  szereg  algorytmów,  jak  CRYPTON,  IDEA,
RC6 i Twofish. 

Na podstawie analizy wielu zastosowań sprzętowych [5] realiza-

cji algorytmów kryptograficznych można określić funkcje i wymaga-
nia,  jakie  powinien  spełniać  elastyczny  system  kryptograficzny.  Są
to: 

M

możliwość zmiany algorytmu w trakcie pracy, 

M

możliwość wprowadzania nowych algorytmów, 

M

duża szybkość przetwarzania danych, 

M

łatwa obsługa interfejsu użytkownika, 

M

modyfikowalność  oprogramowania  sterującego  (upgradable

firmware), 

M

modyfikowalność sprzętu. 
Traktując powyższe warunki jako założenia do konstrukcji syste-

mu  kryptograficznego,  współpracującego  z głównym  komputerem
PC  na  zasadzie  koprocesora,  można  zaproponować  konstrukcję,
której uproszczona architektura jest przedstawiona na rys. 6. Zasad-
niczymi blokami takiego systemu są: 
M

koprocesor kryptograficzny z pamięcią buforową, 

M

układ sterujący, 

M

biblioteka algorytmów. 
Koprocesor  kryptograficzny  wykonuje  wszelkie  operacje  zwią-

zane z szyfrowaniem i deszyfrowaniem danych. Po włączeniu zasi-
lania  koprocesor  rezydujący  w strukturach  FPGA  nie  jest  jeszcze
zaprogramowany.  Na  sygnał  wyboru  algorytmu,  wydany  przez
użytkownika  za  pośrednictwem  interfejsu,  układ  sterujący  przepi-
suje  do  koprocesora  z biblioteki  algorytmów  odpowiedni  zbiór
konfiguracyjny.  Po  skonfigurowaniu  koprocesor  jest  gotowy  do
pracy. Transmisja danych szyfrowanych i deszyfrowanych pomię-
dzy systemem a komputerem odbywa się za pośrednictwem ma-
gistrali ISA. Tą samą drogą, z komputera do systemu, są przeka-
zywane nowe zbiory modyfikujące lub rozszerzające bibliotekę al-
gorytmów. 

Naszkicowana  wyżej  koncepcja  elastycznego  systemu  krypto-

graficznego została wykorzystana przez autorów przy opracowaniu
prototypu wieloalgorytmowego koprocesora kryptograficznego, któ-
ry zrealizowano w ramach prac badawczych w Instytucie Telekomu-
nikacji PW. Prototyp koprocesora został wykonany w formie karty do
komputerów  klasy  PC.  Schemat  blokowy  karty  koprocesora,
uwzględniający szczegółowo sygnały magistrali ISA, jest przedsta-
wiony na rys. 7. Karta wymaga wstępnej inicjalizacji kilku wewnętrz-
nych rejestrów, których zawartość ustawia się przez interfejs progra-
mowy w komputerze. Ich wartości definiują szczegółowo następują-
ce funkcje i parametry karty: 

M

wybór  algorytmu  kryptograficznego  –  DES,  X_DES_X,

DES3_EEE, DES3_EDE; 

M

tryb  pracy  algorytmu  –  ECB,  CBC,  OFB_64,  CFB_01,  CFB_08,

CFB_16, CFB_64; 

M

tryb współpracy z magistralą ISA – normal lub pipeline

M

funkcje  karty  –  szyfrowanie/deszyfrowanie,  wpisywanie  kluczy

i wektora stanu początkowego. 

Przed  rozpoczęciem  cyklu  szyfrowania/deszyfrowania  są  testo-

wane wybrane komórki rejestru stanów w celu ustalenia prawidłowo-
ści  przeprowadzonej  inicjalizacji.  Aby  zapobiec  lub  przynajmniej
utrudnić  ataki  hackerów,  wprowadzono  dodatkowe  mechanizmy
ochronne zapewniające bezpieczeństwo kluczy i bloków danych za-
równo  jawnych,  jak  i zaszyfrowanych.  Zastosowane  mechanizmy
wykrywają  pewne  odstępstwa  od  oczekiwanych  prawidłowych  se-
kwencji  instrukcji  inicjujących  proces  szyfrowania/deszyfrowania
i blokują  reakcje  koprocesora  na  sygnał  startu  GO  lub  niszczą  za-
wartość rejestrów kluczy i rejestru stanu początkowego. 

Algorytm DES został zaprojektowany według amerykańskiej nor-

my FIPS 46, zaś tryby pracy opracowano na podstawie normy FIPS
81. Algorytmy DES-EDE i DES-EEE, mimo iż nie są aktualnie ujęte
w normach,  należą  obecnie  do  najczęściej  używanych  szyfrów

PRZEGLĄD TELEKOMUNIKACYJNY  

ROCZNIK LXXVI

nr 8–9/2003

O

Rys. 6. Architektura elastycznego systemu kryptograficznego

O

Rys. 7. Schemat blokowy wieloalgorytmowego koprocesora kryp-

tograficznego

background image

w protokołach bezpieczeństwa stosowanych w sektorze bankowym
na całym świecie. Tryby pracy, pozwalające dopasować właściwości
szyfru do wymagań otoczenia, są zgodne z międzynarodowymi nor-
mami ISO/IEC 8372 i ISO/IEC 10116. 

Główna  część  projektu  została  wyspecyfikowana  w języku

AHDL dla środowiska MAX+PLUS II firmy ALTERA, z przeznacze-
niem dla rodziny układów rekonfigurowalnych FLEX 10K. W proto-
typie wykorzystano układ FLEX 10K30. Eksperymenty symulacyjne
przeprowadzone z algorytmem DES, uwzględniające zastosowanie
w koprocesorze  układu  FLEX  10K50,  wykazały,  że  maksymalna
częstotliwość  zegara  systemowego  może  wynosić  około  70  MHz.
Odpowiada  to  maksymalnej  szybkości  przetwarzania  rzędu  190
Mbit/s.  Dla  algorytmu  potrójny  DES  osiągalna  szybkość  wynosi
około 66 Mbit/s. 

NOWY STANDARD SZYFROWANIA:
ALGORYTMY – ANALIZA I WYBÓR
OPTYMALNYCH IMPLEMENTACJI

Przedstawione  powyżej  przykłady  implementacji  algorytmów

kryptograficznych  były  jedną  z wielu  prób  poszukiwania  optymal-
nych realizacji nowych algorytmów szyfrujących, które w XXI wieku
mogłyby zastąpić dotychczasowy światowy standard DES. 

Wydarzeniem o przełomowym znaczeniu – kamieniem milowym

w dziedzinie  ochrony  systemów  informacyjnych  i bezpieczeństwa
w sieciach  teleinformatycznych  –  stał  się  konkurs  zorganizowany
przez amerykański NIST (National Institute of Standards and Tech-
nology). Wyłoniona w ostatniej rundzie konkursu grupa najlepszych
algorytmów kryptograficznych została poddana niezwykle gruntow-
nym  badaniom  teoretycznym  i szczegółowej  analizie  ich  walorów
praktycznych, zwłaszcza implementacji sprzętowych wybranej gru-
py  szyfrów  pod  względem  oceny  ich  wydajności  i przydatności
w przyszłych systemach kryptograficznych. Analizowane implemen-
tacje szyfrów zostały zrealizowane w kilku ośrodkach akademickich
na podstawie tych samych założeń funkcjonalnych, wspólnej meto-
dologii  i wspólnych  narzędzi  projektowania,  tej  samej  technologii
i tych samych architektur układów rekonfigurowalnych. Za podsta-
wę oceny implementacji zgłoszonych na forum III Konferencji Kan-
dydatów  AES (Advanced  Encryption  Standard)  posłużyły  przyjęte
i uzgodnione wcześniej miary parametrów związanych z szybkością
przetwarzania i złożonością realizacji. 

Głównymi kryteriami przyjętymi przez NIST do oceny i kwalifika-

cji  szyfrów  w konkursie  na  nowy  standard  były:  bezpieczeństwo,
efektywność w realizacjach sprzętowych i programowych oraz ela-
styczność. Spośród tych czterech parametrów efektywność realiza-
cji sprzętowej okazała się szczególnie ważnym czynnikiem, umożli-
wiającym zróżnicowanie konkurujących algorytmów, przy założeniu,
że: 
M

porównanie  było  oparte  na  zbiorze  obiektywnych  i zgodnie  ak-

ceptowanych miar, 
M

istniały dostrzegalne różnice pomiędzy „kandydatami”, 

M

ustalono  wyraźną  zgodność  pomiędzy  wynikami  uzyskanymi

przez niezależne grupy. 

W celu osiągnięcia większej jednolitości i czytelności porównań

wyników  otrzymanych  przez  różne  grupy,  zaproponowano  zgodną
terminologię,  która  może  być  użyta  do  opisu  różnych  architektur
i parametrów wydajności szyfrów blokowych. 

Wybór technologii 

Algorytmy kryptograficzne mogą być realizowane zarówno w for-

mie programu, jak i sprzętu. Implementacje programowe są projek-
towane i kodowane przy użyciu języków programowania, takich jak
C, C

++

, Java czy asembler, a następnie wykonywane w uniwersal-

nych mikroprocesorach, procesorach sygnałowych lub kartach inte-
ligentnych.  Implementacje  sprzętowe  są  projektowane  i specyfiko-
wane za pomocą języków opisu sprzętu, takich jak VHDL i Verilog
HDL  i realizowane  z wykorzystaniem  jednej  z dwóch  technologii:
specjalizowanych układów scalonych typu ASIC lub rekonfigurowal-
nych matryc logicznych FPGA. 

Do porównania i oceny wymienionych technologii pod względem

ich przydatności do zastosowań kryptograficznych można posłużyć

się  zestawieniem  parametrów  użytkowych,  własności  funkcjonal-
nych i charakterystyki procesu projektowania. 

Do grupy parametrów użytkowych, które mają istotny wpływ na

efektywność przetwarzania danych, należą: możliwość przetwarza-
nia równoległego i potokowego, zmienna długość słowa i szybkość
działania. Do najważniejszych właściwości funkcjonalnych, decydu-
jących  o elastyczności  i bezpieczeństwie  implementacji  kryptogra-
ficznej,  zalicza  się:  możliwość  wymiany  algorytmu  w trakcie  pracy
(algorithm  agility),  zabezpieczenie  przed  penetracją  (tamper  resi-
stance
) i kontrolę dostępu do kluczy. Charakterystykę procesu pro-
jektowania  określają  między  innymi:  języki  specyfikacji,  długość 
cyklu projektowania, koszty narzędzi do projektowania, koszty testo-
wania, utrzymania i modyfikacji. Z porównania parametrów użytko-
wych wynika, że układy ASIC i FPGA mają wyraźną przewagę nad
implementacją  programową  pod  względem  efektywności  przetwa-
rzania. Istotna różnica pomiędzy technologią ASIC i FPGA dotyczy
szybkości działania układów FPGA, które są wolniejsze, co wynika
z opóźnień wprowadzanych przez elementy programowalnych połą-
czeń i proces rekonfiguracji. Pod względem funkcjonalnym następu-
je  większe  zróżnicowanie:  największe  bezpieczeństwo  zapewnia
ASIC,  natomiast  wadą  jest  całkowity  brak  możliwości  modyfikacji.
W przypadku  układów  ASIC  i FPGA  proces  projektowania  jest  po-
dobny w sposobie specyfikacji (język opisu sprzętu), weryfikacji (sy-
mulator)  i testowania  (płyta  prototypowa).  Zasadnicza  różnica  po-
między nimi polega na tym, że układy FPGA nie wymagają projektu
warstwy fizycznej (layout), wytwarzania i testowania defektów fizycz-
nych.  Konsekwencją  tego  są:  znacznie  krótszy  cykl  projektowania
i dużo tańsze narzędzia do projektowania i testowania. Z porównań
wynika, że implementacje oparte na FPGA mają przewagę nad tech-
nologią ASIC pod względem kosztów i długości cyklu opracowania
prototypu,  możliwości  wielokrotnego  i szybkiego  rekonfigurowania
i możliwości eksperymentalnego testowania dużej liczby różnych ar-
chitektur.  Ponadto  implementacje  na  układach  FPGA  zapewniają
znacznie wyższy stopień zgodności i wiarygodności porównań. Są
bowiem weryfikowane na podstawie dokładnych symulacji funkcjo-
nalno-czasowych  gotowych  struktur  i eksperymentalnego  testowa-
nia prototypu. 

Założenia, porównywane parametry 
i zasady projektowania 

Ogólny model sprzętowej implementacji symetrycznych szyfrów

blokowych jest pokazany w formie schematu blokowego na rys. 8.
Według  tego  schematu  zostały  zrealizowane  wszystkie  szyfry
z ostatniej rundy konkursu AES. Schemat ten składa się z następu-
jących części: 

M

modułu szyfrowania/deszyfrowania, w którym są kodowane i de-

kodowane bloki danych wejściowych, 

M

bloku generacji kluczy pochodnych, w którym wyznacza się zbiór

kluczy wewnętrznych na podstawie jednego klucza zewnętrznego, 

M

pamięci  kluczy  wewnętrznych,  w której  są  przechowywane  klu-

cze utworzone w bloku generacji kluczy lub dostarczone przez inter-
fejs wejściowy z zewnątrz, 

414

PRZEGLĄD TELEKOMUNIKACYJNY 

ROCZNIK LXXVI

nr 8–9/2003

O

Rys. 8. Schemat blokowy realizacji sprzętowej szyfrów blokowych

background image

415

M

interfejsu wejściowego, służącego do wprowadzania danych wej-

ściowych i kluczy oraz do buforowania danych wejściowych oczeku-
jących na kodowanie/dekodowanie, 

M

interfejsu wyjściowego, używanego do buforowania danych prze-

tworzonych i przesyłania ich do zewnętrznej pamięci, 

M

jednostki  sterującej,  w której  są  wytwarzane  sygnały  sterujące

pracą pozostałych bloków. 

W celu  ujednolicenia  procedury  projektowania  implementacji

szyfrów, przyjęto wstępnie następujące założenia: 

M

długość klucza 128 bitów, co upraszcza porównywanie i analizę 

M

generowanie kluczy pochodnych na zewnątrz, 

M

długość bloku danych 128 bitów, 

M

dzielenie  zasobów  funkcjonalnych  pomiędzy  część  szyfrującą

i deszyfrującą. 

Poniżej  przedstawiono  definicje  parametrów  używanych  do  po-

równywania szyfrów z punktu widzenia efektywności ich implemen-
tacji sprzętowych. 

Szybkość szyfrowania (deszyfrowania) jest określana jako licz-

ba  bitów  zaszyfrowanych  (zdeszyfrowanych)  w jednostce  czasu.
Jednostką szybkości jest Mbit/s.

Czas  opóźnienia  szyfrowania  (deszyfrowania) (latency) jest

zdefiniowany jako czas niezbędny do zaszyfrowania (zdeszyfrowa-
nia)  jednego  bloku  danych  jawnych  lub  zaszyfrowanych.  Jeżeli
w aplikacji  podczas  jednej  sesji  są  szyfrowane/deszyfrowane  duże
porcje danych, to szybkość wyznacza całkowity czas wykonywania
tych operacji i jest najlepszą miarą szybkości szyfru.

Drugi ważny parametr to powierzchnia zajmowana przez układ,

gdyż jest głównym czynnikiem określającym jego koszt. Przyjmuje
się, że z grubsza koszt układu scalonego jest wprost proporcjonal-
ny  do  jego  powierzchni.  Dla  ścisłości  należy  jednak  uwzględnić
koszt  obudowy,  na  który  ma  wpływ  liczba  wyprowadzeń.  W pew-
nych aplikacjach mogą wystąpić ograniczenia maksymalnej dostęp-
nej powierzchni do realizacji modułu kryptograficznego, wynikające
z kosztów dostępnej technologii wytwarzania, zużywanej mocy lub
kombinacji tych czynników, np. w inteligentnych kartach z mikrokon-
trolerem. 

W układach ASIC powierzchnia wymagana do implementacji jest

zwykle wyrażana w

µ

m

2

, choć są też używane dwie miary względne:

liczba tranzystorów i liczba bramek logicznych. Wartości tych trzech
miar  są  ze  sobą  ściśle  skorelowane,  ale  relacje  te  trudno  określić.
W implementacjach  FPGA  jedyną  uznaną  miarą  wielkości  układu
jest liczba komórek logicznych. 

Struktura tworzenia projektu w środowisku CAD do implementa-

cji algorytmów w układach FPGA jest pokazana na rys. 9. Wszystkie
szyfry AES zostały w pierwszym kroku opisane w języku VHDL, a na-

Tryby pracy 

Symetryczne szyfry blokowe są używane w kilku trybach opera-

cyjnych,  które  z punktu  widzenia  implementacji  sprzętowej  można
podzielić na dwie kategorie: 

M

tryby  bez  sprzężenia  zwrotnego,  takie  jak  tryb  elektronicznej

książki kodowej (ECB) i tryb licznikowy, 

M

tryby ze sprzężeniem zwrotnym, jak tryb wiązania bloków zaszy-

frowanych  (CBC),  tryb  sprzężenia  zwrotnego  szyfrogramu  (CFB)
i tryb sprzężenia zwrotnego wyjściowego (OFB).

W trybach bez sprzężenia zwrotnego szyfrowanie każdego kolej-

nego bloku danych może być wykonane niezależnie od przetwarza-
nia  innych  bloków.  W trybach  ze  sprzężeniem  zwrotnym  nie  jest
możliwe  rozpoczęcie  szyfrowania  następnego  bloku  danych  przed
zakończeniem kodowania bloku bieżącego i wszystkie bloki muszą
być szyfrowane sekwencyjnie. To ograniczenie nie dotyczy operacji
deszyfrowania,  która  może  być  wykonywana  równolegle  na  kilku
blokach  szyfrogramu  we  wszystkich  trybach.  Zgodnie  z obecnymi
standardami bezpieczeństwa, szyfrowanie jest wykonywane przede
wszystkim z użyciem trybów sprzężenia zwrotnego, jak CBC i CFB,
zaś tryby bez sprzężenia zwrotnego są głównie stosowane do szy-
frowania kluczy podczas ich dystrybucji. Te wymagania bezpieczeń-
stwa uniemożliwiają wykorzystanie w pełni efektywności implemen-
tacji sprzętowych opartych na równoległym przetwarzaniu wielu blo-
ków danych. 

Podstawowe architektury

Wybierając architekturę dla implementacji szyfrów w strukturach

FPGA, wystarczy ograniczyć się do dwóch typów: bazowej architek-
tury iteracyjnej i architektury z rozwiniętą (częściowo lub w pełni) pę-
tlą. Podstawową architekturę sprzętową stosowaną do implementa-
cji  jednostki  szyfrującej/deszyfrującej  typowego  szyfru  blokowego
z tajnym kluczem pokazano na rys. 10a. Jedną rundę szyfru zreali-
zowano jako układ kombinacyjny, uzupełniony rejestrem i multiplek-
serem. W pierwszym cyklu zegara wejściowy blok danych jest poda-
wany przez multiplekser i zapisywany w rejestrze. W każdym kolej-
nym  cyklu  zegara  jest  realizowana  operacja  jednej  rundy
szyfrowania, a jej rezultat podawany zwrotnie do układu przez mul-
tiplekser  i zapisywany  następnie  w rejestrze.  Architektura  bazowa
ma dwie cechy charakterystyczne: 
M

w tym samym czasie jest kodowany tylko jeden blok danych, 

M

liczba cykli zegara, koniecznych do zaszyfrowania jednego bloku

danych, jest równa liczbie rund szyfru

Architektura z częściowo rozwiniętą pętlą jest przedstawiona na

rys. 10b. Jedyna różnica w porównaniu z bazową architekturą itera-
cyjną polega na tym, że część kombinacyjna układu realizuje rund
szyfrowania zamiast jednej. Liczba musi być podzielnikiem całko-
witej liczby rund. Liczba cykli zegara koniecznych do zaszyfrowania
jednego bloku danych jest K-krotnie mniejsza od liczby rund. Mini-
malny  okres  zegara  wzrasta  ze  współczynnikiem  nieco  mniejszym
niż K

PRZEGLĄD TELEKOMUNIKACYJNY  

ROCZNIK LXXVI

nr 8–9/2003

O

Rys. 9. Środowisko projektowe CAD

stępnie  zweryfikowane  przy  użyciu  symulatora  Active-HDL  z firmy
ALDEC.  Do  korekcji  błędów  i weryfikacji  kodów  źródłowych  wyko-
rzystano wektory testowe i pośrednie wyniki przetwarzania z opubli-
kowanych  wcześniej  implementacji  programowych.  Przedstawione
raporty zawierają powierzchnię, szybkość i inne dane o implementa-
cji oraz zbiory danych do symulacji czasowej i do skonfigurowania
układu. 

O

Rys.  10.  Podstawowe  architektury  szyfrów  w trybach  ze  sprzęże-

niem  zwrotnym:  a)  bazowa  architektura  iteracyjna,  b)  z częściowo
rozwiniętą pętlą, c) z pętlą w pełni rozwiniętą

background image

Architektura z rozwiniętą w pełni pętlą jest pokazana na rys. 10c.

Schemat ten nie zawiera wejściowego multipleksera ani linii sprzę-
żenia zwrotnego. Dzięki temu jest możliwy niewielki wzrost szybko-
ści i zmniejszenie powierzchni układu w porównaniu z architekturą
o częściowo rozwiniętej pętli zawierającej taką samą liczbę rund. 

Z przeglądu architektur wynika, że do implementacji szyfrów AES

w układach FPGA optymalny wybór stanowi bazowa architektura ite-
racyjna.  Zapewnia  ona  maksymalny  współczynnik  szybkość/po-
wierzchnia  dla  trybów  operacyjnych  ze  sprzężeniem  zwrotnym
(CBC,  CFB),  używanych  powszechnie  do  szyfrowania  masowych
danych i gwarantuje szybkości i powierzchnie bliskie optymalnym.
Wydaje  się  bardzo  prawdopodobne,  że  architektura  ta  będzie  po-
wszechnie stosowana w większości aplikacji. Jest także względnie
łatwa do implementacji w podobny sposób dla wszystkich szyfrów
AES, dzięki czemu umożliwi bardziej miarodajne porównanie. 

PRODUKTY WIRTUALNE 
– NOWA OFERTA 
NA RYNKU TELEKOMUNIKACJI 

Wraz z wprowadzeniem struktur reprogramowalnych pojawiły się

jeszcze inne możliwości aplikacyjne. Wynikają one nie tylko z popra-
wy parametrów funkcjonalnych i czasowych oraz zmian w architek-
turze logicznej, ale również z samej istoty reprogramowalności. Je-
den z kierunków takich aplikacji określa koncepcja produktu wirtual-
nego  –  systemu,  funkcji  lub  układu  scalonego,  które  nie  istnieją
w rzeczywistości  materialnej,  ale  potencjalnie  mogą  być  w każdej
chwili zrealizowane. Takie układy wirtualne to zarówno gotowe pro-
dukty o zmiennych funkcjach i właściwościach, jak również elastycz-
ne „klocki”, z których można konstruować większe systemy. 

Powstał  ogromny  rynek  wirtualnych  produktów  specjalizowa-

nych, tzw. rynek własności intelektualnej IP (Intellectual Property Bu-
siness
)  zawartej  w układach  zaprojektowanych  w postaci  kodów
źródłowych języków HDL. Działalnością taką zajmują się m.in. firmy:
ALTERA,  XILINX  INC.,  TILAB,  CAST  INC.,  inSILICON  CORPORA-
TION, DIGITAL COMMUNICATION TECHNOLOGIES, IP SEMICON-
DUCTORS, a w Polsce DIGITAL CORE DESIGN. Typową ofertą tych
firm są właśnie układy DSP, a w szczególności: kodery FFT DCT,
układy kryptograficzne, komutatory i rutery ATM, dekodery Viterbie-
go dla sieci LAN, skramblery i deskramblery itp. 

Rynek produktów wirtualnych to jednocześnie ogromne wyzwa-

nie dla zaawansowanych metod optymalizacji logicznej. Wynika to
z faktu, że konkurencję na tym rynku będą wygrywać tylko najlepsze
produkty.  Do  ich  realizacji  zostaną  wykorzystane  zaawansowane
metody syntezy, niejednokrotnie występujące wyłącznie w specjali-
stycznym  oprogramowaniu  uniwersyteckim.  Duża  złożoność  struk-
tur FPGA, a także ich nietypowe konstrukcje (komórki), spowodowa-
ły wzrost roli i znaczenia zaawansowanych procedur syntezy logicz-
nej. 

Wpływ  zaawansowanych  procedur  syntezy  logicznej  na  jakość

implementacji  sprzętowych  układów  przetwarzania  informacji  i sy-
gnałów jest szczególnie znaczący w algorytmach wykorzystujących
struktury tablicowe typu LUT. Struktury takie są powszechnie stoso-
wane  w filtrach  cyfrowych,  układach  transformacji  falkowej  [31],
w szczególności do realizacji wykorzystujących arytmetykę rozpro-
szoną  [26],  a także  w algorytmach  kryptograficznych,  korzystają-
cych z tzw. bloków permutacyjno-podstawieniowych. 

W Zakładzie  Podstaw  Telekomunikacji  IT-PW  opracowano 

specjalistyczne  oprogramowanie  do  optymalizacji  implementacji
sprzętowych  struktur  typu  LUT.  Oprogramowanie  to  –  nazwane 
DEMAIN  [21],  [22],  [27]  –  jest  dostępne  nieodpłatnie  na 
stronie  internetowej  Zakładu  Podstaw  Telekomunikacji  IT-PW:
http://www.zpt.tele.pw.edu.pl.  W systemie  DEMAIN,  jako  główną
procedurę  syntezy  logicznej  zorientowanej  na  struktury  FPGA, 
wykorzystuje się tzw. algorytm dekompozycji zrównoważonej. Sku-
teczność  tego  oprogramowania  można  ocenić  na  podstawie  eks-
perymentów przeprowadzonych z realizacjami układów cyfrowych
wyposażonych w struktury specyfikowane tablicami LUT. 

Eksperymenty  te  polegały  na  implementacji  typowych  układów

cyfrowych  –  głównie  z dziedziny  teleinformatyki  –  za  pomocą  róż-
nych systemów projektowania, a następnie na porównaniu ich reali-
zacji pod względem liczby użytych komórek odpowiedniej struktury
FPGA. Wymowa przeprowadzonych eksperymentów jest znacząca,

bowiem  do  projektowania  użyto  systemów  renomowanych  firm
światowych, takich jak Altera, Synopsys, Exemplar i Xilinx. 

W szczególności zrealizowano i porównano następujące układy: 

M

bin2bcd1 – konwerter kodu binarnego na BCD dla liczb z zakre-

su od 0 do 99, 

M

bin2bcd2 – konwerter kodu binarnego na BCD dla liczb z zakre-

su od 0 do 355, 

M

DESboxes – zespół skrzynek podstawieniowych szyfru DES, 

M

rd88 – sbox z algorytmu kryptograficznego Rijndael, 

M

DESaut  –  kombinacyjną  część  układu  sekwencyjnego  z imple-

mentacji algorytmu kryptograficznego DES, 

M

5B6B – kombinacyjną część układu kodera 5B-6B. 
W tabeli 1 przedstawiono wyniki porównania metody wykorzystu-

jącej dekompozycję zrównoważoną, zaimplementowaną w systemie
DEMAIN,  z metodami  zaimplementowanymi  w systemach:  SIS,
FPGA  Express,  Leonardo  Spectrum  i MAX+PlusII.  Przykładowe
układy  zostały  zaimplementowane  w strukturach  FPGA  z rodziny

416

PRZEGLĄD TELEKOMUNIKACYJNY 

ROCZNIK LXXVI

nr 8–9/2003

O

Tabela 1. Wyniki implementacji rzeczywistych układów przy użyciu

różnych narzędzi syntezy logicznej

Przykład

Architektura FPGA 

EPF10K10LC84-3

DEMAIN

MAX

+Plus II

FPGA

Express

Leonardo
Spectrum

SIS

liczba komórek logicznych

bin2bcd1

13

131

30

30

bin2bcd2

39

505

225

120

136

DESboxes

184

585

486

192

rd88

167

332

341

245

248

DESaut

28

46

25

30

32

5B6B

41

92

100

49

51

FLEX. W tabeli podano liczbę komórek logicznych wymaganych do
implementacji poszczególnych układów. Z podanych rezultatów wy-
nika, że realizacja za pomocą metody wykorzystującej dekompozy-
cję zrównoważoną jest najoszczędniejsza pod względem liczby za-
jętych komórek i wygrywa nawet z realizacją osiągniętą za pomocą
uniwersyteckiego systemu SIS [35], opracowanego na Uniwersyte-
cie Kalifornijskim w Berkeley. 

W  szczególności  warto  zwrócić  uwagę  na  implementację  kon-

wertera kodu binarnego na kod BCD (wersja 1) oraz na implemen-
tacje  skrzynek  podstawieniowych  (s-box)  szyfrów  DES  i Rijndael.
Jak widać, wspomaganie procesu projektowania zaawansowanymi
procedurami  syntezy  logicznej  prowadzi  do  rezultatów  niemożli-
wych do uzyskania nawet za pomocą najlepszych systemów komer-
cyjnych. Trzeba również podkreślić, że na jakość powyższych imple-
mentacji w systemach komercyjnych nie mają wpływu nawet najlep-
sze  kompilatory  języków  HDL.  Konwerter  BIN2BCD1  jest  typowym
przykładem  takiej  sytuacji.  Otóż  konwerter  ten  można  zaprojekto-
wać bądź to w strukturze zbudowanej z bloków funkcjonalnych we-
dług tzw. algorytmu +3

1)

, bądź też jako układ kombinacyjny realizu-

jący  bezpośrednio  tablicę  LUT  konwertera.  W obu  przypadkach
strukturę konwertera można zapisać w językach opisu sprzętu, np.
AHDL lub VHDL. Opisując realizację według algorytmu +3 w języku
VHDL i dokonując odpowiedniej kompilacji w systemie MAX+PLUS
II  amerykańskiej  firmy  Altera,  uzyskuje  się  realizację  układu
BIN2BCD1  na  62  komórkach  struktury  FLEX  10K  [23].  Ten  sam
układ  opisany  tablicą  prawdy  (w  specyfikacji  VHDL  instrukcjami 
CASE)  i skompilowany  w tym  samym  systemie  Altery  zajmuje  131
komórek  FLEX.  Ale  wprowadzając  tablicę  prawdy  układu
BIN2BCD1  do  systemu  DEMAIN  i dokonując  odpowiedniej  de-
kompozycji, uzyskuje się realizację tego samego konwertera na
zaledwie 13 komórkach struktury FLEX – czyli 10 razy lepiej.

Nie  mniej  intrygujące  są  wyniki  implementacji  skrzynek  S-box 

algorytmów kryptograficznych DES i Rijndael. 

Istotne jest, że wykorzystanie tak zrealizowanych bloków permu-

tacyjnych do budowy modułu rundy DES, a następnie modułu ścież-

–––––––-–

1)

Dokładny opis takiej realizacji można znaleźć w książce [21]

background image

417

ki przepływu danych nie wymaga żadnych dalszych zmian w innych
plikach składowych projektu. Implementacje ścieżki przepływu da-
nych w strukturze rodziny FLEX10K program DEMAIN redukuje do
296 komórek logicznych. W porównaniu do 709 komórek niezbęd-
nych do realizacji tego bloku bez zastosowania programu DEMAIN
stanowi to ponad dwukrotną redukcję wymaganych zasobów. Opty-
malizacja z użyciem systemu DEMAIN poprawia także maksymalna
częstotliwość  taktowania  modułu  DES.  Wzrosła  ona  o ponad  51,5
MHz. Ponieważ do zaszyfrowania jednego bloku danych tekstu jaw-
nego  potrzeba  16  cykli,  szacunkowa  szybkość  szyfrowania P  tego
modułu wynosi: 

= 51,5 MHz/16 

×

64 bity = 206 Mbit/s. 

Oznacza to prawie dwukrotny wzrost szybkości szyfrowania blo-

ku ścieżki przepływu danych. 

Podobnie jak w przypadku bloku rundy zrealizowanego bez wy-

korzystania dekompozycji, rzeczywista szybkość układu realizujące-
go cały algorytm DES będzie zależała od sposobu realizacji pozo-
stałych modułów tego algorytmu, a więc modułu sterowania i modu-
łu generacji podkluczy. 

Tak zoptymalizowany blok rundy umożliwia realizację całej ścież-

ki rozpływu danych w sposób potokowy. Specyfikację takiej realiza-
cji w języku AHDL podano w tabeli 2. Wykorzystano tu zmodyfiko-
wany  blok  rundy  (desroundp).  Modyfikacja  polega  na  dodaniu  na
wyjściu  modułu  odpowiedniego  rejestru.  Umieszczenie  16  bloków
tak zmodyfikowanych bloków rundy w łańcuchu zapewnia znacznie
efektywniejszą pracę układu, gdyż dane mogą być szyfrowane po-
tokowo. Układ wymaga 4346 komórek logicznych i może pracować
z szybkością = 86,9 MHz 

×

64 bity 

5 Gbit/s. 

O dużej  skuteczności  systemu  DEMAIN  świadczy  również  reali-

zacja szyfru HIEROCRYPT, wykonana w ramach pracy magisterskiej
na Wydziale Cybernetyki WAT [34]. Efektem jego zastosowania by-
ła redukcja zasobów sprzętowych z ok. 22 tys. komórek logicznych
do 10 tys., a także 5-krotne przyśpieszenie działania układu. Praca
ta zdobyła I nagrodę w konkursie na najlepszą pracę magisterską,
zorganizowanym w ramach konferencji ENIGMA. 

Przeprowadzone eksperymenty w pełni potwierdzają tezę, że ko-

mercyjne  systemy  projektowania  układów  cyfrowych  niejednokrot-
nie realizują projekty dalekie od rozwiązań optymalnych pod wzglę-
dem  zajętości  zasobów  sprzętowych.  Sytuacja  ta  jest  szczególnie
niepokojąca  dla  najnowszych  układów  reprogramowalnych  typu

FPGA i FLEX. Przyczyna tego zjawiska tkwi w niedostosowaniu pro-
cedur syntezy logicznej, które w systemach komercyjnych są z re-
guły  realizowane  według  klasycznych  metod  minimalizacji  funkcji
boolowskich i nie uwzględniają metod dekompozycji funkcjonalnej
[22].  Zatem  stosowanie  zaawansowanych  systemów  uniwersytec-
kich  niejednokrotnie  może  się  przyczynić  do  sukcesu  rynkowego,
w szczególności specyficznej techniki układów FPLD. 

✽ ✽ ✽

Omówione  w artykule  zastosowania  układów  reprogramowal-

nych w cyfrowym przetwarzaniu sygnałów i kryptografii, dzięki moż-
liwości zmiany konfiguracji w trakcie pracy i elastycznemu wykorzy-
stywaniu  zasobów  sprzętowych,  zapewniają  ich  wykorzystanie  do
realizacji  złożonych  algorytmów  obliczeniowych.  W połączeniu
z możliwościami  wspierania  procesów  optymalizacji  komercyjnych
systemów  zaawansowanymi  systemami  syntezy  i optymalizacji  lo-
gicznej stwarza to szansę dla rozwoju rodzimych opracowań urzą-
dzeń telekomunikacyjnych. Jest ona szczególnie widoczna w syste-
mach  multimedialnych  i kryptograficznych,  dla  których  istotniejsze
są parametry techniczne, wynikające z istoty reprogramowania, niż
jednostkowy koszt produkcji. 

LITERATURA

[1] Arnold J. M.: The Splash 2 software environment. In D. A. Buell and

K. L. Pocek, editors, Proceedings of IEEE Workshop on FPGAs for
Custom Computing Machines, Napa, CA, April, 1993 

[2] Arnold  M.,  Buell  D.  A.  and  Davis  E.  G.:  VHDL  programming  on

Splash  2.  In  More  FPGAs:  Proceedings  of  the  1993  International
Workshop on Field-Programmable Logic and Applications, Oxford,
England, September 1993 

[3] Arnold, D. A. Buell, and E. G: Davis. Splash 2. In Proceedings of the

4th Annual ACM Symposium on Parallel Algorithms and Architectu-
res, June 1992 

[4] Bertin  P.  and  Touati  H.:  PAM  programming  environments:  Practice

and experience. In D. A. Buell and K. L. Pocek, editors, Proceedings
of IEEE Workshop on FPGAs for Custom Computing Machines, Na-
pa, CA, April 1994 

[5] Connor  T.,  Deng  S.,  Marchant  S.:  Cryptographic  Coprocesor  with 

Algorithm Agility, Worcester Polytechnic Institute, Worcester, March
1999 

[6] Elbirt A. J., Yip W., Chetwynd B., Paar C.: An FPGA implementation

and performance evaluation of the AES block cipher candidate algo-
rithm finalists
, Proc. 3

rd

Advanced Encryption Standard (AES) Can-

didate Conference, New York, April 13-14, 2000 

[7] Gaj K., Chodowiec P.: Comparison of the hardware performance of

the AES candidates using reconfigurable hardware, Proc. 3

rd

Advan-

ced  Encryption  Standard  (AES)  Candidate  Conference,  New  York,
April 13-14, 2000 

[8] Gokhale M., Holmes W., Kopser A., Lucas S., Minnich R., Swelly D.,

and Lopresti D.: Building and using a highly parallel programmable
logic array
. IEEE Computer, 24 (1), January 1991 

[9] Gokhale M., Kopser A., Lucas S. and Minnich R.: The logic descrip-

tion  generator.  Technical  Report  SRC-TR-90-011,  Suprtcomputer
Research Center (SRC), 1990 

[10] Gokhale M. and Schott B.: Data Parallel C on a reconfigurable logic

array. Journal of Supercomputing, 9 (3), 1994 

[11] Guccione  S.  A.,  Delon  L.,  Downs  D.:  A reconfigurable  content  ad-

dressable  memory,  Parallel  and  Distributed  Processing.  Springer-
Verlag, Berlin, May 2000 

[12] http://www.altera.com
[13] http://www.atmel.com
[14] http://www.windriver.com
[15] http://pw1.netcom.com
[16] http://www.tsi-telsys.com
[17] http://www.xilinx.com
[18] IEEE Computer Society, Proceedings of IEEE Workshop on FPGAs

for Custom Computing Machines, 1993-1996 

[19] Jachna Z.: Analiza metod specyfikacji układów cyfrowych z punktu

widzenia optymalizacji logicznej i odwzorowania technologicznego.
Rozprawa doktorska, WAT, Warszawa 2002 

[20] Jasiński K., Zbysiński P.: Rekonfigurowalny koprocesor systemowy:

uniwersalna  platforma  obliczeniowa,  Przegląd  Telekomunikacyjny
i Wiadomości Telekomunikacyjne, nr 10, 2000 

[21] Łuba T., Zbierzchowski B.: Komputerowe projektowanie układów cy-

frowych. Wydawnictwa Komunikacji i Łączności, Warszawa 2000 

[22] Łuba  T.:  Synteza  układów  logicznych,  Wyższa  Szkoła  Informatyki

Stosowanej i Zarządzania, wyd. 2, poprawione i rozszerzone, War-
szawa 2001 

PRZEGLĄD TELEKOMUNIKACYJNY  

ROCZNIK LXXVI

nr 8–9/2003

OPTIONS BIT0 = MSB;
INCLUDE "iniperm";
INCLUDE "desroundp";
INCLUDE "invperm";
SUBDESIGN datapathp(

clk : 

INPUT;

plaintext[1..64]

: INPUT;

subkey[1..16][1..48]

: INPUT;

encrypteddata[1..64]

: OUTPUT;

)

VARIABLE

ip

: iniperm;

round[1..16]

: desroundp;

invp

: invperm;

BEGIN

round[].clk = clk;
ip.IN[] = plaintext[];
round[1].R[] = ip.OUT[33..64];
round[1].L[] = ip.OUT[1..32];
round[1].K[] = subkey[1][];
FOR i IN 1 TO 15 GENERATE

round[i+1].R[] = round[i].NEXTR[];
round[i+1].L[] = round[i].NEXTL[];
round[i+1].K[] = subkey[i+1][];

END GENERATE;
invp.IN[] = (round[16].NEXTR[],round[16].NEXTL[]);
encrypteddata[] = invp.OUT[];

END;

O

Tabela 2. Specyfikacja rozpływu danych w języku AHDL

background image

[23] Łuba T., Zbierzchowski B., Zbysiński P.: Układy reprogramowalne dla

potrzeb  telekomunikacji  cyfrowej.  Przegląd  Telekomunikacyjny
i Wiadomości Telekomunikacyjne, nr 5, 2002 

[24] Łuba T. (red.), Rawski M., Tomaszewicz P., Zbierzchowski B.: Synte-

za układów cyfrowych. WKŁ Warszawa (przewidywany termin wyda-
nia – listopad 2003) 

[25] Mosanya  E.  et  al.:  CryptoBooster:  A Reconfigurable  and  Modular

Cryptographic Coprocesor, Proceedings of the Workshop on Cryp-
tographic  Hardware  and  Embedded  Systems,  Worcester  August
1999

[26] Meyer-Baese U.: Digital Signal Processing with Field Programmable

Gate Arrays, Springer Verlag, Berlin 2001 

[27] National  Security  Agency,  Initial  plans  for  estimating  the  hardware

performance  of  AES  submissions http://csrc.nist.gov/encryption/
aes/round2/round2.htm 

[28] Nowicka  M.,  Rawski  M.,  Łuba  T.:  DEMAIN  –  an  Interactive  Tool  for

FPGA-Based Logic Decomposition, Proceedings of the 6

th

Interna-

tional Conference Mixed Design of Integrated Circuits and Systems,
Kraków 1999 

[29] IFAC Workshop on Programmable Devices and Systems (E. Hrynkie-

wicz – chairman), PDS2001, materiały konferencyjne, Gliwice 2001 

[30] Pasierbiński  J.,  Zbysiński  P.:  Układy  programowalne  w praktyce,

WKŁ, Warszawa 2001 

[31] Rakowski  W.:  O implementacjach  sprzętowych  transformacji  falko-

wej. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne,
nr 2–3, 2003 

[32] Rawski M., Jóźwiak L., Łuba T.: Functional decomposition with an ef-

ficient input support selection for sub-functions based on information
relationship measures. 
Journal of Systems Architecture, 47, Elsevier
Science B. V., 2001 

[33] Reprogramowalne układy cyfrowe (J. Sołdek – przewodniczący Ko-

mitetu Programowego), materiały IV Konferencji Naukowej, Szcze-
cin 2001 

[34] Rogowski M.: Implementacja algorytmu HIEROCRYPT w strukturach

programowalnych. Praca magisterska, WAT, 2003 

[35] Sentovich  E.,  et  al.:  SIS:  A system  for  Sequential  Circuits  Synt-

hesis.  Electronics  Research  Laboratory  Memorandum,  No.
VCB/ERLM92/41, University of California, Berkeley, 1992 

[36] Tessier  R.,  Burlesson  W.:  Reconfigurable  Computing  for  Digital 

Signal Processing: A Survej. Journal of VLSI Signal Processing, 28,
2001 

[37] Taylor R., Goldstein S.: A High-Perfomance Flexible Architecture for

Cryptography, Proceedings of the Workshop on Cryptographic Har-
dware and Embedded Systems, Worcester August 1999 

[38] Vuillemin Bertin P., Roncin D., Shand M., Touati H., and Boucard  P.:

Programmable  active  memories:  Reconfigurable  systems  come  of
age
. IEEE Transactions on VLSI Systems, 4 (1), 1996 

[39] Wiatr K.: Sprzętowe implementacje algorytmów przetwarzania obra-

zów  w systemach  wizyjnych  czasu  rzeczywistego.  AGH,  Kraków
2002 

[40] Zbysiński P.: Rekonfigurowalne układy FPSLIC firmy Atmel, Elektroni-

zacja nr 7–8’2000

418

PRZEGLĄD TELEKOMUNIKACYJNY 

ROCZNIK LXXVI

nr 8–9/2003