350 likes | 650 Views
Kryptografia a pou ž itie kryptografie na zaistenie bezpe č nosti. Doc. Ing. Ladislav Hudec, CSc. 1. Ochrana citlivých informácií. Dôvernosť Citlivá informácia je dostupná iba oprávneným subjektom Integrita
E N D
Kryptografia a použitie kryptografie na zaistenie bezpečnosti Doc. Ing. Ladislav Hudec, CSc. 1
Ochrana citlivých informácií • Dôvernosť • Citlivá informácia je dostupná iba oprávneným subjektom • Integrita • Citlivá informácia je modifikovateľná / generovateľná iba oprávnenými subjektmi a to predpísaným spôsobom • Autentifikácia • Zistiteľnosť pôvodu, bezpečná identifikácia subjektu, ktorý citlivú informáciu vytvoril, ktorý ju prijíma, ktorý s ňou narába • Nepopierateľnosť • Príjmu, doručenia, pôvodu citlivej správy • Elektronický podpis • Všetky uvedené bezpečnostné ciele je možné splniť bezpečnostnými funkciami implementovanými kryptografickými mechanizmami • Spôsob ako udržať bezpečné údaje v nebezpečnom prostredí • Jeden zo základných nástrojov informačnej bezpečnosti • Slabé alebo chybné šifrovanie dáva iba ilúziu ochrany, preto treba vedieť ako môže šifrovanie zlyhať • Použitie počítačov na šifrovanie v 50-tych rokoch znamenalo výrazný prelom do techník šifrovania 2
Kryptografické disciplíny • Kryptografia • Umenie udržať dôvernú správu P utajenú • Kryptoanalýza • Umenie prelomiť šifru E (D), odhalenie utajenej správy P • Kryptológia • Matematika pre kryptografiu a kryptoanalýzu 3
Základné typy kryptografických systémov • Symetrický šifrovací systém • Šifrovací a dešifrovací kľúč je ten istý (kľúč1 = kľúč2) • Šifrovaciemu kľúču sa hovorí tajný kľúč • Asymetrický šifrovací systém • Šifrovací kľúč a dešifrovací kľúč sú rôzne (kľúč1 ≠ kľúč2) • Kľúč1 je verejným kľúčom príjemcu a kľúč2 je privátnym kľúčom príjemcu • Vlastníctvo tajného alebo privátneho kľúča je autentizačný mechanizmus 4
Základné typy šifrátorov • Blokový šifrátor • Naraz zašifruje blok viacerých znakov otvoreného textu, napríklad 8 znakov (šifrátor DES, Data Encryption Standard), 16 znakov (šifrátor AES – Advanced Data Encryption Standard) • Prúdový šifrátor • Naraz zašifruje jeden znak otvoreného textu, prípadne jeden bit • Napríklad prúdový šifrátor RC4 • Blokový šifrátor môže fungovať vo viacerých režimoch (ECB – Electronic Code Book, CBC – CipherBlock Chaining, OFB – Output FeedBack, CFB – Cipher FeedBack) 5
Klasické šifrovacie systémy - Cézarova šifra • Cézarova šifra • Klasická substitučná monoalfabetická šifra • Písmeno otvoreného textu Pi sa nahradzuje (substitučná šifra) písmenom abecedy, ktoré je v abecede o tri miesta ďalej, to jest podľa predpisu ci = Pi + 3 • Všetky písmená otvoreného textu sa nahradia týmto jedným predpisom (monoalfabetická šifra) • Tabuľka náhrady písmena otvoreného textu (veľké písmená) za odpovedajúce písmeno šifrovaného textu (malé písmená) • A B C D E F G H I J K L M N O P Q R S T U V W X Y Z • d e f g h ij k l m n o p q r s t u v w x y z a b c • Príklad • Otvorený text: UTOK ZACNE ZAJTRA RANO • Šifrovaný text: xwrn cdfqi cdmwud udqr • Ak písmená telegrafnej abecedy zakódujeme od 0 (A) po 25 (Z), potom Cézarova šifra je vyjadrená vzťahom ci = (Pi+ 3) mod 26 pre šifrovanie a vzťahom Pi= (ci- 3) mod 26 pre dešifrovanie • Dostatočne dlhý šifrovaný text je možné rozbiť frekvenčnou analýzou (je známy histogram výskytu písmen, napríklad v hovorovej angličtine je výskyt písmen e:14%, t:9,85%, o:7,37%, n:6,74%, a:7,49%) 6
Klasické šifrovacie systémy - polyalfabetická substitučná šifra • Polyalfabetické šifry • Zavedením viacerých šifrovacích abecied sa “vyhladí” histogram výskytu písmen v zašifrovanom texte, čím sa sťaží kryptoanalytikom rozbitie šifry • Bolo by najlepšie, keby histogram bol “plochý” (zo skúsenosti stačí 6 rôznych šifrovacích abecied) • Celkový počet rôznych šifrovacích abecied je 26! • Vigenierova tabuľka • na šifrovanie sa môže použiť až 26 rôznych abecied • Z počtu 26! rôznych možných šifrovacích abecied sa vybralo 26 rôznych abecied, pričom sa získavujú cyklickou rotáciou z predchádzajúcej abecedy (prvá je základná abeceda) • Výber šifrovacej abecedy je daný šifrovacím kľúčom • Písmená kľúča – vrchný riadok, písmená otvoreného textu – ľavý stĺpec • Písmeno šifrovaného textu je prvok matice písmeno kľúča x písmeno textu 7
Klasické šifrovacie systémy - Vigenierova šifra • Príklad • Otvorený text IT WAS THE WORST OF TIMES • Kľúč dickens (na šifrovanie bude použitých 7 rôznych šifrovacích abecied) • Postup – nad písmená otvoreného sa napíše kľúč (aj opakovane) a potom sa hľadá v tabuľke pod písmenom kľúča a písmenom otvoreného textu odpovedajúce písmeno zašifrovaného textu • d i c k e n s d i c k e n s d i c k e n • ITWAS THE WORST OF TIMES • l b y kw gz g h j b w g g i b k w i f • Rozbitie polyalfabetických šifier je založený na tom, že sa stanoví počet šifrovacích abecied a potom sa frekvenčnou analýzou rozbijú monoalfabetické časti šifrovaného textu • Stanovenie počtu šifrovacích abecied • Kasiského metóda • index koincidencie 9
Klasické šifrovacie systémy - Vigenierova šifra • Formálny zápis Vigenierovej šifry pre kľúč k = (k1 , k2, k3,.. kn) • Šifrovanie skupiny n po sebe idúcich znakov otvoreného text E(P1,P2,P3 ,.. Pn ) = (P1+ k1) mod 26, (P2 + k2) mod 26, (P3 + k3) mod 26,.. (Pn + kn) mod 26 • Dešifrovanie skupiny n po sebe idúcich znakov zašifrovaného textu D(c1,c2,c3,.. cn ) = (c1 - k1) mod 26, (c2 - k2) mod 26, (c3 - k3) mod 26,.. (cn - kn) mod 26 • Demonštrácia postupu na zašifrovanie frázy IT WAS TH pri kľúči dickens • E(I,T,W,A,S,T,H) = (8+3) mod 26, (19+8) mod 26, (22+2) mod 26, (0+10) mod 26, (18+4) mod 26, (19+13) mod 26, (7+18) mod 26 = (11,1,24,10,22,6, 25) = (l,b,y,k,w,g,z) • Demonštrácia postupu dešifrovania tejto správy • D (l,b,y,k,w,g,z) = (11-3) mod 26, (1-8) mod 26, (24-2) mod 26, (10-10) mod 26, (22-4) mod 26, (6-13) mod 26, (25-18) mod 26 = (8,19,22,0,18,19,7)= (I,T,W,A,S,T,H) • Pokiaľ sa zvolí krátky kľúč • Vzniká pravidelnosť opakovania jeho aplikácie pri šifrovaní dlhej správy • Neskrýva dokonale frekvenciu písmen, fráz otvoreného textu • Ideálne je, keď kľúč má dĺžku otvorenej správy 10
Klasické šifrovacie systémy – Kasiského metóda • Je založená na regulárnosti jazyka. Napríklad v angličtine sa vyskytujú digramy (th-, -ed, un-, im-,..) a trigramy (-ion, -ing, -eek, -oot) slová ako of, and, to, with,.. • Ak je správa zašifrovaná n abecedami a ak určité slovo alebo skupina písmen sa v otvorenom texte vyskytuje k krát, potom musí byť zašifrované približne k/n krát z rovnakej abecedy. • Formálne zapísaná Kasiského metóda • V šifrovanom texte najdi opakovaný výskyt skupiny 3 alebo viacerých písmen • Pre každý výskyt skupiny urči začiatočnú pozíciu výskytu • Vypočítaj rozdiel medzi pozíciami po sebe idúcich výskytov • Faktorizuj všetky rozdiely • Ak bola použitá polyalfabetická šifra, dĺžka kľúča bude jedným z faktorov získaných v predchádzajúcom kroku • Metódu skúste na texte: IT WAS THE BEST OF TIMES IT WAS THE WORST OF TIMES IT WAS THE AGE OF WISDOM IT WAS THE AGE OF FOOLISHNESS IT WAS THE EPOCH OF BELIEF IT WAS THE EPOCH OF ..., s kľúčom dickens a Vigenierovou šifrou • Ak ste správne zašifrovali, potom na pozíciách 20, 83 a 104 začínajú rovnaké skupiny 6 písmen. Podľa Kasiského metódy treba skúmať faktory čísiel 104-83=21=3x7 a 83-20=63=3x3x7. Dĺžka kľúča (počet rôznych abecied) 21 je nepravdepodobná, potom by dĺžka kľúča mohla byť 7 (správne riešenie) alebo 3. 11
Počet abecied 1 2 3 4 5 10 Veľký Hodnota IC 0,068 0,052 0,047 0,044 0,044 0,041 0,038 Klasické šifrovacie systémy – Index koincidencie • Dá sa ukázať, že otvorený text (dostatočne dlhý a bežný) má predpovedateľné rozloženie písmen. Pri použití viacerých šifrovacích abecied sa histogram výskytu písmen v šifrovanom texte stáva plochším. • Dá sa kvantitatívne posúdiť ako „ďaleko“ je histogram šifrovaného textu viacerými abecedami od histogramu otvoreného textu. • Ak Pi je pravdepodobnosť výskytu písmena i v šifrovanom texte, potom zrejme Si=a,.z (Pi) = 1 (v texte sú iba písmená) • Ak by bol výskyt všetkých písmen rovnaký, potom Pi=1/26=0,0384. Výraz (Pi-1/26) je odchýlka od plochého histogramu pre písmeno i. My budeme počítať kvadrát odchýlky t.j. (Pi-1/26)2 • Odchýlka celého rozdelenia od plochého rozdelenia je V=Si=a,.z (Pi-1/26)2 = Si=a,.z (Pi)2 - 1/26 • Ak je rozdelenie perfektne ploché, potom je V=0. Ak sa za Pi dosadia štatistiky anglického otvoreného textu, potom V=0,0296 • Majme zašifrovaný text, výraz (Pi)2 udáva pravdepodobnosť, že ľubovoľné dve písmená zašifrovaného textu budú rovnaké ( a to i). • Výraz V je možné pre daný zašifrovaný text odhadnúť. Nech Fi je počet výskytov písmena i v zašifrovanom texte a nech n je počet všetkých písmen v zašifrovanom texte. • Index koincidencie je IC= Si=a,.z (počet dvojíc íí)/(počet všetkých dvojíc)= Si=a,.z (Fi x (Fi -1)/2)/(n x (n-1)/2) • Hodnota IC je pre anglický text od 0,0384 pre ploché rozdelenie (neznámy veľký počet šifrovacích abecied) až po 0,068 pre jednu šifrovaciu abecedu (monoalfabetickú šifru) 12
Klasické šifrovacie systémy – Vernamova šifra • Gilbert Vernam, 1918, substitučná šifra s jednorázovým kľúčom • Absolútne nerozlúštiteľný šifrovací systém • Náhodne generovaný kľúč k = (k1 , k2, k3,.. kn) je rovnakej dĺžky ako je text otvorenej správy • Šifrovanie znakov otvoreného text E(P1,P2,P3 ,.. Pn ) = (P1+ k1) mod 26, (P2 + k2) mod 26, (P3 + k3) mod 26,.. (Pn + kn) mod 26 • Dešifrovanie znakov zašifrovaného text D(c1,c2,c3,.. cn ) = (c1 - k1) mod 26, (c2 - k2) mod 26, (c3 - k3) mod 26,.. (cn - kn) mod 26 • Na úrovni bitovej reprezentácie správy sa používa operácia xor (súčet mod 2), t.j. bitový tok otvorenej správy sa modifikuje operáciou xor bitový tokom náhodne generovanej postupnosti jednorázového kľúča. • Automatické šifrovanie a dešifrovanie telegrafných správ • Problém generovania a distribúcie jednorázových kľúčov • Kľúč musí byť rovnako dlhý ako je šifrovaná správa • Kľúč sa nesmie použiť opakovane (šifrovaný text xor otvorený text = šifrovací kľúč) • Kľúč musí byť bezpečne distribuovaný príjemcovi aj odosielateľovi • Aplikačná oblasť – armáda, diplomacia (NIE komerčná oblasť) 13
Klasické šifrovacie systémy – Náhodný generátor • Veľa šifrovacích algoritmov používa postupnosti náhodných čísel, pričom bezpečnosť šifrovania záleží na „náhodnosti“ použitých čísel. • Lineárny kongruentný náhodný generátor vypočítava náhodné čísla podľa vzťahu ri+1 = (a x ri+b) mod n, kde • r0 a a nemajú spoločného deliteľa s n • Potom všetky čísla od 0 do n sú generované v jednej perióde • Pri takomto generovaní náhodných čísel je problém závislosti ri+1 na ri napríklad • r1 = (a x r0+b) mod n, r2 = (a x r1+b) mod n, r3 = (a x r2+b) mod n, r4 = (a x r3+b) mod n • Ak útočník odchytí r0, r1 a r2, môže vypočítať a, b a n. • Ak uhádneme začiatok otvoreného textu, napríklad MEMO a odchytíme šifrovaný text, potom dokážeme rozbiť celú šifru, pretože postupne odchytávame • c0 = (r0+12) mod 26, c1 = (r1+4) mod 26, c2 = (r2+12) mod 26, c3 = (r3+14) mod 26 • Čím sme dostali 4 rovnice o štyroch neznámych a znalosť troch čísel r0, r1 a r2 nám dovolí vypočítať a, b a n, čím sa rozbije náhodný generátor aj šifrátor • Existujú aj iné metódy generovania náhodných čísel, napríklad • Zo šumového signálu nastavením prahu pre vyhodnotenie hodnoty 0 a 1 • Čísla z telefónneho zoznamu mesta Bratislava (dddd-DdDd) na strane 20. 14
Klasické šifrovacie systémy – Transpozičná (permutačná) šifra • John Falconer, 1685, prvá svetová vojna • Znaky otvoreného textu sa nemenia, ALE menia svoju pozíciu (miesto) v texte správy • Šifrovací kľúč predstavuje predpis prestavenia (permutáciu) znakov otvoreného textu na získanie šifrovaného textu • E(P1,P2,P3,P4,P5,P6)= (P4,P5,P1,P2,P6,P3) =(c1,c2,c3,c4,c5,c6) • Dešifrovací kľúč predstavuje predpis prestavenia (inverznú permutáciu) znakov šifrovaného textu na získanie otvoreného textu • D(c1,c2,c3,c4,c5,c6)= (c4,c5,c1,c2,c6,c3) =(P1,P2,P3,P4,P5,P6) • Častým prípadom je stĺpcová transpozícia (permutácia získaná preusporiadaním stĺpcov otvoreného textu správy) • Otvorený text THIS IS A MESSAGE TO SHOW HOW A COLUMNARTRANSPOSITION WORKS THISI OLUMN Šifrovaný text: tssoh oaniw haaso lrsto imghwutpir SAMES ARTRA seeoamrook istwe nasus SAGET NSPOS OSHOWITION HOWACWORKS 15
Klasické šifrovacie systémy – Transpozičná (permutačná) šifra • Uvedený príklad predstavuje šifrovanie špecifickou transpozíciou (permutáciou) • E(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 ,P13,P14,P15 ,P16,P17,.........P46,P47,P48 ,P49,P50)= (P1,P6,P11,P16,P21,P26,P31,P36,P41,P46,P2,P7 ,P12,P17,P22,P27 ,P32,P37,.........P30,P35,P40 ,P45,P50) =(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12 ,c13,c14,c15 ,c16,c17,.........c46,c47,c48 ,c49,c50) • Dešifrovanie sa vykoná inverznou permutáciou • D (c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12 ,c13,c14,c15 ,c16,c17,.........c46,c47,c48 ,c49,c50)= (c1,c6,c11,c16,c21,c26,c31,c36,c41,c46,c2,c7 ,c12,c22,c27 ,c32,c37,.........c30,c35,c40,c45,c50) =(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 ,P13,P14,P15 ,P16,P17,.........P46,P47,P48 ,P49,P50) • Rozbitie transpozičnej šifry pomocou frekvenčnej analýzy digramov a trigramov (TREBA nájsť predpis permutácie) • Digram – usporiadaná dvojica znakov, Trigram - usporiadaná trojica znakov • Existujú frekvenčné slovníky digramov a trigramov • Transpozíciu je možné aplikovať pri šifrovaní viackrát • Algoritmy s dvojitou transpozíciou • Použitie všeobecnej transpozície • (P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 ,P13,P14,P15 ,P16,P17,.........P46,P47,P48 ,P49,P50) • (P3,P6,P9,P12,..P48,P4,P8,P16,..P44,P5,P10,P25,..P50,P49,P47 ,P46,P43, P41,P38 ,..P13,P11,P7 ,P2,P1) 16
Moderné šifrovacie systémy • Klasické šifrovacie systémy boli navrhnuté a používané pred príchodom počítačov • S použitím počítača sa môžu významne komplikovať šifrovacie algoritmy • Bezpečné moderné šifrovacie algoritmy sú založené na riešení problémov veľkej matematickej zložitosti • Rozbitie takéhoto šifrovacieho algoritmu útokom hrubou silou (BFA - brutal force attack) je v reálnom čase nezvládnuteľné • Príklad problému veľkej matematickej zložitosti • Zistenie splniteľnosti formuly - problém je určiť, či daná logická formula je splniteľná alebo nie. Logický výraz je zložený z logických premenných v1,v2,v3,.. vn , a |v1,|v2,|v3,.. |vn, členy formuly sú súčty, formula je tvorená súčinom členov. Ak je možné zvoliť hodnoty v1,v2,v3,.. vn ako 0 alebo 1 tak, aby logická formula nadobúdala hodnotu 1, potom sa hovorí, že formula je splniteľná. • Príklad: f = v1.(v2 + v3). (|v2 + |v3), je splniteľná formula • Na preskúmanie splniteľnosti treba preskúmať 23=8 možností • Na preskúmanie splniteľnosti treba vo všeobecnosti preskúmať 2n možností, kde n je počet logických premenných (exponenciálna zložitosť). 17
Svet veľkých čísel a zložitosti • Malé a veľké čísla • 2-12 pravdepodobnosť smrti v aute • 214, 104 doba v rokoch od poslednej doby ľadovej • 230, 109 doba v rokoch od vzniku planét slnka • 2170, 1051 počet atómov v zemeguli • Zložitosť (časová) Zložitosť operácií pre n = 106 doba riešenia pri 106 op/s O(1) 1 1 mikrosekunda O(n) 106 1 sekunda O(n2) 1012 1,6 dní O(n3) 1018 32000 rokov O(2n) 10301030 ???? rokov • Problémy aplikácií výsledkov teórie zložitosti v kryptografii • Kryptoanalytik veľakrát rieši veľký súbor štatisticky podobných problémov (mnoho šifier generovaných tým istým kľúčom) • Obťažnosť nesmie platiť v „priemere“ alebo „v najhoršom prípade“, ale „vždy“ • Nie je možné použiť akýkoľvek ťažký problém, pri riešení musí byť možnosť uplatniť „zadné vrátka“ 18
Výpočtová bezpečnosť kryptosystému • Bezpečnosť je daná silou algoritmu • Ako skrýva redundaciu • Dĺžkou kľúča • Útok hrubou silou, skúšanie všetkých hodnôt kľúčov (celý kľúčový priestor) Dĺžka kľúčapočet pokusov pri 1MIPS doba riešenia pri 106MIPS 8 28256 mikrosekúnd 56 2561142 rokov 10 hodín 128 21285.1024 rokov 5.1018 rokov 1024 21024~10295 rokov 2048 22048~10597 rokov • Aplikovateľnosť podľa dĺžky kľúča • Symetrické šifrovacie systémy 128 bitov • Asymetrické šifrovacie systémy 1024 bitov 19
Šifrovací systém DES • Blokový symetrický šifrátor, 64 bitový šifrátor s 56 bitovým šifrovacím kľúčom • Bol vyvinutý vládou USA (modifikácia šifrovacieho systému LUCIFER od IBM) pre všeobecné verejné použitie (Data Encryption Standard – DES) • Je to šifrátor Feistalovského typu, využíva 16 cyklov (iterácií) • Bol akceptovaný ako štandard v USA v roku 1976 (v roku 2005 skončil ako štandard, stále sa však ešte používa). Je ustanovený jeho nástupca Advanced Encryption Standard (AES), 128 bitový šifrátor s 128 alebo 192 alebo 256 bitovým kľúčom • V súčasnosti sa na zvýšenie kryptografickej sily používa verzia TripleDES (64 bitový šifrátor so 112 bitovým kľúčom, pri šifrovaní: prvým kľúčom sa šifruje, druhým sa dešifruje a prvým sa opäť šifruje, pri dešifrovaní: prvým kľúčom sa dešifruje, druhým sa šifruje a prvým sa opäť dešifruje) • Využíva základné šifrovacie techniky ako sú substitúcia (S-boxy) a permutácia (P-boxy) • Na začiatku šifrovania sa vykoná iniciálna permutácia a na konci šifrovania sa vykoná inverzná iniciálna permutácia 20
Šifrovací systém DES • Dátový blok pri šifrovaní DES je rozdelený na dva 32 bitové podbloky L a R • Zo základného 56 bitového kľúča sa odvádzajú kľúče aplikované v jednotlivých iteráciách k0, k1, k2, k3,…k15 • Základný 56 bitový šifrovací kľúč je rozdelený na dve 28 bitové časti. Každá časť vykoná v iterácii ľavý kruhový posuv oproti stavu v predchádzajúcej iterácii a to tak, že v iterácii 1,2,9 a 16 sa vykoná vždy jeden ľavý cyklický posuv, v ostatných iteráciách sa vykonajú dva ľavé cyklické posuvy. Permutovaným výberom sa z 56 bitového aktuálneho kľúča vyberie 48 bitový kľúč v danej iterácii. • Šifrovanie DES • Li = Ri – 1 • Ri = Li –1xor f (Ri – 1 , ki – 1) • Dešifrovanie DES • Ri – 1 = Li • Li -1 = Rixor f (Li , ki – 1) • Dešifruje sa rovnakým algoritmom s tým rozdielom, že kľúče sa prikladajú v opačnom poradí k15, k14, k13, k12,…k0 • Pri výbere šifrovacích kľúčov treba dať pozor na doplnky (binárnym doplnkom šifrovacieho kľúča sa nesmie šifrovať binárny doplnok správy), 4 slabé kľúče (dve 28 bitove časti kľúča sú všetky 0 alebo všetky 1) a 8 poloslabých kľúčov (páry kľúčov k1, k2 , pre ktoré platí DES(P, k1) = DES(P, k2)) 22
Šifrovací systém DES – režimy činnosti • ECB – Electronic Code Book • Rovnaké otvorené texty s rovnakým šifrovacím kľúčom majú rovnaký šifrovaný text • Táto situácia môže spôsobiť problém, pokiaľ útočník pozná štruktúru celkovej správy (jedným šifrovaním sa zašifruje iba 8 znakov ASCII, čo predstavuje iba časť celkovej správy), vie odchytiť z kanála posielané správy a vie vložiť do kanála falošnú správu • Útočník môže zložiť novú modifikovanú zašifrovanú správu • CBC – CipherBlock Chaining • Blok otvoreného textu sa pred vložením do šifrátora xor-uje so zašifrovanám predchádzajúcim blokom. Pri dešifrovaní sa dešifrovaný predchádzajúci blok xor-uje s príchodzím šifrovaným blokom. • V tomto režime sa štandardne ako prvý blok šifruje t.zv. Iniciálny vektor. Rôzne iniciálne vektory zabezpečia, že v tomto režime budú mať rovnaké otvorené texty s rovnakým šifrovacím kľúčom rôzny šifrovaný text. • OFB – Output FeedBack • Tento režim umožňuje vytvoriť prúdový šifrátor • DES šifrátor vytvára náhodnú postupnosť bitov, s ktorou sa xor-uje bitová postupnosť otvoreného textu • Ako prvý blok pri šifrovaní sa vezme dohodnutý iniciálny vektor. V druhom kroku sa iniciálny vektor posunie a na uprázdnené bity sa zasunú bity zašifrovaného iniciálneho vektora (spätná väzba cez šifrátor) a takto vytvorený blok sa opäť zašifruje. • CFB – Cipher FeedBack • Rovnako ako v režime OFB s tým rozdielom, že sa na uprázdnené bity zasunú bity zašifrovaného textu (po aplikovaní funkcie xor) 23
Šifrovací systém RSA • Rivest, Shamir, Adleman, 1978 • Teoretické základy šifrovacieho systému sú založená na malej Fermatovej vete a Eulerovej vete • Bezpečnosť je založené na obťažnosti faktorizácie veľkých čísel (exponenciálna zložitosť) • Je to asymetrický šifrovací systém, jeden kľúč (e, n) je použitý na šifrovanie – súkromný kľúč, druhý kľúč (d, n) na dešifrovanie – verejný kľúč • Správa P je zašifrovaná operáciou Pe mod n • Zašifrovaná správa c je dešifrovaná operáciou cd mod n • Zrejme platí • Pe.d mod n = Pd.e mod n = P • P = cd mod n = (Pe mod n)d mod n = Pe.d mod n = P • Podrobnejší opis algoritmu • Číslo n je súčinom prvočísel p a q (každé aspoň 200 dekadických miest) • Číslo e (súkromný kľúč) je vybraté tak, že nemá spoločných deliteľov s číslami p-1 a q-1 (vyberá sa prvočíslo väčšie ako p-1 a q-1) • Číslo d (verejný kľúč) sa vyberie tak, že platí e.d = 1 mod (p-1).(q-1) 24
Šifrovací systém RSA – Fermatova a Eulerova veta Malá Fermatova veta (Pierre de Fermat, 1601 – 1665): Ak n je prvočíslo a a nie je násobkom n, potom platí an-1 = 1 mod n Fermatova veta umožňuje počítať inverzné čísla v module n, pretože a-1 mod n = an-2mod n. Napríklad inverzné číslo k číslu 5 v aritmetike mod 7 je: 5-1 mod 7 = 57-2mod 7 = 55 mod 7 = ((53 mod 7). (52 mod 7)) mod 7 = (6.4) mod 7 = 3. Eulerova veta (Leonhard Euler, 1707 - 1783) zavádza funkciu eulerových totientov fi(n). Je to počet kladných čísel menších ako n, ktoré nedelia číslo n, napríklad ak n je prvočíslo, potom fi(n)= n-1. Keď n je súčinom prvočísel p a q, potom fi(n)= fi(p.q)= fi(p).fi(q)= (p-1).(q-1). Eulerove zovšeobecnenie malej Fermatovej vety: ak a a n nemajú spoločných deliteľov, potom afi(n) mod n = 1. Prečo šifrovací systém RSA funguje Pretože e.d = 1 mod (p-1).(q-1) = 1 mod fi(n), potom e.d = k.fi(n)+1 Ak predpokladáme, že správa P (hašovacia hodnota) je menšia ako p a q, teda P a n=p.q nemajú spoločných deliteľov deliteľov, potom platí (Pe)d mod n = (Pd)e mod n= Pk.fi(n)+1 mod n= P mod n = P Príklad šifrovania a dešifrovania algoritmom RSA Nech p=11, q=13, potom n=p.q=143, fi(n)=(p-1).(q-1)=10.12=120 Zvoľme za e=11, číslo inverzné d je riešením rovnice 11.d=1 mod 120, čo je d=11 (v praxi nesmie byť e=d) Zašifrujme správu (hašovaciu hodnotu) P=7, c= Pe mod n = 711 mod 143= 106 Dešifrovanie správy P = cd mod n = P = 10611 mod 143 = 7. Pri výpočte treba použiť vzťah (a.b) mod n = ((a mod n).(b mod n)) mod n 25
Šifrovací systém RSA – Test prvočíselnosti Šifrovací systém RSA potrebuje prvočísla. Existuju štatistické testy na zisťovanie prvočíselnosti. Ak číslo p prejde testom, tak s istou pravdepodobnosťou je číslo p prvočíslo (napr. s pravdepodobnosťou 1/2 je číslo zložené, ak číslo p prejde testom pre 50 rôznych svedkov, potom s pravdepodobnosťou 1/250 je číslo zložené). Lehmanov test na zistenie, či je číslo p prvočíslo 1. Zvoľte číslo a (svedok) menšie ako číslo p 2. Vypočítajte x=a(p-1)/2 mod p 3. Ak x≠1 alebo -1 mod p, potom p určite nie je prvočíslo 4. Ak x=1 alebo -1 mod p, potom pravdepodobnosť, že p nie je prvočíslo nie je väčšia ako ½. Rabin–Millerov test na zistenie, či číslo p je prvočíslo. Algoritmus predpokladá rozloženie čísla p-1=m.2b, kde b je maximálne možné (číslo m nie je deliteľné 2) 1. Zvoľte náhodné číslo a (svedok) menšie ako číslo p 2. Nastavte j=0 a nastavte z= am mod p 3. Ak z=1 alebo z=p-1, potom p prešlo testom a môže byť prvočíslo 4. Ak j>0 a z=1, potom p nie je prvočíslo 5. Nastavte j=j+1. Ak j<b a z≠p-1, nastavte z=z2 mod p a choďte späť na krok 4. Ak z=p-1, potom p prešlo testom a môže byť prvočíslo 6. Ak j=b a z≠p-1, potom p nie je prvočíslo. Rabin-Millerov test konverguje s rýchlosťou 1/4 26
Hašovacie funkcie • Jednosmerná funkcia • Pre dané x je možné ľahko vypočítať F(x) a pre dané F(x) je veľmi ťažké vypočítať x • Pre dané x nie je ľahko nájsť x’≠x také, že F(x) = F(x’) • Je obťažné nájsť dve náhodné x, x’ také, že F(x) = F(x’) (odolnosť proti kolízii, rozbitie skleneného pohára) • Jednosmerná funkcia so zadnými vrátkami • Jednocestná funkcia + pre dané F(x) je ľahko vypočítať x, pokiaľ sa pozná tajomstvo (rozložené hodinky na súčiastky, inštrukcie na zostavenie) • Jednosmerná hašovacia funkcia • Jednosmerná funkcia, vstup premenlivej dĺžky a (kratší) výstup pevnej dĺžky (128 alebo 160 bitov) prípadne 256 (SHA-256) • Odtlačok prsta, fingerprint, charakteristika • Hašovacie funkcie a hašovacie hodnoty chránia údaje pri prenose alebo pri uložení pred modifikáciou • Funkcia parity a paritný bit • Delenie postupnosti bitov (chápané ako koeficienty polynómu s vysokou mocninou) ireducibilným polynómom a zvyšok po delení • Z hašovacej hodnoty nie je možné rekonštruovať pôvodné údaje, z ktorých bola hašovacia hodnota vypočítaná. (Bohužiaľ už to pre niektoré hašovacie funkcie nie je pravda, SHA-1, MD5) • Kryptografické hašovacie funkcie HMAC (nelineárne transformácie údajov do hašovacej hodnoty) 27
Diffie – Hellmanova výmena kľúča • Účelom algoritmu je umožniť dvom vzdialeným používateľom vymeniť si bezpečným spôsobom šifrovací kľúč • Bezpečnosť algoritmu je založená na obťažnosti vypočítať diskrétny logaritmus v algebraickej štruktúre konečných polí • Primitívny koreň prvočísla p • je také číslo a, že jeho mocniny v aritmetike mod p generujú všetky čísla od 1 po p-1 • a je primitívny koreň prvočísla p, keď čísla a1 mod p, a2 mod p, a3 mod p,.. ap-1 mod p sú rôzne a predstavujú čísla 1,2,3,..p-1 v nejakej permutácii • Pre každé b, 1≤ b ≤ p-1, je potom možné jednoznačne nájsť i (diskrétny logaritmus) tak, že platí b = ai mod p • Algoritmus výmeny kľúča • Globálne verejné prvky: p-prvočíslo, a-primitívny koreň p • Generovanie kľúča 1. používateľom: vyberie privátne x1 také, že x1<p a vypočíta verejnú časť y1 = ax1 mod p. Číslo y1 pošle 2. používateľovi. • Generovanie kľúča 2. používateľom: vyberie privátne x2 také, že x2<p a vypočíta verejnú časť y2 = ax2 mod p. Číslo y2 pošle 1. používateľovi. • Generovanie tajného kľúča 1. používateľom: vypočíta tajný kľúč k = (y2)x1 mod p. • Generovanie tajného kľúča 2. používateľom: vypočíta tajný kľúč k = (y1)x2 mod p. • Tajné kľúče generované obidvoma používateľmi sú zrejme rovnaké, pretože k = (y2)x1 mod p = (ax2 mod p)x1 mod p = (ax1 mod p)x2 mod p = (y1)x2 mod p = k. (Aplikovali sa pravidlá modulárnej aritmetiky.) • Tento spôsob dohodnutia tajného kľúča je náchylný na útok Man in the middle. 28
Využitie šifrovania pri protokoloch • Protokol • Je usporiadaná postupnosť krokov dvoch alebo viac strán na vykonanie istej úlohy • Každý, kto používa protokol musí byť s ním dopredu oboznámený a musí s ním súhlasiť • Dobrý protokol má tieto vlastnosti • Je zriadený dopredu – protokol je zriadený predtým, než sa ide používať • Vzájomne odsúhlasený – všetky zúčastnené strany súhlasia s protokolom, jeho postupnými krokmi • Jednoznačný – žiadna strana nemôže urobiť chybný krok z dôvodu, že strana nerozumela kroku • Úplný – v každej situácii, ktorá sa vyskytne, existuje predpis ako pokračovať ďalej • Typy protokolov – protokoly sa používajú pri komunikácii medzi účastníkmi rôznych typov aktivít (bankové transfery, voľby, referendá,..). • Treba zabezpečiť, aby protokoly realizovali férové – korektné operácie. • Kto bdie nad férovosťou operácií? • Arbitrované protokoly • Rozsúditeľné protokoly • Samozabezpečujúce protokoly 29
Využitie šifrovania pri protokoloch • Arbitrované protokoly • Transakcie medzi dvomi navzájom si nedôverujúcimi stranami sa realizujú prostredníctvom tretej dôveryhodnej nezainteresovanej strane – arbitra. Arbitrovi obe strany dôverujú. • Obe strany nemusia nájsť dôveryhodného arbitra • Arbiter musí byť stále dostupný • Arbiter spôsobuje časovú stratu v komunikácii, pretože vstupuje do každej transakcie • Arbiter predstavuje úzke miesto, veľa používateľov sa naňho spolieha • Je zraniteľné dôvernosť transakcií, pretože všetky správy idú cez arbiter • Rozsúditeľné protokoly • Podobne ako v prvom prípade je potrebná tretia strana, ktorá v prípade potreby rozsúdi, či bola transakcia férová alebo nie a kto konal neférovo. Pri tomto protokole mujú obidve strany dostatok údajov, na základe ktorých môže arbiter (sudca) rozhodnúť o férovosti transakcie a tiež rozhodnúť, kto klamal. Tieto protokoly požadujú zásah tretej strany iba v prípade nezrovnalostí. • Samozabezpečujúce protokoly • Svojou podstatou zabezpečujú férovosť transakcií. Nie je potrebný arbiter. Ak jedna strana klame, druhá to hneď zistí. (Protokol neexistuje pre každý prípad transakcie.) 30
Zábudlivý prenos (Oblivious transfer) • Tento protokol rieši problém, v ktorom odosielateľ posiela jednu z dvoch správ, pričom ani odosielateľ ani príjemca do istého kroku protokolu nevedia, ktorá správa to bola • Hádzanie mincou na diaľku. Odosielateľ S hodí mincu a zapíše výsledok (hlava, orol) na papierik. Príjemca R zapíše na papier svoj odhad. Tieto osoby sa potom musia stretnúť a porovnať si papieriky. Ak majú rovnakú stranu mince vyhral R, ak nie vyhral S. • Ako zabezpečiť, aby sa nemuseli stretnúť? Toto rieši Oblivious transfer. 1. S vyberie dva páry kľúčov pre asymetrické šifrovanie (Ei, Di) a (El, Dl). R vyberie tajný kľúč k pre symetrické šifrovanie. R a S poznajú symetrický a asymetrický šifrovací systém. 2. S pošle R verejné kľúče Ei a El . Privátne kľúče si ponechá. 3. R vyberie jeden z verejných kľúčov Eh (odhadne výsledok hádzania mincou) a pošle S zašifrovaný tajný kľúč Eh (k). 4. S vyberie jeden z privátnych kľúčov napr. Dl (hádže mincou s nejakým výsledkom) a dešifruje prijatú správu K = Dl (Eh (k)). K je binárny reťazec nič nehovoriaci S. (Ak h=l, potom K=k, ináč K je bezvýznamný reťazec.) 5. S zašifruje symetrickou šifrou správu M=„Prehral som. S“ kľúčom K, vytvorí S(M,K). Ak K=k, potom skutočne prehral, k správe pridá svoj výber l a S(M,K) pošle R. 6. R dešifruje správu S(M,K) kľúčom k. R vybral h a S vybral l. Ak h=l vyhral R, pretože R správne dešifruje správu S(M,K). R pošle S správu M a h ako dôkaz, že R správne odhadol. Ak h≠l potom prehral R, pretože dešifrovaním správy S(M,K) nezíska M. 7. Keď je víťaz známy, S pošle R privátne kľúče Di a Dl a R môže verifikovať férovosť. 31
Podpísanie kontraktu na diaľku • Nech Janko a Marka chcú podpísať kontrakt • Pretože podpis na kontrakte ich zaväzuje, urobia tak vtedy, keď to urobí aj ich partner • Najjednoduchšie riešenie je také, že sa stretnú a kontrakt podpíšu naraz alebo to urobia cez arbitra (arbiter bude dohliadať na férovosť protokolu podpisu) • Ako to urobiť, aby podpísali kontrakt za vyššie uvedenej podmienky a nemuseli sa ani stretnúť a ani využiť služby arbitra? • Protokol podpisu musí splniť dve podmienky: • Záväzok – aby v každom kroku protokolu mali obe strany rovnaký záväzok alebo aby záväzok nemala žiadna strana. • Nesfalšovateľnosť – podpisy na kontrakte musia byť autentické. Každá strana musí preukázať svoju autentičnosť. • Papierová analógia protokolu podpisu: • Medzi Jankom a Markou cestuje viacero kópií zmluvy a každá strana si po každom kole jednu súčasnú kópiu odloží • V prvom kroku Janko podpíše kontrakt iba písmenom J a pošle Marke, ktorá ho podpíše iba písmenom M • Marka si jednu kópiu s podpisom Janka (iba prvé písmeno J) ponechá a ostatné kópie pošle Jankovi • Janko podpíše kontrakt druhým písmenom a, jednu kópiu si ponechá a ostatné pošle Marke • Takto si Janko a Marka točia sadu zmlúv, až dospejú k stavu, že zmluvy sú podpísané všetkými písmenami oboch partnerov a každý z nich má jednu kópiu. 32
Podpísanie kontraktu na diaľku • Počítačové riešenie funguje rovnako: 1. Janko si náhodne vyberie 2n šifrovacích kľúčov j1,j2,j3,.... j2n pre symetrický kryptosystém (pozná ho i Marka). Kľúče sú zoradené do párov (j1,jn+1),(j2,jn+2), ... (jn,j2n). Medzi kľúčmi nie je žiaden významný znak, ktorý by ich vydeľoval resp. vyjadroval, že ji a jn+i je pár. 2. Pre každý kľúč Janko zašifruje Ji=E(S, ji), kde S je štandardná správa, ktorej obsah je bezvýznamný, Janko pošle všetky zašifrované správy J1,J2,J3,...J2n Marke. To znamená, že Marka má šifrovanú verziu správy pod každým kľúčom. 3. Janko súhlasí, že má záväzok za kontrakt, ak Marka preukáže kľúčové páry (ji,jn+i) pre každé i. 4. Marka zopakuje vyššie uvedené tri kroky s kľúčmi mi, a zašifrovanými správami Mi. 5. Janko pošle Marke z každého páru (ji,jn+i) zábudlivým prenosom jeden náhodne vybratý šifrovací kľúč (alebo ji alebo jn+i). To znamená, že Marka nevie, ktorý kľúč z kľúčového páru prijala. To isté spraví aj Marka. Pošle Jankovi z každého páru (mi,mn+i) zábudlivým prenosom jeden náhodne vybratý šifrovací kľúč (alebo mi alebo mn+i). Na tomto mieste majú Janko aj Marka polovicu tajomstva toho druhého. 6. Nech l je dĺžka kľúčov ji a mi. Pre k=1,2,3,..l Begin Janko pošle Marke k-tý bit všetkých kľúčov ji v poradí i=1,2,...2n a Marka pošle Jankovi k-tý bit všetkých kľúčov mi v poradí i=1,2,...2n End. 7. Ak predpokladáme, že ani jeden neprestane predčasne, nakoniec obaja majú všetkých l bitov kľúčov toho druhého a kontrakt je podpísaný. • V kroku 6 má Janko a Marka rovnaký počet bitov z každého z chýbajúcich kľúčov: • Marka pozná Ji,S a časť kľúča ji (to isté pozná aj Janko) • Majú rovnakú šancu prelomiť kľúče, resp. zostávajúce bity kľúčov • Ak by na istom bode prestal Janko alebo Marka vysielať, prestane aj ten druhý • Ak jeden začne vysielať chybné (vymyslené) bity, ten druhý ho môže usvedčiť, že klamal, pretože má polovicu jeho kľúčov (ich platnosť si overil). 33
Doporučená pošta • Nech Janko chce Marienke poslať správu • Janko ale chce potvrdenie od Marienky, že prijala správu (Janko nechce vydať správu, pokiaľ Marienka nedá potvrdenie) • Marienka takisto nechce vydať potvrdenie Jankovi, že prijala správu, pokiaľ ju nemá • V reálnom živote to robí poštový úradník (arbiter), my to chceme urobiť na diaľku cez počítačovú sieť • Protokol poslatia správy s potvrdením prevzatia je založený na dvoch podmienkach: • Janko pošle Marienke správu G v zašifrovanom tvare a dá Marienke šifrovací kľúč iba v prípade, že Marienka mu dá potvrdenie. • Marienka potvrdí prijatie správy G iba v prípade, že obdrží šifrovací kľúč, ktorým dešifruje správu. • Počítačové riešenie funguje takto: 1. Janko si náhodne vyberie n+1 šifrovacích kľúčov j0,j1,j2,.... jn pre symetrický kryptosystém (pozná ho i Marienka). Janko ďalej stanoví šifrovacie kľúče jn+i= j0 xor ji , pre všetky i=1,2,...n. 2. Janko zašifruje správu G kľúčom j0, J=E(G, j0) a zašifrovanú správu pošle Marienke. Pretože pre všetky i platí jn+i xor ji = j0 xor ji xor ji = j0, môže Marienka dešifrovať správu vtedy, ak dostane ľubovolný pár šifrovacích kľúčov (ji,jn+i). 3. Pre každý kľúč Janko zašifruje Ji=E(S, ji) i=1,2,...2n, kde S je štandardná správa, ktorej obsah je bezvýznamný. Janko pošle všetky zašifrované správy J1,J2,J3,...J2n Marienke. To znamená, že teraz má Marienka šifrovanú správu G a štandardnú správu S šifrovanú každým kľúčom (okrem kľúča j0). 34
Doporučená pošta • Počítačové riešenie funguje rovnako: 4. Marienka si náhodne vyberie 2n šifrovacích kľúčov m1,m2,m3,.... m2n a zašifruje správu S všetkými kľúčami, Mi=E(S, mi) i=1,2,...2n , a všetky Mi pošle Jankovi. 5. Marienka pošle Jankovi prehlásenie, že potvrdzuje prijatie otvoreného textu zašifrovanej správy G, ak Janko je schopný určiť kľúče Marienkinho páru (mi,mn+i) a všetky ji, i=1,2,3,..2n . Týmto vyhlásením Marienka potvrdzuje, že ak Janko má čas na určenie jedného z jej páru kľúčov (mi,mn+i), ona bude mať tiež čas na určenie jedného z jeho páru kľúčov (jm,jn+m). Kedykoľvek Marienka získa kľúčový pár, je schopná vypočítať šifrovací kľúč j0 a získať správu G, G=D(J, j0). Druhá podmienka Marienkinho prehlásenia je zabezpečenie, že Janko koná fér – t.j. Každý pár (ji,jn+i) dá j0. 6. Podobne ako v protokole podpisu kontraktu si Janko a Marienka zábudlivým prenosom vymenia kľúčové páry (j1,jn+1), (j2,jn+2), ... (jn,j2n) a (m1,mn+1), (m2,mn+2), ... (mn,m2n). To znamená, že Marienka dostane od Janka kľúč ji alebo jn+i, pričom ani Janko ani Marienka nevie ktorý. Podobne Janko dostane od Marienky kľúč z páru (mi,mn+i) a nevie ktorý. 6. Nech l je dĺžka kľúčov ji a mi. Pre k=1,2,3,..l Begin Janko pošle Marienke k-tý bit všetkých kľúčov ji v poradí i=1,2,...2n a Marienka pošle Jankovi k-tý bit všetkých kľúčov mi v poradí i=1,2,...2n End. 7. Ak predpokladáme, že ani jeden neprestane predčasne, nakoniec obaja majú všetkých l bitov kľúčov toho druhého a pošta je doručená. 35