Projektowanie układów kryptograficznych Mariusz Rawski

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

Download "Projektowanie układów kryptograficznych Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/"

Transkrypt

1 CAD Projektowanie układów kryptograficznych

2 Kryptografia Kryptografia to dziedzina nauki, zajmująca się przekształcaniem informacji zwanej tekstem jawnym (plaintext) w informację zaszyfrowaną zwaną szyfrogramem (ciphertext) przy wykorzystaniu klucza szyfrującego zdefiniowanego przez użytkownika. Przekształcenie musi być dokonane w taki sposób, aby osoba dysponująca szyfrogramem nie mogła, bez znajomości klucza szyfrującego, odtworzyć tekstu jawnego w rozsądnym czasie. Algorytmy, które dokonują takiego przekształcenia nazywane są szyframi lub algorytmami kryptograficznymi. Większość algorytmów kryptograficznych wykorzystywanych dzisiaj to algorytmy blokowe, które charakteryzują się tym, że jednorazowo przekształcają fragment (blok) tekstu jawnego. Dla porównania algorytmy strumieniowe przekształcają dane o różnej długości. Szyfry strumieniowe mogą być postrzegane jako generatory pseudolosowe z ziarnem (seed), który stanowi klucz szyfrujący. Pseudolosowe liczby generowane przez taki generator są poddawane operacji XOR (sumy modulo 2) z teksem jawnym tworząc szyfrogram Algorytmy kryptograficzne charakteryzują się zazwyczaj dużą złożonością obliczeniową. Z tego powodu najbardziej efektywne realizacje takich algorytmów to realizacje sprzętowe. Algorytmy blokowe najczęściej są bardziej złożone od algorytmów strumieniowych zarówno pod względem zasady działania, jak i realizacji. 2

3 DES Doskonałym przykładem szyfru blokowego, który ilustruje najbardziej istotne koncepcje wykorzystywane w takich algorytmach jest algorytm DES (Data Encryption Standard). Algorytm DES został zaprojektowany w latach przez firmę IBM. W 1976 roku organizacja NIST (National Institute of Standards and Technology) zaaprobowała ten algorytm jako oficjalny standard szyfrowania. Został on zaprojektowany pod kontem realizacji sprzętowych, dlatego też realizowany programowo jest bardzo niewydajny. Wraz z upływem czasu algorytm ten stawał się coraz mniej odporny na kryptoanalizę różnicową co spowodowane było nieustannie zwiększającą się możliwością obliczeniową komputerów. W 1997 roku organizacja RSA Security ogłosiła konkurs na złamanie szyfru DES. Konkurs ten wygrał projekt DESCHALL wykorzystując tysiące komputerów połączonych siecią Internet. Czas potrzebny do złamania algorytmu wynosił kilka miesięcy. Rok później organizacja Electronic Frontier Foundation zaprezentowała urządzenie o nazwie Deep Crack. Dzięki wykorzystaniu 1800 układów specjalnie zaprojektowanych w technologii full custom urządzenie to pozwalało złamać algorytm DES w mniej niż 3 dni. Inne rozwiązanie o nazwie COPACOBANA zaproponowane przez zespoły z uniwersytetów Bochum i Kiel zbudowane zostało z wykorzystaniem 120 układów FPGA Spartan firmy Xilinx. Średni czas złamania szyfru DES z wykorzystaniem tego urządzenia wynosi ok. 6 dni. W 2001, po zakończeniu międzynarodowego konkursu, organizacja NIST zastąpiła szyfr DES nowym algorytmem AES (Advanced Encryption Standard). 3

4 Algorytm DES (1) 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 ASCII, 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 ASCII). Kluczem może być dowolna liczba o długości 56 bitów, która może być zmieniona w dowolnej chwili. 4

5 Algorytm DES (2) Działanie algorytmu opiera się na kombinacji dwóch podstawowych technik szyfrowania: mieszania i rozpraszania. Podstawowy 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. W 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. 5

6 Algorytm DES (3) Po permutacji początkowej IP 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. plain_data init_perm key pc1_perm L 0 R 0 C 0 D 0 Następnie wykonywanych jest 16 rund jednakowych operacji, nazywanych funkcjami f, w czasie których dane są łączone z kluczem. f K 1 pc2_perm shl shl Po szesnastym cyklu lewa i prawa połowa są łączone i końcowa permutacja IP-1 będąca odwrotnością permutacji początkowej kończy przebieg algorytmu. L 1 R 1 f K 2 pc2_perm C 1 D 2 shl shl Dla każdej rundy generowany jest oddzielny podklucz K i. Z 64 bitowego klucza głównego K (key) w wyniku permutacji selekcjonującej pc1_perm tworzone są 28 bitowe bloki C i D. Bloki te są przesuwane w lewo o 1 lub 2 bity w zależności od numeru rundy, a następnie przy wykorzystaniu permutacji selekcjonującej pc2_perm jest wybieranych 48 bitów z 56 bitów klucza. L 2 R 2 C 2 D 2 shl shl f K n pc2_perm L 15 R 15 C 15 D 15 shl shl f K 16 pc2_perm L 16 R 16 C 16 D 16 inv_perm ciphered_data 6

7 Algorytm DES (4) 7

8 Algorytm DES (5) W każdym cyklu bity klucza są przesuwane, a następnie jest wybieranych 48 bitów z 56 bitów klucza. Prawa 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. Następnie jest dokonywane podstawienie bloku 32 nowych bitów za pomocą algorytmu podstawiania, a potem jeszcze raz jest dokonywana permutacja. Te cztery operacje tworzą funkcję f. Ciąg wyjściowy funkcji f jest dalej łączony z lewą połową za pomocą bitowej sumy modulo 2. Wynikiem 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. 8

9 Runda algorytmu DES Funkcja opisująca rundę algorytmu DES jest następująca: R i+1 = L i P(S(E(R) i K), i L i+1 = R i, gdzie R, i L i dane wejściowe rundy, R i+1, L i+1 dane wyjściowe rundy, K i podklucz 9

10 Realizacja programowa Algorytm DES został zaprojektowany z myślą o realizacji sprzętowej. Realizacje programowe tego algorytmy są często mniej wydajne niż inne algorytmy. Przekształcenia wykonywane w procesie szyfrowania nie są operacjami typowymi dla procesorów, czy to ogólnego przeznaczenia (general purpose processors) czy to procesorów sygnałowych (signal processors). Algorytm opiera swe działanie na takich operacjach jak permutacja czy postawienie, które są operacjami manipulacji na bitach. Efektywna realizacja programowa tego typu przekształceń nie jest prosta. 10

11 Permutacja realizacja programowa W celu zamiany bitów między dwoma słowami danych można wykorzystać makro realizujące tą operację języku C z wykorzystaniem takich operacji bitowych jak przesunięcie, iloczyny i XOR #define DO_PERMUTATION(a, temp, b, offset, mask) \ temp = ((a>>offset) ^ b) & mask; \ b ^= temp; \ a ^= temp<<offset; Zrealizowanie operacji permutacji wymaga wykonania wielu takich zmian bitów. Można wykorzystać pewne prawidłowości występujące w permutacji do uproszczenia całej realizacji. #define INITIAL_PERMUTATION(left, temp, right) \ DO_PERMUTATION(left, temp, right, 4, 0x0f0f0f0f) \ DO_PERMUTATION(left, temp, right,16, 0x0000ffff) \ DO_PERMUTATION(right, temp, left, 2, 0x ) \ DO_PERMUTATION(right, temp, left, 8, 0x00ff00ff) \ right = (right << 1) (right >> 31); \ temp = (left ^ right) & 0xaaaaaaaa; \ right ^= temp; \ left ^= temp; \ left = (left << 1) (left >> 31); 11

12 Wyniki Programowa realizacja w C skompilowana kompilatorem gcc i uruchomiona na komputerze stacjonarnym wyposażonym w procesor Intel Core2 Quad Q9550 taktowany zegarem 3,4 GHz P MultiBlock P SingleBlock [Mbit/s] [Mbit/s] PC 183,91 75,03 Tryb MultiBlock jednen klucza do szyfrowania wszystkich bloków tekstu jawnego (obliczanie podkluczy następuje tylko raz) Tryb SingleBlock każdy blok tekstu jawnego szyfrowany innym kluczem. 12

13 Permutacja początkowa Permutacja początkowa init_perm dokonuje przestawienia bitów 64 bitowych danych wejściowych według podanej tabeli. plain_data key L0 init_perm R0 C0 pc1_perm D f K1 pc2_perm shl shl L1 R1 C1 D2 shl shl f K2 pc2_perm L2 R2 C2 shl D2 shl f Kn pc2_permperm L15 R15 C15 D f K16 pc2_perm shl shl L16 R16 C16 D16 inv_perm ciphered_data Tablica ta opisuje sposób przestawienia kolejnych bitów danych wejściowych. Jeśli bity danych wejściowych oznaczymy indeksami od 1 do 64 to w wektorze wyjściowym na pozycji pierwszej umieszczamy 58 bit danych wejściowych, na drugiej bit 50, a na ostatniej bit 7. Odczytanie tabeli wierszami utworzy 64 bitowy ciąg będący wynikiem transpozycji. 13

14 library ieee; use ieee.std_logic_1164.all; Permutacja początkowa VHDL entity init_perm is port( in_data : in std_logic_vector(1 to 64); out_data : out std_logic_vector(1 to 64) ); end; architecture behav of init_perm is begin perm_loop: for i in 0 to 7 generate out_data(i+1) <= in_data(58-8*i); out_data(i+1+8) <= in_data(60-8*i); out_data(i+1+16) <= in_data(62-8*i); out_data(i+1+24) <= in_data(64-8*i); out_data(i+1+32) <= in_data(57-8*i); out_data(i+1+40) <= in_data(59-8*i); out_data(i+1+48) <= in_data(61-8*i); out_data(i+1+56) <= in_data(63-8*i); end generate; end behav; Wykorzystanie struktur języka VHDL do warunkowej generacji kodu ułatwia opis modułu

15 Permutacja początkowa wyniki W układzie permutacja została zrealizowana bez wykorzystania komórek Fitter Summary Top-level Entity Name init_perm Family Stratix Device EP1S10F484C5 Total logic elements 0 / 10,570 ( 0 % ) Total pins 128 / 336 ( 38 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Permutacja to nic innego, jak odpowiednie przestawianie połączeń między wejściem a wyjściem 15

16 Permutacja końcowa Na wejście tego bloku podane są dane otrzymane po zakończeniu 16 rundy kodowania plain_data init_perm key pc1_perm L0 R0 f K1 pc2_perm C0 shl D0 shl L1 R1 C1 D f K2 pc2_perm shl shl L2 R2 C2 D f Kn pc2_permperm shl shl L15 R15 C15 shl D15 shl f K16 pc2_perm L16 R16 C16 D16 inv_perm ciphered_data Część danych L i R zostają zamienione miejscami. Otrzymany w ten sposób blok danych 64 bitowych stanowi zaszyfrowany ciąg danych wejściowych. 16

17 library ieee; use ieee.std_logic_1164.all; Permutacja końcowa VHDL entity inv_perm is port( in_data : in std_logic_vector(1 to 64); out_data : out std_logic_vector(1 to 64) ); end; architecture behav of inv_perm is begin perm_loop: for i in 0 to 7 generate out_data(8*i+1) <= in_data(40-i); out_data(8*i+2) <= in_data( 8-i); out_data(8*i+3) <= in_data(48-i); out_data(8*i+4) <= in_data(16-i); out_data(8*i+5) <= in_data(56-i); out_data(8*i+6) <= in_data(24-i); out_data(8*i+7) <= in_data(64-i); out_data(8*i+8) <= in_data(32-i); end generate; end behav; Wykorzystanie struktur języka VHDL do warunkowej generacji kodu ułatwia opis modułu

18 Permutacja końcowa wyniki Fitter Summary Top-level Entity Name inv_perm Family Stratix Device EP1S10F484C5 Total logic elements 0 / 10,570 ( 0 % ) Total pins 128 / 336 ( 38 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Dokładnie taka sama sytuacja, jak w przypadku permutacji początkowej 18

19 Permutacja rozszerzająca Permutacja rozszerzająca dokonuje przestawienia bitów w 32 bitowym bloku danych wejściowych z jednoczesnym powieleniem niektórych bitów wejściowych tak, aby uzyskać 48 bitowe dane wyjściowe. Jest to konieczne, aby można było wykonać operację xor z 48 bitowym podkluczem

20 library ieee; use ieee.std_logic_1164.all; Permutacja rozszerzająca VHDL entity ext_perm is port( in_data : in std_logic_vector(1 to 32); out_data : out std_logic_vector(1 to 48) ); end; architecture behav of ext_perm is begin out_data <= in_data(32) & in_data(1 to 5) & in_data(4 to 9) & in_data(8 to 13) & in_data(12 to 17) & in_data(16 to 21) & in_data(20 to 25) & in_data(24 to 29) & in_data(28 to 32) & in_data(1); end behav; W tym przypadku nie można znaleźć żadnej prawidłowości, więc permutacja jest zapisana kolejne podstawienie bitów

21 Permutacja końcowa wyniki Fitter Summary Top-level Entity Name ext_perm Family Stratix Device EP1S10F484C5 Total logic elements 0 / 10,570 ( 0 % ) Total pins 80 / 336 ( 24 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Dokładnie taka sama sytuacja, jak w przypadku permutacji początkowej 21

22 Skrzynki podstawieniowe Każdy blok S-box reprezentuje funkcję dokonującą przekodowania 6 bitowego wektora wejściowego na wektor 4 bitowy. Przekodowanie dokonywane jest zgodnie z zasada przedstawioną w postaci tablicy. S Przy użyciu 8 bloków selekcyjnych wektor 48 bitowy otrzymany przez zastosowanie permutacji rozszerzającej do 32 bitowego wektora wejściowego R rundy przekształcany jest na powrót w wektor 32 bitowy. 22

23 Skrzynki podstawieniowe VHDL library ieee; use ieee.std_logic_1164.all; entity s1 is port( in_data : in std_logic_vector(1 to 6); out_data : out std_logic_vector(1 to 4) ); end; architecture behav of s1 is signal internl_in : std_logic_vector(1 to 6); begin internl_in <= (in_data(1) & in_data(6) & in_data(2) & in_data(3) & in_data(4) & in_data(5)); with internl_in select out_data <= "1110" when "000000", "0100" when "000001", "1101" when "000010",... "1000" when "000111",... "0110" when "111110", "1101" when "111111", "----" when others; end behav; 00 Bit 1 i 6 określają wiersz pozostałe kolumny S

24 Skrzynki podstawieniowe wyniki Jeden S-box zajmuje aż tyle komórek wprowadza też duże opóźnienie. Fitter Summary Top-level Entity Name Family Device s1 Stratix EP1S10F484C5 Total logic elements 24 / 10,570 ( < 1 % ) Total pins 10 / 336 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 Liczba komórek Max. opóźnienie 13,5 13,1 13,0 14,0 12,9 13,1 13,0 13,3 24

25 Permutacji P Dokonuje permutacji na kolejno zestawionych wyjściach z S-boksów wg następującego schematu Wynik permutacji P jest sumowany bitowo modulo 2 z częścią L początkowego bloku 64-bitowego i tak stworzony blok 32-bitowy podawany jest jako część R dla rundy następnej. 25

26 Permutacji P VHDL library ieee; use ieee.std_logic_1164.all; entity p_perm is port( in_data : in std_logic_vector(1 to 32); out_data : out std_logic_vector(1 to 32) ); end; architecture behav of p_perm is begin out_data <= in_data(16) & in_data(7) & in_data(20) & in_data(21) & in_data(29) & in_data(12) & in_data(28) & in_data(17) & in_data(1) & in_data(15) & in_data(23) & in_data(26) & in_data(5) & in_data(18) & in_data(31) & in_data(10) & in_data(2) & in_data(8) & in_data(24) & in_data(14) & in_data(32) & in_data(27) & in_data(3) & in_data(9) & in_data(19) & in_data(13) & in_data(30) & in_data(6) & in_data(22) & in_data(11) & in_data(4) & in_data(25); end behav; W tym przypadku nie można znaleźć żadnej prawidłowości, więc permutacja jest zapisana kolejne podstawienie bitów

27 Permutacji PC-1 Blok ten dokonuje permutacji 64 bitowego bloku klucza. W wyniku otrzymuje się 56 bitowy blok, który dzielony jest na 28 bitowe bliki C i D plain_data key init_perm pc1_perm L0 R0 C0 D0 shl shl f K1 pc2_perm L1 R1 C1 D2 shl shl f K2 pc2_perm L2 R2 C2 D2 shl shl f Kn pc2_perm L15 R15 C15 D15 shl shl f K16 pc2_perm L16 R16 C16 D16 inv_perm ciphered_data 27

28 library ieee; use ieee.std_logic_1164.all; Permutacji PC-1 VHDL entity pc1_perm is port( in_data : in std_logic_vector(1 to 64); out_data : out std_logic_vector(1 to 56) ); end; architecture behav of pc1_perm is begin out_data <= in_data(57) & in_data(49) & in_data(41) & in_data(33) & in_data(25) & in_data(17) & in_data(9) & in_data(1) & in_data(58) & in_data(50) & in_data(42) & in_data(34) & in_data(26) & in_data(18) & in_data(10) & in_data(2) & in_data(59) & in_data(51) & in_data(43) & in_data(35) & in_data(27) & in_data(19) & in_data(11) & in_data(3) & in_data(60) & in_data(52) & in_data(44) & in_data(36) & in_data(63) & in_data(55) & in_data(47) & in_data(39) & in_data(31) & in_data(23) & in_data(15) & in_data(7) & in_data(62) & in_data(54) & in_data(46) & in_data(38) & in_data(30) & in_data(22) & in_data(14) & in_data(6) & in_data(61) & in_data(53) & in_data(45) & in_data(37) & in_data(29) & in_data(21) & in_data(13) & in_data(5) & in_data(28) & in_data(20) & in_data(12) & in_data(4); end behav; 28

29 Permutacji PC-2 Blok ten dokonuje permutacji 58 bitowego bloku powstałego w wyniku przesunięcia w lewo blików C i D. W wyniku otrzymuje się 48 blok, który stanowi podklucz dla danej rundy. plain_data key init_perm pc1_perm L0 R0 C0 D0 shl shl f K1 pc2_perm L1 R1 C1 D2 shl shl f K2 pc2_perm L2 R2 C2 D2 shl shl f Kn pc2_perm L15 R15 C15 D15 shl shl f K16 pc2_perm L16 R16 C16 D16 inv_perm ciphered_data 29

30 library ieee; use ieee.std_logic_1164.all; Permutacji PC-2 VHDL entity pc2_perm is port( in_data : in std_logic_vector(1 to 56); out_data : out std_logic_vector(1 to 48) ); end; architecture behav of pc2_perm is begin out_data <= in_data(14) & in_data(17) & in_data(11) & in_data(24) & in_data(1) & in_data(5) & in_data(3) & in_data(28) & in_data(15) & in_data(6) & in_data(21) & in_data(10) & in_data(23) & in_data(19) & in_data(12) & in_data(4) & in_data(26) & in_data(8) & in_data(16) & in_data(7) & in_data(27) & in_data(20) & in_data(13) & in_data(2) & in_data(41) & in_data(52) & in_data(31) & in_data(37) & in_data(47) & in_data(55) & in_data(30) & in_data(40) & in_data(51) & in_data(45) & in_data(33) & in_data(48) & in_data(44) & in_data(49) & in_data(39) & in_data(56) & in_data(34) & in_data(53) & in_data(46) & in_data(42) & in_data(50) & in_data(36) & in_data(29) & in_data(32); end behav; 30

31 Runda algorytmu DES Jest to podstawowy element algorytmu DES. Jakość realizacji tego bloku będzie decydować o szybkości działania całego algorytmu i wielkości zasobów niezbędnych do realizacji algorytmu w sprzęcie. Blok ten składa się z permutacji rozszerzającej ext_perm, ośmiu skrzynek selekcyjnych S-Box, permutacji p_perm, permutacji pc2_perm i bloków shl realizujących przesunięcie w lewo o 1 lub 2 bity. Nazwa Typ Rozmiar Opis l_i in 32 część danych poddawanych przekształceniu w danej rundzie r_i in 32 część danych poddawanych przekształceniu w danej rundzie c_i in 28 część klucza dla danej rundy d_i in 28 część klucza dla danej rundy shift_i in 1 przesunięcie przy generacji podklucza : 0 przesunięcie o 1 bit w lewo 1 przesunięcie o 2 bit w lewo l_o out 32 część danych przekształconych w danej rundzie r_o out 32 część danych przekształconych w danej rundzie c_o out 28 część klucza dla następnej rundy d_o out 28 część klucza dla następnej rundy 31

32 library ieee; use ieee.std_logic_1164.all; use work.des_design.all; Runda algorytmu DES VHDL (1) entity data_rund is port( shift_i : in std_logic; r_i, l_i : in std_logic_vector(1 to 32); c_i, d_i : in std_logic_vector(1 to 28); r_o, l_o : out std_logic_vector(1 to 32); c_o, d_o : out std_logic_vector(1 to 28) ); end; architecture structure of data_rund is signal extended_data : std_logic_vector(1 to 48); signal key_xored_data : std_logic_vector(1 to 48); signal sbox_out_data : std_logic_vector(1 to 32); signal permuted_data : std_logic_vector(1 to 32); signal c_shifted : std_logic_vector(1 to 28); signal d_shifted : std_logic_vector(1 to 28); signal sub_key : std_logic_vector(1 to 48); Lokalne sygnały do połączenia bloków 32

33 Runda algorytmu DES VHDL (2) begin with shift_i select c_shifted <= c_i(2 to 28) & c_i(1) when '0', c_i(3 to 28) & c_i(1 to 2) when others; with shift_i select d_shifted <= d_i(2 to 28) & d_i(1) when '0', d_i(3 to 28) & d_i(1 to 2) when others; b0 : pc2_perm port map( in_data => (c_shifted & d_shifted), out_data => sub_key ); Moduły przesuwające Permutacja PC-2 c_o <= c_shifted; d_o <= d_shifted; b1 : ext_perm port map( in_data => r_i, out_data => extended_data ); key_xored_data <= extended_data xor sub_key; Permutacja rozszerzająca Połączenie z kluczem 33

34 Runda algorytmu DES VHDL (2) b2 : s1 port map( in_data => key_xored_data(1 to 6), out_data => sbox_out_data(1 to 4) ); b3 : s2 port map( in_data => key_xored_data(7 to 12), out_data => sbox_out_data(5 to 8) ); Skrzynki podstawieniowe S-Box b9 : s8 port map( in_data => key_xored_data(43 to 48), out_data => sbox_out_data(29 to 32) ); b10: p_perm port map( in_data => sbox_out_data, out_data => permuted_data ); r_o <= permuted_data xor l_i; l_o <= r_i; end structure; Permutacja P XOR z lewą częścia danych 34

35 Runda algorytmu DES wyniki Fitter Summary Top-level Entity Name des_rund Family Stratix Device EP1S10F484C5 Total logic elements 298 / 10,570 ( 3 % ) Total pins 241 / 336 ( 72 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Maksymalne opóźnienie 16,4 ns pozwala wykonać ok. 60 mln rund na sekundę! Runda algorytmu DES wymaga 298 komórek logicznych. Algorytm składa się z 16 rund a to oznacza, ze realizacja całości wymaga sporo zasobów logicznych 35

36 Realizacja iteracyjna algorytmu DES Podstawowym elementem składowym realizacji sprzętowe algorytmu DES jest przekształcenie zwane rundą. Realizacja iteracyjna wykorzystuje fakt, że algorytm ten jest zbudowany z 16 identycznych rund. Dzięki temu możliwe jest zaimplementowanie jednego bloku rundy algorytmu i wykorzystanie odpowiedniego sterowania do sekwencyjnej realizacji tego algorytmu. 36

37 Koncepcja iteracyjnej realizacji algorytmu DES (1) Głównym elementem jest blok des_rund, który realizuje pojedynczą rundę algorytmu. Rejestry R i L przechowują części danych poddawanych przekształceniom w rundzie algorytmu. Do tych rejestrów mogą być wpisane dane data_perm (dane wejściowe plain_data poddane permutacji początkowej init_perm) albo dane l_out i r_out stanowiące wynik działania rundy. 37

38 Koncepcja iteracyjnej realizacji algorytmu DES (2) Rejestry C i D przechowują dane niezbędne do generacji podkluczy rundowych. Mogą one zostać załadowane wartością key_perm (klucz key poddany permutacji pc1_perm) lub wartościami c_out i d_out stanowiące wynik przekształcenia klucza w rundzie. Sygnał shift wykorzystywany jest do kontrolowania o ile bitów należy przesunąć połówki klucza w czasie generacji podklucza dla danej rundy (0 przesunięcie o 1 bit, 1 przesunięcie o 2 bity). 38

39 Koncepcja iteracyjnej realizacji algorytmu DES (3) Wyjścia rundy l_out i r_out podłączone są do permutacji końcowej której wynik data_final zapamiętywany jest w rejestrze result po całym procesie szyfrowania danego bloku. Zawartość tego rejestru podawana jest na wyjście ciphered_data. 39

40 Schemat blokowy algorytmu iteracyjnego DES (1) W momencie pojawienia się sygnału start do zmiennych C i D ładowane są 28 bitowe bloki wektora key_perm (klucza poddanego permutacji pc1_perm). Następnie do zmiennych L i R ładowane są bloki wektora data_perm (tekst jawny poddanego permutacji początkowej init_perm). W tym samym czasie licznik rund cnt ustawiany jest na 1 zaś zmienna shift na 0 (w rundzie 1 przesuniecie przy generacji podklucza wynosi 1 bit). Następnie w pętli wykonywanych jest 15 pozostałych rund. W każdej iteracji licznik rund zwiększany jest o jeden zmienne R, L, C i D ładowane są wartościami l_out, r_out, c_out i d_out będącymi wynikiem obliczeń wykonywanych w ramach rundy algorytmu. 40

41 Schemat blokowy algorytmu iteracyjnego DES (2) Wartość shift ustalana jest na 0 dla rund 2, 9 i 16 a w pozostałych przypadkach na 1. W momencie, gdy wykonana zostanie ostatnia ruda (cnt = 16) sygnał ready ustawiany jest na 1, zaś do zmiennej result ładowany jest wynik permutacji końcowej data_final. Jeśli sygnał start ma wartość 1 do zmiennych L i R ładowane są nowe bloki wektora data_perm i szyfrowanie kontynuowane jest przy użyci tego samego klucza jaki był użyty do szyfrowania poprzedniego bloku. W przeciwnym przypadku sterowanie przekazywane jest na początek algorytmu. Pojawienie się wartości 1 na sygnale start ponownie uruchamia algorytm pozwalając wczytać nowy klucz i nowe dane do szyfrowania. 41

42 Diagram ASM Do realizacji tego algorytmu można wykorzystać metodologię projektowania opartą na algorytmicznych układach sekwencyjnych ze ścieżką przepływu danych ASMD (Algorithmic State Machine with Data Path). Diagram ten składa się z 4 bloków ASM odpowiadających stanom automatu: idle, read, run, store. W stanie idle układ oczekuje na pojawienie się sygnału start. W stanie read do rejestrów L i R ładowane są dane z wektora data_perm, który przechowuje blok danych tekstu jawnego plain_data poddany permutacji początkowej init_perm. W stanie run wykonywane są kolejne rundy algorytmu. W stanie store wynik ostatniej rundy poddany permutacji inv_perm zapamiętany zostaje w rejestrze result zaś rejestr ready otrzymuje wartość 1. 42

43 Iteracyjna realizacja algorytmu DES VHDL (1) library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.des_design.all; entity des_seq is port( clk : in std_logic; reset : in std_logic; start : in std_logic; plain_data : in std_logic_vector(1 to 64); key : in std_logic_vector(1 to 64); ready : out std_logic; ciphered_data : out std_logic_vector(1 to 64) ); end; Nazwa Typ Rozmiar Opis clk in 1 zegar systemowy reset in 1 reset systemowy start in 1 sygnał rozpoczęcia szyfrowania plain_data in 64 blok danych do zaszyfrowania key in 64 klucz wykorzystywany do szyfrowania ready out 1 sygnał końca procesu szyfrowania danego bloku ciphered_data out 64 szyfrogram danego bloku danych tekstu jawnego 43

44 Iteracyjna realizacja algorytmu DES VHDL (2) architecture RTL of des_seq is signal data_perm : std_logic_vector(1 to 64); signal data_final : std_logic_vector(1 to 64); signal r_out : std_logic_vector(1 to 32); signal l_out : std_logic_vector(1 to 32); signal key_perm : std_logic_vector(1 to 56); signal c_out : std_logic_vector(1 to 28); signal d_out : std_logic_vector(1 to 28); signal last_rund_res : std_logic_vector(1 to 64); signal ready_reg, ready_next : std_logic; signal shift_reg, shift_next : std_logic; signal cnt_reg, cnt_next : unsigned(0 to 4); signal C_reg, C_next : std_logic_vector(1 to 28); signal D_reg, D_next : std_logic_vector(1 to 28); signal L_reg, L_next : std_logic_vector(1 to 32); signal R_reg, R_next : std_logic_vector(1 to 32); signal result_reg, result_next : std_logic_vector(1 to 64); type STATE_TYPE is (idle, read, run, store); signal aut_reg, aut_next : STATE_TYPE; 44

45 Iteracyjna realizacja algorytmu DES VHDL (3) process(clk, reset) begin if reset = '1' then aut_reg <= idle; shift_reg <= '0'; ready_reg <= '0'; L_reg <= (others => '0'); R_reg <= (others => '0'); C_reg <= (others => '0'); D_reg <= (others => '0'); cnt_reg <= (others => '0'); result_reg <= (others => '0'); elsif rising_edge(clk) then aut_reg <= aut_next; ready_reg <= ready_next; L_reg <= L_next; R_reg <= R_next; C_reg <= C_next; D_reg <= D_next; shift_reg <= shift_next; cnt_reg <= cnt_next; result_reg <= result_next; end if; end process; 45

46 Iteracyjna realizacja algorytmu DES VHDL (4) process(aut_reg, start, cnt_next) begin ready_next <= '0'; case aut_reg is when idle => if start = '1' then aut_next <= read; else aut_next <= idle; end if; when read => aut_next <= run; when run => if cnt_next = 16 then aut_next <= store; else aut_next <= run; end if; when store => ready_next <= '1'; if start = '1' then aut_next <= run; else aut_next <= idle; end if; when others => aut_next <= idle; end case; end process; 46

47 Iteracyjna realizacja algorytmu DES VHDL (5) process( aut_reg, start,data_perm, key_perm, data_final, cnt_reg, cnt_next, L_reg, R_reg, C_reg, D_reg, shift_reg, result_reg, r_out, l_out, c_out, d_out) begin C_next <= C_reg; D_next <= D_reg; L_next <= L_reg; R_next <= R_reg; shift_next <= shift_reg; cnt_next <= cnt_reg; result_next <= result_reg; case aut_reg is when idle => if start = '1' then C_next <= key_perm(1 to 28); D_next <= key_perm(29 to 56); end if; when read => cnt_next <= to_unsigned(1, 5); L_next <= data_perm(1 to 32); R_next <= data_perm(33 to 64); shift_next <= '0'; 47

Projektowanie hierarchiczne Mariusz Rawski

Projektowanie hierarchiczne Mariusz Rawski CAD Projektowanie hierarchiczne rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości

Bardziej szczegółowo

Specyfika projektowania Mariusz Rawski

Specyfika projektowania Mariusz Rawski CAD Specyfika projektowania Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ System cyfrowy pierwsze skojarzenie Urządzenia wprowadzania danych: klawiatury czytniki urządzenia przetwarzania

Bardziej szczegółowo

1.1. Standard szyfrowania DES

1.1. Standard szyfrowania DES 1.1. Standard szyrowania DES Powstał w latach siedemdziesiątych i został przyjęty jako standard szyrowania przez Amerykański Narodowy Instytut Standaryzacji (ang. American National Standards Institute

Bardziej szczegółowo

Implementacja algorytmu szyfrującego

Implementacja algorytmu szyfrującego Warszawa 25.01.2008 Piotr Bratkowski 4T2 Przemysław Tytro 4T2 Dokumentacja projektu Układy Cyfrowe Implementacja algorytmu szyfrującego serpent w układzie FPGA 1. Cele projektu Celem projektu jest implementacja

Bardziej szczegółowo

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. 1. W języku VHDL zdefiniowano mechanizm odczytywania i zapisywania danych z i do plików. Pliki te mogą być wykorzystywane

Bardziej szczegółowo

Cyfrowe przetwarzanie sygnałów Mariusz Rawski

Cyfrowe przetwarzanie sygnałów Mariusz Rawski CAD Cyfrowe przetwarzanie sygnałów Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Cyfrowe przetwarzanie sygnału A/D konwersja sygnału analogowego na cyfrowy (próbkowanie, kwantyzacja,

Bardziej szczegółowo

Synteza strukturalna Mariusz Rawski

Synteza strukturalna Mariusz Rawski CAD Synteza strukturalna rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Strukturalna realizacja przepływu danych Koncepcja zmiennych i sekwencyjnego wykonania operacji tak charakterystyczna dla

Bardziej szczegółowo

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Technika cyfrowa projekt: Sumator 4 bitowy równoległy Technika cyfrowa projekt: Sumator 4 bitowy równoległy Autorzy: Paweł Bara Robert Boczek Przebieg prac projektowych: Zadany układ dostaje na wejściu dwie czterobitowe liczby naturalne, sumuje je, po czym

Bardziej szczegółowo

Synteza strukturalna

Synteza strukturalna Synteza strukturalna Analizując algorytm pracy układu opisany siecią działań dobiera się: bloki funkcjonalne służące do przechowywania zmiennych, bloki operacyjne służące do wykonywania operacji występujących

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 7 (2h) Obsługa urządzenia peryferyjnego z użyciem pamięci w VHDL. Instrukcja do zajęć laboratoryjnych z przedmiotu

Bardziej szczegółowo

Modelowanie złożonych układów cyfrowych (1)

Modelowanie złożonych układów cyfrowych (1) Modelowanie złożonych układów cyfrowych () funkcje i procedury przykłady (przerzutniki, rejestry) style programowania kombinacyjne bloki funkcjonalne bufory trójstanowe multipleksery kodery priorytetowe

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH SPRAWOZDANIE Temat: Projekt notesu elektronicznego w języku VHDL przy użyciu układów firmy

Bardziej szczegółowo

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35 LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające

Bardziej szczegółowo

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

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (1) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Algorytmy kryptograficzne Przestawieniowe zmieniają porządek znaków

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów

Bardziej szczegółowo

Krótkie wprowadzenie do ModelSim i Quartus2

Krótkie wprowadzenie do ModelSim i Quartus2 Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

1. Maszyny rotorowe Enigma

1. Maszyny rotorowe Enigma Połączenie podstawowych metod szyfrowania, czyli pojedynczych podstawień lub przestawień, daje szyfr złoŝony nazywany szyfrem kaskadowym lub produktowym (ang. product cipher). Szyfry takie są połączeniem

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Bardziej szczegółowo

Układy reprogramowalne i SoC Implementacja w układach FPGA

Układy reprogramowalne i SoC Implementacja w układach FPGA Układy reprogramowalne i SoC Implementacja w układach FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Układy kombinacyjne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 28 września 2015 Co to jest układ kombinacyjny? Stan wyjść zależy tylko

Bardziej szczegółowo

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path. Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 6 (wersja 2015) 1. Wstęp 1.1. Algorytm Realizacja algorytmu

Bardziej szczegółowo

PUCY Kolos 2: Reloaded

PUCY Kolos 2: Reloaded PUCY Kolos 2: Reloaded 1) Narysować schemat układu mikroprogramowalnego z licznikiem rozkazów. 2) Narysować schemat elementu ścieżki cyklicznej dla sygnału kombinacyjnego 3) Narysować schemat elementu

Bardziej szczegółowo

Bezpieczeństwo informacji oparte o kryptografię kwantową

Bezpieczeństwo informacji oparte o kryptografię kwantową WYŻSZA SZKOŁA BIZNESU W DĄBROWIE GÓRNICZEJ WYDZIAŁ ZARZĄDZANIA INFORMATYKI I NAUK SPOŁECZNYCH Instrukcja do laboratorium z przedmiotu: Bezpieczeństwo informacji oparte o kryptografię kwantową Instrukcja

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

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

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Worek różności jak dobrać się do gotowców w Spartanach? Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 12 kwietnia 2011 Spis treści Wbudowane

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

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Ćwiczenie Nr 8 Implementacja prostego

Bardziej szczegółowo

Zarys algorytmów kryptograficznych

Zarys algorytmów kryptograficznych Zarys algorytmów kryptograficznych Laboratorium: Algorytmy i struktury danych Spis treści 1 Wstęp 1 2 Szyfry 2 2.1 Algorytmy i szyfry........................ 2 2.2 Prosty algorytm XOR......................

Bardziej szczegółowo

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

Wykład 4 Temat: Algorytm symetryczny Twofish: cele projektowane, budowa bloków, opis algorytmu, wydajność algorytmu. Wykład 4 Temat: Algorytm symetryczny Twofish: cele projektowane, budowa bloków, opis algorytmu, wydajność algorytmu. W roku 1972 Narodowe Biuro Standardów (obecnie Narodowy Instytut Standardów i Technologii

Bardziej szczegółowo

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Sumatory 1 Sumator 1-bitowy full adder Równanie boolowskie sumy: s k = a k XOR b k XOR c k = a k b k c k Równanie boolowskie przeniesienia: c k+1 = (a k AN b k ) OR (a k AN c k ) OR (b k AN c k ) = (a

Bardziej szczegółowo

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

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka

Bardziej szczegółowo

Instrukcje sekwencyjne

Instrukcje sekwencyjne nstrukcje sekwencyjne nstrukcje sekwencyjne są stosowane w specyfikacji behawioralnej (behavioral description) rzede wszystkim w tzw. procesach (process) roces nstrukcja F nstrukcja CASE Z 1 rocesy Konstrukcja

Bardziej szczegółowo

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

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite. Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna

Bardziej szczegółowo

Sterowniki Programowalne (SP)

Sterowniki Programowalne (SP) Sterowniki Programowalne (SP) Wybrane aspekty procesu tworzenia oprogramowania dla sterownika PLC Podstawy języka funkcjonalnych schematów blokowych (FBD) Politechnika Gdańska Wydział Elektrotechniki i

Bardziej szczegółowo

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

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL 1. Cel ćwiczenia W ćwiczeniu student projektuje i implementuje w strukturze układu FPGA (Field Programmable Gate Array)

Bardziej szczegółowo

CZ1. Optymalizacja funkcji przełączających

CZ1. Optymalizacja funkcji przełączających CZ1. Optymalizacja funkcji przełączających 1. Proszę opisać słownie metodę i dokonać optymalizacji łącznej następujących funkcji (najmłodszy bit wejścia proszę oznaczyć A) : F1=SUM m(1,3,5,7,9,13,15) F2=SUM

Bardziej szczegółowo

Układy reprogramowalne i SoC Język VHDL (część 3)

Układy reprogramowalne i SoC Język VHDL (część 3) Układy reprogramowalne i SoC Język VHDL (część 3) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 9 (3h) Projekt struktury hierarchicznej układu cyfrowego w FPGA. Instrukcja pomocnicza do laboratorium z przedmiotu

Bardziej szczegółowo

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Ćwiczenie 1 VHDL - Licznik 4-bitowy. Ćwiczenie 1 VHDL - Licznik 4-bitowy. Zadaniem studenta jest zaprojektowanie w układzie CoolRunner2 układu, który dzieli częstotliwość zegara wejściowego generując sygnał taktowania licznika 4-bitowego,

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Architektura Systemów Komputerowych 2

Architektura Systemów Komputerowych 2 Architektura Systemów Komputerowych 2 Pytania egzaminacyjne z części pisemnej mgr inż. Leszek Ciopiński Wykład I 1. Historia i ewolucja architektur komputerowych 1.1. Czy komputer Z3 jest zgodny z maszyną

Bardziej szczegółowo

Architektura komputerów Wykład 2

Architektura komputerów Wykład 2 Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 6 (2h) Automaty stanów Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza układów cyfrowych studia niestacjonarne,

Bardziej szczegółowo

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Laboratorium nr 1 Szyfrowanie i kontrola integralności Laboratorium nr 1 Szyfrowanie i kontrola integralności Wprowadzenie Jedną z podstawowych metod bezpieczeństwa stosowaną we współczesnych systemach teleinformatycznych jest poufność danych. Poufność danych

Bardziej szczegółowo

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD 1. Wstęp i cel ćwiczenia W ćwiczeniu student tworzy barierę podczerwieni złożoną z diody nadawczej IR (Infra

Bardziej szczegółowo

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999 K. TRYBICKA-FRANCIK KRYPTOANALIZA Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999 Kryptoanaliza Kryptoanaliza jest dziedziną wiedzy i badań zajmującą się metodami przełamywania szyfrów. Szyfr

Bardziej szczegółowo

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski Szyfry strumieniowe w układach programowalnych FPGA Marcin Rogawski rogawskim@prokom.pl Plan referatu Szyfry strumieniowe, Wybór tematu, Struktury programowalne element fizyczny, Architektury akceleratorów

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

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

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś  Wykład 7 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 7 Spis treści 11 Algorytm ElGamala 3 11.1 Wybór klucza.................... 3 11.2 Szyfrowanie.....................

Bardziej szczegółowo

DOKUMENTACJA PROJEKTU

DOKUMENTACJA PROJEKTU AKADEMIA GÓRNICZO-HUTNICZA w Krakowie KATEDRA ELEKTRONIKI DOKUMENTACJA PROJEKTU Projekt z przedmiotu Sprzętowa Implementacja Algorytmów: Dekoder klawiatury na PS/2 Prowadzący: Dr inż. Paweł Russek Wykonali:

Bardziej szczegółowo

Bezpieczeństwo danych, zabezpieczanie safety, security

Bezpieczeństwo danych, zabezpieczanie safety, security Bezpieczeństwo danych, zabezpieczanie safety, security Kryptologia Kryptologia, jako nauka ścisła, bazuje na zdobyczach matematyki, a w szczególności teorii liczb i matematyki dyskretnej. Kryptologia(zgr.κρυπτός

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) Język VHDL jest jednym z nowszych języków opisu i projektowania układów cyfrowych. W lipcu 1983 roku firmy Intermetrics,

Bardziej szczegółowo

Algorytmy asymetryczne

Algorytmy asymetryczne Algorytmy asymetryczne Klucze występują w parach jeden do szyfrowania, drugi do deszyfrowania (niekiedy klucze mogą pracować zamiennie ) Opublikowanie jednego z kluczy nie zdradza drugiego, nawet gdy można

Bardziej szczegółowo

Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Projektowanie systemów za pomocą języków wysokiego poziomu ESL Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział IET Katedra Elektroniki Projektowanie systemów za pomocą języków wysokiego poziomu ESL Ćwiczenie 2 Implementacja funkcji Hash z użyciem

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Układy synchroniczne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 26 października 2015 Co to jest układ sekwencyjny? W układzie sekwencyjnym,

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM Spis treści 1. Wstęp... 9 2. Ćwiczenia laboratoryjne... 12 2.1. Środowisko projektowania Quartus II dla układów FPGA Altera... 12 2.1.1. Cel ćwiczenia... 12 2.1.2. Wprowadzenie... 12 2.1.3. Przebieg ćwiczenia...

Bardziej szczegółowo

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI STEGANOGRAFIA Steganografia jest nauką o komunikacji w taki sposób by obecność komunikatu nie mogła zostać wykryta. W odróżnieniu od kryptografii

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Mikroprocesor Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 6 grudnia 2014 Zbudujmy własny mikroprocesor Bardzo prosty: 16-bitowy, 16 rejestrów

Bardziej szczegółowo

Bezpieczeństwo systemów i sieci komputerowych

Bezpieczeństwo systemów i sieci komputerowych Bezpieczeństwo systemów i sieci komputerowych Kryptologia (2) Szyfry blokowe Szyfry kaskadowe Propozycja Shannona Bezpieczny szyfr można zbudować operując na dużych przestrzeniach komunikatów i kluczy

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych (Na przykładzie projektowania układów sterujacych) Grzegorz Łabiak i Marek Węgrzyn Instytut Informatyki

Bardziej szczegółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium przedmiotu Technika Cyfrowa Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w

Bardziej szczegółowo

Metody szyfrowania danych

Metody szyfrowania danych K o d o w a n i e i k o m p r e s j a Zadanie 2 Metody szyfrowania danych Celem ćwiczenia jest zapoznanie się z podstawowymi metodami szyfrowania danych z użyciem kluczy symetrycznych i asymetrycznych.

Bardziej szczegółowo

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

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych .Wprowadzenie do projektowania układów sekwencyjnych synchronicznych.. Przerzutniki synchroniczne Istota działania przerzutników synchronicznych polega na tym, że zmiana stanu wewnętrznego powinna nastąpić

Bardziej szczegółowo

Podstawy Informatyki Elementarne podzespoły komputera

Podstawy Informatyki Elementarne podzespoły komputera Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Reprezentacja informacji Podstawowe bramki logiczne 2 Przerzutniki Przerzutnik SR Rejestry Liczniki 3 Magistrala Sygnały

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Instrukcja pomocnicza do laboratorium z przedmiotu Programowalne Struktury

Bardziej szczegółowo

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

Bezpieczeństwo danych i systemów informatycznych. Wykład 5 Bezpieczeństwo danych i systemów informatycznych Wykład 5 Kryptoanaliza Atak na tekst zaszyfrowany dostępny tylko szyfrogram Atak poprzez tekst częściowo znany istnieją słowa, których prawdopodobnie użyto

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014 VHDL przykłady rozwiązań Zebrał i opracował R.Walkowiak PTC wykład 2013/2014 for generate Tworzenie wektora obiektów : for in generate -- wyrażenia równoległe end

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydział Elektroniki Mikrosystemów i Fotoniki Politechnika Wrocławska Prowadzący: dr inż. Daniel Kopiec email: daniel.kopiec@pwr.edu.pl Konfiguracja układu DCM Digital

Bardziej szczegółowo

Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP. Ćwiczenia z S7-1200 Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP FAQ Marzec 2012 Spis treści 1 Opis zagadnienie poruszanego w ćwiczeniu. 3 1.1 Wykaz

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

A Machine Architecture that is Really Intuitive and Easy.  Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym MARIE A Machine Architecture that is Really Intuitive and Easy http://computerscience.jbpub.com/ecoa Słowo 16b Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym od 8000h (- 32,768 = -2^15) do 7FFFh

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Przerzutniki Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 20 maja 2013 Przerzutnik synchroniczny Układ synchroniczny wyzwalany ustalonym

Bardziej szczegółowo

Bezpieczeństwo kart elektronicznych

Bezpieczeństwo kart elektronicznych Bezpieczeństwo kart elektronicznych Krzysztof Maćkowiak Karty elektroniczne wprowadzane od drugiej połowy lat 70-tych znalazły szerokie zastosowanie w wielu dziedzinach naszego życia: bankowości, telekomunikacji,

Bardziej szczegółowo

Modelowanie logiki rewersyjnej w języku VHDL

Modelowanie logiki rewersyjnej w języku VHDL PNIEWSKI Roman 1 Modelowanie logiki rewersyjnej w języku VHDL WSTĘP Konwencjonalne komputery wykorzystują dwuwartościową logikę Boole a. Funkcje opisujące układ cyfrowy wykorzystują najczęściej dwa operatory

Bardziej szczegółowo

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

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Szyfry przestawieniowe Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne Algorytmy kryptograficzne (1) Przestawieniowe zmieniają porządek znaków według pewnego schematu, tzw. figury Podstawieniowe monoalfabetyczne

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

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

Projektowanie złożonych układów cyfrowych rojektowanie złożonych układów cyfrowych Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Mariusz Rawski 1 Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury

Bardziej szczegółowo

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

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym) 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

Kryptografia szyfrowanie i zabezpieczanie danych

Kryptografia szyfrowanie i zabezpieczanie danych Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Kryptografia szyfrowanie i zabezpieczanie danych www.agh.edu.pl

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

8. MAGISTRALE I GNIAZDA ROZSZERZEŃ. INTERFEJSY ZEWNĘTRZNE.

8. MAGISTRALE I GNIAZDA ROZSZERZEŃ. INTERFEJSY ZEWNĘTRZNE. 8. MAGISTRALE I GNIAZDA ROZSZERZEŃ. INTERFEJSY ZEWNĘTRZNE. Magistrala (ang. bus) jest ścieżką łączącą ze sobą różne komponenty w celu wymiany informacji/danych pomiędzy nimi. Inaczej mówiąc jest to zespół

Bardziej szczegółowo