Použití blokových symetrických algoritmů, zajištění důvěrnosti a integrity, módy činnosti. Použití základních symetrických algoritmů. Použití hašovacích funkcí, MAC. Hybridní kryptosystémy.
Symetrické blokové algoritmy používají stejný klíč pro šifrování i dešifrování sdílený zúčastněnými stranami. Data jsou zpracovávána po blocích dané délky, pokud je dat méně, je nutné doplnit je paddingem.
Problém symetrických algoritmů je distribuce klíče nebo společné generování všemi stranami.
Pro zajištění určité úrovně bezpečnosti stačí kratší klíče než u asymetrických algoritmů (včetně eliptických křivek).
Symetrické algoritmy jsou méně náročné na zdroje než asymetrické algoritmy (lepší výkon).
Důvěrnost dat znamená, že k datům v otevřené podobě mají přístup pouze entity k tomu autorizované.
Důvěrnost je zajištěna šifrováním dat. Klíč k dešifrování mají právě ti, kdo jsou autorizovaní k přístupu.
Integrita dat znamená, že data nebyla neoprávněně měněna.
Integritu dat je možné zajistit použitím MAC, hashovacích funkcí, apod.
Padding je rozšíření dat na požadovanou délku bloku.
Např. první bit 1, zbývající 0.
Jsou definované různé standardy.
Přidání nulových bytů, poslední byte má hodnotu tolik, kolik bylo přidáno bytů.
Hodnota každého bytu je tolik, kolik bylo přidáno bytů.
První přidaný byte 80, další 00.
Standard pro čipové karty.
Všechny byty 00. Může být nejasné, které byty jsou součástí původní zprávy a které byly přidány.
Blok bitů používaný některými módy pro randomizaci šifrování – vytvoření různých ciphertextů pro stejný plaintext a klíč.
IV nemusí být tajný, ale ve většině případů nesmí být stejný vektor použit opakovaně s jedním klíčem, protože to často vede k úniku informací. Např. opakované použití klíče a IV kompletně rozbije OFB a CTR módy.
Zpráva je rozdělena na bloky a každý blok je zpracován samostatně.
Nevýhodou je, že identický blok plaintextu je vždy šifrován do identického bloku ciphertextu.
Doporučené nepoužívat.
Každý blok plaintextu je před šifrováním XORován s předchozím blokem ciphertextu. První blok plaintextu je XORován s inicializačním vektorem. Každý blok tak závisí na všech předešlých blocích.
Šifrování nemůže být paralelizováno, dešifrování ano.
1bitová chyba v bloku plaintextu ovlivní všechny další bloky ciphertextu.
1bitová chyba v bloku ciphertextu zničí aktuální blok plaintextu a v dalším bloku plaintextu je hodnota bitu na tomto místě obrácena.
Podobné jako CBC mód, ale změny se propagují nekonečně při šifrování i dešifrování (rozdíl proti CBC).
Transformuje blokovou šifru na proudovou.
CFB se synchronizuje po blocích – při ztrátě dat je aktuální a následující blok zahozen, dále je možné dešifrovat normálně (stejné jako CBC).
CFB je možné rozšířit, aby synchronizoval po jednotlivých bytech, tedy maximálně jeden blok dat je ztracen.
Šifrování nemůže být paralelizováno, dešifrování ano.
Stejně jako u OFB a CTR se vždy používá pouze operace šifrování a není potřeba používat padding.
Transformuje blokovou šifru na proudovou.
1bitová chyba v ciphertextu vede k přehození bitů na stejném místě v plaintextu (a obráceně).
Operace šifrování a dešifrování jsou stejné.
OFB opakovaně šifruje IV a ten XORuje s plaintextem (ciphertextem) pro šifrování (dešifrování).
Každý výstup závisí na všech předchozích blocích, takže tyto operace není možné paralelizovat.
Plaintext a ciphertext jsou použity pouze pro XOR, tedy šifrovací operace mohou být počítány předem, finální XOR je pak možné paralelizovat.
Transformuje blokovou šifru na proudovou.
V podstatě stejný mód jako OFB, ale šifruje čítač místo IV.
Čítač může být cokoliv, co produkuje sekvenci dat bez opakování (s dostatečně dlouhou periodou).
Vhodné pro paralelizaci.
1bitová chyba v ciphertextu vede k přehození bitů na stejném místě v plaintextu (a obráceně).
Každá strana má vlastní klíčový pár, který se skládá z veřejného a soukromého klíče. Asymetrická kryptografie se typicky používá pro šifrování a digitální podepisování dat.
Problém správy klíčů
Použití v uzavřených systémech; Online-Banking …
Příprava zprávy před šifrováním nebo podepisováním s použitím schémat jako PKCS#1 nebo OAEP a dalších.
Není to padding ve smyslu prodloužení zprávy na určitou délku. Tento přístup není dostatečně bezpečný a už se nepoužívá.
Padding zprávu upraví, aby nebylo možné jednoduše napadnout matematickou strukturu, na které je algoritmus založen.
Cílem je udělat rozbití paddingu tak těžké jako řešení problému, na kterém je algoritmus založen.
Nejrozšířenějším formátem je CMS (Cryptographic message syntax). Jedná se o ASN.1 formát. Pro odesílání zpráv mejlem je potom používaný formát S/MIME, který buď ke zprávě připojí digitální podpis ve formátu PKCS#7 nebo vezme celou zprávu ve formátu CMS a tu vloží do mejlu zakódovanou v Base64.
RSA (šifrování),DSA (šifrování, podepisování), elgamal(oboje) (viz otázka 2)
Běžně používané algoritmy jsou:
Název | Délka výstupu | Prolomena? |
---|---|---|
MD5 | 128 bitů | Ano |
SHA-1 | 160 bitů | Teoretický útok |
SHA-2 | 224, 256, 384, 512 bitů | Ne |
SHA-3 | 224, 256, 384, 512 bitů | Ne |
a další…
Nový SHA-3 standard vzešel z nedávno skončené soutěže vypsané NISTem.
Vítězem se stal algoritmus Keccak, ostatní finalisti: BLAKE, Grøstl, JH a Skein.
Informace, která zajišťuje integritu a autenticitu zprávy.
Integrita – zpráva nebyla změněna neoprávněně.
Autenticita – ověření původu zprávy.
K vytvoření i ověření MAC je používán tajný klíč sdílený mezi oběma stranami.
MAC může být založen na kryptografických hashovacích funkcích (např. HMAC) nebo na blokových šifrách (např. CBC-MAC nebo CMAC).
MAC nezajišťuje nepopíratelnost, protože kdokoliv, kdo zná tajný klíč, může vytvořit MAC.
Kombinují výhody symetrické a asymetrické kryptografie.
Obsah zprávy je šifrován symetrickým algoritmem. Sdílený klíč je pro přenos šifrovaný asymetrickým algoritmem.
Například SSL/TLS nebo SSH.
Ondra Mokoš
Malé úpravy: Marcel Poul
Diskuze
Je tu malý rozpor u MAC. Na začátku se tvrdí „MAC … s použitím symetrické šifry zajišťuje pouze integritu, ne autenticitu…“ a v obecné definici MAC dole pak „MAC = Informace, která zajišťuje integritu a autenticitu zprávy“. Wiki říká, že MAC umí i autenticitu, ale nevím, jestli to je relevantní zdroj…
MAC urcite zarucuje aj autenticitu, to je jej prednostny ciel, vid napr Handbook of Applied Cryptography. Integritu dokaze zarucit aj obycajna hash funkcia.