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

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

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

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

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Technologie Informacyjne

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

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L

(przykład uogólniony)

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

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Sposoby projektowania systemów w cyfrowych

Laboratorium Podstaw Techniki Cyfrowej

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

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

Filtry cyfrowe o skończonej odpowiedzi impulsowej FIR - realizacje

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Krótkie wprowadzenie do ModelSim i Quartus2

Układy kombinacyjne - przypomnienie

Projektowanie układów kryptograficznych Mariusz Rawski

Specyfika projektowania Mariusz Rawski

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W

Implementacja algorytmu szyfrującego

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

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

Systemy wbudowane. Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Układy cyfrowe - Algorytm Twofish

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

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

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

1. Maszyny rotorowe Enigma

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

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

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

MIKROPROCESOROWY GENERATOR SZUMU BIAŁEGO MICROPROCESSOR BASED WHITE NOISE GENERATOR

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

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG

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

Wykład 4. Języki Opisu Sprzętu

Kurs Verilog cz.1 wstęp

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

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

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Authenticated Encryption

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

Projekt prostego procesora

Laboratorium przedmiotu Technika Cyfrowa

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Teoria automatów i języków formalnych. Określenie relacji

Wybrane zagadnienia teorii liczb

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

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

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

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

Implementacja algorytmu DES

Szyfry kaskadowe. Szyfry kaskadowe

Szyfry kaskadowe. permutacyjnej (SPP).

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

UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak

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

Szyfry strumieniowe. Wykład 6. Binarny addytywny szyfr strumieniowy

Wykład 6. Szyfry strumieniowe

Verilog HDL. Język Opisu Sprzętu Hardware Description Language Część I. Elementy języka. dr inż. Paweł Tomaszewicz H D L

Języki opisu sprzętu VHDL Mariusz Rawski

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Systemy Czasu Rzeczywistego FPGA

OCHRONA INFORMACJI W SYSTEMACH I SIECIACH KOMPUTEROWYCH SYMETRYCZNE SZYFRY BLOKOWE

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Projektowanie w VHDL

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W

Bezpieczeństwo informacji oparte o kryptografię kwantową

Układy sekwencyjne - wiadomości podstawowe - wykład 4

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

Zwiększanie wiarygodności systemów wykorzystujących układy programowalne

Programowalne układy logiczne

Ćw. 7: Układy sekwencyjne

Generatory liczb pseudolosowych. Tomasz Kubik

AKADEMIA TECHNICZNO - ROLNICZA W BYDGOSZCZY PRACA MAGISTERSKA. Wydział Telekomunikacji i Elektrotechniki

Wyświetlacz siedmiosegmentowy

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

Szyfry Strumieniowe. Zastosowanie wybranych rozwiąza. zań ECRYPT do zabezpieczenia komunikacji w sieci Ethernet. Opiekun: prof.

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

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

Planowanie eksperymentu 2 (k p) w 2 r blokach. Stanisław Jaworski, Wojciech Zieliński

Wykład 2. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Architektura komputerów Wykład 2

Układy równań liniowych. Ax = b (1)

LICZNIKI Liczniki scalone serii 749x

Transkrypt:

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

Algorytmy kryptograficzne uŝywane w systemach telekomunikacyjnych własność modulo 2 funkcji XOR P K K = P = P 2

Rejestr z liniowym sprzęŝeniem zwrotnym FSR - inear Feedback Shift Register Sekwencja wektorów generowana przez FSR jest okresowa Okres zaleŝy od: struktury sprzęŝenia (c n,c n-,...,c ) stanu początkowego n n- Generatory wytwarzające sekwencję o maksymalnej długości (maximum-cycle FSRs): okres o długości dla stanu początkowego... okres o długości 2 n - dla kaŝdego innego stanu początkowego 3

Realizacje FSR Rejestr FSR o długości 4 ze współczynnikami c=: a) z wewnętrznym sprzęŝeniem zwrotnym b) z zewnętrznym sprzęŝeniem zwrotnym 4

Właściwości rejestrów FSR JeŜeli FSR ze sprzęŝeniem zewnętrznym opisanym współczynnikami c n,c n-,...,c wytwarza sekwencję o maksymalnej długości, to FSR ze sprzęŝeniem wewnętrznym opisanym współczynnikami c n,c n-,...,c takŝe wytwarza sekwencję o maksymalnej długości (i odwrotnie). JeŜeli FSR ze sprzęŝeniem opisanym współczynnikami c n,c n-,...,c wytwarza sekwencję o maksymalnej długości, to FSR ze sprzęŝeniem opisanym współczynnikami c,c,...,c n takŝe wytwarza sekwencję o maksymalnej długości. 5

Rejestry FSR o minimalnej liczbie sprzęŝeń zwrotnych la kaŝdego n 2 istnieje FSR wytwarzający sekwencję o maksymalnej długości zwykle istnieje więcej niŝ jeden FSR o tej własności szczególnie interesujące układy FSR o najmniejszej złoŝoności (najmniejszej liczbie bramek XOR) la kaŝdego n 68 istnieje FSR wytwarzający sekwencję o maksymalnej długości, którego sprzęŝenie zawiera nie więcej niŝ 3 bramki XOR (2-wejściowe) 6

Rejestry FSR o minimalnej liczbie sprzęŝeń zwrotnych długość rejestru wektor współczynników (oktalnie) liczba wejść do XOR 3 3 2 4 23 2 5 45 2 6 3 2 7 2 2 8 435 4 9 2 2 2 2 45 2 2 23 4 3 233 4... Rejestry o długości do 68 na stronie http://www.xilinx.com/bvdocs/appnotes/xapp52.pdf 7

Rejestry FSR w FPGA W niektórych układach FPGA przerzutniki inicjowane są wartością, stąd rejestr FSR zbudowany na bramkach XOR ma wówczas okres =. Aby zawartość rejestru.. była jedną z sekwencji 2 n -, naleŝy uŝyć bramek XNOR (not XOR). 8

Rejestr FSR o długości 6 V IBRARY ieee; USE ieee.std_logic_64.a; ENTITY lfsr6 IS PORT (clk : IN ST_OGIC; y : OUT ST_OGIC); EN lfsr6; ARCITECTURE lfsr_arch OF lfsr6 IS SIGNA r : ST_OGIC_VECTOR(5 OWNTO ); Ile komórek 4we/wy zajmie ten układ? BEGIN Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '') TEN r(4 OWNTO ) <= r(5 OWNTO ); r(5) <= r() XNOR r() ; EN IF; EN PROCESS Reg; y <= r(); EN lfsr_arch; 9

Rejestr FSR o długości 6 Verilog module lfsr6(clk, y); input clk; output y; wire y; reg [5:] r; always@(posedge clk) begin r[5:] <= r[4:]; r[] <= r[5] ~^ r[4]; end assign y = r[5]; endmodule

Rejestr FSR o długości 6 symulacja

Rejestr FSR o n-bitowym przesunięciu Aby otrzymać n-bitów pseudolosowych naleŝy FSR taktować n razy zegarem. Nie naleŝy brać n bitów z FSR do kodowania, poniewaŝ mają słabe własności pseudolosowe. MoŜliwe jednak jest uzyskanie n-bitów w jednym cyklu zegara. Uzyskuje się to przez uŝycie macierzy przejścia. Rejestr FSR w postaci automatu: x(t+) = Ax(t), gdzie A jest macierzą przejścia Rejestr FSR o n-bitowym przesunięciu: x(t+n) = A n x(t) = A n- x(t+) = A n-2 x(t+2) =... 2

Rejestr FSR zbudowany z wielomianu p = x 6 +x + o przesunięciu 3: x(t+) = Ax(t) x(t+2) = Ax(t+) = A 2 x(t) Rejestr FSR o długości 6 Rejestr FSR o długości 6 Rejestr FSR o długości 6 Rejestr FSR o długości 6 z 3 z 3 z 3 z 3-bitowym przesunięciem bitowym przesunięciem bitowym przesunięciem bitowym przesunięciem 3 x(t+3) = Ax(t+2) = A 2 x(t+) = A 3 x(t) = + + + + + + ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 2 3 4 5 2 3 4 5 t x t x t x t x t x t x t x t x t x t x t x t x = mod 2 3 A

Rejestr FSR o długości 6 z 3-bitowym przesunięciem V IBRARY ieee; USE ieee.std_logic_64.a; ENTITY lfsr6s3 IS PORT (clk : IN ST_OGIC; y : OUT ST_OGIC); EN lfsr6s3; ARCITECTURE lfsr_arch OF lfsr6s3 IS SIGNA r : ST_OGIC_VECTOR(5 OWNTO ); BEGIN Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '') TEN r(5 OWNTO 3) <= r(2 OWNTO ); r(2) <= r(5) XNOR r(4) ; r() <= r(4) XNOR r(3) ; r() <= r(3) XNOR r(2) ; EN IF; EN PROCESS Reg; y <= r(5); EN lfsr_arch; 4

Rejestr FSR o długości 6 z 3-bitowym przesunięciem Verilog module lfsr6s3(clk, y); input clk; output y; wire y; reg [5:] r; always@(posedge clk) begin r[5:3] <= r[2:]; r[2] <= r[5] ~^ r[4]; r[] <= r[4] ~^ r[3]; r[] <= r[3] ~^ r[2]; end assign y = r[5]; endmodule 5

Rejestr FSR o długości 6 z 3-bitowym przesunięciem ługość sekwencji została zmniejszona z (2 6 -)=63 do (2 6 -)/3=2 6

Łączenie rejestrów FSR Łączenie kilku rejestrów w jeden generator klucza np. za pomocą bloku nieliniowego z detekcją progu łatwość implementacji zmniejszenie zasobów logicznych zwiększenie bezpieczeństwa Połączenie trzech rejestrów FSR daje odpowiednik jednego rejestru (algorytm Berlekamp-Massey a) o długości: = 2 + 2 3 + 3 Największy wspólny dzielnik par okresów generatorów = 7

Łączenie 3 rejestrów FSR la podanych wielomianów: p 33 (x) = x 33 + x 6 + x 4 + x + p 29 (x) = x 29 + x 2 + p 38 (x) = x 38 + x 6 + x 5 + x + moŝna stworzyć rejestry FSR o maksymalnej sekwencji. iniowa złoŝoność odpowiednika w postaci jednego rejestru FSR jest następująca: = 33, 2 = 29, 3 = 38 = 3329 + 3338 + 2938 = 333 (!) 8

Łączenie rejestrów FSR generator Geffego Ciąg wynikowy: a 2 a xor (not a 2 )a 3 ZłoŜoność liniowa (n + )n 2 + n n 3 9

Łączenie rejestrów FSR generator stop-and and-go ZłoŜoność liniowa (2 n - )n 2 + n 3 2

Kaskada Gollmana generator stop-and and-go ZłoŜoność liniowa l(2 l - ) n-, gdzie l to długość rejestru lfsr 2

Łączenie rejestrów FSR generator progowy 22

Łączenie rejestrów FSR generator progowy p a b c a b c p p = ab + ac + bc 23

Metody oceny jakości szyfrów Algorytm Berlekampa-Massey'a Testy FIPS 4- - The Monobit Test - The Poker Test - The Runs Test - The ong Run Test Statystyka zer i jedynek RóŜnica między liczbą zer i jedynek 24

Przykład układu szyfrującego IBRARY ieee; USE ieee.std_logic_64.a; ENTITY encrypt IS PORT (clk : IN ST_OGIC; data : IN ST_OGIC_VECTOR(7 OWNTO ); y : OUT ST_OGIC_VECTOR(7 OWNTO )); data_ready : OUT ST_OGIC); EN encrypt ; Rejestr FSR o długości 8 ane 8-bitowe wpisywane do rejestru przesuwającego ARCITECTURE encrypt_arch OF encrypt IS TYPE STATE_TYPE IS (idle, s, s, s2, s3, s4, s5, s6, s7); SIGNA aut : STATE_TYPE; SIGNA lfsr : ST_OGIC_VECTOR(7 OWNTO ); SIGNA shift : ST_OGIC_VECTOR(7 OWNTO ); SIGNA t : ST_OGIC_VECTOR(7 OWNTO ); BEGIN Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '') TEN lfsr(7) <= lfsr(4) XNOR lfsr(3) XNOR lfsr(2) XNOR lfsr(); -- 8-bit FSR lfsr(6 OWNTO ) <= lfsr(7 OWNTO ); 25

CASE aut IS WEN idle => aut <= s; shift <= data; Przykład WEN s => układu aut <= s; szyfrującego shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO realizacja ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s => aut <= s2; shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s2 => aut <= s3; shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s3 => aut <= s4; shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s4 => aut <= s5; shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s5 => aut <= s6; shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s6 => aut <= s7; shift(6 OWNTO ) <= shift(7 OWNTO ); t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); WEN s7 => aut <= s; shift <= data; t(7 OWNTO ) <= ((shift() XOR lfsr()) & t(7 OWNTO )); EN CASE; EN IF; EN PROCESS Reg; 26

Przykład układu szyfrującego realizacja cd. Ready: PROCESS (aut) BEGIN IF aut = s TEN data_ready <= ''; ESE data_ready <= ''; EN IF; EN PROCESS Ready; y <= t; EN encrypt_arch; 27

Przykład układu szyfrującego symulacja SZYFROWANIE Tekst A szyfrogram ESZYFROWANIE 28

Przykład układu szyfrującego 8-bitów w jednym cyklu IBRARY ieee; USE ieee.std_logic_64.a; ENTITY encr_s8 IS PORT (clk : IN ST_OGIC; data : IN ST_OGIC_VECTOR(7 OWNTO ); y : OUT ST_OGIC_VECTOR(7 OWNTO )); EN encr_s8; Rejestr FSR o długości 8 ane 8-bitowe wpisywane do rejestru ARCITECTURE encrypt_arch OF encr_s8 IS TYPE STATE_TYPE IS (idle, s); SIGNA aut : STATE_TYPE; SIGNA lfsr : ST_OGIC_VECTOR(7 OWNTO ); SIGNA shift : ST_OGIC_VECTOR(7 OWNTO ); SIGNA t : ST_OGIC_VECTOR(7 OWNTO ); 29

BEGIN Reg: PROCESS (clk) BEGIN IF clk'event AN (clk = '') TEN lfsr(7) <= lfsr(5) XNOR lfsr(2) XNOR lfsr(); -- 8-bit FSR 8STEP lfsr(6) <= lfsr(4) XNOR lfsr() XNOR lfsr(); lfsr(5) <= lfsr(7) XNOR lfsr(2) XNOR lfsr() XNOR lfsr(); lfsr(4) <= lfsr(7) XNOR lfsr(6) XNOR lfsr(3) XNOR lfsr(2) XNOR lfsr(); lfsr(3) <= lfsr(7) XNOR lfsr(6) XNOR lfsr(5) XNOR lfsr(3); lfsr(2) <= lfsr(6) XNOR lfsr(5) XNOR lfsr(4) XNOR lfsr(2); lfsr() <= lfsr(5) XNOR lfsr(4) XNOR lfsr(3) XNOR lfsr(); lfsr() <= lfsr(4) XNOR lfsr(3) XNOR lfsr(2) XNOR lfsr(); CASE aut IS WEN idle => aut <= s; shift <= data; WEN s => aut <= s; shift <= data; t_n: FOR i IN 7 OWNTO OOP t(i) <= shift(i) XOR lfsr(i); EN OOP; WEN OTERS => aut <= idle; EN CASE; EN IF; EN PROCESS Reg; y <= t; dr inŝ. Paweł EN encrypt_arch; Tomaszewicz 8 A = Macierz przejścia 3

Przykład układu szyfrującego 8-bitów w jednym cyklu SZYFROWANIE Tekst A szyfrogram ESZYFROWANIE 3