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 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í:

  • zvol libovolná s-bitová prvočísla p, q, přičemž s je (například) z intervalu [512, 1024]
  • n = pq, \phi(n) = (p - 1)(q - 1)
  • zvol dostatečně veliké d takové, že gcd(d, \phi(n)) = 1
  • e = d^{-1}(mod \phi(n))

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

  • zvol kryptografickou hashovací funkci H, například SHA-1 nebo SHA-2
  • zvol délku klíče L a N, například 2048 nebo 3072. Doporučené hodnoty pro (L, N) jsou (1024, 160), (2048, 224), (2048, 256) a (3072, 256). N musí být menší nebo rovno délce výstupu hashovací funkce.
  • zvol N-bitové prvočíslo q.
  • zvol L-bitové prvočíslo p (modulus) takové, že p - 1 je násobek q
  • zvol číslo g, jehož stupeň modulo p je q, například g = h^{\frac{p - 1}{q}} mod p pro volitené h (1 < h < p - 1). Je nutno zvolit jiné h pokud je výsledek 1.
  • zvol náhodné x, 0 < x < q
  • y = g^x mod p

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

Podepisování

  • zvol (pro zprávu) náhodné k, 0 < k < q
  • r = (g^k mod p) mod q
  • pokud je r = 0, zvol jiné k
  • s = (k^{-1}(H(m) + x \cdot r)) mod q
  • pokud je s = 0, zvol jiné k
  • podpis je (k, s)

Ověření

  • odmítni podpis pokud není splněno 0 < r < q nebo 0 < s < q
  • w = s^{-1} mod q
  • u_1 = H(m) \cdot w mod q
  • u_2 = r \cdot w mod q
  • v = ((g^{u_1} \cdot y^{u_2}) mod p) mod q
  • podpis je platný pokud v = r

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 %

mgr-szz/in-psk/4-psk.txt · Poslední úprava: 2020/04/12 16:56 (upraveno mimo DokuWiki)
Nahoru
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0