Asymetrická kryptografie | Základním principem asymetrické kryptografie je existence veřejného a privátního klíčů. Šifruje
se veřejným klíčem a dešifruje se privátním klíčem (ty mezi sebou souvisejí - vždy se generují
oba dva). Z veřejného klíče nelze v rozumné době odvodit privátní klíč.
Analogie asymetrické kryptografie:
● poštovní schránka na klíč: kdokoliv může vložit dopis, pouze vlastník může schránku
otevřít
● královská pečeť: kdokoliv pozná na dokumentu pečeť od krále, ale pouze král může na
dokument otisknout (tato analogie se týče podepisování) |
Asymetrická kryptografie - užití | ● Šifrování
- je skoro vyřešena distribuce klíčů - veřejný klíč může mít kdokoliv, dešifrovat
může pouze vlastník privátního klíče
- pomalé, přibližně 1000x proti symetrickému šifrování -> hybridní šifrování
● Podepisování (digitální podpis, digital signature)
- podepsat může pouze vlastník privátního klíče, ověřit podpis může kdokoliv
- nelze zfalšovat podpis (neodmítnutelnost) - skoro
- lze použít pro autentizaci (přihlašování)
● Výměna klíčů, domlouvání klíčů (key exchange)
- Alice a Bob si mohou domluvit sdílené tajemství na nezabezpečeném kanálu |
Síla zabezpečení (security strength) | Síla zabezpečení je počet operací, které jsou nutné na prolomení kryptografického algoritmu či
systému. Měří se pomocí log2 a hodnota entropie se udává v bitech. |
Matematické problémy | Základem asymetrické kryptografie jsou matematicky obtížné problémy, “jednosměrné” funkce -
v jednom směru je výpočet snadný a rychlý, ale v obráceném směru je výpočet je velice časově
náročný.
Tři základní skupiny:
● rozložení velkého čísla na součin prvočísel - faktorizace (RSA)
● diskrétní logaritmus ( Diffie - Hellman,DSA)
● eliptické křivky EC
Všechny tři případy jsou málo odolné vůči kvantovým počítačům. |
RSA | Základní užití:
● šifrování, obvykle šifrování tajného klíče
● digitální podpisy - integrita, neodmítnutelnost, autentizace
Výhody:
● prověřený, bezpečný algoritmus
● stejná dvojice klíčů lze použít pro šifrování a podepisování |
RSA šifrování | Rozložení velkého čísla na součin prvočísel - faktorizace (RSA).
● z čísla n které vzniklo násobením prvočísel n = p * q je v rozumném čase prakticky nemožné zjistit p a q, zatímco násobení je snadné
● veřejný klíč - dvojice (n,e), e je malé prvočíslo (používá se 3 či 65531),
● privátní klíč - d (odvozený z p, q a e)
Zašifrování: y = xe mod n
Dešifrování: x = yd mod n
čísla n, d, x a y jsou velká čísla > 1024 bitů
Nejvíc času zabere vygenerování prvočísel, aby obě dvě čísla byla náhodná (a aby to byla
opravdu prvočísla). Generování prvočísla může trvat několik vteřin. |
Diskrétní logaritmus | Diffie - Hellman šifrování je šifrování, při kterém probíhá veřejná domluva na společném tajném
klíči. Bezpečnost šifrování se opírá o exponenciální složitost výpočtu diskrétního logaritmu. Používal se v SSH, TLS.
nechť p, q, k, Y jsou přirozená čísla pro která platí
Y=g^k (mod p)
spočítat Y při znalosti p, k, g je snadné,
spočítat k při znalosti p, g, Y je velmi obtížné |
Eliptické křivky - užití | V podstatě dají se použít všude, kde lze použít diskrétní logaritmus, např. k výměně klíčů či u
digitálních podpisů
Výměna klíčů: napr. ECDH
Digitální podpisy: napr. ECDSA |
Dopředná bezpečnost (forward secrecy) | tajné klíče pro komunikaci nebudou kompromitovány ani v případě, že dlouhodobé klíče (tajemství) budou kompromitovány.
U protokolů, které postrádají dopřednou bezpečnost, si útočník při budoucím zjištění soukromého klíče může rozšifrovat všechnu starší komunikaci
Typickou metodou, jak zajistit dopřednou bezpečnost, je používat pro jednotlivé rozhovory
vždy nové jednorázové klíče, které jsou po ukončení rozhovoru zahozeny a nelze je zpětně ze
znalosti dlouhodobých klíčů odvodit. |