DOKUMENTACJA KOŃCOWA. Szyfr blokowy Blowfish. Prowadzący: mgr inż. T. Wojciechowski. Warszawa, 5 czerwca 2008

Podobne dokumenty
Implementacja algorytmu szyfrującego

2 Kryptografia: algorytmy symetryczne

Wykład 5. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES. Podwójny algorytm DES

Układy cyfrowe - Algorytm Twofish

Implementacja algorytmu DES

Zarys algorytmów kryptograficznych

Układy cyfrowe projekt.

Authenticated Encryption

Bezpieczeństwo informacji oparte o kryptografię kwantową

Organizacja typowego mikroprocesora

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Szyfry kaskadowe. Szyfry kaskadowe

Szyfry kaskadowe. permutacyjnej (SPP).

Wykład 4 Temat: Algorytm symetryczny Twofish: cele projektowane, budowa bloków, opis algorytmu, wydajność algorytmu.

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

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

a) Zapisz wynik działania powyższego algorytmu dla słów ARKA i MOTOR...

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

1.1. Standard szyfrowania DES

Specyfika projektowania Mariusz Rawski

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski

INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win

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

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Wykład 7. komputerowych Integralność i uwierzytelnianie danych - główne slajdy. 16 listopada 2011

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

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

Logiczny model komputera i działanie procesora. Część 1.

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe.

Struktura i działanie jednostki centralnej

Szyfrowanie informacji

1. Maszyny rotorowe Enigma

Projekt prostego procesora

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999

Magistrala systemowa (System Bus)

Ćw. 7: Układy sekwencyjne

Zadanie 1. Potęgi (14 pkt)

Budowa komputera Komputer computer computare

Programowanie i techniki algorytmiczne

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Metody szyfrowania danych

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

MIKROKONTROLERY I MIKROPROCESORY

Rijndael szyfr blokowy

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Bezpieczeństwo systemów komputerowych

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Przykładowe pytania DSP 1

Comparing the speed of the selected hash and encryption algorithms

Ochrona Systemów Informacyjnych. Elementy Kryptoanalizy

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

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Krótkie wprowadzenie do ModelSim i Quartus2

Bezpieczeństwo kart elektronicznych

Szyfry strumieniowe RC4. Paweł Burdzy Michał Legumina Sebastian Stawicki

Załóżmy, że musimy zapakować plecak na wycieczkę. Plecak ma pojemność S. Przedmioty mają objętości,,...,, których suma jest większa od S.

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Bezpieczeństwo systemów komputerowych. Podpis cyfrowy. Podpisy cyfrowe i inne protokoły pośrednie

Użycie AVR Studio do kompilacji AVRUB

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Algorytm. a programowanie -

Kryptografia szyfrowanie i zabezpieczanie danych

Algorytmy podstawieniowe

Synteza strukturalna automatu Moore'a i Mealy

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Seminarium Ochrony Danych

LEKCJA TEMAT: Współczesne procesory.

Architektura komputerów. Asembler procesorów rodziny x86

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

LICZNIKI LABORATORIUM. Elektronika AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji

LEKCJA TEMAT: Zasada działania komputera.

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

5. Rozwiązywanie układów równań liniowych

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Arytmetyka liczb binarnych

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

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

dr inż. Jarosław Forenc

Bezpieczeństwo systemów i sieci komputerowych

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

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

Transkrypt:

Warszawa, 5 czerwca 2008 Monika Rojek Michał Krotewicz Piotr Duda Jan Bystroń gr. 4T1 DOKUMENTACJA KOŃCOWA Szyfr blokowy Blowfish. Prowadzący: mgr inż. T. Wojciechowski

1. Opis algorytmu Blowfish to szyfr blokowy stworzony przez Bruce'a Schneiera w 1993 roku jako szybka i bezpłatna alternatywa dla istniejących ówcześnie algorytmów. Algorytm operuje na 64- bitowym bloku wejściowym tekstu jawnego, który przetwarzamy w 16-tu rundach. Maksymalna długość klucza to 448 bitów. 1.1 Zasada działania Szyfrowanie algorytmem Blowfish przebiega w następujący sposób: a) Inicjujemy S-bloki i skrzynkę P kluczy pomocniczych ma podstawie głównego klucza użytkownika. S-bloków jako skrzynek podstawień mamy w Blowfish cztery, gdzie każda z nich posiada 256 elementów, z kolei każdy element jest wartością 32-bitową. W przypadku kluczy pomocniczy P mamy jedną skrzynkę z 18-ma elementami, również wartość każdego elementu to 32 bity. S-bloki: S0[0..255], S1[0..255], S2[0..255], S3[0..255] P: P[0..17] b) dzielimy 64 bity tekstu jawnego "m" na xl (starsze 32 bity) i xr (młodsze 32 bity), c) wykonujemy operację sumy modulo 2 (xor) pierwszego klucza pomocniczego P1 z xl, d) wynik z punktu "c" poddajemy operacjom wynikającym w funkcji "F", e) wykonujemy operacje sumy modulo 2 wyniku z punktu "d" z xr, f) zamieniamy miejscami xl i xr, g) wracamy do punktu "c" wykonując xor z kolejnym kluczem pomocniczym Pi. Wykonujemy łącznie 16 iteracji licznika "i", tyle ile rund jest wymaganych w algorytmie Bruce Schneiera. Po 16-tym cyklu przechodzimy do następnego punktu kończąc działanie algorytmu, ( UWAGA! Po 16-tym cyklu nie zamieniamy miejscami xl i xr!!! Nie wykonujemy punktu "f"), h) wykonujemy xor xr z P17 jako 17-tym kluczem pomocniczym i xor-ujemy xl z P18, i) łączymy xl i xr ze sobą w 64-ro bitowy blok otrzymując tym samym szyfrogram "c". 2

Powyższy opis może wydawać się trochę zawiły dlatego prościej przedstawić zasadę działania algorytmu na poniższym schemacie: Schemat ogólny algorytmu Blowfish z 16-ma rundami. 3

1.1.1 Funkcja F Funkcja "F" wykonuje proste operacje arytmetyczne: suma modulo 2 oraz operacja dodawania modulo 2 32. Wejściem dla naszej funkcji jest 32-bitowa wartość. Zostaje ona rozłożona na cztery 8-bitowe wartości będące indeksami dla poszczególnych S-bloków. W algorytmie wykorzystujemy 4 S-bloki, każdy blok posiada 256 elementów. Poniższy schemat funkcji "F" rozwieje wszelkie wątpliwości: Rys 1: Schemat funkcji F 1.1.2 Inicjalizacja algorytmu Autor algorytmu przyjął pewne wartości pierwotne zarówno dla S-bloków jak i kluczy pomocniczych P. Wartości te modyfikujemy w zależności od przyjętego klucza użytkownika. Tak więc wykonujemy następujące kroki: Dla wszystkich 18-tu 32-bitowych indeksów skrzynki P, podstawiamy: P[i] := P[i] xor KEY32, dla 0 <= i <= 17, gdzie KEY32 to kolejne 32 bity klucza licząc od początku. Jeśli użytkownik nie podał pełnego 448-bitowego klucza, natomiast klucz jest ciągiem np. "abcd", budujemy klucz równoważny składający się z ciągu "abcdabcdabcd...abcd" dopełniając do 448 bitów. Jednak jeśli klucz użytkownika jest równy dokładnie 448 bitów, dopełniamy ostatnie 4 podklucze (P14, P15, P16, P17), wracając do pierwszych 32-bitów klucza użytkownika. Poniżej przedstawiam algorytm generowania podkluczy Blowfish. 4

Algorytm generowania kluczy pomocniczych P. 1. Len = Length(KEY) 2. k = 0 3. for i = 0 to 17 do 4. A32 = KEY[(k + 3) modulo Len) 5. A32 = A32 + (KEY[(k + 2) modulo Len] shl 8) 6. A32 = A32 + (KEY[(k + 1) modulo Len] shl 16) 7. A32 = A32 + (KEY[k] shl 24) 8. P[i] = P[i] xor A32 9. k = (k + 4) modulo Len Następnym krokiem jest szyfrowanie zerowego 64-bitowego bloku algorytmem Blowfish przy pomocy wygenerowanych podkluczy z poprzedniego punktu. Proces szyfrowania wykonujemy 9 razy, tak aby zmodyfikować każdy klucz pomocniczy P. Algorytm wykonujący tą czynność poniżej. Algorytm generowania kluczy pomocniczych 1. Dane = 0 // 64-ro bitowy blok w celu zaszyfrowania 2. for i = 0 to 8 do 3. Szyfrogram = BlowfishEncrypt(Dane) 4. P[i * 2] = Szyfrogram(xL) 5. P[i * 2 + 1] = Szyfrogram(xR) 6. Dane = Szyfrogram Modyfikujemy teraz zawartość czterech S-bloków, każdy złożony z 256 elementów. Modyfikacja S-bloków Zwróćmy uwagę, że szyfrowaliśmy ten sam blok o nazwie "dane" nie zerując go po zakończeniu poprzedniego algorytmu, tak więc wynik szyfrowania z ostatniego kroku algorytmu "Algorytm generowania kluczy pomocniczych" był wartością początkową dla pierwszej iteracji. 5

1.1.3 Szyfrowanie i deszyfrowanie algorytmem Blowfish Procedury szyfrowania i deszyfrowania możemy zapisać w taki sposób: BlowfishEncrypt (m) 1. xl = wybierz starsze 32 bity z wiadomości "m" 2. xr = wybierz młodsze 32 bity z wiadomości "m" 3. for i = 0 to 15 do 4. xl = xl xor P[i] 5. xr = xr xor F(xL) 6. if i < 15 then 7. Tmp = xl 8. xl = xr 9. xr = Tmp 10. xl = xl xor P[17] 11. xr = xr xor P[16] 12. Return xl złącz z xr do 64 bitów BlowfishDecrypt (c) 1. xl = wybierz starsze 32 bity z szyfrogramu "c" 2. xr = wybierz młodsze 32 bity z szyfrogramu "c" 3. xl = xl xor P[17] 4. xr = xr xor P[16] 5. for i = 15 downto 0 do 6. xr = xr xor F(xL) 7. xl = xl xor P[i] 8. if i > 0 then 9. Tmp = xl 10. xl = xr 11. xr = Tmp 12. Return xl złącz z xr do 64 bitów 1.2 Bezpieczeństwo algorytmu Algorytm operuje na 64-bitowych blokach i używa kluczy od 32 do 448 bitów. Ma on postać szyfru Feistela z 16. rundami z S-boxami zależnymi od klucza. Każda zmiana klucza wymaga dość sporej ilości wstępnych obliczeń, żeby ustalić S-boxy. Z tego powodu atak brute-force trwa znacznie dłużej niż można byłoby się spodziewać. W typowych algorytmach jeśli długość klucza to k, a koszt zakodowania bloku to B, koszt ataku brute-force wynosi 2kB. W przypadku Blowfisha trzeba dla każdego klucza obliczyć S-boxy, co zajmuje tyle co zakodowanie ok. 29 bloków, a więc czas ataku brute-force wynosi około 2k + 9B (a zatem atak na 64-bitowy Blowfish zajmuje mniej więcej tyle czasu co 6

na 73-bitowy bardziej tradycyjny szyfr). Wadą tego rozwiązania są dość duże wymagania pamięciowe potrzebne są ponad 4 kb pamięci, co nie jest problemem dla nawet słabych komputerów, ale jest już dla np. kart chipowych. Nie istnieją znane ataki na Blowfisha o ilości rund większej niż 4. Są znane, dość duże jak na symetryczny szyfr blokowy, grupy słabych kluczy, czyli takich, dla których Blowfish jest słabszy niż dla typowych kluczy (większość szyfrów posiada takowe, jednak szansa na wylosowanie takiego klucza jest bardzo niska). 7

2. Interfejs układu Schemat interfejsu układu. W- stan wysoki N- stan niski 8

3. Struktura układu (1) Mux_rb, który odpowiada za przetwarzanie klucza na odpowiednie bloki P oraz na S- boxy. Mux posiada licznik zliczający do 14. Kolejne pakiety są przesyłane do pamięci RAM. (2) Pamięć RAM- przechowuje dane dotyczące aktualnego podklucza -> 18 elementów 32- bitowych. 18 elementów można zakodować na 5 bitach. Posiada dwa wejścia ( adresowe 5 bitowe i dane 32 bitowe_ P[14]=P[0], P[15]=P[1], P[16]=P[2], P[17]=P[3] (3) Pamięć RAM- przechowuje dane dotyczące aktualnych S-boxów. Posiada 2 wejścia (adres 2 bity, dane 32 bity). 4 S-boxy 256elemntów po 32 bity. (4) (5) mux- dobiera wejścia do rejestrów (6) 64 bitowy rejestr- przechowuje wprowadzone dane. rej A, B, C, D przechowuje odpowiednie wartości z S-boxów wyliczane z S 1,a, S 1,b, itd., które zostają następnie przekazane do bloku funkcji F: F(Xl)=((S 1,1 +S 2,b mod 2 32 )XOR S 3,c )+S 4,d mod 2 32

4. Opis działania układu Automat, który jest odpowiedzialny za przygotowanie układu do zaszyfrowania lub też odszyfrowania naszych danych wejściowych. Inicjuje on tablicę kluczy pomocniczych oraz SBOXY. S_IDLE - stan poczatkowy S_SZYFR - stan zwiazany z szyfrowaniem S_KLUCZ - stan poczatkowy klucza S_KLUCZ_PARRAY_INIT - inicjalizacja tablicy kluczy pomocniczych S_KLUCZ_SBOX_INIT - inicjalizacja sboxów na podstawie kluczy S_KLUCZ_PARRAY_SZYFR - szyfrowanie tablicy kluczy pomocniczych S_KLUCZ_PARRAY_WRITE_HIGH - przetwarzanie kluczy pomocniczych S_KLUCZ_PARRAY_WRITE_LOW - stan po przetworzeniu kluczy pomocniczych S_KLUCZ_SBOX_SZYFR - szyfrowanie sboxow S_KLUCZ_SBOX_WRITE_HIGH - przetwarzanie sboxow S_KLUCZ_SBOX_WRITE_LOW - stan po przetwarzaniu sboxow

12

Automat odpowiedzialny za szyfrowanie. Na początku jest inicjalizacja ostatnich dwóch elementów tablicy kluczy pomocniczych. S_INIT - Stan poczatkowy S_INIT_P16 - Stan inicjalizacji dla 17 (P16) elementu tablicy kluczy pomocniczych S_INIT_P17 - Stan inicjalizacji dla 18 (P17) elementu tablicy kluczy pomocniczych S_INIT_CZEKAJ - Stan oczekiwania S_IDLE - Stan bezczynnosci S_SZYFRUJ - Szyfrowanie

5. Testowanie Przetestowaliśmy funkcjonalność naszego szyfru blokowego dla poniższych 34 wektorów testujących. Wektory testujące zostały pobrane ze strony autora algorytmu http://www.schneier.com/code/vectors.txt. key bytes clear bytes cipher bytes 0000000000000000 0000000000000000 4EF997456198DD78 FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 51866FD5B85ECB8A 3000000000000000 1000000000000001 7D856F9A613063F2 1111111111111111 1111111111111111 2466DD878B963C9D 0123456789ABCDEF 1111111111111111 61F9C3802281B096 1111111111111111 0123456789ABCDEF 7D0CC630AFDA1EC7 0000000000000000 0000000000000000 4EF997456198DD78 FEDCBA9876543210 0123456789ABCDEF 0ACEAB0FC6A0A28D 7CA110454A1A6E57 01A1D6D039776742 59C68245EB05282B 0131D9619DC1376E 5CD54CA83DEF57DA B1B8CC0B250F09A0 07A1133E4A0B2686 0248D43806F67172 1730E5778BEA1DA4 3849674C2602319E 51454B582DDF440A A25E7856CF2651EB 04B915BA43FEB5B6 42FD443059577FA2 353882B109CE8F1A 0113B970FD34F2CE 059B5E0851CF143A 48F4D0884C379918 0170F175468FB5E6 0756D8E0774761D2 432193B78951FC98 43297FAD38E373FE 762514B829BF486A 13F04154D69D1AE5 07A7137045DA2A16 3BDD119049372802 2EEDDA93FFD39C79 04689104C2FD3B2F 26955F6835AF609A D887E0393C2DA6E3 37D06BB516CB7546 164D5E404F275232 5F99D04F5B163969 1F08260D1AC2465E 6B056E18759F5CCA 4A057A3B24D3977B 584023641ABA6176 004BD6EF09176062 452031C1E4FADA8E 025816164629B007 480D39006EE762F2 7555AE39F59B87BD 49793EBC79B3258F 437540C8698F3CFA 53C55F9CB49FC019 4FB05E1515AB73A7 072D43A077075292 7A8E7BFA937E89A3 49E95D6D4CA229BF 02FE55778117F12A CF9C5D7A4986ADB5 018310DC409B26D6 1D9D5C5018F728C2 D1ABB290658BC778 1C587F1C13924FEF 305532286D6F295A 55CB3774D13EF201 0101010101010101 0123456789ABCDEF FA34EC4847B268B2 1F1F1F1F0E0E0E0E 0123456789ABCDEF A790795108EA3CAE E0FEE0FEF1FEF1FE 0123456789ABCDEF C39E072D9FAC631D 0000000000000000 FFFFFFFFFFFFFFFF 014933E0CDAFF6E4 FFFFFFFFFFFFFFFF 0000000000000000 F21E9A77B71C49BC 0123456789ABCDEF 0000000000000000 245946885754369A FEDCBA9876543210 FFFFFFFFFFFFFFFF 6B5C5A9C5D9E0A5A W ostatecznej wersji naszego projektu stworzyliśmy dwa testbanche odpowiednio dla szyfrowania i deszyfrowania. W każdym testbanchu znajdują się po dwa główne procesy( pierwszy odpowiada za wczytywanie danych i klucza, natomiast drugi za zapisywanie do pliku zaszyfrowanych lub też odszyfrowanych danych. Testbanch szyfrujący pobiera klucz z pliku KLUCZ.txt oraz dane z pliku DANE.txt, a w końcowej fazie zapisuje do pliku WYJSCIOWE.txt. Testbanch deszyfrującym pobiera klucz z pliku KLUCZ.txt oraz dane z pliku WYJSCIOWE.txt, a w końcowej fazie zapisuje do pliku DANE.txt W każdym pliku znajduje się jeden wektor w zapisie hexadecymalnym.

Sygnały wykorzystywane w : Testbanchu szyfrującym : - CLK - RESET - KLUCZ_SYNCHRO synchronizujemy względem zegara - KLUCZ_DANE_WE przypisujemy klucz z pliku KLUCZ.txt - DANE_WE_SYNCHRO synchronizujemy względem zegara - ENCRYPT - Szyfrowanie - DANE_WE przypisujemy dane wejściowe z pliku DANE.txt - DANE_WY_SYNCHRO synchronizujemy dane wyjściowe z zegarem - DANE_WY zapisujemy do pliku wyjściowego WYJSCIOWE.txt 1. Symulacja z Szyfrowania 15

Testbanchu deszyfrującym : - CLK - RESET - KLUCZ_SYNCHRO synchronizujemy względem zegara - KLUCZ_DANE_WE przypisujemy klucz z pliku KLUCZ.txt - DANE_WE_SYNCHRO synchronizujemy względem zegara - ENCRYPT - deszyfrowanie - DANE_WE przypisujemy dane wejściowe z pliku WYJSCIOWE.txt - DANE_WY_SYNCHRO synchronizujemy dane wyjściowe z zegarem - DANE_WY zapisujemy do pliku wyjściowego DANE.txt 2. Symulacja z Deszyfrowania Przy wykorzystaniu Quartusa przeprowadziliśmy syntezy dla układu EP2C70F896C6 z rodziny Cyklone II (nasz układ posiadał ok. 600 pinów co nie dało się zrealizować układu EP2C35F672C6). Otrzymane wyniki dla układu EP2C70F896C6 Rodzaj kodowania - stanów automatu Ustawienia kompilacji Liczba komórek logicznych Częstotliwość zegara [MHz] One-hot Area 4328 72,49 One-hot Balanced 4325 68,03 One-hot Speed 4409 69,01 Minimal bits Balanced 4324 74,93 16