===== 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 k
w (plaintext) = c 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~~