ANALIZA WŁAŚCIWOŚCI GENERATORÓW

Wielkość: px
Rozpocząć pokaz od strony:

Download "ANALIZA WŁAŚCIWOŚCI GENERATORÓW"

Transkrypt

1 POLITECHNIKA ŚLĄSKA WYDZIAŁ ELEKTRYCZNY INSTYTUT ELEKTROTECHNIKI I INFORMATYKI mgr inż. Rafał Stępień ANALIZA WŁAŚCIWOŚCI GENERATORÓW SYGNAŁÓW PSEUDOLOSOWYCH ZBUDOWANYCH NA REJESTRACH PRZESUWNYCH ROZPRAWA DOKTORSKA Promotor: prof. dr hab. inż. Janusz Walczak Gliwice 214

2 Spis treści Spis treści...ii Oznaczenia i stosowana symbolika...iv 1. Wprowadzenie Wstęp Cel, zakres i teza pracy Przegląd metod generacji sygnałów losowych oraz pseudolosowych Wstęp Sygnały w pełni losowe Sygnały pseudolosowe Generatory z liniową funkcją sprzężenia zwrotnego - LFSR Wstęp Modele dyskretne generatorów LFSR Badania symulacyjne Badania eksperymentalne Podsumowanie Generatory z nieliniową funkcją sprzężenia zwrotnego NLFSR Wstęp Modele dyskretne generatorów NLFSR Badania symulacyjne Badania eksperymentalne Podsumowanie Generatory z dynamiczną liniową funkcją sprzężenia zwrotnego DLFSR Wstęp Formalizacja opisu matematycznego generatorów DLFSR Równania stanu rejestru oraz sekwencji wyjściowych generatorów DLFSR Modele dyskretne generatorów DLFSR Badania symulacyjne i analityczne Implementacja sprzętowa generatora DLFSR Badania eksperymentalne Podsumowanie Metody badań statystycznych generatorów zbudowanych na rejestrach przesuwnych Wstęp Sekwencje wyjściowe generatorów zbudowanych na rejestrach przesuwnych Analiza statystyczna II

3 6.4. Analiza widma Test kompresji Testy statystyczne oraz hipoteza H Podsumowanie Badania statystyczne ciągów pseudolosowych Wstęp Metody statystyki klasycznej Testy statystyczne Badania generatora LFSR Badania generatora DLFSR Sprzętowy generator losowy Podsumowanie Wybrane zastosowania generatorów DLFSR Wstęp Generator szumu białego System transmisji danych z widmem rozproszonym DSSS Modulator AM z pseudolosowym sygnałem modulującym Szyfrowanie danych z wykorzystaniem generatora DLFSR Podsumowanie Zakończenie Załączniki A) Złożone struktury generatorów LFSR B) Metoda zwiększenia szybkości generacji ciągów pseudolosowych C) Zestawy uruchomieniowe Wykaz literatury III

4 Oznaczenia i stosowana symbolika Kursywą i, j, k, l, oznaczono kolejne aktywne odczepy rejestru przesuwnego doprowadzone do funkcji sprzężenia zwrotnego. Wykaz najczęściej używanych oznaczeń wyszczególniono poniżej: K N numery aktywnych odczepów rejestru przesuwnego, N rząd rejestru, L(x) wielomian opisujący funkcję sprzężenia zwrotnego, k i,j elementy macierzy współczynników funkcji sprzężenia zwrotnego, i indeks numeru wielomianu, I liczba wielomianów sprzężenia zwrotnego, p numer cyklu zegarowego, f(p) funkcja indeksująca, l długość sekwencji, D stopień podziału dzielnika częstotliwości sygnału zegarowego, B 1 B N kolejne bity rejestru przesuwnego, MSB bit najbardziej znaczący, LSB bit najmniej znaczący, T g okres powtórzenia sekwencji pseudolosowej, T c okres sygnału zegarowego, f c częstotliwość sygnału zegarowego, y dyskretna wartość wyjściowa funkcji sprzężenia zwrotnego, s symbol oznaczający sekwencję generatora, E(s) wartość oczekiwana sekwencji s, Var(s) wariancja sekwencji s, α współczynnik istotności testu statystycznego, p-wartość wartość prawdopodobieństwa testowego. Wszystkie oznaczenia występujące w tekście pracy opisano w miejscu ich pierwszego wystąpienia. Numeracja wzorów, rysunków i tabel jest odrębna w ramach każdego rozdziału i składa się z trzech symboli: numeru rozdziału, kropki i numeru wzoru (rysunku, tabeli). Zakończenie każdego przykładu oznaczono symbolem. IV

5 1. Wprowadzenie 1.1. Wstęp Problematyka dotycząca generacji sygnałów pseudolosowych jest jednym ze współczesnych zagadnień teorii informacji, elektroniki i innych pokrewnych dziedzin nauki. Sygnały pseudolosowe mają wiele różnych zastosowań w technice. Generatory sygnałów (liczb) pseudolosowych znajdują zastosowanie w różnych algorytmach statystycznych [KZ], są niezbędnym elementem metody Monte Carlo, są także wykorzystywane w konstrukcji symulatorów. Do innych zastosowań tych generatorów zaliczyć należy wykorzystanie w kryptografii jako generatorów kluczy szyfrów strumieniowych [SB] i w telekomunikacji w układach modulacji z widmem rozproszonym [MR]. Sygnały pseudolosowe stosowane są obecnie w wielu dziedzinach nauki i przemysłu. Znajdują zastosowanie między innymi przy konstrukcji: układów rozpraszania widma w systemach telekomunikacyjnych zarówno militarnych jak i cywilnych [WK1], systemów telekomunikacyjnych z dostępem kodowym (CDMA) [WK1], [WK2], metod skramblingu i descramblingu w systemie TETRA [WK1], warstwy fizycznej systemu HIPERLAN/2 [WK1], szyfrów strumieniowych [SB], algorytmu A5 stosowanego do szyfrowania danych w telefonii komórkowej GSM [SB], generatorów szumów oraz generatorów przebiegów arbitralnych [MR], [WJ2], symulatorów korzystających z metody Monte Carlo [KZ], układów automatycznego testowania BIST [GS3], interfejsów sprzętowych takich jak: Ethernet, USB 3., PCI-Express [WT], [MJ3], układów określających poziom błędów transmisji sygnałów w standardzie DVB [LG], systemu synchronizacji czasu DCF77 [HP]. Podstawowe zastosowania ciągów pseudolosowych pokazano na rysunku

6 Rys Zastosowania sygnałów pseudolosowych Głównymi dziedzinami techniki w których sygnały pseudolosowe mają zastosowania to telekomunikacja oraz kryptografia. W systemach telekomunikacyjnych sygnały pseudolosowe stosowane są w układach modulacji z widmem rozproszonym (systemy DSSS, FHSS [WK1], [WK2], [GS2], [MR]) oraz w kodowaniu informacji np. w systemie GSM [WK1]. Jedną z głównych przyczyn stosowania tego typu sygnałów jest możliwość prostej synchronizacji dwóch generatorów pracujących w nadajniku i odbiorniku. Zastosowanie we wspomnianych systemach sygnałów w pełni losowych (wykorzystujących np. szumy wzmacniaczy operacyjnych [MA] lub szumy termiczne) napotyka na problem synchronizacji, która jest kluczowym aspektem przesyłania informacji [WK1], [WK2]. Na stosowane w technice sygnały pseudolosowe narzuca się szereg wymagań [ZA], [CP2], [PV], które muszą zostać spełnione przez generatory takich sekwencji. Szczególnie restrykcyjnie bada się generatory stosowane w systemach kryptograficznych [ZA], [SJ1]. W przypadku zastosowań sygnałowych generatorów pseudolosowych np. jako generatorów szumu, badania takie nie są konieczne [MR]. W tym przypadku istotne są natomiast inne parametry sygnałów pseudolosowych takie jak gęstość widmowa sygnału czy jego wartość oczekiwana lub wariancja [SJ]. Praca poświęcona jest głównie analizie właściwości generatorów sygnałów pseudolosowych zbudowanych na rejestrach przesuwnych. W pracy dokonano analizy właściwości generatorów z rejestrami przesuwnymi, opracowano nowe struktury pracy generatorów pseudolosowych oraz modele matematyczne opracowanych struktur. Dokonano pomiarów statystycznych ciągów pseudolosowych generowanych przez zaproponowane układy generatorów. W pracy ograniczono się do klasy generatorów pseudolosowych zbudowanych na rejestrach przesuwnych. Ograniczenie to wynika z wymienionych poniżej faktów [AP], [CP1], [SB], [DE], [KZ]. Generatory zbudowane na rejestrach przesuwnych: są stosowane na szeroką skalę w technice, umożliwiają efektywną generację ciągów pseudolosowych, są w prosty sposób implementowane w technologii układów scalonych, generują sygnały o zadowalających parametrach statystycznych a modele matematyczne takich generatorów w wielu przypadkach są znane. 2

7 1.2. Cel, zakres i teza pracy Celem pracy jest: Przegląd literatury dotyczącej zastosowań sygnałów pseudolosowych w technice i nauce (rozdział 2). Analiza właściwości generatorów drgań pseudolosowych zbudowanych na rejestrach przesuwnych z liniową funkcją sprzężenia zwrotnego (rozdział 3), z nieliniową funkcją sprzężenia zwrotnego (rozdział 4) oraz z dynamiczną, liniową funkcją sprzężenia zwrotnego (rozdział 5). Badania symulacyjne i doświadczalne opracowanych struktur generatorów. Przegląd najważniejszych metod analizy statystycznej ciągów pseudolosowych (rozdział 6). Testy statystyczne sekwencji wyjściowych opracowanych struktur generatorów (rozdział 7). Przykłady zastosowań generatorów z dynamiczną, liniową funkcją sprzężenia zwrotnego (rozdział 8). Podsumowanie wyników badań uzyskanych w pracy (rozdział 9). Zakres pracy obejmuje następujące zagadnienia: przegląd metod generacji sygnałów losowych oraz pseudolosowych, opracowanie metody opisu generatorów wykorzystujących rejestry przesuwne z wykorzystaniem terminologii układów dyskretnych, syntezę nowych struktur generatorów wykorzystujących rejestry przesuwne z dynamicznie przełączanym sprzężeniem zwrotnym, analizę ciągów generowanych przez opracowane układy generatorów pseudolosowych z wykorzystaniem testów statystycznych, badania symulacyjne oraz implementacje sprzętowe opracowanych generatorów zrealizowanych z wykorzystaniem układów FPGA i systemów mikroprocesorowych. Zakres zagadnień rozpatrywanych w pracy zilustrowano w formie diagramu na rysunku 1.2. Do pracy dołączono trzy załączniki. W załączniku A zawarty jest przegląd złożonych struktur generatorów LFSR, które w ramach przyszłych badań będą modyfikowane z wykorzystaniem generatorów DLFSR. W załączniku B opisano propozycję zwiększenia szybkości generacji ciągów pseudolosowych generatorów zbudowanych z rejestrów przesuwnych. Załącznik C zawiera opis zestawów uruchomieniowych oraz stanowiska pomiarowego wykonanego w ramach pracy i wykorzystywanego w badaniach generatorów. 3

8 Rys Zagadnienia rozpatrywane w pracy Tezę pracy formułuje się następująco: M ożliwe jest znaczne wydłużenie długości sekwencji sygnałów pseudolosowych i poprawa ich parametrów statystycznych dla generatorów zbudowanych z rejestrów przesuwnych dzięki wykorzystaniu dynamicznej, zmiennej w czasie, struktury pętli sprzężenia zwrotnego. 4

9 2. Przegląd metod generacji sygnałów losowych oraz pseudolosowych 2.1. Wstęp Wyróżnia się dwie podstawowe klasy sygnałów przypadkowych [RK]. Pierwszą z nich stanowią sygnały w pełni losowe, rysunek 2.1. Rys Podział sygnałów przypadkowych 5

10 Sygnałem losowym nazywamy sygnał, którego wartości w każdej chwili czasu są zmiennymi losowymi i którego ewolucja w czasie następuje według określonych praw probabilistycznych [SJ]. Druga z wymienionych klas to sygnały pseudolosowe, czyli sygnały okresowe zachowujące w trakcie trwania jednego okresu, wszelkie cechy sygnału losowego [MA1]. Metody generacji sygnałów przypadkowych dzieli się na trzy grupy rysunek 2.1. Pierwsza z nich umożliwia generację sygnałów w pełni losowych i wykorzystuje naturalne źródła sygnałów losowych występujące w przyrodzie lub procesy losowe generowane przez człowieka. Druga metoda umożliwia generację sygnałów pseudolosowych programowo w oparciu o różne techniki algorytmiczne lub sprzętowo, często z wykorzystaniem rejestrów przesuwnych z liniowym sprzężeniem zwrotnym (ang. LFSR Linear Feedback Shift Register) [GS]. Oprócz wymienionych dwóch podstawowych metod generacji sygnałów przypadkowych istnieją również metody inne, wykorzystujące np. zjawisko chaosu deterministycznego [PV], [RK] Sygnały w pełni losowe Generatory sygnałów w pełni losowych korzystają ze zjawisk których przebieg czasowy nie jest przewidywalny. Do podstawowych zjawisk mających zastosowanie w konstrukcji generatorów elektrycznych sygnałów losowych zalicza się głównie sygnały szumowe. Różne rodzaje szumów występują w elementach elektronicznych, zarówno aktywnych (np. wzmacniacze operacyjne lub tranzystory) i pasywnych (rezystory, diody). Do najczęściej spotykanych w technice szumów należą [TI1]: szumy cieplne, szumy typu 1/f, szumy śrutowe, szumy lawinowe, szumy wybuchowe. Praktyczne wykorzystanie sygnałów szumowych wymaga ich wzmocnienia, gdyż poziom napięcia bądź prądu szumów jest na poziomie mikrowoltów lub nanoamperów. Podstawowym elementem, który może zostać użyty w celu wzmocnienia sygnału szumu jest wzmacniacz operacyjny o odpowiednio szerokim paśmie przenoszenia i szumach własnych mniejszych od poziomu wzmacnianego sygnału szumowego. Wzmocniony sygnał szumu może posłużyć jako źródło analogowego sygnału losowego lub, poprzez zastosowanie dalszej obróbki i konwersji, może być źródłem binarnej sekwencji losowej [LM]. Podstawowe układy generatorów sygnałów losowych pokazano na rysunku

11 Rys Podstawowe struktury układów generacji sygnałów losowych. Podstawowym układem generacji analogowego sygnału szumowego jest układ pokazany na rysunku 2.2a. Tego typu układ występuje jako element składowy większości generatorów sygnałów losowych (zarówno analogowych jak i cyfrowych). Składa się on z odpowiedniego źródła szumu, którym może być rezystor, spolaryzowane zaporowo złącze baza-emiter tranzystora bipolarnego lub odpowiednia dioda. Najczęściej układy pokazane na rysunku 2.2a służą jako generatory szumu o równomiernej widmowej gęstości mocy w możliwie najszerszym zakresie częstotliwości (szum biały). Przykładowy schemat generatora sygnału losowego według koncepcji 2.2a pokazano na rysunku 2.3. Przebieg napięcia wyjściowego generatora oraz jego widmo amplitudowe pokazano na rysunku 2.4. Źródłem szumu w układzie jest bipolarny tranzystor T1. Spolaryzowane zaporowo złącze B-E tranzystora T1 działa jak dioda Zenera. Zjawisku Zenera towarzyszy powstawanie szumów. Napięcie szumów występuje na emiterze T1. Sygnał z emitera tranzystora T1 zostaje wzmocniony w dwustopniowym wzmacniaczu. Na wyjściu (rezystor R1) uzyskuje się szum, który w ograniczonym zakresie częstotliwości ma stałe widmo amplitudowe. Wpływ na szerokość widma amplitudowego sygnału wyjściowego ma głównie źródło szumów, wzmacniacz operacyjny, który ma skończone pasmo przenoszenia, składowe pasożytnicze elementów pasywnych oraz szumy obwodu zasilania VCC przedostające się na wejście nieodwracające wzmacniacza IC1A. 7

12 Rys Przykładowa realizacja generatora szumu Rys Przebieg czasowy oraz widmo szumu generatora z rysunku 2.3 Generator z rysunku 2.3 może zostać zastosowany do generacji liczb losowych [PC]. W tym celu do wyjścia generatora należy dołączyć konwerter sygnału (przetwornik analogowocyfrowy), który losowy sygnał szumowy zamieni na ciąg liczb. Strukturę takiego generatora pokazano na rysunku 2.2b. Proces próbkowania i wytwarzania sygnału binarnego z 8

13 analogowego źródła szumów musi zostać przeprowadzony w taki sposób, aby proces konwersji nie wpływał na losowość wyjściowego sygnału cyfrowego [LM]. W najprostszej postaci przetwornikiem przekształcającym szum na ciąg liczb może być jednobitowy przetwornik DAC (komparator) [LM]. Ideę taką ilustruje rysunek 2.5. Rys Wykorzystanie szumów jako źródła sygnału losowego Szum związany z zjawiskiem Zenera w zaporowo spolaryzowanym złączu B-E tranzystora zostaje wzmocniony do zakresu przetwarzania przetwornika analogowocyfrowego. Częstotliwość próbkowania oraz rozdzielczość przetwornika powinny zostać dobrane do konkretnego zastosowania generowanej sekwencji losowej. Jeżeli zastosowane źródło szumów nie jest obciążone żadnym zjawiskiem deterministycznym (np. tętnienia napięcia polaryzacji źródła szumów, korelacje związane ze złym punktem pracy źródła szumów, obecność składowych sygnału zegarowego przetwornika ADC itp.) oraz jeśli nie popełniono błędów podczas próbkowania to uzyskana z wyjścia przetwornika ADC sekwencja będzie w pełni losowa [LM]. W praktycznej realizacji nie da się wyeliminować błędów związanych z próbkowaniem sygnału losowego. Możliwe jest natomiast zredukowanie błędów poprzez wykorzystanie kilku źródeł szumów oraz dodatkowego przetwarzania sygnałów. Koncepcję takiej struktury generatora pokazano na rysunku 2.2c a przykładową realizację w pracy [LM]. Układ zaprezentowany w pracy [LM] wykorzystuje osiem źródeł analogowego sygnału losowego generowanego na starannie dobranych i odpowiednio spolaryzowanych tranzystorach bipolarnych. Ilość niezależnych źródeł sygnału losowego (szumu) została obliczona na podstawie założonych wyników testów statystycznych oczekiwanej sekwencji wyjściowej generatora. Stabilny szum lawinowy generowany przez odpowiednio spolaryzowane tranzystory jest realizacją procesu Poissona, który nadaje się do przetworzenia w binarną sekwencję losową. Przetworzenie sygnału szumowego następuje w odpowiednio skonfigurowanych komparatorach. Cyfrowa obróbka sygnałów z komparatorów realizowana jest w układzie programowalnym typu FPGA. Szczegóły budowy oraz wyniki badań generatora przedstawiono w pracy [LM]. 9

14 Do innych metod generacji elektrycznych sygnałów losowych można zaliczyć wykorzystanie: scalonych układów generatorów sygnałów losowych [AG], zjawiska chaosu deterministycznego [PV], zjawiska jitter w oscylatorach pierścieniowych [LM], [KP], cyfrowych źródeł szumów implementowanych w układach mikroprocesorowych [CG], niestabilności oscylatorów [FR]. Do generacji sygnałów w pełni losowych można wykorzystać zjawiska nie związane z sygnałami elektrycznymi. Przykładem procesów generujących sygnały w pełni losowe są zjawiska występujące w przyrodzie, takie jak szumy czy promieniowanie [SB]. Do naturalnych procesów losowych można zaliczyć [SB]: szum atmosferyczny [RO], rozpad radioaktywny [GM], promieniowanie kosmiczne, czas pomiędzy naciśnięciami klawiszy, sygnały z urządzeń audiowizualnych, treść obrazu wyświetlanego na monitorze, bieżąca pozycja kursora myszy, czas dostępu dla każdej operacji dyskowej, zawartość dowolnego sektora dysku twardego. Innym, ciekawym ze względu na formę, źródłem liczb losowych była wydana przez firmę RAND w 1955r. książka liczb losowych [RA]. Książka ta zawiera milion losowych cyfr. Publikacja ta została wydana przed erą komputerów i do generacji liczb losowych wykorzystano randomizację tablicy bazowej wytworzonej za pomocą elektronicznej ruletki. W systemach mikroprocesorowych czy komputerowych uzyskanie sygnałów o pełnej losowości nie jest łatwe. Do generacji sygnału w pełni losowego nie można wykorzystać deterministycznego algorytmu, którego wykonanie za każdym razem będzie dawać te same wyniki. Można za to w pewnym ograniczonym zakresie uznać, że liczby generowane poprzez deterministyczny algorytm mają cechy sygnału w pełni losowego. Od konstrukcji algorytmu oraz metody implementacji będzie zależeć czy generowana sekwencja uchodzi za dostatecznie losową. Sygnały takie, zachowujące w określonym czasie cechy sygnału losowego, nazywa się sekwencjami pseudolosowymi. 1

15 2.3. Sygnały pseudolosowe W technice cyfrowej generacja w pełni losowych liczb nie jest możliwa. Komputery są z założenia urządzeniami w pełni deterministycznymi i nie powinny wykazywać właściwości losowych. Program wykonywany przez komputer przechodzi za każdym razem ten sam zestaw instrukcji. Oznacza to, że dla tych samych danych wejściowych na wyjściu programu otrzymamy ten sam wynik. Dla obserwatora sekwencji wyjściowej jej ciąg może mieć cechy losowe i odróżnienie sekwencji pseudolosowej od sekwencji w pełni losowej w krótkim odstępie czasu (przy małej ilości próbek wyjściowych) może być trudne. Wystarczy jednak analizować znacznie dłuższy fragment sekwencji wyjściowych aby odróżnić sekwencję losową od pseudolosowej. Przy czym pojęcie znacznie dłuższy w przypadku dobrych generatorów pseudolosowych może oznaczać sekwencję długości 1 11 (złożony i dobrze zaprojektowany generator kongruencyjny) [SB]. Uproszczoną klasyfikację układów służących do generacji sygnałów pseudolosowych pokazano na rysunku 2.6. Rys Klasyfikacja generatorów sekwencji pseudolosowych 11

16 Układy te podzielić można na kilka klas. Pierwszą z nich tworzą generatory kongruencyjne. W zależności od przyjętego algorytmu kongruencji generatory te dzieli się na kilka grup opisanych poniżej. Liniowe generatory kongruencyjne (ang. LCG Linear Congruential Generator) [CP1], [SB] opisuje zależność: x n F ( a, xn k, b, m) = ( axn 1 + b) mod m. (2.1) = LCG Algorytm opisany wzorem (2.1) wymaga podania wartości trzech parametrów a, b, m oraz tak zwanego ziarna (ang. Seed), czyli początkowej wartości x. Liczby a, b, m nazywają się kolejno mnożnikiem, przyrostem oraz modułem. Dla zapewnienia maksymalnej długości sekwencji wyjściowej generatora opisanego równaniem (2.1) liczby a i m powinny być względnie pierwsze [PS]. Przy spełnieniu tego warunku długość generowanej sekwencji wynosi m-1. Wartość ziarna nie wpływa na długość sekwencji. W wielu pracach np. [SB], [PW] można znaleźć tabele z liczbami a, b, m które umożliwiają generację sekwencji o maksymalnej długości. Algorytm generatora LCG (wzór 2.1) jest w pełni deterministyczny (opisany jest konkretnym wzorem matematycznym) i nie ma w nim niczego losowego, poza ewentualnym wyborem ziarna (wartości x ). Generator LCG dokonuje permutacji liczb z zakresu 1 do m-1 (przy założeniu generacji przez algorytm sekwencji o maksymalnej długości). Istnieje kilka odmian generatorów kongruencyjnych [HP1], [KA] wykorzystujących modyfikację wzoru (2.1). Zaliczają się do nich generatory wykorzystujące wzór (2.1) z dodatkowymi członami nieliniowymi. Jednym z takich członów jest element związany z pożyczką przy dodawaniu lub odejmowaniu. Uogólniony opis generatorów kongruencyjnych wykorzystujących pożyczkę jest określony wzorem: x, (2.2) n = FLCG ( a, xn k, b, m) ± cn 1 gdzie: c - wartość pożyczki. Generatory z pożyczką wykorzystują zależność pomiędzy dwoma wybranymi elementami wygenerowanego ciągu pseudolosowego. Jeżeli ich suma (najczęściej przepełnienie bitowe) lub różnica (różnica obu elementów mniejsza od zero) spełnia opisane poniżej kryteria to do aktualnej wartości x n dodawana jest wartość pożyczki. Innym typem nieliniowego generatora kongruencyjnego jest generator wykorzystujący mnożenie z przeniesieniem (ang. Multiple With Carry - MWC) [KA]. Generator MWC spełnia wiele testów statystycznych [ZA] oraz wchodzi w skład pakietu DIEHARD [DH] jako jeden z generatorów testowych. Sekwencja wyjściowa uogólnionego generatora MWC jest określona wzorem: k 1 n+ 1 = ( axn i + cn )(mod m) i= x, (2.3) 12

17 gdzie: x n+1 kolejne liczby generowane przez generator MWC, c n+1 kolejne wartości przeniesienia, a mnożnik generatora, m moduł generatora. c n+ k 1 axn i + cn i= = 1, (2.4) m Do poprawnej inicjalizacji generatora MWC konieczne jest podanie wartości ziaren (stanów początkowych) x, x 1 x i-1. Generator MWC pozwala na generację sekwencji o bardzo długich okresach. Wymaga to prawidłowego dobrania ilości oraz wartości ziaren oraz zależności między bazą generatora m a mnożnikiem a [KA]. Innym typem nieliniowego generatora kongruencyjnego jest generator inwersyjny (ang. Inversive Congruential Generator - ICG) [HP1]. Generator jest nieliniowy, ponieważ do obliczenia kolejnego elementu sekwencji pseudolosowej wykorzystywane jest odwrócenie elementu aktualnego modulo duża liczba pierwsza. Sekwencja wyjściowa generatora LCG jest określona następującym wzorem: gdzie: p dowolna liczba pierwsza, a mnożnik generatora, b stała generatora. 1 xn+ 1 = ( axn + b) mod p, (2.5) Do poprawnej inicjalizacji generatora IGC wymagane jest podanie ziarna x. Ze względu na występowanie odwrotności we wzorze (2.5) wartości ciągu wyjściowego generatora nie mogą przyjmować wartości. Jednym z najpopularniejszych i często stosowanym nieliniowym generatorem kongruencyjnym jest generator Blum Blum Shub (BBS) [BB], nazywany często generatorem reszt kwadratowych. Algorytm kongurencji generatora BBS jest określony wzorem: x n 2 = x mod M, (2.6) n 1 gdzie: M iloczyn dwóch dużych liczb pierwszych których iloczyn dzielony przez 4 daje resztę 3. Generator BBS posiada najlepsze właściwości statystyczne z omawianych generatorów kongruencyjnych [ZA]. 13

18 Do głównych zalet generatorów kongruencyjnych zalicza się ich szybkość wymagane jest tylko kilka operacji do wygenerowania jednej liczby. Implementacja generatorów kongruencyjnych w formie algorytmów w układach mikroprocesorowych i językach programowania jest prosta. Są one natomiast nieefektywne w implementacji sprzętowej. Generatory kongruencyjne stosowane są powszechnie w oprogramowaniu takim jak języki programowania czy pakiety do symulacji czy analizy Monte Carlo. Nieliniowe generatory kongruencyjne stosowane są również w układach kryptograficznych. Kolejną klasą generatorów sygnałów pseudolosowych są układy wykorzystujące chaos deterministyczny [PV], [GJ], [ST]. W pracy zagadnienia związane z tematyką generatorów kongurencyjnych oraz generatorów chaotycznych nie są rozpatrywane. Odrębną klasą generatorów sekwencji pseudolosowych (por. rys. 2.6) są generatory wykorzystujący rejestry przesuwne z liniowym sprzężeniem zwrotnym LFSR (ang. Linear Feeback Shift Register) [GS1], [SB], [CP1]. Schemat generatora LFSR pokazano na rysunku 2.7. Rys Schemat ideowy generatora LFSR w konfiguracji Fibonacciego Układy te zawierają rejestr przesuwny oraz blok sprzężenia zwrotnego. Do bloku sprzężenia zwrotnego wprowadzane są bity z wybranych odczepów rejestru. Na tych bitach wykonywane są pewne operacje logiczne (np. XOR). Sygnał wyjściowy bloku sprzężenia zwrotnego wprowadzany jest na wejście rejestru przesuwnego. Stan logiczny najbardziej znaczącego bitu rejestru stanowi sygnał wyjściowy generatora. Konfiguracja przedstawiona na rysunku 2.7 nazywana jest konfiguracją Fibonacciego. Analizie właściwości oraz syntezie struktur generatorów drgań pseudolosowych wyłącznie w tej konfiguracji poświęcona jest niniejsza praca. Generatory z rejestrami przesuwnymi są także konstruowane w innej strukturze, nazywanej konfiguracją Galois [KA1], rysunek 2.8. Rys Ogólny schemat generatora z LFSR w konfiguracji Galois Generator LFSR w konfiguracji Galois ma te same właściwości co generator FLSR w konfiguracji Fibonacciego [GI]. Sposób przesuwania bitów w konfiguracji Galois jest inny. Niektóre bity rejestru przesuwnego połączone są między sobą bramkami XOR. Na 14

19 rysunku 2.8 sygnał wyjściowy, z najstarszego bitu rejestru przesuwnego może zostać dołączony do bramek XOR poprzez klucze K 1 - K n. W celu przesunięcia zawartości rejestru należy przepisać do sąsiedniej komórki rejestru zawartość komórki o jeden bit wyższej. Jeśli pomiędzy dwoma komórkami znajduje się bramka XOR z aktywnym odczepem wyjściowym (aktywny stan sygnału K n ) to należy przepisać do starszej komórki wartość operacji XOR na bicie wyjściowym oraz bicie młodszej komórki. Generatory LFSR w tej konfiguracji są efektywniejsze w implementacji programowej od generatorów w konfiguracji Fibonacciego i są często stosowane w kryptografii [GI]. Teorię generacji sekwencji z wykorzystaniem rejestrów przesuwnych opracował Ernest Selmer w 1965r [SE]. Opierając się na pracy Selmera matematyk z NSA Simon Golomb kontynuował badania dotyczące tej klasy generatorów. Generatory z rejestrami przesuwnymi są łatwo implementowane sprzętowo przez to od początków elektroniki były podstawą wojskowych systemów kryptograficznych. Szybkość pracy oraz niewielki stopień złożoności obarczony jest słabymi właściwościami kryptograficznymi. Mimo wszystko układy te dalej są stosowane jako bloki składowe algorytmów szyfrujących [SB]. W dalszej części pracy zaprezentowano metody opisu oraz analizę właściwości generatorów z rejestrami przesuwnymi: liniowych (LFSR, ang. Linear Feedback Shift Register), nieliniowych (NLFSR, ang. Nonlinear Feedback Shift Register), z dynamiczną pętlą sprzężenia zwrotnego (DLFSR, ang. Dynamic Linear Feedback Shift Register). Zaproponowano nowe struktury generatorów, przeprowadzono ich badania symulacyjne i statystyczne a także zrealizowano ich implementacje sprzętowe. 15

20 3. Generatory z liniową funkcją sprzężenia zwrotnego - LFSR 3.1. Wstęp Układ generatora LFSR [GS1] ze statyczną liniową pętlą sprzężenia zwrotnego pokazano na rysunku 3.1. Rys Przykładowy generator z rejestrem LFSR Generator ten składa się z liniowego rejestru przesuwnego LSR (ang. Linear Shift Register), z którego odczepów pobierane są sygnały binarne do bloku sprzężenia zwrotnego. Rejestr przesuwny jest układem synchronicznym i do poprawnej pracy wymaga sygnału zegarowego. Na kolejnych schematach prezentowanych w pracy sygnał zegarowy nie będzie zaznaczony ale zakłada się jego występowanie. W rozważanym układzie generatora sygnału pseudolosowego blok sprzężenia zwrotnego oraz jego odczepy nie ulegają zmianie w trakcie pracy generatora układ posiada statyczną pętlę sprzężenia zwrotnego. W najprostszym i najczęściej stosowanym układzie rolę sprzężenia zwrotnego pełni sumator bitów modulo 2 (bramka XOR) [CL]. Sygnał wyjściowy generatora jest określany stanem jednego z bitów rejestru, np. najmniej znaczącego bitu (wyjście szeregowe) lub zawartością binarną całego rejestru (wyjście równoległe). Podstawowym sposobem opisu struktury sprzężenia zwrotnego generatorów LFSR jest opis wielomianowy [SB]. Wielomiany opisują aktywne odczepy rejestru doprowadzone do bloku sprzężenia zwrotnego. Wielomian taki utworzony zostaje poprzez przypisanie zmiennej pomocniczej x potęgi o wykładniku zależnym od numeru bitu rejestru. Wielomiany te, w celu 16

21 zapewnienia optymalnych parametrów sekwencji wyjściowej (m.in. spełnienie postulatów losowości Golomba [GS2]) muszą posiadać następujące cechy: muszą być wielomianami pierwotnymi, muszą być wielomianami unormowanymi oraz modulo 2, stopień wielomianu musi być równy rzędowi rejestru przesuwnego. Wielomiany opisujące funkcje sprzężenia zwrotnego są najczęściej wielomianami pierwotnymi. Wielomiany pierwotne (nazywane także wielomianami nierozkładalnymi lub nieprzywiedlnymi) to wielomiany, których nie da się rozłożyć na iloczyn wielomianów niższych rzędów, ponadto żaden z wielomianów niższych rzędów nie jest wielomianem stopnia zerowego, tzn. stałą. Dodatkowo stopień wielomianu pierwotnego musi być większy od zera. Wielomiany opisujące generatory LFSR są wielomianami modulo 2. Oznacza to, że liczby występujące przy potęgach zmiennej pomocniczej x mają wartości z ciała GF(2). Przykładowy wielomian modulo 2 opisujący generator LFSR z czterema składnikami (odczepami) o numerach N, k 1, k 2, k 3 opisano wzorem: N k 2 3 ( ) 1 k k L x = x + x + x + x + 1. (3.1) Ogólna forma zapisu wielomianu L(x): 2 n L( x) = a + a x + a x a x, a, (3.2) 1 2 n k N przechodzi w formę opisu wielomianu modulo 2 zgodnie z następującą zależnością: 2 L( x) = ( a mod 2) + ( a1 mod 2) x + ( a2 mod 2) x ( a n mod 2) x n. (3.3) Wielomian opisujący generator z rejestrem przesuwnym jest również unormowany, czyli jego największy współczynnik jest równy jedności. Oznacza to, że taki wielomian jest tego samego stopnia co rząd rejestru N. Znalezienie wielomianu pierwotnego modulo 2 nie jest proste [SB]. Najczęściej zadanie to sprowadza się do sprawdzenia czy losowo wygenerowany wielomian jest pierwotny [SB]. Istnieją pakiety oprogramowania służące do rozwiązania tego zadania [SB]. Każdy wielomian modulo 2 opisuje odrębną strukturę generatora, przy czym w praktyce nie korzysta się z wielomianów, które nie są pierwotne gdyż nie generują sekwencji o maksymalnej długości. Dla każdego wielomianu opisującego funkcję sprzężenia zwrotnego generatora zbudowanego na rejestrze przesuwnym uzyskuje się inne ciągi pseudolosowe. 17

22 Liczba wielomianów pierwotnych rzędu N jest zależna od funkcji Eulera: N ( 2 1) n = ϕ, (3.4) N gdzie: n liczba wielomianów stopnia N, φ funkcja Eulera [AM]. Na rysunku 3.2 wykreślono liczbę wielomianów pierwotnych w zależności od stopnia N. Wykres ten powstał w oparciu o tabele podane na stronie internetowej [NW], lecz nie zawiera on wszystkich wielomianów pierwotnych. Dla rzędu N od 25 do 31 wykreślono tylko liczbę wielomianów z 2, 4 i 6 składnikami (odczepami). Dodatkowo, każdy zestaw odczepów określa dwa wielomiany pierwotne [SB]. Przykładowo, odczepy N, k 1, k 2, k 3 określają dwa wielomiany pierwotne (3.1) oraz (3.5). Wielomian (3.5) nazywany jest wielomianem odwrotnym względem wielomianu (3.1). N N k 2 3 ( ) = + 1 N k N k L x x x + x + x + 1 (3.5) 1 1 Liczba wielomianów Rząd rejestru N Rys Liczba wielomianów pierwotnych w funkcji rzędu rejestru [NW]. Sekwencje wyjściowe generatorów sygnałów pseudolosowych zbudowanych na rejestrach przesuwnych są zawsze okresowe. Okres sekwencji wyjściowej zależy od rodzaju funkcji sprzężenia zwrotnego generatora, wielomianu opisującego tę funkcję oraz od rzędu rejestru przesuwnego. 18

23 W przypadku generatora z liniową funkcją sprzężenia zwrotnego (ang. Linear Feedback Shift Register) skończona liczba stanów w jakich może znajdować się rejestr przesuwny N-bitowy jest równa 2 N. Okres sekwencji wyjściowej generatora LFSR nie może przekroczyć wartości 2 N. W generatorze LFSR występuje jeden stan rejestru, który jest zabroniony. Jest on zależy od bramki realizującej funkcję sprzężenia zwrotnego. Zabroniony stan jest określony następująco: dla bramki XOR: ciąg zer na wszystkich pozycjach rejestru przesuwnego, dla bramki NXOR: ciąg jedynek na wszystkich pozycjach rejestru przesuwnego. Zainicjalizowanie rejestru przesuwnego lub wpisanie do rejestru w trakcie pracy generatora LFSR wartości zabronionej spowoduje wygenerowanie sekwencji wyjściowej składającej się z samych zer (dla bramki XOR) lub jedynek (dla bramki NXOR). Długość sekwencji wyjściowej nie zależy od wartości początkowej rejestru (zakładając, że nie jest to wartość zabroniona). Uwzględniając zabroniony stan początkowy rejestru generatora LFSR można określić maksymalny okres generowanej sekwencji wyjściowej T g równy [MR]: N T g = 2 1) Tc = gdzie: N rząd rejestru, T c okres sygnału taktującego rejestr przesuwny, l długość sekwencji generatora LFSR. ( lt, (3.6) c Sygnał wyjściowy generatora LFSR o maksymalnym okresie (3.6) uzyskuje się wtedy [SB], gdy wielomian L(x) opisujący podłączenia odczepów rejestru do bloku sprzężenia zwrotnego: gdzie: 2 L( x) N, k 1, k 2,...k s, s<n numery aktywnych zaczepów, N k1 k s = x + x + x x k + x, (3.7) jest wielomianem pierwotnym modulo 2. Tablice takich wielomianów podano na przykład w pracach [SB], [WR], [NW]. W zastosowaniach często wykorzystuje się trójmiany pierwotne modulo 2 gdyż wtedy blokiem sprzężenia zwrotnego jest pojedyncza dwuwejściowa bramka XOR. Na rysunku 3.3 przedstawiono wykres zależności okresu sekwencji pseudolosowej w zależności od rzędu rejestru oraz od częstotliwości taktowania. Wykres ten obowiązuje dla generatorów LFSR opisanych wielomianami pierwotnymi. 19

24 Rys Okres sekwencji generatora LFSR w zależności od rzędu rejestru Przykład 1 Generator LFSR opisany jest wielomianem: L ( x) = x + x + 1. (3.8) Generator taktowany jest zegarem o częstotliwości f c = 1MHz. Rozpatrywany układ generatora pokazano na rys Rys Przykładowy generator LFSR z rejestrem przesuwnym Okres sygnału pseudolosowego tego generatora wynosi [MR]: T = ( ). (3.9) g T c Przy okresie taktowania T c =1µs okres sekwencji pseudolosowej generatora wyniesie ponad 25 dni. 2

25 3.2. Modele dyskretne generatorów LFSR W teorii dyskretnego przetwarzania sygnałów modele układów dyskretnych tworzy się często z wykorzystaniem aparatu równań różnicowych [SS]. Synteza układów dyskretnych opisanych tymi równaniami polega na: konstrukcji algorytmów numerycznych rozwiązywania równań różnicowych, implementowanych w postaci programów komputerowych, realizowanych z wykorzystaniem komputerów i procesorów sygnałowych, tworzeniu schematów blokowych układów zawierających elementy układów dyskretnych (wzmacniacze, elementy opóźniające, sumatory, mnożarki) realizowanych w postaci układów scalonych dużej skali integracji. Uzasadnienie wprowadzonych w niniejszym rozdziale modeli dyskretnych generatorów LFSR jest następujące: stanowią one nową formę opisu w stosunku do tradycyjnej formy opisu generatorów LFSR wykorzystującej równania rekurencyjne na ciele skończonym GF(2) [GS1] lub algebrę Boole a [AP], umożliwiają one łatwą symulację w pakietach obliczeniowych, zarówno poprzez konstrukcję generatora LFSR z bloków cyfrowego przetwarzania sygnałów lub poprzez wykorzystanie opracowanych równań dyskretnych, umożliwiają łatwą implementację w procesorach sygnałowych DSP lub w układach dedykowanych ASIC. Model dyskretny generatora LFSR stanowią równanie różnicowe rejestru przesuwnego i równanie różnicowe bloku sprzężenia zwrotnego. Z punktu widzenia przetwarzania sygnałów rejestr przesuwny o długości N bitów jest elementem opóźniającym o N próbek (potrzeba N cykli zegarowych aby próbka wyjściowa x[n] bloku funkcji sprzężenia zwrotnego przeszła przez cały rejestr). Opis matematyczny takiej sekwencji, czyli równanie różnicowe rejestru przesuwnego jest następujące: y[ n] = x[ n N]. (3.1) Można wykazać, że model dyskretny dwuwejściowej bramki XOR opisuje równanie [WJ1]: x[ n] = x[ n i] + x[ n j] 2x[ n i] x[ n j], (3.11) gdzie: i, j numery bitów rejestru LFSR służące do realizacji sprzężenia zwrotnego, x[n] wyjście bramki XOR. Ograniczając się w pierwszej kolejności do klasy generatorów opisanych wielomianami pierwotnymi utworzonymi z dwóch odczepów postaci: N k L ( x) = x + x + 1, (3.12) 21

26 oraz wykorzystując równania (3.1) oraz (3.11) otrzymuje się model dyskretnego generatora sygnału pseudolosowego zbudowanego w oparciu o rejestr przesuwny ze statycznym sprzężeniem zwrotnym. Schemat dyskretnego generatora LFSR pokazano na rysunku 3.5. Rys Model dyskretny generatora opisanego wielomianem (3.12) Równania układu z rysunku 3.5 są następujące: x[ n] = x[ n N] + x[ n k] 2x[ n N] x[ n k], (3.13) y[ n] = x[ n N]. (3.14) W następnej kolejności rozpatrzony zostanie model dyskretny generatora LFSR z czterema aktywnymi odczepami opisany wielomianem: N i j k L ( x) = x + x + x + x + 1. (3.15) W bloku sprzężenia zwrotnego tej grupy generatorów znajdują się bramki XOR z czterema wejściami. Przyjęte założenie wymaga uzasadnienia. Dokonując przeglądu wielomianów pierwotnych można zauważyć, że dla długości rejestrów N>4 do N=768 [NW], [WR] wszystkie kolejne rejestry o długościach N=5,6, umożliwiają generację m-sekwencji z wykorzystaniem czterech odczepów. Istnieją także konfiguracje generatorów z rejestrami o długości N>786 [WR], które posiadają konfigurację z czterema odczepami i umożliwiają generację m-sekwencji, ale ich stosowanie nie jest celowe, ze względu na olbrzymie długości generowanych sekwencji. Przykładowo dla długości rejestru N=67 liczba generowanych liczb pseudolosowych wynosi Tak długa sekwencja zapewnia okres powtórzenia (dla częstotliwości taktowania rejestru 1GHz): 22

27 23 lat T T c N g 46 1) 2 ( =. (3.16) W celu uzyskania równań generatora LFSR dla większej niż dwa liczby odczepów, równanie (3.11) należy stosować rekurencyjnie w celu otrzymania funkcji wyjściowej wielowejściowej bramki XOR. Z logicznego punktu widzenia sprowadza się to do szeregowego połączenia bramek XOR. Na rysunku 3.6 pokazano konstrukcję czterowejściowej bramki XOR. Rys Czterowejściowa bramka XOR Algorytm konstrukcji równania różnicowego składa się z kilku etapów. W pierwszej kolejności wykorzystując równania różnicowe bramki dwuwejściowej (3.11) o sygnałach wejściowych x[n-i], x[n-j] tworzy się model tej bramki. W następnym etapie wykorzystując powtórnie równanie (3.11) tworzy się model bramki trójwejściowej, której sygnały wejściowe to x[n-k] oraz sygnał z wyjścia bramki poprzedniej (por. rys (3.6)). Następnie wyprowadza się równanie czterowejściowej bramki XOR. Równanie (3.13) można uogólnić dla p wejściowe bramki XOR. Równania takie można otrzymać stosując kolejne podstawienia funkcji wyjściowej poprzedniej bramki jako elementu wejściowego kolejnej bramki oraz dodatkowego wejścia (rysunek 3.6) Wejście kolejnej bramki XOR dokonuje operacji zgodnie ze wzorem (3.11). Zapis matematyczny opisanego algorytmu dla czterowejściowej bramki XOR (p=4) jest następujący: p=2 ] [ ] [ 2 ] [ ] [ ] [ 2 j n x i n x j n x i n x n y + =, (3.17) p=3 ]), [ 2 1 ])( [ 2 1 ]( [ ] [ ] [ 2 ] [ ] [ ] [ ] [ 2 ] [ ] [ ] [ k n x j n x i n x k n x j n x k n x j n x k n x n y k n x n y n y = + = (3.18) p=4 ]). [ 2 1 ])( [ 2 1 ( ] [ ] [ ] [ 2 ] [ ]) [ 2 ])(1 [ 2 1 ( ]) [ 2 1 ]( [ ] [ ] [ ] [ 2 ] [ ] [ ] [ l n x k n x j n x l n x k n x l n x l n x k n x j n x i n x k n x l n x n y l n x n y n y = + = (3.19) Równania różnicowe opisujące czterowejściową bramkę XOR można przedstawić w postaci schematu blokowego [WJ1], [WJ6].

28 Rys Realizacja czterowejściowej bramki XOR Ogólne równanie p-wejściowej bramki XOR jest następujące: y p[ n] = y p 1[ n] + x[ n p] 2y p 1[ n] x[ n p]. (3.2) Schemat blokowy struktury opisanej równaniem (3.2) pokazano na rysunku 3.8. Rys Realizacja p-wejściowej bramki XOR Równanie (3.2) można uzyskać stosując (p-1) krotnie algorytm iteracyjny opisany na poprzedniej stronie pracy. W dalszej części pracy ograniczono się do analizy właściwości generatorów LFSR z dwoma lub czterema odczepami. Uzasadnienie tego założenia opisano na 22 stronie pracy. 24

29 3.3. Badania symulacyjne W tym rozdziale opisano wyniki badań symulacyjnych generatorów LFSR ze statyczną pętlą sprzężenia zwrotnego. Do badań wykorzystano następujące pakiety obliczeniowosymulacyjne: Pakiet Matlab-Simulink do symulacji generatorów LFSR z wykorzystaniem równań różnicowych oraz odpowiadających im struktur. Pakiet MultiSim służący do symulacji elektronicznej implementacji generałów LFSR. Badania przeprowadzono w następującej kolejności: Pokazano wyjściową, sprzętową konstrukcję generatora LFSR. Dokonano weryfikacji pracy generatora sprzętowego poprzez obserwację przebiegu wyjściowego. Wykorzystując opisany w rozdziale 3.1 algorytm dokonano przejścia na model dyskretny, zbudowany z wykorzystaniem bloków DSP. Dokonano symulacji pracy opracowanego modelu dyskretnego poprzez obserwację przebiegu czasowego. Przebadano dwa typy generatorów LFSR: cztero i ośmiobitowy. Celem badań było sprawdzenie poprawności wyprowadzonych równań modeli dyskretnych generatorów zbudowanych z elementów cyfrowego przetwarzania sygnałów. Czterobitowy generator LFSR Budowę generatora LFSR z wykorzystaniem czterobitowego rejestru przesuwnego pokazano na rysunku 3.9. Układ został zrealizowany na układzie scalonym z rodziny CMOS typu CD415. Układ ten zawiera w swojej strukturze dwa czterobitowe rejestry przesuwne. Tor sprzężenia zwrotnego z 1 oraz 4 bitu wyjściowego układu CD415 został zrealizowany w formie bramki XOR (oznaczonej na schemacie jako EOR2). Sygnał sprzężenia zwrotnego doprowadzony jest do wejścia D1 rejestru przesuwnego. Maksymalna długość sekwencji układu pokazanego na rysunku 3.9, zgodnie ze wzorem (3.6) wynosi 15. Symulację przeprowadzono z wykorzystaniem układów rodziny CMOS zasilanych napięciem pojedynczym 5V. Do przeprowadzenia symulacji czterobitowego generatora LFSR ustalono następujące warunki: a. Stan początkowy rejestru: 1111 BIN. b. Sygnał zegarowy taktujący rejestr przesuwny: częstotliwość 1kHz. 25

30 Rys bitowy generator LFSR Sygnał wyjściowy generatora z rysunku 3.9 pokazano na rysunku 3.1. Widać wyraźnie, że układ po 15ms od rozpoczęcia pracy (po 15 bitach wyjściowych) zaczyna powtarzać sekwencje wyjściową. W zależności od ustalonego stanu początkowego rejestru przesuwnego sekwencja wyjściowa ulega przesunięciu na osi czasu z zachowaniem swojego kształtu. Przesunięcie odbywa się o całkowitą ilość okresów próbkowania. Zmiana odczepów bramki XOR (zmiana wielomianu sprzężenia zwrotnego) powoduje generację innej sekwencji wyjściowej generatora. Rys Przebieg wyjściowy 4-bitowego generatora LFSR Model dyskretny 4-bitowego generatora LFSR pokazano na rysunku Stan początkowy rejestru przesuwnego oraz częstotliwość taktowania są takie same jak dla generatora z rysunku

31 Rys Model dyskretny 4-bitowego generatora LFSR Kolorem żółtym oznaczono realizację dwu wejściowej bramki XOR generatora z rysunku 3.9. Elementy oznaczone kolorem zielonym to kolejne komórki czterobitowego rejestru przesuwnego. Każda z komórek została zasymulowana poprzez opóźnienie jednostkowe (z -1 ). Sygnał generowany przez układ z rysunku 3.11 przedstawiono na rysunku Podobnie jak w przypadku generatora z rysunku 3.9 długość sekwencji wyjściowej generatora z rysunku 3.11 wynosi 15. Rys Sygnał wyjściowy rejestru LFSR zrealizowanego w technice DSP Przebiegi wyjściowe generatora LFSR zbudowanego na układzie scalonym CD415 (rysunek 3.9) oraz generatora LFSR zrealizowanego z bloków cyfrowego przetwarzania sygnałów zestawiono razem i pokazano na rysunku Z porównania obu sekwencji wynika, że są one takie same z dokładnością do wzmocnienia. 27

32 Rys Porównanie sekwencji obu czterobitowych generatorów LFSR Ośmiobitowy generator LFSR Na rysunku 3.14 pokazano generator zbudowany z wykorzystaniem dwóch rejestrów czterobitowych typu CD415. Wielomian sprzężenia zwrotnego generatora określony jest wielomianem pierwotnym: L ( x) = x + x + x + x + 1. (3.21) Stan początkowy rejestru przesuwnego oraz częstotliwość taktowania były następujące: a. Stan początkowy rejestru: BIN. b. Sygnał zegarowy taktujący rejestr przesuwny: częstotliwość 1kHz. 28

33 Rys bitowy generator LFSR Sygnał wyjściowy rozważanego generatora LFSR pokazano na rysunku Długość generowanej sekwencji (wzór (3.6)) wynosi 255. Rys Sygnał wyjściowy 8-bitowego generatora LFSR Model dyskretny rozpatrywanego generatora pokazano na rysunku Rys Realizacja w technice DSP 8-bitowego generatora LFSR 29

34 Tak jak w przypadku układu z rysunku 3.11 kolorem żółtym oznaczono realizację czterowejściowej bramki XOR w technice DSP. Sygnał wyjściowy generatora z rysunku 3.16 pokazano na rysunku Rys Sygnał wyjściowy 8-bitowego rejestru LFSR zrealizowanego w technice DSP Układ z rysunku 3.16 generuje sekwencje o długości 255. Porównanie obu sekwencji przedstawiono na rysunku Ze względu na czytelność rysunek ten nie zawiera pełnej długości sekwencji tylko 5 pierwszych bitów wyjściowych. Rys Porównanie sekwencji obu ośmiobitowych generatorów LFSR 3

35 3.4. Badania eksperymentalne Do badań eksperymentalnych wykorzystano zestaw uruchomieniowy ZL9PLD [BT1], [BT2] z układem FPGA Spartan III firmy Xilinx [XL]. Opis zestawu uruchomieniowego przedstawiono w załączniku C. Do stworzenia w języku opisu sprzętu VHDL badanych generatorów wykorzystano środowisko firmy Xilinx ISE WebPack ver Do zaprogramowania układu FPGA wykorzystano programator w standardzie JTAG. Sygnały wyjściowe obserwowano na oscyloskopie cyfrowym DSA62 firmy Tektronix. W celu dokonania zrzutów oscylogramów oscyloskop został połączony z komputerem PC. Czterobitowy generator LFSR Na rysunku 3.19 przedstawiono schemat czterobitowego generatora LFSR. Generator pokazany na rysunku 3.19 został zaimplementowany w formie schematu a nie kodu VHDL. Podyktowane to zostało prostą konstrukcją generatorów LFSR. Na podstawie pomiarów oscyloskopem można łatwo stwierdzić jaka jest długość generowanej sekwencji oraz czy jej kształt odpowiada kształtowi sekwencji uzyskanej na drodze analitycznej oraz symulacyjnej. Rys Generator LFSR 4-bitowy zrealizowany w strukturze układu FPGA Generator składa się z czterobitowego rejestru przesuwnego z szeregowym wejściem i równoległym wyjściem, bramki XOR pełniącej rolę sprzężenia zwrotnego, bramki OR z jednym zanegowanym wejściem oraz czterech buforów sterujących diodami LED. Struktura układu oraz funkcja sprzężenia zwrotnego są takie same jak w podrozdziale 3.3. Celem badań eksperymentalnych jest potwierdzenie poprawności rozważań dotyczących proponowanego w rozdziale 3 opisu matematycznego. Sygnał zegarowy, taktujący generator, jest podany bezpośrednio na wejście zegarowe rejestru przesuwnego (CLK). Stan początkowy rejestru zostaje ustawiony poprzez przytrzymanie na co najmniej 4 cykle zegarowe przycisku dołączonego do etykiety BTN bramki OR2B1. Przycisk na wspomnianej wcześniej płytce uruchomieniowej [BT1], [BT2] dołącza wejście bramki do masy. Wejście to jest w stanie spoczynku podłączone do napięcia zasilania poprzez rezystor pull-up. Naciśnięcie przycisku na co najmniej 4 cykle zegarowe powoduje pojawienie się stanu wysokiego na wyjściu bramki OR i załadowanie do rejestru przesuwnego stanu początkowego składającego się z czterech bitów 1 : 1111 BIN. Sygnał wyjściowy został pobrany z czwartego odczepu rejestru przesuwnego. Przebieg generowanej sekwencji pseudolosowej pokazano na rysunku

36 Rys Sygnał wyjściowy oraz sygnał zegarowy generatora LFSR Długość generowanej sekwencji jest równa 15. Na rysunku 3.21 zamieszczono porównanie sekwencji uzyskanej podczas symulacji oraz sekwencji uzyskanej z fizycznej realizacji generatora LFSR w strukturze układu FPGA. Obie sekwencje są identyczne co do kształtu przebiegu, co potwierdza poprawność równań dyskretnych generatorów LFSR. Rys Porównanie sekwencji wyjściowych 32

37 Ośmiobitowy generator LFSR Na rysunku 3.22 pokazano budowę ośmiobitowego generatora LFSR wykonanego w strukturze układu FPGA. Generator zaprojektowano w formie schematu z wykorzystaniem układów cyfrowych, rezygnując (z uwagi na przejrzystość i łatwość analizy) z opisu behawioralnego. Generator składa się z dwóch rejestrów przesuwnych czterobitowych połączonych kaskadowo, czterowejściowej bramki XOR realizującej sprzężenie zwrotne, bramki OR z jednym zanegowanym wejściem i 8 buforów wyjściowych sterujących diodami LED. Odczepy z rejestrów przesuwnych doprowadzone do bramki XOR są opisane wielomianem (3.21). Bramka OR wraz z jednym zanegowanym wejściem służy do wpisania stanu początkowego do obu rejestrów przesuwnych. Stan niski na etykiecie BTN (fizycznie realizowany przez przełącznik na płytce uruchomieniowej) powoduje wpisanie do rejestrów przesuwnych bitów 1 w każdym cyklu zegarowym. Sygnał zegarowy został doprowadzony do etykiety CLK. Warunki początkowe generatora DLFSR są następujące: a. Stan początkowy rejestru: BIN. b. Sygnał zegarowy taktujący rejestr przesuwny: częstotliwość 1kHz. Rys Generator LFSR 8-bitowy Sygnał wyjściowy generatora pokazanego na rysunku 3.22 pokazano na rysunku Długość sekwencji wyjściowej generatora pokazanego na rysunku 3.22 jest równa 255. Ze względu na czytelność oscylogramu oraz ograniczenia związane z ustawieniem podstawy czasu oscyloskopu, która może przyjmować jedynie wartości 1, 2, 5 potęgi liczby 1, ograniczono się do pierwszych 2 bitów sekwencji wyjściowej. Oscylogram wykonany przy podstawie czasu 5ms/div pozwala na obserwację jednego okresu przebiegu wyjściowego generatora lecz jest mało czytelny oraz występują zniekształcenia obrazu przebiegu w miejscach jego najczęstszych zmian. 33

38 Rys Sekwencja wyjściowa 8-bitowego generatora LFSR Na rysunku 3.24 zamieszczono porównanie wyników uzyskanych podczas symulacji 8-bitowego generatora LFSR oraz jego fizycznej realizacji w układzie FPGA. Obie sekwencje są takie same co do kształtu. Pozwala to stwierdzić, że zaproponowane modele dyskretne generatorów LFSR są prawidłowe. Rys Porównanie sekwencji wyjściowych 34

39 3.5. Podsumowanie W tym rozdziale omówiono generatory LFSR. Przedstawiono ich budowę oraz metodę opisu wielomianowego. Omówiono cechy wielomianów opisujących funkcję sprzężenia zwrotnego. Wyprowadzono równania dyskretne generatorów LFSR oraz odpowiadające im struktury pracy. Na podstawie uzyskanych równań opracowano metodę uzyskiwania równań dyskretnych dowolnego generatora LFSR. W pakietach Matlab-Simulink oraz Multisim przeprowadzono badania symulacyjne dwóch generatorów LFSR. Następnie z wykorzystaniem układu FPGA przeprowadzono badania eksperymentalne symulowanych generatorów w celu potwierdzenia poprawności uzyskanych wyników analitycznych oraz symulacyjnych. 35

40 4. Generatory z nieliniową funkcją sprzężenia zwrotnego - NLFSR 4.1. Wstęp Kolejną klasę generatorów sygnałów pseudolosowych zbudowanych na rejestrach przesuwnych tworzą generatory z nieliniowym sprzężeniem zwrotnym NLFSR (ang. Non-Linear Feedback Shift Register). Na rysunku 4.1 przedstawiono budowę generatora NLFSR. Generator ten składa się z rejestru przesuwnego i nieliniowej funkcji sprzężenia zwrotnego, która może być zbudowana z bramek logicznych takich jak AND, OR, XOR, NOT [CL], [WJ3], [GS1]. Rys Generator NLFSR Podobnie jak w przypadku generatora LFSR sygnały z aktywnych odczepów rejestru przesuwnego doprowadzone są do bloku sprzężenia zwrotnego. Sygnał wyjściowy bloku sprzężenia zwrotnego, będący pewną funkcją logiczną aktywnych odczepów (bitów rejestru przesuwnego), doprowadzony jest do pierwszej komórki rejestru. Sygnałem wyjściowym generatora jest sygnał z ostatniego bitu rejestru przesuwnego. Maksymalny okres sekwencji generatora NLFSR jest określony wzorem [GS1], [CL]: N T g Tc = = 2 lt. (4.1) c 36

41 W porównaniu do generatora LFSR generator NLFSR nie ma stanów zabronionych, których wpisanie podczas pracy lub podczas inicjalizacji rejestru przesuwnego powoduje generację sekwencji wyjściowej złożonej z ciągu samych zer lub jedynek [GS1]. Z tego powodu maksymalna możliwa do osiągnięcia długość sekwencji wyjściowej generatora NLFSR jest o jeden bit dłuższa niż w przypadku generatora LFSR. Metody opisu sekwencji wyjściowych rejestrów NLFSR to głównie tabele stanów wyjścia funkcji sprzężenia zwrotnego [CL], równania operujące na arytmetyce ciała skończonego GF(2) [GS1], równania rekurencyjne [GS1], [DE1], a także diagramy wektorowe stosowane np. przez Golomba [GS1]. Dodatkowo generatory te można opisać za pomocą równań boolowskich (elementy składowe generatorów NLFSR to elektroniczne elementy logiczne). Zapis ten nie jest powszechnie stosowany. Jego odpowiednikiem są działania na ciele binarnym GF(2). Poza opisanymi metodami, o ile wiadomo, nie wprowadzono innych metod opisu rejestrów NLFSR. Generatory NLFSR mają znacznie więcej konfiguracji funkcji sprzężenia zwrotnego niż generatory LFSR. Do budowy funkcji sprzężenia zwrotnego można wykorzystać wszelkie operacje logiczne takie jak: AND, OR, XOR, NOT oraz ich kombinacje np. NAND, NOR. W przeciwieństwie do generatora LFSR, który generował sekwencje o maksymalnym okresie, gdy funkcja sprzężenia zwrotnego była opisana wielomianem pierwotnym, generator NLFSR generuje sekwencje o maksymalnej długości, nazywane sekwencjami de Bruijn a, tylko dla pewnych zestawów odczepów połączonych do ściśle określonego bloku (kombinacji funkcji logicznych) sprzężenia zwrotnego. Zestawy odczepów wraz z konfiguracją bloku sprzężenia zwrotnego podaje się formie tabel [DE2] lub równań algebry Boole a [CL]. Liczba konfiguracji sprzężenia zwrotnego, które umożliwiają generację sekwencji de Bruijn a jest niewielka i w chwili obecnej, ze względów praktycznych korzysta się z konfiguracji sprzężeń zwrotnych generujących sekwencje o długości 2 N -1 [DE2]. Poniżej przedstawiono wyprowadzenie równań dyskretnych opisujących generator NLFSR. Ze względu na dużą liczbę możliwych konfiguracji nieliniowego sprzężenia zwrotnego skupiono się na jednej z najczęściej stosowanych funkcji sprzężenia zwrotnego będącą sumą iloczynów wybranych odczepów rejestru przesuwnego Modele dyskretne generatorów NLFSR Formuła określona wzorem (4.2), która jest często używana do opisu nieliniowych i bezinercyjnych obwodów elektrycznych, nie może być użyta do opisu funkcji sprzężenia zwrotnego generatora NLFSR (por. rys. 4.1). Rejestr przesuwny, który jest elementem składowym generatora NLFSR, operuje na sygnałach binarnych {;1}. Funkcja sprzężenia zwrotnego także wykorzystuje sygnały binarne. Dla zmiennych x 1 x n które przyjmują tylko wartości binarne oraz dla dowolnych wartości współczynników a ik, nieliniowa funkcja opisana wzorem (4.2) staje się funkcją liniową. Wynika to z właściwości potęg składników wzoru (4.2). Dla binarnych wartości zmiennych x i funkcja ta przyjmuje wartości należące do zbioru liczb rzeczywistych: y = M N i= 1 k = 1 a ik k ( x ), a R, x {;1}. (4.2) i ik i W układzie pokazanym na rysunku 4.1 sygnał bloku sprzężenia zwrotnego oznaczony jako y musi przyjmować wartości binarne {;1}, czyli wartości z ciała GF(2). Ponadto 37

42 współczynniki a ik ze wzoru (4.2) muszą przyjmować wartości binarne a operacje sumy i iloczynu muszą być wewnętrzne w zbiorze GF(2). Jedną z możliwych form opisu nieliniowej pętli sprzężenia zwrotnego generatora NLFSR określa wzór: y = gdzie: L N i= 1 j= 1 y sygnał binarny z wyjścia bloku sprzężenia zwrotnego, N rząd (liczba komórek) rejestru przesuwnego, x j elementy wektora X zdefiniowanego następująco: m ij x j x, y GF(2), (4.3) - sygnał binarny lub 1 odczepu aktywnego rejestru (podłączonego do bloku sprzężenia zwrotnego), x j = - w przeciwnym przypadku, M macierz zero-jedynkowa opisująca blok sprzężenia zwrotnego o liczbie kolumn równej rzędowi rejestru N i dowolnej liczbie wierszy L. Należy zauważyć, że operacje sumowania i mnożenia we wzorze (4.3) rozumie się w sensie działań modulo 2 i oznacza alternatywnie w dalszej części rozdziału symbolami,. Poniższy przykład ilustruje sposób opisu bloku sprzężenia zwrotnego generatora NLFSR wykorzystujący wzór (4.3). Przykład 1 Generator NLFSR zbudowany jest na czterobitowym N=4 rejestrze przesuwnym. Macierz M ma następującą postać: a wektor X określony jest następująco: M = 1 1 (4.4) 1, X x, x, x, x ], x {;1}. (4.5) = [ j Korzystając ze wzoru (4.3) można wyznaczyć postać sygnału wyjściowego funkcji sprzężenia zwrotnego: y = x, (4.6) 1 x3 x4 x1 x2 x4 38

43 gdzie: - operacja sumowania w ciele GF(2), - operacja mnożenia w ciele GF(2). Schemat rozważanego w przykładzie generatora pokazano na rysunku 4.2. Struktura generatora została całkowicie określona poprzez macierz M i przyjęty układ aktywnych odczepów. Rys Schemat generatora NLFSR opisanego macierzą (4.4) Z powyższych rozważań wynika, że funkcja sprzężenia zwrotnego jest sumą iloczynów w ciele skończonym GF(2). Ta funkcja może być rozpatrzona jako suma modulo 2 (funkcja logiczna XOR) iloczynów występujących we wzorze (4.2). Sumowanie modulo 2 może zostać zapisane z wykorzystaniem opisu dyskretnego zgodnie z poniższym równaniem: A B A + B 2AB, (4.7) gdzie symbol sumowania oraz mnożenia występujący po prawej stronie równania (4.7) należy rozumieć jako klasyczne operacje dodawania i mnożenia w zbiorze liczb rzeczywistych. Ponadto: A B AB, (4.8) zatem operacje iloczynu w sensie modulo 2 i iloczynu liczb rzeczywistych są identyczne. Wzory (4.7), (4.8) mogą zostać wykorzystane do transformacji wzoru (4.3) do opisu czasowo-dyskretnego, który następnie może zostać wykorzystany do opisu generatorów NLFSR. W tym celu wzór (4.3) należy rozłożyć na sumę iloczynów. Następnie do wszystkich uzyskanych składników należy zastosować wzory (4.7), (4.8). Poniższy przykład pokazuje opisaną metodę postępowania. 39

44 Przykład 2 Macierz M opisująca funkcję sprzężenia zwrotnego jest następująca: 1 M = 1, (4.9) 1 1 a wektor X jest określony wzorem: X = x, x, ]. (4.1) [ 1 2 x3 Stosując wzór (4.3) (por. przykład 1) model bloku sprzężenia zwrotnego dla sygnałów z ciała GF(2) jest opisany następującą zależnością: y = x x ( x ) 3. (4.11) x Wzór (4.11) składa się z dwóch sum modulo 2 składników x 1, x 2 oraz iloczynu (x 1 x 3 ). Wykorzystując zależności (4.7), (4.8) należy każdy z wymienionych składników dodać iteracyjnie do wyniku poprzedniej sumy (por. rozdział 3.2). Algorytm transformacji jest następujący: Krok 1: sumowanie x1 x2 : x x x[ n 1] + x[ n 2] 2x[ n 1] x[ n 2]. (4.12) 1 2 Krok 2: sumowanie x x ) ( x ) : ( x3 ( x1 x2 ) ( x1 x3) x[ n 1] + x[ n 2] 2x[ n 1] x[ n 2] + x[ n 1] x[ n 3] 2( x[ n 1] + x[ n 2] 2x[ n 1] x[ n 2]) x[ n 1] x[ n 3] = y[ n]. (4.13) Wzór (4.13) opisuje rozpatrywaną w przykładzie strukturę bloku nieliniowego sprzężenia zwrotnego możliwego do zrealizowania w technice DSP. Na rysunku 4.3 pokazano dyskretną strukturę bloku sprzężenia zwrotnego generatora NLFSR odpowiadającą równaniu (4.13). 4

45 Rys Struktura sprzężenia zwrotnego uzyskana z równania (4.13). Zaproponowana metoda uzyskiwania dyskretnych równań modeli generatorów NLFSR może zostać zastosowana do innych typów funkcji sprzężenia zwrotnego niż typ opisany w pracy. Procedura transformacji równań algebry Boole a do równań dyskretnych wykorzystuje następujące cechy transformacji: Funkcja XOR (suma logiczna modulo 2) transformowana jest poprzez wykorzystanie zależności (4.7). Funkcja logiczna AND (iloczyn logiczny) transformowana jest jako klasyczny iloczyn wszystkich wartości binarnych (próbek sygnałów x[n]) doprowadzonych do wejść bramki (4.8). Negacja logiczna NOT powstaje w wyniku odjęcia od wartości 1 aktualnej próbki x[n] Badania symulacyjne W tym podrozdziale przedstawiono wyniki badań symulacyjnych generatorów NLFSR ze statyczną nieliniową pętlą sprzężenia zwrotnego. Do badań wykorzystano takie same pakiety obliczeniowo symulacyjne jak w rozdziale 3.3. Pakiet MultiSim posłużył do symulacji sprzętowej generatora NLFSR a pakiet Matlab-Simulink do symulacji dyskretnych realizacji generatorów NLFSR. Badania przeprowadzono w następującej kolejności: Opracowano sprzętową konstrukcję generatora NLFSR w pakiecie Multisim. Dokonano weryfikacji pracy generatora sprzętowego poprzez obserwację przebiegu wyjściowego. Zaprezentowaną w rozdziale 3.2 metodą dokonano przejścia na model dyskretny zbudowany z wykorzystaniem bloków DSP. Przeprowadzono symulację pracy opracowanego modelu dyskretnego i obserwację sygnału wyjściowego generatora. 41

46 Przebadano dwa typy generatorów NLFSR: cztero i ośmiobitowy. Celem badań było sprawdzenie poprawności wyprowadzonych równań modeli dyskretnych generatorów zbudowanych z elementów cyfrowego przetwarzania sygnałów. Czterobitowy generator NLFSR Rozważany obwód elektroniczny generatora NLFSR pokazano na rysunku 4.4. Symulowany układ generatora zbudowany jest z rejestru przesuwnego wchodzącego w skład układu CD415 zasilanego napięciem 5V. Rys Schemat elektroniczny generatora NLFSR Macierz M opisująca symulowany generator NLFSR ma postać określoną wzorem: M =. (4.14) 1 Wykorzystując wzór (4.3) można wyznaczyć funkcję sprzężenia zwrotnego zrealizowaną z wykorzystaniem bramek logicznych U3, U4, U5. Funkcja sprzężenia zwrotnego opisana jest wzorem: y = x, (4.15) 1 x2 x3 x4 gdzie: x 1, x 2, x 3, x 4 aktywne odczepy rejestru przesuwnego z rysunku 4.4: 1A, 1B, 1C, 1D. Do przeprowadzenia symulacji czterobitowego generatora NLFSR ustalono następujące warunki: a. Stan początkowy rejestru: 1111 BIN. b. Sygnał zegarowy taktujący rejestr przesuwny: częstotliwość 1kHz. Generator sygnałowy XFG1 jest wykorzystany do generowania sygnału zegarowego taktującego układ. Sygnał wyjściowy jest pobierany z ostatniego, czwartego, odczepu rejestru przesuwnego. Sekwencję wyjściową generatora pokazano na rysunku

47 Rys Sygnał wyjściowy symulowanego generatora NLFSR Przekształcając wzór (4.15) podobnie jak to miało miejsce w przykładzie 4.2, uzyskuje się dyskretną postać wzoru (4.15), opisaną równaniem: y[ n] = x[ n 1] x[ n 2] x[ n 3] + x[ n 4] 2x[ n 1] x[ n 2] x[ n 3] x[ n 4]. (4.16) Funkcję sprzężenia zwrotnego zbudowaną z dyskretnych bloków przetwarzania sygnałów i odwzorowująca równanie (4.16), pokazano na rysunku 4.6. Schemat całego generatora NLFSR zbudowanego z wykorzystaniem elementów cyfrowego przetwarzania sygnałów pokazano na rysunku 4.7. Rys Struktura układu sprzężenia zwrotnego Rejestr przesuwny został zbudowany z bloków opóźnień jednostkowych z -1. Domyślnym stanem początkowym rejestru jest wartość 1111 BIN. Częstotliwość próbkowania jest równa 1kHz. Sekwencję wyjściową, uzyskaną z czwartego odczepu rejestru przesuwnego, pokazano na rysunku

48 Rys Dyskretny model generatora NLFSR Rys Sygnał wyjściowy symulowanego generatora NLFSR Rys Porównanie sekwencji obu generatorów NLFSR 44

49 Sekwencja wyjściowa obu generatorów pokazanych na rysunkach 4.4 oraz 4.7 jest taka sama: BIN. Okres tej sekwencji wynosi 5. Obie sekwencje przedstawiono na rysunku 4.9. Ośmiobitowy generator NLFSR Schemat ośmiobitowego generatora NLFSR pokazano na rysunku 4.1. Układ generatora został zrealizowany na dwóch czterobitowych rejestrach przesuwnych wchodzących w skład układu scalonego CD415, wykonanego w technologii CMOS, zasilanego napięciem 5V. Rys Generator NLFSR zbudowany z wykorzystaniem dwóch czterobitowych rejestrów przesuwnych Funkcja sprzężenia zwrotnego jest określona wzorem (4.17) i została pobrana z tablic [DE1]. Długość sekwencji generowana przez generator pokazany na rysunku 4.1 z funkcją sprzężenia zwrotnego postaci (4.15) wynosi 255 [DE1]. Sygnał wyjściowy bloku sprzężenia zwrotnego określa wzór: y = x x x ( x 2 ), (4.17) x przy czym symbolami x j, j={1;2;4;5;8} oznaczono sygnały z wymienionych niżej odczepów rejestru: x 8 -odczep 2D rejestru przesuwnego U1B, x 5 -odczep 2A rejestru przesuwnego U1B, x 4 -odczep 1D rejestru przesuwnego U1A, x 2 -odczep 1B rejestru przesuwnego U1A, x 1 -odczep 1A rejestru przesuwnego U1B. Funkcja (4.17) została zrealizowana za pomocą czterowejściowej bramki XOR, oznaczonej jako U2 oraz dwuwejściowej bramki AND oznaczonej jako U3. Wartość bitowa funkcji sprzężenia zwrotnego została doprowadzona do pierwszego rejestru przesuwnego. Ostatni bit rejestru U1A służy za bit przeniesienia i jest doprowadzony do wejścia danych rejestru U1B. Do przeprowadzenia symulacji ośmiobitowego generatora NLFSR ustalono następujące warunki: 45

50 a. Stan początkowy rejestru: 111 BIN. b. Sygnał zegarowy taktujący rejestr przesuwny: częstotliwość 1kHz. Generator sygnałowy XFG1 jest wykorzystany do generowania sygnału zegarowego taktującego układ. Sygnał wyjściowy jest pobierany z ostatniego, ósmego, odczepu rejestru przesuwnego. Wyjście generatora w czasie pierwszych 3ms (3 cykli zegarowych) pokazano na rysunku Rys Sekwencja wyjściowa 8-bitowego generatora NLFSR Okres sekwencji wyjściowej zgodnie z wybraną strukturą funkcji sprzężenia zwrotnego [DE1] wynosi 255. Sekwencja generowana przez 8-bitowy generator z funkcją sprzężenia zwrotnego określoną wzorem (4.17) nie jest sekwencją De Brujin a. Równania dyskretne oraz struktura rozważanego generatora NLFSR zostanie wyprowadzona poprzez zastąpienie rejestru przesuwnego blokami opóźnień jednostkowych z -1 a funkcja sprzężenia zwrotnego blokami realizującymi operacje mnożenia oraz sumowania. Procedura postępowania jest taka sama jak w przypadku wyprowadzenia równań dyskretnych generatora LFSR omówionego w rozdziale 3.2. Nieliniowa funkcja sprzężenia zwrotnego generatora pokazanego na rysunku 4.1 składa się z jednej czterowejściowej bramki XOR oraz pojedynczej bramki AND z dwoma wejściami. Równanie czterowejściowej bramki XOR zostało wyprowadzone (por. wzór 3.19, rozdział 3.2). Równanie dyskretne bramki AND to iloczyn dwóch próbek doprowadzonych do wejść bramki. Dokonując poniższych podstawień: x[ n l] = x[ n 1] x[ n 1] x[ n k] = x[ n 4], (4.18) x[ n j] = x[ n 5] x[ n i] = x[ n 8] i wykorzystując wzór (3.19) otrzymuje się równanie bloku sprzężenia zwrotnego generatora NLFSR pokazanego na rysunku 4.1. Równanie to określone jest następującym wzorem: 46

51 y D 1[ n] = x[ n 4] + x[ n 8]( 1+ 2x[ n 5])( 1+ 2x[ n 4])(1 2x[ n 1] x[ n 2]) + x[ n 1] x[ n 2] 2x[ n 4] x[ n 1] x[ n 2] + x[ n 5]( 1+ 2x[ n 4])( 1+ 2x[ n 1] x[ n 2]). (4.19) Sygnał wyjściowy bloku sprzężenia zwrotnego, oznaczony jako y D1 [n], doprowadzony jest do wejścia rejestru przesuwnego U1A (por. rysunek 4.1). Schemat struktury funkcji sprzężenia zwrotnego rozważanego generatora zbudowanej z wykorzystaniem bloków cyfrowego przetwarzania sygnałów pokazano na rysunku Rys Budowa funkcji sprzężenia zwrotnego 8-bitowego generatora NLFSR W pakiecie Matlab-Simulink dokonano symulacji dyskretnego 8-bitowego generatora NLFSR, którego struktura sprzężenia zwrotnego została zbudowana zgodnie z rysunkiem 4.12 a rejestr przesuwny 8-bitowy został zamodelowany jako zestaw ośmiu opóźnień jednostkowych z -1. Schemat modelu generatora w pakiecie Matlab-Simulink pokazano na rysunku Rys Generator NLFSR 8-bitowy zbudowany z bloków cyfrowego przetwarzania sygnałów 47

52 Sekwencja wyjściowa generatora z rysunku 4.13 została pokazana na rysunku Ze względu na czytelność pokazano tylko pierwsze 3 bitów wyjściowych (okres próbkowania 1ms). Sekwencja po 255 bitach ulega powtórzeniu. Rys Sekwencja wyjściowa 8-bitowego generatora NLFSR. Sekwencje wyjściowe uzyskane z pakietu Multisim oraz z pakietu Matlab-Simulink są takie same co do kształtu. Ich zestawienie pokazano na rysunku Ograniczono się do pierwszych 1 bitów wyjściowych obu sekwencji. Obie sekwencje są identyczne co do kształtu. Rys Porównanie sekwencji wyjściowych z obu pakietów symulacyjnych 48

53 4.4. Badania eksperymentalne Badania eksperymentalne generatorów NLFSR zostały przeprowadzone w taki sam sposób jak badania eksperymentalne generatorów LFSR. Dokonano implementacji cztero i ośmiobitowego generatora NLFSR. Do badań wykorzystano ten sam sprzęt pomiarowy oraz płytkę uruchomieniową z układem FPGA (por. rozdział 3.4). Czterobitowy generator NLFSR Schemat rozważanego czterobitowego generatora NLFSR pokazano na rysunku Jest to ten sam układ generatora, który został przeanalizowany metodami symulacyjnymi w punkcie 4.3. Tak jak w przypadku implementacji generatora LFSR zrezygnowano z opisu behawioralnego w kodzie VHDL decydując się ze względu na prostotę i przejrzystość na wykorzystanie implementacji w formie schematu. Rys Schemat generatora NLFSR zaimplementowanego w strukturze układu FPGA Układ został zrealizowany z wykorzystaniem czterobitowego rejestru przesuwnego. Funkcja logiczna została utworzona z trójwejściowej bramki AND oraz bramki XOR. Bramka AND dokonuje mnożenia wyjść, 1 oraz 2. Bramka XOR dokonuje operacji sumowania modulo 2 sygnałów z wyjścia bramki AND oraz z ostatniego odczepu rejestru przesuwnego. Konfiguracja sprzężenia zwrotnego jest taka sama jak w przypadku symulacji czterobitowego generatora z punktu 4.3. Diody LED, służące do sygnalizacji pracy rozważanego generatora NLFSR, zostały dołączone do rejestru przesuwnego za pomocą buforów wyjściowych. Sygnał zegarowy został doprowadzony do wejścia CLK. Na rysunku 4.17 pokazano wyjściowy przebieg generatora z rysunku 4.16 oraz sygnał zegarowy. Uzyskane przebiegi są dokładnie takie same jak w układach symulowanych. Sekwencja wyjściowa jest następująca: BIN, okres generowanej sekwencji jest równy 5. Potwierdza to poprawność przeprowadzonych rozważań dotyczących dyskretnej reprezentacji modelu generatora NLFSR. 49

54 Rys Sygnał wyjściowy oraz sygnał zegarowy fizycznej realizacji generatora NLFSR Ośmiobitowy generator NLFSR Schemat ośmiobitowego generatora NLFSR będącego odpowiednikiem generatora rozważanego w punkcie 4.3 pokazano na rysunku Rys Realizacja ośmiobitowego generatora NLFSR w układzie FPGA Układ generatora został zrealizowany na dwóch czterobitowych rejestrach przesuwnych. Bramki XOR4 oraz AND2 ustalają funkcję sprzężenia zwrotnego generatora określoną wzorem (4.17). Diody LED będące sygnalizatorami pracy generatora zostały dołączone do rejestrów przesuwnych poprzez bufory. Sygnał zegarowy o częstotliwości 1kHz, oznaczony etykietą CLK, został doprowadzony z generatora laboratoryjnego. Sygnał wyjściowy zarejestrowany oscyloskopem pokazano na rysunku

55 Rys Sygnał wyjściowy ośmiobitowego generatora NLFSR Ze względu na czytelność przebiegu dokonano akwizycji tylko 1 bitów sygnału wyjściowego generatora. Ograniczając czas obserwacji przebiegów symulacyjnych także do 1 bitów uzyskuje się pełną zgodność sekwencji uzyskanych na drodze symulacyjnej oraz eksperymentalnej. Na rysunku 4.2 zestawiono wynik analizy eksperymentalnej oraz wynik uzyskany z programu MultiSim, który jest tożsamy z wynikami symulacyjnymi uzyskanymi w pakiecie MatLab-Simulink. Rys Zestawienie sygnału uzyskanego badań eksperymentalnych oraz symulacyjnych 51

56 4.5. Podsumowanie W tym rozdziale omówiono generatory z nieliniową funkcją sprzężenia zwrotnego NLFSR. Wyprowadzono opis matematyczny bloku sprzężenia zwrotnego z wykorzystaniem równań różnicowych oraz pokazano metodę macierzowego zapisu funkcji sprzężenia zwrotnego. W formie algorytmu pokazano sposób transformacji równań logicznych funkcji sprzężenia zwrotnego do postaci równań różnicowych oraz pokazano wynikające z tych równań struktury. W celu potwierdzenia poprawności przeprowadzonych rozważań dokonano symulacji dyskretnych modeli generatorów NLFSR oraz porównano ich wyniki z symulacjami wersji elektronicznej generatorów. Przeprowadzono także badania doświadczalne wymienionych wyżej struktur generatorów zaimplementowanych w strukturze układu FPGA. W każdym z wymienionych przypadków uzyskano identyczne rezultaty. 52

57 5. Generatory z dynamiczną liniową pętlą sprzężenia zwrotnego - DLFSR 5.1 Wstęp Rozważane do tej pory generatory sygnałów pseudolosowych wykorzystujące rejestry przesuwne miały statyczną (niezmienną w czasie) pętlę sprzężenia zwrotnego. W tym rozdziale omówiona została następna klasa generatorów sygnałów pseudolosowych a mianowicie generatory z dynamicznym liniowym sprzężeniem zwrotnym DLFSR (ang. Dynamic Linear Feedback Shift Register). Generatory DLFSR składają się z kilku bloków funkcjonalnych i są bardziej rozbudowane niż generatory LFSR oraz NLFSR. Zmienna w czasie struktura pętli sprzężenia zwrotnego pozwala na osiągnięcie znacznie dłuższych sekwencji wyjściowych przy tej samej długości rejestru przesuwnego. Dodatkowo generatory DLFSR, z odpowiednio dobranymi parametrami, generują sekwencje o lepszych parametrach statystycznych niż klasyczne generatory LFSR [SR6], [PG]. Wymienione zalety generatorów DLFSR, wynikające ze sposobu pracy, związane są ze znaczną komplikacją ich struktur. Wymagają one wyznaczania parametrów poszczególnych bloków konstrukcyjnych tak aby uzyskiwane sekwencje wyjściowe były jak najdłuższe oraz spełniały wymogi testów statystycznych. O ile wiadomo do tej pory nie opracowano analitycznych metod wyznaczania (optymalnych w opisanym powyżej sensie) parametrów generatorów DLFSR. Generator DLFSR składa się z następujących elementów składowych: liniowy rejestr przesuwny o długości N bitów, blok modyfikujący w czasie układ sprzężenia zwrotnego, blok sprzężenia zwrotnego zrealizowany najczęściej jako wielowejściowa bramka XOR. Na rysunku 5.1 przedstawiono ogólną strukturę generatora DLFSR. 53

58 Rys Ogólna struktura generatora DLFSR Generator DLFSR, podobnie jak generatory LFSR oraz NLFSR, jest układem synchronicznym i do prawidłowej jego pracy wymagany jest sygnał zegarowy. Wyjściowym sygnałem pseudolosowym jest sygnał z ostatniego bitu rejestru przesuwnego (lub rzadziej stosowany sygnał uzyskiwany bezpośrednio z wyjścia bloku sprzężenia zwrotnego). Oba sygnały są sobie równoważne co do kształtu, lecz są przesunięte w czasie o N cykli zegarowych. Dodatkowy blok funkcjonalny, zmieniający w trakcie pracy generatora układ sprzężenia zwrotnego, pozwala na znaczne wydłużenie [WJ2] oraz poprawienie parametrów statystycznych sekwencji wyjściowej [SR6], [PG]. Blok ten musi korzystać ze zmiennego w czasie sygnału sterującego, którym najczęściej jest sygnał zegarowy. Innym sygnałem doprowadzonym do bloku zmieniającego układ sprzężenia zwrotnego może być zawartość rejestru przesuwnego. W pracy doktorskiej ograniczono się wyłączenie do analizy generatorów DLFSR w których do bloku modyfikacji sprzężenia zwrotnego doprowadzany jest sygnał zegarowy lub też sygnał uzyskiwany przez podzielenie częstotliwości sygnału zegarowego dzielnikiem częstotliwości. Blok sprzężenia zwrotnego konfigurowany jest poprzez następujące parametry: liczba oraz dobór wielomianów opisujących konfigurację sprzężenia zwrotnego, warunek związany z momentem zmiany konfiguracji sprzężenia zwrotnego. Liczba oraz rodzaj wykorzystywanych wielomianów sprzężenia zwrotnego zależą od konstruktora układu. Wymagane jest zastosowanie co najmniej dwóch wielomianów (w przypadku jednego wielomianu układ nie będzie zmieniał w czasie struktury sprzężenia zwrotnego i będzie typowym generatorem LFSR). W celu zapewnienia maksymalnego okresu oraz zadowalających parametrów statystycznych wymagane jest korzystanie z wielomianów pierwotnych. Wielomiany pierwotne wykorzystywane w generatorach DLFSR mogą pochodzić z tablic wielomianów przeznaczonych dla generatorów LFSR [WR]. Warunek określający moment czasowy zmiany konfiguracji sprzężenia zwrotnego, wyznaczony na podstawie sygnału zegarowego, powinien zapewniać uzyskanie możliwie najdłuższej sekwencji z dobrymi parametrami statystycznymi. O ile wiadomo do tej pory nie opracowano metod analitycznych oraz algorytmów pozwalających na wyznaczanie optymalnych parametrów funkcji przełączającej. W celu uzyskania takich parametrów stosuje 54

59 się metody eksperymentalne [SR6], polegające na wyborze przyjętych arbitralnie funkcji lub sygnałów przełączających, zakończone weryfikacją przy pomocy testów statystycznych wygenerowanej przez generator sekwencji pseudolosowej [SR6], [PG]. Opis analityczny i charakterystykę właściwości generatorów DLFSR można uzyskać stosując metody analizy generatorów LFSR, opisane w rozdziale Formalizacja opisu matematycznego generatorów DLFSR Wielomian sprzężenia zwrotnego generatora LFSR, będący w istocie wielomianem pierwotnym modulo 2, ma następującą postać: N N 1 N 2 L( x) = K N x + K N 1 x + K N 2x K1x + 1, (5.1) gdzie: N - długość rejestru, K N, K N-1, K 1 - elementy zbioru {;1} określające odczepy rejestru generatora LFSR dołączone do bloku sprzężenia zwrotnego zgodnie z następującym przypisaniem: K i =1 i-ty odczep jest dołączony do bloku sprzężenia zwrotnego, K i = i-ty odczep nie został dołączony do bloku sprzężenia zwrotnego. Przykładowo generator z rysunku 5.2 opisany jest następującym wielomianem pierwotnym: 5 3 L ( x) = x + x + 1. (5.2) Rys Przykładowy generator LFSR Wprowadzając dodatkowy blok funkcjonalny do schematu ogólnego generatora LFSR, otrzymuje się nową strukturę generatora sygnału pseudolosowego. Zadaniem dodatkowego bloku jest zmiana w czasie struktury bloku sprzężenia zwrotnego, czyli zmiana wielomianu opisującego aktywne odczepy rejestru. Taki generator nazywa się generatorem DLFSR (ang. Dynamic Linear Feedback Shift Register). Jest to generator zbudowany na rejestrze przesuwnym z dynamicznie zmienianym wielomianem sprzężenia zwrotnego. Generatory LFSR opisuje się wielomianami określającymi aktywne odczepy rejestru przesuwnego doprowadzone do bloku sprzężenia zwrotnego. Jeśli opisujący wielomian będzie wielomianem pierwotnym modulo 2 to generowana sekwencja wyjściowa będzie najdłuższa [GS1]. Generatory DLFSR wymagają opisu składającego się ze zbioru wielomianów (niekoniecznie pierwotnych) [PG], [SR6]. Aktualny stan pracy generatora 55

60 DLFSR zależy od ustalonego w danym momencie wielomianu sprzężenia zwrotnego. Wybór wielomianu sprzężenia zwrotnego może odbywać się w funkcji czasu (np. co p-ty cykl zegara taktującego wybierany jest inny wielomian sprzężenia zwrotnego [SR6], [SR1]) lub w funkcji wartości zawartej w danym momencie w rejestrze (np. gdy w rejestrze wystąpi liczba pierwsza). Także dodatkowy generator pseudolosowy może decydować o momencie zmiany wielomianu sprzężenia zwrotnego [PG]. Wszystkie wymienione metody zmiany wielomianu mogą również występować współbieżnie. W celu utworzenia opisu matematycznego generatora DLFSR należy skorzystać ze wzoru (5.1), który może zostać przedstawiony w formie wektora: który łącznie z funkcją: K=[K N, K N-1, K N-2 K 1 ], (5.3) l L ( x) = K l x + 1, (5.4) tworzy opis wielomianu sprzężenia zwrotnego opisanego wzorem (5.1). Przykład 1 Dany jest wektor: l= N K=[1,1,1,,,,,1]. (5.5) Zgodnie ze wzorem (5.4) opisuje on wielomian pierwotny następującej postaci: L ( x) = x + x + x + x + 1. (5.6) Konstrukcja generatora DLFSR wymaga zbioru wektorów (5.3), które będą opisywały blok sprzężenia zwrotnego generatora w każdym cyklu pracy. W efekcie można zastosować opis macierzowy współczynników wielomianu sprzężenia zwrotnego, pozwalających na opisanie w każdym cyklu pracy generatora DLFSR zestawu aktywnych odczepów rejestru przesuwnego dołączonych do bloku sprzężenia zwrotnego: k1, N k1, N 1... k1,1 = = k 2, N k 2, N 1... k2,1 K [ k i, j ], (5.7) : : : : k I, N k I,1 gdzie: N długość rejestru przesuwnego, I liczba wielomianów sprzężenia zwrotnego, k i,j elementy macierzy K opisujące dynamiczną strukturę aktywnych odczepów rejestru j=n, N-1,, 1, i=1, 2,, I, k i,j {;1}, 56

61 i indeks numeru wielomianu opisującego w danym przedziale czasu strukturę sprzężenia zwrotnego. Przykład 2 Dana jest macierz (5.8) współczynników wielomianów sprzężenia zwrotnego opisująca generator DLFSR. Należy odtworzyć opisujące generator DLFSR wielomiany. Macierz (5.8) opisuje następujące wielomiany : = K (5.8) x + x + x + x x + x + x + x x + x + x + x x + x + x + x + 1. (5.9) W dalszej części pracy zakłada się zmianę postaci wielomianu tylko i wyłącznie w funkcji czasu (cyklu zegarowego). Oznacza to, że wielomian opisany wzorem (5.4), który był zależny tylko od wartości zmiennej x, musi być zmodyfikowany tak, by uwzględniona była jego zależność od czasu a dokładniej od numeru cyklu sygnału zegarowego. Liczbę określającą numer cyklu zegarowego można traktować jako licznik kolejnych taktów sygnału zegarowego. Funkcja f(p) której argumentem jest numer cyklu sygnału zegarowego będzie zmieniała indeks i (por. macierz (5.7)), czyli wybierała wielomian sprzężenia zwrotnego. Zmodyfikowany wzór (5.4) określony jest następująco: j L ( x, j) = k i, j x + 1. (5.1) j= N Zmienna i jest dyskretną wartością funkcji sygnału zegarowego, zwanej funkcją indeksującą: gdzie: p numer cyklu sygnału taktującego, f(p) funkcja indeksująca. i=f(p), (5.11) Funkcja f(p) może być również opisana wektorem współczynników określających zmiany aktywnych odczepów bloku funkcji sprzężenia zwrotnego. Poniżej rozpatrzono dwa szczególne przypadki doboru funkcji indeksującej (5.11). 57

62 Funkcja indeksująca jako funkcja sygnału zegarowego f(p) Wartości wyrażenia (5.11) nie mogą indeksować wielomianów, których w macierzy (5.7) nie ma. Oznacza to, że liczba i musi być ograniczona do wartości: gdzie: I ilość wierszy w macierzy (5.7). i=f(p) I, (5.12) Dodatkowo wartości funkcji f(p) muszą należeć do liczb całkowitych dodatnich. Jedną z funkcji spełniających wymienione warunki jest funkcja wielomianowa modulo I +1. Bez dodania liczby 1 niektóre wartości funkcji zwracałyby wartość zero, a wielomianu opisanego takim indeksem i w macierzy (5.7) nie ma. Funkcja wielomianowa modulo I +1 ma postać: gdzie: a, b, c N. f ( p) = [ a + bp + cp ] mod I +1, (5.13) Przykładem funkcji która może indeksować macierz (5.8) z przykładu 2 jest funkcja: 3 2 f ( p) = ( p + 2 p + 1) mod (5.14) Funkcja przełączająca musi spełniać następujące warunki: a) f(p)>1, (5.15a) b) f(p) N {}, (5.15b) c) f(p) I. (5.15c) Przykład 3 Niech p oznacza numer cyklu sygnału zegarowego, a funkcja indeksująca f(p) określona jest wzorem: 3 f ( p) = ( p + 1) mod (5.16) Macierz współczynników wielomianów sprzężenia zwrotnego jest następująca: K = (5.17) Należy wyznaczyć sekwencję przełączeń wielomianów. 58

63 Tabela 5.1 pokazuje wartości funkcji (5.16) w zależności od kolejnych numerów cykli zegarowych. Tab Wartości funkcji (5.16) p i=f(p) Z wartości (3,1,2) które przyjmuje funkcja (5.16) wynikają trzy wartości indeksu i dla następujących wielomianów: i = 1 L1 ( x) = x + x + x + x i = 2 L2 ( x) = x + x + x + x i = 3 L3( x) = x + x + x + x + 1. (5.18) Zatem sekwencja przełączeń wielomianów (5.18) jest następująca: Tab Sekwencja przełączeń wielomianów p L(x,i) L 3 (x) L 1 (x) L 2 (x) L 3 (x) L 1 (x) L 2 (x) Z tabeli 5.2 wynika, że każdy kolejny cykl zegarowy zmienia wielomian sprzężenia zwrotnego. Aby wyeliminować tę cechę wynikającą bezpośrednio z funkcji przełączającej, należy w strukturze generatora wprowadzić dodatkowo dzielnik częstotliwości sygnału zegarowego pokazany na rysunku 5.3. Taki dzielnik może być skonstruowany jako licznik binarny lub licznik dziesiętny (lub ich kaskadowe połączenie). W przypadku implementacji generatora DLFSR w formie programowej, dzielnik można wykonać poprzez instrukcję modulo z inkrementacją i poprzez operację dzielenia całkowitego (oznaczaną jako div w środowisku Borland Delphi). Dodanie dzielnika o stopniu podziału D pozwala na pracę generatora przez D cykli zegarowych z jednym aktualnie zaindeksowanym wielomianem. Do bloku przełączającego pokazanego na rysunku 5.3 doprowadzono sygnał zegarowy o D krotnie niższej częstotliwości. Numer cyklu zegara jest wyznaczany według wzoru: gdzie: div operacja dzielenia całkowitoliczbowego. p =((p div D) mod D)+1, (5.19) Wartość p musi być większa od zera, dlatego we wzorze (5.19) do wyniku dodano liczbę 1. Przykładowo, dla D=3 sekwencja przełączeń wielomianów z przykładu 3 jest następująca: Tab 5.3. Sekwencja przełączeń wielomianów p p L(x,i) L 3 L 3 L 1 L 1 L 1 L 2 L 2 L 2 L 3 59

64 Rys Zmodyfikowana struktura generatora DLFSR Do chwili obecnej, o ile wiadomo, nie opracowano metod pozwalających na wyznaczenie takiej wartości liczby D oraz funkcji przełączającej, które pozwalałyby na generację sekwencji o maksymalnych długościach i dobrych parametrach statystycznych. Jedną z przesłanek doboru liczby D oraz funkcji przełączającej powinna być możliwie długa sekwencja wyjściowa oraz rezultaty testów statystycznych. Maksymalna długość sekwencji wyjściowej generatora DLFSR jest zależna od ilości wielomianów pierwotnych i funkcji przełączającej i jest określona wzorem: l ) N I = ( 2 1. (5.2) Maksymalna długość sekwencji pseudolosowej wygenerowanej przez pracę z jednym wielomianem sprzężenia zwrotnego [SB] określona jest wzorem: l = 2 N 1. (5.21) Wzór (5.21) jest prawdziwy tylko dla generatorów LFSR oraz dla każdej wydzielonej momentem czasowym struktury pracy generatora DLFSR (jeśli tylko D>l) z pętlą sprzężenia zwrotnego opisaną wielomianem pierwotnym. Jeżeli w macierzy (5.7) nie występują tylko wielomiany pierwotne, to wzór (5.2) i (5.21) nie jest prawdziwy. Dodatkowo, jeśli D 2N to istnieje możliwość zastosowania algorytmu Berlekampa Massey a [MJ1] do odtworzenia struktury generatora wraz z opisującym go wielomianem pierwotnym. Jeśli znany jest moment zmiany wielomianu rejestru (zmiana indeksu wielomianu) to stosując algorytm Berlekampa Massey a dla każdej sekwencji z osobna można odtworzyć macierz (5.7), czyli zestaw wszystkich wielomianów opisujących sprzężenie zwrotne generatora DLFSR. Wartości funkcji przełączającej f(p) jako wektor współczynników Zamiast korzystać z funkcji indeksujących np. postaci (5.13) można bezpośrednio zdefiniować ciąg wartości funkcji przełączającej, określający sekwencję zmian wielomianów pierwotnych w postaci wektora. Wektor taki ma następującą postać: i = i, i..., i ], (5.22) [ 1 2 r 6

65 gdzie: r liczba indeksów, i indeks wielomianu sprzężenia zwrotnego; i <, N + 1 I > i. Wektor (5.22) tworzy ciąg liczb generowanych w różny sposób. Przykładowo liczby te mogą być: stanami rejestrów generatorów niekoniecznie zbudowanych na rejestrach przesuwnych, elementami tablic liczb losowych, kwantowanymi w poziomie próbkami różnych sygnałów, np. chaotycznych. Elementy wektora (5.22) podlegają ograniczeniom określonym wzorami (5.15). Przykład 4 Dany jest wektor i=[2,3,1,3,1,2,2]. Opisuje on następujący cykl pracy generatora DLFSR: Tab. 5.4 p L(x,i) L 2 (x) L 3 (x) L 1 (x) L 3 (x) L 1 (x) L 2 (x) L 2 (x) Podobnie jak to miało miejsce w przypadku funkcji przełączających dany wielomian wybierany jest tylko na jeden cykl zegarowy p. Dodatkowy dzielnik częstotliwości taktowania pozwala na D krotnie dłuższą pracę z danym wielomianem (por. rys 5.3). 5.3 Równania stanu rejestru oraz sekwencji wyjściowych generatorów DLFSR W poprzednim podrozdziale zaproponowano metodę opisu generatorów DLFSR. Wykorzystując tę metodę można wyprowadzić równania stanu rejestrów określające sekwencje wyjściowe generatorów DLFSR. W pierwszej kolejności zależności te uzyskać można dla generatorów LFSR. Definiując macierz [GS1]: c c C = : : : :, (5.23) cn c... N gdzie: c 1, c 2,...,c N zerojedynkowe współczynniki wielomianu opisującego blok sprzężenia zwrotnego, 61

66 oraz ciąg wektorów B p, p=1,2,,: B = b, b... b ], (5.24) p [ 1 2 N zawierających wartości bitów rejestru w cyklu zegarowym p uzyskać można równanie stanu rejestru. Równanie to określa wzór: B p = B 1 C, (5.25) p gdzie: B p, B p-1 następny i aktualny stan rejestru, p numer cyklu zegarowego. Operację mnożenia we wzorze (5.25) należy rozumieć w sensie macierzowym. Operację sumowania w tym wzorze należy rozumieć w sensie sumy modulo 2. Powyższe zależności są prawdziwe dla generatorów LFSR ze statyczną pętlą sprzężenia zwrotnego. Dla generatorów DLFSR z dynamiczną pętlą sprzężenia zwrotnego zależność (5.25) należy zmodyfikować. Wprowadza się ciąg macierzy C i, gdzie i jest wartością funkcji indeksującej (por. rozdział 5.2), określonych następująco: ki, ki, C = : : : : i. (5.26) ki, N ki, N... Pierwsza kolumna tej macierzy jest utożsamiana z i-tym wierszem macierzy K (por. wzór (5.7)) zapisanym w odwrotnej kolejności. Struktura pozostałych kolumn tej macierzy jest niezmienna tak jak to ilustruje wzór (5.26). Należy zauważyć, że w zależności od wartości argumentu p funkcji indeksującej macierze te mogą mieć identyczną postać. Przykładowo dla i=1,2,2,2,3,4 powstaje ciąg macierzy C 1, C 2, C 2, C 2, C 3, C 4. Równanie stanu rejestru generatora DLFSR określa zatem (por. wzór (5.25)) wzór: B p = B 1 C. (5.27) p i Ilustracją rozważań jest poniższy przykład. Przykład 5 Stan początkowy rejestru przesuwnego określa wektor B =[111]. Macierz K ma następującą postać: 62

67 63 = K, (5.28) czyli opisuje następujące wielomiany: 1 ) ( = x x x L, (5.29a) 1 ) ( = x x x L, (5.29b) 1 ) ( = x x x L. (5.29c) Dany jest współczynnik indeksujący i, który zmienia się w każdym cyklu zegarowym w następujący sposób: 1,2,3,1,2,3,1 Należy wyznaczyć trzy kolejne stany rejestru. Korzystając z równania (5.27) można zapisać równanie stanu rejestru dla pierwszego cyklu zegarowego p=1 i pierwszego współczynnika indeksującego i=1: 1 1 C B B =, (5.3) 1 [11] ] [ B = =. (5.31) Stan rejestru dla kolejnego cyklu zegarowego (p=2) i współczynnika indeksującego (i=2): C B B =, (5.32) 2 [11] ] [ B = =. (5.33) Dla p=3, i=3 równania rejestru wyglądają następująco: C B B =, (5.34) 3 [111] ] [ B = =. (5.35)

68 Wymienione wyżej równania opisują zmiany stanu generatora DLFSR, czyli także binarny ciąg sekwencji wyjściowej, który może być sygnałem zaczerpniętym z najstarszego lub najmłodszego bitu rejestru przesuwnego. Sekwencja wyjściowa może zostać opisana także zmodyfikowanymi równaniami podanymi przez Golomba [GS1]. 5.4 Modele dyskretne generatorów DLFSR Modele dyskretne generatorów DLFSR można wyprowadzić podobnie jak modele dyskretne generatorów LFSR por. rozdział 3.2. Model rejestru przesuwnego jest dla wszystkich typów rozważanych w pracy generatorów szeregowym połączeniem bloków opóźnień jednostkowych z -1, por. rysunek 3.5. Model dyskretny rejestru przesuwnego określony jest równaniem (3.1). Blok sprzężenia zwrotnego generatora DLFSR opisany jest zestawem co najmniej dwóch wielomianów. Każdy wielomian generatora DLFSR opisuje inną strukturę pracy generatora w danym momencie czasowym. Oznacza to, że model dyskretny funkcji sprzężenia zwrotnego będzie składał się ze zbioru równań różnicowych. Każde równanie różnicowe będzie określało model dyskretny konkretnej struktury pracy generatora DLFSR. Metoda uzyskiwania równań dyskretnych, ze względu na ten sam opis wielomianowy funkcji sprzężenia zwrotnego, jest taka sama jak w przypadku generatora LFSR. Metodę uzyskiwania równań różnicowych, pokazaną w rozdziale 3.2, należy zastosować do każdego wielomianu generatora DLFSR. Funkcja przełączająca, określająca moment czasowy zmiany wielomianu sprzężenia zwrotnego, nie wpływa na uzyskiwane równania dyskretne. Przykład 6 Dany jest 7-bitowy generator DLFSR opisany dwoma wielomianami: 7 6 L ( x) = x + x 1, (5.36) L ( x) = x + x 1. (5.37) 2 + Należy wyznaczyć równania dyskretne dla każdej struktury pracy. Na rysunku 5.4 przedstawiono obie struktury pracy generatora DLFSR. Struktura 1 odpowiada wielomianowi (5.36), natomiast struktura 2 odpowiada wielomianowi (5.37). Rys Struktury pracy generatora DLFSR 64

69 Korzystając z przedstawionych w rozdziale 3 równań dyskretnych bramek XOR (por. równanie 3.11) uzyskuje się następujące równania sygnałów wyjściowych bramek XOR: x 1[ n] = x[ n 6] + x[ n 7] 2x[ n 6] x[ n 7], (5.38) x [ n] = x[ n 4] + x[ n 7] 2x[ n 4] x[ n 7], (5.39) 2 gdzie: x 1 [n] wyjście bramki XOR pierwszej struktury generatora z rysunku 5.4, x 2 [n] wyjście bramki XOR drugiej struktury generatora z rysunku 5.4. W trakcie pracy generatora DLFSR zmianie ulega wielomian sprzężenia zwrotnego, a to oznacza zmianę struktury generatora. Do pierwszego bitu rejestru przesuwnego, w zależności od danego momentu czasowego, doprowadzony jest sygnał x 1 [n] lub x 2 [n]. Zawartość rejestru przesuwnego podczas zmiany struktury generatora DLFSR nie ulega zmianie, tzn. rejestr przesuwny zachowuje swoją zawartość z poprzedniego cyklu zegarowego. Układ generatora DLFSR utworzony z bloków cyfrowego przetwarzania sygnałów, realizujący równania (5.38) oraz (5.39) pokazano na rysunku 5.5. Rys Dyskretny model generatora DLFSR 5.5 Badania symulacyjne i analityczne Badania symulacyjne przeprowadzono w środowisku Multisim a obliczenia analitycznie wykonano z wykorzystaniem metody zaprezentowanej w podrozdziale 5.3. Celem badań było stwierdzenie poprawności wyprowadzonych równań generatorów DLFSR. Badania przeprowadzono w następującej kolejności: 65

70 W programie Multisim zbudowano z wykorzystaniem elementów elektroniki cyfrowej generator DLFSR oraz dokonano jego symulacji. Metodą przedstawioną w podrozdziale 5.3 dokonano analizy tego samego układu generatora jaki był symulowany w programie Multisim. Porównano obie sekwencje uzyskane na drodze symulacyjnej oraz analitycznej. W obu przypadkach rozważany będzie czterobitowy generator DLFSR wykorzystujący następujące wielomiany opisujące struktury sprzężenia zwrotnego: 4 3 L ( x) = x + x 1, (5.4) L ( x) = x + x 1. (5.41) 2 + Funkcja przełączająca, korzystająca z sygnału zegarowego, przełącza generator do pracy z wielomianem L 2 (x) (5.41) kiedy spełniona jest wartość wyrażenia: gdzie: p numer cyklu zegarowego. ( p mod 4) =, (5.42) Dla każdego innego przypadku generator pracuje z funkcją sprzężenia zwrotnego określoną wzorem (5.4). W tabeli 5.5 zebrano poszczególne cykle pracy wraz z odpowiadającymi im wielomianami sprzężenia zwrotnego. Tab Cykle pracy oraz odpowiadające im wielomiany Cykl zegara, p Wielomian L 1 (x) L 1 (x) L 1 (x) L 2 (x) L 1 (x) L 1 (x) L 1 (x) L 2 (x) L 1 (x) L 1 (x) L 1 (x) L 2 (x) L 1 (x) Zarówno w analizie symulacyjnej jak i analitycznej warunek początkowy rejestru przesuwnego wynosi 1111 BIN. Ograniczono się również wyłącznie do analizy generatora czterobitowego ze względu na łatwość wyprowadzenia sekwencji wyjściowej generatora oraz stanu rejestru przesuwnego metodami analitycznymi. Możliwa jest analiza złożonych generatorów DLFSR lecz wymaga ona napisania stosownego oprogramowania korzystającego z opisu macierzowego zaprezentowanego w podrozdziale 5.3 lub skorzystanie z narzędzi matematycznych umożliwiających sekwencyjne operacje na macierzach. Tworzenie takiego oprogramowania nie było celem pracy. Badania symulacyjne symulacja elektronicznej wersji generatora Na rysunku 5.6 przedstawiono opracowany schemat elektroniczny symulowanego w pakiecie Multisim czterobitowego generatora DLFSR. 66

71 Rys Czterobitowy generator DLFSR Generator pokazany na rysunku 5.6 składa się z pięciu podstawowych elementów funkcjonalnych: czterobitowego rejestru przesuwnego U1A, bramek realizujących sprzężenie zwrotne: U2, U3, licznika Johnsona U4, cyfrowego multipleksera zbudowanego z bramek U5, U6, U1, U13, elementów inicjalizujących generator warunkami początkowymi: C1, R1, U11, U14, U15. Do wyjścia rejestru przesuwnego dołączone są dwie dwuwejściowe bramki XOR (U2, U3). Realizują one funkcję sprzężenia zwrotnego opisaną wielomianami odpowiednio (5.4) oraz (5.41). Sygnały sprzężenia zwrotnego uzyskiwane z wyjść bramek U2 oraz U3 trafiają do logicznego multipleksera z dwoma wejściami i jednym wyjściem. Wyjściem multipleksera jest wyjście bramki U6. Wybór aktywnego wejścia multipleksera realizowany jest poprzez stan logiczny na wejściu inwertera U1. Stan logiczny niski powoduje wybranie sygnału z wyjścia bramki U2 i przeniesienie go na wyjście bramki U6. Stan logiczny wysoki na wejściu inwertera powoduje przeniesienie na wyjście multipleksera sygnału z bramki U3. Elementy C1 oraz R1 wytwarzają dodatni impuls napięciowy służący do wyzerowania stanu licznika U4 oraz do załadowania stanu początkowego rejestru przesuwnego. Licznik U4 zerowany jest co czwarty cykl zegarowy. Generator XFG1 jest źródłem sygnału zegarowego o częstotliwości 1kHz. Sygnał wyjściowy generatora pokazanego na rysunku 5.6 pokazano na rysunku

72 Rys Sygnał wyjściowy czterobitowego generatora DLFSR Sygnał pokazany na rysunku 5.7 jest okresowy a jego okres wynosi 24ms (sekwencja ma długość 24 bitów). W przypadku czterobitowego generatora LFSR maksymalna długość sekwencji jest ograniczona do 15. W przypadku rozważanego generatora uzyskuje się znaczne wydłużenie sekwencji wyjściowej. Zastosowanie innego zestawu wielomianów niż (5.4), (5.41) oraz dobranie innej funkcji przełączającej umożliwia znaczne wydłużenie sekwencji wyjściowej [WJ2], [PG]. Badania symulacyjne generator DLFSR zbudowany z bloków cyfrowego przetwarzania sygnałów Generatory DLFSR zmieniają w czasie pracy układ odczepów doprowadzony do bloku sprzężenia zwrotnego. Generator przez ustalony czas pracuje z jednym z wielu układów odczepów opisanych wielomianem. Z powodu zmiennej w czasie struktury generator DLFSR można rozpatrywać jako kilka bloków sprzężenia zwrotnego z których jeden jest dołączony do wejścia rejestru przesuwnego. Stan rejestru przesuwnego podczas przełączenia wielomianu nie ulega zmianie. Poniższy przykład ilustruje opisywaną zależność. Przykład 7 Dany jest 7-bitowy generator DLFSR opisany dwoma wielomianami pierwotnymi: 7 6 L ( x) = x + x 1, (5.43) L ( x) = x + x 1. (5.44) 2 + Na rysunku 5.8 pokazano budowę rozważanego generatora, w którym blok funkcji sprzężenia zwrotnego został przedstawiony w formie dwóch bramek XOR zawierających funkcje sprzężenia zwrotnego określone wzorami (5.43) oraz (5.44). Układ zmieniający zestaw odczepów został przedstawiony w formie przełącznika S. 68

73 Rys Sygnał wyjściowy czterobitowego generatora DLFSR W zależności od funkcji przełączającej przełącznik S doprowadza do pierwszej komórki rejestru przesuwnego sygnał jednej z pętli sprzężenia zwrotnego. Jeżeli przełącznik S jest w pozycji A to generator DLFSR pracuje z wielomianem określonym wzorem (5.44). W pozycji B przełącznika S generator pracuje z wielomianem (5.43). Opisana w przykładzie metoda konstrukcji struktury generatora DLFSR zostanie wykorzystana do symulacji generatora, który został zbudowany z bloków cyfrowego przetwarzania sygnałów. Bramki XOR mogą zostać zamodelowane poprzez struktury opisane w rozdziale 3.2. Układ przełączający obie bramki na wejście rejestru zostanie zasymulowany w formie przełącznika sterowanego sygnałem logicznym. Rozważany układ generatora pokazano na rysunku 5.9. Jest to 4-bitowy generator DLFSR opisany dwoma wielomianami (5.4) oraz (5.41). Funkcja przełączająca jest określona wzorem (5.42) i przełącza blok sprzężenia zwrotnego w takich samych momentach czasowych jak w przypadku generatora z rysunku 5.6. Elementy C1 C4 tworzą prosty układ licznika modulo 4. W danym cyklu zegarowym tylko na jednym z wyjść komórek C1 C4 występuje bit 1. Bit ten przesuwany jest w każdym cyklu zegarowym o jedną pozycję i w czasie pracy obiega komórki licznika C1 C4. Bloki C1 C4 wraz z sumatorem oraz przełącznikiem SW realizują funkcję przełączającą. Blok ze stałą 1 jest konieczny do poprawnego dekodowania adresów wejść przełącznika SW (wejście 1, wejście 2). Generator pracuje z wielomianem (5.4) jeżeli na wyjściu C4 jest bit. W przeciwnym wypadku generator pracuje z wielomianem (5.41). 69

74 Rys Generator DLFSR zbudowany z bloków cyfrowego przetwarzania sygnałów Sygnał wyjściowy generatora z rysunku 5.9 pokazano na rysunku 5.1. Rys Sygnał wyjściowy generatora DLFSR Sekwencja wyjściowa generatora z rysunku 5.9 powtarza się co 24 cykle zegarowe. Sekwencja 5.1 co do kształtu jest taka sama jak sekwencja uzyskana z elektronicznej symulacji generatora DLFSR por. rysunek 5.7. Świadczy to o poprawności modelu dyskretnego generatora DLFSR oraz układu elektronicznego generatora. 7

75 Metoda analityczna Równania stanu rejestru przesuwnego oraz sekwencja wyjściowa generatora pokazanego na rysunku 5.9 i opisanego wielomianami (5.4), (5.41) oraz funkcją przełączająca (5.42) może zostać wyprowadzona poprzez zastosowanie metody opisanej w podrozdziale 5.3. Stan początkowy rejestru równy 1111 BIN może zostać zapisany, zgodnie z wektorem (5.24) w następującej formie: B = [1111]. (5.45) Oba wielomiany opisujące strukturę pętli sprzężenia zwrotnego mogą zostać zapisane zgodnie z (5.7) w następującej postaci: 1 1 K =. (5.46) 1 1 Kolejne stany rejestru przesuwnego można wyznaczyć za pomocą macierzy (5.26) oraz zależności (5.27) wykorzystując stan początkowy rejestru (5.45) oraz zmienną w czasie pętlę sprzężenia zwrotnego określoną wzorem (5.42). Stany rejestru przesuwnego generatora DLFSR dla kolejnych cykli zegarowych są dane poniższymi zależnościami. Pierwszy cykl zegarowy: p=1, stan rejestru jest określony zależnością (5.47), wielomian sprzężenia zwrotnego jest opisany pierwszym wierszem macierzy (5.46). Zawartość rejestru w pierwszym cyklu zegarowym jest równa: B =, (5.47) C1 B1 1 1 [ 1111] = [111] = B1. (5.48) W kolejnym cyklu zegarowym (p=2) struktura sprzężenia nie ulega zmianie (macierz C 1 nie ulega zmianie). Stan po drugim cyklu zegarowym jest określony zależnością: B =, (5.49) 1 C1 B2 1 1 [ 111] = [11] = B2. (5.5) Powtarzając algorytm dla trzeciego cyklu zegarowego (p=3) uzyskuje się: B =, (5.51) 2 C1 B3 71

76 1 1 [ 11] = [1] = B3. (5.52) W czwartym cyklu zegarowym (p=4) zmianie ulega struktura sprzężenia zwrotnego. Macierz C 1 zostaje zastąpiona macierzą C 2, która zawiera w pierwszej kolumnie drugi wiersz macierzy (5.46). Zawartość rejestru przesuwnego po czwartym cyklu zegarowym jest następująca: B =, (5.53) 3 C2 B [ 1] = [1] = B4. (5.54) 1 1 W kolejnym cyklu zegarowym generator pracuje ponownie z macierzą M 1. Powtarzając wielokrotnie algorytm zaprezentowany powyżej uzyskuje się wartości rejestru przesuwnego zgodnie z tabelą 5.6. Tab. 5.6 Stan rejestru przesuwnego w kolejnych cyklach zegarowych Numer cyklu zegarowego p Stan rejestru przesuwnego Numer cyklu zegarowego p Stan rejestru przesuwnego W tabeli 5.6 w kolumnach dotyczących stanu rejestru przesuwnego generatora DLFSR pogrubioną czcionką oznaczono bit wyjściowy rejestru. Ciąg tych bitów określa sekwencję wyjściową. Dla pierwszych 25 cykli zegarowych sekwencja wyjściowa jest następująca: s={1;1;1;1;;;;1;;;1;;;1;1;1;1;;;1;1;;1;;1; }. (5.55) 72

77 Na rysunku 5.11 przedstawiono sekwencję wyjściową uzyskaną na drodze analitycznej. Dla częstotliwości próbkowania równej 1kHz czas trwania jednego okresu sekwencji wyjściowej jest równy 24ms. Rys Sekwencja wyjściowa uzyskana metodą analityczną Na rysunku 5.12 zamieszczono sekwencje uzyskane z symulacji generatora oraz uzyskane metodą analityczną. Uzyskane sekwencje mają ten sam kształt w każdym z rozważanych przypadków modelu generatora DLFSR. Rys Porównanie sekwencji uzyskanych metodami symulacyjnymi oraz metodą analityczną. 73

78 5.6 Implementacja sprzętowa generatora DLFSR Omawiane w poprzednich rozdziałach generatory LFSR oraz NLFSR składały się zasadniczo z dwóch podstawowych elementów: rejestru przesuwnego oraz bloku sprzężenia zwrotnego. Dodatkowe elementy związane z generacją sygnału zegarowego, układami kształtującymi i dopasowującymi ten sygnał oraz ewentualne układu buforujące wyjście są elementami opcjonalnymi i ich stosowanie powinno być przewidziane podczas procesu projektowania generatora. Generatory LFSR oraz NLFSR miały stałą w czasie pętlę sprzężenia zwrotnego. W przypadku generatora DLFSR, który posiada zmienną w czasie pętlę sprzężenia zwrotnego, konieczne jest rozbudowanie struktury, por rys Występujące na rysunku 5.3 bloki funkcjonalne mogą zostać zrealizowane na wiele sposobów. Dzielnik częstotliwości zegarowej Najprostszym elementem składowym generatora DLFSR jest dzielnik częstotliwości zegarowej. Z sygnału zegarowego o D krotnie mniejszej częstotliwości korzysta blok zmieniający pętlę sprzężenia zwrotnego. Sygnał ten można wytworzyć korzystając z poniższych metod. 1. Kaskadowe połączenie przerzutników typu D, każdy przerzutnik wprowadza podział częstotliwości zegarowej przez Wykorzystanie licznika binarnego lub ich kaskadowej kombinacji w celu uzyskania znacznych stopni podziałów. Rozwiązanie to umożliwia uzyskanie dużych stopni podziału równych wielokrotności liczby 2 przy małej fizycznej liczbie elementów licznika. 3. Wykorzystanie licznika dziesiętnego, lub ich kaskadowego połączenia. Stopień podziału częstotliwości możliwy do uzyskania w takim liczniku należy do zbioru liczb całkowitych. 4. Układy PLL z dowolnym stopniem podziału. 5. Układy typu DCM (ang. Digital Clock Managment) lub ich odpowiedniki implementowane w układach FPGA. Praca z dowolnym stopniem podziału częstotliwości zegarowej. Wymienione wyżej układy dzielników mogą być zrealizowane zarówno w strukturze programowanych matryc bramkowych FPGA lub z układów cyfrowych lub mieszanych (wyjątek stanową układy DCM i pochodne, które implementowane są tylko w strukturach FPGA). Istotne jest aby układ podziału częstotliwości nie wprowadzał przesunięcia fazy sygnału zegarowego (zarówno stałego w czasie jak i zjawiska jitter). Odwrócenie fazy zegara o 18 może być konieczne jeśli wymaga tego blok zmieniający układ sprzężenia zwrotnego. Istotnym czynnikiem podczas konstruowania złożonych generatorów pseudolosowych jest zjawisko hazardu czasowego. Opis tego zjawiska nie będzie rozpatrywany w pracy. Blok zmieniający układ pętli sprzężenia zwrotnego Realizacja tego bloku wymaga sprzętowej implementacji elementu przełączającego lub takiej organizacji bloku funkcji sprzężenia zwrotnego (zestawu bramek XOR) zwrotnego, który mógłby być przełączany sygnałami logicznymi. W pierwszym przypadku konieczne jest wykorzystanie multipleksera zarówno w wersji przełącznika sygnałów (np. CD453 lub DG412) lub multipleksera sygnałów logicznych zrealizowanego z wykorzystaniem bramek 74

79 logicznych. Przełączenie można zrealizować również poprzez dołączenie sygnałów z odczepów poprzez bramki AND do bramek sprzężenia zwrotnego XOR. Sterowanie bramkami AND może być zrealizowane za pomocą wyjść danych układów pamięciowych. W pamięci przechowywane są wektory opisujące aktywne odczepy sprzężenia zwrotnego por macierz (5.26). Zaletą tej struktury jest jej pełna uniwersalność, generator jest w pełni programowany poprzez zmianę zestawu wielomianów (zmiana zawartości pamięci). Sposób adresowania pamięci wyznacza cykle pracy z kolejnymi wielomianami. Przykładową strukturę takiego uniwersalnego generatora DLFSR pokazano na rysunku Rys Czterobitowy generator DLFSR Blok sprzężenia zwrotnego Funkcja sprzężenia zwrotnego generatora DLFSR może być zrealizowana poprzez: 1. Układ wielowejściowych bramek XOR, jeżeli funkcja przełączająca zrealizowana jest w formie multipleksera. Ilość bramek XOR w takim bloku sprzężenia zwrotnego odpowiada ilości wielomianów opisujących aktywne odczepy doprowadzone do wejść danej bramki. Multiplekser przełącza pomiędzy wejściem rejestru przesuwnego a wybraną bramką XOR por. rysunek Jedną wielowejściową bramkę XOR (w ogólności o N wejściach). Każde z wejść tej bramki dołączone jest do rejestru przesuwnego za pomocą bramki AND por. rysunek Badania eksperymentalne Badania eksperymentalne generatorów DLFSR wykonano wykorzystując to samo środowisko programistyczne oraz płytkę uruchomieniową jak w przypadku badań eksperymentalnych generatorów LFSR i NLFSR. Opis zestawu uruchomieniowego przedstawiono w załączniku 2. Do stworzenia w języku opisu sprzętu VHDL badanych generatorów wykorzystano środowisko firmy Xilinx ISE WebPack ver Układ FPGA był programowany z wykorzystaniem interfejsu JTAG. W tym podrozdziale opisano fizyczną realizację wykonanego czterobitowego generatora DLFSR. Schemat rozważanego układu pokazano na rysunku

80 Rys Czterobitowy generator DLFSR Generator pokazany na rysunku 5.14 składa się z następujących elementów funkcjonalnych: 1. czterobitowy rejestr przesuwny z wejściem szeregowym SR4CE, 2. pięciostopniowy licznik Johnsona CJ5CE, ustalający moment zmiany sprzężenia zwrotnego, 3. dwie bramki XOR realizujące sprzężenie zwrotne U1 oraz U2, 4. zespół bramek U3-U6 tworzących logiczny przełącznik dla sygnałów z bramek U1 oraz U2, 5. pozostałe bramki służące do inicjalizacji warunków początkowych generatora. Układ generatora z rysunku 5.14 wykorzystuje dwie bramki XOR U1 oraz U2 do realizacji funkcji sprzężenia zwrotnego. Odczepy doprowadzone do poszczególnych bramek tworzą opis wielomianowy struktury sprzężenia zwrotnego zgodnie z wielomianami (5.4) oraz (5.41). Bramka U1 realizuje sprzężenie zwrotne zgodnie z wielomianem (5.4) a bramka U2 zgodnie z wielomianem (5.41). Sygnał wyjściowy obu bramek kierowany jest do prostego dwuwejściowego multipleksera logicznego. Wejście multipleksera stanowią wejścia bramek NAND U3 i U4. Wyjście multipleksera to wyjście bramki U5. Wyjście to dołączone jest poprzez bramkę OR do wejścia rejestru przesuwnego. Multiplekser kieruje na swoje wyjście jeden z sygnałów wejściowych, który stanowią wyjścia bramek XOR realizujących funkcję sprzężenia zwrotnego. Wybór aktywnego wejścia, czyli przepuszczenie sygnału z wybranej bramki XOR prze strukturę multipleksera, jest zależne od stanu logicznego na wejściu inwertera U6. Stan 76

81 niski powoduje wybranie wyjścia bramki U1, stan wysoki powoduje wybranie wyjścia bramki U2. Dzięki zastosowaniu multipleksera układ może zmieniać w trakcie pracy swoją strukturę (układ sprzężenia zwrotnego). Moment zmiany ustala licznik Johnsona. Licznik ten korzysta z tego samego sygnału zegarowego co rejestr przesuwny, zatem pozwala na zliczanie cykli zegarowych. Stan logiczny wysoki występujący na wyjściu Q2, pojawiający się pomiędzy trzecim a czwartym cyklem zegarowym, powoduje zmianę struktury sprzężenia zwrotnego na czas czwartego cyklu zegarowego. Licznik zostaje wyzerowany kiedy na wyjściu Q3 oraz na linii sygnału zegarowego pojawi się stan wysoki. Po wyzerowaniu licznik rozpoczyna zliczanie od początku. Układ generatora DLFSR pracuje z aktywnym wielomianem sprzężenia zwrotnego zgodnie z tabelą 5.5. Sygnał wyjściowy generatora z rysunku 5.14, uzyskiwany z wyjścia Q3 rejestru przesuwnego SR4CE pokazano na rysunku Okres sekwencji wynosi 24ms. Rys Sekwencja wyjściowa fizycznej realizacji generatora DLFSR Na rysunku 5.16 zestawiono sekwencję wyjściową uzyskaną analitycznie oraz sekwencję wyjściową fizycznej realizacji generatora DLFSR. Obie sekwencje mają ten sam kształt co potwierdza poprawność przeprowadzonych rozważań dotyczących analitycznej metody opisu generatorów DLFSR, metod dyskretnego opisu tych generatorów oraz fizycznej implementacji generatora DLFSR w strukturze układu FPGA. 77

82 Rys Porównanie sekwencji uzyskanej na drodze analitycznej oraz sekwencji fizycznej implementacji generatora DLFSR 5.8 Podsumowanie W rozdziale omówiono generatory z dynamiczną liniową pętlą sprzężenia zwrotnego. Opracowano konstrukcję generatora DLFSR oraz opisano jego bloki składowe. Omówiono ograniczenia dotyczące parametrów bloków składowych generatora. Opracowano opis matematyczny generatora DLFSR, pozwalający na analizę stanów rejestru przesuwnego wchodzącego w skład generatora oraz umożliwiający analityczne wyznaczenie sekwencji wyjściowej. Opracowaną metodę zilustrowano przykładami. W celu potwierdzenia poprawności opracowanej metody analizy generatorów DLFSR wykorzystano metody analityczne, symulacyjne oraz doświadczalne. W każdym z wymienionych przypadków uzyskano identyczne rezultaty. 78

83 6. Metody badań statystycznych generatorów zbudowanych na rejestrach przesuwnych 6.1 Wstęp Rozważane w pracy generatory zbudowane na rejestrach przesuwnych generują pseudolosowe sekwencje binarne. Wyjściowa binarna sekwencja pseudolosowa generatora jest synchroniczna z sygnałem zegarowym taktującym układ generatora. Sekwencje generowane przez generatory z rejestrami przesuwnymi nie są sekwencjami w pełni losowymi. Mają one skończoną długość a przez co są okresowo powtarzalne. Także każdy kolejny bit wyjściowy sekwencji generatora zbudowanego na rejestrze przesuwnym jest uzyskiwany w pełni deterministyczny sposób, określony algorytmem generacji sekwencji pseudolosowej [SB], [PV], [PS], [HM]. Sekwencja pseudolosowa może przyjmować bardziej lub mniej dokładnie statystyczne cechy sygnału losowego. W celu pomiaru podobieństwa sekwencji pseudolosowej do sekwencji losowej stosuje się analizę statystyczną za pomocą różnych narzędzi, takich jak np. testy statystyczne lub testy indywidualne, które stwierdzają podobieństwo statystyczne sekwencji pseudolosowej do sekwencji losowej [ZA], [SJ1], [RK], [KZ], [WY]. Dla obserwatora sekwencja pseudolosowa posiada cechy sygnału losowego jeśli spełnione są poniższe warunki [MJ1], [PV], [MR], [PS], [HP1]: 1. Okres obserwacji jest znacznie krótszy od okresu sekwencji pseudolosowej. Obserwacja dłuższego fragmentu (a w szczególności co najmniej dwóch okresów) sekwencji pseudolosowej pozwala na stwierdzenie czy wygenerowany ciąg jest pseudolosowy czy w pełni losowy. 2. Obserwator nie wie jaką metodą generowana jest obserwowana przez niego sekwencja. Wiedza o metodzie generacji od razu określa cechy generowanej sekwencji, np. generatory kongruencyjne lub LFSR generują sekwencje wyłącznie pseudolosowe. 3. Obserwacja jest jednokrotna dla danego warunku początkowego. Obserwacja wykonana co najmniej dwukrotnie z tym samym warunkiem początkowym pozwala zaobserwować ten sam ciąg bitów w sekwencji, a zatem pozwala na stwierdzenie, że 79

84 obserwowana sekwencja jest sekwencją generowaną metodami deterministycznymi (generatorami pseudolosowymi). Dodatkowo sekwencja pseudolosowa powinna spełniać następujące kryteria [RK1], [WX], [GS1], [PG], [HD]: Równomierny rozkład bitów oraz 1. Dużą złożoność liniową. Długi okres sekwencji. Wartość funkcji autokorelacji równą 1 oraz bliską wartość funkcję korelacji wzajemnej. Powinna spełniać wiele testów statystycznych i zapewniać wysokie parametry statystyczne. Powinna być powtarzalnie generowana z tego samego warunku początkowego. Znanych jest wiele metod analizy sygnałów losowych i pseudolosowych. Do podstawowych metod zalicza się: Analizę statystyczną w ujęciu klasycznym [KZ], [ML]. Analizę korelacyjną [HD], [MR], [ML]. Metody związane z analizą widmową [RA1], [WJ6], [MR], [WY]. Indywidualne testy statystyczne np. kompresja ciągu [RA1], [SJ1], [ML], [WY]. Pakiety testów statystycznych [CP2], [PV], [ZA], [RA1], [SJ1]. Inne np. procedury testowe, konkurs AES [ZA]. Na rysunku 6.1 pokazano w formie diagramu metody analizy ciągów pseudolosowych wykorzystywanych w pracy. Rys Metody analizy sekwencji pseudolosowych 8

85 6.2 Sekwencje wyjściowe generatorów zbudowanych na rejestrach przesuwnych Do tej pory rozważane były metody syntezy różnych struktur generatorów sygnałów pseudolosowych, konstrukcje modeli matematycznych tych generatorów i analiza ich właściwości. W tym podrozdziale zostały opisane cechy sekwencji pseudolosowych generowanych przez generatory zbudowane na rejestrach przesuwnych a w szczególności generatory LFSR, NLFSR oraz DLFSR. W początkowym okresie rozwoju generatorów sekwencji pseudolosowych zbudowanych na rejestrach przesuwnych (lata 5 XX wieku) zauważono pewne prawidłowości w sekwencjach generowanych przez generatory LFSR [GS1]. Przede wszystkim długość l niepowtarzalnej serii bitów nie może być dłuższa niż ilość stanów w których może znajdować się rejestr przesuwny. Tę cechę można opisać zależnością: N l 2. (6.1) Dla generatora LFSR i DLFSR występuje jeden stan zabroniony (por. rozdziały 3 i 5). Generator NLFSR nie posiada stanów zabronionych, więc długość maksymalnej sekwencji generowanej przez taki generator jest określona równaniem (6.1) (por. rozdział 4). W przypadku generatorów LFSR oraz DLFSR liczba stanów bitów, które mogą być przechowywane w rejestrze przesuwnym jest określona zależnością: l 2 N 1. (6.2) Generowana sekwencja pseudolosowa ma maksymalną długość wtedy, gdy wielomiany opisujące generatory LFSR oraz DLFSR są pierwotne (por. rozdziały 3 i 5). Dla generatorów LFSR generujących sekwencje o maksymalnych długościach istnieją trzy postulaty (nazywane postulatami losowości Golomba) [GS1], określające trzy podstawowe cechy pseudolosowej sekwencji bitów. Brzmią one następująco: Postulat 1 W każdej sekwencji maksymalnej długości pojawia się 2 N-1 bitów 1 oraz 2 N-1-1 bitów. Postulat ten nazywa się właściwością równowagi (ang. Balance property). Postulat 2 W każdej sekwencji maksymalnej długości występuje 2 N-2 występujących po sobie bitów 1 oraz 2 N-2 występujących po sobie bitów. Połowa tych serii bitów ma długość równą 1, jedna czwarta występujących po sobie sekwencji ma długość równą 2, ogólnie (1/2) k wszystkich ciągów zer i jedynek ma długość k dla 1 k N-2. Występuje także sekwencja N-1 zer oraz pojedyncza sekwencja N jedynek (ang. Run property). Postulat 3 Porównanie sekwencji maksymalnej długości z przesuniętą kopią tej samej sekwencji wykazuje zgodność bitów na 2 N-1-1 pozycjach oraz niezgodność bitów na 2 N-1 pozycjach. 81

86 Dokonując podstawienia 1 dla bitu 1 oraz -1 dla bitu otrzymuje się następujące wartości (6.3), (6.4) funkcji autokorelacji: dla τ równego wielokrotności okresu: dla każdej innej wartości τ: C ( τ ) = 1, (6.3) 1 C( τ ) =. l (6.4) Ponadto funkcję autokorelacji określa tu wzór: 1 C τ (6.5) l ( ) = x x n n+ τ l n= 1 Każda sekwencja o maksymalnej długości generowana przez generator LFSR spełnia wymienione wyżej trzy postulaty losowości Golomba. Postulaty te bywają częścią testów statystycznych służących do badania losowości ciągów pseudolosowych. Przykład 1 Generator LFSR, zbudowany na czterobitowym (N=4) rejestrze przesuwnym, opisany jest wielomianem pierwotnym. Okres wygenerowanej sekwencji jest równy 15. Sekwencja ta dana jest ciągiem bitów: s = {1;1;1;1;;;;1;;;1;1;;1;}. (6.6) Postulat 1. W sekwencji powinno występować 8 bitów 1 oraz 7 bitów. Sekwencja (6.6) spełnia ten postulat. Postulat 2. Podział na występujące w ciągu sekwencje złożone z serii tych samych bitów pokazano na rysunku 6.2. Rys Serie występujące w sekwencji pseudolosowej Zgodnie z postulatem 2 w sekwencji (6.6) powinny znajdować się po cztery sekwencje bitów 1 oraz bitów. Serie bitów 1 mają numery: 1, 3, 5, 7. Serie bitów mają numery: 2, 4, 6, 8. Połowa liczby serii powinna mieć długość jednego bitu. Występują, zgodnie z postulatem, cztery takie serie w sekwencji (6.6). Są one oznaczone numerami: 3, 6, 7, 8. Jedna czwarta liczby serii (czyli dwie serie) powinna mieć długość dwóch bitów. Są to serie oznaczone numerami: 4 oraz 5. Jedna ósma liczby serii powinna mieć długość 4 bitów. Jest to seria numer 1. 82

87 Postulat 3. Dokonując podstawienia: Bit -1, Bit 1, sekwencja (6.6) będzie miała postać określoną wzorem (6.7). s = {1;1;1;1;-1;-1;-1;1;-1;-1;1;1;-1;1;-1} (6.7) Wykreślając funkcję autokorelacji sekwencji (6.7) uzyskuje się wykres przedstawiony na rysunku 6.3. Markerem zaznaczono wartość funkcji autokorelacji dla przesunięcia o dwie próbki. Wartość oznaczona markerem jest równa 1/15 (sekwencja ma długość 15 bitów), czyli spełnia zależność (6.5). Rys Funkcja autokorelacji sekwencji pseudolosowej o długości 15 bitów Sekwencje o maksymalnej długości generowane przez generatory LFSR mają wiele innych cech, które nie będą rozpatrywane w tej pracy. Zostały one opisane w [GS1]. Ograniczając się do sekwencji pseudolosowych z czasem nieciągłym, wyznaczonym przez sygnał zegarowy sekwencyjnych generatorów pseudolosowych wykorzystano w tej pracy metody pokazane na rysunku

88 6.3 Analiza statystyczna Podstawowym narzędziem analizy sekwencji losowych i pseudolosowych jest statystyka matematyczna. Metody statystyki umożliwiają wyznaczenie wielu funkcji statystycznych. Do podstawowych funkcji statystycznych mających zastosowanie w analizie czasowo ciągłych i czasowo dyskretnych sygnałów losowych i pseudolosowych zalicza się: wartość oczekiwaną, wariancję, histogram, funkcję autokorelacji. Wartość oczekiwana Wartość oczekiwana służy do oceny stałego przesunięcia wartości (ang. bias, offset) sekwencji pseudolosowej. Wartość oczekiwana sekwencji pseudolosowej określona jest następującym wzorem: gdzie: s symbol oznaczający sekwencję generatora (ciąg liczb). l 1 E( s) = s i, (6.8) l i= 1 Analiza wartości oczekiwanej sekwencji pseudolosowej pozwala na stwierdzenie czy w analizowanej sekwencji występuje równowaga w postaci takiej samej ilości logicznych zer i jedynek 1. Dla sekwencji zrównoważonej, tzn. takiej która zawiera taką samą ilość zer i jedynek wartość średnia jest równa,5. Sekwencje niezrównoważone (niezbilansowane) mają wartość oczekiwaną różną od,5. Często wprowadza się przyporządkowanie [GS2], [MR]: dla wartości logicznego zera: s i =-1, dla wartości logicznej jedynki: s i =1. Wartość średnia sekwencji pseudolosowej z przyporządkowaniem podanym powyżej wynosi. Analiza wartości oczekiwanej jest jednym z testów pakietu ENT. Sekwencje pseudolosowe generowane przez generatory programowe zbudowane na rejestrach przesuwnych posiadają niezmienną za okres sekwencji pseudolosowej wartość średnią. Wartość średnia binarnej sekwencji pseudolosowych jest określona zależnością: E ( s) =,5. (6.9) W przypadku generatorów sprzętowych, których napięcie zasilania części cyfrowej może ulegać zmianie w czasie pracy generatora, wartość średnia sekwencji pseudolosowej jest funkcją tego napięcia zgodnie z zależnością: 84

89 E( s) =, 5Vcc, (6.1) gdzie: Vcc oznacza napięcie zasilające układ wyjściowy generatora. Wariancja Wariancja jest miarą zmienności i określa zróżnicowanie wartości w badanej sekwencji. Wariancja dla czasowo dyskretnego skończonego ciągu pseudolosowego jest określona wzorem: gdzie: l długość sekwencji pseudolosowej, s i kolejne wyrazy sekwencji pseudolosowej, l 2 Var( s) = ( s E( s)), (6.11) i= 1 E(s) wartość oczekiwana sekwencji pseudolosowej. i Zastosowanie wariancji do analizy sekwencji pseudolosowej pozwala na ocenę zmienności sekwencji. Sekwencja pseudolosowa przyjmująca wszystkie wartości z zakresu pracy generatora pseudolosowego powinna mieć następujące cechy [GS1]: W przypadku generacji ciągu liczb wielobitowych wariancja ciągu powinna być określona maksymalną ilością dyskretnych poziomów generowanych przez generator i określona wzorem (6.11). W przypadku generacji binarnego ciągu pseudolosowego powinna wynosić dokładnie,25. W przypadku generatora zasilanego napięciem Vcc wariancja sygnału wyjściowego powinna być określona wzorem: Wpływ na wartość wariancji mają następujące zjawiska: 2 Vcc Var ( s) =. (6.12) 4 Zły dobór odczepów rejestru. Zbyt krótki czas pracy (generator nie zdążył wygenerować jednego pełnego okresu sekwencji pseudolosowej). Błąd w algorytmie generacji. Błąd w układzie elektronicznym (np. silne wahania napięcia zasilania zmieniające amplitudę sygnału pseudolosowego). Generator, którego wariancja nie spełnia zależności podanych powyżej należy uznać za wadliwy [GS1], [RA1]. 85

90 Histogram Binarne sekwencje pseudolosowe mogą być przedstawione w formie ciągu bitów lub w formie słów wielobitowych zawartych bezpośrednio w rejestrze przesuwnym. W przypadku badania 8-bitowego generatora pseudolosowego i stosowania 8-bitowej reprezentacji uzyskuje się 255 różnych wartości występujących w sekwencji pseudolosowej. Rozkład bitów lub poszczególnych słów zawartych w rejestrze przesuwnym umożliwia analizę sekwencji pseudolosowej. Ze względu na to, iż generator z rejestrem przesuwnym generuje okresowe ciągi pseudolosowe to sekwencja powinna zawierać dokładnie równomierny rozkład bitów lub słów jeśli tylko wygenerowana sekwencja zawiera całkowitą liczbę okresów, por. Postulat 1 losowości [GS]. W przypadku długich sekwencji analiza binarnej sekwencji pseudolosowej za pomocą histogramu jest utrudniona. Duża liczba bitów i 1 uniemożliwia wychwycenie niewielkich nierównomierności rozkładu na podstawie obserwacji wykresu. Utworzenie z sekwencji binarnej ciągu słów wielobitowych umożliwia stwierdzenie, czy rozkład wartości jest równomierny. Przykład 2 Dany jest 8-bitowy generator DLFSR opisany dwoma wielomianami pierwotnymi. Długość sekwencji wyjściowej generatora DLFSR została zmierzona i wynosi (bitów lub słów w 8-bitowym rejestrze przesuwnym). Na rysunku 6.4 przedstawiono histogram rozkładu bitów a na rysunku 6.5 rozkład 8-bitowych słów sekwencji tego generatora. Rys Histogram binarnej sekwencji generatora DLFSR 86

91 Rys Histogram 8-bitowych słów sekwencji generatora DLFSR 6.4 Analiza widma Występowanie w sekwencji pseudolosowej wzorców okresowych (nawet o małym zakresie dynamicznym) może znacząco obniżyć bezpieczeństwo systemu kryptograficznego, korzystającego z takiej sekwencji [LM]. Występowanie takich okresowości w sekwencji pseudolosowej jest wadą a generator, który generuje takie sekwencje powinien być uznany za wadliwy. Sygnały okresowe występujące w wyjściowej sekwencji pseudolosowej generatora mogą pochodzić od następujących źródeł, zależnych od implementacji generatora: 1. Pseudolosowy generator sprzętowy: a. Okresowe wahania napięcia zasilania części cyfrowej lub analogowej, również skorelowane z aktualnym sygnałem wyjściowym. b. Wahania temperatury, zmieniające np. poziomy komparacji przerzutników lub komparatorów. c. Przenikanie sygnału zegarowego do sekwencji wyjściowej oraz stosowanie niestabilnego częstotliwościowo oraz termicznie sygnału zegarowego. d. Nieprawidłowe wykonanie płytki PCB (brak dopasowania cyfrowych linii transmisyjnych w.cz, sprzężenia magnetyczne i elektryczne z innymi obwodami układu lub urządzeniami zewnętrznymi). e. Błędny projekt generatora (błąd projektanta). 2. Pseudolosowy generator programowy: a. Błędny projekt generatora (błąd projektanta). Jedną z metod analizy okresowych wzorców występujących w sekwencji pseudolosowej jest analiza widmowa algorytmami FFT lub DFT (analiza widmowa DFT jest częścią pakietu testów statystycznych NIST STS ). Analiza widmowa może być wygodnym narzędziem do testowania generatorów pseudolosowych [WJ6], [SR1]. W szczególności przyśpiesza 87

92 projektowanie sprzętowych generatorów pseudolosowych oraz pozwala na pomiar długości sekwencji wyjściowej, co zostanie przedstawione w dalszej części tego rozdziału. Sekwencja pseudolosowa generatorów zbudowanych na rejestrach przesuwnych jest sekwencją o pewnej częstotliwości próbkowania f CLK, która jest równa częstotliwości sygnału taktującego f c. Widmo takiej sekwencji pokazano na rysunku 6.6. Rys Przykładowe widmo sygnału pseudolosowego Ograniczając się do częstotliwości -f CLK Hz idealna sekwencja pseudolosowa powinna mieć odstęp częstotliwości pomiędzy prążkami f dążący do zera widmo powinno dążyć do ciągłego widma sygnału szumu białego (z uwzględnieniem obwiedni sygnałów próbkowanych Sinc), który może być traktowany jako idealna sekwencja pseudolosowa. Na rysunku 6.7 przedstawiono przykładowe widmo sekwencji pseudolosowej o długości 255 bitów. Generator LFSR taktowany był sygnałem zegarowym o częstotliwości 255kHz ( f=1khz). W widmie sygnału generatora nie widać składowych, które świadczyłyby o występowaniu okresowych wzorców, zniekształcających widmo z rysunku 6.6. Rys Przykładowe widmo sygnału pseudolosowego 88

93 Na rysunku 6.8 przedstawiono sekwencję tego samego generatora, w której występuje przesłuch z dwóch innych bitów rejestru przesuwnego. Generator sekwencji pseudolosowej o widmie pokazanym na rysunku 6.8 można uznać za wadliwy. Rys Widmo zniekształconej sekwencji pseudolosowej. Rozkład prążków w widmie sygnału pseudolosowego jest ściśle określony. Prążki te oddalone są od siebie o częstotliwość f, która jest zależna od częstotliwości próbkowania oraz długości sekwencji pseudolosowej. Dzięki temu możliwe jest szybkie określenie długości sekwencji pseudolosowej poprzez obserwację jej widma amplitudowego. Pomiar długości sekwencji pseudolosowej z wykorzystaniem algorytmu FFT Widmo sekwencji pseudolosowej pokazano na rysunku 6.6. Odstęp pomiędzy prążkami widma f jest stały i określony wzorem: f c f =. (6.13) l Do obliczenia długości sekwencji wystarczy znajomość wartości f oraz f c. Do wyznaczenia wartości f można posłużyć się początkowym fragmentem widma pokazanego na rysunku 6.6. Aby tego dokonać należy poddać sekwencję filtracji dolno przepustowej a następnie spróbkować, ale już ze znacznie mniejszą częstotliwością f p. Wartość f nie ulegnie zmianie, natomiast możliwy będzie dokładny pomiar częstotliwości pomiędzy sąsiednimi prążkami. Do tego typu pomiarów nadaje się karta dźwiękowa komputera PC [SR3]. Pasmo przenoszenia jest ograniczone do około 21kHz a zawarty w przetworniku wejściowym - filtr FIR ma przeważnie duże tłumienie tuż powyżej częstotliwości 2kHz (dla częstotliwości próbkowania karty dźwiękowej równej 44,1kHz). Proponowany tor pomiarowy [SR3] pokazano na rysunku

94 Rys Tor pomiarowy długości sekwencji pseudolosowej Znaczne zmniejszenie częstotliwości próbkowania (do wartości ustawionej przez kartę dźwiękową) umożliwia zmniejszenie liczby próbek potrzebnych do analizy FFT przy zachowaniu założonej rozdzielczości pomiaru częstotliwości prążków widma. Przykład 3 Dana jest sekwencja o długości l=2 24. Częstotliwość taktowania generatora pseudolosowego jest równa f c =3MHz. Częstotliwość próbkowania sygnału wejściowego przez kartę dźwiękową f p =44,1kHz. Z danych wynika, że odstęp między prążkami widma sekwencji pseudolosowej f wynosi 17,8Hz (3MHz/2 24 ). Wymagana liczba próbek do analizy FFT (przy f p =44,1kHz) powinna wynosić co najmniej 8192, co da rozdzielczość analizy FFT na poziomie 5Hz i umożliwi w miarę dokładny pomiar częstotliwości f. Z taką analizą FFT powinien sobie poradzić w czasie rzeczywistym współczesny komputer PC. 6.5 Test kompresji Sekwencja w pełni losowa nie może zostać bezstratnie i efektywnie skompresowana, czyli przetworzona przez algorytm, który utworzy inną, krótszą sekwencję o większej entropii, jednoznacznie określającą sekwencję wejściową. Jest to związane zarówno z funkcją autokorelacji takiej sekwencji, jej entropią (czyli ilością informacji na każdy bajt) jak również z brakiem jakichkolwiek prawidłowości występujących w sekwencji. Brak wymienionych cech uniemożliwia wyprowadzenie krótszego zapisu sekwencji, który bez utraty informacji, mógłby jednoznacznie opisać sekwencję pseudolosową. Sekwencja pseudolosowa, która nie posiada defektów statystycznych i występujących w niej prawidłowości, także nie może zostać efektywnie skompresowana. Poziom kompresji będzie zależał ściśle od entropii sekwencji. Sekwencja niekompresowalna będzie miała entropię na poziomie 8 bitów na każdy bajt sekwencji [EN], wiec algorytm kompresji nie może tej entropii dalej zwiększyć. Sekwencja z defektami statystycznymi oraz z występującymi okresowymi wzorcami daje się kompresować a od poziomu losowości badanej sekwencji zależy stopień kompresji. Przykład 4 Wygenerowano za pomocą generatora LFSR dwie sekwencje pseudolosowe. Generator do generacji dwóch sekwencji pseudolosowych wykorzystywał wielomian pierwotny oraz losowo wybrany wielomian niepierwotny. Obie wygenerowane sekwencje miały ten sam rozmiar bajtów. Następnie obie sekwencje skompresowano pakietem WINRAR ze standardowymi ustawieniami. W tabeli 6.1 zebrano wyniki kompresji obu sekwencji. 9

95 Tab Kompresja ciągów pseudolosowych Typ wielomianu generatora: Pierwotny Nie pierwotny Rozmiar sekwencji w bajtach Przed kompresją: Po kompresji: Stopień kompresji: 1% 1% Z porównania obu stopni kompresji wynika, że sekwencje generatorów LFSR wygenerowane przy pomocy wielomianów pierwotnych nie dają się efektywnie kompresować. Brak efektywnej kompresji nie jest natomiast równoznaczny ze zdawalnością wszystkich testów statystycznych. Sekwencje opisane innymi wielomianami niż pierwotne dają się kompresować. Stopień kompresji zależy od wielomianu i może się zmieniać od 99% dla wielomianów bliskich pierwotnym (zmiana o wartość 1 jednego ze wykładników występującego w wielomianie do poniżej 1% dla wielomianów dających się rozłożyć na iloczyn wielomianów znacznie niższych rzędów i przez to generujących bardzo krótkie sekwencje pseudolosowe). Testowanie sekwencji pseudolosowej poprzez jej kompresję jest szybkim i wiarygodnym testem. Umożliwia szybkie prototypowanie generatorów programowych. Test kompresji wchodzi też w skład pakietu testów statystycznych NIST STS oraz ENT. 6.6 Testy statystyczne oraz hipoteza H Jedną z metod oceny jakości sekwencji pseudolosowej jest ocena podobieństwa sekwencji pseudolosowej do sekwencji w pełni losowej i określenie na tej podstawie, czy stosowany (np. do szyfrowania) generator pseudolosowy zapewnia założony poziom bezpieczeństwa. Do tego celu wykorzystywane są testy statystyczne takie jak: DIEHARD, ENT, STS oraz inne, np. DIEHARDER lub wybrane testy nieparametryczne [KZ], [SJ1]. Stwierdzają one z pewnym prawdopodobieństwem losowość sekwencji pseudolosowej nazywane jest to testowaniem hipotezy H (ang. Null hypothesis) [RA1]. Celem każdego z tych testów jest stwierdzenie, czy badana hipoteza H jest spełniona z założonym poziomem istotności. Poziom istotności α oznacza prawdopodobieństwo odrzucenia hipotezy H jeśli jest ona prawdziwa. Poziom istotności α przyjmuje się najczęściej jako wartość z zakresu,1 do,1 [RA1]. Błędna interpretacja wyników prowadzi do dwóch błędów w testowaniu [ZA], [RA1]: 1. Błąd I rodzaju uznaje się hipotezę H za fałszywą gdy jest ona prawdziwa, czyli odrzuca się sekwencję losową. 2. Błąd II rodzaju uznaje się hipotezę H za prawdziwą gdy jest ona fałszywa, czyli uznaje się sekwencję z defektami statystycznymi jako sekwencję w pełni losową. Z obu wymienionych błędów w testowaniu gorszy w swoich skutkach jest błąd II rodzaju. Popełnienie tego błędu skutkuje użyciem generatora o niewłaściwych parametrach statystycznych, co zmniejsza bezpieczeństwo systemu wykorzystującego ten generator. 91

96 Pakiet DIEHARD Zestaw testów DIEHARD został opracowany przez George a Marsagalie [DH]. Składa się on z 18 testów. Dokładny opis testów wraz z źródłami w języku C można znaleźć na stronie internetowej autora [DH]. Pakiet DIEHARD działa zarówno w środowisku Windows (dostępna jest gotowa aplikacja w formie pliku wykonywalnego) jak i Linux. Na rysunku 6.1 pokazano zrzut uruchomionej aplikacji pakietu testów statystycznych DIEHARD dla systemu Windows. Rys Uruchomiona aplikacja testów statystycznych DIEHARD Do podstawowych zalet pakietu DIEHARD zalicza się: dostępne kody źródłowe oraz gotowa aplikacja dla środowiska Windows, duża ilość testów statystycznych, dostępna dokładna dokumentacja oraz sposób interpretacji wyników, zbiór wyników w formie pliku tekstowego, łatwego do dalszej analizy. Do podstawowych wad pakietu DIEHARD zalicza się: utrudnioną analizę porównawczą dwóch zestawów wyników, długi czas testowania (w zależności od długości sekwencji). Minimalna długość sekwencji pseudolosowej, która może zostać poddana analizie to 11MB. Wynikiem działania pakietu DIEHARD jest liczba lub zestaw liczb tzw. p-wartości. Liczby te nazywa się prawdopodobieństwami testowymi [ZA], [RA1]. Oznaczają one prawdopodobieństwo popełnienia błędu I rodzaju przy testowaniu hipotezy H. W pakiecie DIEHARD, w zależności od rodzaju testu, zwracana jest pojedyncza p-wartość (wynik testu Kołmogorowa Smirnowa na serii p-wartości lub wynik testu χ 2 na danych uzyskanych podczas testu) lub seria p-wartości. Serię p-wartości uzyskuje się w testach, które dzielą analizowaną sekwencję na mniejsze podsekwencje i wykonują dany test statystyczny na każdej podsekwencji. Jeżeli analizowana sekwencja jest w pełni losowa to uzyskane 92

97 p-wartości powinny być rozłożone równomiernie na przedziale [;1]. W przypadku testów zwracających jedną p-wartość powinna się ona zawierać pomiędzy wartością α lub 1-α. Przy założonym poziomie istotności α sekwencja nie przechodzi testu, jeżeli [ZA] zachodzi nierówność: p-wartość< α lub p-wartość>1-α. (6.14) Zgodnie z uwagą Autora pakietu DIEHARD, nawet dobre generatory sygnałów pseudolosowych mogą dla serii p-wartości nie spełniać relacji określonej wzorem (6.14). Nie oznacza to, że generator ten należy odrzucić. Pakiet DIEHARD podczas testów sekwencji, która posiada defekty statystyczne, zwróci wiele p-wartości leżących bardzo blisko krańców przedziału [;1] np.,2 lub,9971. Na tej podstawie należy odrzucić generator badanej sekwencji pseudolosowej, ponieważ rozkład tych wartości nie jest rozkładem równomiernym. Pakiet DIEHARD składa się z 18 testów. Wszystkie testy pakietu DIEHARD są testami nieparametrycznymi, tzn. użytkownik nie może bez ingerencji w kod źródłowy zmienić żadnego z parametrów testów. W tabeli 6.2 zebrano nazwy testów oraz nadano im numery, którymi posłużono się w rozdziale 7. Tab Nazwy oraz przypisane im numery testów statystycznych pakietu DIEHARD Numer testu Nazwa testu Numer testu Nazwa testu 1 Odstęp między datami urodzin 1 Test Policz "1" w ciągu bajtów 2 Test nakładających się 5 liczb 11 Test Policz "1" dla wybranych bajtów 3 Test rzędu macierzy 31x31 12 Test parkowania 4 Test rzędu macierzy 32x32 13 Test minimalnej odległości 5 Test rzędu macierzy 6x8 14 Test wypełnienia kulami 6 Test ciągu bitów 15 Test redukowania 7 Test OPSO 16 Test zachodzących na siebie sum 8 Test OQSO 17 Test ilości kierunków ciągów 9 Test DNA 18 Test gry w kości Na rysunku 6.11 zaprezentowano przykładowy wynik testu statystycznego pewnego generatora pseudolosowego a w tabeli 6.3 podsumowanie wyniku przykładowego testu. 93

98 Rys Przykładowy wynik testowania sekwencji w pakiecie DIEHARD Znaczniki w formie czarnych kwadratów są wynikami testu Kołmogorowa-Smirnowa dla ciągu p-wartości uzyskanych w wyniku podziału przez pakiet DIEHARD wejściowej sekwencji pseudolosowej na kilka mniejszych podsekwencji. Pozostałe mniejsze znaczniki to p-wartości uzyskane bezpośrednio z pakietu DIEHARD. Poziome przerywane linie określają poziom zdania testu określony równaniem (6.14). Obie linie zostały wykreślone przy założeniu α=,5. W tabeli 6.3 zestawiono końcowy rezultat (czy test został zdany?) otrzymany z analizy wyników przedstawionych na rysunku Przyjmuje się [ZA], [DH] że jeżeli jedna z kilku p-wartości przekroczy obszar określony liniami przerywanymi to test jest zdany, mimo iż nierówność (6.14) nie jest spełniona. Tab Podsumowanie przykładowego wyniku testu statystycznego pakietu DIEHARD. Numer testu Nazwa testu Test zdany? 1 Odstęp między datami urodzin Tak 2 Test nakładających się 5 liczb Nie 3 Test rzędu macierzy 31x31 Nie 4 Test rzędu macierzy 32x32 Tak 5 Test rzędu macierzy 6x8 Nie 6 Test ciągu bitów Nie 7 Test OPSO Nie 8 Test OQSO Tak 9 Test DNA Tak 1 Test Policz "1" w ciągu bajtów Nie 11 Test Policz "1" dla wybranych bajtów Nie 12 Test parkowania Nie 13 Test minimalnej odległości Nie 14 Test wypełnienia kulami Tak 15 Test redukowania Tak 16 Test zachodzących na siebie sum Tak 17 Test ilości kierunków ciągów Tak 18 Test gry w kości Tak 94

99 Pakiet NIST STS Kolejnym pakietem testów statystycznych jest pakiet NIST STS autorstwa National Institute of Standard and Technology (NIST). W dalszej części pracy ten pakiet testów statystycznych (ang. STS - Statistical Test Suite) będzie nazywany pakietem testów statystycznych NIST. Pakiet ten jest jednym z najważniejszych narzędzi do określania bezpieczeństwa informatycznego dotyczącego generacji ciągów losowych i pseudolosowych. Do podstawowych zalet pakietu NIST zalicza się: dostępne kody źródłowe oraz gotowa aplikacja dla środowiska Windows, duża ilość testów statystycznych, dostępna dokładna dokumentacja oraz sposób interpretacji wyników. Do podstawowych wad pakietu NIST zalicza się: utrudnioną analizę porównawczą dwóch zestawów wyników, sposób zapisu danych wyjściowy pakietu (wynik każdego testu do osobnego pliku), bardzo długi czas testowania (w zależności od długości sekwencji). Pakiet NIST składa się z 15 testów statystycznych. Dostępna jest dokładna dokumentacja [RA1] dotycząca działania pakietu oraz opisu matematycznego zastosowanych testów statystycznych. Również dostępne są źródła pakietu w języku C oraz gotowa aplikacja przeznaczona dla użytkowników systemu Windows [NI]. Na rysunku 6.12 przedstawiono główne okno pakietu testów statystycznych. Rys Uruchomiony pakiet testów statystycznych NIST STS Pakiet NIST umożliwia testowanie sekwencji zapisanej w pliku dyskowym oraz jednego z 9 zaimplementowanych generatorów. W tej pracy wykorzystano wyłącznie możliwość analizy sekwencji zapisanych w plikach dyskowych. Autorzy pakietu NIST zalecają aby sekwencja wejściowa miała długość mieszczącą się pomiędzy 1 3 a 1 7 bitów. Zaobserwowano, że w przypadku pliku wejściowego o rozmiarze 11MB (32 bitowa sekwencja o długości 28672) pakiet NIST nie jest w stanie wykonać testu analizy widmowej DFT. W takich przypadkach nie zmniejszano pliku z sekwencją wyjściową tylko ustalano przy uruchomieniu pakietu z linii poleceń rozmiar sekwencji na 1 7 bitów. Pozostałe testy były wykonywane prawidłowo. Po wybraniu opcji [] por. rysunek 6.12 użytkownik ma dostęp do zestawu testów statystycznych rysunek 6.13 oraz do opcji rysunek Ostatecznie należy określić czy w 95

100 pliku wejściowym analizowana sekwencja została zapisana kodem ASCII czy jest to bezpośrednio sekwencja binarna, w której na każdy symbol przypada 8 bitów rysunek Rys Test pakietu NIST STS Rys Opcje pakietu NIST STS Zestaw testów statystycznych pakietu NIST oraz przypisane im numery testów, występujące na rysunkach w rozdziale 7, przedstawiono w tabeli

101 Tab 6.4. Testy pakietu NIST oraz odpowiadające im numery Numer testu Nazwa testu 1 Test entropii 2 Blokowy test częstości 3 Test skumulowanych sum 4 Test analizy widmowej DFT 5 Test częstości 6 Test złożoności liniowej 7 Test najdłuższej sekwencji 8 Test niezachodzących na siebie wzorców 9 Test zachodzących na siebie wzorców 1 Test losowych wycieczek 11 Alternatywny test losowych wycieczek 12 Test rzędu macierzy 13 Test sekwencji 14 Test częstości wielobitowych wzorców 15 Test kompresji Pakiet NIST wymaga znacznie dłuższego czasu przeznaczonego na analizę takiego samego pliku co np. pakiet DIEHARD. Analiza pliku 11MB na procesorze Intel Core i5 zajmuje około 5 minut. Pakiet testów NIST zwraca jako wyniki każdego z testów statystycznych jako p-wartości. [RA1], [ZA]. Dany test statystyczny uznaje się za zdany jeżeli p-wartości danego testu statystycznego są większe niż poziom istotności testu. W przypadku pakietu NIST w wersji STS poziom istotności został ustalony na α=,1. Wyniki wszystkich testów statystycznych zapisywane są do plików tekstowych w katalogu pakietu NIST. W celu ich dalszej analizy napisano oprogramowanie, które pobiera wszystkie p-wartości zapisane w plikach tekstowych i zwraca je w formie dogodnej do importu w arkuszu kalkulacyjnym. Pakiet ENT Kolejnym pakietem testów statystycznych jest pakiet ENT autorstwa Johna Walker a. Pakiet ten dostępny jest zarówno na platformę Windows jako wykonywalny plik exe oraz dostępne są kody źródłowe pakietu w języku C umożliwiające kompilację pod systemy Unix i Linux [EN]. Pakiet ENT dokonuje analizy statystycznej danych zawartych w pliku dyskowym zawierającym sekwencję pseudolosową. Wynikiem każdego z testów jest liczba, a nie tak jak w przypadku pakietu DIEHARD zestaw p-wartości. Wynik każdego z testów nie daje jednoznacznej odpowiedzi czy analizowana sekwencja jest sekwencją w pełni losową czy też nie. Pakiet ENT dokonuje pomiarów sekwencji wejściowej oraz zwraca jej wyniki. Od konstruktora generatora zależy czy dany zestaw wyników testów pakietu ENT jest zadowalający czy nie [EN]. Ze względu na znacznie prostszy zestaw testów statystycznych Autor pakietu nie definiuje minimalnej objętości pliku z sekwencją pseudolosową. Dane wyjściowe zobrazowane są w oknie działającego programu rysunek Możliwe jest także zapisanie danych wyjściowych pakietu do formatu CSV. 97

102 Rys Wynik analizy sekwencji w pakiecie ENT Pakiet ENT składa się z 6 testów: 1. test entropii, 2. próba kompresji ciągu, 3. test χ 2, 4. test średniej arytmetycznej ciągu, 5. test obliczenia wartości π metodą Monte Carlo, 6. wartość współczynnika korelacji. Ze względu na niewielką liczbę testów pakietu ENT przedstawiono poniżej ich opis. 1. Entropia. Badana jest gęstość informacji zawartej w pseudolosowym ciągu wejściowym. Wartość uzyskana z tego testu odniesiona jest do jednego znaku (8 bitów) pliku wejściowego. Dla ciągu pseudolosowego o bardzo dobrych parametrach statystycznych wartość entropii powinna być bliska 8 bitom. 2. Kompresja. Bezpośrednio z testem kompresji związany jest wynik testu entropii. W pełni losowa sekwencja binarna nie daje się skompresować, ponieważ nie jest możliwy zapis tej sekwencji w innej postaci. Pakiet ENT zwraca procentową wartość kompresji, która dla ciągu pseudolosowego o dobrych parametrach statystycznych (i wysokiej entropii) powinna wynosić %. 3. Test χ 2. Test χ 2 jest czuły na wszelkie błędy występujące w sekwencji pseudolosowej [EN]. W przypadku pakietu ENT jest on obliczany dla wejściowej sekwencji pseudolosowej i wyrażony jako dwie liczby: wartość bezwzględną oraz wartość procentową. Wartość procentowa określa jak często w pełni losowa sekwencja będzie przekraczać obliczoną wartość bezwzględną. Wartość procentowa jest interpretowana jako poziom podejrzenia, że wejściowa sekwencja posiada defekty statystyczne. Wartość procentowa mniejsza od 1% i większa od 99% oznacza, że wejściowa sekwencja na pewno nie ma cech sygnału losowego. Dla wartości 1%-5% oraz 99%- 95% sekwencja jest podejrzana. Wejściową sekwencję pseudolosową można uznać za sygnał losowy jeśli wartość procentowa testu χ 2 zawiera się w przedziale 15%-85%. To kryterium może być ostrzejsze, jeśli przed generatorem sekwencji pseudolosowej stawiane są wysokie wymagania statystyczne. [EN], [ZA], [RA1]. 98

103 4. Średnia arytmetyczna. Wynik tego testu powstaje poprzez sumowanie wartości wszystkich bajtów pliku i podzieleniu uzyskanej sumy przez rozmiar pliku. Wartość średniej arytmetycznej w pełni losowego ciągu bajtów wynosi 127,5. Możliwe jest przełączenie pracy testu średniej arytmetycznej na ciąg binarny. Wtedy wartość średnia dla idealnie losowej sekwencji wejściowej wynosi,5. 5. Obliczanie wartości liczby π metodą Monte Carlo. Wejściowy ciąg pseudolosowy zostaje podzielony na 6-bitowe współrzędne geometryczne x i y punktów p(x,y) leżących na płaszczyźnie z kartezjańskim układem współrzędnych. Punkty te leżą na zewnątrz i wewnątrz okręgu jednostkowego. Wartość liczby π i błąd jej wyznaczania są określone na podstawie oszacowania liczby punktów leżących wewnątrz okręgu. 6. Autokorelacja. Dokonywany jest pomiar funkcji autokorelacji wejściowego ciągu pseudolosowego. Dla idealnego ciągu losowego wartość funkcji autokorelacji powinna wynosić. Dodatkowo program umożliwia, poprzez zastosowanie przełączników w linii poleceń: 1. Pokazanie częstości występowania każdego bajtu lub bitu, co umożliwia łatwe tworzenie histogramów analizowanej sekwencji pseudolosowej, 2. Potraktowanie pliku wejściowego jako pliku zawierającego sekwencję binarną. Wtedy każdy z testów wykonuje obliczenia na danych binarnych. Wyniki testów również ograniczone są do wartości <;1> poza testem Monte Carlo dla liczby π oraz testem χ Wyprowadzenie danych do formatu CSV ułatwiającego dalszą analizę danych. Pakiet ENT jest jednym z najszybszych i najwygodniejszych pakietów testów statystycznych. Ze względu na ograniczoną liczbę testów oraz brak złożonych testów statystycznych jest stosowany do szybkiego prototypowania generatorów sekwencji pseudolosowych. Do weryfikacji konstrukcji generatorów pseudololosowych pakiet ENT powinien być wsparty analizą przeprowadzoną przez inne pakiety statystyczne takie jak DIEHARD lub pakiet testów NIST. 6.7 Podsumowanie W rozdziale dokonano przeglądu metod analizy sekwencji losowych i pseudolosowych. Przedstawiono elementy statystyki klasycznej, które mogą być stosowane do analizy. Uzasadniono użycie każdej z opisanych metod oraz interpretację uzyskiwanych tymi metodami wyników. Następnie omówiono zaawansowane algorytmy przetwarzania sygnałów, takie jak analiza FFT oraz kompresja oraz ich zastosowanie w testowaniu sekwencji pseudolosowych. Znaczną część rozdziału poświęcono opisowi trzech pakietów testów statystycznych: DIEHARD, NIST STS oraz ENT. Omówiono metodę interpretacji wyników oraz zalety i wady wykorzystanych pakietów testów statystycznych. Wskazano na źródła błędów w sekwencjach pseudolosowych oraz ich wpływ na wyniki analizy statystycznej. Przeprowadzone rozważania zilustrowano wieloma przykładami. 99

104 7. Badania statystyczne ciągów pseudolosowych 7.1. Wstęp W tym rozdziale dokonano analizy sekwencji pseudolosowych generowanych przez generatory zbudowane na rejestrach przesuwnych. Posłużono się zarówno metodami statystyki klasycznej, testami indywidualnymi oraz trzema pakietami testów statystycznych. Wszystkie przeanalizowane sekwencje pseudolosowe zostały wygenerowane za pomocą programowych implementacji generatorów LFSR, NLFSR oraz DLFSR. Dodatkowo, w celach porównawczych dokonano analizy ciągów sprzętowego generatora sygnałów losowych znanego z literatury [LM] Metody statystyki klasycznej Ciągi pseudolosowe mogą być analizowane narzędziami statystyki klasycznej. Wykorzystywane w pracy metody statystyczne, ich opis oraz metody interpretacji wyników zostały opisane w rozdziale 6. Wartość średnia oraz wariancja Wyniki analizy statystycznej sekwencji generatorów LFSR, NLFSR oraz DLFSR zebrano w tabeli 7.1. Przebadane ciągi pseudolosowe zostały wygenerowane przez 8-bitowe implementacje generatorów, które zapewniają maksymalną długość sekwencji wyjściowej. Do analizy wykorzystano sekwencje o 1 krotnie większej długości. W przypadku generatora DLFSR ograniczono się do sekwencji o długości 255 bitów [PG]. Tab 7.1. Wartość oczekiwana oraz wariancja sekwencji generatorów LFSR, NLFSR oraz DLFSR. Typ generatora E(s) Var(s) LFSR,52,251 NLFSR,52,251 DLFSR,4963,25 Generator LFSR opisany jest następującym wielomianem pierwotnym [NW]: 1

105 8 7 6 L ( x) = x + x + x + x + 1. (7.1) Generator NLFSR wykorzystuje funkcję logiczną odczepów rejestru przesuwnego określoną zależnością [DE2]: y = x x x ( x x ). (7.2) Generator NLFSR z funkcją sprzężenia zwrotnego postaci (7.2) generuje sekwencję o długości: l = 2 N 1 = 255. (7.3) Generator DLFSR został opisany dwoma wielomianami pierwotnymi: L ( x) = x + x + x + x + 1, (7.4) L ( x) = x + x + x + x + 1. (7.5) Blok sprzężenia zwrotnego generatora DLFSR jest opisany wielomianem (7.4), gdy cykl zegara modulo 31 jest różny od zera. Gdy cykl zegara modulo 31 jest równy zeru blok ten opisany jest wielomianem (7.5). Wartość oczekiwana sekwencji binarnych wszystkich trzech typów generatorów jest różna od,5. Jest to związane z ograniczeniem maksymalnej długości sekwencji pseudolosowej wynikającej ze stanu zabronionego dla generatora LFSR oraz braku jednego stanu rejestru przesuwnego dla generatora NLFSR. W przypadku generatora DLFSR występuje nieco większa rozbieżność od idealnej wartości oczekiwanej równej,5. Związane jest to z zaburzeniem rozkładu częstości wartości generowanych przez generator, co zostanie pokazane w dalszej części pracy. Wariancja dla generatorów LFSR oraz NLFSR jest prawie równa,25 i wynosi,251. Błąd,1 związany jest z brakiem jednego ze stanów rejestru przesuwnego wynikającego z zasady działania generatora (dla generatora LFSR) lub funkcji sprzężenia zwrotnego (dla generatora NLFSR). W przypadku generatora DLFSR wartość wariancji jest równa,25. Z porównania obu mierzonych wielkości dla każdego typu generatora wynikają następujące wnioski: 1. Brak niektórych stanów rejestru przesuwnego, wynikający z stanu zabronionego lub sposobu działania pętli sprzężenia zwrotnego, powoduje zaburzenie wartości oczekiwanej. W stosunku do całej sekwencji oznacza to zaburzenie w liczbie bitów i 1 występujących w sekwencji. W rozważanych przypadkach liczba bitów 1 była większa od liczby bitów. 2. Wariancja, będąca miarą zmienności, dla sekwencji z nierównomiernością bitów i 1 jest różna od,25 (wartość dla sekwencji w której występuje równowaga bitów). 3. Generatory LFSR oraz NLFSR (nie generujące sekwencji de Brujina) nie posiadają tej samej liczby bitów oraz 1, wiec ich wariancja oraz wartość oczekiwana zawsze będą różne od wartości,25 oraz,5. 11

106 4. Generatory DLFSR również posiadają stan zabroniony, ponieważ blok sprzężenia zwrotnego zawiera funkcje logiczne XOR, ale ze względu na nierównomierny rozkład wartości wariancja sekwencji wyjściowej może przyjmować wartości znacznie bliższe,25 niż w przypadku generatorów LFSR oraz NLFSR. Funkcja autokorelacji sekwencji pseudolosowych generowanych przez generatory z rejestrami przesuwnymi Generatory z rejestrami przesuwnymi generują sekwencje pseudolosowe o skończonej długości, zależnej w głównej mierze od długości rejestru przesuwnego. Dla rozpatrywanych generatorów LFSR, NLFSR, DLFSR wyznaczono funkcję autokorelacji ich sekwencji wyjściowych. Na rysunku 7.1 pokazano funkcję autokorelacji sekwencji 8-bitowego generatora LFSR. Rys Funkcja autokorelacji sekwencji generatora LFSR Dla parametru τ przyjmującego wartość zero lub całkowite wielokrotności okresu (por. postulaty losowości Golomba, rozdz. 6) funkcja ta ma postać rozłącznych słupków. Dla innych wartości parametru τ słupki te zlewają się ze sobą tworząc czerwony pas na rysunku 7.1. Funkcja autokorelacji przyjmuje wartość maksymalną dla wielokrotności długości sekwencji generowanej przez generator LFSR, czyli 255. Sekwencję o takiej samej długości generuje generator NLFSR. Funkcję autokorelacji sekwencji generatora NLFSR pokazano na rysunku 7.2. W przypadku rozważanego generatora występuje duża zależność pomiędzy bitami leżącymi w pobliżu okresu sekwencji, co jest wyraźnie widoczne na rysunku

107 Rys Funkcja autokorelacji sekwencji generatora NLFSR Na rysunku 7.3 pokazano funkcję autokorelacji sekwencji generatora DLFSR. Długość sekwencji generowanej przez generator DLFSR jest równa bitów i dla każdej wielokrotności tej liczby funkcja autokorelacji przyjmuje maksimum wartości. Rys Funkcja autokorelacji sekwencji generatora DLFSR Histogram Za pomocą histogramów przedstawiono rozkład wartości występujących w sekwencji pseudolosowej generowanej przez rozważane typy generatorów pseudolosowych. Sekwencję złożoną z bitów oraz 1 zamieniono na sekwencję liczb 8-bitowych. Długość sekwencji generatorów LFSR oraz NLFSR ustalono na 255 (1 okresów sekwencji). Na rysunku 7.4 pokazano histogram wartości dla generatora LFSR. 13

108 Rys Histogram sekwencji generatora LFSR Na rysunku 7.5 przedstawiono histogram dla sekwencji generowanej przez generator NLFSR. Rys Histogram sekwencji generatora NLFSR Na rysunku 7.6 przedstawiono histogram dla sekwencji o długości 18 słów generowanej przez generator DLFSR. 14

109 Rys Histogram sekwencji generatora DLFSR Histogramy generatorów LFSR i NLFSR zawierają 255 przedziałów klasowych, zawierających wartości {,1} {254,255}. Histogram sekwencji generatora DLFSR, ze względu na czytelność ma dwukrotnie mniej przedziałów klasowych (127), które pokrywają wartości {,2} {253,255}. Rozkład wartości dla sekwencji generatorów LFSR oraz NLFSR jest równomierny, co wynika bezpośrednio z zasady działania obu generatorów, która polega na wygenerowaniu w ciągu jednego okresu sekwencji pseudolosowej wszystkich liczb, które mogą być opisane stanem binarnym rejestru przesuwnego. Generator DLFSR, ze względu na zmienną w czasie strukturę pętli sprzężenia zwrotnego, ma zaburzony rozkład wartości. Rozkład wartości jest zależny od parametrów generatora (m.in. funkcji przełączającej). Podczas procesu projektowania oraz testowania należy tak dobierać funkcję przełączającą aby rozkład wartości poszczególnych słów w sekwencji był możliwie najbardziej równomierny a wyniki testów statystycznych spełniały oczekiwania konstrukcyjne Test statystyczne W tym podrozdziale zostały opisane wyniki badań statystycznych sekwencji generowanych przez generatory LFSR oraz DLFSR oraz dla porównania sekwencji sprzętowego generatora losowego [LM]. Testy zostały przeprowadzone z wykorzystaniem pakietów statystycznych w następującej kolejności: pakiet DIEHARD, pakiet NIST, pakiet ENT. Generator NLFSR nie został poddany analizie z wykorzystaniem testów statystycznych. Jest to spowodowane brakiem wielomianu stopnia 32 (opisującego blok sprzężenia zwrotnego tego generatora), który umożliwiałby implementację programową 32-bitowego generatora NLFSR generującego sekwencje o maksymalnej długości. Uzyskane z 32-bitowego generatora NLFSR sekwencji o maksymalnych długościach umożliwiłoby porównanie ich z sekwencjami generatorów DLFSR oraz LFSR. W chwili obecnej dostępne są wyłącznie 15

110 tabele wielomianów maksymalnego okresu obejmujące wielomiany do stopnia 25 [DE2], [DE3]. Przeprowadzone badania statystyczne wskazują, że 25-bitowy generator NLFSR nie przechodzi żadnego z testów statystycznych omawianych w pracy, został więc pominięty. Każda z analizowanych sekwencji została wygenerowana programowo do pliku. Jeśli nie zaznaczono inaczej każda z analizowanych sekwencji wyjściowych miała długość bajtów. Przyjęto, że długość sekwencji powinna być co najmniej 1 krotnie dłuższa niż minimalna długość sekwencji wynikająca z pakietu DIEHARD. Sugerowano się również spostrzeżeniami autora publikacji [LM]. Współczynnik istotności testu dla pakietów DIEHARD oraz NIST ustalono na α=,1. Wyniki analizy statystycznej przeprowadzonej w pakietach DIEHARD oraz NIST zobrazowano na wykresach. Poziomą linią czerwoną zaznaczono współczynnik istotności testu α. Wyniki testu Kołmogorowa-Smirnowa dla podciągów generowanych w pakiecie DIEHARD oznaczono na wykresach dużym symbolami graficznymi. W przypadku każdego pakietu testów statystycznych wykonano wszystkie testy statystyczne zawarte w danym pakiecie. Pakiet DIEHARD nie pozwala na zmianę ustawień parametrów analizy bez ponownej kompilacji, wiec wykorzystano aplikację dostępną na stronie internetowej [DH]. W przypadku pakietu NIST wykorzystano standardowe ustawienia. W celu wykonania testu DFT zmniejszono zakres analizy sekwencji do 11MB, ponieważ pakiet NIST nie jest w stanie wykonać analizy DFT pliku z sekwencją o objętości 11MB. Wyniki analizy statystycznej pakietu ENT przedstawiono w formie tabeli. W celu ujednolicenia wykresów z danymi wyjściowymi pakietów DIEHARD oraz NIST nazwy testów na wykresach zostały zastąpione numerami. Nazwy testów dla pakietu DIEHARD przedstawiono w tabelach w poprzednim rozdziale w tabeli Badania generatora LFSR Pakiet DIEHARD Przeprowadzono badania statystyczne dwóch 32-bitowych generatorów LFSR. Badania tego typu generatora zostały potraktowane jako odniesienie do badań generatorów DLFSR, które zostały przeprowadzone w dalszej części rozdziału. Na rysunku 7.7 przedstawiono wyniki testów pakietu DIEHARD dla generatora LFSR opisanego wielomianem pierwotnym [NW]: L ( x) = x + x + x + x + 1. (7.6) Rozważany generator nie zdaje następujących testów statystycznych: test numer 3 (test rzędu macierzy 31x31), test numer 4 (test rzędu macierzy 32x32), test numer 15 (test redukowania). Pozostałe testy statystyczne pakietu DIEHARD są spełnione. 16

111 p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Wyniki analizy sekwencji generatora LFSR w pakiecie DIEHARD Na rysunku 7.8 pokazano wyniki testów statystycznych pakietu DIEHARD dla drugiego generatora LFSR opisanego wielomianem pierwotnym [NW]: L ( x) = x + x + x + x + 1. (7.7) Rozważany generator nie spełnia następujących testów statystycznych: test numer 3 (test rzędu macierzy 31x31), test numer 4 (test rzędu macierzy 32x32). W tym przypadku generator opisany wielomianem (7.7) spełnia test numer 15. Wynik testu numer 5 jest w pobliżu prostej określającej współczynnik istotności testu. Podobnie jest w przypadku testu numer 8. Niewielkie rozbieżności w wynikach testów statystycznych wynikają ze znacznie mniejszej długości analizowanej sekwencji w stosunku do maksymalnej sekwencji którą generator jest w stanie wygenerować. W przypadku 32-bitowego generatora LFSR plik z sekwencją wyjściową zajmowałby objętość prawie 4,3Gbit. Analiza takiego pliku byłaby czasochłonna. W praktyce stosuje się mniejsze pliki i na ich podstawie ocenia się parametry generatora pseudolosowego [PG], [ZA], [SR6], [CP2], [RA1]. 17

112 p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Wyniki analizy sekwencji generatora LFSR w pakiecie DIEHARD Pakiet NIST Przeanalizowane w poprzednim podrozdziale generatory LFSR opisane wielomianami (7.6) oraz (7.7) poddano analizie w pakiecie testów statystycznych NIST. Na rysunku 7.9 pokazano wyniki testów statystycznych generatora opisanego wielomianem (7.6) a na rysunku 7.1 generatora opisanego wielomianem (7.7). Oba generatory nie zdają testu numer 12 (test rzędów macierzy) oraz dodatkowo generator opisany wielomianem (7.7) nie zdaje testu numer 9 (test zachodzących na siebie wzorców). Pakiet NIST potwierdził, że rozważane w tym rozdziale generatory LFSR nie zdają testów wykorzystujących analizę rzędu macierzy. Rozbieżność w wynikach testu numer 9 wynika ze znacznie mniejszej długości sekwencji w stosunku do sekwencji maksymalnej i test ten jest zdany dla innych wielomianów pierwotnych jak również innych warunków początkowych generatora LFSR. 18

113 1,9,8,7 p-wartość,6,5,4,3,2, Numer testu Rys Wyniki analizy sekwencji generatora LFSR (wzór 7.6) w pakiecie NIST Rys Wyniki analizy sekwencji generatora LFSR (wzór 7.7) w pakiecie NIST Pakiet ENT Sekwencje obu generatorów LFSR zostały przeanalizowane w pakiecie testów statystycznych ENT. W tabeli 7.2 zebrano wyniki analizy obu sekwencji. Tak jak w przypadku testów w pakietach DIEHARD oraz NIST sekwencje analizowane w pakiecie ENT miały rozmiar 11MB. 19

114 Tab 7.2. Wyniki testów generatorów LFSR w pakiecie ENT. Generator LFSR Generator 1 Generator 2 Entropia 7, , Kompresja % % Rozkład χ 2 /przekroczenia 257,19 / 44,98% 23,8 / 85,94% Średnia arytmetyczna 127, ,4973 Monte Carlo dla π/błąd 3, /,1% 3, /,1% Autokorelacja -,34,11 Z uzyskanych wyników analizy sekwencji generatorów LFSR można wyciągnąć następujące wnioski: Entropia obu ciągów pseudolosowych jest bardzo bliska 8 bitom. Analizowane ciągi nie mogą zostać efektywnie skompresowane. Wartość rozkładu χ 2 oraz wartość przekroczeń obliczonej wartości dla sekwencji idealnie losowej są różne dla obu generatorów. Wynik dla pierwszego generatora jest bliski wynikowi sekwencji w pełni losowej. Sekwencja drugiego generatora (wzór 7.7) jest podejrzana. Wynik przekroczeń jest za wysoki aby uznać, że sekwencja jest w pełni losowa. Wartość średniej arytmetycznej w obu przypadkach jest niewiele niższa niż 127,5 (wartość dla sekwencji w pełni losowej) i nie budzi zastrzeżeń. Podobnie jest z wartością liczby π obliczonej metodą Monte Carlo oraz wartością funkcji autokorelacji. Rozbieżności wyników testów statystycznych związane są z analizą wyłącznie niewielkiego fragmentu jednego okresu (4,3Gbit) sekwencji pseudolosowej o rozmiarze 11MB. Jeżeli w danym fragmencie występuje więcej bitów lub długie sekwencje lub 1 to wyniki testów będą różne. Wpływ na wyniki będzie miał wielomian opisujący funkcję sprzężenia zwrotnego oraz warunek początkowy generatora. Podsumowanie wyników badań generatora LFSR Badania statystyczne sekwencji generatora LFSR wskazują, że sekwencje generatorów LFSR nie zdają testu rzędu macierzy. Istnieje kilka prac dotyczących analizy tego przypadku [KZ], [GM1], [CJ]. Sekwencje generatorów LFSR mogą nie zdawać również testów redukowania oraz testów zachodzących na siebie wzorców. Entropia obu analizowanych sekwencji wyjściowych generatorów LFSR była bliska 8 bitom oraz sekwencje te nie dawały się efektywnie skompresować. Pozostałe wyniki testów statystycznych można uznać za prawidłowe, chociaż wyniki testu Kołmogorowa-Smirnowa dla niektórych testów statystycznych pakietu DIEHARD są umiejscowione w pobliżu poziomu istotności testu statystycznego Badania generatora DLFSR Przebadano dwa 32-bitowe generatory DLFSR opisane wielomianami oraz funkcjami przełączającymi zamieszczonymi w tabeli 7.3. Długość badanych sekwencji wynosiła 11MB. 11

115 Tab 7.3. Parametry generatorów DLFSR Generator DLFSR1 Generator DLFSR2 Funkcja przełączająca (p mod 15)= lub (p mod 63)= (p mod 15)= lub (p mod 64)= Wielomiany sprzężenia zwrotnego L 1 ( x) = x + x + x + x L 2 ( x) = x + x + x + x + 1 Literą p oznaczono numer cyklu zegarowego. Jeżeli spełniony jest jeden z warunków określony wartością funkcji przełączającej to funkcja sprzężenia zwrotnego generatora pracuje z zestawem odczepów określonym wielomianem L 2 (x). W innym przypadku funkcja sprzężenia zwrotnego wykorzystuje odczepy opisane wielomianem L 1 (x). Pakiet DIEHARD Na rysunku 7.11 pokazano wyniki testów statystycznych pakietu DIEHARD generatora DLFSR1. Czerwonymi poziomymi liniami zaznaczono poziom istotności testu równy α=,1. p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Wyniki testów pakietu DIEHARD sekwencji generatora DLFSR1 Generator DLFSR1 spełnia wszystkie testy pakietu DIEHARD. Oznacza to, że sekwencja generatora DLFSR jest statystycznie bardziej zbliżona do idealnej sekwencji losowej niż sekwencje generowane przez generatory LFSR. Wynik testu 2 przedstawionego na rysunku 7.11 może budzić wątpliwości co do poprawnej interpretacji wyniku. Test numer 2 zwraca dwie wartości. Jedna z tych wartości leży poniżej dolnego progu istotności, co pokazano na rysunku Niektóre z pozostałych testów przekraczają jednorazowo linie poziomu istotności testów, lecz ze względu na dużą liczbę wartości zwracanych przez dany test należy uznać, że zdają one dany test [DH]. 111

116 p-wartość,1,9,8,7,6,5,4,3,2, Numer testu Rys Fragment wyników w pobliżu dolnego poziomu istotności testu dla generatora DLFSR1 Na rysunku 7.13 przedstawiono wyniki testów statystycznych drugiego generatora DLFSR DLFSR2. Podobnie jak generator DLFSR1, sekwencja generatora DLFSR2 spełnia wszystkie testy statystyczne pakietu DIEHARD. Wyniki analizy sekwencji generatora DLFSR2 są ponadto lepsze niż sekwencji generatora DLFSR1. Wyniki testu numer 2 mieszczą się pomiędzy liniami określającymi poziom istotności α=,1. Nieco zaniżone w stosunku do sekwencji poprzedniego generatora są wyniki testów 13 oraz 17. Na rysunku 7.14 przedstawiono dolny zakres p-wartości. Testy numer 9, 13 oraz 17 przekraczają dolną linię poziomu istotności. W przypadku testów 9 oraz 13, które zwracają wiele wartości podczas testowania, można uznać, że sekwencja zdaje te testy. W przypadku testu 17, jedna z czterech wartości leży znacznie poniżej linii poziomu istotności. Wynik tego testu jest podejrzany. p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Wyniki testów pakietu DIEHARD sekwencji generatora DLFSR2 112

117 p-wartość,1,9,8,7,6,5,4,3,2, Numer testu Rys Fragment wyników w pobliżu dolnego poziomu istotności testu dla generatora DLFSR2 Pakiet NIST Na rysunku 7.15 przedstawiono wyniki testów statystycznych sekwencji pseudolosowej generatora DLFSR1. 1,9,8,7 p-wartość,6,5,4,3,2, Numer testu Rys Testy pakietu NIST generator DLFSR1 Sekwencja generatora DLFSR1 spełnia wszystkie testy pakietu NIST. Jedna wartość testu numer 8 (test niezachodzących na siebie wzorców) leży poniżej linii określającej poziom istotności testu równy α=,1 rysunek Sekwencja nie zdaje tego testu dla jednego z wzorców generowanych przez pakiet testów statystycznych. W porównaniu do generatora LFSR wartości wyników testu numer 8 były zawsze powyżej poziomu istotności testu statystycznego α=,1. 113

118 p-wartość,1,9,8,7,6,5,4,3,2, Numer testu Rys Testy pakietu NIST, dolny fragment wyników dotyczy generatora DLFSR1 Na rysunku 7.17 przedstawiono wyniki testów statystycznych sekwencji generowanej przez generator DLFSR2. Tak jak w poprzednim przypadku sekwencja generatora DLFSR2 zdaje wszystkie testy statystyczne pakietu NIST. Wątpliwości może budzić wynik testu numer 8 (test niezachodzących na siebie wzorców). Jedna z wartości uzyskiwana w wyniku testowania leży w pobliżu prostej określającej poziom istotności α=,1. Na rysunku 7.18 przedstawiono dolny fragment wyników pakietu NIST. Widać, że najniższa wartość testu nr 8 leży poniżej linii poziomu istotności testu, jej dokładna wartość to,9623. Wynik tego testu należy uznać za lepszy niż w przypadku sekwencji generatora DLFSR1 a o akceptacji konstrukcji generatora DLFSR, ze zmierzonymi parametrami statystycznymi, powinien zadecydować konstruktor. p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Testy pakietu NIST generator DLFSR2 114

119 p-wartość,2,18,16,14,12,1,8,6,4, Numer testu Rys Testy pakietu NIST, dolny fragment wyników dotyczy generatora DLFSR2 Pakiet ENT W tabeli 7.4 zebrano wyniki testów pakietu ENT. Tab 7.4 Wyniki testów pakietu ENT generatorów DLFSR1 oraz DLFSR2. Rodzaj testu Generator DLFSR1 Generator DLFSR2 Entropia 7, , Kompresja % % Rozkład χ 2 /przekroczenia 299,3 / 2,94% 227,7 / 88,91% Średnia arytmetyczna 127, ,4999 Monte Carlo dla π/błąd 3, /,1% 3, /,% Autokorelacja,18,23 Z danych umieszczonych w tabeli 7.4 oraz z danych dotyczących badania generatorów LFSR w pakiecie ENT (por. tabela 7.2) można wyciągnąć następujące wnioski. 1. Wyniki analizy obu sekwencji wygenerowanych przez generatory DLFSR mają lepsze parametry dotyczące równomiernego rozkładu bitów i 1 (pierwszy postulat losowości Golomba), przez co średnia arytmetyczna jest znacznie bliższa średniej idealnej sekwencji losowej, równej 127,5. 2. Sekwencje generatorów DLFSR mają, podobnie jak generatory LFSR, entropię bliską 8 bitom oraz brak możliwości ich efektywnej kompresji. 3. Błąd wyznaczania wartości π metodą Monte Carlo jest dla generatora DLFSR2 mniejszy niż dla generatorów LFSR. 4. Funkcje autokorelacji obu generatorów DLFSR są większe od najniższej funkcji autokorelacji uzyskanej przy testowaniu generatorów LFSR. 5. Wartość testu χ 2 oraz jego przekroczenia świadczą, że testowane sekwencje generatorów DLFSR nie są zadowalająco losowe. Obie uzyskane wartości testu oraz przekroczeń są za wysokie (test generatora DLFSR1 i przekroczenia wartości testu generatora DLFSR2) lub za niskie (przekroczenia testu generatora DLFSR1 oraz wartość testu generatora DLFSR2). 115

120 Podsumowanie badań generatora DLFSR Sekwencje generatorów DLFSR spełniają wszystkie testy statystyczne omawiane w pracy. Kilka wyników testów statystycznych może nie dawać jednoznacznej odpowiedzi czy test został spełniony czy nie. W każdym przypadku wyniki testów statystycznych sekwencji generatorów DLFSR są lepsze od generatorów LFSR Sprzętowy generator losowy W celu porównania parametrów sekwencji generatorów LFSR oraz DLFSR z generatorem sygnału losowego dokonano badania sekwencji losowych sprzętowego generatora ciągów losowych [LM]. Zestaw sekwencji wygenerowanych przez ten generator został zamieszczony w formie płyty DVD wraz z pracą [LM]. Na płycie DVD zamieszczono trzy sekwencje losowe o rozmiarze 1GB. Rozmiar pliku z sekwencją jest za duży do analizy w pakietach testów statystycznych i w celu ujednolicenia rozmiaru sekwencji dokonano wycięcia z pliku 1GB początkowych bajtów sekwencji o rozmiarze bajtów (taką samą długość miały sekwencje generatorów LFSR oraz DLFSR). Operację uzyskania nowego pliku sekwencji przeprowadzono w specjalnie napisanym do tego celu programie. Program w żaden sposób nie ingerował w sekwencję, tzn. nie przeprowadzał na niej żadnej operacji poza wycięciem i zapisaniem na dysku początkowych bajtów sekwencji. Z trzech dostępnych na płycie DVD sekwencji wykorzystano dwie pierwsze, z których uzyskano dwa pliki, które następnie poddano analizie, analogicznie jak to miało miejsce w przypadku generatorów LFSR i DLFSR. Pakiet DIEHARD Na rysunku 7.19 pokazano wyniki analizy statystycznej pierwszej sekwencji losowej w pakiecie DIEHARD. Pierwsza sekwencja generatora losowego zdaje praktycznie wszystkie testy statystyczne pakietu DIEHARD. Pewne podejrzenia może budzić wynik testu numer 2 (test nakładających się 5 liczb), którego górny wskaźnik leży na poziomie,9934 (górna linia poziomu istotności to,99). p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Sprzętowy generator sekwencji losowych sekwencja

121 Na rysunku 7.2 pokazano wyniki analizy statystycznej drugiej sekwencji losowej generatora sprzętowego. Druga sekwencja losowa zdaje wszystkie testy pakietu DIEHARD. Poziomy wskaźników testu numer 2, który w przypadku pierwszej sekwencji losowej (por rysunek 7.19) mieścił się powyżej górnego poziomu istotności testu, leżą pomiędzy prostymi określającymi poziom istotności testu. p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Sprzętowy generator sekwencji losowych sekwencja 2. Pakiet NIST Na rysunku 7.21 pokazano wyniki testów statystycznych pierwszej sekwencji losowej a na rysunku 7.22 wyniki testów statystycznych drugiej sekwencji losowej. W obu przypadkach sekwencja losowa uzyskana z generatora [LM] nie zdaje testu pakietu NIST STS numer 9. Jest to test zachodzących na siebie wzorców występujących w sekwencji. W przypadku pakietu DIEHARD i testu zachodzących na siebie wzorców (test nakładających się piątek liczb) poszukiwany fragment sekwencji składał się z 5 bitów. W przypadku pakietu NIST i domyślnych ustawień, a takie zostały wykorzystane, długość poszukiwanego wzorca jest równa 9 bitom. Zasada testowania w obu przypadkach jest taka sama i polega na stwierdzeniu częstości występowania pewnego wzorca (dla pakietu NIST jest to ciąg 9 bitów o wartości 1 ) [RA1]. Zbliżone wyniki testów statystycznych sekwencji losowych pakietu DIEHARD oraz NIST pozwalają na stwierdzenie, że sekwencja generatora [LM] nie zdaje testów tego typu. Pozostałe testy pakietu NIST są zdane. 117

122 p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Sprzętowy generator sekwencji losowych sekwencja 1. p-wartość 1,9,8,7,6,5,4,3,2, Numer testu Rys Sprzętowy generator sekwencji losowych sekwencja

123 Pakiet ENT W tabeli 7.5 pokazano wyniki testów statystycznych pakietu ENT dla obu sekwencji sprzętowego generatora pseudolosowego. Rodzaj testu Sekwencja pierwsza Sekwencja druga Entropia 7, , Kompresja % % Rozkład χ 2 /przekroczenia 238,23 / 75,29% 245,98 / 64,61% Średnia arytmetyczna 127, ,4967 Monte Carlo dla π/błąd 3, /,2% 3, /,3% Autokorelacja -,14 -,87 Wyniki dotyczące testów: entropia, kompresja, Monte Carlo dla liczby π, są porównywalne z generatorami DLFSR oraz LFSR. Sekwencje sprzętowego generatora losowego mają dobre wyniki w teście rozkładu χ 2, a wyniki pozostałych testów, głównie średniej arytmetycznej, nie odbiegają od wyników generatorów DLFSR oraz LFSR. Podsumowanie wyników badań generatora sprzętowego Generator opisany w pracy [LM] spełnia większość testów statystycznych omawianych w pracy. Test zachodzących na siebie wzorców pakietu NIST nie został spełniony przez obie sekwencje testowe generatora. Podobnie nie został spełniony test nakładających się piątek liczb pakietu DIEHARD. Wyniki niektórych testów statystycznych pakietu DIEHARD (np. test 2 i test 4) leżą blisko poziomu istotności testu statystycznego Podsumowanie W tym rozdziale dokonano analizy statystycznej ciągów pseudolosowych generowanych przez generatory LFSR, NLFSR, DLFSR oraz jeden typ sprzętowego generatora ciągów losowych [LM]. W tym celu wygenerowano testowe sekwencje pseudolosowe (generatory LFSR, NLFSR oraz DLFSR) lub skorzystano z zamieszczonych przez Autora generatora sprzętowego sekwencji [LM]. Do analizy wykorzystano statystykę matematyczną oraz trzy pakiety testów statystycznych: DIEHARD, NIST STS oraz ENT. Pakiety statystyczne posłużyły do analizy generatorów LFSR, DLFSR oraz generatora sprzętowego. Generator NLFSR, ze względów konstrukcyjnych nie został uwzględniony. Dokonano interpretacji uzyskanych wyników oraz porównano ze sobą poszczególne generatory. Z porównania tego wynikają następujące wnioski. Pakiet testów statystycznych DIEHARD Sekwencje generatorów LFSR nie zdają trzech testów statystycznych pakietu DIEHARD: testów redukowania oraz dwóch testów rzędu macierzy binarnych. Sekwencje generatorów DLFSR spełniają wszystkie testy pakietu DIEHARD. Sekwencje losowe sprzętowego generatora losowego [LM] spełniają z zastrzeżeniami wszystkie testy pakietu DIEHARD. 119

124 Pakiet testów statystycznych NIST Sekwencja generatora LFSR nie zdaje testów rzędu macierzy binarnych, co zostało także potwierdzone w pakiecie testów statystycznych DIEHARD. Generator DLFSR zdaje wszystkie testy statystyczne pakietu NIST z wyjątkiem zastrzeżenia dotyczącego testu nr 8, którego jedna z wartości przekracza linię poziomu istotności testu statystycznego. Sekwencja generatora sprzętowego nie zdaje jednego testu pakietu NIST (test nr 9). Pakiet testów statystycznych ENT Wyniki analizy sekwencji generatora LFSR wskazują na silną zależność testu χ 2 od wybranego fragmentu sekwencji generatora. Wartość oczekiwana sekwencji jest najgorsza z przebadanych generatorów. Sekwencja generatora DLFSR ma najgorszy wynik testu χ 2 z pośród testowanych generatorów. Wartość oczekiwana sekwencji generatora DLFSR jest bliższa wartości idealnej sekwencji losowej a test Monte Carlo dla liczby π jest lepszy od generatora LFSR oraz generatora sprzętowego. Sekwencja generatora sprzętowego ma wartość oczekiwaną porównywalną z wartością oczekiwaną sekwencji generatora DLFSR. Cechuje się również najlepszym wynikiem testu χ 2. Natomiast test Monte Carlo dla liczby π dla obu sekwencji generatora sprzętowego jest najgorszy z wszystkich testowanych sekwencji. Z analizy uzyskanych wyników można wywnioskować, że najlepsze parametry statystyczne mają sekwencje generatorów DLFSR. 12

125 8. Wybrane zastosowania generatorów DLFSR 8.1. Wstęp W tym rozdziale opisano przykładowe zastosowania generatorów ciągów pseudolosowych z dynamicznym liniowym sprzężeniem zwrotnym DLFSR. Skupiono się na praktycznych zastosowaniach mogących być częścią składową innych, większych systemów telekomunikacyjnych lub informatycznych Generator szumu białego Generatory szumu białego znajdują zastosowanie głównie w układach pomiarowych. Stosując odpowiednią filtrację szumu białego otrzymuje się inne rodzaje szumów stosowane w układach pomiarowych audio. W postaci dyskretnej szumy, czyli sekwencje próbek o losowych wartościach, znajdują zastosowanie w układach modulacji z rozpraszaniem widma czy też w kryptografii [MR], [SB], [CL], [DE], [WK2]. Generacja szumu w formie przebiegu analogowego wykorzystuje często zjawisko szumu śrutowego półprzewodników. Szum taki można uznać za w pełni losowy, gdyż korzysta ze zjawisk zachodzących w przyrodzie. W układach cyfrowych generacja w pełni losowych sekwencji jest bardzo trudna [PS], [SB], dlatego w praktyce stosuje się pewne algorytmy generacji sekwencji pseudolosowych [KZ], [GS1], [SB], [PS]. Ciąg generowanych przez wybrany algorytm liczb (próbek) wyjściowych może ulec dalszemu przetworzeniu np. poprzez przetwornik cyfrowo-analogowy, uzyskując w ten sposób sygnał analogowy pseudo szum. Przykładowe rozwiązania takich układów opisano w pracach [WJ2] oraz [DF]. Zaproponowane w tych pracach układy cechują się wykorzystaniem rejestrów przesuwnych z liniowym sprzężeniem zwrotnym. Układy te wykorzystują rejestry ze stałym w czasie wielomianem sprzężenia zwrotnego i wymagają długich rejestrów w celu uzyskania możliwie długiej sekwencji generowanych liczb. Zaprezentowany układ generatora jest znacznie prostszy w realizacji. Układ do generacji szumu wykorzystuje programową implementację czterobitowego generatora DLFSR. Przetwornik cyfrowo-analogowy przekształca liczby pseudolosowe generowane przez algorytm generatora DLFSR na sygnał analogowy. Układ może być wykorzystany w laboratorium jako uniwersalny generator szumu białego. Funkcja przełączająca zastosowana w układzie została dobrana doświadczalnie. Generator DLFSR opisany jest dwoma wielomianami oraz funkcją przełączającą. 121

126 Wielomiany oraz funkcję przełączającą określającą z którym wielomianem pracuje rejestr przesuwny opisano zależnościami (8.1). L1 ( x) = x L2 ( x) = x x + 1 dla p mod[ p mod 16] > + x dla p mod[16] = oraz p mod[ p mod 16] =, (8.1) gdzie: p numer cyklu sygnału zegarowego. Zmiany wielomianu sprzężenia zwrotnego układu pokazano w tabeli 8.1. Tab. 8.1 Tabela cykli pracy układu generatora. p p mod Wielomian: L 2 (x) L 2 (x) L 1 (x) L 2 (x) L 1 (x) L 1 (x) L 1 (x) L 2 (x) L 1 (x) L 1 (x) L 1 (x) L 1 (x) L 1 (x) L 1 (x) L 1 (x) L 2 (x) W wyniku przełączania bloku sprzężenia zwrotnego układ można rozbić na dwie struktury, pracujące w sposób określony przez funkcję przełączającą. Struktury te przedstawiono na rysunku 8.1. Układ z rysunku 8.1a odpowiada wielomianowi sprzężenia zwrotnego równemu: 4 L ( x) = x + x + 1. (8.2) Na rysunku 8.1b przedstawiono generator LFSR opisany wielomianem: 4 3 L ( x) = x + x + 1. (8.3) W takcie przełączania wielomianu zawartość rejestru przesuwnego nie ulega zmianie. Rys Struktury pracy generatora DLFSR Algorytm pracy generatora DLFSR Algorytm napisano w języku C w środowisku WINAVR. Algorytm wygląda następująco: p++; //zwiększ zmienną p (p jako zmienna licznikowa) l=p%16; // l równe wartości p modulo

127 x=(((rej&b1))^((rej&b1)>>3)); //x bit sprzężenia przepisywany na początek rejestru(msb), sprzężenie XOR z wyjścia 1 i 4 rejestru if (l!=) //jeśli l różne od zera (nie można dzielić przez zero (modulo ) if ((p % l)==) x=(((rej&b1))^((rej&b1)>>2)); //oraz t modulo l równe zero to x jest brane jako XOR wyjść 1 oraz 2 rejestru. Algorytm generatora DLFSR znajduje się w fragmencie odpowiedzialnym za obsługę przerwania licznika T, który jest jednym z trzech liczników wbudowanych w mikroprocesor ATMEGA16. Układ na bieżąco liczy wartość p modulo 16, gdzie zmienna p jest zmienną licznikową, zwiększaną o jeden przy każdym przepełnieniu licznika T (zgłoszeniu przerwania). Wartość 16 została dobrana doświadczalnie; szukano takiej wartości tej liczby aby długość generowanej sekwencji była możliwie największa, a widmo amplitudowe generowanego sygnału najbardziej zbliżone do widma szumu białego. W zależności od wartości zmiennej l układ wybiera jeden z wielomianów sprzężenia (8.2) lub (8.3). Fizyczna realizacja generatora Układ został skonstruowany na płytce uruchomieniowej zawierającej zarówno przetwornik ADC jak i DAC oraz mikroprocesor AVR ATMEGA16 (por. załącznik C). Dodatkowo na płytce znajduje się układ taktujący z kwarcowym generatorem wzorcowym, filtr dolnoprzepustowy drugiego rzędu oraz układy stabilizacji napięcia. Schemat blokowy generatora pokazano na rysunku 8.2. Sygnał taktujący 46875Hz pochodzi ze wspomnianego wcześniej układu taktującego. Układ taktujący składa się z generatora kwarcowego 12MHz oraz licznika binarnego, który dzieli częstotliwość generatora przez 256, co daje 46875Hz. Na wyjściu przetwornika cyfrowo analogowego znajduje się filtr dolnoprzepustowy drugiego rzędu. Układ wykorzystuje tylko wyjście równoległe programowego rejestru generatora DLFSR, które jest bezpośrednio wpięte pod linię danych przetwornika cyfrowo-analogowego. Przebieg sygnału na wyjściu generatora pokazano na rysunku 8.3. Widmo amplitudowe sygnału wyjściowego pokazano na rysunku 8.4. Zaprojektowany i skonstruowany generator charakteryzuje się znacznie lepszym widmem niż podobny układ [DF]. Nierównomierność charakterystyki w zakresie od ok. 1kHz do ok. 7,5kHz nie przekracza 5dB. 123

128 Rys Schemat układu modelowego Rys Przebieg czasowy generowanego sygnału Rys Widmo generowanego sygnału Podsumowanie Opracowany i wykonany generator szumu białego jest bardzo prostym układem mikroprocesorowym z zewnętrznym przetwornikiem DAC. Generator wykorzystuje 4-bitowy generator DLFSR, który dzięki dynamicznej zmianie wielomianu sprzężenia zwrotnego umożliwia generację sygnału szumu białego. Jakość uzyskiwanego sygnału jest porównywalna z prostymi generatorami analogowymi oraz z generatorami cyfrowymi o znacznie większej długości rejestru przesuwnego, pracującego ze statyczną pętlą sprzężenia zwrotnego. 124

129 8.3. System transmisji danych z widmem rozproszonym DSSS Metoda DSSS jest jedną z technik rozpraszania widma. Zajmuje ona znaczącą pozycję w systemach telekomunikacyjnych i jest podstawą systemów takich jak UMTS, GPS czy sieci WLAN [WK1], [WK2], [GS2]. Schemat podstawowego układu rozpraszania widma pokazano na rysunku 8.5. Sygnał informacyjny m(t) ulega przemnożeniu przez sekwencję rozpraszającą r(t). Sygnał wyjściowy s(t) jest sygnałem szerokopasmowym. W odbiorniku przebiega proces odwrotny do procesu rozpraszania widma. Sygnał s(t) zostaje wymnożony przez sekwencję rozpraszającą p(t). Jeśli obie sekwencje r(t) oraz p(t) będą identyczne, to sygnał wyjściowy demodulatora będzie odpowiadał nadanemu sygnałowi m(t). Rys System telekomunikacyjny z bezpośrednim rozpraszaniem widma Proponowane rozwiązanie układowe, zrealizowane z wykorzystaniem układu FPGA, służące do transmisji danych w paśmie podstawowym z widmem rozproszonym, pokazano na rysunku 8.6. Proponowany układ składa się z następujących bloków: a) dwóch generatorów DLFSR służących do rozpraszania (xlfsr) i skupiania (x1lfsr) widma sygnału nadawanego i odbieranego, b) dwóch bramek XOR pracujących jako modulator (XOR1) i demodulator (XOR2), c) toru synchronizacji zegarów generatorów xlfsr i x1lfsr, d) układu zegarowego 27MHz, taktującego wejście p1 (Clock). Rys Schemat układu transmisji danych w systemie DSSS 125

130 Generator DLFSR składa się z 8-bitowego rejestru przesuwnego, wejść cyfrowych: reset, sygnału zegarowego, zezwolenia na pracę w trybie dynamicznej zmiany wielomianu funkcji sprzężenia zwrotnego oraz 8-bitowej magistrali ustalającej warunek początkowy rejestru. Każde z wejść jest zsynchronizowane z sygnałem zegarowym CLOCK. Stanem aktywnym wszystkich wejść (poza wejściem reset, które aktywne jest w stanie niskim) jest stan wysoki. Generator posiada wyjście bitowe oraz 8-bitową magistralę odzwierciedlającą stan wszystkich bitów rejestru. Stan niski na wejściu dlfsr przełącza generator w tryb pracy z jednym wielomianem. W stanie aktywnym wejścia dlfsr generator pracuje w trybie dynamicznego przełączania wielomianów funkcji sprzężenia zwrotnego i korzysta z następujących wielomianów pierwotnych [WR]: y = x + x + x + x + 1, (8.4) y = x + x + x + x + 1, (8.5) y = x + x + x + x + x + x + 1. (8.6) Każdy z tych wielomianów pracuje zgodnie z następującym algorytmem. Jeśli numer cyklu zegara modulo 256 jest pomiędzy wartością 64 i 128 to ustawiany jest wielomian (8.5). Jeśli wielomian (8.5) został ustawiony od 64 do 128 razy to ustawiany jest wielomian (8.6). W każdym innym przypadku ustawiany jest wielomian (8.4). Numer cyklu zegara zliczany jest przez zmienną licznik. Ilość ustawień wielomianu (8.5) zliczana jest przez zmienną licznik1. Obie zmienne są zmiennymi modulo 255. Widmo sygnału wyjściowego generatorów DLFSR będących elementami składowymi systemu pokazano na rysunku 8.7. Rys Widmo sekwencji wyjściowej zastosowanych generatorów DLFSR. Bloki generatorów DLFSR zostały napisane w języku VHDL w środowisku ISE WEBPACK. Kod źródłowy generatora pokazano na listingu

131 Listing 1 kod VHDL generatora DLFSR Do poprawnej pracy generatorów wymagane jest wprowadzenie stanu początkowego poprzez wyprowadzoną magistralę lub bezpośrednio w programie. W rozważanym układzie warunek początkowy został ustalony w kodzie generatora i wynosi xff. Jako modulatory (elementy rozpraszające/skupiające widmo nadawanego sygnału) pracują bramki XOR. Jeżeli generatory Gen1 oraz Gen2 taktowane są zsynchronizowanym sygnałem zegarowym, posiadają te same warunki początkowe i ten sam zestaw wielomianów opisujących funkcję sprzężenia zwrotnego wraz z takim samym algorytmem ich przełączania to sygnał wejściowy m(t) zostanie prawidłowo odebrany po stronie odbiornika. Każda różnica w częstotliwości taktowania, warunkach początkowych, zestawie wielomianów i algorytmie ich przełączania spowoduje pojawienie się błędów transmisji. W tej sytuacji demodulator na wyjściu będzie generował wysokoczęstotliwościowy sygnał rozpraszający nie będący w żaden sposób skorelowany z sygnałem m(t). Schemat pokazany na rysunku 8.6 został zaimplementowany w strukturze układu FPGA Spartan 3 [XL], który jest częścią uruchomieniową zestawu ZL1PLD [BT1] oraz ZL9PLD [BT2]. Kanał transmisyjny łączący nadajnik i odbiornik to odcinek,2m przewodu. Wpływ obwodu masy pomiędzy modulatorem a demodulatorem może zostać pominięty ze względu na jej znikomą długość. W układzie nie testowano wpływu zakłóceń wnikających do kanału transmisyjnego. 127

132 Transmisja przy zgodnych warunkach początkowych rejestrów Przeprowadzono transmisję sygnału m(t) w formie fali prostokątnej 2MHz w standardzie TTL. Oba generatory miały tę samą wartość początkową. Na rysunku 8.8 pokazano: a) przebieg górny - wyjście układu decyzyjnego m (t), b) przebieg środkowy - sygnał informacyjny m(t), c) przebieg dolny - sygnał rxd. Rys Sygnały demodulatora i układu decyzyjnego Sygnał układu decyzyjnego został obliczony cyfrowo w oscyloskopie. Algorytm sprawdzał znak sygnału rxd i zwracał +1V gdy sygnał rxd był dodatni lub -1V gdy sygnał rxd był ujemny. Sygnały m(t) oraz rxd są względem siebie zanegowane. Jest to efekt występowania inwertera INV na wejściu m(t). Inwerter ten był używany do zapewnienia poprawnej fazy sygnału interfejsu RS232, który był przesyłany przez układ pokazany na rysunku 8.6. Transmisja przy różnych warunkach początkowych rejestrów Przeprowadzono transmisję sygnału m(t) w formie fali prostokątnej 2MHz w standardzie TTL. Oba generatory miały różną wartość początkową: generator: xlfsr x1 a generator: x1lfsr x41. Na rysunku 8.9 pokazano: a) przebieg górny - wyjście układu decyzyjnego m (t), b) przebieg środkowy - sygnał informacyjny m(t), c) przebieg dolny - sygnał rxd. 128

133 Rys Sygnał demodulatora oraz układu decyzyjnego Na wyjściu układu decyzyjnego występuje fala prostokątna nieskorelowana w żaden sposób z sygnałem nadawanym, mająca szerokie widmo (por. rys. 8.7) Na podstawie przebiegu czasowego nie jest możliwe odtworzenie sygnału m(t). Podsumowanie Zaprezentowany system transmisji danych w paśmie podstawowym wykorzystuje implementację generatorów DLFSR w układzie FPGA. Pokazano schematy ideowe zaprezentowanego systemu oraz kod źródłowy implementacji generatorów DLFSR. Przeprowadzono próbną transmisję sygnału prostokątnego dla zgodnych warunków początkowych nadajnika i odbiornika jak również dla niezgodnych warunków początkowych. W przypadku zgodnych warunków początkowych system pozwalał na transmisję danych podanych na jego wejście. Dla niezgodnych warunków początkowych na wyjściu demodulatora uzyskano sygnał szerokopasmowy nie będący aproksymacją sygnału informacyjnego. Dla obu przypadków pokazano oscylogramy przebiegów wejściowych oraz wyjściowych Modulator AM z pseudolosowym sygnałem modulującym Modulacja amplitudy należy do najprostszych rodzajów modulacji wykorzystywanych w technice. Znanych jest kilka rodzajów tej modulacji [BZ], [KL]. Najczęściej rozpatruje się przypadek modulacji monoharmonicznej fali nośnej sinusoidalnym sygnałem modulującym [SJ]. Efektem tej modulacji jest przesunięcie widma sygnału modulującego w otoczenie częstotliwości fali nośnej. W pracy [SR2] rozpatrzono problem modulacji amplitudy monoharmonicznej fali nośnej sygnałem pseudolosowym, w efekcie widmo sygnału 129

134 pseudolosowego zostaje przesunięte w zakres częstotliwości fali nośnej [KL]. Jednym z możliwych zastosowań rozpatrywanego procesu modulacji jest możliwość zagłuszania transmisji w wybranym zakresie częstotliwości kanału transmisyjnego [SM]. W porównaniu z innymi metodami zagłuszania transmisji [CS] zaproponowana metoda jest relatywnie prosta. W pracy zaproponowano układ realizujący proces modulacji i zbadano doświadczalnie możliwość zagłuszania transmisji w zakresie radiofonii FM-CCIR. Modulacja AM polega na zmianie amplitudy fali nośnej w takt sygnału modulującego [SJ]. Przyjęto, że sygnałem modulującym jest sygnał pseudolosowy [SR2], [KL]. Wszelkie rozważania teoretyczne dla rozpatrywanej modulacji AM przeprowadza się z wykorzystaniem monoharmonicznego sygnału modulującego, którego widmo składa się z jednego prążka o częstotliwości f i. Sygnał taki opisany jest wtedy wzorami: s AM ( t) = A(1 + x( t)) cos(2π f t), (8.7) c x( t) = B cos(2π f t). (8.8) Stąd otrzymuje się wzór na postać czasową sygnału zmodulowanego amplitudowo sygnałem monoharmonicznym: s AB ( t) = Acos(2π f ct) + (cos(2π ( f c fi ) t) + cos(2π ( f c fi ) t)). (8.9) 2 AM + Przykładowe widmo sygnału (8.9) pokazano na rysunku 8.1. i Rys Widmo sygnału zmodulowanego amplitudowo sygnałem sinusoidalnym Widmo to składa się z dwóch wstęg bocznych oraz fali nośnej. Zastępując sygnał monoharmoniczny (8.8) sygnałem pseudolosowym [KL] o widmie pokazanym na rysunku 8.11 otrzymuje się widmo zawierające położone wokół częstotliwości fali nośnej widma sygnału pseudolosowego rysunek

135 Rys Widmo sygnału pseudolosowego Rys Widmo sygnału AM z pseudolosowym sygnałem modulującym Jeśli sygnał pseudolosowy przed modulatorem zostanie poddany filtracji dolnoprzepustowej w celu ograniczenia jego pasma do wycinka będącego najbliższą aproksymacją widma szumu białego, to po modulacji AM-DSB widmo sygnału wyjściowego modulatora także będzie ograniczone. Pasmo -3dB zajmowane przez tak zmodulowany sygnał jest równe dwukrotnej częstotliwości odcięcia filtru: B = 2 f g = 2B w. (8.1) Na rysunku 8.13 pokazano zakładany wpływ filtru na widmo sekwencji pseudolosowej. 131

136 Rys Oczekiwana charakterystyka filtru dolnoprzepustowego Sygnał o widmie uzyskanym w wyniku filtracji poprzez charakterystykę filtru pokazaną na rysunku 8.13 może zostać przesunięty w dowolny zakres częstotliwości poprzez zmianę częstotliwości fali nośnej modulatora (w praktyce ograniczeniem będzie maksymalna częstotliwość pracy modulatora). Sygnał o paśmie (8.1) emitowany do kanału transmisyjnego pozwala na zagłuszenie odbywającej się w tym kanale transmisji. Wycinek pasma widma sygnału transmitowanego zostaje zagłuszony a stosunek sygnał/szum w kanale ulega znacznemu pogorszeniu. Efektywność zagłuszenia jest zależna od mocy emitowanego sygnału wyjściowego modulatora oraz od selektywności odbiornika [SM]. Selektywność układu odbiorczego ma wpływ na poprawny odbiór sygnału nadawanego w pobliżu innych sygnałów niepożądanych [BZ]. Im większa selektywność odbiornika tym lepiej radzi on sobie z odbiorem sygnałów leżących w pobliżu sygnałów niepożądanych. Jeżeli transmisja będzie się odbywać w paśmie węższym niż pasmo określone wzorem (8.1) to system transmisyjny będzie w stanie poprawnie pracować (transmisja będzie odbywać się pomiędzy prążkami widma sekwencji pseudolosowej por. rys. 8.11). Aby dostępna szerokość pasma pracy zagłuszanego systemu komunikacyjnego była jak najwęższa (co zmniejszy efektywną szybkość transmisji) generowane sekwencje pseudolosowe powinny być możliwie długie. Wtedy odstęp pomiędzy prążkami widma generowanego sygnału będzie mały. Przykładowe zagłuszanie sygnału użytecznego pokazano na rysunku Warto zauważyć, że częstotliwość nośna sygnału użytecznego f s i zakłócającego f j nie muszą się pokrywać. Wystarczy, aby widmo sygnału zakłócającego było szersze niż widmo sygnału użytecznego. Rys Zagłuszanie wycinka widma Na rysunku 8.15 pokazano schemat blokowy modulatora AM z pseudolosowym sygnałem modulującym. 132

137 Rys Schemat blokowy modulatora Układ zaproponowany na rysunku 8.15 został zrealizowany z następujących elementów. a) Generator fali nośnej to układ opisany w pracy [SR5]. b) Generator LFSR został zaimplementowany na układzie FPGA [XL], [BT1], [BT2]. c) Filtr dolnoprzepustowy zrealizowano jako filtr aktywny na wzmacniaczu operacyjnym AD85 [AD]. d) Modulator zrealizowano na układzie SA612 [PH]. Realizacja 8-bitowego generatora LFSR w układzie FPGA Do generacji sygnału modulującego wykorzystano 8-bitowy generator LFSR taktowany sygnałem zegarowym o częstotliwości f CLK =3,6MHz. Generator został napisany w języku VHDL a następnie zaimplementowany w formie bloku funkcjonalnego w strukturze układu Spartan III [XL]. Na listingu 2 przedstawiono kod zaimplementowanego generatora. Listing 2. Kod źródłowy generatora LFSR 133

138 Realizacja filtru dolnoprzepustowego Schemat ideowy proponowanego filtru dolnoprzepustowego pokazano na rysunku Filtr dolnoprzepustowy pozwala na kontrolę szerokości widma generowanej sekwencji. Wtedy zmiana częstotliwości taktowania generatora LFSR nie zmienia szerokości widma, które jest ograniczone charakterystyką filtru. Układ filtru składa się z połączenia filtru 3-go rzędu z wielokrotnym sprzężeniem zwrotnym oraz dwóch dodatkowych ogniw dolnoprzepustowych R8, C5 i L1, C4, C6. Układ R8, C5 to klasyczny człon dolnoprzepustowy o stromości charakterystyki w paśmie zaporowym -6dB/oct. Elementy L1, C4, C6 tworzą ogniwo filtru eliptycznego. Człon ten został dodany podczas symulacji układu. Okazało się, że stromość charakterystyki filtru tuż za punktem,4f CLK (f CLK =3,6MHz) jest niedostateczna. Dodanie członu eliptycznego na wejściu filtru znacznie poprawiło tłumienie w okolicy,4f CLK. Rys Schemat ideowy filtru dolnoprzepustowego 5 Wzmocnienie [db] Częstotliwość [khz] Rys Charakterystyka przenoszenia filtru Charakterystykę amplitudową filtru uzyskaną na drodze pomiarów prototypu pokazano na rysunku Na charakterystyce występuje niewielkie podbicie w pobliżu częstotliwości odcięcia. Ma ono na celu wzmocnienie opadającego fragmentu widma w pobliżu,4f CLK. Układ dołączony jest poprzez rezystory R4 i R5 ograniczające amplitudę, bezpośrednio do 134

139 wyprowadzenia wyjściowego generatora LFSR zrealizowanego w strukturze układu FPGA. Rezystor R6 polaryzuje wejście wzmacniacza operacyjnego na poziomie około 1V. Zapewnia to przesunięcie punktu pracy wzmacniacza, który nie ma wejść Rail-To-Rail. Rezystor R9 jest konieczny ze względu na prądowy charakter sprzężenia zwrotnego wzmacniacza. Został on dobrany na podstawie karty katalogowej tego układu [AD]. Od wartości tego rezystora zależy stałość pasma przenoszenia niezależna od wzmocnienia układu oraz jego stabilność. Układ zasilany jest napięciem +5V pobieranym bezpośrednio z płytki uruchomieniowej układu FPGA. Widmo sygnału generatora LFSR po przejściu przez filtr dolnoprzepustowy pokazano na rysunku Rys Widmo sygnału pseudolosowego po filtracji dolnoprzepustowej Realizacja modulatora AM-DSB Schemat modulatora zbudowanego na układzie SA612 [PH] pokazano na rysunku Układ SA612 posiada dwa wejścia. Jedno służy do podania sygnału modulowanego. Sygnał ten doprowadzony jest poprzez gniazdo GEN. Rezystor R2 służy do dopasowania wyjścia generatora oraz przewodu 5Ω. Kondensator C3 odcina składową stałą występującą na wyprowadzeniu 6 układu IC1. Na wyprowadzenie 1 układu IC1 podawany jest sygnał modulujący sekwencja pseudolosowa przefiltrowana przez filtr. Rys Schemat ideowy modulatora 135

140 Rys Widmo sygnału wyjściowego modulatora Wyjście modulatora doprowadzone jest do gniazda OSC. Rezystancja wyjściowa układu IC1 wynosi 1,5kΩ, wiec do pomiarów powinien być wykorzystany sprzęt o rezystancji wejściowej 1MΩ lub 1MΩ (sonda 1:1). Podłączenie wyjścia do analizatora widma wymaga zastosowania sondy aktywnej lub bufora wyjściowego np. w formie wtórnika napięciowego na odpowiednio szybkim wzmacniaczu. Ze względu na obecność stabilizatora IC2 układ wymaga zasilania napięciem o wartości co najmniej 7V. Widmo sygnału wyjściowego modulatora z rysunku 8.19 pokazano na rysunku 8.2. Częstotliwość fali nośnej została ustawiona na 2MHz, sygnał pseudolosowy poddany został filtracji dolnoprzepustowej zgodnie z charakterystyką z rysunku Podsumowanie Zaprezentowano praktyczną realizację modulatora AM. Do generacji modulującego sygnału pseudolosowego wykorzystano generator LFSR zaimplementowany w układzie FPGA. Dokonano procesu modulacji sygnału sinusoidalnego. W wyniku modulacji następuje przeniesienie widma sygnału pseudolosowego, ograniczonego przez filtr dolnoprzepustowy, w pobliże częstotliwości nośnej. Przykładowym zastosowaniem takiego przetwarzania sygnałów jest możliwość zagłuszania wycinka pasma transmisyjnego, określanie charakterystyk filtrów SSB lub pasma przenoszenia torów wzmacniaczy w.cz Szyfrowanie danych z wykorzystaniem generatora DLFSR Jednym z zastosowań generatorów pseudolosowych są układy szyfrujące [SB]. Na rysunku 8.21 pokazano opracowany schemat blokowy kodera/dekodera służącego do szyfrowania danych z wykorzystaniem sekwencji pseudolosowych generatora DLFSR. Rys Schemat blokowy programu 136

141 Dane wejściowe kodowane są poprzez wykonanie na nich operacji logicznej XOR. Operacja ta wykonana dwukrotnie z tym samym argumentem nie zmienia danej wejściowej. Zależność tę przedstawiają równania (8.11a) oraz (8.11b). (A xor B)=C (8.11a) (C xor B)=A (8.11b) Wykorzystanie własności (8.11a) oraz (8.11b) umożliwia korzystanie z tego samego algorytmu do szyfrowania i deszyfrowania. W prezentowanym rozwiązaniu liczba A to dane wejściowe, liczba B to wartość przechowywana (wygenerowana) w rejestrze DLFSR, a liczba C to szyfrogram. Wszystkie liczby A, B, C są 32-bitowe. Jeśli algorytm generacji liczby B będzie uniemożliwiał odtworzenie struktury generatora na podstawie wystarczająco długiej obserwacji ciągu tworzonego przez liczbę B, to złamanie takiego szyfru będzie niemożliwe [SB]. Osoba dokonująca kryptoanalizy nie będzie mogła ustalić algorytmu (prawidłowości) generacji ciągu tworzonego przez liczbę B. Realizacja programowa generatora DLFSR W programie szyfrującym/deszyfrującym, napisanym w środowisku Borland Delphi 7., zaimplementowano 32-bitowy generator DLFSR. Stan początkowy generatora określony jest równaniem (8.12a) i (8.12b). wp:=trunc(cos(1*p)*wp*ord(haslo[p])) wp:=wp mod $AFFFFFFF (8.12a) (8.12b) gdzie: wp - warunek początkowy, trunc operator obcięcia wartości ułamkowej liczby, ord operator zwracający wartość kodu ASCII, p indeks numerujący litery hasła (w zakresie od 1 do liczby liter w haśle), hasło[p] p-ta litera hasła. Symbol $ oznacza zapis w systemie szesnastkowym stosowany w środowisku Borland Delphi. Zmiana sprzężenia zwrotnego rejestru następuje dla M 1 oraz M 2 -go cyklu pracy rejestru. Cykl pracy jest zwiększany o jeden dla każdej odczytanej serii 32 bitów danych wejściowych. Liczby M 1 oraz M 2 określone są następującymi zależnościami(8.13a), (8.13b). M 1 = wp xor $FFFFFFFA M 2 = trunc($fffffffa*sin(wp) (8.13a) (8.13b) Generator DLFSR wykorzystuje do swojej pracy trzy wielomiany sprzężenia zwrotnego [NW] (8.14a),(8.14b),(8.14c). L L = x + x + x + x + x + x O1 O2 2 = x + x + x + x + x + x + x + x + L 32 O O = x + x + x + x + x + x 1 1 (8.14a) (8.14b) (8.14c) 137

142 Stałe O 1 oraz O 2 występujące w wielomianach (8.14b) oraz (8.14c) określone są zależnościami (8.15a), (8.15b). O 1 =wp mod 19+1 O 2 =wp mod (8.15a) (8.15b) Stałe występujące we wzorach (8.15a) oraz (8.15b) zostały wybrane doświadczalnie. Wielomian (8.14a) jest wielomianem generującym sekwencję o maksymalnej długości (czyli jest generatorem m-sekwencji) [SB]. Wielomiany (8.14b) oraz (8.14c) mogą generować m-sekwencję tylko w nielicznych przypadkach. Rejestr DLFSR przełącza się na te wielomiany tylko dla wystąpienia M 1 oraz M 2 -go cyklu. Przełączenie to występuje tylko na jeden cykl kiedy spełnione są zależności (8.16a) oraz (8.16b): licznik mod M 1 = licznik mod M 2 = (8.16a) (8.16b) gdzie: licznik numer cyklu pracy. Dwa wielomiany (8.14b) oraz (8.14c) przełączane tylko w cyklach określonych wzorami (8.16a) i (8.16b) mają za zadanie zapewnić nieregularną pracę generatora DLFSR. Bez zmiany sprzężenia zwrotnego układ zachowywałby się jak generator LFSR. Algorytm pracy programu szyfrującego i deszyfrującego Algorytm działania kodera/dekodera jest następujący: 1. Oblicz zgodnie z równaniami (8.12), (8.13), (8.14) wartości potrzebne do kodowania/dekodowania. 2. Załaduj rejestr DLFSR wartością początkową wp. 3. Otwórz plik wejściowy. 4. Odczytaj kolejne 32 bity danych z pliku wejściowego, zwiększ numer cyklu o Wygeneruj dla nowego cyklu wartość liczby B. 6. Dokonaj operacji szyfrowania zgodnie ze wzorem (8.11a). 7. Wróć do punktu 4 jeśli nie osiągnięto końca pliku. Jeśli osiągnięto koniec pliku to zakończ algorytm. Deszyfrowanie przebiega dokładnie w ten sam sposób z tą różnicą, że operacja deszyfrowania przebiega zgodnie z wzorem (8.11b). Na rysunku 8.22 pokazano wygląd aplikacji realizującej opisany wcześniej algorytm. Aplikacja wymaga podania pliku wejściowego (Input file) oraz hasła (Password). Zaszyfrowane dane wejściowe są zapisywane do pliku określonego w polu Output file. 138

143 Rys Oprogramowanie realizujące szyfrowanie i deszyfrowanie Podsumowanie Zaprezentowany algorytm oraz program wykorzystuje do kodowania programową implementację generatora DLFSR. Funkcja sprzężenia zwrotnego zmieniana jest pomiędzy trzema wielomianami. O wyborze wielomianu i momencie przełączenia decydują wartości wyliczone jako funkcja hasła wprowadzonego przez użytkownika Podsumowanie W tym rozdziale omówiono przykładowe zastosowania generatorów DLFSR. Pokazano możliwość zastosowania generatorów z dynamicznie zmienianym wielomianem sprzężenia zwrotnego do generacji szumu białego, zagłuszania pasma telekomunikacyjnego, szyfrowania oraz do transmisji danych w systemach z widmem rozproszonym DSSS. W każdym przykładzie zastosowania pokazano schematy ideowe, kody źródłowe oraz wyniki pomiarów laboratoryjnych fizycznego układu elektronicznego. Z uzyskanych wyników wyciągnięto wnioski. Zaprezentowane urządzenia oraz metody mogą stanowić element składowy większych systemów telekomunikacyjnych, elektronicznych lub informatycznych. 139

144 9. Zakończenie Przedstawiona praca dotyczy analizy właściwości generatorów sygnałów pseudolosowych zbudowanych na rejestrach przesuwnych. W ramach pracy przeprowadzono syntezę trzech struktur generatorów, konstrukcję modeli matematycznych tych generatorów i analizę właściwości sygnałów pseudolosowych, których źródłem są wymienione układy generacyjne. Badania przeprowadzone były zarówno metodami matematyki dyskretnej, metodami symulacyjnymi a także metodami umożliwiającymi doświadczalną analizę wykonanych fizycznie układów generacyjnych. Rozpatrywane w pracy układy generacji drgań pseudolosowych podzielić można na trzy grupy w zależności od rodzaju zastosowanego w nich sprzężenia zwrotnego. Do pierwszej z nich zalicza się generatory ze statyczną, liniową pętlą sprzężenia zwrotnego. Drugą grupę tworzą generatory ze statyczną nieliniową pętlą sprzężenia zwrotnego. Do trzeciej zalicza się generatory z liniową dynamiczną, zmienną w czasie, pętlą sprzężenia zwrotnego. Analizowane generatory są układami w pełni deterministycznymi a zatem wytworzone przez nie sygnały nie są w pełni losowe lecz mają tylko pewne cechy sygnałów losowych. Do analizy statystycznej sygnałów pseudolosowych uzyskiwanych metodami symulacyjnymi konieczne było opracowanie programowych modeli generatorów i porównanie sygnałów generowanych przez opracowane modele z sygnałami wytwarzanymi przez sprzętowe realizacje takich generatorów. Badania symulacyjne generatorów przeprowadzono dwoma metodami. Pierwsza z nich polegała na symulacji generatorów wykonanych z elementów elektronicznych z wykorzystaniem pakietu MultiSim. Druga polegała na symulacji modeli dyskretnych generatorów (opisanych nieliniowymi równaniami różnicowymi) przy pomocy programu Matlab Simulink. Do realizacji sprzętowej rozpatrywanych struktur generatorów zastosowano elementy systemu mikroprocesorowego i układ FPGA. Weryfikację badań symulacyjnych oraz realizacji sprzętowych rozważanych generatorów przeprowadzono metodami analitycznymi z wykorzystaniem równań dyskretnych modeli generatorów oraz algebry Boole a. Porównawczą analizę statystyczną właściwości sygnałów pseudolosowych prowadzono zarówno z wykorzystaniem metod statystyki klasycznej (wyznaczanie momentów sygnałów, analizy widmowej, testów kompresji) jak i specjalizowanych pakietów statystycznych DIEHARD, NIST STS 2.1.1, ENT. 14

145 Z przeprowadzonych analiz wynika, że najlepsze parametry statystyczne mają prawidłowo zaprojektowane generatory z dynamiczną, liniową pętlą sprzężenia zwrotnego. Zastosowania sygnałów pseudolosowych w elektronice i telekomunikacji są bardzo szerokie (por. rozdz. 1.1 pracy). Propozycje wybranych i opracowanych w ramach rozprawy zastosowań sygnałów pseudolosowych zamieszczono w końcowej części pracy. Dotyczą one generacji białego szumu, systemów transmisji z widmem rozproszonym, systemu zagłuszania fragmentu pasma radiowego oraz pewnego systemu szyfrowania danych z wykorzystaniem opracowanych w ramach pracy generatorów DLFSR. W jednym z załączników pracy opisano także zweryfikowaną propozycję zwiększenia szybkości generacji sygnałów pseudolosowych generatorów DLFSR. W pracy zostały rozwiązane następujące problemy: 1. Opracowano metodę konstrukcji modeli dyskretnych generatorów zbudowanych na rejestrach przesuwnych ze statyczną liniową, nieliniową i dynamiczną pętlą sprzężenia zwrotnego. 2. Opracowano metodę konstrukcji równań stanu rejestrów generatorów DLFSR i równań opisujących sekwencje wyjściowe tych generatorów w terminologii algebry binarnej GF(2). 3. Przeprowadzono badania symulacyjne i doświadczalne wybranych struktur generatorów LFSR, NLFSR, DLFSR. 4. Przeprowadzono kompleksowe badania statystyczne sygnałów generatorów LFSR, NLFSR, DLFSR zarówno metodami statystyki klasycznej jak i z wykorzystaniem specjalizowanych pakietów DIEHARD, NIST STS 2.1.1, ENT. 5. Opracowano i wykonano realizację fizyczne generatorów LFSR, NLFSR, DLFSR z wykorzystaniem systemu mikroprocesorowego i układu FPGA. Wszystkie rozpatrywane w pracy struktury generatorów były implementowane programowo z wykorzystaniem pakietów Matlab Simulink i MultiSim a wyniki badań symulacyjnych zostały umieszczone w pracy. W oparciu o uzyskane w pracy wyniki przewidywane jest uogólnienie opracowanych metod badawczych, dotyczące: 1. Poszukiwania optymalnych struktur bloków nieliniowego i dynamicznego sprzężenia zwrotnego generatorów. 2. Analizy złożonych struktur generatorów (por. załącznik 1.1). 3. Analizy właściwości generatorów zbudowanych na rejestrach przesuwnych, których sygnały zegarowe i zmiany struktur dynamicznego sprzężenia zwrotnego sterowane będą ze źródeł sygnałów chaotycznych. Idea stosowanych i opracowanych w ramach rozprawy metod badawczych będzie w przyszłości stosowana do analizy wymienionych wyżej problemów. 141

146 Załączniki A. Złożone struktury generatorów LFSR Generatory zbudowane z wykorzystaniem rejestrów z liniowym lub nieliniowym sprzężeniem zwrotnym są proste w realizacji. Podstawową strukturą generatora pseudolosowego zbudowanego na jednym rejestrze przesuwnym pokazano na rysunku 1 (por rozdz. 3). W układach generatorów złożonych z bloków pokazanych na rysunku 1 występują dodatkowo funkcje logiczne, układy progowe, multipleksery. Składowe generatory LFSR mogą również mieć różne częstotliwości sygnału zegarowego. Rys. 1. Ogólna budowa generatora LFSR Generatory zbudowane na rejestrach przesuwnych według koncepcji z rysunku 1 umożliwiają tworzenie złożonych generatorów sygnałów pseudolosowych (podobnie można łączyć także generatory konkurencyjne [SB]). W tym celu stosuje się łączenie generatorów (najlepiej o różnych długościach i różnych wielomianach sprzężenia zwrotnego) za pomocą dodatkowych bloków funkcjonalnych. Jeśli wielomiany sprzężenia zwrotnego będą pierwotne a długości generowanych sekwencji przez każdy z generatorów z osobna będą względnie pierwsze to otrzyma się generator maksymalnego okresu [SB]. Głównym celem konstrukcji generatorów złożonych jest zwiększenie długości generowanej sekwencji [CL]. W celach kryptograficznych generatory złożone mają zapewnić większe bezpieczeństwo szyfrów strumieniowych [SB]. Do podstawowych konstrukcji złożonych generatorów zbudowanych na rejestrach przesuwnych z liniowym sprzężeniem zwrotnym zalicza się [SB]: 142

147 Generator Geffego Generator Jenningsa Generator Stop-and-Go Betha-Pipera Bilateralny generator Stop-and-Go Generator progowy Kaskada Gollmanna Wieloszybkościowy generator iloczynowy Inne Do konfiguracji podanych powyżej można zaliczyć jeszcze generatory zbudowane na jednym lub kilku rejestrach przesuwnych których sygnał taktowania nie ma stałej częstotliwości. Przykładem praktycznym takiego generatora jest układ opisany w pracy [DF]. W załączniku opisano (na podstawie przeprowadzonego przeglądu literatury) generatory pseudolosowe skonstruowane na kilku rejestrach przesuwnych i rozbudowanym bloku wyjściowym. A.1 Generator Geffego Generator Geffego [SB] zbudowany jest z trzech generatorów LFSR oraz multipleksera. Wejście adresowe multipleksera sterowane jest za pomocą wyjścia pierwszego generatora LFSR. Wyjścia dwóch kolejnych generatorów LFSR podłączone są do wejść multipleksera. Stan wyjścia multipleksera zależy od aktualnie wybranego przez generator LFSR-1 wyjścia oraz aktualnego stanu jednego z generatorów LFSR-2 lub LFSR-3. Budowę generatora Geffego przedstawiono na rysunku 2. Rys. 2. Generator Geffego W celu uzyskania najdłuższego okresu generowanej sekwencji pseudolosowej wielomiany pierwotne generatorów LFSR wchodzących w skład struktury opisywanego generatora muszą mieć względnie pierwsze długości. Wielomiany opisujące sprzężenie zwrotne generatorów LFSR powinny być wielomianami pierwotnymi. Wtedy okres sekwencji wyjściowej jest równy iloczynowi długości sekwencji każdego z generatorów składowych generatora Geffego [SB]. Generator Geffego można uogólnić na n generatorów LFSR podłączonych do wejścia n-kanałowego multipleksera oraz jednego rejestru adresującego linię adresową multipleksera. Wejścia adresowe multipleksera operują w kodzie binarnym przez co liczba generatorów dołączonych do wejść multipleksera powinna być potęgą liczby 2. Generator LFSR-1 musi 143

148 być taktowany z częstotliwością log 2 n większą niż pozostałe generatory [SB]. Budowę uogólnionego generatora Geffego pokazano na rysunku 3. Rys. 3. Uogólniony generator Geffego A.2 Generator Jenningsa Generator Jenningsa [SB] wykorzystuje multiplekser oraz funkcję odwzorowującą. Na wejścia multipleksera podłączone są wyjścia funkcji odwzorowującej Φ. Funkcja Φ określa w jaki sposób jej wejścia powiązane są z jej wyjściem. Do wejścia funkcji Φ podłączony jest rejestr LFSR-2. Pracą multipleksera steruje generator LFSR-1. Wybiera on jeden z bitów wejściowych wskazany przez generator LFSR-1. Budowę generatora Jenningsa pokazano na rysunku 4. Rys. 4. Generator Jenningsa A.3 Generator Stop-and-Go Betha Pipera Generator Betha Pipera [SB] wykorzystuje sterowanie sygnałem zegarowym. Budowę generatora Stop-and-Go Betha Pipera pokazano na rysunku

149 Rys. 5. Generator Stop-and-Go Sygnał zegarowy podawany jest na wejście pierwszego generatora LFSR-1 oraz na wejście bramki AND. Generator LFSR-2 może zmienić swój stan tylko wtedy gdy na jego wejściu pojawi się zbocze narastające sygnału z wyjścia bramki AND. Oznacza to, że zmiana stanu może nastąpić tylko wtedy, gdy w chwili t-1 na wyjściu generatora LFSR-1 był stan wysoki [SB]. Generator LFSR-3 pracuje z ciągłym sygnałem zegarowym. Stan wyjścia to suma modulo 2 (XOR) bitów wyjściowych generatorów LFSR-2 i LFSR-3. A.4 Generator przemienny Stop-and-Go Układ ten wykorzystuje trzy generatory LFSR o różnych długościach [SB]. W porównaniu do poprzedniego generatora sterowanie sygnałem zegarowym obejmuje dwa generatory LFSR tworzące sygnał wyjściowy. Budowę przemiennego generatora Stop-and- Go pokazano na rysunku 6. Rys. 6. Generator przemienny Stop-and-Go Generator LFSR-2 może zmienić swój stan tylko wtedy gdy na wyjściu generatora LFSR-1 w chwili czasowej t-1 był stan wysoki. Generator LFSR-3 zmienia swój stan tylko wtedy gdy stan na wyjściu generatora LFSR-1 w chwili czasowej t-1 był stan niski. Sygnał wyjściowy powstaje jako suma modulo 2 wyjść generatorów LFSR-2 oraz LFSR-3 [SB]. A.5 Generator progowy Generator progowy [SB] zbudowany jest z wielu generatorów LFSR. Stan wyjściowy generatora określony jest poprzez stan wyjściowy większości generatorów wchodzących w skład budowy generatora progowego. Budowę generatora progowego pokazano na rysunku

150 Rys. 7. Generator progowy Liczba generatorów LFSR wchodzących w skład generatora progowego powinna być nieparzysta, gdyż stan wyjściowy określony jest przez stan większej części generatorów LFSR. Długości sekwencji generatorów składowych powinny być względnie pierwsze a wielomiany charakterystyczne generatorów LFSR powinny być wielomianami pierwotnymi. Zapewnia to uzyskanie maksymalnej długości sekwencji wyjściowej [SB]. A.6 Kaskada Gollmanna Kaskada Gollmana [SB] jest ulepszoną wersją generatora typu Stop-and-Go. Budowę kaskady Gollmanna pokazano na rysunku 8. Rys. 8. Kaskada Gollmana Kaskada składa się z ciągu wielu generatorów LFSR. Sygnał zegarowy każdego kolejnego generatora LFSR zależy od stanu generatora poprzedzającego (wyjątkiem jest pierwszy generator LFSR-1, który jest taktowany bezpośrednio). Generatory zbudowane na bazie kaskady Gollmana są proste w konstrukcji, mogą generować ciągi pseudolosowe o znacznych długościach i dobrych właściwościach statystycznych [SB]. A.7 Wieloszybkościowy generator iloczynowy Ten generator wykorzystuje dwa generatory LFSR taktowane różnymi częstotliwościami [SB]. Generator LFSR-2 taktowany jest d razy szybciej niż generator LFSR-1. Wybrane bity wyjściowe obu generatorów LFSR poddawane są operacji iloczynu logicznego w bramkach AND. Wyjścia bramek kierowane są do wielowejściowej bramki XOR. Liczba bramek AND jest równa ilości wejść bramki XOR. Budowę generatora pokazano na rysunku

151 Rys. 9. Generator iloczynowy Do innych struktur generatorów taktowanych różnymi sygnałami zegarowymi może zostać zaliczony generator opisany w pracy [DF]. Układ ten składa się z jednego generatora LFSR oraz dwóch bramek XOR. Generator LFSR taktowany jest własnym sygnałem zegarowym, zupełnie niezależnym. Drugi sygnał zegarowy doprowadzony jest do jednej z bramek XOR będącej elementem sprzężenia zwrotnego. Przedstawione złożone struktury generatorów sekwencji pseudolosowych zbudowane z wykorzystaniem generatorów LFSR oraz dodatkowych elementów składowych mogą być w przyszłości źródłem nowych struktur generatorów opartych o rozpatrywane w pracy generatory DLFSR i NLFSR. B. Metoda zwiększenia szybkości generacji ciągów pseudolosowych W wielu zastosowaniach szybkość generacji sygnału pseudolosowego przez generator LFSR jest za mała. Przykładem jest generacja szumu [MR], [WJ2], [DF] z wykorzystaniem generatora LFSR i wielobitowego przetwornika cyfrowo-analogowego. W przypadku, gdy wyniki testów statystycznych sekwencji pseudolosowej nie są najważniejsze [WJ2], [DF] a istotna jest szybkość generacji liczb pseudolosowych, można wykorzystać proponowane poniżej modyfikację generatorów LFSR. Dodanie dodatkowego układu zmieniającego sposób wyprowadzania danych z generatora LFSR wpływa na wyniki testów statystycznych wyjściowej sekwencji pseudolosowej a proponowane układy mogą być stosowane w aplikacjach nie wymagających sekwencji pseudolosowych o wysokich parametrach statystycznych. W klasycznym układzie generatora LFSR (por rys. 1) szybkość generacji binarnego ciągu pseudolosowego określona jest wzorem (1). Wprowadzając dodatkowy rejestr przesuwny, dzielnik sygnału zegarowego oraz bufor zatrzaskowy (ang. Latch) uzyskujemy nową strukturę generatora LFSR. Strukturę tę pokazano na rysunku 1. Ciąg liczb z rejestru przesuwnego układu z rysunku 1 ma już N-krotnie mniejszą częstotliwość wyjściową (potrzeba N-cykli zegarowych aby w dodatkowym rejestrze przesuwnym znalazła się nowa liczba). Opisaną zależność określa wzór (2). R R = f bit s (1) B c / f c = liczb s (2) N N / Sygnał zegarowy, taktujący dodatkowy rejestr przesuwny, o N-krotnie mniejszej częstotliwości, uzyskiwany jest w dzielniku częstotliwości. Jeżeli wyjściowy ciąg liczb 147

152 pseudolosowych z układu pokazanego na rysunku 1 spełnia zależność (2) to ciąg tych liczb spełnia postulaty losowości Golomba [GS1]. Dodatkowo wyniki testów statystycznych wytworzonego ciągu liczb są takie same jak dla ciągu bitów wyjściowych generatora LFSR, ponieważ wyjściowa sekwencja N-bitowych liczb jest dokładnie taka sama jak ciąg bitów wyjściowych generatora. Zmienił się tylko typ wyjścia - z szeregowego jednobitowego na równoległe N-bitowe. Rys. 1. Generator pseudolosowych liczb wielobitowych W zastosowaniach wymagających znacznych szybkości generacji liczb pseudolosowych [MR], w których statystyczne właściwości sekwencji nie są priorytetowe, można zastosować układ pokazany na rysunku 11. Rys. 11. Generator LFSR z wyjściem równoległym N-bitowym Układ z rysunku 11 generuje ciąg liczb pseudolosowych z szybkością większą niż wynikałoby to z zależności (1). Sygnał zegarowy taktuje bezpośrednio (z pominięciem 148

153 dzielnika częstotliwości) bufor wyjściowy, którego zadaniem jest przeniesienie stanu rejestru przesuwnego na N-bitowe wyjście. Szybkość ciągu liczb uzyskiwanych z uzyskanego wyjścia równoległego jest określona wzorem: R = f liczb s. (3) B c / W przypadku układu z rysunku 1, zależności (2) była spełniona a wiec zawartość wszystkich bitów dodatkowego rejestru przesuwnego ulegała zmianie. Dzięki temu każda para liczb wygenerowana przez generator z rysunku 1 zawierała całkowicie inny ciąg N bitów. W przypadku generatora z rysunku 11 wygenerowana para liczb różni się między sobą tylko pozycją jednego bitu (jest to bit LSB). Ciąg liczb generatora z rysunku 11 nie spełnia postulatów losowości oraz nie przechodzi żadnych testów statystycznych [GS1], [WJ7]. Uogólniony, proponowany schemat [WJ7] zmodyfikowanego generatora liczb pseudolosowych, wykorzystującego generator LFSR, pokazano na rysunku 12. Rys. 12. Uogólniona postać zmodyfikowanego generatora LFSR Układ z rysunku 12 generuje liczby o reprezentacji od 1 do maksymalnie N-bitowej (wtedy długość bufora wyjściowego jest równa długości rejestru przesuwnego generatora LFSR). Szybkość generacji liczb D-bitowych określa wzór: R D = f c liczb s. (4) N D / W układzie z rysunku 12 wyniki testów statystycznych sekwencji wyjściowej będą zależeć od liczby D. Dla D=N układ będzie miał te same cechy co generator z rysunku 1. Na rysunku 13 pokazano kolejną proponowaną modyfikację struktury generatora LFSR umożliwiającą zwiększenie szybkości generacji liczb N-bitowych [WJ7]. 149

154 Rys. 13. Modyfikacja generatora LFSR W układzie z rysunku 13 szybkość generacji liczb N-bitowych jest równa częstotliwości taktowania bufora zatrzaskowego zgodnie z równaniem (5). Szybkość ciągu bitowego utworzonego z wygenerowanych liczb jest N-krotnie większa i określona równaniem (6). Współpracujący z generatorem LFSR dodatkowy N-bitowy rejestr przesuwny wypełniany jest zawartością bitów wyjściowych generatora LFSR synchronicznie z sygnałem zegarowym taktującym generator. R R fc = liczb s (5) D N = fc bitów s (6) D N / B / Od wartości liczby D zależą własności statystyczne ciągu liczb generowanych przez generator. Jeśli ciąg liczb bufora wyjściowego potraktuje się jako binarną sekwencję wyjściową to szybkość tej sekwencji będzie zależna od wartości liczby D. Rozróżnia się następujące przypadki: Dla wartości D=1 generator z rysunku 13 staje się generatorem z rysunku 11. Szybkość generacji ciągu binarnego utworzonego z liczb wyjściowych bufora jest największa. Parametry statystyczne generowanego ciągu są najgorsze. Dla wartości D=N generator z rysunku 13 staje się generatorem z rysunku 1. Szybkość generacji ciągu binarnego utworzonego z liczb wyjściowych bufora jest taka sama jak szybkość ciągu binarnego wytwarzanego przez generator LFSR. Parametry statystyczne tak wygenerowanych sekwencji są takie same jak parametry statystyczne sekwencji generatorów LFSR. Dla wartości D>N binarny ciąg utworzony z liczb bufora wyjściowego ma mniejszą szybkość bitową niż generator LFSR. Wyniki testów statystycznych dla takiej konfiguracji są takie same jak dla generatora LFSR. Przykład Generator 5-bitowy (N=5) współpracuje z rejestrem przesuwnym i buforem wyjściowym. Stopień podziału częstotliwości zegarowej bufora wyjściowego wynosi D=4. Wielomian 15

155 opisujący generator LFSR jest dany wzorem (5). Schemat generatora pokazano na rysunku 14. Należy wyznaczyć fragment sekwencji wyjściowej takiego generatora. Rys. 14. Przykładowa modyfikacja 5-bitowego generatora LFSR Na wyjściu bufora pojawia się 5-bitowa liczba pseudolosowa co 4 cykle zegara CLK. Ciąg binarny z wyjścia generatora LFSR, tworzony z liczb bufora wyjściowego, jest następujący: a) wyjście generatora LFSR: b) wyjście bufora: W ciągu 2 cykli zegarowych układ z rysunku 14 wygenerował 25 bitów sekwencji pseudolosowej. Zgodnie ze wzorem (6) szybkość bitowa wynosi 1,25f clk. B.1 Porównanie parametrów statystycznych Do porównania parametrów statystycznych wykorzystano programowy 32-bitowy generator LFSR o konstrukcji pokazanej na rysunku 12. Wielomian sprzężenia zwrotnego generatora określony jest następująco: L ( x) = x + x + x + x + 1. (7) Wartość początkową generatora LFSR ustawiono na 1 dec. Za pomocą algorytmu pracy generatora LFSR dokonano generacji sekwencji pseudolosowej o długości wymaganej przez wykorzystany pakiet analizy statystycznej ( bajtów). Sekwencję wygenerowano dla kilku wartości dzielnika częstotliwości sygnału zegarowego D. Wygenerowane sekwencje przeanalizowano pod kątem przejścia wszystkich testów statystycznych pakietu DIEHARD [DH]. W tabelach 1 7 zamieszczono wyniki testów statystycznych zwracanych przez pakiet DIEHARD dla wybranej wartości dzielnika sygnału zegarowego D. W tym przypadku posłużono się danymi tabelarycznymi w celu zwrócenia uwagi na ilość zdanych i nie zdanych testów. Decyzja czy sekwencja przeszła test została podjęta na podstawie analizy p-wartości pod kątem istotności testu na poziomie α=,1. W tabeli 1 przedstawiono nazwy oraz numery testów zawarte w tabelach 2 6 [ZA], [DH]. 151

156 Tab. 1. Nazwy testów pakietu DIEHARD oraz odpowiadające im numery Numer testu Nazwa testu 1 Odstęp między datami urodzin 2 Test nakładających się 5 liczb 3 Test rzędu macierzy binarnych 31x31 4 Test rzędu macierzy binarnych 32x32 5 Test rzędu macierzy binarnych 6x8 6 Test ciągu bitów 7 Test OPSO 8 Test OQSO 9 Test DNA 1 Test Policz "1" w ciągu bajtów 11 Test Policz "1" dla wybranych bajtów 12 Test parkowania 13 Test minimalnej odległości 14 Test wypełnienia kulami 15 Test redukowania 16 Test zachodzących na siebie sum 17 Test ilości kierunków ciągów 18 Test gry w kości Tab. 2. Wyniki testów statystycznych Tab. 3. Wyniki testów statystycznych D=32 D=31 Numer p-wartość Czy sekwencja Numer p-wartość Czy sekwencja testu Min. Maks. przeszła test? testu Min. Maks. przeszła test? 1,192,9541 Tak 1,444,7711 Tak 2,1955,232 Tak 2,154,1418 Tak 3,, Nie 3,, Nie 4,348,9912 Nie 4,281,9997 Nie 5,, Nie 5,, Nie 6,554,9937 Nie 6,263,9331 Tak 7,11,9857 Tak 7,96,988 Tak 8,4,9982 Nie 8,94,911 Nie 9,32,9184 Nie 9,8,956 Nie 1,519,8486 Tak 1,5145,669 Tak 11,257,998 Nie 11,136,993 Nie 12,55,8634 Tak 12,1576,9146 Tak 13,538,9549 Tak 13,52,929 Nie 14,81,935 Nie 14,271,9239 Tak 15,722,722 Tak 15,5239,5239 Tak 16,549,9825 Tak 16,282,9847 Tak 17,247,8879 Tak 17,123,834 Tak 18,265,4222 Tak 18,4861,4949 Tak 152

157 Tab. 4. Wyniki testów statystycznych Tab. 5. Wyniki testów statystycznych D=16 D=8 Numer p-wartość Czy sekwencja Numer p-wartość Czy sekwencja testu Min. Maks. przeszła test? testu Min. Maks. przeszła test? 1,7,8782 Nie 1,1231,8699 Tak 2,, Nie 2,, Nie 3,, Nie 3,, Nie 4,1,971 Nie 4,178,9397 Tak 5,, Nie 5,, Nie 6,, Nie 6,, Nie 7,234,9915 Nie 7,, Nie 8,7,9236 Nie 8,121,888 Tak 9,877,9257 Tak 9,542,9188 Tak 1 1, 1, Nie 1 1, 1, Nie 11,3376,998 Nie 11 1, 1, Nie 12,142,8824 Tak 12,5364,9994 Nie 13,1813,9678 Tak 13,,358 Nie 14,252,9797 Tak 14,65,9555 Nie 15,88,88 Tak 15,7635,7635 Tak 16,376,9893 Tak 16,485,9973 Nie 17,428,8859 Tak 17,4668,8394 Tak 18,388,4293 Tak 18,2964,9711 Tak Tab. 6.Wyniki testów statystycznych Tab. 7. Wyniki testów statystycznych D=7 D=4 Numer p-wartość Czy sekwencja Numer p-wartość Czy sekwencja testu Min. Maks. przeszła test? testu Min. Maks. przeszła test? 1,42,863 Nie 1,313,7664 Tak 2,, Nie 2,, Nie 3,, Nie 3,, Nie 4,173,9651 Tak 4 1, 1, Nie 5,, Nie 5,, Nie 6,, Nie 6,, Nie 7,, Nie 7,, Nie 8,288,8937 Tak 8,, Nie 9,552,9236 Tak 9,64,9613 Nie 1 1, 1, Nie 1 1, 1, Nie 11 1, 1, Nie 11,, Nie 12,, Nie 12,, Nie 13,,83 Nie 13,,2 Nie 14,3,9549 Nie 14,,1588 Nie 15,9855,9855 Tak 15,, Nie 16,52,9785 Tak 16,292,9762 Tak 17,423,9832 Tak 17 1, 1, Nie 18,986,986 Tak 18,287,287 Tak 153

158 Podsumowanie W tym załączniku omówiono metody zwiększenia szybkości generacji liczb pseudolosowych. W tym celu generator LFSR został rozbudowany o dodatkowe bloki funkcjonalne. Na podstawie przykładu opisano zasadę działania proponowanej metody. Wyniki testów statystycznych, zależą od szybkości generacji liczb pseudolosowych generowanych przez opisane układy. Im większa szybkość sekwencji tym gorsze są jej parametry statystyczne. Opisane układy generatorów nie powinny być stosowane jako elementy składowe systemów kryptograficznych i innych wymagających szyfrowania bądź kodowania informacji. C. Zestawy uruchomieniowe W celu praktycznej weryfikacji oraz testów omawianych w pracy generatorów dokonano ich fizycznej realizacji. Do tego celu wykorzystano płytkę uruchomieniową z układem FPGA produkcji Kamami [ZL1], [ZL2] oraz wykonaną we własnym zakresie płytkę uruchomieniową z procesorem ATMEGA16 [AV] (por rozdz. 8.2). Na fotografiach 15, 16 oraz 17 pokazano omawiane moduły. Rys. 15. Płyta główna współpracująca z modułem FPGA Rys. 16. Moduł układu FPGA 154

159 Rys. 17. Płytka testowa z procesorem ATMega16 Zestaw uruchomieniowy z układem FPGA, pokazany na fotografiach 15 oraz 16, składa się z dwóch płytek połączonych złączem typu goldpin. Pierwsza płytka, pełniąca funkcję płytki bazowej, zawiera gniazda układów peryferyjnych, elementy sygnalizacyjne (diody LED oraz buzzer), zestaw czterech przycisków typu microswitch, konwerter TTL-RS232, wyjście VGA, obwody zasilające oraz inne elementy ułatwiające programiście podłączenie do płytki zewnętrznych układów peryferyjnych. Druga płytka zawiera układ FPGA typu XC3S2 [XL], stabilizatory napięcia, zworę konfiguracyjną, generator kwarcowy oraz złącze programatora. Obie płytki współpracują ze sobą poprzez 4-sto pinowe złącze typu goldpin. Schemat płytki bazowej pokazano na rysunku 18 a schemat modułu z układem FPGA pokazano na rysunku 19. Zestaw uruchomieniowy był programowany za pomocą interfejsu JTAG a oprogramowanie stworzono w środowisku firmy Xilinx ISE WebPack Na rysunku 2 pokazano schemat zaprojektowanej i wykonanej płytki uruchomieniowej z procesorem AVR ATMEGA16 oraz przetwornikami DAC oraz ADC. Głównym celem prezentowanego układu była generacja sekwencji pseudolosowych poprzez implementacje programowe w języku C generatorów DLFSR. Konwersja na analogowy sygnał szumowy dokonywana jest w przetworniku DAC typu AD5424. Sygnał wyjściowy dostępny jest na wyjściu filtru dolnoprzepustowego za wzmacniaczem IC4B. Sygnał zegarowy o częstotliwości 46875Hz, niezbędny do pracy przetworników DAC i ADC, generowany jest przez układ licznika i generatora CD46. Płytka uruchomieniowa jest dodatkowo wyposażona w wejściowy filtr dolnoprzepustowy, zbudowany na wzmacniaczu IC4A, oraz współpracujący z nim przetwornik ADC typu AD7821. Akwizycja sygnałów przedstawionych w pracy została dokonana za pomocą cyfrowego oscyloskopu firmy Tektronix DSA62 [DS]. Sygnały były mierzone bezpośrednio na pinach wejścia/wyjścia układów uruchomieniowych. Ze względu na dużą stromość zboczy mierzonych sygnałów pasmo oscyloskopu zostało ograniczone do 1MHz. Pomiarów dokonano sondami o paśmie 4MHz (1:1). 155

Technologie Informacyjne

Technologie Informacyjne POLITECHNIKA KRAKOWSKA - WIEiK - KATEDRA AUTOMATYKI Technologie Informacyjne www.pk.edu.pl/~zk/ti_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład: Generacja liczb losowych Problem generacji

Bardziej szczegółowo

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu

Bardziej szczegółowo

Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki

Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Na podstawie instrukcji Wtórniki Napięcia,, Laboratorium układów Elektronicznych Opis badanych układów Spis Treści 1. CEL ĆWICZENIA... 2 2.

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 8 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 8 Spis treści 13 Szyfrowanie strumieniowe i generatory ciągów pseudolosowych 3 13.1 Synchroniczne

Bardziej szczegółowo

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7 Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi zastosowaniami wzmacniacza operacyjnego, poznanie jego charakterystyki przejściowej

Bardziej szczegółowo

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Klasa III Opracuj projekt realizacji prac związanych z badaniem działania cyfrowych bloków arytmetycznych realizujących operacje

Bardziej szczegółowo

Liniowe układy scalone w technice cyfrowej

Liniowe układy scalone w technice cyfrowej Liniowe układy scalone w technice cyfrowej Wykład 6 Zastosowania wzmacniaczy operacyjnych: konwertery prąd-napięcie i napięcie-prąd, źródła prądowe i napięciowe, przesuwnik fazowy Konwerter prąd-napięcie

Bardziej szczegółowo

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Poznanie zasad budowy działania komparatorów cyfrowych. Konstruowanie komparatorów

Bardziej szczegółowo

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D AGH Katedra Elektroniki Podstawy Elektroniki dla Elektrotechniki Liczniki synchroniczne na przerzutnikach typu D Ćwiczenie 7 Instrukcja do ćwiczeń symulacyjnych 2016 r. 1 1. Wstęp Celem ćwiczenia jest

Bardziej szczegółowo

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych. Ćwiczenie 9 Rejestry przesuwne i liczniki pierścieniowe. Cel. Poznanie właściwości i zasady działania rejestrów przesuwnych.. Poznanie właściwości i zasady działania liczników pierścieniowych. Wprowadzenie.

Bardziej szczegółowo

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera Praca dyplomowa magisterska Opiekun: prof. nzw. Zbigniew Kotulski Andrzej Piasecki apiaseck@mion.elka.pw.edu.pl Plan

Bardziej szczegółowo

Ćw. 7: Układy sekwencyjne

Ćw. 7: Układy sekwencyjne Ćw. 7: Układy sekwencyjne Wstęp Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną następujące układy

Bardziej szczegółowo

WZMACNIACZ OPERACYJNY

WZMACNIACZ OPERACYJNY 1. OPIS WKŁADKI DA 01A WZMACNIACZ OPERACYJNY Wkładka DA01A zawiera wzmacniacz operacyjny A 71 oraz zestaw zacisków, które umożliwiają dołączenie elementów zewnętrznych: rezystorów, kondensatorów i zwór.

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Przetworniki AC i CA

Przetworniki AC i CA KATEDRA INFORMATYKI Wydział EAIiE AGH Laboratorium Techniki Mikroprocesorowej Ćwiczenie 4 Przetworniki AC i CA Cel ćwiczenia Celem ćwiczenia jest poznanie budowy i zasady działania wybranych rodzajów przetworników

Bardziej szczegółowo

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania). Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów

Bardziej szczegółowo

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO Ćwiczenie 11 BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO 11.1 Cel ćwiczenia Celem ćwiczenia jest poznanie rodzajów, budowy i właściwości przerzutników astabilnych, monostabilnych oraz

Bardziej szczegółowo

ANALIZA WŁAŚCIWOŚCI STATYSTYCZNYCH SYGNAŁÓW PSEUDOLOSOWYCH GENERATORÓW ZBUDOWANYCH NA REJESTRACH PRZESUWNYCH

ANALIZA WŁAŚCIWOŚCI STATYSTYCZNYCH SYGNAŁÓW PSEUDOLOSOWYCH GENERATORÓW ZBUDOWANYCH NA REJESTRACH PRZESUWNYCH POZNAN UNIVE RSITY OF TE CHNOLOGY ACADE MIC JOURNALS No 73 Electrical Engineering 2013 Rafał STĘPIEŃ* Janusz WALCZAK* ANALIZA WŁAŚCIWOŚCI STATYSTYCZNYCH SYGNAŁÓW PSEUDOLOSOWYCH GENERATORÓW ZBUDOWANYCH

Bardziej szczegółowo

EUROELEKTRA. Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej. Rok szkolny 2013/2014

EUROELEKTRA. Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej. Rok szkolny 2013/2014 EUROEEKTRA Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 013/014 Instrukcja dla zdającego Zadania z elektroniki na zawody I stopnia (grupa elektroniczna) 1. Czas trwania zawodów:

Bardziej szczegółowo

Statyczne badanie przerzutników - ćwiczenie 3

Statyczne badanie przerzutników - ćwiczenie 3 Statyczne badanie przerzutników - ćwiczenie 3. Cel ćwiczenia Zapoznanie się z podstawowymi strukturami przerzutników w wersji TTL realizowanymi przy wykorzystaniu bramek logicznych NAND oraz NO. 2. Wykaz

Bardziej szczegółowo

płytka montażowa z tranzystorami i rezystorami, pokazana na rysunku 1. płytka montażowa do badania przerzutnika astabilnego U CC T 2 masa

płytka montażowa z tranzystorami i rezystorami, pokazana na rysunku 1. płytka montażowa do badania przerzutnika astabilnego U CC T 2 masa Tranzystor jako klucz elektroniczny - Ćwiczenie. Cel ćwiczenia Zapoznanie się z podstawowymi układami pracy tranzystora bipolarnego jako klucza elektronicznego. Bramki logiczne realizowane w technice RTL

Bardziej szczegółowo

PRZETWORNIKI A/C I C/A.

PRZETWORNIKI A/C I C/A. Przetworniki A/C i C/A 0 z 8 PRACOWNIA ENERGOELEKTRONICZNA w ZST Radom 2006/2007 PRZETWORNIKI A/C I C/A. Przed wykonaniem ćwiczenia powinieneś znać odpowiedzi na 4 pierwsze pytania i polecenia. Po wykonaniu

Bardziej szczegółowo

Parametryzacja przetworników analogowocyfrowych

Parametryzacja przetworników analogowocyfrowych Parametryzacja przetworników analogowocyfrowych wersja: 05.2015 1. Cel ćwiczenia Celem ćwiczenia jest zaprezentowanie istoty działania przetworników analogowo-cyfrowych (ADC analog-to-digital converter),

Bardziej szczegółowo

Badanie właściwości skramblera samosynchronizującego

Badanie właściwości skramblera samosynchronizującego Badanie właściwości skramblera samosynchronizującego Skramblery są układami służącymi do zmiany widma sekwencji cyfrowych przesyłanych torami transmisyjnymi.bazują na rejestrach przesuwnych ze sprzeżeniami

Bardziej szczegółowo

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu f wy f P Podzielnik częstotliwości: układ, który na każde p impulsów na wejściu daje

Bardziej szczegółowo

U 2 B 1 C 1 =10nF. C 2 =10nF

U 2 B 1 C 1 =10nF. C 2 =10nF Dynamiczne badanie przerzutników - Ćwiczenie 3. el ćwiczenia Zapoznanie się z budową i działaniem przerzutnika astabilnego (multiwibratora) wykonanego w technice TTL oraz zapoznanie się z działaniem przerzutnika

Bardziej szczegółowo

Teoria przetwarzania A/C i C/A.

Teoria przetwarzania A/C i C/A. Teoria przetwarzania A/C i C/A. Autor: Bartłomiej Gorczyński Cyfrowe metody przetwarzania sygnałów polegają na przetworzeniu badanego sygnału analogowego w sygnał cyfrowy reprezentowany ciągiem słów binarnych

Bardziej szczegółowo

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011 Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy

Bardziej szczegółowo

Wzmacniacze operacyjne

Wzmacniacze operacyjne Wzmacniacze operacyjne Cel ćwiczenia Celem ćwiczenia jest badanie podstawowych układów pracy wzmacniaczy operacyjnych. Wymagania Wstęp 1. Zasada działania wzmacniacza operacyjnego. 2. Ujemne sprzężenie

Bardziej szczegółowo

Wzmacniacz operacyjny

Wzmacniacz operacyjny ELEKTRONIKA CYFROWA SPRAWOZDANIE NR 3 Wzmacniacz operacyjny Grupa 6 Aleksandra Gierut CEL ĆWICZENIA Celem ćwiczenia jest zapoznanie się z podstawowymi zastosowaniami wzmacniaczy operacyjnych do przetwarzania

Bardziej szczegółowo

dwójkę liczącą Licznikiem Podział liczników:

dwójkę liczącą Licznikiem Podział liczników: 1. Dwójka licząca Przerzutnik typu D łatwo jest przekształcić w przerzutnik typu T i zrealizować dzielnik modulo 2 - tzw. dwójkę liczącą. W tym celu wystarczy połączyć wyjście zanegowane Q z wejściem D.

Bardziej szczegółowo

Przetworniki cyfrowo-analogowe C-A CELE ĆWICZEŃ PODSTAWY TEORETYCZNE

Przetworniki cyfrowo-analogowe C-A CELE ĆWICZEŃ PODSTAWY TEORETYCZNE Przetworniki cyfrowo-analogowe C-A CELE ĆWICZEŃ Zrozumienie zasady działania przetwornika cyfrowo-analogowego. Poznanie podstawowych parametrów i działania układu DAC0800. Poznanie sposobu generacji symetrycznego

Bardziej szczegółowo

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu Temat: Sprawdzenie poprawności działania przerzutników. Wstęp: Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu cyfrowego, przeznaczonego do przechowywania i ewentualnego

Bardziej szczegółowo

Technika Mikroprocesorowa

Technika Mikroprocesorowa Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa

Bardziej szczegółowo

Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich działania.

Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich działania. Badanie liczników asynchronicznych - Ćwiczenie 4 1. el ćwiczenia Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich

Bardziej szczegółowo

Tranzystory bipolarne. Właściwości dynamiczne wzmacniaczy w układzie wspólnego emitera.

Tranzystory bipolarne. Właściwości dynamiczne wzmacniaczy w układzie wspólnego emitera. ĆWICZENIE 5 Tranzystory bipolarne. Właściwości dynamiczne wzmacniaczy w układzie wspólnego emitera. I. Cel ćwiczenia Badanie właściwości dynamicznych wzmacniaczy tranzystorowych pracujących w układzie

Bardziej szczegółowo

Światłowodowy kanał transmisyjny w paśmie podstawowym

Światłowodowy kanał transmisyjny w paśmie podstawowym kanał transmisyjny w paśmie podstawowym Układ do transmisji binarnej w paśmie podstawowym jest przedstawiony na rys.1. Medium transmisyjne stanowi światłowód gradientowy o długości 3 km. Źródłem światła

Bardziej szczegółowo

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI 1 ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI 15.1. CEL ĆWICZENIA Celem ćwiczenia jest poznanie podstawowych właściwości wzmacniaczy mocy małej częstotliwości oraz przyswojenie umiejętności

Bardziej szczegółowo

Podstawowe funkcje przetwornika C/A

Podstawowe funkcje przetwornika C/A ELEKTRONIKA CYFROWA PRZETWORNIKI CYFROWO-ANALOGOWE I ANALOGOWO-CYFROWE Literatura: 1. Rudy van de Plassche: Scalone przetworniki analogowo-cyfrowe i cyfrowo-analogowe, WKŁ 1997 2. Marian Łakomy, Jan Zabrodzki:

Bardziej szczegółowo

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Bramki logiczne Podstawowe składniki wszystkich układów logicznych Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości

Bardziej szczegółowo

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie Laboratorium Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie programowalnym FPGA. 1. Zasada działania algorytmów Algorytm Vernam a wykorzystuje funkcję

Bardziej szczegółowo

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU).

Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU). Ćwiczenie 31 Temat: Analogowe układy multiplekserów i demultiplekserów. Układ jednostki arytmetyczno-logicznej (ALU). Cel ćwiczenia Poznanie własności analogowych multiplekserów demultiplekserów. Zmierzenie

Bardziej szczegółowo

CHARAKTERYSTYKI BRAMEK CYFROWYCH TTL

CHARAKTERYSTYKI BRAMEK CYFROWYCH TTL CHARAKTERYSTYKI BRAMEK CYFROWYCH TTL. CEL ĆWICZENIA Celem ćwiczenia jest poznanie zasad działania, budowy i właściwości podstawowych funktorów logicznych wykonywanych w jednej z najbardziej rozpowszechnionych

Bardziej szczegółowo

Cechy karty dzwiękowej

Cechy karty dzwiękowej Karta dzwiękowa System audio Za generowanie sygnału dźwiękowego odpowiada system audio w skład którego wchodzą Karta dźwiękowa Głośniki komputerowe Większość obecnie produkowanych płyt głównych posiada

Bardziej szczegółowo

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ Laboratorium Podstaw Telekomunikacji Ćw. 4 WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ 1. Zapoznać się z zestawem do demonstracji wpływu zakłóceń na transmisję sygnałów cyfrowych. 2. Przy użyciu oscyloskopu cyfrowego

Bardziej szczegółowo

Przykładowe zadanie praktyczne

Przykładowe zadanie praktyczne Przykładowe zadanie praktyczne Opracuj projekt realizacji prac związanych z uruchomieniem i testowaniem kodera i dekodera PCM z układem scalonym MC 145502 zgodnie z zaleceniami CCITT G.721 (załączniki

Bardziej szczegółowo

ĆWICZENIE 2 Wzmacniacz operacyjny z ujemnym sprzężeniem zwrotnym.

ĆWICZENIE 2 Wzmacniacz operacyjny z ujemnym sprzężeniem zwrotnym. ĆWICZENIE 2 Wzmacniacz operacyjny z ujemnym sprzężeniem zwrotnym. Wykonanie ćwiczenia 1. Zapoznać się ze schematem ideowym układu ze wzmacniaczem operacyjnym. 2. Zmontować wzmacniacz odwracający fazę o

Bardziej szczegółowo

Przetwarzanie A/C i C/A

Przetwarzanie A/C i C/A Przetwarzanie A/C i C/A Instrukcja do ćwiczenia laboratoryjnego opracował: Łukasz Buczek 05.2015 Rev. 204.2018 (KS) 1 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z przetwornikami: analogowo-cyfrowym

Bardziej szczegółowo

Badanie przetworników A/C i C/A

Badanie przetworników A/C i C/A 9 POLITECHNIKA POZNAŃSKA KATEDRA STEROWANIA I INŻYNIERII SYSTEMÓW Pracownia Układów Elektronicznych i Przetwarzania Sygnałów ELEKTRONICZNE SYSTEMY POMIAROWE Instrukcja do ćwiczeń laboratoryjnych Badanie

Bardziej szczegółowo

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania. UKŁDAY CYFROWE Układy cyfrowe są w praktyce realizowane różnymi technikami. W prostych urządzeniach automatyki powszechnie stosowane są układy elektryczne, wykorzystujące przekaźniki jako podstawowe elementy

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Wstęp do Techniki Cyfrowej... Układy kombinacyjne Wstęp do Techniki Cyfrowej... Układy kombinacyjne Przypomnienie Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.

Bardziej szczegółowo

5 Filtry drugiego rzędu

5 Filtry drugiego rzędu 5 Filtry drugiego rzędu Cel ćwiczenia 1. Zrozumienie zasady działania i charakterystyk filtrów. 2. Poznanie zalet filtrów aktywnych. 3. Zastosowanie filtrów drugiego rzędu z układem całkującym Podstawy

Bardziej szczegółowo

PROGRAMOWALNE STEROWNIKI LOGICZNE

PROGRAMOWALNE STEROWNIKI LOGICZNE PROGRAMOWALNE STEROWNIKI LOGICZNE I. Wprowadzenie Klasyczna synteza kombinacyjnych i sekwencyjnych układów sterowania stosowana do automatyzacji dyskretnych procesów produkcyjnych polega na zaprojektowaniu

Bardziej szczegółowo

Zastosowania liniowe wzmacniaczy operacyjnych

Zastosowania liniowe wzmacniaczy operacyjnych UKŁADY ELEKTRONICZNE Instrukcja do ćwiczeń laboratoryjnych Zastosowania liniowe wzmacniaczy operacyjnych Laboratorium Układów Elektronicznych Poznań 2008 1. Cel i zakres ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ KDEMI MORSK KTEDR NWIGCJI TECHNICZEJ ELEMETY ELEKTRONIKI LORTORIUM Kierunek NWIGCJ Specjalność Transport morski Semestr II Ćw. 4 Podstawy techniki cyfrowej Wersja opracowania Marzec 5 Opracowanie: mgr

Bardziej szczegółowo

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż. Programowanie Układów Logicznych kod kursu: ETD6203 Szczegóły realizacji projektu indywidualnego W1 24.02.2016 dr inż. Daniel Kopiec Projekt indywidualny TERMIN 1: Zajęcia wstępne, wprowadzenie TERMIN

Bardziej szczegółowo

PODSTAWY ELEKTRONIKI TEMATY ZALICZENIOWE

PODSTAWY ELEKTRONIKI TEMATY ZALICZENIOWE PODSTAWY ELEKTRONIKI TEMATY ZALICZENIOWE 1. Wyznaczanie charakterystyk statycznych diody półprzewodnikowej a) Jakie napięcie pokaże woltomierz, jeśli wiadomo, że Uzas = 11V, R = 1,1kΩ a napięcie Zenera

Bardziej szczegółowo

Przetwornik analogowo-cyfrowy

Przetwornik analogowo-cyfrowy Przetwornik analogowo-cyfrowy Przetwornik analogowo-cyfrowy A/C (ang. A/D analog to digital; lub angielski akronim ADC - od słów: Analog to Digital Converter), to układ służący do zamiany sygnału analogowego

Bardziej szczegółowo

Badanie charakterystyk elementów półprzewodnikowych

Badanie charakterystyk elementów półprzewodnikowych Badanie charakterystyk elementów półprzewodnikowych W ramach ćwiczenia student poznaje praktyczne właściwości elementów półprzewodnikowych stosowanych w elektronice przez badanie charakterystyk diody oraz

Bardziej szczegółowo

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej Zestaw pytań finałowych numer : 1 1. Wzmacniacz prądu stałego: własności, podstawowe rozwiązania układowe 2. Cyfrowy układ sekwencyjny - schemat blokowy, sygnały wejściowe i wyjściowe, zasady syntezy 3.

Bardziej szczegółowo

Tranzystorowe wzmacniacze OE OB OC. na tranzystorach bipolarnych

Tranzystorowe wzmacniacze OE OB OC. na tranzystorach bipolarnych Tranzystorowe wzmacniacze OE OB OC na tranzystorach bipolarnych Wzmacniacz jest to urządzenie elektroniczne, którego zadaniem jest : proporcjonalne zwiększenie amplitudy wszystkich składowych widma sygnału

Bardziej szczegółowo

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch) DSCH2 to program do edycji i symulacji układów logicznych. DSCH2 jest wykorzystywany do sprawdzenia architektury układu logicznego przed rozpoczęciem projektowania fizycznego. DSCH2 zapewnia ergonomiczne

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Modulatory PWM CELE ĆWICZEŃ PODSTAWY TEORETYCZNE

Modulatory PWM CELE ĆWICZEŃ PODSTAWY TEORETYCZNE Modulatory PWM CELE ĆWICZEŃ Poznanie budowy modulatora szerokości impulsów z układem A741. Analiza charakterystyk i podstawowych obwodów z układem LM555. Poznanie budowy modulatora szerokości impulsów

Bardziej szczegółowo

WZMACNIACZ NAPIĘCIOWY RC

WZMACNIACZ NAPIĘCIOWY RC WZMACNIACZ NAPIĘCIOWY RC 1. WSTĘP Tematem ćwiczenia są podstawowe właściwości jednostopniowego wzmacniacza pasmowego z tranzystorem bipolarnym. Zadaniem ćwiczących jest dokonanie pomiaru częstotliwości

Bardziej szczegółowo

Tranzystor JFET i MOSFET zas. działania

Tranzystor JFET i MOSFET zas. działania Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej

Bardziej szczegółowo

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2 tatyczne i dynamiczne badanie przerzutników - ćwiczenie 2. Cel ćwiczenia Zapoznanie się z podstawowymi strukturami przerzutników w wersji TTL realizowanymi przy wykorzystaniu bramek logicznych NAND oraz

Bardziej szczegółowo

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Magistrale W układzie bank rejestrów do przechowywania danych. Wybór źródła danych

Bardziej szczegółowo

Struktury specjalizowane wykorzystywane w mikrokontrolerach

Struktury specjalizowane wykorzystywane w mikrokontrolerach Struktury specjalizowane wykorzystywane w mikrokontrolerach Przetworniki analogowo-cyfrowe i cyfrowoanalogowe Interfejsy komunikacyjne Zegary czasu rzeczywistego Układy nadzorujące Układy generacji sygnałów

Bardziej szczegółowo

Państwowa Wyższa Szkoła Zawodowa

Państwowa Wyższa Szkoła Zawodowa Państwowa Wyższa Szkoła Zawodowa w Legnicy Laboratorium Podstaw Elektroniki i Miernictwa Ćwiczenie nr 5 WZMACNIACZ OPERACYJNY A. Cel ćwiczenia. - Przedstawienie właściwości wzmacniacza operacyjnego - Zasada

Bardziej szczegółowo

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy. SigmaDSP jest niedrogim zestawem uruchomieniowym dla procesora DSP ADAU1701 z rodziny SigmaDSP firmy Analog Devices, który wraz z programatorem USBi i darmowym środowiskiem

Bardziej szczegółowo

2 Dana jest funkcja logiczna w następującej postaci: f(a,b,c,d) = Σ(0,2,5,8,10,13): a) zminimalizuj tę funkcję korzystając z tablic Karnaugh,

2 Dana jest funkcja logiczna w następującej postaci: f(a,b,c,d) = Σ(0,2,5,8,10,13): a) zminimalizuj tę funkcję korzystając z tablic Karnaugh, EUROELEKTRA Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 2010/2011 Zadania dla grupy elektronicznej na zawody II. stopnia (okręgowe) 1 Na rysunku przedstawiono przebieg prądu

Bardziej szczegółowo

ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia

ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia Opracował: dr inż. Jarosław Mierzwa KTER INFORMTKI TEHNIZNEJ Ćwiczenia laboratoryjne z Logiki Układów yfrowych ćwiczenie 202 Temat: Układy kombinacyjne 1. el ćwiczenia Ćwiczenie ma na celu praktyczne zapoznanie

Bardziej szczegółowo

Opis przedmiotu 3 części zamówienia Zestawy ćwiczeń

Opis przedmiotu 3 części zamówienia Zestawy ćwiczeń Opis przedmiotu 3 części zamówienia Zestawy ćwiczeń Załącznik 4c do SIWZ Lp. NAZWA OPIS GŁÓWNYCH PARAMETRÓW TECHNICZNYCH ILOŚĆ (szt.) Zestaw powinien składać się min. z modułu bazowego oraz modułów ćwiczeniowych

Bardziej szczegółowo

Politechnika Białostocka

Politechnika Białostocka Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: ELEKTRONIKA EKS1A300024 Zastosowania wzmacniaczy operacyjnych w układach

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6 Laboratorium Analogowych Układów Elektronicznych Laboratorium 6 1/6 Pętla synchronizacji fazowej W tym ćwiczeniu badany będzie układ pętli synchronizacji fazowej jako układu generującego przebieg o zadanej

Bardziej szczegółowo

Gdynia, dr hab. inż. Krzysztof Górecki, prof. nadzw. AMG Katedra Elektroniki Morskiej Akademia Morska w Gdyni

Gdynia, dr hab. inż. Krzysztof Górecki, prof. nadzw. AMG Katedra Elektroniki Morskiej Akademia Morska w Gdyni Gdynia, 2016-03-24 dr hab. inż. Krzysztof Górecki, prof. nadzw. AMG Katedra Elektroniki Morskiej Akademia Morska w Gdyni Ocena rozprawy doktorskiej mgr inż. Marcina Waleckiego nt. "Zastosowanie wielowejściowych

Bardziej szczegółowo

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10. Projekt z przedmiotu Systemy akwizycji i przesyłania informacji Temat pracy: Licznik binarny zliczający do 10. Andrzej Kuś Aleksander Matusz Prowadzący: dr inż. Adam Stadler Układy cyfrowe przetwarzają

Bardziej szczegółowo

Tranzystory bipolarne. Właściwości wzmacniaczy w układzie wspólnego kolektora.

Tranzystory bipolarne. Właściwości wzmacniaczy w układzie wspólnego kolektora. I. Cel ćwiczenia ĆWICZENIE 6 Tranzystory bipolarne. Właściwości wzmacniaczy w układzie wspólnego kolektora. Badanie właściwości wzmacniaczy tranzystorowych pracujących w układzie wspólnego kolektora. II.

Bardziej szczegółowo

LICZNIKI Liczniki scalone serii 749x

LICZNIKI Liczniki scalone serii 749x LABOATOIUM PODSTAWY ELEKTONIKI LICZNIKI Liczniki scalone serii 749x Cel ćwiczenia Zapoznanie się z budową i zasadą działania liczników synchronicznych i asynchronicznych. Poznanie liczników dodających

Bardziej szczegółowo

Część 6. Mieszane analogowo-cyfrowe układy sterowania. Łukasz Starzak, Sterowanie przekształtników elektronicznych, zima 2011/12

Część 6. Mieszane analogowo-cyfrowe układy sterowania. Łukasz Starzak, Sterowanie przekształtników elektronicznych, zima 2011/12 Część 6 Mieszane analogowo-cyfrowe układy sterowania 1 Korzyści z cyfrowego sterowania przekształtników Zmniejszenie liczby elementów i wymiarów układu Sterowanie przekształtnikami o dowolnej topologii

Bardziej szczegółowo

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY WFiIS LABORATORIUM Z ELEKTRONIKI Imię i nazwisko: 1. 2. TEMAT: ROK GRUPA ZESPÓŁ NR ĆWICZENIA Data wykonania: Data oddania: Zwrot do poprawy: Data oddania: Data zliczenia: OCENA CEL ĆWICZENIA Ćwiczenie

Bardziej szczegółowo

BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO

BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO Temat ćwiczenia: BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO 1. Wprowadzenie Ultradźwiękowy bezdotykowy czujnik położenia liniowego działa na zasadzie pomiaru czasu powrotu impulsu ultradźwiękowego,

Bardziej szczegółowo

a) dolno przepustowa; b) górno przepustowa; c) pasmowo przepustowa; d) pasmowo - zaporowa.

a) dolno przepustowa; b) górno przepustowa; c) pasmowo przepustowa; d) pasmowo - zaporowa. EUROELEKTRA Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 2009/2010 Zadania dla grupy elektroniczno-telekomunikacyjnej na zawody I. stopnia 1 Na rysunku przedstawiony jest schemat

Bardziej szczegółowo

Ćwiczenie nr 65. Badanie wzmacniacza mocy

Ćwiczenie nr 65. Badanie wzmacniacza mocy Ćwiczenie nr 65 Badanie wzmacniacza mocy 1. Cel ćwiczenia Celem ćwiczenia jest poznanie podstawowych parametrów wzmacniaczy oraz wyznaczenie charakterystyk opisujących ich właściwości na przykładzie wzmacniacza

Bardziej szczegółowo

Laboratorium Elektroniki

Laboratorium Elektroniki Wydział Mechaniczno-Energetyczny Laboratorium Elektroniki Badanie wzmacniaczy tranzystorowych i operacyjnych 1. Wstęp teoretyczny Wzmacniacze są bardzo często i szeroko stosowanym układem elektronicznym.

Bardziej szczegółowo

FDM - transmisja z podziałem częstotliwości

FDM - transmisja z podziałem częstotliwości FDM - transmisja z podziałem częstotliwości Model ten pozwala na demonstrację transmisji jednoczesnej dwóch kanałów po jednym światłowodzie z wykorzystaniem metody podziału częstotliwości FDM (frequency

Bardziej szczegółowo

Układy kryptograficzne z uŝyciem rejestrów LFSR

Układy kryptograficzne z uŝyciem rejestrów LFSR Układy kryptograficzne z uŝyciem rejestrów FSR Algorytmy kryptograficzne uŝywane w systemach telekomunikacyjnych własność modulo 2 funkcji XOR P K K = P = P 2 Rejestr z liniowym sprzęŝeniem zwrotnym FSR

Bardziej szczegółowo

PL B1. POLITECHNIKA WROCŁAWSKA, Wrocław, PL BUP 07/10. ZDZISŁAW NAWROCKI, Wrocław, PL DANIEL DUSZA, Inowrocław, PL

PL B1. POLITECHNIKA WROCŁAWSKA, Wrocław, PL BUP 07/10. ZDZISŁAW NAWROCKI, Wrocław, PL DANIEL DUSZA, Inowrocław, PL RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) PL (11) 213448 (13) B1 (21) Numer zgłoszenia: 386136 (51) Int.Cl. H03H 11/16 (2006.01) Urząd Patentowy Rzeczypospolitej Polskiej (22) Data zgłoszenia: 23.09.2008

Bardziej szczegółowo

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

Bardziej szczegółowo

Ćw. 8 Bramki logiczne

Ćw. 8 Bramki logiczne Ćw. 8 Bramki logiczne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi bramkami logicznymi, poznanie ich rodzajów oraz najwaŝniejszych parametrów opisujących ich własności elektryczne.

Bardziej szczegółowo

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA Autor: Daniel Słowik Promotor: Dr inż. Daniel Kopiec Wrocław 016 Plan prezentacji Założenia i cel

Bardziej szczegółowo

Przetwarzanie AC i CA

Przetwarzanie AC i CA 1 Elektroniki Elektroniki Elektroniki Elektroniki Elektroniki Katedr Przetwarzanie AC i CA Instrukcja do ćwiczenia laboratoryjnego opracował: Łukasz Buczek 05.2015 1. Cel ćwiczenia 2 Celem ćwiczenia jest

Bardziej szczegółowo

ĆWICZENIE nr 3. Badanie podstawowych parametrów metrologicznych przetworników analogowo-cyfrowych

ĆWICZENIE nr 3. Badanie podstawowych parametrów metrologicznych przetworników analogowo-cyfrowych Politechnika Łódzka Katedra Przyrządów Półprzewodnikowych i Optoelektronicznych WWW.DSOD.PL LABORATORIUM METROLOGII ELEKTRONICZNEJ ĆWICZENIE nr 3 Badanie podstawowych parametrów metrologicznych przetworników

Bardziej szczegółowo

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Bardziej szczegółowo

Podstawy Elektroniki dla Informatyki. Pętla fazowa

Podstawy Elektroniki dla Informatyki. Pętla fazowa AGH Katedra Elektroniki Podstawy Elektroniki dla Informatyki Pętla fazowa Ćwiczenie 6 2015 r. 1. Wstęp Celem ćwiczenia jest zapoznanie się, poprzez badania symulacyjne, z działaniem pętli fazowej. 2. Konspekt

Bardziej szczegółowo

Ćw. 7 Wyznaczanie parametrów rzeczywistych wzmacniaczy operacyjnych (płytka wzm. I)

Ćw. 7 Wyznaczanie parametrów rzeczywistych wzmacniaczy operacyjnych (płytka wzm. I) Ćw. 7 Wyznaczanie parametrów rzeczywistych wzmacniaczy operacyjnych (płytka wzm. I) Celem ćwiczenia jest wyznaczenie parametrów typowego wzmacniacza operacyjnego. Ćwiczenie ma pokazać w jakich warunkach

Bardziej szczegółowo

4. Systemy algebraiczne i wielomiany nad ciałami zastosowania Rodzaje systemów algebraicznych ciała, grupy, pierścienie

4. Systemy algebraiczne i wielomiany nad ciałami zastosowania Rodzaje systemów algebraicznych ciała, grupy, pierścienie Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

Bardziej szczegółowo