===== Zadání ===== 3. Kryptografická primitiva a protokoly pro bezpečnost, důvěrnost, podpisy, autentizaci a anonymitu ===== Vypracování ===== ==== Základní pojmy ==== Kryptologie = Kryptografie + Kryptoanalýza • Kryptografie - nauka o metodách šifrování; řeší problém zaslání zprávy (plaintext) přes nezabezpečený kanál, který může být odposloucháván. • Kryptoanalýza - metody luštění šifer (zjišťování slabin algoritmů) Kryptografie se využívá k realizaci požadavků spojených s informační bezpečností, zajišťuje: • Důvěrnost dat (confidentality) – též bezpečnost – pouze oprávněné subjekty mohou zjistit obsah utajované zprávy. • Integrita (celistvost) dat (data integrity) – zamezení neoprávněné modifikaci dat (smazání, modifikace, substituce), případně je možné tuto změnu zjistit. • Autentizace (původu) dat – ověření, že data pocházejí od daného subjektu • Autenticita dat (integrita a ověření původu) • Autentizace (authentization) – proces ověření identity (1:1). Není možné, aby Eva vystupovala během komunikace s Bobem pod jinou identitou, aniž by Bob tento fakt odhalil (rozpoznání určité entity v dané množině entit (1:n)= identifikace). Vs. Autorizace =udělení určitých práv a určení povolených aktivit. • Nepopiratelnost (non-repudiation) – souvisí s autorizací - jedná se o jistotu, že autor dat nemůže své autorství popřít (např. bankovní transakci). • Anonymita (anonymity) – Alice nechce, aby Bob věděl kdo mu poslal zprávu. Bezpečnost šifrovacího systém nesmí záviset na utajení algoritmu, ale pouze na utajení klíče. === Kryptografické systémy: === V současnosti kombinováno: šifrování zpráv pomocí symetrického a dohoda na klíčích pomocí asymetrického šifrování ==Symetrická kryptografie (SK) s tajným klíčem == – Menší výpočetní náročnost, vyšší výpočetní rychlost – Problematické šíření klíče, musí být dvě kopie – Obtížné ověření identity – Pokud n uživatelů komunikuje pomocí SK, potřebují n (n-1)/2 klíčů ==A symetrická kryptografie (AK) s veřejným a soukromým klíčem == – Snadné šíření veřejných (šifrovací) klíčů, soukromý klíč (dešifrovací) jen jedna kopie – Poměrně snadné ověření identity – Alice vyhledá Bobův veřejný klíč, zašifruje odesílanou zprávu pomocí tohoto klíče a pošle kryptotext Bobovi. Bob po přijetí kryptotextu rekonstruuje zaslanou zprávu užitím svého soukromého klíče. – důvěryhodné třetí strany (Trusted Third Parties, TTP). TTP ověří identitu zúčastněného subjektu a pro každý z nich vygeneruje digitální podpis zprávy (certifikát) tvořený v nejjednodušším případě identifikátorem subjektu a jeho veřejným klíčem. Jestliže chce Alice poslat zprávu Bobovi, učiní tak pouze tehdy, pokud se jípodaří úspěšně ověřit Bobův certifikát. – Pokud n uživatelů komunikuje pomocí AK, potřebují 2n klíčů == Jednocestné hašovací funkce (HF) == - Vstupní data libovolné délky jsou transformována do výstupních bloků pevné délky (128, 160, 256, 512 bitů,...) (charakteristika/výtah/hash) – Může být s klíčem i bez klíče – Pomalá, není prostá – Ochrana integrity dat => posíláme data přes nezabezpečenou síť a haš těchto dat přes zabezpečenou síť. – **Jednosměrnost** => pro dané x lze snadno spočítat F(x), ale pro dané y je výpočetně obtížné nalézt x, aby platilo y = F(x) – **Bezkoliznost** : a) slabá: pro dané x nejsme schopni v rozumném čase najít x’(x≠x’) takové, že h(x) = h(x’). b) silná: v rozumném čase nejsme schopni najít libovolná x, x’ taková, že h(x) = h(x’). ==Nejrozšířenější hash algoritmy: == • MAC (Message Authentication Code) - jednocestná funkce s klíčem (heslem) - výstup algoritmu přiložený ke zprávě ověřuje její autenticitu (heslo) a integritu (hash) -tzv. digitální pečetě, alternativa k digitálnímu podpisu • MD5 (Message Digest 5) - autor Ronald Rivest. Výstup 128 b., vstupní bloky 512 b. – pouziva, ale nalezené slabiny • SHA-1 (Secure Hash Algorithm) FIPS PUB180 - výstup 160 b., vstupní bloky 512 b. – dnes se nepouziva • Srovnání funkcionality MD5 a SHA-1: MD5 má neomezenou délku vstupní zprávy (SHA-1 má limit 2**64 - 1 bitů) a výpočetně asi dvakrát rychlejší než SHA-1. • SHA-256 a vyšší, nyní SHA-3 (Keccak) ==== Protokoly pro důvernost ==== === Symetrická kryptografie === == Blokové šifry == - zpráva rozdělena na části (bloky) stejné délky a ty jsou (souběžně) šifrovány za použití stejného klíče DES (Data Encryption Standard) - substituční a transpoziční bloková šifrá, která šifruje zprávy nad abecedou {0, 1}. DES pracuje s bloky délky 64 bitů, jež transformuje na řetězce stejné délky za použití klíče o délce 64 bitů. 3DES - Encrypt-Decrypt-Encrypt Dalšími známými blokovými šifrovači jsou např. AES, IDEA či Blowfish. == Proudové šifry == – šifrují plaintext písmeno po písmenu nebo blok po bloku, každý blok je kódován odlišným klíčem - jednodušší na implementaci, například telekomunikace, rychlejší • Goldwasser probabilistic kryptosystém • AFFINE cryptosystem • VIGENERE • AUTOCLAVE • ONE-TIME PAD (perfekt secret cryptosystem) = Vernamova šifra – pracuje se slovy nad abecedou {0,1}, klíč stějně dlouhý jako plaintext ze stejné abecedy. - jediná dokazatelně absolutně bezpečná šifra. Nevhodná k praktickému použití (problém přenosu klíče) c(cryptotext) = w \oplus k w (plaintext) = c \oplus k == Distribuce klíčů: == Protokol pro distribuci klíčů (Diffie a Hellman): - umožňuje bezpečnou dohodu na klíči za předpokladu, že případný útočník není schopen modifikovat zprávy vyměňované mezi zúčastněnými subjekty. - bezpečnost je založena na neexistenci efektivního algoritmu pro řešení problému diskrétního logaritmu. - Alice a Bob se nějakým způsobem dohodnou na velkém prvočísle p a na přirozeném čísle q < p takovém, že [q]_p je generátorem grupy (Z_p^*,∙). - Alice si náhodně zvolí přirozené číslo 1≤x < p - 1 a pošle Bobovi číslo a = q^x mod p. (hodnota x není veřejná) - Bob si náhodně vybere přirozené číslo 1≤y < p - 1 a pošle Alici číslo b = q^y mod p. (hodnota y není veřejná) - Alice vypočítá b^x mod p a Bob vypočítá a^y mod p, oba subjekty dostanou tutéž hodnotu klíče k=q^xy mod p. === Asymetrická kryptografie === == RSA == - založen na tzv. výpočetí bezpečnosti => neumíme v rozumném čase provádět faktorizaci == Rabin == == ElGamal== => neumíme v rozumném čase vyřešit problém diskrétního logaritmu == McEliece == zatim nebyl prolomený kvantovým algoritmem, nepraktický díky velkému klíči ==== Protokoly pro podpis ==== - základním prostředkem pro zajištění autentizace dat, integrity dat a nepopiratelnosti. - "Elektronický podpis jsou údaje v elektronické podobě, které jsou připojené k datové zprávě nebo jsou s ní logicky spojené a které umožňují ověření totožnosti podepsané osoby ve vztahu k datové zprávě." - Umožňují podepsat digitální zprávu tak, že kdokoliv může podpis ověřit a identifikovat podepisující osobu. Navíc libovolný subjekt je schopen ověřovat podpisy jiných subjektů, ale nezíská tím žádnou informaci o tom, jak by mohl generovat jejich podpisy. - Podoba digitálního podpisu závisí také na podepisované zprávě, v důsledku čehož pro libovolné dvě různé zprávy podepsané týmž subjektem obvykle platí, že jejich podpisy jsou různé. - je k datové zprávě připojen takovým způsobem, že je možné zjistit jakoukoliv následnou změnu. - digitální podpis vytváříme za pomoci soukromého klíče (chráníme důvěrnost), ověřujeme ho za pomoci veřejného klíče (chráníme integritu –> integritu veřejného klíče zajistíme pomocí certifikátu veřejného klíče). - digitální podpis nedává záruku o době vytvoření - nepodepisujeme celý dokument, ale pouze haš ==Pro vytvoření digitálního podpisu se používají == • asymetrické kryptovací algoritmy s veřejným klíčem, nejčastěji RSA ("Rivest-Shamir-Adleman") a DSA ("Digital Signature Algorithm") • bezpečné kryptografické jednocestné algoritmy (Hash functions), nejčastěji MD5 ("Message Digest 5") spolu s RSA a SHA ("Secure Hash Algorithm") spolu s DSA. ==== Autentizace ==== – Může probíhat na základě znalosti (hesla), vlastnictví (kreditní karta, klíč), nebo charakteristických vlastností (biometrické informace – otisky prstů) === 1) Bez použití kryptografie === – CRC (Cyclic Redundancy check) – integrita dat === 2) S použitím kryptografie === – Sdílený tajný sym. Klíč – Získání haše autentizovaným kanálem – Haš s tajným klíčem/MAC (Message Auth. Code = autentizační kódy ) – tzv. digitální pečeť – Digitální podpis (zaručený digitální podpis) {{http://upload.dqd.cz/files/crypto.png}} ===== Předměty ===== * [[https://is.muni.cz/auth/predmet/fi/IV054|IV054 Kódování, kryptografie a kryptografické protokoly]] * [[https://is.muni.cz/auth/predmet/fi/PV079|PV079 Applied Cryptography]] ===== Zdroje ===== * http://www.fi.muni.cz/usr/gruska/crypto12/ ===== Související otázky ===== * [[mgr-szz:in-ins:7-ins]] * [[mgr-szz:in-psk:4-psk]] * [[mgr-szz:in-bit:2-bit]] * [[mgr-szz:in-bit:5-bit]] ~~DISCUSSION~~