VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE

Podobné dokumenty
Šifrová ochrana informací věk počítačů PS5-2

Šifrová ochrana informací věk počítačů PS5-2

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

Komerční výrobky pro kvantovou kryptografii

Kryptografie založená na problému diskrétního logaritmu

Kvantové algoritmy a bezpečnost. Václav Potoček

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

asymetrická kryptografie

Diffieho-Hellmanův protokol ustanovení klíče

ElGamal, Diffie-Hellman

Digitální podepisování pomocí asymetrické kryptografie

Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz

Problematika převodu zprávy na body eliptické křivky

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

Asymetrická kryptografie

ZÁKLADNÍ METODY REFLEKTOMETRIE

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007

KRYPTOGRAFIE VER EJNE HO KLI Č E

Šifrová ochrana informací věk počítačů KS - 5

MINIMÁLNÍ POŽADAVKY NA KRYPTOGRAFICKÉ ALGORITMY. doporučení v oblasti kryptografických prostředků

Složitost a moderní kryptografie

Digitální podepisování pomocí asymetrické kryptografie

Pokročilá kryptologie

Proudové šifry a posuvné registry s lineární zpětnou vazbou

Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie

Správa přístupu PS3-2

Šifrová ochrana informací věk počítačů PS5-1

Kvantová informatika pro komunikace v budoucnosti

RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.

Kryptografie - Síla šifer

Základy kryptologie. Kamil Malinka Fakulta informačních technologií

Základy šifrování a kódování

PA159 - Bezpečnostní aspekty

Základy kryptografie. Beret CryptoParty Základy kryptografie 1/17

Informatika / bezpečnost

Jak funguje asymetrické šifrování?

Eliptické křivky a RSA

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky. 7.přednáška. Kryptosystémy veřejného klíče II

C5 Bezpečnost dat v PC

PSK2-16. Šifrování a elektronický podpis I

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra

MODERNÍ ASYMETRICKÉ KRYPTOSYSTÉMY

Lehký úvod do dvou algoritmů postkvantové kryptografie

MFF UK Praha, 22. duben 2008

Čínská věta o zbytcích RSA

Pokročilá kryptologie

PSK2-5. Kanálové kódování. Chyby

Andrew Kozlík KA MFF UK

Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy

Hashovací funkce. Andrew Kozlík KA MFF UK

RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01

BEZPEČNOST INFORMACÍ

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

Postranními kanály k tajemství čipových karet

Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách

Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 2. Podpisová schémata -elementární principy- (1)

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky Asymetrické kryptosystémy I

Elektronický podpis. Základní princip. Digitální podpis. Podpis vs. šifrování. Hashování. Jednosměrné funkce. Odesílatel. Příjemce

Moderní metody substitučního šifrování


VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Aplikovaná numerická matematika

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy

SSL Secure Sockets Layer

Matematika IV - 5. přednáška Polynomy

Vzdálenost jednoznačnosti a absolutně

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky

Od Enigmy k PKI. principy moderní kryptografie T-SEC4 / L3. Tomáš Herout Cisco. Praha, hotel Clarion dubna 2013.

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

UKRY - Symetrické blokové šifry

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Aplikovaná numerická matematika - ANM

Cryptelo je systém kompletně navržený a vyvinutý přímo naší společností. Aplikace šifrování do běžné praxe. Cryptelo chrání přímo vaše data

DSY-6. Přenosový kanál kódy pro zabezpečení dat Základy šifrování, autentizace Digitální podpis Základy měření kvality přenosu signálu

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu

Bezpečnostní aspekty informačních a komunikačních systémů KS2

0.1 Úvod do lineární algebry

2. Schurova věta. Petr Tichý. 3. října 2012

Protokol pro zabezpečení elektronických transakcí - SET

Kerchhoffův princip Utajení šifrovacího algoritmu nesmí sloužit jako opatření nahrazující nebo garantující kvalitu šifrovacího systému

Miroslav Kureš. Aplikovaná matematika Ostravice workshop A-Math-Net Sít pro transfer znalostí v aplikované matematice

ALTERNATIVNÍ METODY V KRYPTOGRAFII

Digitální měna Bitcoin. Dalibor Hula Slezská univerzita v Opavě OPF v Karviné

Matematika IV - 5. přednáška Polynomy

Směry rozvoje v oblasti ochrany informací PS 7

Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA

Karel Lemr. web: Karel Lemr Fotonové páry 1 / 26

Konstrukce šifer. Andrew Kozlík KA MFF UK

příklad Steganografie Matematické základy šifrování šifrování pomocí křížů Hebrejské šifry

Diskrétní logaritmus

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

základní informace o kurzu základní pojmy literatura ukončení, požadavky, podmiňující předměty,

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

stránkách přednášejícího.

Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı

Seminární práce do předmětu: Bezpečnost informačních systémů. téma: IPsec. Vypracoval: Libor Stránský

Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 1. O pojmu bezpečnost Poznámka o hodnocení kryptografické bezpečnosti.

BEZPEČNOST IS. Ukončení předmětu: Předmět je zakončen zkouškou sestávající z písemné a doplňkové ústní části.

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE Brno, 2018 Lucie Popelová

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION ÚSTAV TELEKOMUNIKACÍ DEPARTMENT OF TELECOMMUNICATIONS METODY POST-KVANTOVÉ KRYPTOGRAFIE METHODS OF POST-QUANTUM CRYPTOGRAPHY BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR Lucie Popelová VEDOUCÍ PRÁCE SUPERVISOR Ing. Lukáš Malina, Ph.D. BRNO 2018

Bakalářská práce bakalářský studijní obor Informační bezpečnost Ústav telekomunikací Studentka: Lucie Popelová ID: 163571 Ročník: 3 Akademický rok: 2017/18 NÁZEV TÉMATU: Metody post-kvantové kryptografie POKYNY PRO VYPRACOVÁNÍ: Seznamte se s metodami post-kvantové kryptografie. Zaměřte se především na metody pro ustanovení klíčů a metody, které nahrazují kryptografii veřejných klíčů. Analyzujte metody post-kvantové kryptografie a zhodnoťte jejich praktickou použitelnost. Vyberte vhodné schémata a metody pro implementaci a porovnejte jejich paměťovou a výpočetní náročnost. U vybraných metod proveďte verifikační implementace na výpočetně omezených zařízeních a zhodnoťte jejich výpočetní efektivitu a paměťové nároky pro různé parametry. Na základě měření a analýzy navrhněte vhodné řešení pro paměťově omezená zařízení a řešení pro výpočetně omezená zařízení. DOPORUČENÁ LITERATURA: [1] ALKIM, Erdem, DUCAS, Léo, POPPELMANN, Thomas, SCHWABE, Peter. Post-quantum Key Exchange-A New Hope. USENIX Security Symposium, s 327-343. 2016. [2] CHEN, Lily, et al. Report on post-quantum cryptography. US Department of Commerce, National Institute of Standards and Technology, 2016. Termín zadání: 5.2.2018 Termín odevzdání: 29.5.2018 Vedoucí práce: Konzultant: Ing. Lukáš Malina, Ph.D. prof. Ing. Jiří Mišurec, CSc. předseda oborové rady UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb. Fakulta elektrotechniky a komunikačních technologií, Vysoké učení technické v Brně / Technická 3058/10 / 616 00 / Brno

ABSTRAKT V posledních desítkách let dochází k radikálnímu technologickému vývoji, který se mimo jiné orientuje i na kvantové počítače. V případě budoucího využití Shorova algoritmu na kvantových počítačích je pravděpodobné, že některé matematické problémy, na které spoléháme, budou vypočitatelné v polynomiálním čase. Je tedy třeba věnovat pozornost vývoji postkvantové kryptografie, která je schopna odolat kvantovým útokům a zabezpečit vůči nim systémy. Práce se věnuje souhrnu a komparaci jednotlivých typů postkvantové kryptografie a následně je prakticky měří a analyzuje na PC a omezeném zařízení. Takto naměřené hodnoty jsou následně využity pro komparaci a nalezení efektivního postkvantového protokolu, konkrétně pro ustanovení klíčů a podpisového schématu, pro paměťově omezené zařízení a výpočetně omezené zařízení. KLÍČOVÁ SLOVA postkvantová kryptografie, Raspberry Pi 3, Frodo, New Hope, Kyber, NTRU, BCNS, McBits, SIDH, SIKE, Picnic, výpočetně omezené zařízení, paměťově omezené zařízení ABSTRACT In the last decades there has been such a fundamental development in the technologies including postquantum technologies. In case that the Shor algorithm would be used on quantum computers it is likely to solve mathematical problems in real time which are major for our security. It is necessary to focus on postquantum cryptography, which is able to resist quantum attacks and secure our systems. This work analyses and compares different types of postquantum cryptography. Afterwards this work chooses postquantum protocols which are measured and analysed on the PC and IoT device. Furthemore data are used to find the most effective postquantum protocol for key exchange and signature scheme. KEYWORDS postquantum cryptography, Raspberry Pi 3, Frodo, New Hope, Kyber, NTRU, BCNS, McBits, SIDH, SIKE, Picnic, computationally limited device, memory limited device POPELOVÁ, Lucie. Metody postkvantové kryptografie. Brno, 2018, 55 s. Bakalářská práce. Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací. Vedoucí práce: Ing. Lukáš Malina, Ph.D. Vysázeno pomocí balíčku thesis verze 3.03; http://latex.feec.vutbr.cz

PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Metody postkvantové kryptografie jsem vypracovala samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autorka uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušila autorská práva třetích osob, zejména jsem nezasáhla nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědoma následků porušení ustanovení S 11 a následujících autorského zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. Brno................................................. podpis autorky

PODĚKOVÁNÍ Ráda bych poděkovala vedoucímu bakalářské práce panu Ing. Lukáši Malinovi, Ph.D. za odborné vedení, konzultace, trpělivost a podnětné návrhy k práci. Brno................................................. podpis autorky

Faculty of Electrical Engineering and Communication Brno University of Technology Purkynova 118, CZ-61200 Brno Czech Republic http://www.six.feec.vutbr.cz PODĚKOVÁNÍ Výzkum popsaný v této bakalářské práci byl realizován v laboratořích podpořených z projektu SIX; registrační číslo CZ.1.05/2.1.00/03.0072, operační program Výzkum a vývoj pro inovace. Brno................................................. podpis autorky

Tato práce vznikla jako součást klíčové aktivity KA6 - Individuální výuka a zapojení studentů bakalářských a magisterských studijních programů do výzkumu v rámci projektu OP VVV Vytvoření double-degree doktorského studijního programu Elektronika a informační technologie a vytvoření doktorského studijního programu Informační bezpečnost, reg. č. CZ.02.2.69/0.0/0.0/16_018/0002575. Projekt je spolufinancován Evropskou unií.

Obsah Úvod 13 1 Postkvantová kryptografie 14 1.1 Kryptografie založená na mřížkách................... 15 1.1.1 Využití v postkvantové kryptografii............... 15 1.2 Kryptografie založena na hashovacích funkcích............. 17 1.2.1 Využití v postkvantové kryptografii............... 17 1.3 Kryptografie založena na teorii kódování................ 18 1.3.1 Využití v postkvantové kryptografii............... 18 1.4 Kryptografie založena na polynomiálních rovnicích........... 19 1.4.1 Využití v postkvantové kryptografii............... 19 1.5 Kryptografie založená na supersingulárních eliptických křivkách... 20 1.5.1 Využití v postkvantové kryptografii............... 20 1.6 Shrnutí................................... 20 2 Postkvantové kryptosystémy 22 2.1 Protokol NTRU.............................. 22 2.2 Protokol New Hope............................ 23 2.3 Protokol Kyber.............................. 25 2.3.1 Kyber.CPA............................ 26 2.3.2 Kyber.Hybrid........................... 27 2.4 Protokol Frodo.............................. 28 2.5 Protokoly SIDH a SIKE......................... 29 2.6 Protokol BCNS.............................. 30 2.7 Protokol McBits.............................. 31 2.8 Protokol Picnic.............................. 32 2.9 Srovnání na virtuálním počítači..................... 33 2.9.1 Měření postkvantových protokolů................ 33 2.9.2 Měření podpisového schématu.................. 35 3 Zhodnocení postkvantové kryptografie na omezených zařízení 37 3.1 Konfigurace OS a měřených knihoven.................. 37 3.2 Použité protokoly............................. 38 3.2.1 Úroveň bezpečnosti........................ 40 3.3 Porovnání dvou zařízení......................... 41 3.4 Měření a analýza postkvantových protokolů.............. 42 3.5 Měření a analýza podpisového schématu................ 45

3.6 Návrh poskvantového zabezpečení pro systémy omezených zařízení.. 46 3.6.1 Postkvantové zabezpečení pro ustanovení společného klíče.. 47 3.6.2 Postkvantové zabezpečení pro podepisování........... 49 4 Závěr 50 Literatura 51 Seznam symbolů, veličin a zkratek 54

Seznam obrázků 1.1 Unruhův návrh při vyhodnocování zprávy m............... 17 1.2 Unruhův návrh při vyhodnocování zprávy H (m)............ 18 3.1 Úrovně klasické bezpečnosti a postkvantové bezpečnosti, které nabízí protokoly pro ustanovení společného klíče................ 40 3.2 Úrovně klasické bezpečnosti a postkvantové bezpečnosti, které nabízí podpisové schéma Picnic.......................... 41 3.3 Porovnání časové náročnosti postkvantového protokolu New Hope a protokolu ECDH.............................. 47 3.4 Porovnání časové náročnosti mezi postkvantovým protokolem Picnic L5 FS a protokolem ECDSA p256.................... 48

Seznam tabulek 1.1 Bezpečnost kryptografických algoritmů proti kvantovým počítačům.. 14 1.2 Bezpečnost kryptografických algoritmů proti kvantovým počítačům.. 21 2.1 Teoretické porovnání mezi jednotlivými protokoly............ 33 2.2 Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem.................................. 34 2.3 Tabulka přenesených bytů při generování klíčů............. 35 2.4 Průměrný počet procesorových cyklů během ustanovení společného klíče mezi Alicí a Bobem......................... 35 2.5 Průměrná doba operace z 10-ti měření během podepisování a verifikace mezi Alicí a Bobem na Raspberry Pi 3.............. 36 2.6 Počet procesorových cyklů během podepsání a verifikace mezi Alicí a Bobem na Raspberry Pi 3........................ 36 3.1 Tabulka jednotlivých parametrů a typů kryptografie protokolů pro ustanovení společného klíče........................ 39 3.2 Tabulka jednotlivých parametrů a typů kryptografie podpisového protokolu Picnic................................ 39 3.3 Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem pro New Hope na virtuálním PC a Raspberry Pi 3...... 41 3.4 Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem pro ECDH-256 na PC a Raspberry Pi 3............ 42 3.5 Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem.................................. 43 3.6 Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem.................................. 43 3.7 Průměrný počet procesorových cyklů během ustanovení společného klíče mezi Alicí a Bobem......................... 44 3.8 Průměrný počet procesorových cyklů během ustanovení klíče na základě supersingulárních křivek mezi Alicí a Bobem........... 44 3.9 Tabulka přenesených bytů při generování klíčů............. 45 3.10 Tabulka přenesených bytů při generování klíčů............. 45 3.11 Průměrná doba operace z 10-ti měření během podepsání a verifikace mezi Alicí a Bobem na Raspberry Pi 3.................. 46 3.12 Počet procesorových cyklů během podepsání a verifikace mezi Alicí a Bobem na Raspberry Pi 3......................... 46

Seznam výpisů 3.1 Zadefinování ARM............................ 37 3.2 Nová podmínka, která je definována pro ARM............. 38 3.3 Zmena velikosti pro ARM........................ 38

Úvod V dnešní době je kryptografie založena na matematických problémech, například na výpočtu prvočíselného rozkladu nebo diskrétního logaritmu, které jsou schopny zabezpečit systémy proti klasickým útokům. Ovšem v případě budoucího využití kvantového počítače a Shorova algoritmu je pravděpodobné, že zmíněné problémy již budou vypočitatelné v polynomiálním čase. Z tohoto důvodu vznikla postkvantová kryptografie, která zastřešuje protokoly a kryptosystémy, které jsou odolné vůči kvantovým počítačům. V posledních letech roste zájem odborníků a vědců, kteří přichází stále s novějšími a efektivnějšími protokoly, které dokáží zabezpečit zařízení i proti kvantovým počítačům. Tyto protokoly jsou založeny na různých typech kryptografie a využívají rozličných matematických problémů. Všechny spojuje fakt, že jsou odolné vůči kvantovým počítačům, ale již není jasné, který z nich je nejefektivnější pro jaké zařízení. Současné výzkumy se orientují na měření a analyzování protokolů především na PC nebo notebooku nikoliv však na omezených zařízeních. Práce se tedy zaměřuje na měření protokolů na omezených zařízeních, jako je například Raspberry Pi 3. Tato omezená zařízení jsou hojně využívána například při budování chytrých měst či IoT. Jedná se o důležitý typ zařízení, který je výpočetně i paměťově omezený. Toto omezení může být překážkou při implementaci postkvantových protokolů. Cílem této práce je seznámit se s aktuálními protokoly založenými na postkvantové kryptografii, které jsou určeny pro ustanovení klíčů a podepisování a následně změřit a zanalyzovat jejich výpočetní a paměťovou náročnost. Následně využít omezeného zařízení Raspberry Pi 3, zjistit jeho možnosti v oblasti protokolů postkvantové kryptografie a zaměřit se na protokoly pro ustanovení společného klíče a podpisové protokoly. Na základě naměřených hodnot následně určit vhodné kandidáty pro paměťově omezená zařízení a výpočetně omezená zařízení. Práce je rozdělena do několika kapitol. V rámci první kapitoly představí samotný termín postkvantové kryptografie a rozebere typy kryptografie, které odolávají kvantovým útokům. Bude se jednat o kryptografii založenou na mřížkách, hashovacích funkcích, polynomiálních funkcích, kódování a supersingulárních křivkách. V druhé kapitole se detailně zaměří na konkrétní protokoly, které budou využity v rámci praktické části. Tyto protokoly budou následně měřeny a analyzovány na omezeném zařízení Raspberry Pi 3 Model B za účelem zjištění vhodných protokolů pro omezená zařízení. 13

1 Postkvantová kryptografie Na oblast postkvantové kryptografie je kladen důraz od okamžiku, kdy v roce 1994 Peter Shor 1 dokázal, že kvantové počítače jsou schopny vyřešit většinu matematických problémů, na kterých jsou založeny moderní kryptosystémy. Jedná se například o náročnost výpočtu prvočíselného rozkladu a diskrétního logaritmu. Díky tomuto zjištění jsou některé dnešní kryptografické algoritmy do budoucna nepoužitelné proti kvantovým počítačům. Kvantové počítače jsou obecně velmi odlišné v porovnání s klasickými výpočetními technikami. V klasických výpočetních technologiích jsou čísla reprezentována bity. Tyto bity mohou nabývat hodnot 0 nebo 1. Obecně je možné reprezentovat číslo mezi 0 a 2 n 1 rozsahu, kde n je maximální počet bitů. Kvantové výpočetní technologie pracují odlišně a spoléhají se na takzvané qubity. Kvantové bity nejsou pouze navázány na hodnoty 0 a 1. Místo toho mají vlastní superpozici, která se skládá ze dvou hodnot, které mohou nabývat libovolných hodnot mezi 0 a 1 s odlišnou pravděpodobností. Možnosti, které přináší kvantové počítače představují zásadní skok pro výpočetní matematiku a teorii čísel. Při použití Shorova algoritmu je do budoucna možné vypočítat matematické problémy, které byly dříve považovány za neřešitelné [2, s. 1 3]. Tab. 1.1: Bezpečnost kryptografických algoritmů proti kvantovým počítačům. Kryptografický algoritmus Typ Účel AES-256 Symetrický kryptosystém Symetrické šifrování SHA-256, SHA-3 Hashovací funkce Jednosměrná kompresní funkce RSA Asymetrický kryptosystém Podepisování, Asymetrické šifrování, Ustanovení klíčů ECDSA, ECDH Asymetrický kryptosystém Podepisování, Ustanovení klíčů DSA Asymetrický kryptosystém Podepisování, Ustanovení klíčů Zabezpečení proti kvantovým počítačům Bezpečný při použití delších klíčů Bezpečná při použití delšího výstupu Není bezpečný Není bezpečný Není bezpečný Tabulka 1.1 obecně znázorňuje možnosti kryptografických algoritmů při jejich využití proti kvantovým počítačům. Grooverův algoritmus nabídl kvantovým počítačům kvadratické zrychlení, které by v případě AES, SHA-2, SHA-3 bylo možné vyřešit 1 Peter Shor je americký profesor aplikované matematiky, který je autorem kvantového algoritmu pro prvočíselný rozklad [1]. 14

větší velikostí klíčů nebo výstupu. Do budoucna je kubické zrychlení prozatím nemožné, proto by toto řešení bylo pro kryptosystémy dostačující. Tyto kryptosystémy jsou považovány za bezpečné i proti kvantovým počítačům. V případě ECDH, ECDSA, RSA, DSA a dalších kryptosystémů založených na podobných matematických problémech, které je Shorův algoritmus schopen vypočítat, nelze je považovat za bezpečné [2, s. 3 6]. Z tohoto důvodu dochází k implementaci nových matematických problémů, které by byly schopny odolávat kvantovým útokům. Od roku 2015 lze vnímat větší rozmach v publikování nových protokolů, které optimalizují algoritmy pro ustanovení klíčů, šifrování a podepisování. V rámci této kapitoly se čtenář seznámí s několika typy kryptografie, které se využívají nejen v postkvantové kryptografii. Jejich použití může mít zásadní dopad na zabezpečování proti kvantovým útokům. 1.1 Kryptografie založená na mřížkách Kryptografie založená na mřížkách se řadí mezi postkvantové systémy, které jsou schopny odolat kvantovým útokům. Lze ji efektivně a jednoduše implementovat a zároveň využívá silných bezpečnostních algoritmů. Jak již je jasné z názvu, tak tato kryptografie využívá mřížky. Mřížky jsou množiny bodů v n-rozměrném prostoru uspořádány periodicky. V případě 2-dimenzionálního prostoru si lze tuto problematiku představit jako Z 2 množinu bodů [3, s. 1 4]. Definice 1.1.1 Mějme n lineárně nezávislých vektorů b 1,..., b n R n. Poté množinu nazýváme mřížkou nad vektory b 1,..., b n. n n L = b i = { a i b i ; a 1,..., a n, b i Z} (1.1) i=1 i=1 Definice 1.1.2 Pokud L je mřížkou nad vektory b 1,..., b n, tak vektory tvoří bázi mřížky L. Číslo n se nazývá hodností mřížky. Při zabezpečování se jako n používá prvočíslo, které se značí písmenem q. 1.1.1 Využití v postkvantové kryptografii Mřížky využívají dvou matematických problémů, které je dělají prozatím imunní vůči kvantovým počítačům. Jedná se o problém Shortest Vector Problem (SVP) a Closest Vector Problem (CVP). 15

Problematika SVP je spojena s hledáním nejkratšího vektoru báze. Lze si to představit na příkladu, kdy máme zadanou mřížku L, libovolnou bázi a cílem je najít nejkratší nenulový vektor, který do mřížky patří [5, s. 370 372]. Je třeba si uvědomit, že se hledá bod mřížky, který je nejblíže nule, ale není nulový. Tento princip využívá NTRU Encrypt při zabezpečení privátního klíče. K hledání nejkratšího nenulového vektoru se využívá například algoritmus LLL 2, který počítá s časem 2 n(log n)2 / log n anebo Kannanův algoritmus, který počítá s časem 2 O(n log n). Druhou problematikou je CVP(Closest Vector Problem), která je spojena s nalezením nejbližšího vektoru vůči libovolnému vektoru mřížky [4, s. 5]. V tomto případě je možné, aby vektor byl nulový, pokud je součástí mřížky a nejblíže zvolenému bodu. Oba tyto problémy patří mezi problémy NP-těžké. Existují další varianty SVP i CVP, jako například apprsvp nebo apprcvp viz [5, s. 371]. Jediný kvantový algoritmus, který by si teoreticky mohl prozatím poradit s problémy mřížky je Shorův algoritmus, u kterého to nebylo dosud prokázáno. Při použití správných parametrů je i přesto kryptografie založená na mřížkách považována za bezpečný kryptosystém. Na základě CVP a SVP se zakládají dva konkrétní matematické problémy v postkvantové kryptografii. Nazývají se LWE problém (Learning With Errors) a Ring- LWE problém. LWE problém je založen na skutečnosti, že je těžké rozlišit distribuci (A, As + e), kde A je jednotná náhodná matice v Zq m n, s je jednotný náhodný vektor v Z n q a e je vektor s menšími koeficienty zvolenými z distribuce. Tajné s může být i z blízké distribuce, jako je e a složitost zůstane zachována [6, s. 5 9]. NTRU raději než nad reálnými čísly pracuje nad polynomiálními okruhy, které definují Ring-LWE problém. Ring-LWE zahrnuje do LWE problematiku polynomiálních okruhů nad konečným polem. LWE pracuje na základě generických mřížek, zatímco Ring-LWE pracuje na základě ideálních mřížek. Prací s ideálními mřížkami se snižuje výpočetní náročnost. Bližší informace k oběma problémům jsou detailně rozebrány například v [7, s. 20 25]. V práci jsou představeny jak protokoly, které využívají Ring-LWE problému, tak ty, co pracují čistě s LWE problémem. Mezi známé postkvantové kryptosystémy založené na mřížkách lze zařadit NTRU, New Hope, Frodo a Kyber. Všechny protokoly kromě NTRU jsou aktuální a byly zveřejněny v období 2016/2017. Zmíněným protokolům se bakalářská práce bude věnovat v další kapitole. 16

1.2 Kryptografie založena na hashovacích funkcích Hashovací funkce je matematická, jednosměrná funkce, která mapuje řetězec libovolné délky na řetězec konstantní délky. Následně vytváří otisk vstupního řetězce, tedy hash, ke kterému je velmi obtížné nalézt vstupní zprávu. Existuje několik požadavků, které musí hashovací funkce splňovat: (a) Hashovací funkce je jednosměrná, nelze spočítat x takové, aby H (x) = c. (b) Pro výstup x je náročné spočítat y, aby platilo H (x) = H (y). (c) Je třeba, aby byl odolný vůči kolizím. Je tedy těžké nalézt dvojici zpráv (x, y) tak, aby platilo H (x) = H (y). (d) Pro vstup o jakékoli délce je výstup vždy stejně dlouhý. Využití hashovacích funkcí je zpravidla spojené s využitím hashovacích tabulek, které slouží k rychlému nalezení dat na základě klíče. V současnosti se hashovací funkce využívají obvykle jako kontrolní otisk dat pro zajištění jejich integrity anebo jako součást dalších algoritmů určených pro komplexnější zabezpečení systémů. 1.2.1 Využití v postkvantové kryptografii V případě postkvantové kryptografie došlo ke zjištění, že odolnost založena na nemožnosti nalezení kolize je s velkou pravděpodobností slabší, než se očekávalo. Je to z toho důvodu, že se nehledají 2 různé hodnoty stejného hashe, ale 2 různé superpozice stejného hashe. V roce 2016 profesor Unruh představil posílenou zabezpečovací Obr. 1.1: Unruhův návrh při vyhodnocování zprávy m. hashovací funkci, takzvanou collapsed hashovací funkci. To, že je hashovací funkce collapsed znamená, že pokud má protistrana superpozice hodnoty m, tak existují dvě možnosti. Buď dochází k měření na základě superpozice m viz Obr. 1.1, nebo je vyhodnocena superpozice H (m) viz Obr. 1.2. Protistrana vlastnící kvantový počítač ovšem netuší, zda dochází k měření m, nebo hashe, proto nenalezne původní 17

Obr. 1.2: Unruhův návrh při vyhodnocování zprávy H (m). zprávu. Tyto hashovací funkce jsou zároveň kolizními. Některé současné systémy, jako například SHA-256 tuto podmínku splňují [8, s. 2 6]. 1.3 Kryptografie založena na teorii kódování Teorie kódování se zabývá vytvářením metod, které zajišťují bezpečný přenos zpráv napříč komunikačním kanálem a kontrolují, zda přenesená data byla nějakým způsobem znehodnocena. Lze to demonstrovat na příkladu, kdy máme m bitů dat, která jsou uložena do n bitů společně s kontrolními bity. Pokud nedojde k žádné chybě během přenosu, tak n k získá správnou hodnotu zabezpečujících bitů. V případě problému dokáže většina dobře napsaných programů nalezené chyby opravit. Pro detekci chybných bitů v poslané zprávě se využívá například Hammingův kód. 1.3.1 Využití v postkvantové kryptografii Kryptosystémy založené na teorii kódování odolné vůči kvantovým útokům používají takzvané Goppa kódy. Goppa kód je lineární kód, který je vytvořen pomocí algebraické křivky X nad konečným polem. Kryptosystémy tohoto způsobu bývají bezpečné jen v případě využití určitých parametrů, které je nutné dodržovat. Jejich výhodou je rychlost vyšší než například u RSA, ovšem problém je v rozsáhlých privátních a veřejných klíčích, které jsou ve formě matice [9]. Mezi známé kryptosystémy založené na teorii kódování a určené k zabezpečení proti kvantovým počítačům patří především McEliece kryptosystém a Niederreitův kryptosystém, který vychází z McEliece a McBits. 18

1.4 Kryptografie založena na polynomiálních rovnicích Kryptografie založena na polynomiálních rovnicích (Multivariate cryptography) je další ze známých řešení, které jsou efektivní pro postkvantovou kryptografii. Je založena na algebraické geometrii a náročnost problému spočívá v řešení soustavy rovnic o více neznámých nad konečným polem. Definice 1.4.1 Mějme konečné pole k s q počtem prvků. Veřejný klíč definujeme jednosměrnou funkcí se zadními vrátky P : k n k m, kde P (x 1,..., x n ) = (p 1 (x 1,..., x n ),..., p m (x 1,..., x n )). (1.2) V rámci kryptografie založené na polynomiálních rovnicích dochází k využívání takzvané jednosměrné funkce se zadními vrátky, kterou lze demonstrovat na problematice násobení velkých prvočísel. Samotná prvočísla je velmi jednoduché roznásobit, ale dosáhnout zpět původního součinu prvočísel není tak snadné [10, s. 8 10]. Tento matematický problém je hojně využívaný v kryptografii a to například v kryptosystémech RSA a dalších. 1.4.1 Využití v postkvantové kryptografii V postkvantové kryptografii se využívá varianta založených na rovnicích skrytých polí tedy Hidden Field Equations funkce (HFE). Je založena na polynomech nad konečným polem F q, které mají různé velikosti, tak aby skryly vazbu mezi veřejným a soukromým klíčem. Základem je tedy problém výpočtu vícerozměrných kvadratických rovnic. Je známo, že vyřešit náhodně zvolenou vícerozměrnou kvadratickou rovnici nad konečným polem je problém typu NP-těžký [11]. I přesto při špatně zvolených hodnotách existují algoritmy, které jsou schopny HFE problém vyřešit i na běžném počítači. Mezi kryptosystémy, které využívají polynomiální rovnice lze zařadit Matsumoto- Imai kryptosystém, Rainbow a Unbalanced Oil and Vinegar (UOV). 19

1.5 Kryptografie založená na supersingulárních eliptických křivkách Využití supersingulárních eliptických křivek vychází především z faktu, že kvantové počítače budou schopny prolomit algoritmy založené na eliptických křivkách. V rámci klasické kryptografie mají supersingulární křivky své výhody i nevýhody, které se ovšem odvíjí od problematiky diskrétního logaritmu, který je prolomitelný kvantovými počítači. Supersingulární křivky jsou skupina eliptických křivek E (F ), pro které je charakteristické, že p 5 a využívají neobvykle velkých endomorfních okruhů. Mimo jiné musí být splněna podmínka #E (F ) = p 1. Příkladem takové křivky může být y 2 = x 3 + 1, kdy platí, že p 2 (mod 3) [12, s. 3 6]. 1.5.1 Využití v postkvantové kryptografii V rámci postkvantové kryptografie dochází ke generování nových eliptických křivek během výměny klíčů, narozdíl od protokolu ECDH, který používá body pouze na jedné křivce. Důležitým rozdílem je, že tajné klíče v rámci postkvantové kryptografie jsou izogenní. Izogenita je funkce zobrazující body jedné eliptické křivky do druhé se zachováním vrcholů [12, s. 1 2]. Každý bod je tak namapovaný na bod druhé křivky, kde se dá využit toho, že se namapuje i více bodů na jeden samostatný bod. Izogenita je také homorfismem, což znamená, že zachovává strukturu eliptické křivky. Soukromé klíče jsou tedy právě izogenity, které vedou z jedné eliptické křivky na druhou. Veřejným klíčem je následně samotná supersingulární eliptická křivka. Protokoly založené na supersingulárních izogenních eliptických křivkách jsou především zaměřené na generování malých klíčů na úkor výpočetní náročnosti [13, s. 1]. Jako příklad lze zmínit protokoly Supersingular isogeny Diffie-Hellman key exchange (SIDH) a Supersingular isogeny Key Encapsulation (SIKE). 1.6 Shrnutí Kapitola se věnovala pěti typům kryptografie, které se využívají v postkvantové kryptografii. V rámci tabulky 1.2 jsou jednotlivé typy kryptografie shrnuty. Tabulka je rozdělena na výhody a nevýhody jednotlivých typů a jednotlivé příklady, které dané typy zastupují. Tabulka je v zásadě orientační, protože samotné výhody a nevýhody jsou určovány až samotným protokolem a jeho implementací. Nelze tak jednoduše a obecně určit, které výhody a nevýhody zasahují všechny protokoly daného typu. Lze ovšem definovat určité trendy, které bývají mezi protokoly sdílené. 20

Tab. 1.2: Bezpečnost kryptografických algoritmů proti kvantovým počítačům. Postkvantový systém Kryptografie založená na mřížkách Kryptografie založená na hashovacích funkcích Kryptografie založená na teorii kódování Kryptografie založená na polynomiálních rovnicích Kryptografie založená na supersingulárních eliptických křivkách Výhody Nevýhody Příklady nižší výpočetní náročnost kompromis mezi paměťovou a výpočetní náročností nižší výpočetní náročnost nižší výpočetní náročnost nižší paměťová náročnost menší velikosti klíčů vyšší paměťová náročnost problematika hledání superpozic a vyšší paměťová náročnost větší velikost klíčů, vyšší paměťová náročnost, závislost na parametrech vyšší paměťová náročnost nízká míra bezpečnosti vyšší výpočetní náročnost New Hope, Frodo, NTRU, Kyber SHA-256 Merkle signature scheme McEliece, Niederreit MPK, UOV, Rainbow SIDH, SIKE V následující kapitole se bakalářská práce zaměří na protokoly, které jsou založeny na kryptografii založené na mřížkách, na kódování a na supersingulárních izogenních eliptických křivkách. Dále se zaměří na protokol, který je určen k podepisování. Kryptografie založená na mřížkách je v současnosti nejvíce používána při budování protokolů odolných vůči postkvantovým počítačů. Mimo jiné také nabízí i největší prostor pro optimalizaci při využívání matematických problémů LWE a Ring-LWE problému. Má ovšem konkurenci právě ze strany ostatních typů, jako například kryptografie založené na kódování, využívající skrytých Goppa kódů, anebo kryptografie založené na křivkách využívající eliptických křivek a izogenity. V rámci další kapitoly budou vyhodnoceny i výhody a nevýhody jednotlivých analyzovaných protokolů. 21

2 Postkvantové kryptosystémy V rámci této kapitoly se práce zaměří na příklady kryptografie založené na mřížkách, kódování a supersingulárních eliptických křivkách. Detailně rozebere funkcionalitu NTRU, New Hope, Kyber, Frodo, SIDH, McBits a BCNS. Mimo jiné také analyzuje podpisový protokol Picnic. Jedná se o vhodné kandidáty pro měření na omezených zařízeních. V druhé části se práce zaměří na porovnání výpočetní a paměťové náročnosti na virtuálním počítači a na celkovém zhodnocení. 2.1 Protokol NTRU NTRU je první kryptosystém pro asymetrické šifrování, který není založený na problému faktorizace nebo problému diskrétního logaritmu. Jedná se o alternativu k RSA. Jak bylo uvedeno v předchozí kapitole, NTRU je založen na problému SVP, konkrétně na tzv. Ring-LWE problému. Jeho výhodou je rychlé generování klíčů a nízká náročnost na paměť [14, s. 2]. NTRUencrypt je asymetrická metoda určená pro šifrování. Klíče jsou generovány v podobě matice. Pro vygenerování klíčů je nutné mít tři parametry N, p a q. Definice 2.1.1 Pro parametry p, q platí gcd (p, q) q > p. Parametr N je využit při volbě dvou polynomů f, g v kruhu R. Parametr f představuje část soukromého klíče a parametr g generuje veřejný klíč h na základě soukromého klíče. Polynomy jsou vybrány ze skupinyl g stupně n 1 a koeficienty z množiny { 1, 0, 1}. Dalším krokem je vypočítání inverzní funkce f f q f 1 (mod q) (2.1) f p f 1 (mod p) (2.2) Výpočtem f q lze dopočítat veřejný klíč h, který se bude odvíjet od parametru g. h f q g (mod q) (2.3) Klíče jsou v tento okamžiky vygenerovány a reprezentovány jako polynomy. Veřejný klíč je polynom K pub (h) a soukromý klíč je polynom K priv (f, f p ) Při šifrování rozdělí odesílatel zprávu na m bloků polynomů a zvolí koeficienty mezi { p, p } a náhodně zvolí polynom φ a využije veřejný klíč pro zašifrování jednotlivých bloků 2 2 polynomů. e φ h + m (mod q) (2.4) 22

Druhá strana přijímá zašifrovanou zprávu e, kterou dešifruje pomocí svého soukromého klíče K priv (f, f p ). Nejdříve si vypočítá parametr a. a f e (mod q) (2.5) m f p a (mod p) (2.6) Následně parametr a použije k dešifrování původní zprávy m. Jak moc je NTRU bezpečné závisí na parametrech N, p a q..pokud parametry mají délku (N, p, q) = (251; 3; 128) a délku klíčů (K pub, K priv ) = (642b; 340b), jedná se o nízké zabezpečení. Pokud bychom chtěli dosáhnout vyšší bezpečnosti lze využít parametry o délce (N, p, q) = (347; 3; 128) a délce klíčů (K pub, K priv ) = (1169b; 530b). Nejvhodnější zabezpečení pro postkvantovou kryptografii využívá parametrů o délce (N, p, q) = (503; 3; 256) a velikosti klíčů (K pub, K priv ) = (4024b; 1595b) [15]. V případě útoků je možné zkoušet získat privátní klíč pomocí útoku hrubou silou. Privátní klíč lze také odhalit, pokud se bude útočník snažit nalézt všechny f L f a zkoušet, zda f h (mod q) má malé výstupy. Poté je teoreticky možné, že nalezl soukromý klíč. Další možností je zkoušet nalézt možná g L g a zkoušet, zda g h 1 (mod q) má malé výstupy. Další možností je MTM útok skrze snahu získat parametr φ. Díky tomu, že se jedná o kryptosystém na mřížkách, je možné zkusit útoky, které směřují přímo na mřížky. Jedná se o využití algoritmu LLL, který je schopen nalézt celkem malé vektory v polynomiálním čase, ale i tak není schopen v reálném časovém úseku říci, zda se jedná o opravdu nejmenší vektor, či nikoli [16]. V rámci kryptosystému NTRU se v roce 2001 na konferenci Eurocrypt objevilo NTRU podpisové schéma, NTRU Signature Scheme (NSS). Pro více informací se práce odkazuje na [14, s. 2 6]. 2.2 Protokol New Hope V roce 2016 se objevil na scéně nový protokol, který se snaží optimalizovat některé chyby a slabiny, které mají jiné protokoly. Především vychází z protokolu BCNS. Snaží se zlepšit několik bodů tohoto protokolu a optimalizovat je. Konkrétně se jedná například o lepší analýzu pravděpodobnosti selhání protokolu, kdy raději používá mřížku D4, díky které se snižuje modulus q = 12289 < 2 14. Dochází tak ke zlepšení bezpečnosti a efektivity. Mimo jiné zahrnuje podrobnější bezpečnostní analýzu proti kvantovým útoků. Nahrazuje také často používaný pevně daný parametr pseudonáhodně voleným při každé výměně klíčů a při distribuci chyb využívá jednoduššího a efektivnějšího binomického rozložení, nikoliv Gaussova rozložení. Zároveň na rozdíl 23

od autorů BCNS nezahrnuje problematiku autentizace. Autoři jsou toho názoru, že je vhodnější zvolit pro výměnu klíčů kryptografii založenou na mřížkách a pro šifrování a podpisy kryptografii založenou na hashovacích funkcích. Do budoucna se předpokládá, že dojde k využití ozkoušených postkvantových podpisů, kdy případné útoky nebudou ohrožovat předchozí komunikaci [17, s. 1 13]. Samotný protokol je založený na mřížkách. K zapouzdření klíčů KEM využívá dočasný tajný klíč. Tento klíč je pseudonáhodný prvek z polynomiálního okruhu a neříká tak jasně, jakou konkrétní hodnotu veřejný klíč má. Na základě něj mohou strany vygenerovat své vlastní klíče. Všechny polynomy jsou v okruhu R q = Z q (X) / (X n + 1) kromě r R 4. Parametry jsou zvoleny jako n = 1024 a q = 12289. Jak již bylo zmíněno na začátku podkapitoly, autoři New Hope nevyužívají k distribuci chyb diskrétní Gaussovo rozložení, ale binomické rozložení ψ k, kde k = 16. U binomické distribuce nedochází k tak náročnému výpočetnímu vytížení. Toto binomické rozložení využívá proudovou šifru ChaCha20. Pro generování a je využit Keccak, který byl standardizován jako SHA3 ve FIPS-202 a nabízí funkci SHAKE, která umožňuje libovolnou délku výstupu hash funkce. V rámci New Hope je použit SHAKE-128, mohl by být použit i SHAKE-256, ale dle autorů to nepřináší zásadní rozdíl [17]. Parametr a se generuje pro každé ustanovení klíčů unikátně. Do budoucna je třeba odstranit jeho případné uchovávání v mezipaměti, aby opravdu nebylo možné zneužít tento parametr. Samotné ustanovení klíčů probíhá následujícím způsobem. Jak již bylo výše zmíněno jsou domluveny parametry q = 12289 < 2 14 a n = 1024. Rozložení chybovosti je rovno ψ 16. Nejdříve si tedy první strana vygeneruje tzv. seed a na základě něj vygeneruje klíčový parametr a pomocí hashovací funkce SHAKE-128, jak je popsáno výše. seed {0, 1} 256 (2.7) a Parse (SHAKE-128 (seed)) (2.8) Následně si obě strany vygenerují chybové stavy na základě binomické distribuce. V případě Alice jde o s,e ψ16 n a v případě Boba jde o vygenerování s 1, e 1, e 2 ψ16. n Alice následně vypočítá b, které pošle Bobovi společně se seed. b = as + e (2.9) Výměna probíhá přes Number-theoretic transform (NTT) doménu, kde jsou polynomy kódovány ve formě pole o 1792 bytech, a následně komprimovány do menšího formátu. Seed je kódován do pole o 32 bytech a následně provázán se zakódovaným 24

b. Bob získal b a seed, vygeneruje si tedy parametr a stejným způsobem, jako Alice. Následně vypočítá dvě hodnoty u, v pomocí parametrů a a b a chybového stavu. a = Parse (SHAKE-128 (seed)) (2.10) u = as 1 + e 1, v = bs 1 + e 2 (2.11) Bob využije funkci HelpRec, která je založena na hledání nejbližšího vektoru ve 4-dimenzionální mřížce. HelpRec nejdříve rozdělí 1024 koeficientů parametru v do 256 4-dimenzionálních vektorů x i = (v i, v i+256, v i+512, v 768 ) t pro i = 0,..., 255. Na základě toho se vypočítá harmonizační informaci r i z x i, kde b je náhodný bit a g (0, 5; 0, 5; 0, 5; 0, 5) t. r i = HelpRec (x i, b) = CVP D ( 2 r q (x i + bg) ) mod2 r (2.12) r = HelpRec (v) (2.13) Po výpočtu r zašle Bob zpět Alici dvojici parametrů u a r. Alice si na základě toho dopočítá vlastní parametr v 1. v 1 = us (2.14) Obě strany následně využijí funkci Rec, která také pracuje se 4-dimenzionálními vektory k obnovení z chybových stavů. Alice k tomu využije parametry r,v 1 a Bob k tomu využije parametry r,v. v = Rec (v 1, r), v = Rec (v,r) (2.15) Posledním krokem k získání finálního klíče je zhashování nového parametru μ. Pak je vše ustanoveno. μ = SHA3-256 (v) (2.16) Výhodami protokolu New Hope jsou například jeho nízká výpočetní náročnost, rychlost, jednoduchost v implementaci, nízká paměťová náročnost a vysoká úroveň bezpečnosti. Naopak mezi jeho nevýhody lze zařadit malá výše rozptylu chyb, někdo může považovat Ring-LWE za nedostačující, ale právě díky němu dosahuje takové rychlosti. Dále pak je limitující v případě volby parametrů. 2.3 Protokol Kyber Kyber je jedním z dalších nových postkvantových protokolů, který byl představen v roce 2016. Je mladší než NTRU a New Hope a na základě toho se snaží inspirovat se těmito protokoly a přicházet s novými inovacemi. Protokol je opět založen 25

na kryptografii mřížek. Je rozdělen do několika částí. Zahrnuje schéma pro výměnu klíčů, Kyber.KE, i autentizovanou výměnu klíčů, Kyber.AKE. Dále zaštiťuje vytvoření schéma šifrování pomocí veřejného klíče, které se nazývá Kyber.CPA. Následně využívá transformace Fujisaki-Okamoto viz [18, s. 1 4], kdy se výsledné schéma nazývá Kyber.Hybrid [?, s. 4 7] Opět pracuje s problémem Ring-LWE, kdy všechny polynomy jsou v okruhu R q = Z q (X) / (X n + 1). Parametry jsou zvoleny n = 256 a q = 7681. Parametr q je tak zvolen z důvodu, že se jedná o nejmenší prvočíslo, kde q 1mod (2n) je možné využít k šifrování NTT efektivně a jednoduše. Stejně jako New Hope tak i Kyber používá místo diskrétního Gaussova rozložení binomické rozložení ψ k, kde k = 3. 2.3.1 Kyber.CPA Asymetrické šifrovací schéma Kyber.CPA = (KeyGen, Enc, Dec) je složeno ze tří algoritmů společně s prostorem pro zprávu M. Na počátku má kladné číselné parametry k, d t, d u, d v a n = 256. M = {0, 1} 256, která určí velikost místa pro zprávu. Následně je každá zpráva m M vnímána jako polynom v R s koeficienty v množině {0, 1}. Funkce Sam je funkce, která dokáže rozšířit výstup na základě zvolené distribuce, tak jak je požadováno. Je čistě deterministická, pro x bude vždy výstupem stejné y. V rovnici 2.18 a 2.19 je využita funkce Compress, která je zadefinována jako Compress q (x, d). Vygeneruje pro každý prvek x Z q celé číslo z množiny {0,..., 2 d 1}, kde d < log 2 (q). ρ, σ {0, 1} 256 (2.17) A = Sam (ρ) (2.18) (s,e) = Sam (σ) (2.19) t = Compress q (As + e, d t ) (2.20) pk = (t, ρ), sk = s (2.21) Algoritmus KeyGen vrací dvojici (pk, sk), tedy veřejný a soukromý klíč. Algoritmus Enc šifruje pomocí pk zprávu M a vrací tak zašifrovaný text c. V rámci této části se využívá funkce Decompress viz rovnice 2.23, která je opakem funkce Compress a získává tak zpět prvky x. r {0, 1} 256 (2.22) t = Decompress q (t, d t ) (2.23) A = Sam (ρ) (2.24) 26

s, e 1, e 2 = Sam (r) (2.25) u = Compress q (Ar + e 1, d u ) (2.26) v = Compress q ( tr + e 2 + q ) 2 m, d v (2.27) c = (u, v) (2.28) Dec naopak dešifruje pomocí soukromého klíče sk zašifrovaný text c a získává tak zprávu M, anebo speciální symbol v případě neúspěchu. u = Decompress q (u + d u ) (2.29) v = Decompress q (v + d v ) (2.30) Compress q (v su,1) (2.31) 2.3.2 Kyber.Hybrid V případě schéma Kyber.Hybrid, je Kyber.Hybrid = (KeyGen, Encaps, Decaps) složeno ze tří algoritmů. KeyGen opět generuje soukromý a veřejný klíč (pk, sk). Jeho průběh odpovídá minulému schématu pro Kyber.CPA. Rozdíl je pouze v soukromém klíči, který mimo s nyní obsahuje i celý veřejný klíč pk = (ρ, t) a náhodně vygenerovaný 256 bitový parametr z. Výstup soukromého klíče je sk = (s, z, ρ, t). V případě algoritmů Encaps a Decaps je nutné si zadefinovat dvě hashovací funkce. Jedná se o G = {0, 1} 3 256 a H = {0, 1} 256. Algoritmus Encaps získá pomocí veřejného klíče pk zašifrovanou zprávu c a klíč K. Využívá k tomu algoritmus Enc podle Kyber.CPA viz 2.34. V 2.33 a 2.36 hashuje pomocí výše zadefinovaných hashovacích funkcí, které jsou založené na SHA-3 a využívají funkci SHAKE-128, již zmíněnou v protokolu New Hope. Po dokončení Encaps se vrací dvojice (c, K). m {0, 1} 256 (2.32) (K 1, r, d) = G (pk, m) (2.33) (u, v) = Kyber.CPA.Enc (pk, m; r) (2.34) c = (u, v, d) (2.35) K = H (K 1, c) (2.36) Algoritmus Decaps vrací pomocí soukromého klíče sk a zprávy c klíč k K. I algoritmus Decaps využívá algoritmus Dec z Kyber.CPA, kterému dává paremtry ze soukromého klíče a ze zašifrované zprávy c. m 1 = Kyber.CPA.Dec (s, (u, v)) (2.37) 27

(K 1, r 1, d 1 ) = G (pk, m 1 ) (2.38) (u 1, v 1 ) = Kyber.CPA.Enc (pk, m 1 ; r 1 ) (2.39) (u 1, v 1, d 1 ) (u, v, d) (2.40) V případě, že v 2.40 platí rovnost, algoritmus Decaps vrací K = H (K 1, c). V případě, že rovnost neplatí, algoritmus vrací pseudonáhodný klíč K = H (z, c), kde z je náhodný, tajný seed. Výhodami protokolu Kyber může být jeho výpočetní nenáročnost, jednoduchost v případě implementace a nižší paměťová náročnost. Opět může být za nedostatek považován Ring-LWE problém, který snižuje časovou náročnost výpočtů. Podobně jako u New Hope může být limitován výběrem parametrů. 2.4 Protokol Frodo Protokol Frodo je jedním z nejnovějších protokolů, který byl představen v roce 2016. Je opět založen na kryptografii mřížek, ale oproti předchozím protokolům se liší v jedné zásadní věci. Odlišnost je v matematickém problému jehož složitost využívá při ustanovování klíčů. Předchozí protokoly byly postaveny na problému Ring-LWE. Naopak Frodo zůstává u čistého LWE problému a nevyužívá tak polynomiálních okruhů v rámci mřížek. Obhajuje si toto rozhodnutí tím, že nebylo prokázáno, že by LWE bylo méně bezpečné než Ring-LWE při použití stejných parametrů a doufá tak v určité zrychlení celého ustanovování [19, s. 1 5]. Parametry, které jsou doporučeny v rámci tohoto protokolu jsou n = 752 a q = 2 15. Pro chybovou distribuci je doporučená distribuce χ, která je založena na Gaussově rozložení na rozdíl od předchozích protokolů. Alice si opět na počátku vygeneruje seed, kdy seed {0, 1} 256. Následně si nechá vygenerovat matici A, kterou získá pseudonáhodnou funkcí Gen. A = Gen (seed) (2.41) Pomocí χ distribuce si vygeneruje S, E, tedy S, E χ ( ) Z n m q. Následně si dopočítá veřejný klíč v podobě matice B, kdy B AS+E. Bobovi, stejně jako v New Hope, zasílá parametr B a seed. Bob využije získaný parametr seed a pomocí pseudonáhodné funkce Gen si vygeneruje parametr A, tedy A = Gen (seed). Dopočítá si své S 1, E 1 χ ( ) Zq n m. Následně i své B 1, B 1 AS + E. Následně pro ustanovení klíče Bob vygeneruje ještě jeden 28

stav založený na χ distribuci, matici E 2. E 2 χ ( ) Zq n m (2.42) Zároveň si tak dopočítá matici V pomocí E 2, kdy V AS 1 + E 2. Strany následně využijí funkce, které dokáží zharmonizovat vygenerování klíče K. Jedná se o funkce 2 B, takzvaná crossrounded function, a [ ] 2 B, která se nazývá rounded function. Funkce jsou blíže popsány v samotné práci o protokolu Frodo na [19, s. 8 9]. Bob díky crossrounded funkci vygeneruje matici C, kterou společně s vypočtenou B 1 pošle Alici. C V 2 B (2.43) Alice tak získává několik parametrů a může použít funkci rec, která je opět detailněji popsána na straně 9, na jejímž základě může vygenerovat společný ustanovený klíč K. Bob pro vygenerování klíče K používá rounded function. Dochází ke shodě a finálnímu ustanovení, jak je vidět v 2.44. K rec (B 1 S, C) ; K [V] 2 B (2.44) Protokol Frodo využívá narozdíl od ostatních protokolů založených na mřížkách LWE problému, který využívá mnohem více paměti a zabere i více času pro jednotlivé výpočty. Ovšem může být považován za bezpečnější než problém Ring-LWE. Jeho zásadní nevýhodou jsou velké délky klíčů, které vyžadují větší paměťovou náročnost než dosud zmíněné protokoly. 2.5 Protokoly SIDH a SIKE Protokoly Supersingular isogeny Diffie-Hellman key exchange (SIDH) a Supersingular isogeny Key Encapsulation (SIKE) jsou založeny na supersingulárních eliptických křivkách. Navzájem se od sebe odlišují v tom, že SIKE je založený na protokolu SIDH, ovšem využívá Hofheinzovy transformace, aby byl schopen dosáhnout CCA bezpečnosti. SIDH pochází z roku 2011 a SIKE z roku 2017, kdy byl představen na konferenci TCC 2017 [20, s. 1]. Oba protokoly tedy využívají takzvané izogenity pro soukromé klíče a eliptické křivky pro veřejné klíče, jak je zmíněno v kapitole 1.5. Na počátku jsou ustanoveny veřejné parametry, kdy je vygenerováno prvočíslo p tak, aby p = 2 e 2 3 e 3 1. Dalším parametrem je supersingulární eliptická křivka E/F o řádu (p + 1) 2.Posledními parametry jsou v rámci Z, parametry P 2, Q 2 z E [2 e 2 ] a P 3, Q 3 z E [3 e 3 ]. 29

Prvním krokem je ustanovení veřejného klíče soukromým ze strany Alice. Alice si generuje sk 2, který náleží do Z a následně počítá veřejný klíč S 2 v řádu 2 e 2 viz 2.45 a vypočítá Φ 2 viz 2.46. S 2 = P 2 + sk 2 Q 2 (2.45) Φ 2 : E E/ S 2 (2.46) Alice poté posílá Bobovi E/ S 2, Φ 2 (P 3 ), Φ 2 (Q 3 ). Bob provede obdobné výpočty, tak aby si dopočítal S 3 a Φ 3, jak je znázorněno v 2.47 a 2.48. S 3 = P 3 + sk 3 Q 3 (2.47) Φ 3 : E E/ S 3 (2.48) Sdílený klíč je následně derivován z E/ S 2, S 3 = (E/ S 2 ) / φ 2 (P 3 ) + sk 3 φ 2 (Q 3 ) (E/ S 3 ) / φ 3 (P 2 ) + sk 2 φ 3 (Q 2 ) (2.49) Matematický problém, na jehož základě funguje SIDH a SIKE je následující. Pokud máme P, Q E a φ (P ), φ (Q) φ (E), nalezněme φ. Generické útoky by měly být schopny si s touto problematikou poradit, naopak proti negenerickým útokům se jedná o bezpečný protokol. Není zatím znám žádný negenerický útok, který by byl schopen prolomit tento protokol[21, s. 2 4]. Čím větší úroveň bezpečnosti, tím i větší zajištění proti případným generickým útokům [20, s. 2 6]. Výhodou těchto protokolů je, že se jedná o vcelku jednoduché protokoly, které využívají velmi malých klíčů a zaručují nedocházení ke vznikům distribuce chyb. Z hlediska nevýhod jsou poměrně více časově náročné, pomalé a také v případě budoucího využití by mohl být objeven negenerický útok, který by byl schopen tyto protokoly prolomit. 2.6 Protokol BCNS Protokol BCNS předchází protokolu New Hope. Jedná se o protokol integrovaný v rámci OpenSSL a stejně jako předchozí protokoly je založený na mřížkách, konkrétně na problému Ring-LWE. Na rozdíl od New Hope využívá distribuce chyb Gaussova rozložení, které je náročnější z hlediska výpočetních požadavků. BCNS původně nebyl určen vůči kvantovým počítačům, ale jeho založení odpovídá takovému zaměření i přes jeho nízkou výši postkvantové úrovně bezpečnosti [22, s. 4 5]. 30

Parametry jsou samotnými autory zvoleny jako n = 1024, q = 2 3 2 1, χ = D Z,σ a parametr pro Gaussovo rozložení σ = 8/ 2 2π 3, 192. Dané parametry nabízí více než 128 bitovou úroveň bezpečnosti v rámci klasické kryptografie. V případě postkvantové kryptografie se snižuje úroveň bezpečnosti na 86 bitů. Nejdříve je vygenerovaný společný parametr a R. Tento parametr musí být pro každé ustanovení unikátním. Alice si následně vygeneruje s,e χ. Jedná se o parametry určené pro chybovou distribuci založené na Gaussově rozložení. Podobně jako v rámci New Hope, Alice si vypočítá parametr b. b = as + e (2.50) Stejně tak si Bob vygeneruje chybové stavy s 1, e 1, s 2 χ. A poté, co přijme od Alice b, tak si vygeneruje totožným způsobem b 1 a v, protože parametr a je veřejným. b 1 = as 1 + e 1, v = bs 1 + e 2 (2.51) Následně Bob podobně jako v rámci New Hope, využívá funkce, která je založena na hledání nejbližšího vektoru ve 4-dimenzionální mřížce a generuje si tak parametr v 1 viz 2.52, který následně využívá ke generování v 2 při obnovování z chybových stavů, jak je znázorněno v 2.53.s v 1 dbl (v) (2.52) v 2 = v 1 2 (2.53) Bob pošle Alici v 2 a b a oba využijí funkce Rec, která je určena pro obnovení z chybových stavů. Na základě toho mohou dosáhnout společného ustanovení klíče. k Rec (2b, s, v 2 ) (2.54) Protokol BCNS je považován za rychlý, využívá matematického problému, který je považován za prozatím neprolomitelný. Ovšem v případě postkvantové kryptografie nabízí velmi nízkou úroveň bezpečnosti oproti například protokolu New Hope, který nabízí více než dvojnásobnou úroveň zabezpečení. 2.7 Protokol McBits Protokol McBits je jediným měřeným protokolem z rozebraných protokolů, který je založen na teorii kódování. Jeho jádro je založeno na Niederreitově duální formě a kryptosystému McEliece využívajícím skryté Goppa kódy. Zmíněná Niederreitova 31

varianta vychází z toho, že násobí veřejný klíč se zprávou o velikosti n, kde je zahrnuta entropie a generuje tak (n k) bitový zašifrovaný řetězec [23, s 2 12]. Pro ustanovení společného klíče pracuje McBits v několika krocích. Soukromý klíč se skládá ze dvou částí. První částí je sekvence (α 1, α 2,...α n ) z F q. Druhou částí je polynom g, kdy g F q [x], tak, aby g (α 1 ) (α 2 )... (α n ) 0. Následným krokem je vypočítání matice t n, kdy t odpovídá právě entropii použité pro ustanovení klíče. Následně přepočítá matici na m t n nad F 2. Hlavní nevýhodou tohoto protokolu je, že pracuje s velmi dlouhými klíči. Je považován za rychlý v oblasti protokolů založených na kódování, ovšem při porovnání s jinými typy kryptografie, konkrétně kryptografie založené na mřížkách, se jedná o vcelku pomalý protokol. Jeho výhodou je využívání sofistikovaných algoritmů, které zajišťují jasnou bezpečnost proti útočníkovi [22]. 2.8 Protokol Picnic Protokol Picnic má navržené parametry pro tři úrovně bezpečnosti. Úrovně korespondují s úrovněmi AES-128, AES-192 a AES-256. Mimo to využívá dvou různých možností podpisových schémat. První je založeno na Fiat Shamirově transformaci a druhé je založeno na Unruhově transformaci. V prvním kroku dochází ke generování klíčů. Parametr n odpovídá bitové úrovni velikosti, která je zvolena, totožně tak parametr k. Jsou generovány dva n a k bitové textové řetězce, kdy jeden z nich je označen p a druhý je soukromým klíčem. Klíče jsou generovány pomocí funkce LowMC. Funkce LowMC je blokovou šifrou, která byla představena na Eurocrypt v roce 2017. Bližší informace o této funkci lze nalézt na [24, s. 10]. V rámci následného zašifrování p se vypočítalo C = E (sk, p). Parametr C je závazkem. Uživatel má tak vygenerovaný pár (sk, pk). Kdy soukromý klíč odpovídá sk a veřejný klíč je pk = (C, p). Při podpisu zprávy m jsou zpráva a veřejný klíč vázány k danému uživateli při výpočtu výzvy. Picnic využívá dokazovacího systému ZKB++, který je optimalizovaný pro krátké důkazy. Jedná se o vylepšenou verzi ZKBoo, což je dokazovací systém pro zero-knowledge důkazy na libovolných okruzích. Je vybudovaný na hashovací funkci ze skupiny SHA. Jak již bylo řečeno, Picnic při podpisu využívá Fiat Shamirovy transformace, která zajišťuje ROM (Random Oracle Model) bezpečnost. Naopak Unruhova transformace zajišťuje QROM (Quantum-accessible Random Oracle Model) bezpečnost a generuje 1, 6 krát větší podpisy. Velikost důkazu závisí na úrovni bezpečnosti, kterou zajišťuje [24, s. 8 10]. 32

Jádro Picnicu je tvořeno efektivním zero knowledge schématem, pro binární obvod. Využívá bezpečných hashovacích funkcí a blokového šifrovacího schématu. Jeho výhodou jsou malé velikosti klíčů a také nízká časová náročnost. Picnic obecně generuje velké podpisy. Jedná se unikátní pojetí podpisového schématu, které může být hůře implementovatelné do některých systémů. 2.9 Srovnání na virtuálním počítači V předchozích podkapitolách práce popsala a analyzovala jednotlivé protokoly založené na kryptografii mřížek, kódování, supersingulárních křivkách a podpisové protokoly. V rámci této podkapitoly práce protokoly navzájem srovná na základě několika parametrů a praktických výsledků při jejich měření na virtuálním počítači s operačním systém Linux Fedora 25, s operační pamětí o velikosti 4 GB a procesorem se 2 jádry o taktu 2,6 GHz. K měření byly využity open source knihovny liboqs, KYBER, SIDH, OpenSSL, Picnic, NewHope, NTRUOpenSourceProject a Frodo. Knihovny se dále řeší v rámci kapitoly 3.1. Tab. 2.1: Teoretické porovnání mezi jednotlivými protokoly. Protokol Typ kryptografie Možnosti Matematický problém NTRU mřižky Ustanovení klíčů, Asymetrické šifrování, Ring-LWE problem Digitální podpis New Hope mřížky Ustanovení klíčů Ring-LWE problem Kyber mřížky Ustanovení klíčů, Asymetrické šifrování Ring-LWE problem Frodo mřížky Ustanovení klíčů LWE problem BCNS mřížky Ustanovení klíčů Ring-LWE problem McBits kódování Ustanovení klíčů, Asymetrické šifrování Goppa kódy SIDH křivky Ustanovení klíčů supersingulární křivky SIKE křivky Ustanovení klíčů supersingulární křivky 2.9.1 Měření postkvantových protokolů V rámci první kapitoly byly znázorněny jednotlivá měření postkvantových protokolů pro ustanovení společného klíče na virtuálním počítači. V rámci této kapitoly bu- 33

dou představeny tři měřené parametry, tedy časová náročnost, paměťová náročnost v podobě přenesených bytů a průměrný počet procesorových cyklů. Tabulka 2.1 shrnuje několik zásadních teoretických poznatků o jednotlivých protokolech. Znázorňuje typ kryptografie, na které jsou jednotlivé protokoly založeny, možnosti, které nabízí v rámci kryptografie a matematický problém na kterém jsou založeny. V rámci tabulky jsou tedy shrnuty protokoly založené na mřížkách, které využívají buď problému Ring-LWE anebo LWE. Dále protokol založený na teorii kódování, který využívá skrytých Goppa kódů a protokoly založené na supersingulárních izogenních eliptických křivkách. Tab. 2.2: Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem. Protokoly Alice0 (ms) Bob (ms) Alice1 (ms) Celkový čas (ms) New Hope 0,069 ± 0,001 0,116 ± 0,002 0,021 ± 0,001 0,206 ± 0,004 Kyber 0,103 ± 0,002 0,135 ± 0,002 0,146 ± 0,002 0,385 ± 0,006 NTRU 1,876 ± 0,085 0,237 ± 0,003 0,152 ± 0,004 2,265 ± 0,092 BCNS 0,832 ± 0,002 1,331 ± 0,009 0,172 ± 0,001 2,335 ± 0,012 Frodo 24,701 ± 0,332 24,107 ± 0,369 0,079 ± 0,011 48,887 ± 0,701 McBits 185,701 ± 0,032 0,051 ± 0,009 0,217 ± 0,011 185,969 ± 0,052 SIDH p751 106,310 ± 0,232 215,201 ± 0,289 86,013 ± 0,041 407,524 ± 0,562 SIKE p751 115,889 ± 0,212 181,333 ± 0,294 195,333 ± 0,301 492,555 ± 0,807 Tabulka 2.2 znázorňuje průměrnou dobu operace pro jednotlivé fáze výměny klíčů mezi Alicí a Bobem. Nejméně časově náročný je protokol New Hope, následovaný protokolem Kyber a NTRU. Všechny tři jsou založeny na mřížkách konkrétně na problému Ring-LWE, který je optimalizován tak, aby nabízel menší časovou náročnost oproti LWE problému. Naopak nejvíce časové náročné jsou protokoly založené na supersingulárních izogenních křivkách následované protokolem McBits, který je založen na teorii kódování. Tyto typy kryptografie vyžadují časově náročnější průběh oproti protokolům založených na mřížkách. V případě tabulky 2.3 lze sledovat přenesené byty mezi Alicí a Bobem. Nejvíce bytů přenáší protokol McBits, díky náročnosti a potřebné velikosti klíčů při využívání Goppa kódů. Následován protokolem Frodo, kde je velikost zpráv způsobena právě LWE problémem, kdy se zachovávají původní velikosti matic i při přenášení zpráv. Nejmenší zprávy přenáší protokoly založené na supersingulárních křivkách jejichž výhodou je malá velikost přenášených zpráv. V rámci tabulky 2.4 je důraz kladen na počet procesorových cyklů během ustanovení společného klíče mezi Alicí a Bobem. Nejnižší počet procesorových operací vyžadují 34

Tab. 2.3: Tabulka přenesených bytů při generování klíčů. Protokoly Alice Bob (byte) Bob Alice (byte) Celkově (byte) SIDHp751 564 564 1128 SIKEp751 564 596 1160 NTRU 1027 1022 2049 Kyber 1088 1184 2272 New Hope 1824 2048 3872 BCNS 4096 4224 8320 Frodo 11280 11288 22568 McBits 311736 141 311877 protokoly založené na Ring-LWE problému, například New Hope, Kyber a NTRU. Nejvíce vyžadují protokoly založené na kódování, jako například Frodo a protokoly založené na supersingulárních izogenních křivkách. Ty jsou uzpůsobeny tak, aby byly co nejméně náročné z hlediska využívané paměti a velikosti klíčů, ovšem za cenu komplexnějších operací. Tab. 2.4: Průměrný počet procesorových cyklů během ustanovení společného klíče mezi Alicí a Bobem Protokoly Alice0 Bob Alice1 Celkově New Hope 181 831 283 179 50 781 515 791 Kyber 264 611 321 413 352 412 938 436 NTRU 3 131 649 469 312 349 354 3 950 315 BCNS 2 106 876 3 469 183 363 421 5 939 480 Frodo 62 947 591 63 223 676 199 177 126 370 444 McBits 312 943 414 98 642 397 984 313 440 SIDHp751 262 711 468 530 427 282 217 804 641 1 010 943 391 SIKEp751 309 544 193 469 813 324 504 346 146 1 283 703 663 2.9.2 Měření podpisového schématu V rámci této podkapitoly je měřeno podpisové schéma Picnic. Konkrétně byly na virtuálním počítači měřeny dva typy tohoto schématu. Jedná se o typ pracující s Fiat Shamirovou transformací (FS) a o typ pracující s Unruhovou transformací (UR). Pracuje se s verzí L5, která nabízí nejvyšší úroveň bezpečnosti odpovídající v 35

klasické kryptografii AES-256. V případě postkvantové kryptografie se jedná o 128 bitů. V rámci tabulky 2.5 lze sledovat průběh ustanovení klíčů, podepisování a následného verifikování. Je jasně viditelné, že typ UR je časově mírně náročnější a to především z důvodu generování mnohem většího podpisu. Tabulka 2.6 sleduje počet Tab. 2.5: Průměrná doba operace z 10-ti měření během podepisování a verifikace mezi Alicí a Bobem na Raspberry Pi 3 Protokol Ustanovení klíčů (ms) Podepsání (ms) Verifikace (ms) Celkový čas (ms) Picnic L5 FS 0,049 ± 0,001 85,250± 0,081 61,641 ± 0,058 146,951 ± 0,140 Picnic L5 UR 0,051 ± 0,001 103,400± 0,091 73,214 ± 0,078 176,665 ± 0,170 procesorových cyklů vyžadovaných pro naplnění jednotlivých kroků. Obdobně jako u tabulky 2.5 je viditelné, že typ FS je z hlediska počtu procesorových cyklů méně náročnější než typ UR. Tab. 2.6: Počet procesorových cyklů během podepsání a verifikace mezi Alicí a Bobem na Raspberry Pi 3 Protokol Ustanovení klíčů Podepsání Verifikace Celkově Picnic L5 FS 122 840 212 696 506 152 142 293 364 961 639 Picnic L5 UR 124 602 257 825 888 182 607 318 440 557 808 Tabulky shrnují možnosti protokolů na virtuálním počítači s operačním systémem Linux v otázce využité paměti při přenosu zpráv a časové náročnosti během ustanovení klíčů. Tyto tabulky jsou následně využity pro porovnání s údaji naměřenými na omezeném zařízení Raspberry Pi 3 Model B, kterému je věnována následující kapitola. 36

3 Zhodnocení postkvantové kryptografie na omezených zařízení V rámci praktické části tato práce analyzuje a měří postkvantové kryptografické protokoly na omezeném zařízení Raspberry Pi 3, které lze v praxi využít v případě budování chytrých měst, IoT a dalších obdobných technologií. Jedná se o jednodeskový mikropočítač s procesorem Broadcom verze armv7l s taktem 1,2 GHz, velikostí operační paměti 1 GB. Uvedený procesor je pouze 32 bitový. Zařízení podporuje řadu operačních systémů, obsahuje bezdrátové rozhraní WiFi 802. 11 b/g/n a Bluetooth 4. 1. 3.1 Konfigurace OS a měřených knihoven Jako operační systém byl zvolen Raspbian Stretch společně s desktopem, který ovšem v závěru není vůbec nutný pro samotné testování. Lze využít čistě Raspbian Stretch Lite. Byla použita k dnešnímu dni nejnovější verze z 29. listopadu 2017, s verzí jádra 4. 9. K zprovoznění Raspberry Pi je nutné mít omezené zařízení Raspberry Pi 3 Model B, operační systém na micro SD kartě, HDMI přípojku, micro USB pro nabíjení a drátovou či bezdrátovou klávesnici, monitor a myš. Bližší informace o zprovoznění Raspberry Pi 3 lze najít na [25]. Pro testování postkvantových kryptografických protokolů byly zvoleny knihovny liboqs, Kyber, SIDH, OpenSSL, Picnic, NewHope, NTRUOpenSourceProject a Frodo, které se konkrétně zaměřují na jednotlivé protokoly. Zmíněné knihovny zastřešují výše rozebrané protokoly. V rámci praktické části byly protokoly měřeny v jazyce C, ale byly využity pro porovnání i knihovny napsané v jazyce Java, které následně nebyly použity do praktické části. Knihovna liboqs je aktivně vyvíjející se knihovnou, která se od dubna 2018 začala zaměřovat na protokoly účastnící se NIST standardizace. Pro měření, která předcházela dubnu 2018 bylo nutné udělat určité změny, aby bylo možné testovat protokoly na Raspberry Pi 3. Pro zkompilování knihovny na Raspberry Pi 3, bylo potřeba modifikovat header soubor v src/_dsbenchmark.h. Pro změnu nebylo nutné instalovat žádné vývojové prostředí na Raspberry Pi 3, stačilo využít linuxového textového editoru Vi nebo Nano. V prvním kroku bylo nutné zadefinovat konstantu ARM na počátku souboru, jak je předvedeno v 3.1. 37

Výpis 3.1: Zadefinování ARM # define ARM V dalším kroku bylo třeba pozměnit metodu rtdsc. Tato metoda byla určena pro získání CPU cyklů. Je přítomna na všech 64 bitových procesorech. Procesor ARMv7 využívá generické počítadlo na konstantní frekvenci. Bylo nutné přidat do podmínky možnost v případě, že je zadefinována konstanta ARM, aby bylo možné vůbec získat časové informace o průběhu ustanovování klíčů, které následně změří výpočetní náročnost při výměně klíčů mezi stranami. Výpis 3.2: Nová podmínka, která je definována pro ARM # elif defined ( ARM ) struct timespec time ; clock_gettime ( CLOCK_REALTIME, & time ); return ( int64_t )( time. tv_sec *1 e9 + time. tv_nsec ); Posledním bodem, který bylo nutné v tomto souboru upravit, byl STOP_TIMER. V podmínce byl použit unsigned long int, který není určen pro omezené zařízení Raspberry Pi 3. Proto bylo místo něj použit uint64_t. Výpis 3.3: Zmena velikosti pro ARM _bench_cycles_end += ( uint64_t )1 < <32; Po těchto změnách bylo již možné využít příkazů, které nakonfigurují knihovnu a připraví ji pro samotné testování. Bližší informace pro nakonfigurování a kompilaci této knihovny lze nalézt zde [26]. Jak již bylo zmíněno tento postup v současnosti není potřebný, protože se knihovna již přizpůsobila omezeným zařízením a orientuje se více na NIST standardizaci. 3.2 Použité protokoly Pro analyzování a měření na omezeném zařízení Raspberry Pi 3, bylo zvoleno 10 protokolů určených pro ustanovení společného klíče a jeden protokol určený pro podpisové schéma. V rámci tabulky 3.1 jsou detailně rozepsány velikosti použitých veřejných klíčů, soukromých klíčů, velikosti sdíleného klíče a typ kryptografie, na které jsou protokoly založeny. Jednotlivé protokoly mají většinou od svých autorů definované vhodné parametry, které jsou považovány za bezpečné a v případě jejich změny by mohlo dojít ke snížení úrovně bezpečnosti a snadnější prolomitelnosti. Proto není z hlediska budoucího využití ani vhodné dané protokoly upravovat, protože by se jednalo o do budoucna nevyužitelné parametry. Pouze protokoly SIDH 38

a SIKE a protokol Picnic, byly určeny jako vhodní kandidáti pro porovnání jejich časové a paměťové náročnosti na základě různých parametrů. Zvolené parametry, jsou stále považovány za bezpečné i samotnými autory daných protokolů, pouze se liší v zajištění úrovně bezpečnosti. Lze sledovat, že například protokol Frodo vyžaduje největší velikosti soukromých a veřejných klíčů pro zajištění bezpečnosti. Je následován protokolem McBits, který je založen na kódování a následně protokoly založenými na matematickém problému Ring-LWE. Naopak nejmenších klíčů využívá protokol SIDH, který ovšem generuje ze všech protokolů největší sdílené klíče. Tab. 3.1: Tabulka jednotlivých parametrů a typů kryptografie protokolů pro ustanovení společného klíče. Protokoly Soukromý klíč (byte) Veřejný klíč (byte) Sdílený klíč (bit) Typ kryptografie Frodo 39774 Alice: 11280; Bob: 11288 256 mřížky McBits 5984 Alice: 311736; Bob: 141 128 kódování Kyber 4800 Alice: 1088; Bob: 1184 256 mřížky BCNS 4480 Alice: 4096; Bob: 4224 128 mřížky New Hope 4096 Alice: 1824; Bob: 2048 256 mřížky NTRU 1027 Alice: 1027; Bob: 1022 256 mřížky SIKE p751 644 Alice: 564; Bob: 596 192 křivky SIKE p501 434 Alice:378; Bob: 402 128 křivky SIDH p751 48 Alice: 564; Bob: 564 1504 křivky SIDH p501 32 Alice: 378; Bob: 378 1008 křivky Tabulka 3.2 znázorňuje jednotlivé parametry pro podpisové schéma Picnic L3 UR, Picnic L5 UR, Picnic L3 FS a Picnic L5 FS. Konkrétně jsou zde zaznamenány velikosti soukromých klíčů, veřejného klíče, podpisu a úroveň bezpečnosti v postkvantové kryptografii. Schémata FS jsou založeny na Fiat Shamirově transformaci a schémata UR jsou založeny na Unruhově transformaci. Úroveň L3 nabízí nižší úroveň bezpečnosti jak úroveň L5. Obě schémata pracují s podepisováním zprávy o velikosti 100 bytů a také využívají hashovací funkce SHAKE-256. Tab. 3.2: Tabulka jednotlivých parametrů a typů kryptografie podpisového protokolu Picnic. Protokoly Soukromý klíč (byte) Veřejný klíč (byte) Podpis (byte) Úroveň postkvantové bezpečnosti (bit) Picnic L3 FS 73 49 74076 81 Picnic L3 UR 73 49 121813 81 Picnic L5 FS 97 65 128696 128 Picnic L5 UR 97 65 209474 128 39

3.2.1 Úroveň bezpečnosti V rámci grafu 3.1 lze sledovat jednotlivé možnosti úrovně bezpečnosti, které protokoly nabízí pro klasickou i postkvantovou kryptografii.v rámci tohoto grafu jsou zaznamenány pouze protokoly pro ustanovení společného klíče. Nejvyšší úroveň bezpečnosti jak klasické, tak postkvantové kryptografie nabízí protokol New Hope, který jako jediný i v rámci postkvantové kryptografie nabízí přes 200 bitů. Protokol New Hope je následovaný protokolem Kyber, NTRU a Frodo. Nejnižší úroveň bezpčnosti jak postkvantové, tak klasické nabízí protokoly SIDH p501, SIKE p501 a BCNS. Obr. 3.1: Úrovně klasické bezpečnosti a postkvantové bezpečnosti, které nabízí protokoly pro ustanovení společného klíče. V rámci grafu 3.2 jsou znázorněny možnosti úrovně bezpečnosti dvou protokolů typu Picnic, který je podpisovým protokolem. Úroveň bezpečnosti pro typ FS a typ UR je totožná. Picnic L3 UR nabízí zásadně menší úroveň bezpečnosti, jak kvantové tak postkvantové. Naopak Picnic L5 UR nabízí klasickou úroveň bezpečnosti 256 bitů a postkvantovou úroveň bezpečnosti minimálně 128 bitů. Tyto rozdíly jsou dány především použitými klíči a velikostí podpisu, které byly zadefinovány výše. Zajištění úrovně bezpečnosti je zásadním bodem, který je nutné v případě hodnocení jednotlivých protokolů brát v potaz. Při zajištění vyšší úrovně bezpečnosti je zde nižší pravděpodobnost prolomení daného protokolu a delší životnost v případě jeho využívání. Proto se jedná o jeden ze zásadních parametrů pro závěrečné zhodnocení a vybrání vhodných kandidátů pro omezená zařízení z hlediska paměti a výpočtu. 40

Obr. 3.2: Úrovně klasické bezpečnosti a postkvantové bezpečnosti, které nabízí podpisové schéma Picnic. 3.3 Porovnání dvou zařízení V rámci kapitoly 2.9 byly naměřeny jednotlivé protokoly a jejich časové a paměťové náročnosti na virtuálním počítači. Virtuální počítač měl operační systém Fedora 25, operační pamět o velikosti 4 GB a procesor se 2 jádry o taktu 2, 6 GHz. Úroveň bezpečnosti byla také totožná, tedy byla rovna 206. Z naměřených protokolů byl vybrán protokol New Hope, který je v rámci této podkapitoly porovnán na základě zařízení. Mimo to byl vybrán protokol ECDH-256 z knihovny OpenSSL, pro demonstraci porovnání mezi postkvantovým protokolem New Hope a klasickým protokolem ECDH. Porovnány byly časové náročnosti jednotlivých protokolů na jednotlivých zařízeních. Dle tabulky 3.3 je jasně viditelné, že na Raspberry Pi 3 trvá minimálně 10 krát déle vygenerovat klíče při použití protokolu New Hope. Na základě technických parametrů je odůvodnitelné, že se hodnoty budou takto zásadním způsobem lišit. Procentuálně je rozdělení jednotlivých kroků ustanovení společného klíče u obou zařízení totožné. Tab. 3.3: Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem pro New Hope na virtuálním PC a Raspberry Pi 3. Zařízení Alice0 (ms) Bob (ms) Alice1 (ms) Celkový čas (ms) Raspberry Pi 3 0,873 ± 0,002 1,259 ± 0,006 0,226 ± 0,001 2,359 ± 0,007 PC 0,099 ± 0,015 0,146 ± 0,012 0,025 ± 0,001 0,271 ± 0,028 41

Pro ukázku byly naměřeny hodnoty protokolu ECDH-256, který je určen pro klasickou kryptografii. K naměření hodnot byla využita knihovna OpenSSL. Hodnoty naměřeného ECDH jsou značně nižší než v případě použitého postkvantového protokolu New Hope, ale při porovnání mezi zařízeními, je zde viditelné obdobné zpomalení jako v případě protokolu New Hope. Tab. 3.4: Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem pro ECDH-256 na PC a Raspberry Pi 3. Zařízení Alice0 (ms) Bob (ms) Alice1 (ms) Celkový čas (ms) Raspberry Pi 3 0,191 ± 0,001 1,041 ± 0,001 0,810 ± 0,001 2,110 ± 0,003 PC 0,018 ± 0,001 0,098 ± 0,002 0,081 ± 0,001 0,201 ± 0,004 3.4 Měření a analýza postkvantových protokolů V rámci této části se práce věnuje měření a analýze postkvantových protokolů určených pro ustanovení společného klíče. Jednotlivé protokoly byly již představeny v minulých kapitolách a nyní se bude práce věnovat pouze měření. Nejdříve byla měřena časová náročnost jednotlivých protokolů. Tabulky 3.5 a 3.6 zachycují potřebný čas, které protokoly vyžadovaly během jednotlivých kroků při ustanovení klíče. Při ustanovení klíče dochází k výměně dvou zpráv. Nejdříve Alice vygeneruje požadované parametry a posílá veřejný klíč Bobovi, který si následně počítá svůj veřejný klíč a ten posílá Alici. Každý si následně dopočítá společný klíč. Sloupec Bob v sobě zahrnuje jak generování požadovaných parametrů, tak i samotné ustanovení klíče. Alice je rozdělena do dvou sloupců, přesně tak, jak se děje při samotném ustanovení. Poslední sloupec shrnuje společný vynaložený čas. Tabulka 3.5 se orientuje na protokoly založené na mřížkách a kódování. Je jasně viditelné, že protokoly založené na mřížkách, konkrétně na problému Ring-LWE, jsou časově méně náročné, než protokol založen na LWE problému a protokol založen na kódování. Konkrétně je nejméně časově náročný protokol New Hope, následovaný protokolem Kyber, NTRU a BCNS. Naopak mnohonásobně náročnější je protokol McBits. V rámci tabulky 3.6 jsou znázorněny protokoly založené na supersingulárních izogenních křivkách při použití různých parametrů. Obecně jsou tyto protokoly mnohem více časově náročnější než protokoly v rámci tabulky 3.5. Protokoly využívající křivku p503 nabízí nižší úroveň bezpečnosti než protokoly využívající křivku p751. Protokol SIDH na rozdíl od protokolu SIKE využívá menší soukromé a veřejné klíče a 42

Tab. 3.5: Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem. Protokoly Alice0 (ms) Bob (ms) Alice1 (ms) Celkový čas (ms) New Hope 0,873 ± 0,002 1,259 ± 0,006 0,226 ± 0,001 2,359 ± 0,007 Kyber 1,203 ± 0,008 1,415 ± 0,018 1,316 ± 0,012 3,934± 0,038 NTRU 11,215 ± 0,156 0,996 ± 0,015 0,673 ± 0,042 12,884 ± 0,213 BCNS 13,114 ± 0,022 20,222 ± 0,032 1,005 ± 0,002 34,341 ± 0,056 Frodo 350,362 ± 0,031 351,128 ± 0,037 0,631 ± 0,004 702,121 ± 0,072 McBits 1958,941 ± 0,451 0,585 ± 0,003 2,178 ± 0,124 1961,704 ± 0,578 naopak generuje obrovský společný klíč. V případě protokolu SIKE je tomu naopak. Je tedy jasně viditelná vazba mezi těmito fakty a výsledky dané tabulky. Protokoly s křivkou p503 jsou méně časově náročné, než protokoly p751. A protokol SIDH, který využívá menší parametry, je pro ustanovení společného klíče také považován za méně náročný než protokol SIKE. Tab. 3.6: Průměrná doba operace z 10-ti měření během výměny klíčů mezi Alicí a Bobem. Protokoly Alice0 (ms) Bob (ms) Alice1 (ms) Celkový čas (ms) SIDH p503 311,111 ± 0,615 633,538± 0,964 253,687± 0,131 1198,335± 1,711 SIKE p503 343,378± 0,495 564,976± 0,598 601,467 ± 0,791 1509,821± 1,884 SIDH p751 1022,953 ± 1,031 2127,593± 3,386 842,384± 0,761 3992,931± 5,178 SIKE p751 1148,605± 1,211 1866,531 ± 2,647 2002,562 ± 2,467 5017,698 ± 6,325 Dalším měřeným parametrem byl průměrný počet procesorových cyklů. Parametr průměrný počet procesorových cyklů vyjadřuje, kolik základních elementárních operací (instrukcí) provede procesor, než průměrně spočítá daný algoritmus. Jedná se tedy o obecný parametr, který dobře vypovídá o komplexitě daného algoritmu a není závislý na dané sestavě. Tato veličina má lepší vypovídací hodnotu než například počet řádků kódu, podle kterého někteří autoři posuzují komplexitu algoritmu. Vyjadřuje totiž, jak komplexní je algoritmus pro samotné zařízení, tedy kolik procesorových instrukcí zabere jeho spočítání, na rozdíl od počtu řádků, který spíše vypovídá o použitém jazyce a kvalitě dané implementace. V rámci tabulky 3.7 je naměřen průměrný počet procesorových cyklů pro postkvantové protokoly založené na mřížkách a kódování. Protokoly založené na mřížkách na matematickém problému Ring-LWE využívají nejmenší počet procesorových operací, na rozdíl od protokolu Frodo, který je založen na LWE problému a protokolu McBits, který založen na kódování. 43

Tab. 3.7: Průměrný počet procesorových cyklů během ustanovení společného klíče mezi Alicí a Bobem. Protokoly Alice0 Bob Alice1 Celkově New Hope 968 774 1 357 668 232 001 2 558 443 Kyber 1 314 631 1 571 314 1 421 310 3 307 255 NTRU 11 177 870 989 090 670 318 12 837 278 BCNS 13 105 953 20 209 925 1 005 783 34 321 661 Frodo 349 004 715 349 885 867 626 902 699 517 484 McBits 2 013 464 123 564 132 2 221 466 2 016 249 721 Tabulka 3.8 znázorňuje průměrný počet procesorových cyklů pro protokoly založené na supersingulárních izogenních eliptických křivkách. Protokoly zajišťující nižší úroveň bezpečnosti využívají nižší počet procesorových cyklů a protokoly využívající větší soukromé a veřejné klíče (SIKE), využívají větší počet procesorových cyklů. Tato jednotka je korespondující s měřením času v těchto případech. Tab. 3.8: Průměrný počet procesorových cyklů během ustanovení klíče na základě supersingulárních křivek mezi Alicí a Bobem. Protokoly Alice0 Bob Alice1 Celkový čas SIDH p503 311 364 224 633 671 808 253 751 104 1 198 787 136 SIKE p503 343 628 885 565 241 600 601 559 808 1 510 430 293 SIDH p751 1 025 402 624 2 131 921 408 844 043 648 4 001 367 680 SIKE p751 1 150 879 488 1 868 985 088 2 006 788 608 5 026 653 184 Nadcházející tabulky řeší velikosti přenášených zpráv a potřebné vynaložení paměti při tomto přenosu. V rámci tabulky 3.9 jsou opět rozebrány protokoly založené na mřížkách a kódování. Protokoly založené na mřížkách dosahují nižšího množství vynaložených bytů na ustanovení klíče než protokol založen na kódování. Tentokrát jsou nejméně náročné protokoly NTRU, Kyber a protokol New Hope. Protokol Mc- Bits založený na kódování opět vyžaduje největší zprávy při ustanovení společného klíče. Tabulka 3.10 se tentokrát orientuje na protokoly založené na supersingulárních izogenních eliptických křivkách. Obecně tento typ protokolů vyžaduje mnohem menší množství přenesených bytů mezi stranami pro ustanovení klíče. Protokoly, které využívají křivky p751 potřebují pouze poloviční množství přenesených bytů, co NTRU nebo Kyber. Rozdíl mezi p503 a p751 je obdobný jako při měření časové náročnosti. 44

Tab. 3.9: Tabulka přenesených bytů při generování klíčů. Protokoly Alice Bob (byte) Bob Alice (byte) Celkově (byte) NTRU 1027 1022 2049 Kyber 1088 1184 2272 New Hope 1824 2048 3872 BCNS 4096 4224 8320 Frodo 11280 11288 22568 McBits 311736 141 311877 Protokoly založené na p503 přenáší méně bytů na rozdíl od p751. Podobně tak SIDH využívá menší množství přenesených bytů než protokol SIKE. Tab. 3.10: Tabulka přenesených bytů při generování klíčů. Protokoly Alice Bob (byte) Bob Alice (byte) Celkově (byte) SIDHp503 378 378 756 SIKEp503 378 402 780 SIDHp751 564 564 1128 SIKEp751 564 596 1160 3.5 Měření a analýza podpisového schématu V rámci této části se práce věnuje měření a analýze postkvantového podpisového protokolu Picnic. Protokol Picnic je určený pro generování klíčů, podepisování a následného verifikování podpisů. Protokol Picnic nabízí několik úrovní bezpečností, které odpovídají úrovním bezpečnosti AES-128, AES-192, AES-256. V oblasti postkvantové nabízí minimálně polovinu zajištění úrovně bezpečnosti. Proto byly za měřitelné kandidáty zvoleny protokoly Picnic L3 a L5. Picnic L1 zajišťuje velmi malou postkvantovou bezpečnost, proto není do budoucna považován za dostatečně perspektivní protokol. V rámci měření byly naměřeny 2 typy Picnic protokolů. První typ FS je založen na Fiat Shamirově transformaci, zajišťuje především zabezpečení ROM a generuje mnohem menší podpisy, než druhý typ protokolu Picnic. Druhým typem je takzvaný UR, který je založen na Unruhově transformaci. Unruhova transformace nabízí zabezpečení QROM, ovšem generuje 1, 6 krát větší podpisy. Tabulka 3.11 znázorňuje průměrnou dobu během generování klíčů, podepisování a následné verifikace. Každý ze sloupců odpovídá danému kroku u podpisového schématu Picnic. Poslední sloupec odpovídá celkovému času vynaloženému na jednotlivé 45

kroky. Protokoly typu FS nejsou znatelně rychlejší než protokoly založené na UR. Důvodem je generování větších podpisů a zajišťování QROM, vyžaduje větší množství času. V případě rozdílu mezi verzí L3 a L5, je jasně znatelné, že protokoly, které nabízí nižší úroveň bezpečnosti,tedy verze L3 vyžadují nižší časové vytížení, než naopak verze typu L5. Tabulka 3.12 sleduje počet procesorových cyklů vyžadova- Tab. 3.11: Průměrná doba operace z 10-ti měření během podepsání a verifikace mezi Alicí a Bobem na Raspberry Pi 3. Protokol Ustanovení klíčů (ms) Podepsání (ms) Verifikace (ms) Celkový čas (ms) Picnic L3 FS 0,168 ± 0,021 331,023 ± 0,111 217,954± 0,081 549,145 ± 0,213 Picnic L3 UR 0,167 ± 0,021 464,081 ± 0,121 312,974± 0,091 777,222 ± 0,233 Picnic L5 FS 0,287 ± 0,032 661,268± 0,211 429,858 ± 0,188 1091,413 ± 0,461 Picnic L5 UR 0,283 ± 0,032 863,803± 0,231 571,789 ± 0,198 1435,875 ± 0,431 ných pro naplnění jednotlivých kroků. Podobně jako u náročnosti z hlediska času je viditelné, že protokoly založené na FS jsou méně náročné z hlediska procesorových cyklů a protokoly nabízející vyšší úroveň bezpečnosti, jsou opět náročnější z pohledu počtu procesorových cyklů. Tab. 3.12: Počet procesorových cyklů během podepsání a verifikace mezi Alicí a Bobem na Raspberry Pi 3. Protokol Ustanovení klíčů Podepsání Verifikace Celkově Picnic L3 FS 167 730 331 021 248 217 952 461 549 141 439 Picnic L3 UR 166 652 464 079 104 312 971 904 777 217 660 Picnic L5 FS 287 311 661 265 152 429 855 829 091 408 292 Picnic L5 UR 282 266 863 801 216 571 787 264 1 435 870 746 3.6 Návrh poskvantového zabezpečení pro systémy omezených zařízení V rámci této kapitoly proběhlo měření a analyzování několika postkvantových kryptografických protokolů. K měření se využívaly knihovny liboqs, Kyber, SIDH, Picnic, OpenSSL, NewHope, NTRUOpenSourceProject a Frodo. Samotné protokoly jsou popsány v rámci předchozí kapitoly. 46

Obr. 3.3: Porovnání časové náročnosti postkvantového protokolu New Hope a protokolu ECDH. 3.6.1 Postkvantové zabezpečení pro ustanovení společného klíče V první části se práce věnovala měření protokolů pro ustanovení společného klíče. V rámci grafu 3.3 je vidět porovnání postkvantového protokolu New Hope a protokolu ECDH-256 na omezeném zařízení Raspberry Pi 3. ECDH protokol je v některých krocích rychlejší. Z celkového hlediska vychází rychlejší protokol ECDH-256. Oba protokoly nabízí stejnou úroveň bezpečnosti, ovšem protokol New Hope navíc postkvantovou bezpečnost. Prvními body, které práce měřila a analyzovala byly hodnoty času a počtu procesorových cyklů. Oba tyto faktory souvisí s výpočetní náročností a předurčují tak její komplexnost a obtížnost, která by byla po výpočetně omezeném zařízení vyžadována. Při zhodnocení tabulek je viditelné, že nejlépe se umisťovaly protokoly New Hope, Kyber a NTRU. Tyto protokoly jsou založeny na Ring-LWE problému, který komprimuje velikosti matic a zajišťuje tak rychlost a nižší náročnost v počtu procesorových cyklů. Při zvážení daných protokolů je třeba brát v potaz jejich klady a zápory a také výši postkvantové úrovně bezpečnosti. Protokol New Hope nabízí nejvyšší úroveň bezpečnosti a to konkrétně 206 bitů v rámci postkvantové kryptografie. Jeho nevýhodou je nutná parametrizace, tedy nutnost používat zadefinované parametry, které jsou tvůrci testovány a považovány za bezpečné v této oblasti. Protokol Kyber nabízí značně nižší úroveň postkvantové bezpečnosti a lze v jeho případě zmínit podobné nevýhody jako v případě protokolu New Hope. Pro- 47