Kryptografie a počítačová Úvod KPB 2018/19, 1. přednáška 1
Informace k předmětu Kontakt Kancelář EA439 eliska.ochodkova@vsb.cz Všechny důležité informace na www.cs.vsb.cz/ochodkova Organizace výuky sledujte web a emaily na své školní adrese KPB 2018/19, 1. přednáška 2
Informace k předmětu Požadavky na zápočet: Povinná (bodovaná) docházka na cvičení Pro obor IVT a MOT (a závěrečný ročník studia) min 7 bodů, max 9 bodů Pro obor IKB (a první ročník studia) min 9 bodů, max 12 bodů Splnění 3 dílčích úkolů Dodržení termínu odevzdání!!! Zkouška 55 bodů max, 20 min Písemná + ústní část (tj. diskuse k písemné části) KPB 2018/19, 1. přednáška 3
O čem to bude? O čem to bude? Výlet do historie Symetrická kryptografie Asymetrická kryptografie Kryptografické hashovací funkce Kryptoanalýza To vše v kontextu bezpečnosti ICT KPB 2018/19, 1. přednáška 4
Literatura Skripta předmětu (k matematickým základům) Stallings, W.: Cryptography and Network Security, Prentice Hall Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone: Handbook of Applied Cryptography, CRC Press a více na webu KPB 2018/19, 1. přednáška 5
Kryptografie a počítačová bezpečnost Úvod do kryptografie KPB 2018/19, 1. přednáška 6
Proč kryptografie? Kryptografie se zabývá vývojem algoritmů, které mohou být použity k: utajení zpráv (jejich obsahu, ne existence), autentizaci - zjistitelnost původu zprávy, bezpečná identifikace subjektu, který informaci vytvořil, přijímá ji, který s ní operuje, kontrole integrity - informaci může modifikovat / generovat jen autorizovaný subjekt, k zajištění nepopiratelnosti příjmu, doručení, původu citlivé informace. KPB 2018/19, 1. přednáška 7
Kryptologie Kryptologie je věda o utajování informace, stojící na pomezí matematiky a informatiky, s větším přesahem do matematiky, zejména v oblasti teorie čísel a algebry. Součástí kryptologie je: Kryptografie je umění a věda o převedení informace do podoby, ve které je obsah informace skrytý, utajený (a to i tehdy, pokud je tato nečitelná informace prozrazena třetí straně). Je to tedy věda o šifrování dat za pomoci matematických metod (ale nejen o tomto). Kryptoanalýza je umění a věda o prolomení skryté informace (šifry nebo klíče), zabývá se odolností kryptografického systému. Proč? Kryptografie je základem mnoha technologických řešení problémů počítačové bezpečnosti, tedy kryptografických bezpečnostních mechanismů. KPB 2018/19, 1. přednáška 8
Kryptografický systém (1) Kryptografický systém je pětice {M, C, K, E, D}, kde: symbolem M označujeme tzv. prostor otevřených textů, což je konečná množina prvků, kterým se říká otevřený (srozumitelný) text (zpráva) (angl. plaintext), symbolem C označujeme tzv. prostor šifrových textů. C je konečná množina prvků nazývaných šifrový text (ciphertext), K je konečná množina možných klíčů, tzv. prostor klíčů, jejímž prvkem je klíč (key), KPB 2018/19, 1. přednáška 9
Kryptografický systém (2) E je množina šifrovacích funkcí (algoritmů, pravidel). Šifrováním (encryption, enciphering) nazýváme proces, kterým z otevřeného textu získáme jeho šifrový text, D je množina dešifrovacích funkcí (algoritmů, pravidel). Dešifrováním (decryption, deciphering) nazýváme proces, kterým z šifrového textu získáme otevřený text. KPB 2018/19, 1. přednáška 10
Abeceda Přípustná abeceda je konečná množina prvků, ze kterých se skládá otevřený i šifrový text. Přípustná abeceda se může pro otevřený text a šifrový text lišit: otevřená abeceda (OA), šifrová abeceda (ŠA), např. anglická abeceda bez mezery (AAbM), anglická abeceda s mezerou, {0,1},... KPB 2018/19, 1. přednáška 11
Kryptografický systém Platí: Pro k K existuje šifrovací algoritmus (funkce) e k E a jemu odpovídající dešifrovací alg. d k D. Každá e k :m c a d k :c m, k K jsou funkce, pro které platí tzv. correctness condition d k (e k (m)) = m, pro m M, k K. Klíč pro šifrování k nemusí být totožný s klíčem pro dešifrování k, pak hovoříme o dvojici klíčů (k k'). KPB 2018/19, 1. přednáška 12
KPB 2018/19, 1. přednáška 13
Účastníci (role) Alice a Bob jsou legitimní (good guys) subjekty (osoby, procesy, počítače, ), označení poprvé použil Ron Rivest 1978 Eve, Mallory, Oscar, Trudy nelegitimní subjekt (bad guy), obecně útočník Odesílatel (sender) je entita (někdo nebo něco), která legitimně zasílá zprávu (budeme je označovat Alice, A). Příjemce (reciever) je entita (někdo nebo něco), která zprávu legitimně přijímá (budeme je označovat Bob, B), Útočník (intruder, eavesdropper, adversary, opponent atd.) je entita, která není ani odesílatelem ani příjemcem zprávy, a která se pokouší prorazit bezpečnostní mechanismus zabezpečující komunikaci mezi A a B (ozn. E, M apod.). KPB 2018/19, 1. přednáška 14
Kryptografické algoritmy Symetrická kryptografie (kryptografie s tajným klíčem (secret key)) používá pro šifrování a dešifrování tentýž klíč, k = k'. Symetrické (kryptografické) algoritmy se dělí na: blokové šifry (algoritmy), které operují nad n-bitovým blokem dat (otevřeným textem), typicky n 128b, proudové šifry (algoritmy), kdy se otevřený text zpracovává bit po bitu nebo bajt po bajtu. KPB 2018/19, 1. přednáška 15
Kryptografické algoritmy Asymetrická kryptografie (kryptografie s veřejným klíčem) používá dvojici klíčů k k', tzv. soukromý klíč (private key) a veřejný klíč (public key). Každý odesílatel i příjemce vlastní tuto dvojicí klíčů a její použití se liší podle toho, zda chceme zprávu šifrovat nebo podepisovat. Dále Algoritmy pro digitální podpis Kryptografické hashovací funkce Šifrovací, podepisovací algortimy a hashovací funkce jsou základem bezpečnostních protokolů KPB 2018/19, 1. přednáška 16
Proprietární algoritmy V minulosti se používaly tzv. proprietární algoritmy, kdy se utajoval princip algoritmu. Nevýhody: každá skupina, která si chce předávat informace, musí mít svůj vlastní algoritmus, prozrazení algoritmu může zkompromitovat všechny zprávy jím zašifrované, jelikož algoritmy musejí zůstat tajné, není možné, aby mezinárodní kryptologická komunita ověřila jejich odolnost proti kryptoanalýze a utajení rovněž neumožní proces standardizace takovýchto algoritmů. Nyní používané algoritmy jsou veřejně známé! KPB 2018/19, 1. přednáška 17
Kerckhoffsův princip R. 1883 formuloval Auguste Kerckhoffs první principy kryptografického inženýrství: Bezpečnost šifrovacího systému nesmí záviset na utajení algoritmu, ale na utajení klíče Moderní kryptografie zpravidla používá algoritmy závislé na klíči (tzv. Kerckhoffsův princip). Tj. kryptografické algoritmy jsou veřejně publikovány a jejich znalost nesmí kryptoanalytikovi pomoci ve snaze překonat utajení - to musí být plně závislé na klíči (který kryptoanalytik nezná). Bezpečnost jakéhokoliv šifrovacího algoritmu (používajícího klíč) spočívá v počtu možných klíčů (u hašovacích funkcí nikoliv, jiný princip). KPB 2018/19, 1. přednáška 18
Kryptoanalýza Cílem kryptoanalýzy je útok na kryptografický systém (KS), cílem je odkrytí zprávy m bez znalosti šifrovacího klíče k (a tím i jeho odkrytí). Útoky kryptoanalytické, založené zpravidla na matematické analýze šifry, se snaží odhalit její slabosti a využít jich; říkáme jim útoky proti algoritmům - uvedeme později. Útoky jiné povahy, sahající od pokusů využít nedostatků v implementaci (hacking/cracking) až po použití násilí proti příslušným osobám; v úvahu připadají za běžného použití zejména útoky proti protokolům a útoky proti implementacím. Nejsou to útoky kryptoanalytické. KPB 2018/19, 1. přednáška 19
Jednoduchý kryptografický systém Šifrování c i = m i k i (bit po bitu) Dešifrování m i = c i k i Požadavky na k? KPB 2018/19, 1. přednáška 20
Útok hrubou silou Brute Force Attack (útok hrubou silou, exhaustive search) je útok, kdy útočník postupně vyzkouší všechny možné klíče. Zkouší, zda při jejich aplikaci na známý šifrový text C nedostaneme smysluplnou zprávu M (i v případě, že známe k tomuto C i původní M, čekáme na klíč K, který vygeneruje příslušnou M). Důležitá je velikost klíče, a tedy velikost prostoru klíčů. Např. algoritmus DES používal klíč velikosti 56 bitů, všech možných klíčů je tedy jen 2 56. Každý kryptografický systém je zlomitelný tímto útokem, ale za jak dlouho? To je jen otázka peněz (útok je zpravidla distribuovaný) a času (doba jeho trvání většinou závisí právě na délce použitého klíče). Se zvětšováním délky klíče roste časová náročnost útoku exponenciálně a rychle překračuje fyzikálně možné meze. Brute-force attack se tedy nejčastěji používá proti algoritmům se slabým (krátkým) klíčem, jako je / byl např. DES. KPB 2018/19, 1. přednáška 21
Kryptoanalýza KPB 2018/19, 1. přednáška 22
Kryptografie a počítačová bezpečnost Historická kryptografie KPB 2018/19, 1. přednáška 23
Základní kryptogr. principy V minulosti se uplatňovaly dva základní principy konstrukce šifrovacích algoritmů (které používaly sdílený tajný klíč): Substituce - nahrazení znaků otevřeného textu jinými znaky. Transpozice (permutace) - nemění znaky otevřeného textu, ale mění jejich pořadí. V současnosti se čistě substituční nebo permutační algoritmy nepoužívají. Používají se algoritmy (symetrické), které kombinují obě techniky, říká se jim složené šifry (product ciphers). KPB 2018/19, 1. přednáška 24
Kdy vznikla kryptografie? (1) Egypt, Mezopotámie, Hebrejci Bible (Starý zákon) obsahuje úseky šifrované hebrejskou šifrou atbaš (500 př.n.l.) první znak alef se zamění za poslední tav, druhé bet se zamění za poslední předposlední šin Viz http://cs.wikipedia.org/wiki/hebrejsk%c3%a1 abeceda Řekové 500 let př.n.l. Scytale KPB 2018/19, 1. přednáška 25
Kdy vznikla kryptografie? (2) Caesar (100-44 př.n.l.) C = L FDPH L VDZ L FRQTXHUHG M = I CAME I SAW I CONQUERED Posun v abecedě o 3 znaky: M = ABCDEFGHIJKLMNOPQRSTUVWXYZ C = DEFGHIJKLMNOPQRSTUVWXYZABC KPB 2018/19, 1. přednáška
Monoalfabetické substituční algoritmy Shift Cipher (zobecnění Caesarovy šifry) Abeceda: (AAbM) anglická bez mezery A =0,, Z =25 M=C=K=Z 26 (Z 26 je množina celých čísel modulo 26) zpráva m se šifruje po blocích (délka bloku je 1 znak) klíčem k je n (=1) znaků, k {0, 1,, 25}, e k (m)=(m+k) mod 26, d k (c)=(c-k) mod 26, 26 možných klíčů (resp. 25, protože posun o 0 pozic nemá význam) Caesarova šifra je Shift šifra s k=3 KPB 2018/19, 1. přednáška 27
Monoalfabetická substituce Obecný algoritmus obecná permutace 26 znaků, např. OA: ABCDEFGHIJKLMNOPQRSTUVWXYZ ŠA: DKVQFIBJWPESCXHTMYAUOLRGZN Př.: M = IFWEW ISHTO REPLA CELET TERS C = WIRFR WAJUH YFTSD VFSFU UFYA Klíčů je 26! 4 x 10 26 KPB 2018/19, 1. přednáška 28
Monoalfabetická substituce Další modifikace abeceda je určená klíčem (a mechanismem doplnění zbývajících znaků abecedy): K = JULIUSCAESAR M = ABCDEFGHIJKLMNOPQRSTUVWXYZ C = JULISCAERTVWXYZBDFGHKMNOPQ KPB 2018/19, 1. přednáška 29