Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-1 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ů; elektronický podpis. 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
Symetrické a asymetrické šifry 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 4
Symetrické a asymetrické šifry Asymetrické šifry 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íčů 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 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 5
Symetrické a asymetrické šifry 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 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 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 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 9
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,..) 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. 11
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 ) 12
Feistelova šifra Šifrování O.T. Dešifrace Š.T. Algoritmus lze charakterizovat jako transpozičně substituční šifru. 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 13
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í 14
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 15
DES Základní schéma algoritmu = kombinace dvou základních metod šifrování - substituce a permutace 16
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 ). 17
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 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. 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. 20
IDEA Algoritmus byl v 1990 připravován jako norma (náhrada DES), 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 21
GOST Algoritmus GOST 28147-89 64 bitová bloková šifra, 256 bitů klíč, 32 rund Feistelova šifra Výhody proti DES: jednoduchý algoritmus větší počet rund větší délka klíče 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) 23
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íčů. 24
AES Dvojrozměrné schéma 25
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 26 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 27 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, )