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íčů.
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:
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.
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 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 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ů.
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).
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.
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 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 šifruje opakovaně inicializační vektor čímž vytváří nové klíče, které jsou XORovány s bloky plaintextu.
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.
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.
Postup pro vytvoření:
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 (Digital Signature Algorithm) je standardizovaným algoritmem pro generování digitálních podpisů. Algoritmus je podobný ElGamal podpisovému algoritmu.
Veřejný klíč je . Privátní klíč je .
Kryptografické protokoly jsou komunikační protokoly, které zajišťují důvěrnost a integritu zpráv.
Příkladem kryptografických protokolů jsou:
Veřejné klíče je možné spravovat dvěma hlavními způsoby:
Nejběžnější infrastruktury veřejných klíčů jsou web of trust (PGP) a X.509.
V případě certifikační autority:
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.
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.
Wikipedia
DevelX - Martin Jurča
stav - 100 %