VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů KS - 5
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 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ů; elektronický podpis.
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 3 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
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 4 Symetrické šifry DES FEAL (blok 64, klíč 64) IDEA (International Data Encryption Algorithm) - ( blok 64b, klíč 128) - využití např. v systému PGP GOST 28147-89 = algoritmus pro státní orgány SSSR Blowfish (blok 64, klíč 448), Twofish (blok 128, klíč 128) - autor Bruce Schneier SKIPJACK - implementován pouze do formy čipů CLIPPER; CAPSTONE použitých v systému FORTEZZA key escrow system AES (Advanced Encryption Standard) algoritmus "Rijndael" (belgičtí autoři Rijmen a Daemen) - klíče 128, 192 a 256. nová norma (místo DES) RC2 (bloková šifra), RC4(proudová šifra), RC5, RC6 - autor Ronald Rivest - RC4 - použití v SSL
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 5 Evidence šifer ISO 9979 Registr kryptografických algoritmů Norma obsahuje soubor 24 evidovaných šifrových algoritmů. Poslední verze normy je z roku 1999. Evidované algoritmy, např. DES IDEA RC2 RC4 FEAL Skipjack
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 6 Proudové šifry OT i ŠT i h i bit otevřeného textu bit šifrového textu bit hesla klíč OT i ŠTi k Generátor h i ŠT i k Generátor h i OT i hesla hesla šifrování dešifrace Základní model proudové šifry
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 7 Posuvné registry Stav Stav Stav Stav 3 2 1 0 D3 D2 D1 D0 Lineární posuvný zpětnovazební registr (4, 1+D+D 4 ) Výstup
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 8 Posuvné registry Počáteční stav: {0,1,1,0} Výstupní posloupnost = 0,1,1,0,0,1,0,0, s periodou 15
Bloková šifra Bloková šifra je funkce, která zobrazuje n-bitové bloky otevřeného textu na n-bitové bloky šifrového textu. n značí délku bloku (64, 128, 256 bitů) k značí délku klíče (40, 56, 64, 128, 256,..) VŠFS; Aplikovaná informatika; SW systémy 2005/2006 9
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 10 Blokové šifry Bloková šifra funkce s parametrem K,1. K,1 je k-bitový klíč, který nabývá hodnot z podmnožiny K (prostor klíčů) z množiny všech k-bitových vektorů V K. Obecně se předpokládá, že klíče jsou vybírány z náhodných posloupností. Blokový šifra dělí otevřený text na bloky pevné délky, které převádí na stejné bloky šifrového textu, tedy bez jakéhokoliv rozvinutí daného bloku. Bloková šifra musí být invertibilní (nutná podmínka dešifrace). Pro n-bitů otevřeného textu a šifrového textu při daném klíči je šifrový systém prostým zobrazením (bijekcí) definujícím permutaci n-bitových vektorů. Definice: n-bitová bloková šifra je funkce E: V n x K V n taková, že pro každý klíč K є K, E(P, K) je prosté zobrazení V n na V n (funkce šifrování pro K), které zapisujeme jako E K (P). Inverzní zobrazení zapsané jako D K (C), C=E K (P) definuje funkci dešifrace, kdy C je otevřený text a P je šifrový text.
Feistelova šifra Základní operace jednoho cyklu je následující: Otevřený text se dělí na dvě stejné části (L 0, R 0 ) Pro každý cyklus i = 0,1,2,3,4,5,...,n se vypočte L i = R i 1 R i = L i 1 f(r i-1, K i ) kde f je funkce jednoho cyklu (rundy) a K i je část klíče na cyklus Šifrový text je (L n, R n ) VŠFS; Aplikovaná informatika; SW systémy 2005/2006 11
Feistelova šifra Algoritmus lze charakterizovat jako transpozičně substituční šifru. Šifrování Dešifrace O.T. Š.T. Je rozdělen na 18 základních úrovní. Nejdříve je uskutečněna počáteční permutace 64 bitového vstupního slova otevřeného textu. Před výstupem z algoritmu je pak na 18. úrovni provedena inverze počáteční permutace. Zbývajících 16 úrovní je tvořeno opakujícím se cyklem šifrování, Šifrový text Otevřený text VŠFS; Aplikovaná informatika; SW systémy 2005/2006 12
DES Data Encryption Standard DES Šifrovací norma určená pro ochranu citlivých ale neutajovaných dat ve státní správě - 1977 až 2002 Celosvětový základ bankovních, průmyslových aj. standardů. Slabiny: krátký klíč = 56 bitů (64 bitů 8 bitů parity) nalezení slabých klíčů OT=E K (OT) nalezení poloslabých klíčů OT=E K1 (E K2 (OT) algoritmus není odolný proti lineární a diferenciální analýze TripleDES ; klíče K 1, K 2, K 3 (168 bitů)nebo K 1 = K 3, K 2 (112 bitů) cyklus = šifrování, dešifrace, šifrování VŠFS; Aplikovaná informatika; SW systémy 2005/2006 13
DES Algoritmus typu Feistelovy šifry Klíč K i = 48 bitový vektor, jenž se tvoří v generátoru klíčů v závislosti na vstupním 64 bitovém klíči k Postup šifrování v jednom cyklu K i L i - 1 P i 1 g (P i - 1, K i ) L i P i VŠFS; Aplikovaná informatika; SW systémy 2005/2006 14
DES Základní schéma algoritmu = kombinace dvou základních metod šifrování - substituce a permutace VŠFS; Aplikovaná informatika; SW systémy 2005/2006 15
DES Vstup = dvě 32 bitové části 64 bitového bloku. Výstup = dvě 32 bitové části. Pravá vstupní část Pi-1 je beze změny převedena do levé vstupní části Li. Levá vstupní část Li-1 je sečtena modulo 2 s funkční hodnotou funkce g (Pi-1, Ki ), kde Pi-1 je pravá vstupní část a Ki je příslušný průběžný klíč. Výsledek součtu modulo 2 uložen do pravé výstupní části Pi. Funkci g (Pi( Pi-1, Ki ) lze popsat následujícími kroky: Krok 1. Z 32 bitového slova Pi-1 je expanzní funkcí E vytvořen 48 bitový blok E(Pi-1). Krok 2. Blok E(Pi-1) je sečten modulo 2 s průběžným klíčem Ki. Krok 3. Součet E(Pi-1) Ki je rozdělen na 8 skupin po 6 bitech, které tvoří vstup pro funkce Sj (j = 1 8). Výstupem těchto funkcí jsou 4bitové skupiny. Krok 4. 4bitové skupiny jsou složeny do 32bitového slov, které je vstupní hodnotou permutační funkce PF. Výstup této funkce můžeme považovat při zvoleném označení za výstup funkce g (Pi-1, Ki ). VŠFS; Aplikovaná informatika; SW systémy 2005/2006 16
DES Klíč: V každé rundě (cyklu) se bity klíče posunou a upravují. Text: Před 1. rundou se provádí počáteční permutace a po 16. rundě inverzní permutace permutace nemají na bezpečnost algoritmu DES vliv. Slouží k úpravě textů. vstup výstup 64 bit. střadač 64 bit. střadač 56 + 8 bit. klíč 64 64 64 počáteční permutace inverzní permutace permutovaný výběr 1 32 32 32 32 28 28 32 bit. registr 32 bit. registr 32 32 expander 48 48 modulo 2 48 bitů 32 8 bloků substituce 32 bitů permutace PF 32 modulo 2 32 střadač pos. registr pos. registr permutovaný výběr 2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 17
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 18 Módy DES (ECB) Elektronická kódová kniha text se dělí na samostatné bloky, které se šifrují zvlášť. Hlavní slabina = podsunutí jiných bloků testu. (CBC) Zřetězení bloků šifrového textu proces je zahájen zavedením inicializačního vektoru, šifrový text je sečten modulo 2 s další částí otevřeného textu.
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 19 FEAL Šifra vyvinutá v NTT (Japonsko); vycházela z DES a měla odstranit slabiny DES krátký klíč, rychlost. => 64 bitů klíče, 4 rundy (FEAL-4). Úspěšně analyzována útokem s vybraným otevřeným textem. Luštění i následujících modifikací s větší délkou klíče a počtem rund.
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 20 IDEA Algoritmus byl v 1990 připravován jako norma (náhrada DES), byl patentován, překážka v rozšíření. Kvalitní šifra odolává všem typům útoků. Šifrují se 64 bitové bloky textu, klíč má 128 bitů. Text rozdělen na 4 části. Probíhá 8 rund, kdy: klíč rozdělen na 8 částí rotace klíče vlevo o 25 bitů nové dělení klíče na potřebný počet
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 21 GOST Algoritmus GOST 28147-89 64 bitová bloková šifra, 256 bitů klíč, 32 rund Feistelova šifra,. Oproti DES: jednoduchý algoritmus větší počet rund větší délka klíče
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 22 Skipjack Algoritmus Skipjack byl vyvinut NSA pro čipy Clipper a Capstone Skipjack používá 80 bitový klíč pro šifrování 64 bitových bloků dat. Jedná se o nesymetrický Feistelův algoritmus využívající 32 rund. Byl vyvinut pro key-escrow systémy (umožňují třetí straně dešifrování dat)
AES AES - Advanced Encryption Standard od roku 2002 doporučená norma Šifruje blok délky 128 bitů. Využívá klíče 128, 192, 256 bitů. Pracuje s poli 4 x 4. Každá runda sestává ze 4 stavů. 1. Nelineární substituce, kde každý byte je zaměněn za jiný; 2. Transpozice každý řádek pole je cyklicky posunut o stanovený počet kroků; 3. Operace zamíchání pracuje se sloupci pole propojuje 4 byty v každém sloupci s využitím lineární transformace, 4. Operace součtu každý byte je sečten s klíčem pro cyklus; každý klíč pro cyklus je odvozen z šifrového klíčes využitím tabulky klíčů. VŠFS; Aplikovaná informatika; SW systémy 2005/2006 23
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 24 AES Dvojrozměrné schéma
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 25 AES AES je substitučně- permutační algoritmus není typu Feistelovy šifry. Počet rund závisí na délce klíče 10 rund pro délku 128 bitů, 12 pro 192, 14 pro 256. Úspěšné analýzy algoritmu byly provedeny pro menší počet rund 8 při délce klíče 192 a 256 bitů a 7 pro 128 Bezpečnost šifry AES Vláda USA vydala prohlášení, že AES může být použit pro utajované informace, t.zn., že je k dispozici pro veřejnost algoritmus používaný i ve státních orgánech. Není známa žádná zásadní slabina,
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 26 Odolnost blokových šifer Posouzení kryptografického návrhu a technické realizace matematický model - kvalitní algoritmy (útok vedený na snížení řádu klíče, lineární a diferenciální analýza) implementace (chyby v implementaci algoritmu, ochraně klíčů) klíče (nedostatečná ochrana, nekvalitní generování, ) postranní kanály (elmag. vyzařování, časové informace, spotřeba energie, )
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 27 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
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í. VŠFS; Aplikovaná informatika; SW systémy 2005/2006 28
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 29 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)
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 30 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íč
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 31 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
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 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 32
Algoritmus RSA - Příklad Postup výpočtu dešifrovacího klíče d, pro zvolená prvočísla p a q, aby bylo n = 91. Hodnota zvoleného šifrovacího klíče je 29. Jsou zvolena prvočísla p = 7 a q = 13 a odtud dostaneme n = p*q = 7*13 = 91 Generování klíčů Výběr p, q Výpočet n = p * q Výběr celého čísla e Výpočet d Veřejný klíč Tajný klíč p a q jsou prvočísla gcd ( e, Φ(n)) = 1; 1< d < Φ(n) d * e = 1 modulo Φ(n) (e,n) d Nyní je nutné zvolit šifrovací klíč tak, aby byl nesoudělný s Φ(n) = (p 1)(q 1) = 6 x 12 = 72 Zvolili jsme číslo 29. Pomocí Euklidova algoritmu lze dokázat, že toto číslo není dělitelné s 91 nebo 72 a může být použito jako platný šifrovací klíč. 91 = (3) * 29 + 4 29 = (7) * 4 + 1 největší společný dělitel je roven 1 72 = (2) * 29 + 14 29 = (2) * 14 + 1 největší společný dělitel je roven 1 Odpovídající dešifrovací klíč 5 * 29 = 1 (mod 72) (tj. 145 = 144 +1) což znamená, že dešifrovací klíč d je roven 5. VŠFS; Aplikovaná informatika; SW systémy 2005/2006 33
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 34 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
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 35 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.
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 36 Algoritmy na bázi eliptických křivek Operace sčítání bodů eliptické křivky
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 37 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íč
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 38 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
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 39 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) )
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 40 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
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 41 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íč
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 42 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
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 43 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ě.
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 44 Š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