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:

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 n = pq je výpočetně nemožné najít p a q. Je možné ověřit, jestli je n prvočíslo v polynomiálním čase.

RSA

Postup pro vytvoření:

Veřejný klíč: n (modulus), e
Privátní klíč: p, q, d

Nechť w je správa pro zašifrování. Kryptotext získáme jako c = w^e mod n. Správu je možné z kryptotextu získat vztahem w = c^d mod n.

Pozn.: Plaintext je nejdříve zakódován do abecedy \mathbb{Z}_{10}, pak je rozdělen na bloky velikosti i - 1, přičemž 10^{i - 1} < n < 10^i. Každý blok je pak spracován jako celé číslo v modulo n.

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

Veřejný klíč je (p, q, g, y). Privátní klíč je x.

Podepisování

Ověření

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:

Správa veřejných klíčů

Veřejné klíče je možné spravovat dvěma hlavními způsoby:

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:

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 %