Obsah
Zadání
Kryptografie: Použití základních symetrických algoritmů (AES), módy činnosti blokových šifer. Použití základních asymetrických algoritmů (RSA, DSA). Základní kryptografické protokoly. Správa veřejných klíčů, certifikační autority a infrastruktury veřejných klíčů.
Vypracování
Použití základních symetrických algoritmů (AES)
Při symetrických algoritmech se používá ten samý šifrovací klíč na šifrování i dešifrování správy, klíč je tedy zdílený producentem i konzumentem.
Příkladem může být:
- Ceasar (Shift cipher)
- POLYBIOUS
- Playfair (použit ve WWI Britskou armádou)
- Vernamova šifra (zdroj XOR klíč = kryptotext, kryptotext XOR klíč = zdroj) - je perferktní kryptosystém, protože kryptotext neposkytuje žádne informace o zdrojovém textu.
- AES
AES (Advanced Encryption Standard) je bloková šifra, která představuje standard pro zabezpeční symetrickou kryptografií. Jako AES byla zvolená šifra Rijndael.
AES podporuje klíče velikosti 128, 192 a 256 bitů a využívá 128 bitový blok.
Módy činnosti blokových šifer
Bloková šifra používá stejný klíč na zašifrování zdrojového textu libovolné délky po blocích pevné délky. Proudová (stream) šifra používá jiný klíč na každý blok.
Mód činnosti blokové šifry představuje proces šifrování bloků.
Inicializační vektor
Inicializační vektor je bitový blok používaný mnohými módy pro randomizaci šifrování, čím je možné vytvořit různé krytotexty stejného zdrojového textu. Inicializační vektor nemusí být utajený.
Padding
Padding je zarovnání délky bloku šifrovaných dat. Používá se, pokud délka (zbývajících) zdrojových dat je menší, než délka bloku. Nejjednodušší způsob je doplnění nulových bajtů.
ECB (Electronic CodeBook)
Správa je rozdělená na bloky a každý blok je šifrován samostatně a nezávisle na ostatních blocích stejným způsobem (např. zdroj + klíč mod velikost_bloku).
CBC (Cipher Block Chaining)
V tomto módu je každý blok zdrojového textu XORován s kryptotextem předešlého bloku před samotným šifrováním. Hodnota kryptotextu bloku tak závisí na všech předešlých blocích. Pro zajištění unikátnosti šifrované zprávy je nutné použít pro první blok textu inicializační vektor.
PCBC (Propagated Cipher Block Chaining)
Cílem PCBC je propagace i malých změn v kryptotextu do nekonečna, jednak u šiforvání i dešifrování. V PCBC se XORuje plaintext a kryptotext předchádzejícího bloku a výsledek se pak XORuje s plaintextem dalšího bloku před šifrováním (porovnej s CBC). Pokud se ve zprávě šifrované pomocí PCBC prohodí dva bloky kryptotextu, není ovlyvněno dešifrování nasledovných bloků.
CFB (Cipher FeedBack)
CFB je v podstatě CBC „naruby“. Při šifrování se nejdřív zašifruje inicializační vektor a výsledek se XORuje s plaintextem pro vytvoření kryptotextu. Kryptotext je pak použit jako inicializační vektor pro další blok.
Při dešifrování se dešifruje inicializační vektor a výsledek se XORuje s kryptotextem pro získání plaintextu. Kryptotext je pak inicializačním vektorem dešifrování dalšího bloku.
OFB (Output FeedBack)
OFB šifruje opakovaně inicializační vektor čímž vytváří nové klíče, které jsou XORovány s bloky plaintextu.
CTR (Counter)
CTR pracuje jako OFB, ovšem místo inicializačního vektoru se používa generátor sekvence, která se nesmí co nejdelší dobu opakovat, například pseudo-náhodný generátor, nebo inkrementální čítač. Inicializační vektor představuje semínko pro tento generátor sekvence.
Použití základních asymetrických algoritmů (RSA, DSA)
U asymetrické kryptografie se používá pár klíčů: veřejný a privátní. Veřejný klíč je možné použít na zašifrování zprávy tak, aby si ji mohl přečíst jen příjemce - dešifrovat ji privátním klíčem. Privátní klíč je možné použít na digitální podepsání dokumentu (obvykle se podepisuje hash dokumentu). Takový podpis je možné ověřit pomocí veřejného klíče.
Základní myšlenka je faktorizace celých čísel: Pro je výpočetně nemožné najít
a
. Je možné ověřit, jestli je
prvočíslo v polynomiálním čase.
RSA
Postup pro vytvoření:
- zvol libovolná
-bitová prvočísla
,
, přičemž
je (například) z intervalu
- zvol dostatečně veliké
takové, že
mod
Veřejný klíč: (modulus),
Privátní klíč: ,
,
Nechť je správa pro zašifrování. Kryptotext získáme jako
mod
. Správu je možné z kryptotextu získat vztahem
mod
.
Pozn.: Plaintext je nejdříve zakódován do abecedy , pak je rozdělen na bloky velikosti
, přičemž
. Každý blok je pak spracován jako celé číslo v modulo
.
DSA
DSA (Digital Signature Algorithm) je standardizovaným algoritmem pro generování digitálních podpisů. Algoritmus je podobný ElGamal podpisovému algoritmu.
Generování klíče
- zvol kryptografickou hashovací funkci
, například SHA-1 nebo SHA-2
- zvol délku klíče
a
, například 2048 nebo 3072. Doporučené hodnoty pro
jsou (1024, 160), (2048, 224), (2048, 256) a (3072, 256).
musí být menší nebo rovno délce výstupu hashovací funkce.
- zvol
-bitové prvočíslo
.
- zvol
-bitové prvočíslo
(modulus) takové, že
je násobek
- zvol číslo
, jehož stupeň modulo
je
, například
mod
pro volitené
(
). Je nutno zvolit jiné
pokud je výsledek
.
- zvol náhodné
,
mod
Veřejný klíč je . Privátní klíč je
.
Podepisování
- zvol (pro zprávu) náhodné
,
mod
mod
- pokud je
, zvol jiné
mod
- pokud je
, zvol jiné
- podpis je
Ověření
- odmítni podpis pokud není splněno
nebo
mod
mod
mod
mod
mod
- podpis je platný pokud
Základní kryptografické protokoly
Kryptografické protokoly jsou komunikační protokoly, které zajišťují důvěrnost a integritu zpráv.
Příkladem kryptografických protokolů jsou:
- SSH
- HTTPS
- IPsec
- TLS-PSK
Správa veřejných klíčů
Veřejné klíče je možné spravovat dvěma hlavními způsoby:
- adresář typu zlaté stránky: Diffie-Hellman, elektronické formuláře, pokusy jako Global Trust Register
- modely důvěry PGP vs X.509: web of trust vs certifikační autorita (CA), PGP upraveno aby mohlo přijímat X.509 certifikáty, použitý model závisí na prostředí, nikoliv softwaru
Certifikační autority a infrastruktury veřejných klíčů
Nejběžnější infrastruktury veřejných klíčů jsou web of trust (PGP) a X.509.
V případě certifikační autority:
- pomocí CA je možno ověřit platnost certifikátu, který CA vydala (a nerevokovala)
- nikdo kromě CA nemůže vytvořit nebol upravit certifikát vydaný danou CA
X.509 definuje formát pro certifikáty veřejných klíčů, které obsahují daný veřejný klíč a jsou podepsány danou CA. Používá se s S/MIME, IP security, SSL/TLS, SET.
CA může certifikát revokovat pokud se stane neplatným.
Předměty
FI:PA018 Advanced Topics in Information Technology Security (jaro 2010), prof. RNDr. Václav Matyáš, M.Sc., Ph.D.
FI:IV054g Kódování, kryptografie a kryptografické protokoly (podzim 2008), prof. RNDr. Jozef Gruska, DrSc.
Použitá literatura
Wikipedia
Vypracoval
DevelX - Martin Jurča
stav - 100 %
