Implementacja algorytmu DES

Podobne dokumenty
Projektowanie złożonych układów cyfrowych

2 Kryptografia: algorytmy symetryczne

System cyfrowy. Układ sterujący (kontroler) Układ operacyjny (Datapath) Mikrooperacje wywoływane przez sygnały sterujące.

1.1. Standard szyfrowania DES

1. Maszyny rotorowe Enigma

Szyfry kaskadowe. permutacyjnej (SPP).

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE

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

Szyfry kaskadowe. Szyfry kaskadowe

Implementacja algorytmu szyfrującego

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

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

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

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

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

Projektowanie układów kryptograficznych Mariusz Rawski

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

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

1.1. Pozycyjne systemy liczbowe

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

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

Tranzystor JFET i MOSFET zas. działania

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Temat 7. Dekodery, enkodery

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

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

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

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

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

Przykładowe pytania DSP 1

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Struktura i działanie jednostki centralnej

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

Szyfrowanie informacji

Zapis liczb binarnych ze znakiem

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Wstęp do informatyki- wykład 1

Bezpieczeństwo danych i systemów informatycznych. Wykład 5

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

Specyfika projektowania Mariusz Rawski

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

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

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

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Systemy zapisu liczb.

Architektura komputerów Wykład 2

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawy Informatyki

LEKCJA. TEMAT: Funktory logiczne.

Wstęp do Informatyki

Algorytmy podstawieniowe

Authenticated Encryption

Kody splotowe. Zastosowanie

Sterowniki Programowalne (SP)

Sławomir Kulesza. Projektowanie automatów synchronicznych

Zarys algorytmów kryptograficznych

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

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

CAST, 3DES, GOST, IDEA, RC2, RC4,

Metody optymalizacji soft-procesorów NIOS

1. Operacje logiczne A B A OR B

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Architektura typu Single-Cycle

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

PROGRAMOWALNE STEROWNIKI LOGICZNE

Modelowanie układów sekwencyjnych w LabView - ćwiczenie 8

Układy kombinacyjne. cz.2

Ćw. 7: Układy sekwencyjne

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

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wprowadzenie do informatyki - ć wiczenia

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

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

Rijndael szyfr blokowy

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Projekt zespołowy. Część1: Projekt potokowej jednostki przetwarzającej przeznaczonej do realizacji algorytmu FFT. Rok akademicki 2008/2009

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Polcode Code Contest PHP-10.09

Luty 2001 Algorytmy (7) 2000/2001

Technologie Informacyjne

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.)

Układy cyfrowe - Algorytm Twofish

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Rys Schemat montażowy (moduł KL blok e) Tablica C B A F

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

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

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.

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Arytmetyka liczb binarnych

Wstęp do informatyki- wykład 1 Systemy liczbowe

Transkrypt:

mplementacja algorytmu DES Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Z Mariusz Rawski 1

Algorytm DES DES (Data Encryption Standard) - jest szyfrem blokowym, o algorytmie ogólnie znanym. Dane są szyfrowane blokami o długości 64 bitów (odpowiada to 8 literom ASC, każda zaopatrzona w bit parzystości). Blok 64 bitów tekstu jawnego podawany jest jako dane wejściowe algorytmu, wynikiem działania algorytmu jest blok 64 bitów szyfrogramu. Zarówno podczas szyfrowania, jak i deszyfrowania wykorzystuje się ten sam algorytm (za wyjątkiem różnic w operowaniu kluczem). Klucz ma długość 56 bitów. Zwykle klucz jest liczbą zapisaną za pomocą 64 bitów, przy czym każdy co ósmy bit jest bitem parzystości, który jest pomijany (tak jest, gdy klucz jest ciągiem ośmiu znaków alfabetu ASC). Kluczem może być dowolna liczba o długości 56 bitów, która może być zmieniona w dowolnej chwili. Z Mariusz Rawski 2

Algorytm DES Działanie algorytmu opiera się na kombinacji dwóch podstawowych technik szyfrowania: mieszania i rozpraszania. odstawowy blok, z którego jest zbudowany DES stanowi pojedynczą kombinację tych technik (podstawienie, za którym następuje permutacja) działającą z udziałem klucza. Ciąg tych działań nazywany jest rundą. Szyfrowanie i deszyfrowanie za wykorzystaniem algorytmu DES składa się z 16 rund. trakcie każdej rundy dokonywane są te same obliczenia na wynikach z poprzedniej rundy i specjalnym podkluczu K i generowanym z 64-bitowego klucza. Dodatkowo przed pierwszą i po ostatniej rundzie bity są permutowane w ustalony sposób. Algorytm wykorzystuje tylko standardową arytmetykę i operacje logiczne na liczbach o długości co najwyżej 64 bitów. Z Mariusz Rawski 3

Algorytm DES o permutacji początkowej blok wejściowy (64-bitowy blok tekstu jawnego) jest dzielony na lewą i prawą połowę, o długości 32 bitów każda. Następnie wykonywanych jest 16 rund jednakowych operacji, nazywanych funkcjami f, w czasie których dane są łączone z kluczem. o szesnastym cyklu lewa i prawa połowa są łączone i końcowa permutacja -1 będąca odwrotnością permutacji początkowej kończy przebieg algorytmu. Z Mariusz Rawski 4

każdym cyklu bity klucza są przesuwane, a następnie jest wybieranych 48 bitów z 56 bitów klucza. Algorytm DES rawa połowa bloku danych jest rozszerzana do 48 bitów za pomocą permutacji z rozszerzeniem, łączona za pomocą bitowej sumy modulo 2 z 48 bitami przesuniętego i poddanego permutacji klucza. Z Mariusz Rawski 5

Algorytm DES Następnie jest dokonywane podstawienie bloku 32 nowych bitów za pomocą algorytmu podstawiania, a potem jeszcze raz jest dokonywana permutacja. e cztery operacje tworzą funkcję f. Ciąg wyjściowy funkcji f jest dalej łączony z lewą połową za pomocą bitowej sumy modulo 2. ynikiem tych operacji jest nowa prawa połowa bloku; stara prawa połowa staje się nową lewą połową. Operacje te są powtarzane 16 razy, tworząc 16 rund algorytmu DES. Z Mariusz Rawski 6

Funkcja f ermutacja z rozszerzeniem Suma modulo 2 z podkluczem Skrzynki podstawieniowe z 48 bitów na 32 bity ermutacja wyjść skrzynek podstwieniowych Z Mariusz Rawski 7

Schemat blokowy algorytmu Sterowanie Runda R -1 Generacja podkluczy Z Mariusz Rawski 8

Schemat blokowy rundy algorytmu Runda R E S 1 S 2 S 3 K S 4 S 5 S 6 S 7 L S 8 Z Mariusz Rawski 9

Schemat blokowy algorytmu Sterowanie Runda R -1 Generacja podkluczy Z Mariusz Rawski 10

ermutacja początkowa Dokonuje permutacji początkowej danych wejściowych składających się z 64 bitów wg podanej tabeli: 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Oznacza to przestawienie kolejnych bitów danych wejściowych np. na pozycji pierwszej umieszczamy bit 58, na drugiej bit 50, a na ostatniej bit 7. Odczytanie tabeli wierszami utworzy 64 bitowy ciąg poddany operacji transpozycji. Z Mariusz Rawski 11

ermutacja początkowa Zmiana domyślnej kolejności bitów ykorzystanie struktur języka AHDL do warunkowej generacji kodu ułatwia opis modułu 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Z Mariusz Rawski 12

ermutacja początkowa ermutacja inicjujaca ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized iniperm EF10K10QC208-3 64 64 0 0 0 % 64 11 % User ins: 64 64 0 Sporo, ale to tylko zamiana bitów. końcowym układzie zostanie zrealizowana przez odpowiednie przestawianie połączeń między wejściem a następnym blokiem bez angażowania komórek Z Mariusz Rawski 13

Schemat blokowy algorytmu Sterowanie Runda R -1 Generacja podkluczy Z Mariusz Rawski 14

Multiplekser wejściowy ybiera czy do dalszego przetwarzania pobierane są dane wejściowe, czy dane z poprzedniej rundy Z Mariusz Rawski 15

Multiplekser wejściowy Multiplekser wejsciowy rundy ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized inmux EF10K30BC356-3 129 64 0 0 0 % 64 3 % User ins: 129 64 0 akiego multipleksera nie da się zrobić lepiej, być może ta logika zostanie zintegrowana z inna nie wiążąc dodatkowych komórek. Z Mariusz Rawski 16

Schemat blokowy algorytmu Sterowanie Runda R -1 Generacja podkluczy Z Mariusz Rawski 17

Rejestr Zatrzaskuje dane obliczone w kolejnej rundzie Z Mariusz Rawski 18

Rejestr Rejestr 64-bitowy ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized register64 EF10K10QC208-3 65 64 0 0 0 % 64 11 % User ins: 65 64 0 akiego rejestru także nie da się zrobić lepiej, ale z tego względu, że są to jedynie przerzutniki jest nadzieja, że zostaną one połączone z pozostałą logika bez angażowania dodatkowych zasobów Z Mariusz Rawski 19

Schemat blokowy algorytmu Sterowanie Runda R -1 Generacja podkluczy Z Mariusz Rawski 20

ermutacja odwrotna -1 Na wejście tego bloku podane są dane otrzymane po zakończeniu 16 rundy kodowania. 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Otrzymane w ten dane stanowią zaszyfrowany ciągiem danych wejściowych. Z Mariusz Rawski 21

ermutacja odwrotna ykorzystanie struktur języka AHDL do warunkowej generacji kodu ułatwia opis modułu 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Z Mariusz Rawski 22

ermutacja odwrotna ermutacja odwrotna ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized invperm EF10K10QC208-3 64 64 0 0 0 % 64 11 % User ins: 64 64 0 Sporo, ale podobnie jak w przypadku permutacji początkowej to tylko zamiana bitów. końcowym układzie zostanie zrealizowana przez odpowiednie przestawianie połączeń między poprzednim blokiem a wyjściem bez angażowania komórek Z Mariusz Rawski 23

Schemat blokowy rundy algorytmu Runda R E S 1 S 2 S 3 K S 4 S 5 S 6 S 7 L S 8 Z Mariusz Rawski 24

ermutacja rozszerzająca Dokonuje permutacji rozszerzonej 32 bitowej prawej połowy, aby można było wykonać operację xor z 48 bitowym podkluczem. olega to na powieleniu niektórych bitów wejściowych na dwa wyjścia wg następującej zasady: 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 48 bitowe wyjście jest dzielone na 8 ciągów o długości 6 bitów, które posłużą do adresowania 8 S-boksów. Z Mariusz Rawski 25

ermutacja rozszerzająca ermutacja rozszerzająca Operacja XOR z podkluczem Z Mariusz Rawski 26

ermutacja rozszerzająca Dane wejściowe do S-boksów ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized sboxin_m EF10K10QC208-3 80 48 0 0 0 % 48 8 % User ins: 80 48 0 u najprawdopodobniej zostanie zużyte 48 komórek, gdyż permutacja to zwykłe przestawienie bitów, ale operacja xor będzie musiała być zrealizowana z wykorzystaniem komórek logicznych Z Mariusz Rawski 27

Schemat blokowy rundy algorytmu Runda R E S 1 S 2 S 3 K S 4 S 5 S 6 S 7 L S 8 Z Mariusz Rawski 28

Skrzynki podstawieniowe Każda ze skrzynek S-boks przypisuje jednej z 64 6 bitowych wartości wejściowych liczbę z zakresu 0..15, a więc 4 bitową. Dla każdego S-boksu 6 bitów wejściowych określa jednoznacznie 4 bitową wartość. Z ośmiu takich wartości kolejno jest tworzony 32 bitowy ciąg, który jest przesyłany do bloku p gdzie odbywa się jego permutacja. Z 6 bitowego ciągu, bity 1 i 6 określają numer wiersza, natomiast bity od 2 do 5 wyznaczają numer kolumny. Binarna reprezentacja liczby pod wskazanym miejscem jest przekazywana na wyjście danego S-boksu. S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Z Mariusz Rawski 29

Skrzynki podstawieniowe Bit 1 i 6 określają wiersz pozostałe kolumny S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Z Mariusz Rawski 30

Skrzynki podstawieniowe S-box S1 ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized s1 EF10K10LC84-3 6 4 0 0 0 % 55 9 % User ins: 6 4 0 Jeden S-box zajmuje aż tyle komórek wprowadza też duże opóźnienie. Z Mariusz Rawski 31

Skrzynki podstawieniowe S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 Liczba komórek 55 74 77 80 68 73 77 81 Max. opóźnienie 28,1 31,6 33,5 34,0 28,4 30,4 34,3 31,4 Razem 585 komórek z maksymalnym opóźnieniem 34,3 ns. Z o wszystko w jednej rundzie algorytmu a rund jest 16. ybór dotyczący budowy sekwencyjnego algorytmu DES był słuszny. rzy realizacji kombinacyjnej same skrzynki zajęły by 16 x 585 = 9360 komórek logicznych Mariusz Rawski 32

ermutacja R E Runda S 1 S 2 S 3 K S 4 S 5 S 6 S 7 L S 8 Z Mariusz Rawski 33

ermutacja Z Dokonuje permutacji na kolejno zestawionych wyjściach z S-boksów wg następującego schematu: 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 ynik permutacji jest sumowany bitowo modulo 2 z lewą połową początkowego bloku 64-bitowego. Następnie lewa i prawa połowa są zamieniane miejscami i zaczyna się kolejny cykl. o ostatniej iteracji prawa i lewa połowa słowa wynikowego nie są zamieniane miejscami, lecz zamiast tego na bloku bitów powstałych z połączenia R16L16 jest wykonywana permutacja końcowa -1 (stąd do deszyfrowania stosuje się też ten algorytm). Mariusz Rawski 34

ermutacja 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Z Mariusz Rawski 35

ermutacja ermutacja ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilezed pperm EF10K10C144-3 32 32 0 0 0 % 32 5 % User ins: 32 32 0 odobna sytuacja jak z innymi blokami permutującymi Z Mariusz Rawski 36

Funkcja f ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized ffunction EF10K20RC208-3 80 32 0 0 0 % 668 57 % User ins: 80 32 0 Z Mariusz Rawski 37

Runda ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized desround EF10K20RC240-3 112 64 0 0 0 % 710 61 % User ins: 112 64 0 Z Mariusz Rawski 38

Ścieżka przepływu danych Z Mariusz Rawski 39

Ścieżka przepływu danych ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized datapath EF10K20RC240-3 114 64 0 0 0 % 709 61 % User ins: 114 64 0 Runda wymagała 710 komórek dodanie permutacji wejściowej, wyjściowej, multipleksera i rejestru nie zwiększyło tej liczby. Jest to zgodne z naszymi przypuszczeniami. Oszacowanie szybkości działania jednej rundy jest obiecujące. Z Mariusz Rawski 40

Algorytm DES Z Mariusz Rawski 41

Algorytm DES ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized des EF10K20RC240-3 123 65 0 0 0 % 1050 91 % User ins: 123 65 0 Runda wymagała 710 komórek. raz z generacją klucza i sterowaniem dało to w sumie 1050 komórek jest to 91 % zasobów układu FLEX10K20 nie ma co nawet myśleć o realizacji kombinacyjnej bez zmiany układu programowalnego na znacznie większy Oszacowanie maksymalnej szybkości taktowania układu dało w rezultacie 15 MHz. Jeden blok 64 bitowy przetwarzany jest w 17 taktach zegara, wiec przepustowość układu wynosi: 15 * 10 6 /17 * 64 56 Mbitów/s i jest dość imponująca. Z Mariusz Rawski 42

Sterowanie Z Mariusz Rawski 43

Algorytm DES jak przyspieszyć Co zrobić by układ działał szybciej ykorzystać opcje syntezy logicznej systemu CAD do optymalizacji szybkości działania Z Mariusz Rawski 44

Algorytm DES trochę szybszy ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized des EF10K30RC240-3 123 65 0 0 0 % 1456 84 % User ins: 123 65 0 ymaga to wykorzystania 1456 komórek co stanowi 84 % zasobów układu FLEX10K30 oznacza to zmianę struktury programowalnej na większą ykorzystanie opcji syntezy logicznej pozwoliło zwiększyć maksymalną szybkości taktowania układu do 16,5 MHz. iec przepustowość układu wynosi: 16,5 * 10 6 /17 * 64 62 Mbitów/s Z Mariusz Rawski 45

Algorytm DES jak przyspieszyć Czy to jedyny sposób? Można wykorzystać inne narzędzia do syntezy logicznej, albo mechanizmy potokowości Z Mariusz Rawski 46

Dekompozycja S-boxów Każda ze skrzynek S-boks jest funkcją kombinacyjną Można ją więc zdekomponować i wykorzystać sieć bloków po dekompozycji do realizacji tych funkcji Z Mariusz Rawski 47

Skrzynki podstawieniowe Decomposed project: S1 ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized s1dek EF10K10LC84-3 6 4 0 0 0 % 25 4 % User ins: 6 4 0 ierwszy S-box zajmuje teraz 25 zamiast 55 ( dwukrotnie mniej!!!) wprowadza też mniejsze opóźnienie Zapowiada się ciekawie Z Mariusz Rawski 48

Skrzynki podstawieniowe S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 Liczba komórek 55 74 77 80 68 73 77 81 Max. opóźnienie 28,1 31,6 33,5 34,0 28,4 30,4 34,3 31,4 Liczba komórek 25 o dekompozycji 20 22 24 25 22 23 23 Max. opóźnienie 19,5 17,2 16,7 19,0 19,0 19,4 17,7 17,6 Z Razem 184 komórki w porównaniu do 585 komórek w realizacji wcześniejszej (ponad trzykrotnie mniej) z maksymalnym opóźnieniem 19,5 ns w porównaniu do 34,3 ns. rzy realizacji kombinacyjnej skrzynki zajęłyby teraz 16 x 184 = 2944 komórki logiczne teraz można o tym pomyśleć Mariusz Rawski 49

Funkcja f ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized ffunction EF10K10QC208-3 80 32 0 0 0 % 234 40 % User ins: 80 32 0 Z Mariusz Rawski 50

Algorytm DES na nowo ** DEVCE SUMMARY ** Chip/ nput Output Bidir Memory Memory LCs OF Device ins ins ins Bits % Utilized LCs % Utilized des EF10K20RC240-3 123 65 0 0 0 % 579 50 % User ins: 123 65 0 Układ prawie dwukrotnie mniejszy w sumie 579 komórek jest to zaledwie 50 % zasobów układu FLEX10K20 można więc myśleć o stosowaniu dodatkowych metod przyspieszających działanie układu np.. potokowość Oszacowanie maksymalnej szybkości taktowania układu dało w rezultacie 25,6 MHz. iec przepustowość układu wynosi: 25,6 * 10 6 /17 * 64 94 Mbitów/s i jest o wiele większa niż wcześniej Z Mariusz Rawski 51

Koniec projektu Z Mariusz Rawski 52