Piotr Kotlarz Insttut Mechaniki i Informatki Stosowanej Uniwerstet Kazimierza Wielkiego w Bdgoszcz Zbigniew Kotulski Insttut Podstawowch Problemów Technik Polska Akademia Nauk, Warszawa Insttutu Telekomunikacji Politechnika Warszawska Neuronow układ decbin, perspektw implementacji w jęzku Erlang. W tej prac prezentowana jest koncepcje neuronowego dekodera wartości dziesiętnch na binarne. Praca powstała na podstawie mojej rozpraw doktorskiej obronionej IPPT PAN w Warszawie w drugiej połowie 8 roku. Deczja o publikacji orginalnej koncepcji konstrukcji neuronowego dekodera wnika z faktu dalszego rozwijania implementacji neuronowch na potrzeb realizacji funkcji krptograficznch. Realizacje te bł prezentowane na wcześniejszch konferencjach KST. W zakresie dotchczasowch naszch (moich i mojego promotora, którego wmieniam jako współautora referatu) badań i ekspermentów narzędziem implementacjnm bł klasczne jęzki programowania (C, C++, Visual Basic) co jak się okazało ograniczało potencjalne możliwości zastosowania proponowanego rozwiązania w praktce. Niedawno zainteresowałem się środowiskiem programistcznm jakim jest Erlang. Po pobieżnm zainteresowaniu się dostępną (skromną) literaturą na ten temat wdaje się że implementacja sieci neuronowch realizującch funkcje krptograficzne w Erlangu otwiera nowe możliwości wkorzstania proponowanego rozwiązania.. Wprowadzenie Jako pierwszą realizację w Erlangu postanowiono zaimplementować blok neuronow któr jest kluczow jeśli mślim o neuronowch implementacjach np. algortmów szfrującch. Tm blokiem jest neuronow dekoder wartości dziesiętnch na binarne. O zaletach i motwacjach implementacji neuronowch funkcji krptograficznch napisane sporo zostało w pracach [][3][4]. Sam blok dekodera wstępuje we wszstkich neuronowch implementacjach algortmów szfrującch. Więc on jako pierwsz został wtpowan do przetestowania w nowej implementacji, w jęzku Erlang. Jest to też o tle ważn wbór że sam układ neuronowch został skonstruowan właśnie w sposób kaskadow i funkcjn co ma wiele wspólnego z filozofią programowania w Erlangu. Sama koncepcja układu dekodera jako moje orginalne rozwiązanie warta jest opublikowania, w formie osobnej prac naukowej, tm bardziej że dotąd publikowana nie bła. Usprawni to również dalsze publikacje już z etapu implementacji dzięki możliwości powołwania się na prace wcześniejsze. Z całą pewnością podczas wstąpienia na konferencji KST będę też mógł przedstawić już pierwsze wniki ekspermentów zrealizowanch w jęzku Erlang i porównać je z klascznmi implementacjami. PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/ 5
. Współczesne implementacje algortmów szfrującch Pojawienie się komputerów, a co ważniejszej, ich rozpowszechnienie spowodowało duże zapotrzebowanie na oprogramowanie umożliwiające szfrowanie przechowwanch i przesłanch informacji. Z punktu widzenia bezpieczeostwa danego szfru duże znaczenie ma nie tlko jakośd samego algortmu, ale również środowisko w jakim ten algortm pracuje. Zatem implementacja algortmu krptograficznego ma kluczowe znaczenie dla bezpieczeostwa. W praktce większośd ataków na sstem szfrowania wkorzstuje różnego rodzaju luki i niedociągnięcia w implementacjach np. atak na szfr AES w implementacji OPENSSL [5]. Często jest tak, że w toku badao i dskusji środowiska krptologów powstają dwie wersje szfru. Jedna na potrzeb implementacji sprzętowej, a druga programowej. Przkładem może tu bd rodzina szfrów strumieniowch opartch na generatorze FCSR[6],[7]. W prac [8] zaproponowano konstrukcję FCSR dla konstrukcji sprzętowch, natomiast w prac [9] proponowane są dwie wersje szfru X-FCSR-8 i X-FCSR-56 dostosowane do implementacji programowch. Bezpośrednią inspiracją do podjęcia prac na konstrukcją neuronowego układu szfrującego bła praca dotcząca dwurundowego algortmu AES w strukturach programowalnch []. Układ rekonfigurowane posiadają strukturę komórkową. Analogie do tej budow można zaobserwowad również w neuronowch układach szfrującch. 3. Neuronow dekoder wartości dziesiętnch na dwójkowe Istotnm elementem neuronowego układu szfrującego jest omawian dalej dekoder. Jest on istotnm elementem neuronowej implementacji nieliniowego przekształcenia jakim jest S-blok []. Zawartość poszczególnch komórek S-bloku stanowią wartości zmiennoprzecinkowe, jest to rozwiązanie wgodniejsze z punkt widzenia realizacji neuronowej. Charakter działania układu neuronowego jest taki, że zawsze będzie na wjściu udzielał odpowiedzi w postaci wartości przbliżonch. Z ekspermentów i doświadczeń przeprowadzonch w toku badań okazało się, że działanie sieci neuronowej, operującej na wartościach zmiennoprzecinkowch, użtej do realizacji S-bloku jest zasadne pod względem wdajności całego układu. Oczwiście odpowiedź S-bloku jest zawsze w postaci binarnej. Wobec tego koniecznm stało się opracowanie układu neuronowego, któr będzie realizował zamianę wartości zmiennoprzecinkowej na binarną. Zakładając, że cał projektowan układ ma bć realizowan za pomocą sieci neuronowej, zaistniała więc konieczność konstrukcji neuronowego dekodera. Układ taki na potrzeb przejrzstości dalszego wwodu nazwan został: decbin. Realizacja neuronowa pozwoli również na łatwość wprowadzania zmian w działaniu układu w zależności od wprowadzonch modfikacji w innch częściach sieci PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/ 6
realizującej S-blok. Projektowan układ decbin posiada jedno wejście, na które podawana będzie odpowiedź z wcześniejszego modułu [] implementacji s-bloku, w postaci dziesiętnej. Decbin na wjściu ma udzielić odpowiedzi w postaci 4 bitowej, binarnej. Tablica prawd dla projektowanego układu, przedstawiona jest w tabeli, Tabela Tablica prawd, kodowanie 6 wartości dziesiętnch do postaci binarnej. x 3 4 3 4 5 decbin 3 4 6 7 8 9 3 4 5 Ważnm założeniem jest fakt, ab konstrukcja układu kodującego bła uniwersalna i mogła bć w przszłości rozbudowwana. W tm celu przjęta została zasada budow modułowej, dzięki czemu możliwa jest łatwa modfikacja układu np. ze względu na wielkość zbioru możliwch sgnałów wejściowch, a co za tm idzie długość binarnego sgnału na wjściu. Pierwszm krokiem w rozważaniach jest sprowadzenie problemu kodowania do realizacji zadania klasfikacji, tpowego dla sieci neuronowch. Jeśli zamiast jednej tablic prawd skonstruować x czter osobne tabelice zestawiając odpowiednio :, x :, x : 3, x : 4, to możem zaobserwować, że funkcje, które opisują te tabele realizują podział sgnału wejściowego na dwie klas. Tak więc zadanie konstrukcji neuronowego układu kodującego polegać będzie na konstrukcji czterech odrębnch sieci, które będą realizował poszczególne funkcje. Ich charakterstki zapisane został w tabeli oraz na rsunku. Tabela. Tablice prawd dla układu decbin. A 3 4 5 6 7 8 9 3 4 5 PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/ 7
B 3 4 5 6 7 8 9 3 4 5 C 3 4 5 6 7 8 9 3 4 5 3 D 3 4 5 6 7 8 9 3 4 5 4,,8,6,4, Y X A 3 4 5 6 7 8 9 3 4 5,,8,6,4, Y X B 3 4 5 6 7 8 9 3 4 5,,8,6,4, Y X C 3 3 4 5 6 7 8 9 3 4 5,,8,6,4, Y X D 4 3 4 5 6 7 8 9 3 4 5 Rs. Bloki elementarne sieci decbin. Zidentfikowane więc został czter bloki elementarne, kolejnm krokiem jest ich implementacja neuronowa. PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/ 8
Realizacja bloku A Ten problem jest stosunkowo prostm do realizacji neuronowej, nie wmaga nawet przeprowadzania procesu uczenia i wstarcz pojedncz neuron, opisan na rsunku 3. X =X A X = W= W = f Y f,, p p, w i x, p i = 7 Rs. 3 Sieć realizująca blok A. Realizacja bloku B W tm przpadku zadanie jest nieco bardziej złożone, jeden neuron już nie wstarcz. Punktem wjścia do rozważań jest zwerfikowanie, jakie informacje będą podawane na wejście projektowanego układu. Na pewno na wejście sieci B podawana będzie wartość zmiennoprzecinkowa (ta sama, która jednocześnie znajdzie się na wejściu układu A ). Ponadto do dspozcji mam też odpowiedź układu A. Układ dokonuje podziału wartości zmiennoprzecinkowej na dwie grup. Sieć, która jest obecnie przedmiotem rozważań ma za zadanie również dzielenie sgnału wejściowego na grup. Jak widać na rsunku 4 odpowiedź układu B jest zależna od wartości podawanej na wjściu bloku A. A X B,,8,6,4, 3 4 5 6 7 8 9 3 4 5 6 Rs. 4 Zależność pomiędz układami B i A. Ta zależność właśnie zostanie wkorzstana do budow układu B. Problem można więc rozpatrwać w taki sposób, że mam podział sgnału wejściowego na dwie grup (moduł A ) oraz w każdej grupie podział na dwie podgrup (moduł B ). W celu realizacji modułu B skonstruowana została trzwarstwowa siec neuronowa. Poniżej (tabela 3) przedstawiona jest ogólna PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/ 9
koncepcja tej sieci. Tabela 3 zawiera tablice prawd oddające zasadę działania funkcji realizowanej przez układ B. Schemat budow modułu B pokazan jest na rsunku 5. X X I II III b X X b b 3 3 X 3 X4 X 5 X6 b 4 b 5 5 X 7 X8 6 b 6 Y X 4 b Rs. 5 Budowa modułu B. Tabela 3 Tablice prawd dla modułu B. Warstwa I Warstwa II Warstwa III B x x 3 4 x3 x4 x5 x6 Y5 Y6 x7 x8 Y x x Y 3 3 4 4 5 5 6 6 7 7 8 8 9 9 3 3 4 4 5 5 Tabela 3 zawiera tablice prawd dla poszczególnch warstw składającch się na sieć neuronową modułu B. Na poszczególne warstw składają się moduł elementarne, rsunek 5, którch zasada działania zostanie teraz przestawiona. Moduł b to neuron, którego zadaniem jest przekazanie na wjście tego samego sgnału jaki podawan jest na jego wejście. Moduł b ib3 to pojedncze neuron realizujące funkcję progową, odpowiednio z progiem p 3 oraz p. Element b, b, b3 nie wmagają procesu uczenia, ich wagi przjmują wartości i. Element b 4, b5, b6 wmagają już przeprowadzenia procesu uczenia. Do realizacji poszczególnch elementów wstarcz również jeden neuron posiadając dwa wejścia i jedno wjście. W tabeli 4 przedstawione został tablice PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/
prawd, jakie mają realizować poszczególne bloki b 4, b5, b6. Jednocześnie są one reprezentacją zbiorów uczącch, z tm, że dla polepszenia jakości procesu uczenia w zbiorach uczącch wartości został zastąpione wartościami -. Tabela 4 Tablice prawd dla modułów b4, b5, b5. b4 b5 b6 x x Y x x x x Tak więc układ składając się z elementów b do b6 realizuje funkcję zapisaną jako tabela prawd układu B. Realizacja bloku C. Realizacja kolejnego bloku wmaga użcia sieci neuronowej składającej się z dwóch warstw. Proces uczenia sieci przeprowadzan jest dla całej sieci od razu bez potrzeb rozbijania na podbloki. Na tm etapie realizacji kodera decbin na wejściu bloku C dsponujem trzema różnmi wartościami. Dostępna jest wartość zmiennoprzecinkowa, wnik działania bloku A i bloku B, co obrazuje rsunek 6. A B X3 C 3 C 3 4 5 6 7 8 9 3 4 5 X3 3 Rs. 6 Schemat działania modułu C. Prz wkorzstaniu trzech sgnałów wejściowch ( x, x, x3 ) realizacja tabeli prawd pokazanej na rsunku 6 możliwa jest za pomocą sieci neuronowej, składającej się z trzech neuronów i użwając powższe tablice prawd jako zbioru uczącego. Szczegółowa konstrukcja sieci pokazana jest na rsunku 7. Rsunek 8 przedstawia wkres odzwierciedlając proces uczenia. PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/
W X W f X 3 X4 = X 5 = X 6 = X3 W3 W W W3 f W W f Y f, f,, p p, gdzie: w i xi, j f k ( ), p =,5, Rs. 7 Sieć neuronowa realizująca moduł C. Błąd sieci,,,8,6,4, Ckl ucząc Realizacja bloku D Rs. 8 Przebieg procesu uczenia sieci neuronowej realizującej moduł C. Ostatni blok neuronowego kodera wartości dziesiętnch do postaci binarnej zrealizowan został zgodnie z taką samą ideą jak blok C. Różnicą jest tu fakt, że w pierwszej warstwie sieci wkorzstane został dwa neuron posiadające czter wejścia. W celu wkorzstania czterech sgnałów pochodzącch z wjść układów kodowaniu. A, B i C oraz wartości dziesiętnej, która poddawana jest A B X3 C 3 X3 X4 D 4 D Rs. 9 Schemat układu decbin Tabela 6 Tablica prawd dla modułu D 3 4 5 6 7 8 9 3 4 5 X3 X4 Y4 PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/
Tworząc sieć z przgotowanch bloków elementarnch A, B, C i D uzskujem sieć neuronową, rsunek 6, która realizuje kodowanie wartości zmiennoprzecinkowch do postaci binarnej czterobitowej. Układ decbin realizuje więc funkcję, której tablica prawd przedstawiona została w tabeli 6. Podsumowanie Wżej opisana koncepcja, realizacja neuronowego dekodera wartości dziesiętnch na binarne jest istotnm elementem budow neuronowch układów szfrującch. Układ decbin jak i neuronowa realizacja algortmów DES nie mogą konkurować z klascznmi implementacjami pod względem wdajności. Mają jednak inne zalet o którch bła mowa w już ctowanch naszch wcześniejszch pracach. Obiecując natomiast wdaje się bć kierunek związan z implementacjami w jęzku Erlang, szczególnie pod względem wdajności układu. [] NBS FIPS PUB 46, Data Encrption Standard, 977 [] P. Kotlarz, Z. Kotulski, On application of neural networks for s-boxes design., Lecture Notes in Artificial Intelligence, Springer-Verlag Berlin Heidelberg 5, ISBN: 3-54-69-9 [3] P. Kotlarz, Z. Kotulski, Neural network as a programmable block cipher experimental results, Advances in Information Processing and Protection, Springer-Verlag ISBN: 978- -387-7336-, 7 [4] P. Kotlarz, Znaczenie właściwości funkcji boolowskich w krptografii., Przegląd Telekomunikacjn, ISSN 3-3496 str 69-66, wrzesień 7 [5] D. J. Bernstein, Cache-timing attacks on AES, ENIGMA 5 [6] A. Klapper, M. Goresk, -adic Shift Register. Fast Software Encrption, Second International Workshop. Lecture Notes in Computer Science, vol. 95, Springer Verlag, N. Y., pp.74-78, 994 [7] A. Klapper, J. Xu, Algebraic Feedback Shift Registers, (submitted to Elsevier Preprint), 3 [8] F. Arnault, T.P. Berger, and C. Lauradoux. Update on F-FCSR stream cipher., ECRYPT Network of Excellence in Crptolog, Call for stream Cipher Primitives Phase 6 [9] F. Arnault, Thierr P. Berger, C. Lauradoux, X-FCSR - A New Software Oriented Stream Cipher Based Upon FCSRs, INDOCRYPT 7 [] V. Fischer, Realization of the round AES candidates using Altera FPGA, April PRZEGLĄD TELEKOMUNIKACYJNY - ROCZNIK LXXXIII - i WIADOMOŚCI TELEKOMUNIKACYJNE - ROCZNIK LXXIX - nr 8-9/ 3