Kryptografia pre vstavané procesorové systémy

Doplňujúce materiály a zdrojové kódy k učebnici

Miloš Drutarovský: Kryptografia pre vstavané procesorové systémy. Technická univerzita v Košiciach, 2017, ISBN 978-80-553-2805-8

Učebnica oboznamuje študentov so základnými technikami implementácie kryptografických stavebných blokov (kryptografických primitív), ktoré sú využívané v moderných vstavaných systémoch, základnými metódami ich optimalizácie a nástrojmi pre ich efektívnu implementáciu a testovanie. Cieľom je poukázať na úzku súvislosť medzi teoretickými poznatkami z matematiky (teória čísel, algebra a štatistika) a efektívnou implementáciou kryptografických algoritmov v moderných vstavaných systémoch. Na vybraných príkladoch kryptografických blokov sú v učebnici naznačené možnosti využitia základného vývojového nástroja – jazyka C, s ktorým sa študenti stretávajú v základných predmetoch štúdia. Využíva sa tiež efektívny matematický nástroj (softvérový balík Magma), ktorý umožňuje výrazne zvýšiť efektivitu testovania pri vývoji a implementácii moderných kryptografických algoritmov a protokolov. Hlavným cieľom učebnice je prehĺbiť znalosti z algoritmizácie a programovania v tejto špecifickej oblasti, a čo najjednoduchšou formou poukázať na praktické využitie matematického aparátu, s ktorým sa študenti stretávajú počas štúdia len okrajovo. Tomuto cieľu je prispôsobený aj výber vývojových nástrojov, ktoré sú v učebnici využívané. Všetky použité nástroje sú voľne dostupné aj v tzv. testovacích verziách, ktorých funkčnosť je pre náplň učebnice postačujúca.
Učebnica je určená hlavne študentom odborov počítačové inžinierstvo, elektronika a telekomunikačná technika, ale aj ďalším záujemcom o problematiku využitia kryptografie vo vstavaných systémoch. Publikácia vznikla s prispením grantovej agentúry APVV SR v rámci riešenia projektov APVV-0586-11 a APVV-15-0692.

Použité vývojové nástroje:

Vývojové prostredie DEC C++ - integrovaný GNU C a C++ prekladač, linker, debuger a podporné programy (make, ...) pre platformu Windows
Softvérový balík Magma - v učebnici su realizované výpočty pomocou voľne dostupnej kalkulačky Magma
Nástroj OpenSSL - dostupné inštalačné balíky
Vývojový nástroj MDK (Microcontroller Development Kit) firmy ARM Keil pre mikrokontroléry s 32-bitovým jadrom ARM. MDK obsahuje aj simulátor uVision - voľne dostupná testovacia verzia MDK je dostupná na tejto stránke. Testovacia verzia pre 8-bitové MCU s jadrom Intel 8051 je dostupná na tejto stránke.

Program "Hello World" pre využívané platformy:

HelloWorldWindows - pre Windows OS s inštalovaným DEC C++
HelloWorldSTM32F103 - pre MCU STM32F103RB (32-bitové jadro ARM Corte-M3) a nainštalovaným balíkom MDK
HelloWorldIntel8052 - pre MCU Intel8052 (8-bitové jadro kompatibilné s 8051) a nainštalovaným balíkom pre C51
HelloWorldADuC836 - pre MCU ADuC836 (8-bitové jadro kompatibilné s 8051) a nainštalovaným balíkom pre C51
HelloWorldADuC842 - pre MCU ADuC842 (zrýchlené 8-bitové jadro kompatibilné s 8051) a nainštalovaným balíkom pre C51

Štatistické testy FIPS140:

TestyFIPS140 - zdrojové C kódy štatistických testov FIPS140 programu pre Windows OS s inštalovaným DEC C++
FIPS140_Normy - rôzne verzie normy FIPS140, v ktorých boli uvedené prahy využívané v zdrojových C kódoch

Referenčné implementácie:

AES - malá portovateľná implementácia AES128,192,256 v jazyku C [lokálna kópia archívu AES so zjednodušeným makefile pre PC platformu]
SHA1 - malá implementácia hašovacej funkcie SHA1 v jazyku C
SHA2 - malá implementácia hašovacej funkcie SHA2 v jazyku C
SHA3 - malá implementácia hašovacej funkcie SHA3 v jazyku C
CryptoLib CryptoLib - príklad malej knižnice v jazyku C (vrátane AES, SHA1 a SHA2) bez externých závislostí
TinyCrypt - malá kryptografická knižnica pre vstavané zariadenia

Násobenie v GF(2^128):

gf128_mul - implementácia násobenia v Galoisovom poli GF (2^128) pre GCM mód blokovej šifry

Príloha:

Magma - stručný úvod a linky na podrobnejšie informácie

Referencie:

Referencie a register knihy v PDF formáte s aktívnymi hyperlinkami

Námety, pripomienky a otázky posielajte na

Posledná aktualizácia 16.10.2017