Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 1
Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry; základní symetrické šifrovací algoritmy; algoritmus DES; algoritmus AES; odolnost soudobých symetrických šifrovacích algoritmů; základní asymetrické šifrovací algoritmy; algoritmus RSA; algoritmy na bázi eliptických křivek; odolnost soudobých asymetrických šifrovacích algoritmů; 2
Literatura Menezes A.J. a kol.: Handbook of Applied Cryptography,CRC Press, 1997 (dostupné i na Internetu) Doporučená Přibyl J.: Informační bezpečnost a utajování zpráv,čvut, 2004 Přibyl J., Kodl J.: Ochrana dat v informatice, ČVUT, 1998 3
Asymetrické šifry Diffie - Hellman - algoritmus pro výměnu klíče (session key) - založen na obtížnosti výpočtu diskrétních logaritmů. ECC (Eliptic Curve Cryptography) - algoritmus založen na principu eliptických křivek - použití pro šifrování i výměnu klíčů - podstatně kratší klíče (5-10 x) oproti např. RSA RSA - autoři Rivest, Shamir, Adleman použití pro šifrování i výměnu klíčů ElGamal algoritmus založen na obtížnosti výpočtu diskrétních logaritmů použití pro šifrování i výměnu klíčů DSS (Digital Signature standard) FIPS PUB 186 - použití výhradně pro digitální podpis (spolu s jednocestným algoritmem SHA) - založen na obtížnosti výpočtu diskrétních logaritmů (obdobně jako Diffie - Hellman a ElGamal) - neprolomitelná délka klíče 1024 b 4
Asymetrické šifry oblasti využití Kryptosystémy s veřejným klíčem lze obecně s výhodou využít ve třech základních směrech: šifrování dat; autentizace elektronický podpis; ochrana přenášených tajných klíčů pro symetrické šifry. Některé z algoritmů umožňují aplikaci ve všech uvedených směrech, jiné jsou speciálně navrženy buď pro jednu nebo dvě z těchto aplikací. 5
Diffie-Hellman systém systém dohodnutí klíče Systém uveden v článku New directions in cryptography v IEEE Transactions on IT 1976 Popis základní metody založena na složitosti výpočtu diskrétního logaritmu Uživatelé se dohodnou na parametrech p a g; p je velké prvočíslo a g je prvočíslo a leží v intervalu 1,(p-1). Tyto parametry mohou být zveřejněny. Dále se dohodnou na jednosměrné funkci k x = f(x) = g x mod(p) 6
Uživatel A: Diffie-Hellman systém dohodnutí klíče zvolí si (vygeneruje) tajné číslo a vypočte k a = g a mod(p) odešle k a uživateli B Uživatel B: zvolí si (vygeneruje) tajné číslo b vypočte k b = g b mod(p) odešle k b uživateli A Nyní (k a ) b = (k b ) a = g ab mod(p) = g ba mod(p) = K; kde K je dohodnutý klíč 7
Diffie-Hellman systém dohodnutí klíče Klíč K může být použit jako klíč pro symetrickou šifru, nebo se z něj klíč pro symetrickou šifru odvodí. Klíče k a a k b jsou veřejné klíče důležitý bezpečnostní aspekt = zajištění autentičnosti těchto klíčů Klasický D H systém se používá pro distribuci klíčů. Existuje řada modifikací, které zvyšují bezpečnost systému, umožňují použití systému pro šifrování resp. elektronický podpis 8
Algoritmus RSA Základ algoritmu RSA je postaven na zveřejnění modulo m = p * q, ale jeho dělitele p a q budeme držet v tajnosti. Veřejný klíč je dvojice celých kladných čísel (e,n) a privátní klíč je (d). Zašifrování datové zprávy = rozdělení na bloky o velikosti 0 až n-1. K zašifrování využijeme operaci umocňování, tj.: y = x e (mod n) kde e je šifrovací klíč. Při dešifrování se využije stejného matematického vztahu x = y d (mod n) kde d je privátní tajný klíč. Nutno nalézt takovou hodnotu d, která ve vztahu k e zajistí, že dešifrování je inverzní funkcí k šifrování. To znamená, že x = y d = x de (mod n) pro všechny hodnoty x 9
Algoritmy na bázi eliptických křivek pojem eliptická křivka (Elliptic Curve) = množina bodů (x,y) splňující rovnici F (x,y)=0; pro prvočíselná tělesa má tvar: y 2 x 3 + ax + b (mod p), p prvočíslo pro binární tělesa má tvar: y 2 + xy x 3 + ax 2 + b (mod 2 m ), EC kryptosystémy = varianty známých systémů s veřejným klíčem (např. DSA => ECDSA, D-H => ECC DH) místo s čísly se pracuje s body eliptické křivky 10
Algoritmy na bázi eliptických křivek definují se základní operace s body křivky, kdy množina bodů křivky tvoří grupu; operace s body křivky jsou definované jako operace s čísly výhoda - kratší klíče (cca řádově) než u standardních systémů při ekvivalentní úrovni bezpečnosti bezpečnost těchto systémů závisí na obtížnosti řešitelnosti úlohy diskrétního logaritmu v grupách vytvořených na eliptických křivkách základní problémy při nasazení = vyřešení otázek výpočetního charakteru algoritmy pro sčítání bodů, násobení bodů křivky apod. 11
Algoritmy na bázi eliptických křivek Operace sčítání bodů eliptické křivky 12
Algoritmy na bázi eliptických křivek Diffie Hellman kryptosystém dohodnutý klíč ECC -systém na bázi eliptických křivek dohodnutý klíč 13
El Gamal algoritmus Stejný princip jako systém D-H využití pro digitální podpis i pro šifrování bezpečnost spočívá ve složitosti výpočtu diskrétního logaritmu v konečném tělese Vygenerování páru klíčů zvolí se prvočíslo p a dvě náhodná čísla g a x kde 1< x< p 1 vypočte se y = g x (mod p) veřejný klíč - čísla p, g, y tajný klíč - číslo x 14
El Gamal algoritmus Šifrování zprávy zašifrování zprávy zvolí se náhodné číslo k tak, aby nemělo žádné společné součinitele s (p 1) vypočte se: a = g k (mod p) b = y k M (mod p) pár a,b tvoří šifrový text ( pozn. ŠT = 2 OT) dešifrování zprávy vypočte se M = b / a x neboť (mod p) ( a x = g kx (mod p) a b / a x y k M / a x g kx M / g kx M (mod p) ) 15
El Gamal algoritmus Digitální podpis zvolí se náhodné číslo k tak, aby nemělo žádné společné součinitele s (p 1) vypočte se: a = g k (mod p) b takové, že M = (xa( + kb) (mod p - 1) podpis představuje pár a a b; náhodné číslo k musí být tajné ověření podpisu = ověření platnosti y a a b (mod p) = g M (mod p) Každý podpis nebo šifrování vyžaduje nové k 16
Algoritmus DSA (Digital Signature Algorithm) 1991 publikována U.S. norma DSS (Digital Signature Standard) DSA varianta El Gamal schématu pro podpisy Vygenerování páru klíčů zvolí se p = L-bitové prvočíslo kdy p = qz + 1 a L = 1024 zvolí se q 160-bitový prvočinitel čísla p - 1 vypočte se g kde g = h (p-1)/q (mod p) > 1 a 1 < h < p-1 vybere se x libovolné číslo 0 < x < q vypočte se y = g x (mod p) parametry p, q, g jsou veřejné a mohou být společné pro celý systém, y = veřejný klíč x = tajný (privátní) klíč 17
Algoritmus DSA (Digital Signature Algorithm) Digitáln lní podpis vygenerování náhodného čísla k kde 1 < k < q vypočte se r = (g k (mod p)) mod q vypočte se vzorek zprávy pomocí hash funkce SHA-1 vypočte se s = (k - 1 (h h + xr)) mod q parametry r,s tvoří podpis zprávy M h = SHA-1(M) ověření podpisu vypočte se w = s -1 (mod q) u 1 = (h * w) (mod q) u 2 = (r * w) (mod q) v = ((g u1 * y u2 )(mod p)) (mod q) platí li v = r podpis je ověřen 18
Odolnost kryptosystémů s veřejným klíčem Bezpečnost soudobých asymetrických kryptosystémů se opírá o výpočetní složitost matematických metod: RSA - faktorizace velkých čísel DSA výpočet diskrétního logaritmu obdobně u kryptosystémů na bázi eliptických křivek výpočetní složitost se odvíjí od základního schématu (místo práce s čísly se pracuje s body křivky) Největší rizika chyby a zjednodušení při implementaci matematického modelu do systému; nedostatečná aktualizace zvolených parametrů algoritmu (úprava požadované délky klíčů v závislosti na rozvoji analytických metod) využití kvantových počítačů je v současnosti stále v teoretické rovině. 19
Šifrování zprávy vs. elektronický podpis 1 Šifrování zprávy Šifrování a podepsání zprávy Příklad rozdílu mezi procesem podpisu a šifrování 2 (zdroj: Public Key Cryptography Author:Marcus Erber Date:November 2004) Podepsání zprávy 20