Obsah
3. Použití kryptografických algoritmů
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.
Vypracování
Použití blokových symetrických algoritmů
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).
Zajištění důvěrnosti a integrity
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.
- MAC (zašifrovaný hash připojený ke zprávě) s použitím symetrické šifry zajišťuje pouze integritu, ne autenticitu či nepopiratelnost
Padding
Padding je rozšíření dat na požadovanou délku bloku.
Padding na úrovni bitů
Např. první bit 1, zbývající 0.
Padding na úrovni bytů
Jsou definované různé standardy.
ANSI X.923
Přidání nulových bytů, poslední byte má hodnotu tolik, kolik bylo přidáno bytů.
PKCS#7
Hodnota každého bytu je tolik, kolik bylo přidáno bytů.
ISO/IEC 7816-4
První přidaný byte 80, další 00.
Standard pro čipové karty.
Zero padding
Všechny byty 00. Může být nejasné, které byty jsou součástí původní zprávy a které byly přidány.
Zdroje
Módy činnosti
Inicializační vektor
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.
ECB (Electronic codebook)
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.
CBC (Cipher-block chaining)
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.
PCBC (Propagating cipher-block chaining)
Podobné jako CBC mód, ale změny se propagují nekonečně při šifrování i dešifrování (rozdíl proti CBC).
CFB (Cipher feedback)
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.
OFB (Output feedback)
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.
CTR (Counter)
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ě).
Zdroje
Použití základních asymetrických algoritmů.
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.
- ISO/IEC 9798-1:2010 Information technology – Security techniques – Entity authentication – Part 1: General
- Part 3:
- Unilateral auth.
- One-pass – signed sequence number or timestamp
- Two-pass – challenge-response (random number)
- Mutual auth.
- Two-pass – signed sequence numbers or timestamps
- Three-pass – challenge-response (random number)
- Two-pass parallel – two unilateral two-pass protocols
Správa klíčů
Problém správy klíčů
- Yellow Pages-like - ne moc časté (key servers PGP)
- PGP vs. X509 (viz jiné otázky)
- Použití X509 v S/MIME, SSL, SET …
- revokace (CRL a OCSP u CA … vs revokace u PGP - každý sám)
PKI
Použití v uzavřených systémech; Online-Banking …
Pading
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.
Šifrování zpráv
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.
Algoritmy
RSA (šifrování),DSA (šifrování, podepisování), elgamal(oboje) (viz otázka 2)
Použití hašovacích funkcí, MAC
Kryptografické hashovací funkce
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.
MAC (Message authentication code)
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.
Hybridní kryptosystémy
Kombinují výhody symetrické a asymetrické kryptografie.
- větší efektivita symetrických algoritmů
- řeší problém bezpečného přenosu/ustavení klíče
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.
Materiály
- Něco je zpracované ve 4. otázce oboru PSK
- FI:PA018 Advanced Topics in Information Technology Security, prof. RNDr. Václav Matyáš, M.Sc., Ph.D.
Vypracoval
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.