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