KPB Režimy činnosti symetrických šifer - dokončení KPB 2015/16, 7. přednáška 1
Blokové šifry v proudovém režimu (CFB, OFB) KPB 2015/16, 7. přednáška 2
Cipher-Feedback Mode CFB U CFB se nemusí zpráva rozdělovat na bloky o velikosti odpovídající velikosti bloku, data mohou být šifrována po jednotkách menších než je velikost bloku. Se zprávou se pracuje jako s plynulým proudem dat o libovolné velikosti. Obecně máme dva parametry j a n, j odpovídá délce úseků, na které je blok zprávy rozdělen (typicky j=8), n reprezentuje velikost bloku blokové šifry blokové šifry pracují jako proudové. Šifrování a dešifrování používá stejný algoritmus E. Bloková šifra slouží jako generátor pseudonáhodné posloupnosti, která je použita pro zašifrování otevřeného textu operací XOR. Generátor je ovlivňován zpětnou vazbou získanou ze šifrového textu. Bity klíče jsou funkcí předchozích bitů šifrového textu Opakované vzorky otevřeného textu nedávají opakované vzorky v textu šifrovém. KPB 2015/16, 7. přednáška 3
KPB 2015/16, 7. přednáška 4
Cipher-Feedback Mode Vstupem algoritmu jedinečný IV, který je nutno generovat nový pro každou novou zprávu. Šifrování je neparalelizovatelé, dešifrování ano. Používá se pro přenosy proudové povahy, např. pro šifrování znakových terminálů (8-bitový CFB), dále např. pro autentizaci. Více než jedna zpráva může být šifrována stejným klíčem. Má samosynchronizující vlastnost, ale je třeba n/j bloků pro zotavení. Změna pořadí bloků šifrového textu ovlivní dešifrování. Korektní dešifrování bloku vyžaduje korektních n/j předcházejících bloků šifrového textu. Chyba v bitu j-bitového šifrového textu ovlivní jeho dešifrování a dešifrování následujících n/j bloků šifrového textu. Vnější zpětná vazba algoritmu v režimu CFB zvyšuje jeho náchylnost na chybovost způsobovanou poruchami spoje. KPB 2015/16, 7. přednáška 5
Output-Feedback Mode OFB Opakované vzorky otevřeného textu nedávají opakované vzorky v textu šifrovém. Generátor není ovlivňován šifrovým textem, ale pouze výstupem samotného generátoru. Proud bitů klíče je nezávislý na m i c. Vstupem algoritmu je náhodný text jedinečný IV. Více než jedna zpráva může být šifrována se stejným klíčem, ale IV musí být jedinečný, je-li znovu použit stejný klíč. Šifrování je neparalelizovatelé, dešifrování také. Je vhodný pro vysokorychlostní systémy s nepřípustným šířením chyb (satelitní systémy). KPB 2015/16, 7. přednáška 6
KPB 2015/16, 7. přednáška 7
Output-Feedback Mode Chyba v bitu šifrového textu ovlivní pouze odpovídající bit otevřeného textu, ale ztráta bloku (bitu) šifrového textu vede k chybnému dešifrování a tedy ke ztrátě synchronizace přenosu. Zpětná vazba algoritmu v režimu OFB nezvyšuje jeho náchylnost na chybovost způsobovanou poruchami spoje, ale režim je náchylnější k manipulaci se zprávou (pokud útočník zná otevřený text, umí vypočítat proud bloků a zkonstruovat šifrový text k otevřenému textu, který si zvolí (stejné délky)). KPB 2015/16, 7. přednáška 8
Kryptografie a počítačová bezpečnost DES KPB 2015/16, 7. přednáška 9
Feistelova síť (1) Použité pojmy: délka bloku, počet kroků, algoritmus generování podklíče, funkce f kroku, iterovaná šifra Feistelova síť: n kroků (iterací, rund), všechny jsou identické. Blok zprávy m i se dělí na dvě poloviny L i, R i Klíč k se dělí na podklíče k i Funkce f kroku se aplikuje na R i pomocí k i : L i = R i-1, R i = L i-1 f(r i-1,k i ). V f se uplatňují S-boxy a P-boxy. Dešifrování je totožný proces jako šifrování, podklíče se používají v opačném pořadí. KPB 2015/16, 7. přednáška 10
Feistelova síť (2) f f KPB 2015/16, 7. přednáška 11
DES (1) Standard Patent 1975, Od r.1977 do (s výhradami) r.1998 standard FIPS PUB 46-2, také ANSI (American National Standard) X3.92-1981/R1987. Režimy činnosti DESu (později): FIPS PUB 81 ECB, CBC, OFB, CFB, ANSI bankovní standard ECB, CBC pro šifrování, CBC a CFB pro autentizaci. DES založen na proprietárním algoritmu Lucifer (IBM, navržen Feistelem), který měl klíč 128 bitů. Klíč DESu byl zkrácen na 64 (56) bitů (požadavek NSA - implementace na jeden čip). 2 56 klíčů je 72,057,594,037,927,936 klíčů Ze 64 bitů klíče je každý osmý paritní, proto 56-bitový klíč Iterovaná šifra 16 iterací (rund) KPB 2015/16, 7. přednáška 12
DES (2) Lavinovitost ano Korelace mezi OT a ŠT, a mezi ŠT a K vlastnost statisticky testována neexistuje Difuse každý bit K a OT mají vliv na každý bit ŠT, tento vliv je velmi komplikovaný Na tuto složitost mají největší vliv nelineární S-boxy Každý výstupní bit je nelineární funkcí všech vstupních bitů (XOR, AND). Kdyby byly S- boxy lineární (tj. všechny výstupní bity by byly jen XOR kombinacemi vstupních bitů) pak by všech 64 bitů bloku ŠT bylo jen lineární kombinací bitů OT a K, což by se dalo vyřešit soustavou lineárních rovnic (M 1 M 2 C 1 C 2 = =K 1 K 2 ). KPB 2015/16, 7. přednáška 13
KPB 2015/16, 7. přednáška 14
Funkce f: S-box Vstupem je 6 bitů, výstupem 4 bity např.: S 1 (100101) 2 =(37) 10 nejlevější a nejpravější bit jsou indexem řádku (indexováno od 0), tj. (11) 2 =(3) 10 vnitřní 4 bity jsou indexem sloupce (indexováno od 0), tj. (0010) 2 =(2) 10 S ij =S 32 =(8) 10 =(1000) 2 výstup Nelineární S(a) S(b) S(a b). KPB 2015/16, 7. přednáška 15
Schéma generování podklíčů KPB 2015/16, 7. přednáška 16
Slabé a poloslabé klíče Krátký klíč (kritika už od 70. let) Slabé klíče K: E K (M)=M Poloslabé klíče (K1,K2): E K2 (E K1 (M))=M KPB 2015/16, 7. přednáška 17
Další vlastnosti DESu Komplementárnost: E K (M)=non (E non K (non M)) snižuje složitost útoku hrubou silou o jeden bit. KPB 2015/16, 7. přednáška 18
Útoky na DES (1) Praktický útok malá délka klíče DES cracker (Deep Crack), 17.7.1998, HW stroj, cena útoku 210 000 USD (130 000 za HW) 29 desek se 64 čipy, testování 90 MLD klíčů/sec. umožňuje bruteforce attack do 9 dní Výzva DES Challenge III,19.1.1999 za 22 hod.15 min., kombinace Distributed.Net (okolo 100.000 PC ) a Deep Crack (http://www.emc.com/emc-plus/rsa-labs/historical/des-challenge-iii.htm ) KPB 2015/16, 7. přednáška 19
Deep Crack (2) KPB 2015/16, 7. přednáška 20
Dvojité šifrování Dvojité šifrování: c = e k2 (e k1 (m)), m = d k1 (d k2 (c)). DoubleDES klíč 2 112 bitový Útok meet-in-the-middle, known plaintext attack. Princip: Označme e k1 (m) = X = d k2 (c). Mějme známou dvojici (m1, c1). Nejprve zašifrujme otevřený text m1 všemi 2 56 hodnotami klíče k1. Získané šifrové texty uložíme do tabulky, setřídíme podle hodnoty X. Potom dešifrujme nám známý šifrový text c1 všemi 2 56 hodnotami klíče k2. Každou získanou hodnotu ihned hledejme v tabulce. Pokud ji nalezneme, použijme příslušné klíče k1, k2 na jinou dvojici (m2, c2). Pokud získáme korektní c2, našli jsme korektní dvojici klíčů. Místo 2 112 šifrování a dvou známých párů (OT,ŠT) potřebujeme k úspěchu 2 páry (OT,ŠT), 2 57 šifrování, dalších 2 56 operací, 2 56 jednotek paměti (2 56 64-bitových bloků, tj. 10 17 bajtů paměti), obecně úspěch již po 2 56 pokusech. KPB 2015/16, 7. přednáška 21
Trojité šifrování Umělé zesílení DES,1999 FIPS PUB 46-3, prodloužení klíče na 56 (+ 56) + 56 bitů. Používá se všude tam, kde je potřeba schválený a relativně bezpečný algoritmus a nevadí zpomalení. Dva různé klíče (3DES 112 (také TripleDES)), Tuchman,1978: c = e k1 (d k2 (e k1 (m))), m = d k1 (e k2 (d k1 (c))), Tři různé klíče (Merklova varianta, 3DES 168 ), DH 1977 a Merkle 1979: c = e k3 (d k2 (e k1 (m))), m = d k1 (e k2 (d k3 (c))). KPB 2015/16, 7. přednáška 22
Trojité šifrování Útok na 3DES 168 Nejlepší útok vyžaduje: 2 32 known plaintexts, 2 113 steps, 2 90 single DES encryptions, and 2 88 memory This is not currently practical and NIST considers it to be appropriate through 2030. KPB 2015/16, 7. přednáška 23
Kryptografie a počítačová bezpečnost AES KPB 2015/16, 7. přednáška 24
AES - Rijndael (1) Soutěž o nový symetrický standard vyhlášena v lednu 1997, z 15 zaslaných algoritmů (k 8/1998) do finále postoupilo 5 algoritmů (9/1999): Kritéria výběru: bezpečnost, cena (efficiency / intellectual property), flexibilita Další algortimy RC6, Twofish, MARS, Serpent, Rijndael vítěz Rijndael [:Rejndál:] [:Rájndol:] (autory jsou belgičané Rijmen, Daemen) AES - NIST standard v FIPS PUB 197, pravděpodobně se opět stane nejrozšířenějším symetrickým algoritmem na světě, bez licence. Standard platí od 26.5.2002. Režimy činnosti všech 5, tedy je standardizován i Counter mode Není Feistelova šifra. V protokolech např. SSL (TLS), S/MIME a jinde KPB 2015/16, 7. přednáška 25
AES - Rijndael (2) Pro AES (tedy ve standardu) je délka vstupního a výstupního bloku definována jako 128 bitů, ale algoritmus podporuje i větší bloky. Délka klíče je volitelná - 128, 192, 256 bitů, což je N k 32-bitových slov, kde N k = 4, 6, 8. Uvedeným délkám klíče odpovídá N r = 10, 12, 14 kol (iterací, rund) algoritmu (iterovaná šifra). Rijndael je velmi flexibilní. Návrh je přímočarý a za základ jsou použity operace s prvky z GF(2 8 ). Příslušné operace s nimi lze provádět buď tabulkově, což je výhodné pro implementaci softwarovou nebo výpočtem přímo hardwarová implementace. KPB 2015/16, 7. přednáška 26
AES - Rijndael (3) Bajtově orientovaný návrh také umožňuje optimalizovat programový kód pro různé mikroprocesory od procesorů na čipových kartách až po digitální signálové procesory, na programovatelných hradlových polích, na specializovaných integrovaných obvodech. Obvody typu FPGA (Field Programmable Gate Array) mají z programovatelných obvodů nejobecnější strukturu a obsahují nejvíce logiky (Současné největší obvody FPGA obsahují až 6 a více milionů ekvivalentních hradel (typické dvouvstupové hradlo NAND)). Animace algoritmu na http://poincare.matf.bg.ac.rs/~ezivkovm/nastava/rijndael_animacija.s wf Jiný dobře vysvětlený princip AESu http://www.moserware.com/2009/09/stick-figure-guide-toadvanced.html KPB 2015/16, 7. přednáška 27
Další blokové algoritmy Lucifer, FEAL, LOKI, GOST, CAST, Blowfish, IDEA, RC5, SKIPJACK,TWOFISH, SERPENT, MARS, RC6.. a především AES (Rijndael) Charakteristika některých symetrických blokových šifer Proměnná délka klíče (Blowfish, RC5, CAST ) Použití více Booleovských operací Proměnlivá funkce F (CAST) Proměnlivý počet rund (RC5) Operace s oběma polovinami zprávy (IDEA, Blowfish) S-boxy závislé na klíči (Blowfish) Rotace (místo S-boxů) závislá na klíči (CAST) na datech (RC5) KPB 2015/16, 7. přednáška 28
Kryptografie a počítačová bezpečnost Asymetrická kryptografie KPB 2015/16, 7. přednáška 29
ASK ASK vznikla jako reakce na obtížnou správu klíčů symetrické kryptografie. Jednocestná funkce Jednocestná funkce se zadními vrátky: Předpokládejme, že nějaká funkce f k je spojena s určitým konkrétním subjektem - uživatelem A, f k je jeho veřejný klíč. Informace o zadních vrátkách k je známa pouze subjektu A a je to jeho soukromý klíč. Z vlastností jednocestné funkce se zadními vrátky f k plyne, že z pouhé znalosti f k nelze najít výpočetně schůdnou inverzní funkci f k 1 => ze znalosti veřejného klíče nelze nalézt klíč soukromý => ten, kdo zná pouze veřejný klíč, dokáže zašifrovat libovolnou zprávu, ale nedokáže náhodně vybraný šifrový text sám dešifrovat (analogicky platí pro podepisování). KPB 2015/16, 7. přednáška 30
KPB 2015/16, 7. přednáška 31
KPB 2015/16, 7. přednáška 32
ASK - aplikace Algoritmy ASK se používají pro zajištění důvěrnosti, integrity, autenticity a nepopiratelnosti. RSA šifrování, digitální podpis, distribuce klíčů, Diffie-Hellman - distribuce klíčů (dohoda na klíči), DSS - digitální podpis, ElGamal - šifrování, digitální podpis, distribuce klíčů, ECC (Elliptic curve cryptography) - šifrování, digitální podpis, distribuce klíčů. KPB 2015/16, 7. přednáška 33
ASK Výhody Nepředává se tajemství Komunikující entity si nemusí předávat žádné tajemství, nemusí se předem znát, nemusí spolu předem komunikovat, Správa klíčů jednodušší než v SK, ale ne jednoduchá (viz PKI později) Není podstatná délka klíče (v jistém smyslu je irelevantní) Jestliže je veřejný klíč publikován, není vlastně podstatná délka soukromého klíče, ten však musí být vlastníkem bezpečně uschován a chráněn. KPB 2015/16, 7. přednáška 34