Lehký úvod do dvou algoritmů postkvantové kryptografie

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

MFF UK Praha, 22. duben 2008

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

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

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

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

ElGamal, Diffie-Hellman

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

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

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

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

Komerční výrobky pro kvantovou kryptografii

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

asymetrická kryptografie

Třídy složitosti P a NP, NP-úplnost

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

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

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

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

Pokročilá kryptologie

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

Složitost a moderní kryptografie


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

Kryptografie - Síla šifer

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

EU-OPVK:VY_32_INOVACE_FIL13 Vojtěch Filip, 2014

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

ZADÁNÍ DIPLOMOVÉ PRÁCE

Č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

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

Cyklické grupy a grupy permutací

Konstrukce šifer. Andrew Kozlík KA MFF UK

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

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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

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

PA159 - Bezpečnostní aspekty

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

Pokročilá kryptologie

Úvod do kvantového počítání

Asymetrická kryptografie

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

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

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

Tel.: (+420)

C5 Bezpečnost dat v PC

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

Jak funguje asymetrické šifrování?

Matematika IV 10. týden Kódování

KRYPTOGRAFIE VER EJNE HO KLI Č E

vnější profesionál vnitřní profesionál organizace opakuje podsouvá

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

Kvantová informatika pro komunikace v budoucnosti

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

Eliptické křivky a RSA

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

Informatika / bezpečnost

Andrew Kozlík KA MFF UK

klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal

Počet kreditů: 5 Forma studia: kombinovaná. Anotace: Předmět seznamuje se základy dělitelnosti, vybranými partiemi algebry, šifrování a kódování.

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

Bezpečnost internetového bankovnictví, bankomaty

pomocí asymetrické kryptografie 15. dubna 2013

Diskrétní logaritmus

OpenSSL a certifikáty

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

MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.

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

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

Identifikátor materiálu: ICT-2-04

[1] samoopravné kódy: terminologie, princip

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

ALGORITMY A DATOVÉ STRUKTURY

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Směry rozvoje v oblasti ochrany informací PS 7

Datové struktury 2: Rozptylovací tabulky

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Problémy třídy Pa N P, převody problémů

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

Projekt 2 - Nejčastější chyby. Ing. Dominik Breitenbacher

Vzdálenost jednoznačnosti a absolutně

Teorie informace a kódování (KMI/TIK)

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

Kódy pro detekci a opravu chyb. INP 2008 FIT VUT v Brně

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

GnuPG pro normální lidi

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

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

Generátory náhodných a

Psaní na mokrý papír. Andrew Kozlik KA MFF UK

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY SOFTWAROVÁ PODPORA VÝUKY KRYPTOSYSTÉMŮ ZALOŽENÝCH NA PROBLÉMU DISKRÉTNÍHO LOGARITMU

9. DSA, PKI a infrastruktura. doc. Ing. Róbert Lórencz, CSc.

Obsah. Protokol RSA. Protokol RSA Bezpečnost protokolu RSA. 5. a 6. přednáška z kryptografie

8 Kořeny cyklických kódů, BCH-kódy

5. a 6. přednáška z kryptografie

Transkript:

Lehký úvod do dvou algoritmů postkvantové kryptografie Mirek Kratochvíl KSI MFF UK

Paranoia je skvělá motivace! RSA IS DEAD ALSO: DHE, DSA, ElGamal, ECRSA, ECDSA+BTC, ECDHE,... 1

Lepší motivace! předpokládat, že kvantové počítače nevzniknou je hloupost předpokládat, že současná šifrovaná data nebudou mít za 50 100 let cenu je naivní celosvětová kryptografická monokultura je nebezpečná post-kvantové algoritmy jsou často jednodušší i zajímavější 2

O čem bude přednáška McEliece kryptosystém Jak vyrobit digitální podpis z hashovací funkce? Co že to má ten kvantový počítač navíc? 3

O čem bude přednáška McEliece kryptosystém Jak vyrobit digitální podpis z hashovací funkce? Co že to má ten kvantový počítač navíc? Spoiler: Codecrypt the post-quantum cryptography tool https://github.com/exaexa/codecrypt (apt-get install codecrypt / emerge codecrypt) 3

McEliece

MiniMcEliece Hammingův obecně známý samoopravný kód p1 d1 d4 d2 p2 d3 p3 4

MiniMcEliece Hammingův (7, 4, 1)-kód formálně. Generátor: Kontrola parity: 1 0 0 0 1 1 0 0 1 0 0 1 0 1 G = 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 0 H = 1 0 1 1 0 1 0 0 1 1 1 0 0 1 4,7 3,7 5

MiniMcEliece Chvíli budeme naivně předpokládat, že nepřítel neumí myslet. (např. že nepřítel je jogurt) Zakódujeme zprávu (0 1 0 1) Hammingovým kódem: 1 0 0 0 1 1 0 0 1 0 0 1 0 1 m = (0 1 0 1) = (0 1 0 1 0 1 0) 0 0 1 0 0 1 1 0 0 0 1 1 1 1 Jeden náhodný bit zprávy úmyslně rozbijeme: c = m e = (0 1 1 1 0 1 0) 6

MiniMcEliece Nepřátelský jogurt vidí: (0 1 1 1 0 1 0) Protože ale neumí opravovat Hammingovy kódy, netuší, která zpráva z následujících 4 byla původní: (1 1 1 1), (0 0 1 1), (0 1 0 1), (0 1 1 0) 7

MiniMcEliece Nepřátelský jogurt vidí: (0 1 1 1 0 1 0) Protože ale neumí opravovat Hammingovy kódy, netuší, která zpráva z následujících 4 byla původní: (1 1 1 1), (0 0 1 1), (0 1 0 1), (0 1 1 0) Obecně: při t chybách v n písmenech vznikne ( n t) možností: ) ( = 4 8 ( 2) = 28 100 ) 1.73 10 13 2 43 ( 4 1 ( 1024 ) 38 10 69 2 230 10 7

McEliece kryptosystém Z toho můžeme vyrobit asymetrickou šifru! Tajný klíč Samoopravný kód s dostatečným n a t, který nepřítel neumí opravit. Veřejný klíč Odpovídající matice G, ze které se informace o opravování kódu nedá zjistit. Šifrování Zprávu vynásobíme G, znečitelníme ji přidáním chyb a odešleme. Rozšifrování Pomocí znalosti o opravování kódu odstraníme chyby. 8

McEliece kryptosystém Z toho můžeme vyrobit asymetrickou šifru! Tajný klíč Samoopravný kód s dostatečným n a t, který nepřítel neumí opravit. Veřejný klíč Odpovídající matice G, ze které se informace o opravování kódu nedá zjistit. Šifrování Zprávu vynásobíme G, znečitelníme ji přidáním chyb a odešleme. Rozšifrování Pomocí znalosti o opravování kódu odstraníme chyby. Problémy: Kde vzít takový samoopravný kód? Velikost G Tohke bez#potízí pře2tu. 8

McEliece kryptosystém Kde vzít takový samoopravný kód? Гоппа, В. Д. Новый класс линейных корректирующих кодов. Проблемы передачи информации, Том. VI., Вып. 3, 1970. Goppovy algebraické kódy jsou poměrně složité, ale kryptosystém funguje! https://en.wikipedia.org/wiki/binary_goppa_code 9

McEliece kryptosystém Tohke bez#potízí pře2tu. Problém: Lidské jazyky obsahují docela dost redundance na to, aby se jednobitové chyby daly opravit. Řešení je víc: Vzít náhodnou invertibilní matici a vynásobit s ní G. Zašifrovat symetrický klíč a zprávu připojit zašifrovanou symetricky. (Fujisaki-Okamoto padding) 10

McEliece kryptosystém Velikost G. Veřejný klíč má O(n 2 ) bitů, pro původní parametry asi 100kB! (pro srovnání: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5A- AAAIK4bCej3ZCkxHcXLZKLvnlmlwA2Ettb8BeUrkirnmVSb user@host) Řešení: G s jednoduchou vnitřní strukturou! 11

MDPC Cyklické matice mají pěknou vnitřní strukturu, k uložení celé stačí opsat první řádek. Idea: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Když vyrobíme cyklickou matici H, můžeme z ní spočítat i cyklickou G! 12

MDPC Cyklické matice mají pěknou vnitřní strukturu, k uložení celé stačí opsat první řádek. Idea: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Když vyrobíme cyklickou matici H, můžeme z ní spočítat i cyklickou G! Shodou okolností existují vhodné samoopravné kódy s cyklickou H. Výsledný kryptosystém se jmenuje MDPC. 12

MDPC Matice H se vyrobí cyklením nějakého řídkého vektoru: 1 1 1 1 1 1 1 1 1 1 1 1.. G se vyrobí trochou lineární algebry. 13

Zjednodušená korekce chyb v MDPC 1 1 1 1 1 1 1 1 1 1 1 1 kódové slovo {}}{ 1 0 1 0 0 1 0 0 1 = syndrom {}}{ ( 0 0 0 1 ) Který bit může za nejvíc jedniček v syndromu? 14

Zjednodušená korekce chyb v MDPC 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 = ( 0 0 0 1 ) 15

Zjednodušená korekce chyb v MDPC 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 = ( 0 0 0 0 ) 16

MDPC Implementace MDPC je poměrně rychlá a klíče jsou dostatečně malé. $ ccr -p -F @8dc wc -c 1346 $ ccr -er exa ccr -d asd incoming encrypted message details: algorithm: MCEQCMDPC128FO-CUBE256-CHACHA20 recipient: @8dc45217e14d3fdc244f8578e788b3f91c75... recipient local name: exa asd 17

Digitální podpis z hashů

Ale hashovací funkce jsou symetrické? Kryptografické hashovací funkce se běžně používají jako symetrická kryptografie. Ověření konzistence přenesené informace: Ověření autenticity zprávy: H(sent) =? H(received) H(sent k) =? H(received k) Asymetrický digitální podpis je trochu složitější. 18

Lamport OTS Zkusíme aspoň jednorázový podpis jednoho bitu. Vygenerujeme 2 náhodné řetězce: S0: bb2f841c80976e985bd161557d952309c44c3ddd S1: 141f87be1330a105a87923f4ee6383bd7de46541 Z obou spočítáme hash: H0: 8f431d33712287ea7cf0663553aa000de4595125 H1: 67573f94f164e5bfdf8bce2dec6486100e716dd0 Hashe H0,H1 zveřejníme, původní řetězce S0,S1 uschováme. 19

Lamport OTS Chceme podepsat jednobitovou zprávu 0 : Jako podpis nuly zveřejníme s=s0. Smažeme S1. Pro ověření spočítáme H(s) a podpis akceptujeme, když je výsledek stejný jako H0. Kdyby nepřítel chtěl zprávu 1 prohlásit za validní, musel by někde sehnat S1 nebo invertovat hash H1. Víc podpisů ale udělat nejde. 20

Lamport OTS Schéma jde rozšířit i na n bitů. Privátní klíč bude: S0-1, S0-2, S0-3, S0-4,..., S0-n S1-1, S1-2, S1-3, S1-4,..., S1-n Veřejný: H0-1, H0-2, H0-3, H0-4,..., H0-n H1-1, H1-2, H1-3, H1-4,..., H1-n Zprávu hashujeme na n bitů a každý bit podepíšeme odděleně. Veřejný i soukromý klíč mají velikost 2n 2 bitů (jde to stáhnout na n(n + log 2 n)). 21

Opakované podpisy Jak vyrobit znovupoužitelný digitální podpis? 22

Opakované podpisy Jak vyrobit znovupoužitelný digitální podpis? 1. Vygenerujeme hromadu párů klíčů pro Lamportův podpis. :) 2. Zveřejníme všechny veřejné klíče. 3. Pro každý podpis použijeme postupně jednu dvojici klíčů! Problém: hromada je moc velký veřejný klíč. 22

Merkle Trees Řešení: Všechny veřejné klíče zahashujeme Merkleho stromem a zveřejníme jen vrchol stromu. PK i-tý opakovatelný podpis se skládá z i-tého jednorázového podpisu a sousedů cesty v Merkleho stromě. 23

Hash-based signatures Běžné technické potíže: není potřeba pamatovat si všechny S stačí PRNG 24

Hash-based signatures Běžné technické potíže: není potřeba pamatovat si všechny S stačí PRNG není potřeba mít celý strom v paměti postupné generování např. FMTSeq 24

Hash-based signatures Běžné technické potíže: není potřeba pamatovat si všechny S stačí PRNG není potřeba mít celý strom v paměti postupné generování např. FMTSeq spodní patro stromu není potřeba generovat najednou místo hashů se ve stromě použijí podpisy 24

Hash-based signatures Běžné technické potíže: není potřeba pamatovat si všechny S stačí PRNG není potřeba mít celý strom v paměti postupné generování např. FMTSeq spodní patro stromu není potřeba generovat najednou místo hashů se ve stromě použijí podpisy podpisů může být i nekonečno few-time signatures ve SPHINCS256 24

Hash-based signatures Běžné technické potíže: není potřeba pamatovat si všechny S stačí PRNG není potřeba mít celý strom v paměti postupné generování např. FMTSeq spodní patro stromu není potřeba generovat najednou místo hashů se ve stromě použijí podpisy podpisů může být i nekonečno few-time signatures ve SPHINCS256 podpisy jsou poměrně velké, ale ne tak strašně 24

Podpisy v Codecryptu $ ccr -pf @9b3 wc -c 109 $ ccr -s ccr -v Nazdar fmtseq notice: 65131 signatures remaining incoming signed message details: algorithm: FMTSEQ128C-CUBE256-CUBE128 signed by: @9b399912a7f0561839b1048f8a9f81a369a... signed local name: exa verification status: GOOD signature ;-) Nazdar 25

Náhled na složitost

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? 26

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? Pichlavá odpověď: Stalo by se dost podivných věcí! 26

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? Pichlavá odpověď: Stalo by se dost podivných věcí! Premisa: Spočítat NP v polynomiálním čase je podivné. 26

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? Pichlavá odpověď: Stalo by se dost podivných věcí! Premisa: Spočítat NP v polynomiálním čase je podivné. Kdyby šel SAT spočítat v P, můžu s ním v P simulovat nedeterministický Turingův stroj, takže spočítám cokoliv z NP. (Cook-Levin) 26

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? Pichlavá odpověď: Stalo by se dost podivných věcí! Premisa: Spočítat NP v polynomiálním čase je podivné. Kdyby šel SAT spočítat v P, můžu s ním v P simulovat nedeterministický Turingův stroj, takže spočítám cokoliv z NP. (Cook-Levin) Když někdo umí najít řešení problému s Hamiltonovskou kružnicí, umí spočítat i SAT, tj. i NP, tj. je to podivné. 26

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? Pichlavá odpověď: Stalo by se dost podivných věcí! Premisa: Spočítat NP v polynomiálním čase je podivné. Kdyby šel SAT spočítat v P, můžu s ním v P simulovat nedeterministický Turingův stroj, takže spočítám cokoliv z NP. (Cook-Levin) Když někdo umí najít řešení problému s Hamiltonovskou kružnicí, umí spočítat i SAT, tj. i NP, tj. je to podivné.... Když někdo spočítá problém dekódování syndromu (SD), vyřeší (tranzitivně) i cokoliv z NP! 26

Jak je složitý nějaký problém? Pichlavá otázka: Co když jsme náhodou ještě nepřišli na existující jednoduchý algoritmus, který např. invertuje hashovací funkce? Pichlavá odpověď: Stalo by se dost podivných věcí! Premisa: Spočítat NP v polynomiálním čase je podivné. Kdyby šel SAT spočítat v P, můžu s ním v P simulovat nedeterministický Turingův stroj, takže spočítám cokoliv z NP. (Cook-Levin) Když někdo umí najít řešení problému s Hamiltonovskou kružnicí, umí spočítat i SAT, tj. i NP, tj. je to podivné.... Když někdo spočítá problém dekódování syndromu (SD), vyřeší (tranzitivně) i cokoliv z NP! Takže zlomit McEliece by bylo minimálně dost podezřelé. 26

RSA vs. složitost Obecně se věří, že: Shor 1993: RSA, DLog NPC RSA, DLog BQP 27

RSA vs. složitost Obecně se věří, že: Shor 1993: RSA, DLog NPC RSA, DLog BQP Co že ty kvantové počítače vlastně dělají? 27

QC K čemu jsou qubity? (velmi zjednodušený pohled) Jeden qubit je dvoustavová pravděpodobnostní paměť s neomezenou kapacitou rozložení pravděpodobnosti. Víc qubitů jde spojovat (entanglovat), složitost rozložení roste exponenciálně. Rozložení jde rozumně ovlivňovat kvantovými obvody. Při měření stavu qubitu celé rozložení zkolabuje a vrátí nějakou relativně pravděpodobnou možnost. 28

QC Pro kryptografii jsou zásadní 2 algoritmy: Grover search hledání v nesetříděné posloupnosti v O(n 1 2 ). Shor factorization rozbíjení RSA modulu a diskrétního logaritmu. 29

Shorův algoritmus Redukuje problém na hledání periody r funkce f (x) = a x pro náhodné a. mod N V kvantovém počítači můžeme: 1. f vhodně aplikovat najednou na všechny x 2. Výsledek prohnat kvantovou Fourierovou transformací 3. Výsledek QFT změřit. Měření které periodu f jasně ukazuje je velice pravděpodobné. Dělitele N jsou: gcd(a r 2 1, N) gcd(a r 2 + 1, N) 30

Drobný výhled do budoucnosti

Co dál? Existují další kryptosystémy! NTRU, NewHope, Stern, MQ,... SIDH-KEX https://github.com/elkablo/pqc 31

Co dál? Existují další kryptosystémy! NTRU, NewHope, Stern, MQ,... SIDH-KEX https://github.com/elkablo/pqc Integrace postkvantových prvků do běžných knihoven už probíhá (pomalu) Hodně příležitostí vyrobit nový zajímavý software (především pro studenty!) 31

Konec! Q&A?