Ochrona własnosci intelektualnej projektów w układach FPGA
Transkrypt
Ochrona własnosci intelektualnej projektów w układach FPGA
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˛egrzyn Instytut Informatyki i Elektroniki Uniwersytet Zielonogórski 17 marca 2015 Grzegorz Łabiak i Marek W˛egrzyn (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˛egrzyn (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˛ sie˛ do zastosowań w układach sterowania Nowoczesne układy oferuja˛ kryptograficzna˛ ochrone˛ projektu Jest to szczególnie istotne w przypadku realizacji projektów objetych ˛ zastrzeżeniami patentowanymi, jak na przykład: specjalizowane algorytmy sterowanie reaktorem chemicznym, gdzie przebieg procesu jest chroniony przed konkurencja˛ Grzegorz Łabiak i Marek W˛egrzyn (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 kanały łączące pionowe bloki I/O blok logiczny 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 pamieci ˛ RAM 240 KB w rejestrach przesuwnych 28,800 przerzutników Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 4 / 16 Ścieżka projektowa Modelowanie koncepcyjne Pierwsze ujecie ˛ formalne FSM Sieć Petriego Maszyna stanów (diagram statechart) Jezyki ˛ HDL – jako pośrednik miedzy ˛ notacjami graficznymi a systemami CAD Synteza – lista połacze ˛ ń dostepnych ˛ zasobów sprz˛etowych (bramki, przerzutniki itp.) Implementacja – odwzorowanie w konkretne urzadzenie ˛ FPGA, plik bitstream Grzegorz Łabiak i Marek W˛egrzyn (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 plik .nky GA FP Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 6 / 16 Ochrona zasobów sprz˛etowych w środowisku Xilinx Kryptograficzny system ochrony układu Virtex-5 składa sie˛ dwu cz˛eści: programistycznej ochrony pliku konfiguracyjnego (bitstream) ochrony sprz˛etowej wyróżnionej dedykowanej pamieci ˛ a˛ 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 × 1077 możliwych kombinacji Zapisanie klucza w dedykowanej pamieci ˛ układu podtrzymywanego osobnym zasilaniem (od 1V do 3,6V) Bezpieczny transfer zaszyfrowanych danych miedzy ˛ komputerem badź ˛ pamieci ˛ a˛ a układem FPGA Grzegorz Łabiak i Marek W˛egrzyn (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) Wewnetrznie ˛ 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) HiCoS system Statecharts (SSF file) Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Boolean Equations (BDDs) Symbolic Set of States (characteristic function) VHDL (flip-flops and excitation functions) VHDL (RTL Level) 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 sie˛ 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 Excitation functions Flip-flop Register Output functions output signals clock reset Grzegorz Łabiak i Marek W˛egrzyn (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 sie˛ cyklicznie Drilling station Element Rotary table Completed element out Te s t Raw element in Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 10 / 16 Obrotowe stanowisko do wiercenia – diagram statechart Start1 !Rp*X1 Start A1 - input Checking4 F !F Forward5 do / {Y11} X11 Backward6 do / {Y12} X12 Rp*X1 Machining2 A2 - drilling Checking8 D !D Clamping9 do / {Y21} X21 Drilling10 do / {Y22} X22 DrillBwd11 do / {Y23} X23 ChuckBwd12 do / {Y24} X24 Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Rotation3 do / {Rt} A3 - testing Checking14 T !T LowerTester15 do / {Y31} X31 RiseTester16 do / {Y32} X32 FreeElem17 do / {Y33} X33 RemElem18 do / {Y34} X34 Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 11 / 16 Praca w środowisku ISE Grzegorz Łabiak i Marek W˛egrzyn (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˛egrzyn (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˛egrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 14 / 16 Praca z programem iMPACT Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 15 / 16 Podsumowanie Kryptograficzna ochrona projektu w układach FPGA odbywa sie˛ poprzez programistyczna˛ ochrone˛ pliku konfiguracyjnego (bitstream) ochrone˛ sprz˛etowa˛ wyróżnionej pamieci ˛ dla przechowywania klucza szyfrujacego ˛ Kodowanie pliku bitstream chroni projekt przed: nieautoryzowana˛ analiza i modyfikacja˛ zarówno w układzie (pamieć ˛ klucz szyfrujacego) ˛ jak i poza nim (zaszyfrowany projekt) Grzegorz Łabiak i Marek W˛egrzyn (UZ IIE) Ochrona IP w FPGA poprzez szyfrowanie danych konfiguracyjnych 17 marca 2015 16 / 16