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



Podobne dokumenty
Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Projektowanie układów FPGA. Żródło*6+.

HiCoS akademicki system do projektowania hierarchicznych współbieżnych cyfrowych układów sterowania

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

Katedra Mikroelektroniki i Technik Informatycznych

Implementacja algorytmu szyfrującego

Opracował: Jan Front

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Programowanie sterowników PLC wprowadzenie

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

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Sterowniki Programowalne (SP)

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Ukªady Kombinacyjne - cz ± I

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

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

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH

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

Cyfrowe układy scalone

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

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

Laboratorium przedmiotu Technika Cyfrowa

Programowalne układy logiczne

napięcie-częstotliwość

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

Elementy cyfrowe i układy logiczne

Proste układy sekwencyjne

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

Krótkie przypomnienie

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

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Cyfrowe układy scalone

Systemy Czasu Rzeczywistego FPGA

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Układy logiczne układy cyfrowe

Systemy Czasu Rzeczywistego FPGA

Elektronika i techniki mikroprocesorowe

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Implementacja Gigabitowego Ethernetu na układach FPGA dla eksperymentów fizycznych

Cyfrowe układy scalone

Programowalne Układy Cyfrowe Laboratorium

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Systemy na Chipie. Robert Czerwiński

Opis przedmiotu zamówienia

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

Cyfrowe układy scalone c.d. funkcje

Systemy wbudowane. Układy programowalne

Układy logiczne układy cyfrowe

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

Układy FPGA w przykładach, część 2

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

Struktura i działanie jednostki centralnej

Projektowanie Systemów Wbudowanych

Kurs STARTER S5. Spis treści. Dzień 1. III Budowa wewnętrzna, działanie i obsługa sterownika (wersja 0504)

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Układy programowalne. Wykład z ptc część 5

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

Opisy efektów kształcenia dla modułu

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

Architektura komputerów. Układy wejścia-wyjścia komputera

Specyfika projektowania Mariusz Rawski

Współczesne techniki informacyjne

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Szybkie prototypowanie w projektowaniu mechatronicznym

MODELOWANIE I PROGRAMOWANIE PRACY

Architektura komputerów Wykład 2

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

Wygląd okna aplikacji Project Navigator.

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

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Opisy efektów kształcenia dla modułu

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

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2017

Katedra Systemów Cyfrowego Przetwarzania Sygnałów

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

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

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

Układy programowalne. Wykład z ptc część 5

Organizacja typowego mikroprocesora

REALIZACJA KONTROLERÓW

Wykorzystanie hierarchicznego modelu wspó³bieznego automatu

Technika Mikroprocesorowa

Sławomir Kulesza. Projektowanie automatów synchronicznych

Język opisu sprzętu VHDL

Transkrypt:

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 i Elektroniki Uniwersytet Zielonogórski 17 marca 2015 Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 1 / 16

Plan wystapienia 1 Wprowadzenie 2 Projektowanie w technologii FPGA 3 Kryptograficzna ochrona własności intelektualnej 4 Przykład 5 Podsumowanie Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 2 / 16

Wprowadzenie układy FPGA (1/2) Układy FPGA stanowia wydajne środowisko do realizacji układów cyfrowych ogólnego przeznaczenia W łatwy sposób moga być programowane i przeprogramowywane przez użytkownika Szczególnie dobrze nadaja się do zastosowań w układach sterowania Nowoczesne układy oferuja kryptograficzna ochronę projektu Jest to szczególnie istotne w przypadku realizacji projektów objętych zastrzeżeniami patentowanymi, jak na przykład: specjalizowane algorytmy sterowanie reaktorem chemicznym, gdzie przebieg procesu jest chroniony przed konkurencja Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 3 / 16

Wprowadzenie układy FPGA (2/2) Ang. Field Programmable Gate Array Układy bramek programowane przez użytkownika (poza fabryka, w polu ) matryca połączeniowa bloki I/O blok logiczny kanały łączące pionowe kanały łączące poziome Układ XC5VLX50T: matryca 120 CLB (Configurable Logic Block) 28,800 6-wejściowych LUT (Look-Up Table) 480 KB rozproszonej pamięci RAM 240 KB w rejestrach przesuwnych 28,800 przerzutników Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 4 / 16

Ścieżka projektowa Modelowanie koncepcyjne Pierwsze ujęcie formalne FSM Sieć Petriego Maszyna stanów (diagram statechart) Języki HDL jako pośrednik między notacjami graficznymi a systemami CAD Synteza lista połaczeń dostępnych zasobów sprzętowych (bramki, przerzutniki itp.) Implementacja odwzorowanie w konkretne urzadzenie FPGA, plik bitstream Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 5 / 16

Ścieżka projektowa diagram Modelowanie koncepcyjne (np. UML) Pierwsze ujęcie formalne FSM Sieć Petriego Maszyna stanowa (statecharts) Diagram aktywności Języki HDL VHDL Verilog Xilinx ISE Synteza (lista połączeń) Implementacja (odwzorowanie w urządzenie) program impact plik.bit FPGA plik.nky Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 6 / 16

Ochrona zasobów sprzętowych w środowisku Xilinx Kryptograficzny system ochrony układu Virtex-5 składa się dwu części: programistycznej ochrony pliku konfiguracyjnego (bitstream) ochrony sprzętowej wyróżnionej dedykowanej pamięcia dla przechowywania klucza szyfrujacego Szyfrowanie pliku z danymi konfiguracyjnymi przeprowadzane jest zgodnie ze standardem AES Klucz szyfrujacy ma 256-bitów, co daje daje 1, 1 10 77 możliwych kombinacji Zapisanie klucza w dedykowanej pamięci układu podtrzymywanego osobnym zasilaniem (od 1V do 3,6V) Bezpieczny transfer zaszyfrowanych danych między komputerem badź pamięcia a układem FPGA Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 7 / 16

Akademicki system HiCoS System automatycznego projektowania hierarchicznych współbieżnych sterowników binarnych (HCFSM) Wejściem jest tekstowa reprezentacja maszyny stanowej (statecharts, UML) Wewnętrznie zachowanie sterownika opisane jest równaniami logicznymi reprezentowanymi przez BDD (binarne diagramy decyzyjne) Wyjściem jest plik w VHDL, zawierajacy przerzutniki definiujace stan globalny wraz z ich funkcjami wzbudzeń (RTL) Statecharts (SSF file) Boolean Equations (BDDs) HiCoS system Symbolic Set of States (characteristic function) VHDL (flip-flops and excitation functions) VHDL (RTL Level) Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 8 / 16

Sterownik z HiCoS jako układ cyfrowy Układ jest układem synchronicznym (sygnał clock) Sterownik składa się z przerzutników, których złożenie definiuje stan globalny sterownika Przerzutniki sa wzbudzane funkcjami wzbudzeń zbudowanych na podstawie diagramu maszyny stanowej i zasad odpaleń tranzcycji Funkcje wzbudzeń sa uzależnione od wyjść przerzutników Wyjście z układu ustalane jest przez funkcje wyjściowe HiCoS controller input signals clock reset Excitation functions Flip-flop Register Output functions output signals Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 9 / 16

Obrotowe stanowisko do wiercenia schemat ideowy Stół obrotowy z trzema stanowiska obróbczymi 1. stanowisko: obrabiany element jest mocowany 2. stanowisko: obrabiany element jest wiercony 3. stanowisko: obrabiany element jest sprawdzany Obróbka elementu powtarza się cyklicznie Rotary table Drilling station Element Raw element in Completed element out Test Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 10 / 16

Obrotowe stanowisko do wiercenia diagram statechart Start Start1!Rp*X1 Rp*X1 Rotation3 do / {Rt} Machining2 A1 - input A2 - drilling A3 - testing Checking4 F!F Forward5 do / {Y11} X11 Backward6 do / {Y12} X12 Checking8 D!D Clamping9 do / {Y21} X21 Drilling10 do / {Y22} X22 DrillBwd11 do / {Y23} X23 ChuckBwd12 do / {Y24} X24 Checking14 T!T LowerTester15 do / {Y31} X31 RiseTester16 do / {Y32} X32 FreeElem17 do / {Y33} X33 RemElem18 do / {Y34} X34 Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 11 / 16

Praca w środowisku ISE Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 12 / 16

Ustawienia środowiska ISE do zakodowania pliku bitstream Zawartość pliku.nky klucz szyfrujacy w zapisie szesnastkowym Device xc5vlx50tff1136; Key 0 4B424253323031354B424253323031354B424253323031354B42425332303135; Key StartCBC 4B424253323031354B42425332303135; Dane szyfrujace w postaci znaków ASCII Key 0 - KBBS2015KBBS2015KBBS2015KBBS2015 Key StartCBC KBBS2015KBBS2015 Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 13 / 16

Porównanie plików bitstream: jawny i zakodowany Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 14 / 16

Praca z programem impact Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 15 / 16

Podsumowanie Kryptograficzna ochrona projektu w układach FPGA odbywa się poprzez programistyczna ochronę pliku konfiguracyjnego (bitstream) ochronę sprzętowa wyróżnionej pamięci dla przechowywania klucza szyfrujacego Kodowanie pliku bitstream chroni projekt przed: nieautoryzowana analiza i modyfikacja zarówno w układzie (pamięć klucz szyfrujacego) jak i poza nim (zaszyfrowany projekt) Grzegorz Łabiak i Marek Węgrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 16 / 16