Kryptografie Jan Paseka 30. června 2010 2 Úvod Od chvíle co existují tvorové obdaření řečí, existují i důvěrná sdělení, jez jsou určena jen pro jedinou osobu nebo jen pro zcela určití okruh lidí, přičemž pro ostatní osoby mají bít nedostupní. Jakým zpusobem lze bezpečně predat zprívu, tedy tak, že nikdo nežádoucí nezjisti obsah teto zprávy! S tím pak souvisí temer jeste dulezitejsí otazka: Jak muzeme dosíhnout toho, aby zprava skutečne dorazila k príjemci a siče práve v tom stavu, jak byla odeslána? Obvykle jsou dve moznosti, jak tyto problemy vyresit. První z nich je zamlčení existence zpravy. Mohli bychom napsat duvernou zpravu napríklad pomocí neviditelneho inkoustu nebo ji poslat pomocí duveryhodne osoby. O toto se ve vsech dobích pokouseli tajne zamilovaní - a temer vsechny klasicke tragedie svedčí a selhíní techto snah. Jina moznost spočíva v zakódováni duverne zpravy. V tomto prípade se neutajuje její existence. Naopak: Zprava se preda pomocí nejisteho kanílu, ale tak zašifrovana, aby nikdo - mimo skutečneho príjemce -nemohl zprívu rozšifrovat. Zde se jedna o vedome proradnou vízvu souperi; takoveto vízvy bívají zpravidla take prijaty - a ne zrídka se hra obrítí. Dale je zajímavy problem integrity a autentičnosti dat. Zde se jedna o to, aby zprava byla chranena proti neoprávnene zmene. Az do nedavna byly armada a tajne sluzby jediní subjekt, kterí se profesionalne zabíval s takovymito systemy utajení. Pouze v tomto odvetví byla dostateční motivace - a odpovídající penezní prostredky - na vyvinutí sifrovacích stroju, coz byly chytre mechanicke zazraky. 3 4 Skutečnost, ze se kryptologie účastnila zrodu moderních počítačů, má symbolicky charakter. S ohromným rozšířením elektronickeho zpracovaní dat se kryptologie postavila na nový zýklad. To ma různe príčiny a to: • Pri pokusu o prolomení nepratelskeho systemu se musí zpracovat obrovska mnozství dat (retezce písmen, sloupce cifer); musí se srovnat data, spočítat prumerne hodnoty, standartní odchylky a mnoho jineho - to vsechno jsou veci, ktere počítač zvladne mnohem rychleji a lepe nez človek. Dusledkem je pak, ze kryptosystemy, ktere se v současnosti pouzívají, musí bít podstatne komplexnejsí nez jejich predchudci pred dvema generacemi. • Z druhe strany umoznuje moderní hardware a software implementaci komplexních a naročnych mate-matičkýčh algoritmu. Pomocí techto algoritmu lze dosahnout takoveho stupne jistoty, ktery v historii nema obdoby: maly prírustek komplexity algoritmu vede k obrovskemu narustu zdroju nutních k prolomení systemu. Vtip moderní kryptologie spočíva v tom, ze počítač není jenom príčinou mnoha problemu, nybrz i klíčem k jejich resení. • Vstupem elektronickeho zpracovíní dat a obzvlíste elektronicke komunikace do stale více odvetví se otevírají zcela nova pole pusobnosti pro kryptologii. Vedle klasického vojenskeho pouzití nastupují na kryptologii zcela nove pozadavky. Není nutne mít mnoho vesteckeho nadaní k predpovedi, ze kryptologie (ktera se nyní stava seriozní vedou) zazije v prísstích letech dalsí razantní rozvoj. Z novodobých problemu kryptologie vyjmenujme nasledující: • Mnoho telefonních hovoru je v současnosti zprostredkovano pres satelit. Tímto je umozneno, ze v principu kdokoliv je schopen tyto hovory odposlouchavat. Tedy alespon tajne telefonní hovory je nutno tak sifrovat, ze odposlouchavač slysí pouze slítaninu tonu. • Podobníy problíem se tyíkía placeníe televize. Zde spocíívía problíem v tom, ze se neautorizovanyí uzivatel chce podívat na svoje oblíbene filmy, aniz by za to platil. Pomocí prostredku na rozpoznaní autentičnosti uzivatele se tomuto lehce zabraní. 5 • V stále rostoucí míre se provádí prevody penez elektronicky (Homebanking, electronic cash). Zde je nutná elektronická náhrádá obvykleho podpisu vlástní rukou. Pritom tzv. elektronická podpis je v mnohem smeru lepsí nez obvykle podepsání. • Většina nynějších středních a větších počítačů je tak uzpůsobena, že mnoho uživatelů může navzájem nezávisle pracovat s počítačem (multiuser systemy). V takovýchto situacích se počítač musí přesvedčit o identite uživatele. V současne dobe se to deje pomocí hesla; v budoucnosti toto bude u situací souvisících s obzvlístní bezpečností nahrazeno čipovou kartou. • Zároveň se můžeme zmínit o počítačových vírech. To jsou programy, které prakticky nepozorovaně vniknou do poCítaCoveho programu; mají schopnost se samostatne reprodukovat a to je důvodem k vzniku velkých skod na programovem, datovem i hardwarowem vybavení poCítaCe. Zhruba reCeno, virus zmení svuj hostitelský program; lze tedy použít s íspeChem k rozpoznaní viru metodu autentiCnosti programu. Kazdy, kdo ma neCo spoleCneho s temito nebo jim podobními aplikaCemi, bude souhlasit:Ovšemže potrebujeme bezpečnost! Ale - proč má být kryptologie všelék? Nejsou k dispozici jine metody, abychom získali potrebnou jistotu? Prirozene, jsou jine metody! Pomyslete na teChniky vyvíjene po staletí, aby byly nase bankovky bezpeCne proti falsovaní: spetialní papír, komplexní (mnohdy dokonCe krasne) obrazy, perfektní tisk, vodoznak a mnoho jineho. Tedy jeste jednou: ProC kryptologie? 6 Odpověď je jednoduchá: Kryptologie je lepší! Důvodem proto je: Kryptologie je \. matematická disciplina. To může znít nádnesene, ále není tomu ták: Matematika poskytuje - alespoň v principu - teoreticke odůvodnení pro sílu algoritmu nebo šifrovacího protokolu. S matematikou lze (v idealním prípade) dokázat, že kryptograficky algoritmus má jistý stupen bezpečnosti. A jakmile je jednou bezpečnost algoritmu jednou matematicky dokízana, není zadních pochyb o tom, ze algoritmus je skutecne bezpecní; nemusíme se pak spolehat na (zpravidla rozporuplne) posudky expertu, nepotrebujeme se odvolívat pri posuzovíní bezpecnosti na technologii dneska (ktera muze bít zítra íplne jina), atd.__J Je vsak nutno priznat, ze takoveto dukazy se podarily jen ve velmi malo prípadech. Avsak presto: matematika je duverohodní nastroj pro systematicke zkoumaní kryptosystemu (tzn. navrh a analíza). To je duvod, proc dívame kryptologickím mechanismum v prípade pochyb prednost pred jiními bezpecnostními systemy: In dubio pro mathematica Veda, kterí se zabíva se vsemi temito problemy (a mnoha dalsími) se nazíva kryptologie nebo take kryptografie. Jí jsou venovany nasledující stranky tohoto ucebního textu, kterí si neklade zadne níroky na uplnost ci puvodnost. Pouzite zdroje jsou uvedeny v literature. Prípadne komentare ci kriticke pripomínky k textu oňcekíavíam nejlíepe na e-mailovíe adrese paseka@math.muni.cz ci jinou formou. Text je prubezne doplnovan a menen a je umísten k volnemu pouzití jak na ftp serveru oboru matematika PrF MU tak v ramci Informacního systemu Masarykovy univerzity, kde prípadný zíjemce muze najít referíaty ňci jiníe texty zpracovaníe studenty pňredmňetu. Takíe ňcíasti textu jsou tvoňreny referíaty ňci obríazky a grafy zpracovaními studenty M. Kuceroví, M. Misakoví, J. Mraka, A. Rozsypal, R. Sedlacek, Svitel a E. Zíckoví a dalsími v ramci stejnomenne prednasky na Prírodovedecke fakulte Masarykovy univerzity. Dale dekuji Romanu Stoklasovi za korektury textu z jara 2010. Veskera zodpovednost za styl a obsah vsak padía na moji hlavu. Obsah 1 Caesar neboli Každý začatek je lehký! 11 1 Spartská skytála .......................................... 12 2 Posouvací Šifry ........................................... 14 3 Monoabecední šifrování....................................... 19 4 Zamenne šifry............................................ 20 5 Klícova slova ............................................ 22 6 Dalsí jednoduche sifry ....................................... 23 7 Kryptoanalýza............................................ 24 2 Proč jednoduše, když to jde i složite? 29 1 Znepruhlednení Četností ...................................... 30 2 Vigenerova sifra........................................... 32 3 Kryptoanalýza............................................ 34 3.1 Kasiskeho test........................................ 36 3.2 Friedmanuv test....................................... 38 3.3 Určení klícoveho slova ................................... 44 3.4 Zaverecne poznamky.................................... 45 7 8 OBSAH 3 Dopřejme si jistoty neboli trochu teorie 1 Šifrovací systémy................ 2 Perfektní bezpečnost.............. 3 Redundance přirozeného jazyka a bod unicity 4 One-time Pad a lineární posouvací registry 1 One-time Pad.................. 2 Kryptoanalýza linearních posouvacích registru 5 VápoCetní složitost 1 P=polynomiainí cas .............. 2 N P = nedeterministický polynomiýlní cas . . 3 NP-ýplne a NP-těžke problemy........ 4 Složitost kombinacních obvodu......... 5 Splnitelnost - SATisfiability.......... 6 PamětWa slozitost (Space complexity) . . . . 7 Doplňky jazyku................. 8 Nýhodne algoritmy............... 6 AutentiCnost a digitální podpisy 1 Integrita a autenticnost............. 1.1 Symetricka autenticnost........ 1.2 Asymetricka autenticita........ 1.3 Message-Authentication-Code..... 2 Autentiňcnost uňzivatele ............. 2.1 Zero-Knowledge protokol........ 3 Cipove karty................... 3.1 Cipove karty na kontrolu vstupu . . . . 47 47 49 60 73 73 81 85 90 94 95 97 99 101 103 105 107 108 108 110 111 118 122 129 129 OBSAH 9 3.2 Nakupy s čipovou kartou........................... .......131 Asymetrické šifrovací systémy neboli systémy s veřejným klíčem 135 1 Asymetrické šifrovací systémy............................ .......136 2 Elektronický podpis.................................. .......138 3 Idea funkce s vlastností padacích dverí....................... .......143 4 RSA-algoritmus.................................... .......144 5 Diskuse RSA-algoritmu................................ .......149 6 Systemy zalozene na ruksakove metode....................... .......151 7 System s verejným klícem se složitostí stejnou jako faktorizace.......... .......155 8 Jak se napada RSA-algoritmus?........................... .......170 9 Diskrýetný logaritmus ................................. .......185 10 Rychlejsí podpisy ale mene bezpecnosti....................... .......188 11 Kody opravující chyby jakozto system s verejným klícem............. .......190 Šifrový standard DES a jeho kolegove 193 1 Potreba a historie vzniku DES............................ .......193 2 Popis sifrovacího algoritmu DES........................... .......195 3 Kritika sifroveho standardu ............................. .......205 4 Pouzití NP-teZkýčh problemni v sifrovacích systemech............... .......219 5 GOST aneb GOsudarstvennyj STandart ...................... .......221 6 Šifrovací algoritmus Skipjack............................. .......226 7 Rijndael a AES .................................... .......228 8 Proudova sifra RC4.................................. .......229 9 Sifrovacíí algoritmus IDEA .............................. .......233 9.1 Zakladní vlastnosti sifrovacího systemu IDEA............... .......234 9.2 Popis systíemu IDEA ............................. .......234 9.3 Kryptoanalyíza systíemu IDEA ........................ .......237 10 OBSAH 10 PGP - Pretty Good Privacy.................................... 239 9 Náhodné šifrování 243 1 Náhodnost v šifrovacím procesu.................................. 244 2 Sémantická bezpečnost a Goldwasser-Micaliho schema...................... 245 3 Kryptograficky bezpecná pseudonahodna císla.......................... 251 4 Wyneruv kanal........................................... 255 5 Pravdepodobnostní podpisovací schemata............................. 261 Kapitola 1 Caesar neboli Každý začátek je lehký! Nun-e-zuz-o-fuf-e-juj! Bub-u-dud-e-šuš o-sus-vuv-o-bub-o-zuz-e-nun! Pup-o-zuz-o-rur! Tut-o juj-e tut-e-nun vuv-rur-a-huh! Astrid Lingrenová Při kazdem zakódování musí bát příjemce vždy o neco pred átočníkem. S pomocí teto informace může příjemce zprávu rozšifrovat; tato informace nesmí bít zídnemu ůtoCníkovi k dispozici, nebot' by ůtoCník byl schopen rozlustit zpravu zrovna tak lehce jako príjemce. O teto exkluzivní informaci mluvíme jako o klíči. Klasicke sifrovací metody jsou zalozeny na tom zíklade, ze odesilatel a príjemce mají spolecny sifrovací klíc, se kterym odesilatel zpravu zasifruje a príjemce ji rozsifruje; takovato metoda se nazíva symetrická. V dalsím uvidíme, ze existují take asymetricke sifrovací algoritmy: v techto systemech potrebuje pouze príjemce tajny klícc. V teto kapitole se budeme zabívat v jistem slova smyslu pouze temi nejjednodussími sifrovacími algoritmy a to takovými, ze v nich je jedno a totez písmeno nahrazeno jedním a tímtez symbolem. Napríklad písmeno e obsazene v textu by se zasifrovalo pomocí písmena K. 11 12 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! Nejdríve nekolik slov k terminologii. Pojmy kryptologie a kryptografie pochazí z reckych slov Kpvnroa (tajní) a AoYoa (slovo, smysl) a jpaipeiv (psat).Obe slova oznacují umení a vedu, ktera se zabíví rozvojem metod k utajení zprív. (Mnozí autori rozlisují mezi kryptografií, tj. vedou o vívoji kryptosystemu a kryptoanalyzou, umením tyto kryptosystemy prolomit a oznacují slovem kryptologie, spojení techto ved.) Text, retezec znaku nebo písmen, kterí chceme zprostredkovat se nazíví zprava; obvykle budeme zpravu reprezentovat pomocí malích písmen a, b, c,.... Zasifrovanou zpravu budeme nazyvat kryptogram; tento pak budeme psít pomocí velkích písmen A, B, C,.... Šifrovací postup nazívame Šifrovaní, odsifrovací postup dešifrování. Odesilatel tedy sifruje, zatímco príjemce musí desifrovat, aby si mohl precíst zpravu. Texty, ktere budeme sifrovat, se skladají z písmen; tato písmena jsou prvky nejake abecedy. V prvních dvou kapitolích bude obvykle nase abeceda prirození abeceda {a, b, c,... }. Budeme take vybírat za abecedu napr. mnozinu {1,..., 26}, mnozinu {0,1} nebo take mnozinu {(a\,... , a64) : a G {0,1}} vsech binarních posloupností delky 64 v prípade, ze to bude pro nase uvahy vhodne. V rozporu s nadpisem kapitoly zaďnají dejiny kryptografie před Caesarem. 1 Spartska skytala Historie zacína asi pred 2500 lety. Jak dobre víme z díla reckeho dejepisce Plutarcha, pouzívala vlída ve SpartŠe níasledujíícíí lstivou metodu pro pŠrenos tajníe zpríavy pro svíe generaíly: odesilatel a pŠrííjemce museli mít oba tzv. skytalu: byly to dva vílce o presne stejnem prumeru. Odesilatel navinul uzkou pergamenovou paísku spiraílovitŠe okolo svíe skytíaly a napsal pak podle díelky svou zpraívu na píasku. Po odmotíaní píasky mohla zpravu císt jen ta osoba, ktera mela skytalu stejneho rozmeru - doufejme, ze to byl pouze príjemce. Uvazujme nyní príklad prevedení do moderního jazyka. Predstavme si, ze jsme zachytili list papíru, na kteríem Šcteme níasledující ŠretŠezec písmen: UNDTLATEDZEEIOVEMEJKSSMYNZ.EOI 1. SPARTSKA SKYTALA 13 IELAENLTCTENLOIEKRZOAMKKIUENN Skytala odesílatele má průměr, který můžeme vyjádřit pomocí počtu písmen. Můžeme tedy jednoduše vyzkoušet růžne rozsahy u. Zvolíme-li u = 7, dostaneme následující nesmysl: U E V S O N L O E N D E M I L O A V D Z M Y I T I M N T E E N E C E K L E J Z L T K K A I K A E R I T O S E E N Z U , u = 9, dostaneme: U Z J E N O M N E K O L I K D E S I T E K T I S I C K I L O M E T R U A V Y L E Z E T E N A N O V E M Z E L A N D E Skytala je prototyp transpozičního algoritmu; pritom písmena zůstavají, co jsou, nezůstanou vsak, kde jsou. Nejedna se o nic jineho, nez o permutaci míst písmen. Transpozicní algoritmy jsou dulezitým stavebním kamenem pro moderní algoritmy. Jinou složkou jsou substituční algoritmy; u nich se zprava stane necitelnou tím, ze kazde písmeno se nahradí jiním, ale jeho pozice zustane zachovana. A nyní nastíavía doba pro vstup Caesara na scíenu. 14 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! 2 Posouvací šifry Jeden z prvních, kdo používal kryptologické techniky, byl římský vojevůdce a státník Gaius Julius Caesar (100-44 př. n. l.). U Suetona (Caes. LVI) mužeme císt Exstant et [epistolae] ad Ciceronem, item ad familiares de rebus, in quibus, si qua occultius perferenda erant, per notas scripsit, id est sic structo litterarum ordine, ut nullum verbum effici posset; quae si qui investigare et persequi velit, quartam elementorum litteram, id est D pro A et perinde reliquas commutet. Překlad zní približne nasledovne Existují take [Caesarovy dopisy] Cicerovi a znamym o vecech, v kterých psal tajným písmem, pokud neco muselo byt duverne sdeleno. Tzn. zmenil poradí písmen tak, Ze neslo zjistit jedine slovo. Pokud nekdo chtel toto rozlustit o poznat obsah, musel dosadit ctvrte písmeno abecedy, tedy D, za A, a podobne toto provest se zbívajícími písmeny. Šifru použitou Caesarem obdržíme tím zpusobem, že místo abecedy zpravy budeme psat abecedu kryptogramu, ale o 23 míst doprava, což znamena totež, jako posunutí doleva o 3 místa: Zprava: abcdefghijklmnopqrstuvwxyz Kryptogram: ABCDEFGHIJKLMNOPQRSTUVWXYZ. JŠifruje se tím zpusobem, že nahradíme písmeno zpravy pod ním stojícím písmenem kryptogramu. Napríklad ze slova zpravase stane zdanlive nesmyslne slovo CSUDYD. Desifrovíní je zrovna tak jed-noduche: Každe písmeno kryptogramu se nahradí nad ním stojícím písmenem zpravy. Clovek se ovsem muže ptít, proc Caesar zvolil príve posunutí o 3 místa. Odpoved' je jednoducha: nebyl na to vubec žídní duvod! Samozrejme mužeme posunout abecedu o libovolní pocet míst. Protože se nase abeceda sestava z 26 písmen, existuje prave 26 takových sifrovaní; mluvíme o posouvacích neboli 2. POSOUVACI ŠIFRY 15 aditivních sifrach a mezi nimi je samozrejme triviýlní sifrovýní a — A, b — B, ..., z — Z, ktere samozŠrejmŠe nikdo nebude pouŠzívat k Šsifrovíaní tajnyích zpríav. Vyjasneme si na teto nejjednodussí tríde sifer pojmy šifrovací algoritmus a klíč. Šifrovací algoritmus je bezprostŠrednŠe vidŠet na Šsifrovíaníí slova zprava. Naproti tomu klííŠc je napŠr. poŠcet mííst, o ktería je nutno posunout abecedu. KlííŠc níam pŠresnŠe popisuje, jak se algoritmus pouŠzije ve speciíalníí situaci. Partneri, kterí spolu komunikují, se musí dohodnout o sifrovacím algoritmu a o zpusobu prenosu klíce. SŠifrovací algoritmus a klíŠc mají dvŠe zcela rozliŠcníe funkce a musí byít proto zcela jasnŠe rozliŠsitelníe. Algoritmus jako takoví je zpravidla velmi velký. Pritom mnoho algoritmu se realizuje pomocí mechanickeho zarízení nebo spoŠcívía na více Šci míenŠe veŠrejnŠe pŠrístupníem postupu. Z toho plyne, Šze algoritmus nelze v podstatŠe udrzet v tajnosti. To pak znamena, ze celková bezpečnost kryptosýstému leží na utajení klíče. Tento pozadavek se zda bít prehnany, je ale nanejvís realistickí: pro nekoho, kdo chce neoprávnene císt nasi zprívu, je srovnatelne lehke získat algoritmus (napr. odcizit ci zkopírovat prístroj). A pak tento zlosyn ví vse o algoritmu; nezna ale (doufejme) soucasní klíc. Z toho nutne plyne, ze klíc je nutno predat bezpecnou cestou. K cemu pak vubec sifrovaní zpravy? V tom prípade jsme mohli hned prenest celou zpravu touto bezpecnou cestou! - Tato namitka je plne opravnena, lze ji vŠsak níasledujícími argumenty podstatnŠe zmírnit. 1. Zpraíva bíyvía zpravidla velmi dlouhía, klíŠc se obvykle volí co nejkratŠsí. DodateŠcnaí níamaha pro spoleh-livyí pŠrenos klíŠce je pak silnŠe redukovatelnaí. Proto je pravdŠepodobnost, Šze klíŠc bude odposlouchaívían, relativnŠe malía. 2. Odesilatel a pŠríjemce si mohou libovolnŠe vybrat dobu pŠredíaní klíŠce. KlíŠc lze napŠríklad dohodnout dny pŠred pŠrenosem zpríavy. Naproti tomu se zpríava musí odeslat v okamŠziku, kteryí není ovlivnitelnyí komunikujícími partnery (uvazme politicke udílosti, vyvoj na burze, atd.) 3. S pomocí tzv. Public-Key systemu lze klícce bez nebezpecí vymenit, abychom pak provedli zakódovaní s pomocí konvencních postupu. 16 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! Upozornenie jeste na dalsí nebezpečí. Je-li klíč vymenen, musí bít spolehlive ulozen; nesmí nastat prípad, ze jej bude mozno z prístroje zjistit. Experti souhlasí s tím, ze klíč je pouze tehdy bezpečne ulozen, pokud prístroj nelze najít fyzikalními prostredky. Nyní ale nastala doba na zmenu stran. Kryptologie se nezabíva pouze tím, ze navrhuje bezpečnostní systemy pro prenos zprav; jedna z jejich ustredních uloh je takove systemy rozluštit (nebo se o to alespon pokusit!). Začneme tedy na okamzik hrat roli zlosyna - to lze vyjadrit trochu slusneji nasledovne: pracujeme jako kryptoanalytik a provídíme kryptoanalýzu kryptogramu (prípadne zkoumaneho kryptosystemu). Tvurce kryptosystemu musí vzdy počítat s mozností, ze algoritmus je protivníkovi znam (alespon po delsí dobu). Krome toho se doporučuje protivníka nepodceňovat a prisoudit mu co nejvyssí inteligenci; nazveme je Mr. X. Predstavme si, ze Mr. X zachytil nasledující kryptogram: BIBV HXZIDI CH VMVQ BIRVI Na zaklade jistích indicií dosel k domnence, ze tento text byl zasifrovín pomocí posouvací sifry (napr. by mohl najit jeden z vyse popsanych sifrovacích stroju). Takovyto text pak lze principialne analyzovat dvema zpusoby. l.Systematicke prozkoušení všech moZnosti Protoze se jedna pouze o 26 posunutí, není nase namaha prílis velka. Mr. X ale muze tuto nímahu podstatne zredukovat, omezí-li se pouze na malou čast zachyceneho textu. Uvazme napr. slovo VMVQ. Vyzkousíme-li vsechna posunuti teto posloupnosti písmen, zjistíme snadno, ze ze vsech moznych ekvivalentu pouze slovo neni daví smysl. Je tedy více nez pravdepodobne, ze kryptogram byl získan posunutím o 8 míst. Mr. X pak proverí svou domnenku tím, ze desifruje celkoví text: tato zprava uz neni tajna. Tato metoda pro prolomení posunovací sifry je proto tak dobra, protoze vetsina kombinací písmen je v čestine zcela bez víznamu. Ačkoliv je toto pozorovaní dulezity zaklad pro mnoho kryptoanalytickych 2. POSOUVACI SIFRY 17 metod, ma víse uvedena metoda velkou nevýhodu. Nelze ji totiz (nebo jen s neumerne velkou namahou) automatizovat. Pokud by tato metoda mela byt provedena poCítaCem samostatne, pak by bylo nutno ulozit vsedina (nebo v kazdem prípade velmi mnoho) Ceska slova. I kdyz je to v printipu mozne, pouzívali byChom zbyteCne silní nastroj. A to nelze nasledujíCí metode vytknout. 2.Statistička analýza V Cestine, nemCine a angliCtine (stejne jako v kazdem prirozenem jazyku) se nevyskytují vseChna písmena se stejnou Cetností; spíse ma kazde písmeno svou CharakteristiCkou Cetnost. Tyto poCetnosti jsou uvedeny v nasledujíCí tabuke: Písmeno Cetnost v % Cetnost v % nemCina angliCtina a 6.51 6.40 b 1.89 1.40 C 3.06 2.70 d 5.08 3.50 e 17.40 10.00 f 1.66 2.00 g 3.01 1.40 h 4.76 4.20 i 7.55 6.30 j 0.27 0.30 k 1.21 0.60 l 3.44 3.50 m 2.53 2.00 Písmeno Cetnost v % nemCina Cetnost v % angliCtina n 9.78 5.60 o 2.51 5.60 p 0.79 1.70 q 0.02 0.40 r 7.00 4.90 s 7.27 5.60 t 6.15 7.10 u 4.35 3.10 v 0.67 1.00 w 1.89 1.80 x 0.03 0.03 y 0.04 1.80 z 1.13 0.02 Muzeme pak písmena rozdelit v zavislosti na Cetnosti jejiCh vískytu do Ctyr skupin (napr. v nemCine). V první skupine budou nejpoCetneji se vyskytující e a n, v druhe skupine budou písmena s jeste relativne 18 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! velkou četností (cca. 7%); ve tretí skupine jdou uvedena písmena s malou, ale dosti podstatnou četností zatímco v poslední skupine jsou uvedena zanedbatelní písmena. Skupina Počet písmen skupiny v textu e, n 27.18% i, s, r, a, t 34.48% d, h, u, l, c, g, m, o, b, w, f, k z 36.52% P, v L y x q 1.82% Co se stane, desifrujeme-li nejakou (nemeckou) zpravu? Pak samozrejme zustane četnost písmen za-chovanana; avsak jednotliva četnosti písmen nemusí bít jiz prirazeny svím odpovídajícím písmenum. Napr. zasifrujeme-li ve zprave písmeno e za X, pak bude písmeno X nejčetnejsím písmenem kryptogramu, zasifrujeme-li y za S, nebude se S v kryptogramu temer vyskytovat. Konkretne Mr. X ve sve analíze zpravy MRNBNA CNGC RBC WRLQC VNQA PNQNRV vytvorí seznam jednotlivích četností Písmeno: ABCDEFGHIJKLMNOPQRSTÚVWXYZ Četnost: 22400010 00 0136O1340002 1 00 0. Písmeno s nejvetsí četností je N; muzeme tedy v prvním priblízení vyjít z toho, ze N v kryptogramu odpovídí e ve zpríve. Pozor: Protoze cela metoda je zalození na statistice, není nic 100% jiste! Mr. X se musí zabívat dalsím potvrzením sve domnenky. Je-li jeho domnenka spravna, jední se o posunutí o 9 písmen. Pak by muselo R odpovídat písmenu i (to potvrzuje jeho hypotezu, ze se R vyskytuje relativne často) a W by muselo odpovídat písmenu n - to je vsak v rozporu s tím, ze W se vyskytlo pouze jednou. Z druhe strany se 3. MONOABECEDNI ŠIFROVÁNI 19 vyskytují A, B, C relativne casto (mely by odpovídat r, s, t, a ekvivalenty x, y, z (totiz G, H, I se prakticky nevyskytujíí). Mr. X se tedy pokusí provest posunutí zpet o 9 písmen a obdrzí dieser text ist nicht mehr geheim. Vyíňse uvedenyí text je smysluplnyí a tedy jeho domnňenka je s koneňcníym zíavňerem potvrzena. Zaverem nekolik poznamek. Druha metoda mí bezespornou prednost, ze ji pocítac muze sam lehce províest. Protoňze zde ale rozhodující roli hrají statistickíe uívahy, musí byít zachovíana jistía obezňretnost. Ob-zvlaste pri kratkích textech muze vest naivní hledíní po nejcasteji se vyskytujícím písmenu do slepe ulicky. Pokud ale uvaíňzíme jeňstňe ňcetnosti nňekolika jinyích písmen, lze pouňzít algoritmy, kteríe jsou i pňri velmi kraítkíych textech velmi uíspňeňsníe. 3 Monoabecední Šifrování IŠifrovaní se nazíva monoabecední, jestlize kazde písmeno abecedy zpravy je zasifrovíno jako nejake písmeno teze abecedy. Monoabecední sifrovíní si muzeme predstavit tím, ze pod abecedu zpravy napíseme abecedu kryptogramu. Napr. nísledující metody sifrovaní jsou monoabecední. Zpráva: abcdefghijklmnopqrstuvwxy z Kryptogram: QWERTZUIOPASDFGHJKLYXCVBNM. Zpráva: abcdefghijkl mn o p q r s t uvwxy z Kryptogram: Q^Eo;k/TU±OP3Y79V245. Poslední príklad by nam mel pnpomenout, ze zprava a kryptogram nemusí bít definovíny nad stejnou abecedou. Je-li tomu ale tak, pak kaňzdíemu monoabecedníí ňsifrovíaníí odpovíídía permutace píísmen abecedy; obríacenňe lze kaňzdíe permutaci pňriňradit monoabecedníí ňsifrovaíníí. Z toho zejmíena plyne, ňze maíme pňresnňe 20 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! 26! = 26 • 252 • 1 w 4 • 1026 monoabecedních sifrovíní nad prirozenou abecedou {a, b, č, ..., z}. 4 Zamenne sifry Chceme-li pouzít k zakódovaní písmen pocítac, pak identifikujeme obvykle a (resp. A) s 1, b (resp. B) s 2, atd.; x (resp. X) s 24, y (resp. Y) s 25 a z (resp. Z) s 0. Pomocí teto reprezentace lze posouvací sifry popsat obz^ísť dobre: posunutí o s míst odpovída prictení císla s modulo 26. Konkrétne postupujeme nasledovne: • Nejdríve prévedeme písmena zpravy do odpovídajících císlic; • pak pripocteme k tomuto císlu císlo s; • z vísledku uvazujeme pouze zbytek, kterí obdrzíme po delení 26; tento zbytek prelozíme zpítky na odpovídající písmeno. Tímto zpusobem získame príslusny text kryptogramu. Príklad.Nyní chceme zasifrovat písmeno a pomocí posunovací sifry, ktera posouva o 3 místa. • a se reprezentuje pomocí císlice 1; • 1 + 3 = 4; • 4 je reprezentače písmena D kryptogramu. Pri desifrovaní písmene B postupujeme nýsledovne: • B se reprezentuje pomocí císlice 2; 4. ZAMENNE SIFRY 21 • 2 - 3 = -1; • Zbytek —1 po delení26 je 25 a to odpovídí písmenu y zprívy. S pomočí teto metody lze tzv. čísla sčítat.Cela vec se stíva podstatne zajímavejsí, pokud budeme písmena nísobit.To lze provest nasledovne: Abychom mohli nísobit písmena císlem t, budeme pocítat opet modulo 26. Tzn., ze vynasobíme císlo odpovídající zadanemu písmenu císlem t a uvazujeme zbytek po delení 26. Pak je tomuto zbytku odpovídající písmeno vísledek tohoto násobení. Vynasobíme-li hodnotu kazdeho písmena zpravy císlem 2, obdrzíme Zpráva: abčdefghijklmnopqrstuvwxyz Kryptogram: BDFHJLNPRTVX Z BDFHJLNPRTVXZ. Vidíme, ze vzdy dve písmena (napr. ha u) ním davají tentíz součin (v nasem prípade P). Proto nemuzeme tuto substituci pouzít jako sifru. Pro kazde sifrovaní musí totiz platit doposud nevyslovene ale zcela samozrejme pravidlo, ze text zprávy musí, byt s pomocí klíče jednoznačne rekonstruovátelny z kryptogramu. Mnozí povazují tozo pravidlo za příliš omezující; lze ho všák zeslabit á zároveň odůvodnit: Kazdí kryptogram musí byt s pomocí klícce desifrovatelny nejakým počítačem. Pokusme nase stestí jeste jednou a vynasobme vsechna písmena císlem 3: Zpráva: abčd e fgh i j klmnopqrst u v wx y z Kryptogram: CFILORUXADGJMPSVYBEHKNQTWZ. V tomto prípade získíme skutecne monoabecední sifrovaní. Lehkím prozkousením vidíme, ze obdrzíme monoabecední sifrovaní prave tehdy, kdyz nasobíme jedním z císel 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 nebo 25; takoveto sifrovaní nazívíme multiplikativní sifry. Mame tedy (vcetne trivialní sifry) príve 12 multiplikativních sifrovaní; jejich pocet je tedy jeste mensí nez pocet posouvacích sifer. Proto muzeme od techto sifer ocekavat velmi nepatrnou kryptografickou bezpecnost. 22 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! Mužeme ale navzajem kombinovat posouvací a multiplikativní sifry. Za tímto ucelem pricteme nejprve k písmenu zprívy císlo s a vísledek vynasobíme dalsím císlem t. Podle tohoto predpisu získame opet ssifru, tzv. zámennou (afinní)šifru, kterou budeme oznacovat [s, t]. KlíC žímenne sifry [s, t] sestava z dvojice císel (s, t) (prirozene musí bít pro každou zímennou ssifru císlo t zvoleno tak, že nasobení císlem t je multiplikativní sifra; t tedy musí byt jedno z vyse uvedenych císel 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 nebo 25). Pocet vsech žamenních sifer vypocteme jako pocet vsech posuvacích sifer vynýsobený poctem vsech multiplikativních sifer; tedy pocet vsech žýmennych sifer je 26 • 12 = 312. Toto císlo je už tak velke, že pri rucní kryptoanalýže nam systematicke proverení vsech možností dí pekne zabrat. 5 KlíCova slova Velke množství monoabecedních sifer získame nasledujícím zpusobem: klíC sestaví ze dvou komponent -klíCoveho slova a klíCoveho písmene. Nejdríve vytvoríme z klícoveho slova posloupnost písmen, ve ktere se každe písmeno vyskytne pouze jednou. To získíme nasledujícím zpusobem, že každe písmeno se pri svem druhem, tretím, ... vískytu vyskrtne. Míme-li zvoleno napríklad klícove slovo MATEMATIKA, získame posloupnost MATEIK. Napisme nyní tuto posloupnost pod abecedu zpravy, a to tím zpusobem, že bude zacínat príve pod klícovím písmenem. Napr., zvolili jsme jako klíccove písmeno j, obdržíme Zprava: abCdefghi j k l mn o pqrstuvwxyz Kryptogram: MATE IK . 6. DALSI JEDNODUCHÉ ŠIFRY 23 Na závěr napíšeme zbývající písmena kryptogramu v abecedním pořádku, přičemž začneme po posledním písmenu klíčoveho slova. V našem případe pak získame Zpráva: abcde f ghi j kl mn o p q r s t u vw x y z Kryptogram: QRSUVWXYZMAT E IKBCDFGHJLNOP. Zřejme lze každé monoabecední sifrovaní získat pomocí vhodneho klíčoveho slova. 6 DalSí jednoduché Šifry Hillova Šifra Hillova sifra linearne transformuje d znakU otevreneho textu na d znakU sifroveho textu. Bude-li d = 2, pak Šifrování zahrnuje nasobení regularní matice K blokem otevreneho textu M, t.j C = KM. Desifrovaní zahrnuje nasobení matice K-1 blokem sifroveho textu C, tj M = K-1C. Příklad. d = 2 a budeme pracovat nad abecedou s 27 znaky (26 písmen a mezera), tj. nad Z27 (to je potreba z toho duvodu, abychom pracovali nad konecným telesem). Zvolme K=(í 7)'pak K-i^i4i 10) 24 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! 7 Kryptoanalyza Filozofii moderní kryptoanalyzy lze popsat Kerckhoffovím principem; tento princip byl poprve formulovan v knize La cryptographié militaire (1883) holandskím jazykovedcem Jeanem Guillaumem Hubertem Victorem Francoisem Alexandrem Augustem Kerckhoffem von Nieuwenhofem (1835-1903). KerckhoffUv princip. Spolehlivost kryptosystemu nesmi záviset na utajeni algoritmu. Spolehlivost je zaloZena pouze na utajeni klice. To je zasadní varovaní pro tvurce kryptosystemu. Nesmíme bít tak naivní a prepokladat, ze Mr. X nema moznost získat znalost algoritmu. Dejiny kryptografie jsou plne príkladu, kdy objevitel kryptosystemu zalozil duveru na nem tím, ze jeho algoritmus nikdy nemohl bít znam. Naopak: Cílem moderní kryptografie musí bít vívoj systemu, ktere zustanou bezpečne i v tom prípade, ze o algoritmu bylo dlouhou dobu verejne diskutovano. Prikladem je DES-algoritmus. Kryptoanalytik rozlisuje nísledující prípady ítoku na sifru: 1. Known ciphertext attack: Kryptoanalytik zní relativne velkou číst kryptogramu. To je opravdu realní predpoklad, protoze je zpravidla celkem jednoduchí zajistit si (libovolne dlouhe) čísti kryptogramu. 2. Known plaintext attack: Kryptoanalytik zna relativne malou čast související zpravy/kryptogramu. Tato hypoteza je realnejsí, nez se na první pohled zda. Totoz často ví Mr. X, o co se jední, a muze proto uhadnout nekolik hlavních slov. Mimoto lze nalezt zpravidla standardní uvodní a zaverečne fríze atd. 3. Chosen plaintext attack: Ma-li kryptoanalytik prístup k sifrovacímu algoritmu (s aktuílním klíčem), muze pak za íčelem zjistení klícce kídovat vybrane čísti zprívy a pokusit se udelat z obdrzeneho kryptogramu zavery o strukture klícce. Mohl by napríklad do stroje vkladat pravidelní zdrojova slova, napr. posloupnosti stejních písmen (aaa ...) za íčelem jejich zakídovaní. Nebezpečí takovehoto utoku spočíva v tom, ze by se mohlo Mr. X podarit primet sifrovací stroj k tomu, aby zakódoval zdinlive neskodne zpravy, s jejichz pomocí pak Mr. X muze zasifrovat zpravu, kterou by odesilatel nikdy nezasifroval. Jak nebezpečny muze byt takovíto ítok, se obzvlaste ukaze, 7. KRYPTO ANALÝZA 25 kdyz pomyslíme na to, ze mnohe sifrovatí prístroje pouze nesifrují, ale take podpisují: Pokud je algoritmus tak slabí, ze dovolí tento utok, pak by mohl Mr. X vytvorit z nevinne vyhlízejíCkh podepsaníCh zprav brizantní, platne podepsaní dokument. Kazde monoabeCední sifrovaní prirozeneho jazyka muze byt dosti lehCe prolomena. Musíme si pouze ujasnit, ze kazde monoabeCední sifrovíní (prirozeneho jazyka) lze prolomit jiz za vysoCe slabeho (priCemz nánejvýS realistiCkeho) predpokladu 1. Predvedenie pouze prinčip algoritmu. Predstavme si, ze Mr. X zaChytil kryptogram o delCe asi 500 písmen a ze ví, ze kryptogram byl zasifrovan pomoď monoabeCedního sifrovaní. Krok 1. Nejdríve Mr. X zjistí Cetnosti písmen kryptogramu. Tím získa ekvivalent e, n spolu s mnozinou písmen {i, s, r, a, t}. Jednotliví písmena z teto mnoziny pritom zpravidla jeste nemuze identifikovat. Krok 2. Nyní Mr. X spoCte bigramy, tzn. píry po sobe sledujkkh písmen. NejCastejsí bigramy nemeCkeho jazyka jsou uvedeny v naísledujíCí tabulCe: Bigram Cetnost Bigram Cetnost en 3.88% nd 1.99% er 3.75% ei 1.88% ch 2.75% ie 1.79% te 2.26% in 1.67% de 2.00% es 1.52% Tímto zpusobem muze Mr. X izolovat písmena o nejvetsím vískytu. Napr. dvojke er mí velmi velkou Cetnost, zatímCo vseChny jine kritkke kombinaCe s e se vyskytují dosti zrídka (ea a et jsou opravdu velmi rídke - pod 0.5%) a take es se vyskytuje se signifikantne malou Cetností. Konkurentem by mohla bít dvojke ei; tu vsak lze vyradit tím zpusobem, ze testujeme inverzní dvojke: jen u teChto dvojiC je tomu tak, ze jak v 26 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! puvodní posloupnosti, tak i v obracenem poradí se vyskytují s prakticky stejnou cetností. Tímto zpusobem muze Mr. X nejprve izolovat rozlisitelna písmena skupiny { i, s, r, a, t} s druhou nejvetsí cetností. Dale muze rozpoznat písmena c a h podle toho, ze se jako dvojice vyskytují relativne casto ale samostatne velmi zrídka. Tímto zpusobem muze prakticky bezchybne identifikovat nejcasteji se vyskytující písmena; tj. písmena e, n, i, s, r, a, t, h, c, kteraí tvoňrí více neňz dvňe tňretiny textu. A to vňsechno lze províest automaticky pomocí pocítace! Krok 3. Pak nechía Mr. X dosadit rozpoznanía písmena do celíeho textu. Jinak ňreňceno: poňcítaňc rozňsifruje zníamíe díly textu. Ten se objeví na obrazovce, pňríňcemňz nerozluňstňenaí písmena se nahradí uíňcelnňe príazdnyími znaky. Zpravidla tento text není rozňsifrovían, nebo se jeho ňsifrovíaní províadí jeňstňe stíale níaroňcnňe. Dalňsí písmena vsak muze inteligentní Mr. X na zaklade kontextu lehce hádat! To provede a necha si vzdy po kazdem kroku ukaízat zmňenňenyí text. Po dvou nebo tňrech krocích dospňeje k velmi dobňre ňcitelníemu textu. Shrnuti: Monoabecední sifrovíní nad prirozením jazykem jsou pozoruhodne nejistí (pHrozený jazyk ma mílo písmen, jez jsou dost nerovnomerne rozdelena). V soucasne dobe proto pouzívíme bud' monoabe-cední ňsifrovíaní nad umšelyám jazykem nebo polyabecední ňsifrovíaní. Nejpopulíarnňejňsí monoabecední ňsifrovaíní je DES - Data Encryption Standard. Tento algoritmus byl vyvinut firmou IBM a v roce 1977 se stal standardem. DES nesifruje písmena, níbrz symboly 0 a 1, a to 64 naríaz (v pňrípadňe, ňze pouňzívíame DES k zaňsifrovaíní obyňcejníeho textu, musí byít písmena nejdňrív pňreloňzena do retezce bitu. Jednou z takovích metod je pouzití ASCII kodu. Tedy DES je monoabecední algoritmus nad abecedou {(a\,..., a64) : G {0,1}}. Jako klíc lze se bere posloupnost binarních retezcu z 56 bitu, tj. vsech klí^u je príve 256 « 7 • 1016. Tento algoritmus byl od samíeho poňcíatku uíplnňe publikovaín - jednalo se o prvníí algoritmus historii, kdy se to stalo. DES se pňrevaňznňe uspňeňsnňe pouňz íva v bankovnictv í. 7. KRYPTO ANALÝZA 27 V roCe 1990 predvedli Biham a Shamir, ze DES je algoritmus vyvinutí podle vynikajítíCh prinápu; vseobeCne vsak prevladí obeCne presvedCení, ze by delka klíCe mela bít vetsí. Biham a Shamir zaroven ukazali, ze mnoho algoritmu príbuzníCh DESu lze jejiCh Chytrou ánálýžOů rozbít. 28 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! Kapitola 2 ProC jednoduse, kdyz to jde i slozite? Slovo, veta a z sifer se zvedá poznaný Život, náhly smysl. Gottfried Benn V teto kapitole se budeme zabívat prevížne polyabeCedními sifrovaními. U techto sifrovaní se písmena FI zprívy nesifrují pomocí teže abecedy. Zejmena tedy nelze polyabecední sifrovíní popsat jednoduse pomocí abecedy zpravy a pod ní napsane abecedy kryptogramu. Prirazení písmene zpravy k nejakemu písmenu kryptogramu nesmí bít provadeno svevolním zpusobem. IŠifrovaní musí splňovat silní požadavek jednoznaCnosti; v opacnem prípade by nebylo možne žadne desifrovaní. Jinak receno: kdyby nebylo sifrovaní jednoznacne, nenachazel by se príjemce principiílne v žadne lepsí situaci než Mr. X! Typickím príkladem algoritmu, u ktereho není sifra jednoznacna, je homofonní sifra. Takoveto algoritmy budou predvedeny v nasledujícím odstavci. Nejvetsí cast kapitoly bude vsak venovana zkoumaní takovychto 29 30 KAPITOLA 2. PROC JEDNODUŠE, KDYZ TO JDE I SLOZITE? polyabecedních sifer, ktere vzniknou z kombinací monoabecedních algoritmu; takovímto charakteristickím pŠrííkladem je Vigenerevo Šsifrovaíníí. 1 Zneprůhlednení cetností Jak muzeme dosahnout toho, ze vsechna písmena kryptogramu se v nem vyskytují se stejnou cetností? Zcela jednoduse: Šifrovací predpis priradí kazdemu písmeno nikoliv znak, nybrz množinu znaku (v nasem príkladu to budou dvojice Šcíísel), a to tak, Šze jsou splnŠeny níasledujíícíí podmíínky: - Aby bylo desifrovíní jednoznacne, musí byt mnoziny príslusející ruzním písmenu zpravy disjunktní. - PoŠcet písmen kryptogramu, kteríe patŠrí k nŠejakíemu písmenu zpraívy, odpovídaí Šcetnosti tohoto písmene. V nasledujícím príkladu homofonní sifry jsou znaky kryptogramu tvoreny 100 dvojicemi císlic 00, 01, ... , 99: Homofonní sifra Písmeno Zasifrovaní (nemcina) a 10 21 52 59 71 b 20 34 c 28 06 80 d 04 19 70 81 87 e 09 18 33 38 40 42 53 54 55 60 66 75 85 86 92 93 99 f 00 41 g 08 12 97 h 07 24 47 89 i 14 39 46 50 65 76 88 94 j 57 k 23 l 16 03 84 1. ZNEPR UHLEDNENI ČETNOSTI 31 Homofonní sifra Písmeno Zasifrovaní (nemcina) m 27 11 49 n 30 35 43 62 63 67 68 72 77 79 o 02 05 82 p 31 q 25 r 17 36 51 69 74 78 83 s 15 26 45 56 61 73 96 t 13 32 90 91 95 98 u 29 01 58 v 37 w 22 x 44 y 48 z 64 Pri zasifrovaní se priradí písmenu zpravy nahodne jeden z príslusních znaku kryptogramu. Príjemce pak muze pomocí víse uvedene tabulky jednodus desifrovat nasledující text: 00097449599505371089483102139964713748836696427752. ProtoŠze znaky byly vybríany níahodnŠe, vyskytuje se kaŠzdyí znak (v naŠsem pŠrípadŠe dvojice Šcíslic) stejnŠe casto (odtud jmeno homofonní). Prípadny kryptoanalytik je tak postaven pred podstatne tezsí ulohu nez pŠri zkoumaíníí monoabecedníího Šsifrovaíníí. Avsak nemeli bychom prílis jasat, nebot' kryptoanalyza je take zde mozní. Analíza je zalozena na pozorovaní, ze cetnosti písmen kryptogramu jsou sice stejne, ale ze z uvazovaní nad dvojicemi znaku kryptogramu muzeme stejne dobre získat novou informaci. Budeme diskutovat dva príklady 32 KAPITOLA 2. PROC JEDNODUŠE, KDYŽ TO JDE I SLOZITE? • Uvazuje-li Mr. X ekvivalent písmena c, tedy dvojici 28, zjistí, ze v uvahu jako prirozený nasledník prichazí pouze urcita písmena kryptogramu. Toto jsou dvojice 07, 24, 23, 47, 89, tedy ekvivalenty písmen h a písmenk. • Zkoumame-li ekvivalent písmene e, tedy napr. 99, zjistíme, ze jiste znaky kryptogramu se vyskytují jako predchudci a nasledníci 99 - a to prakticky stejne pocetne. Musí se pak jednat o ekvivalenty Vigenerovo zašifrování bylo veřejnosti zpřístupněno v roce 1586 francouzským diplomatem Blaisem de Vigenere (1523-1596). Zakladní idea je pouZívat střídave rUzná monoabecední sifrovaní. Tato idea je tak prirazení, ze variace Vigenerova zasifrovaní byly vícenísobne znovuobjeveny. Dva z nejdulezitejsích predchUdcU byli Johannes Trithemius (1462 - 1516), jehoz knihy Poligraphia (1518) a Steganographia (1531) byly uverejneny posmrtne, a Giovanni Battista Deila Porta (1538-1615), vynalezce prístroje Camera obscura, kterí v roce 1558 ve sve knize Magia naturalis zverejnil polyabecední algoritmus, kterí vykazuje velkou podobu s Vigenerovou sifrou. V teto kapitole se budeme hlavne zabívat Vigenerovou sifrou, ktera je nejznamejsí mezi vsemi perio-dickími polyabecedními algoritmy, a to ze dvou duvodu: • Vigenerova sifra je prototyp mnoha algoritmu, ktere byly profesionílne pouzívany az do naseho století (Caesarova sifra je zvlastním prípadem Vigenerovy sifry pro klícove slovo delky 1). • Pri kryptoanalíze se seznamíme se dvemi extremne dulezitími metodami, a to Kasiskeho testem a Friedmanovým testem. písmene i. 2 Vigenerova sifra Abychom mohli pouzít Vigeneruv algoritmus, potrebujeme dve veci: klíCové slovo a VigenerUv Čtverec. 2. VIGENEROVA ŠIFRA 33 Vigenerňv čtverec Zpráva: abcde fgh i j k lmnopqr s tuvwxyz Kryptogram: ABCDEFGH I JKLMNOPQRSTUVWXYZ BCDEFGH I JKLMNOPQRS TUVWX Y Z A C D E F G H I JKLMNOPQRS TUVWXY Z A B D E F G H I JKLMNOPQRS TUVWX Y Z A B C E F G H I JKLMNOPQRS TUVWX Y Z A B C D F G H I J KLMNOPQRS TUVWX Y Z A B C D E G H I J KLMNOPQRS TUVWX YZABCDEF HI J KLMNOPQRS TUVWX YZABCDEFG I JKLMNOPQRS TUVWX YZABCDEFGH JKLMNOPQRS TUVWX YZABCDEFGH I KLMNOPQRS TUVWX YZABCDEFGH I J h LMNO P QR S TUVWXY Z AB CD E FGH I J K MNOPQRS TUVWX YZABCDEFGH I J K L NOPQRSTU VWX YZABCDEFGH I J K L M O P Q R S T U VWX YZABCDEFGH I J K L M N P Q R S T U VWX YZABCDEFGH I J K L M N O Q R S T U VWX YZABCDEFGH I J K L M N O P R S T U VWX YZABCDEFGH I JKLMNOPQ STU VWX YZABCDEFGH I JKLMNOPQR T UVWXY ZABCDEFGH I JKLMNOPQRS U VWX YZABCDEFGH I JKLMNOPQRS T VWX YZABCDEFGH I JKLMNOPQRS TU WXYZABCDEFGH I J KLMNOPQRS TUV XYZABCDEFGH I J KLMNOPQRS TUVW YZABCDEFGH I J KLMNOPQRS TUVWX ZABCDEFGH I J KLMNOPQRS TUVWX Y 34 KAPITOLA 2. PROC JEDNODUŠE, KDYZ TO JDE I SLOZITE? Tento ctverec se skladí z 26 abeced, které jsou napsíny pod sebou takovím zpusobem, ze první abeceda je obycejní abeceda, druhí abeceda je o jedno písmeno posunuta, tretí o dve atd. Jinak receno: Vigeneruv Šctverec sestíavía z 26 posouvacíích Šsifer v pŠrirozeníem poŠradíí. Klícovím slovem muze bít libovolna posloupnost písmen; pro nas demonstrancní prípad vybereme slovo VENUSE. Klícove slovo: VENUSEVENUSE Zpríava: p o l y a b e c e d n i. Pri sifrovaní urcí písmeno klíccoveho slova, ktere stojí nad urcitím písmenem zpravy príslusnou abecedu tj. radku ve Vigenerove ctverci a pomocí teto abecedy bude písmeno zpravy sifrovano. Celkem tedy míame KlíŠcovíe slovo: V E N U S E V E N U S E Zpraíva: p o l y a b e c e d n i Kryptogram: KSYSSFZGRYFM. Je jasne, ze takovato sifrovací metoda staví Mr. X pred podstatne vetsí problemy, nez je tomu pri monoabecedníím sifrovíaníí. Cetnost píísmen je daleko rovnomernejsíí, coz lze poznat i na nasem kraítkíem príkladu. Napr. písmeno zpravy e bylo zasifrovíno do Z a R, písmeno kryptogramu S vzniklo ze trí ruzních písmen zpraívy (o, y, a). 3 Kryptoanalyza PŠrirozenŠe lze i pomocí dneŠsních metod prolomit text zaŠsifrovanyí pomocí Vigenerovy Šsifry. TotiŠz dostateŠcnŠe dlouhyí text vykazuje mnoho statisticky zachytitelníych pravidelností, kteríe umoŠznŠují zjiŠstŠení klíŠcovíeho slova. První uverejnení utok byl publikovan v roce 1863 pruskym majorem delostrelectva Friedrichem Wilhelmem 3. KRYPTOANALYZA 35 Kasiským (1805-1881). Druhí metoda se pripisuje plukovníkovi Williamu Fredericku Friedmanovi (18911969). ObŠe metody slouŠzí k urŠcení díelky klíŠcovíeho slova. ProtoŠze oba testy mají i mimo speciíalní analyízu Vigenerovy sifry svuj dalekosahlí a zísadní víznam, predstavíme podrobne obe metody. Predpokladejme, ze Mr. X zachytil nasledující text, o kterem ví (nebo se domníva), ze je zasifrovan pomocí Vigenerovy Šsifry: Kryptogram ueq p cvckah ki r v g jtd vr iys b cco j q s f s l mwefr z a c i f p s ebxmf vnr z urn l a o v r i c v i d l m y z n y m b vd l o k v i q m f j t d i h f t d m h z g n mw ka x a u vu hjhnuu lsvsj i p j c k t ivsvmz jen z s kah z s u i h q v i bxmf f i p l c xe q x o cav b vrtwmb l n g n i vr l p f vtdmh zgnmwkrx vrqekvr lkdb s ei p u c e aw j s bap mb vszcfuegi tleu o s j o u o h ua v a g z e z i s yrh vrzhumf rr e mwku lkvkgh a h fe u b k lrgmbjihl i i fw m b zhump leuwgrb i l d a g vn vswm z ct j t k i hke h z o l ck e m j f rv h i i wg d q c wthwd s q s vi q m u j s xeows 36 KAPITOLA 2. PROC JEDNODUsE, KDYŽ TO JDE I SLOŽITĚ? 3.1 Kasiskeho test ACkoliv tato pusobiví metoda ánálýžy polyabeCedníCh algoritmu byla poprve publikovana Kasiskím, musíme se zmínit, ze angliCkí matematik Charles Babbage (1792-1871), ktery je mimo jine zním svou konCepCí predChudCe moderního poCítaCe, provedl neuverejnená zkoumání i v kryptografii. Mj. vyvinul Kasiskeho test uz v roCe 1854, tj. devet let pred Kasiskím. Test je zalozen na nasledujíCí myslenCe: vyskytují-li si ve zpráve dve posloupnosti stejníCh písmen (napr. v nemCine slovo ein), mohou obeCne odpovídající posloupnosti v kryptogramu dopadnout ruzne. Jsou-li ale obe poCáteCní písmena posloupností žáSifrovýná pomoCí tehoz písmene klíCoveho slova, jsou i obe písmena kryptogramu stejní. V tomto prípade bude take druhe písmeno posloupnosti v zpráve zasifrováno pomoCí tehož písmene klíCoveho slova; tedy obdržíme i v kryptogramu stejne písmeno. To tedy znamená: Budou-li obe poCíteCní písmena posloupností zprívy zasifrována pomoCí tehož písmene klíCoveho slova, pak sestávají obe posloupnosti v kryptogramu ze stejníCh písmen. Kdy muže nastat prípad, že dve písmena jsou zasifrována pomoCí tehož písmene klíCoveho slova? Práve tehdy, když se klíCove slovo mezi tato písmena n-krít vejde pro vhodne prirozene n. Když nyní Mr. X najde v kryptogramu dve posloupnosti skládajíd se se stejníCh písmen, pak se muže domnívat, že jejiCh vzdílenost je nekolikánýsobek delky klíCe. Tato pravdepodobnost se rídí pravidlem čím delsí, tím milejsí: stejní písmena nevypovídají, že víme neoo o delCe klíCe, a take dvojiCe složene ze stejnyCh písmen by mohly vzniknout náhodne. Z posloupností treCh nebo víCe písmen již muže Mr. X dostateCne spolehlive usuzovat na delku klíCoveho slova. V nasem prípade pak zjistí: 3. KRYPTOANALYZA 37 Posloupnost Odstup Rozklad na součin prvočinitelů odstupu JTD 50 2 • 5 • 5 VIQM 265 5 • 53 TDMHZGNMWK 75 2 • 3 • 3 • 5 MWK 75 3 • 5 • 5 Nejvetsí společný faktor je 5. Optimistický kryptoanalytik by mohl ríči, ze če délka klíčového slova je 5 (ve skutečnosti funguje Kasiskeho test v praxi velmi dobre). Pokud je ale kryptoanalytik opatrný, mluví pouze o silne indicii pro delku klíčoveiio slova 5. Jsou dva duvody pro jeho opatrnost: 1. Mohl by nastat prípad, ze se vyskytují dve posloupnosti kryptogramu ze trí nebo více stejnych písmen, ktere mají vzdalenost nedelitelnou peti. Pak bychom získali jako nejvetsí společní delitel jedničku! (V nasem prípade tento prípad skutečne nastane: posloupnost KAH se vyskytne dvakrat a sice s odstupem 128 = 2 • 2 • 2 • 2 • 2 • 2.) To znamena, ze nesmíme počítat nejvetsí společní delitel slepé pomocí počítače, ale musíme jej určit citem. Musíme tedy zrejme chyby vypustit. 2. Prave proto bychom mohli prijít na myslenku, ze delka klícce by nemusela bít pouze 5, níbrz 10, 15 nebo 30 (nebot' faktory 2 a 3 se vyskytují take dostatečne často). Jinak rečeno: Kasiskeho test nam poskytuje delku klíčoveho slova az na násobek. 38 KAPITOLA 2. PROC JEDNODUzE, KDYZ TO JDE I SLOZITE? Kryptogram UEQP CVCK AHVNR ZURNLAO KI R V G J T D V R VR I CVIDLMY I YS B C CO J Q S ZNY MBVDLO K FSLMWEFR Z AVI Q MF JTD I H C I F P S EBXMF FTD MHZGNMW jkaxa u vuh j hnuu l s vs j i p Tckt ivsvmzjen z skahz s uihqv ibxmff ip lcxeqxo cavb vrtwmb lng n ivrlp f vtdm h z g n mwkrx vrqekvr LKDB SEIPUCEAW J SBAPMB VS Z C FUEG I T L E U OSJOUOH UA V A G Z E Z I S YRH VRZHUMF RR E M WKU L K V K G H A H FE U B K LRGMB JIHLI I FW M B ZHUMP L E U WGRBH Z O L C K CWTHWD S I L D A G VNEM J F R V Q S VI Q MU VSWMZCTHI IWGD J SXEOWS J T K I H KEQ Z vyse uvedeneho duvodu budeme prezentovat druhou metodu; tato určuje ridovi odhad delky klíčoveho slova. Kombinace techto obou metod je prakticky íplne spolehliví. 3.2 FriedmanUv test Tento postup byl vyvinut Williamem Friedmanem v roce 1925. V tomto testu se ptame na to,s jakou šancí se nihodne vybrani pir písmen ze zpmvy sestavi ze stejných písmen. Odpoved' je pak dana indexem koincidence. Predstavme si nejprve libovolnou posloupnost písmen delky n. Bud' n1 počet písmen a, n2 počet písmen b, ..., n26 počet písmen z. Zajímame se o počet dvojic, kdy jsou obe písmena rovna aa. (Nepozadujeme, aby se uvazovane dvojice skladaly za sebou nísledujích písmen.) Pro počet prvního a mame prave n1 mozností, pro vyber druheho a zbíva n1 — 1 mozností. Protoze nezílezí na poradí písmen, je počet hledaních dvojic roven rai'("j1~1). 3. KRYPTOANALYZA 39 Je tedy počet dvojic, kdy jsou obě písmena stejná, roven 9 + 9 + 9 = 9 i=1 Šance obdržení dvojice složené ze stejných písmen je určena následujícím výrazem: n • (n - 1) a nazýva se FriedmanUv index koincidence. Friedman sám znacil toto císlo jako k, proto se obcas pro metodu, kterou v dalsím predvedeme, pouzíva nízev kappa-test. PŠribliŠzme se nyní tomuto indexu koincidence z jiníe strany. PŠredpoklíadejme, Šze bychom vŠedŠeli, Šze se v nasem textu vyskytuje písmeno a s pravdepodobnpstí pi, písmeno b s pravdepodobnpstí p2, ..., písmeno z s pravdepodobnpstí p26. (Konkretní hodnoty pro pravdepodobnosti pi muzeme udat, jestlize víme, ze kterého jazyka text pochíazí.) PŠredstavme si nyní dvŠe libovolnŠe vybranía písmena naŠseho textu. PravdŠepodobnost, Šze první písmeno je rovno a je p1; tedy priblizní pravdepodobnost, ze obe písmena jsou rovna a je p12 (pokud n je do-stateŠcnŠe velkíe, lze takto vzniklou chybu zanedbat). Odpovídající vztahy platí i pro ostatní písmena. Tedy pravdŠepodobnost toho, Šze obŠe písmena jsou si rovna je 26 2 2 2 2 Pi + P2 +-----+ P25 = Pi i=1 * Toto císlo zavisí prirozením zpusobem na pravdepodobnostech p1,p2,... ,p25. Spocteme si dva príkladý. 40 KAPITOLA 2. PROC JEDNODUŠE, KDYZ TO JDE I SLOZlTĚ? • Pro text v nemeckem jazyce mame 26 J^Pi2 = 0.0762. i=1 To znamena, ze níhodne zvolení dvojice písmen se sklada ze dvou stejních písmen s sancí 7,62%. • Predstavme si obracene zcela níhodní text, tj. text, ve kterém jsou písmena divoce promíchana. Pak kazde písmeno se zde vyskytne se stejnou pravdepodobností = 1 Pi = 26. V tomto prípade pak 26 26 1 1 EPi2 ^ 262 = 26 = 0.0385. i=1 i=1 Šance, ze v takovemto textu najdeme dve stejna písmena, se nam zmensila na polovinu. 1. Pokud zname pravdepodobnosti p1,p2,... ,p26 (jako je tomu napr. s nemcinou ci anglictinou), pak víme, ze soucet ctvercu pravdepodobností je priblizne roven indexu koincidence: 26 i=1 ObecnŠe lze pak dokíazat, Šze index koincidence (nebo stejnŠe platnŠe i i2=61 Pi2) je tíím vŠetŠsíí, Šcíím je text neprávidelnejsí, a mensí, cím je text právidelnejsí. Hodnota 0.0385 je absolutní minimum proi index koincidence. TotiŠz 26 1 2 26 1 i=1 i=1 3. KRYPTOANALYZA 41 2. Vrat' me se na okamzik k monoabecedním sifrovaním. Protoze monoabecední sifrovaní je pouze permutace písmen, zustíví rozdelení cetností zachovano. (Četnosti jednotlivích písmen jsou permutovany zaroven s písmeny). Napr. cetnost 0.17 uz nepatrí písmenu e, nybrz jeho ekvivalentu v kryptogramu. Mame tedy, ze pri monoabecedním sifrovaní index koincidence zustava zachovan, zatímco pri polya-becedníím sifrovíaníí klesía, vzhledem k tomu, ze polyabecedníí sifrovíaníí bylo vytvoreno za tíím uícelem, aby se navzíajem vyrovnaly cetnosti jednotlivyích píísmen. Z toho lze odvodit test, kteryí naím ukíaze, zda byl kryptogram vytvoren monoabecedníím sifrovaíníím nebo ne: Nejprve vypocteme index koincidence kryptogramu. Je-li tento index priblizene 0.0762, je sifrovíní pravdepodobne monoabecední. Je-li index koincidence zretelne mensí, muzeme vychazet z toho, ze text byl sifrovan polyabecedním sifrovíním. Nyníí pouzijeme index koincidence k vyípoctu díelky klíícovíeho slova pro text zasifrovanyí Vigenerovou sifrou. Číílem je urcit index koincidence textu bez jeho znalosti. Protoze bylo pouzito polyabecedníího algoritmu, je index koincidence mensí nez 0.0762. Ale o kolik mensí? Odpoved' je, ze to zívisí na delce klícoveho slova. Predpokladejme, ze klícove slovo ma delku 1 a sklada se z navzíjem ruzních písmen. Rozepisme nís kryptogram do 1 sloupcu. Pak se v prvním sloupci nachízejí písmena císlo 1,1+1, 21 + 1,... , tedy vsechna ta písmena, ktera byla zasifrovína pomocí prvního písmene klícoveho slova. Podobne se v druhem, ..., 1-tem sloupci nachazejí vsechna ta písmena, ktera byla zasifrovína pomocí druheho, ..., 1-teho písmene klícoveho slova. 42 KAPITOLA 2. PROCŠ JEDNODUSŠE, KDYZŠ TO JDE I SLOZŠITEŠ? Písmeno Si klíc. slova Si S2 S3 Si 12 3 l l + 1 l + 2 l + 3 2l 2l + 1 2l + 2 ... 3l 3l + 1 ... Podrobnňejňsím studiem vyíňse uvedeníeho schíematu lze vypoňcítat index koincidence. Prvníí pozorovaíníí: Kaňzdyí sloupec byl získían pomocí monoabecedního ňsifrovíaní (dokonce pomocí posouvací sifry). Šance, ze zde vybereme dvojici stejních písmen, je tedy rovna 0.0762. Uvazme nyní dvojice písmen, ktera stojí v ruzních sloupcích. Protoze príslusne sifrovací abecedy byly vybrany nahodnč, muze se takovíto dvojice skladat ze stejních písmen pouze nahodním zpusobem. Pravdepodobnost pro tento jev je podstatne nizsí nez 0.0762, tj. priblizne 0.0385. (Je to presne 26, jestlize je klíňcovíe slovo naíhodnía posloupnost písmen. Pokud ne, je tato pravdňepodobnost o nňeco vyňsňsí.) Druhé pozorovéné: Vypocteme nyní pocet dvojic písmen ze stejnych sloupcu a z ruzních sloupcu. Mí-li níaňs kryptogram celkem n písmen, pak v kaňzdíem sloupci stojí pňresnňe n/l písmen (Vzdíame se uvaňzovíaní zaokrouhlovacích chyb; budeme pňredpoklaídat, ňze text je tak dostateňcnňe dlouhyí, ňze zaokrouhlovací chyby se neprojeví.) Pro vyíbňer jednoho písmene míame pňresnňe n moňzností. Je-li toto písmeno zvoleno, pak je pevnňe urňcen i sloupec, ve kteríem leňzí. V tomto sloupci míame k dispozici jeňstňe zbyívajících n/l — 1 písmen, tedy príavňe tolik moňzností pro víybňer druhíeho písmene. Je tedy poňcet dvojic písmen, kteraí se nachíazejí v tom samíem sloupci roven n • (n — 1)/2= . Protoze míme k dispozici príve n — n/l písmen mimo urcení sloupec, je pocet dvojic písmen z mznýčh 3. KRYPTOANALYIZA 43 sloupců, rovna n. , n2 • (l — 1) Na zaklade víse zmíneneho pak mame, ze ocekavaní pocet A dvojic stejních písmen je roven A = n ^ ^ l) • 0.0762 + n2 ^ 2 ~ 1) • 0.0385. Pravděpodobnost, ze získame dvojici slozenou ze stejních písmen, je rovna A (n — l) n • (l — 1) - V ; 0.0762 + —^--( • 0.0385, n • (n — 1)/2) l • (n — 1) ' l • (n — 1) tj. po uípravŠe A1 [0.0377 • n + l • (0.0385 • n — 0.0762)]. n • (n — 1)/2) l • (n — 1) Zaroveň víme, ze index koincidence I je aproximací tohoto císla; proto platí = 0.0377 • n 0.0385 • n — 0.0762 l (n — 1) n — 1 Vyjídríme-li si z vyse uvedeneho vztahu l, získame dulezitou Friedmanovu formuli pro delku klícoveho slova: 0.0377 n l (n — 1) • I — 0.0385 • n + 0.0762' 44 KAPITOLA 2. PROČ JEDNODUŠE, KDYŽ TO JDE I SLOŽITÉ? Použijme nyní tuto formuli na náš příklad. Najdeme-li všechna obdržíme n = 368, YŽÍí Ui2 = 5924. Mame tedy 5924 I =-= 0.0439. 135056 Jedna se tedy š velkou pravdepodobností o polyabecední šifrovaní. Spočteme nyní delku klícoveho slova / ř« 6.5. To ukazuje současne s výsledkem testu Kasiskeho na to, že delka klícoveho slova je skutečne 5 (a ne 10, 15 nebo 20). 3.3 Určení klíčového slova Jakmile je žjistena delka klíčovího slova, jde o to požnat klíčove slovo samotne. Ale to už není tak težke. Pokud kryptoanalytik Mr. X žna delku klíčoveho slova, ví, že písmena č. 1,/ + 1, 2/ + 1,... příp. č. 2, / + 2, 2/ + 2,... atd. byla žískana pomočí monoabečedního sifrovaní (dokonče pomočí posouvačí sifry). Zpravidla tedy stačí naležt ekvivalent písmene e. V nasem príkladu je / = 5. Ze 74 písmen první monoabecedm časti je 14 rovno V. Proto odpovídá e písmenu V. Z Vigenerova čtverče pak obdržíme , že první písmeno klíčoveho slova je R. Analogičky, Ze 74 písmen druhe, tretí, čtvte a pate monoabecedni častí je 11 rovno E, 8 rovno H, 21 rovno M a 13 rovno S. Proto odpovída e písmenu E, H, M a S. Opetovnym nahlednutím do Vigenerova čtverče pak obdržíme , že dalsí písmena klíčoveho slova jsou po rade A, D, I a O. Rožsifrovaní textu je již standartní žíležitostí. Snadnyím porovnaíním žískíame S. KRYPTOANALYŽA 45 Zprává denhoechst e n o rganisa t i ons s tan d e r f uhrd i e k rypt o l og i e i n v ened i gw os i e i n form e i n er s taa t l i chenbue r o t a e t i gke i uka t en i mmonat bekamen eswurde d a fuer geso r g t da s s s i ew a ehre nd i h r e r ar b e i tn i c htge s toe r tw ur d ens i e d ur ft en i h r eb tausgeueb t wu r deesgab s ch l ue s s e l s e k r etae r e die ihrbue r o im dogenpa lasthatte n und fuerihr etae t i gke i t r u ndzehnd ue r osab e r auch n i ch t ve rla s senb e vors ieeineg estellt e aufga begeloe sthatten 3.4 Záverecne poznámky Videli jsme, ze kázde Vigenerovo sifrování s dostátecne krátkám klíccem (áby se mohlá ke slovu dostát právdepodobnost ve sloupcích) lze jednoduchám zpusobem rozsifrovát. Uvázujme nyní Vigenerovo sifrování s dlouhym klícovym slovem. Budeme predpokládát, ze klícove slovo je dlouhá práve ták, ják je delká zprávy. Ukázeme dvá triky, ktere Mr. X znemozní ucinne vyuzít váse uvedených testu. Trik c.l Mohli bychom se pokusit, pouzít jáko klíc text knihy. Táková klícc má zcelá urcite tu váhodu, ze ho lze prenest bez velkách problemu. Nápr. stácí podát príjemci informáci Eugen Eichhorn: Felix Hausdorff - Paul Mongre, áby mohl zácít desifrovát kryptográm pomocí následujícího slová: As you have already heard, Hausdorf was born in the Silesian metropolis Breslau, today called Wroclaw. In the last days of the Second World War, the German Wehrmacht declared Breslau a fortress; the result was its complete destruction. That happened . . . 46 KAPITOLA 2. PROC JEDNODUSE, KDYZ TO JDE I SLOZITE? V pŠrípadŠe pouŠzití takovíehoto klíŠce se vŠsechny metody na urŠcení díelky klíŠce minou uíŠcinkem. ProtoŠze vŠsak klíc tvorí souvislí text nejake reci (anglictina, nemcina, apod.), pusobí na kryptogram statisticky signifikantní data, takze nemuzeme takovouto sifru oznacit za zcela bezpecnou. První, kdo odhalil tuto slabinu, byl opet Friedman. Proto pujdeme jeste o kus dal. Trik č.2 V prípade triku c.1 mohl Mr. X jeste pouzít nejakou statistiku v dusledku tvaru klícoveho slova. Proto nyní zvolíme za klíŠcovíe slovo prakticky nekoneŠcnou, níahodnou posloupnost písmen, na kterou si se statistickyími testy nepŠrijdeme. NapŠr. lze za ni zvolit vyísledky opakovíaní vrhu ideíalní 26-hranou kostkou. Lze pak ukazat, ze takovýto zpusob sifrovaní je dokonče teoretičky bezpečny! Jinak receno: nabízí nam perfektnýí bezpečnost. Takovyímito perfektníími systíemy se budeme zabyívat v naísledujíícíí kapitole. Kapitola 3 Doprejme si jistoty neboli trochu teorie Mnozí lide používají svoji inteligenci k zjednodušení, mnozí k zesložitení. (Erich Kästner) V tíeto kapitole se pokusíme vytvoŠrit teoretickyí zíaklad pro naŠse dŠrívŠejŠsí uívahy. Zejmíena vymezíme pojem FI perfektní bezpečnosti sifrovacího systemu. 1 Sifrovací systemy Podle nasich predchozích predstav si dohodnou odesílatel a príjemce nějaký klíc a zasifrují s ním zpravu. Spravní pohled na vec se od teto predstavy jemne odlisuje. Budeme nyní uvazovat sýstemý, které sestívají z nejake mnoziný zprív, príslusnych kryptogramu a klíccu. V prípade, ze bychom nísledující myslenky chteli provest zcela precizne, museli bychom se drzet axiomatiky; pro nase ícely vsak bude lepsí vysvetlení pojmu pomocí typickích príkladu. 47 48 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE Takovýmto typickým příkladem množiny zpráv je sbírka matematických knih v knihovne sekce matematika týkajících se kodovýní. Získame pak šifrovací system, pokud budeme navíc uvažovat vsech 312 afinních šifer s příslusnými kryptogramy. Pro jiný případ stací vzít vsechna slova cizího pUvodu vyskytující se v tomto textu, vsech 26 aditivních posouvacích sifrovýní a výsledne kryptogramy. Zaveďme nasledující oznacení. Pomocí písmene m (messages) oznacíme množinu vsech zprav, c (cryptogram) množinu vsech kryptogramu (obvykle se jedna o retezce nad konecnými abecedami E1 a E2) a k (key) mnozinu vsech klíců. Šifrovacím systemem (kryptosystemem) pak nazývame trojici (m, k, c) spolu s dodatecným predpokladem, ze existují funkce (neboli algoritmy) e a d takove, ze e : m x k c d : cxk^m a ze pro vsechna (M, K) G m x k platí: d(e(M, K),K) = M. Zejména tedy pro každý klíč K máme invertibilní funkci (transformaci) fK : m —> c tak, že fK(M) = e(M,K) a fK-1 (fK(M)) = M. System (fK)^k je nažývan Šifrovací algoritmus. Key generator M Encryptor e C = e{M. K) Decryptor d M -—._^ ^Enemy^ a 2. PERFEKTNÍ BEZPEČNOST 49 Víse uvedení definice byla formulovana praotcem moderní kryptografie Claudem E. Shannonem. Uved'me dve trivialní pozorovaní: 1. Je mozne, ze dve ruzne transformace prevadí tutez zpravu na jednu transformaci. 2. Skutecnost, ze transformace je invertibilní, implikuje |M| < |C|. 2 Perfektní bezpečnost Nyní víme, co je sifrovací system. Tezistem tohoto odstavce je podaní definice a popisu bezpecneho sifrovacího systíemu. Intuivne receno znamena perfektní bezpečnost, ze Mr. X nema zadnou sanci zvetsit sve znalosti o systemu, i kdyby mel k dispozici vsechno vedeníí a vsechnu pocíítacovou kapacitu sveta. Predpoklídejme nyní, ze mame sifrovací system (M, K, C) a ze (a) pi je pravdepodobnost, ze je odeslana zprava Mi, 1 < i < n = |M|; tyto pravdepodobnosti se nazývají a priori (nebo teoretičkýe) pravdepodobnosti a jsou prirozene kazdíemu dobríemu kryptoanalytikovi zníamy. (b) pravdepodobnost, ze je pouzit klíc Kj je kj a víber klíce nezívisí na zprave, kterí je prenasena. Tyto dvŠe rozdŠelení pravdŠepodobností indukují rozdŠelení pravdŠepodobností na mnoŠzinŠe moŠznyích kryptogramu, kde pro jistí kryptogram C, rekneme Cu, je pravdepodobnost toho, ze náhodný kryptogram C je roven kryptogramu Cu, je urcena vztahem kde v sume na prave strane scítíme pres vsechny dvojice zprava-klíc (Mi,Kj) takove, ze e(Mi,Kj) = Cu. VyíŠse uvedeníe lze pŠreformulovat níasledovnŠe pomocí pojmu níahodníe veliŠciny. MŠejme tŠri níahodníe veliŠciny M, K, C tak, ze jev M = Mi znamení, ze byla odeslany zprava Mi G M, jev K = Kj znamena, ze byl pro sifrovíní vybrín klíc Kj G K a jev C = Cu znamena, ze byl zachycen kryptogram Cu G C. Zejmena tedy P (M = Mi) = pi a P (K = Kj) = P (K = Kj |M = Mi) pro vsechan i a vsechna k. 50 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE Pripomenme, ze víse uvedení situace je analogickí situaci v teorii kídovaní pro prípad zdroje bez pameti. Pritom povazujeme zdroj za proud symbolu jiste konečne abecedy. Zdroj ma obvykle nejakí nahodní mechanismus, ktery je zalozen na statistice situace, kterí je modelovana. Tento nahodní mechanismus muze byt pomerne dost komplikovaní, ale my se budeme pro okamzik soustredit na nasledující opravdu specialní a jednoduchý príklad. Značí-li Xi i-tí symbol vytvorení zdrojem, dohodneme se pak, ze, pro kazdy symbol aj, pravdepodobnost P (Xi = aj) = pj je nezavislí na i a tedy je nezívislí na vsech minulích nebo v budoucnosti vyslanych symbolech. Jinak rečeno, Xi,X2,... je prave posloupnost identicky distribuovaních, nezívis^ch níhodních veličin. Takovíto zdroj nazveme zdrojem s nulovou paměti nebo zdrojem bez pameti a jeho entropie H je definovína jako H = ~Y1 pj logpj' kde sčítíme pres mnozinu j takovích, ze pj > 0. Pripomenme, ze jsou-li X1;... ,Xm nahodne promenne takove, ze kazda z nich nabíví pouze konečne mnoha hodnot, lze pak povazovat X = (X1,...,Xm) za nahodny vektor a definovat souhrnou entropii Xi,... ,Xm jako H (Xi, . . . ,Xm) = H (X) = - ^ p(xi, . . . ,Xm) • log2 p(xi, . . . ,Xm), (2.1) k kde p(xi,... ,xm) = P (Xi = xi,X2 = X2,... ,Xm = xm). Predpokladejme dale, ze X je nahodní promenna na pravdepodobnostním prostoru Q a A je udílost z Q. Nabíva-li X konečne mnoziny hodnot [ai : 1 < i < m}, je prirozene definovat podmíněnou entropii nahodne promenne X určenou udalostí A jako H (X |A) = - J] P (X = ak |A)logP (X = ak|A). k=i 2. PERFEKTNÍ BEZPEČNOST 51 Uplne stejne, je-li Y jiní nahodna promenní nabívající hodnot bk (1 < k < m), definujeme podmíněnou entropii nahodne promenne X určenou níhodnou promennou Y jako H(X|Y) = £ H(X|Y = bj)P(Y = bj). j Povazujeme H(X |Y) za entropii nahodne promenne X určenou jistou hodnotou Y zprumerovanou pres vsechny hodnoty, jichz muze Y nabívat. Diskretní kanál bez pameti je charakterizovan vstupní abecedou S1 = {a1,..., am} vstupních znaku, vístupní abecedou S2 = {b1,..., bn} vístupních znaku a maticí P kanilu ( P= P11 P12 P21 P22 Vm-11 Vm-12 \ Pm1 Pm2 P1n-1 P1n P2n-1 P2n Pm- 1 n- 1 Pm- 1 n Pmn- 1 Pmn Zpusob pouzívaní kanílu je nísledující: kazdí posloupnost (u1,u2,... ,uN) symbolu ze vstupní abecedy S1 na vstupu se prevede na posloupnost (v1,v2,..., vN) teze delky symbolu z vístupní abecedy S2 na vístup tak, ze P (vfc = b j |ufc = ai) = 'Pij (1 < i < m, 1 < j < n), a to nezavisle pro kazde k. Implicitne je ve víse uvedenem obsazeno, ze pro kazde i, 1 < i < m platí Pij = 1. Matice P s nezípornymi hodnotami takova, ze součet prvku v kazdem radku je roven 1, se nazíva stochasticki matice; v teorii níhodních procesu mluvíme o matici prechodu markovskeho retezce. 52 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE Kapacita komunikacního kanalu je míra jeho schopnosti prenaset informaci. Formalní definice je moti-vovana níze uvedením: Predpoklídejme, ze míme diskretní kanal bez pameti se vstupní abecedou E1 = [a1,..., am}, vystupní abecedou E2 = {b1,..., bn} a maticí P kanalu P = [pij ] = P (b j obdrzenojai odeslíno). Pridíme-li k tomuto kanalu zdroj S bez pameti, kterí vysílí symboly a1,am s pravdepodobnostmi p1,... ,pm, pak vístup kanílu muzeme povazovat za zdroj J bez pameti, ktery vysíla symboly b1,..., bn s pravdepodobnostmi q1,... ,qn, kde qj = YľiL 1 P (b j obdrzenojai odeslíno)P (ai odeslíno) Em i 1 pipij. Jsou-li U a V dva nahodne vektory, definujeme informaci o U poskytnutou V jako císlo I (UjV) = H (U) - H (UjV). Jinak receno, I(UjV) vyjadruje mnozství nejistoty o U odstranene V. Totiz, mnozství informace, prumerne obsazene v jednom znaku zpravy, je entropie vstupního rozdelení H (S) = —Yl i pilog pi. Pri prenosu diskrétním kanalem se ztratí informace H (S /J) = — pi,jlog pi,j prumerne na jeden znak. Zbíví pak H (S) — H (S /J) prenesene informace. Jestlize entropii pocítame v bitech a zname prumernou dobu t, kterou kanal spotrebuje na prenos jednoho znaku, je rychlost prenosu I(SjJ) = H(S) — H(S/J) bitu za sekundu. t 2. PERFEKTNÍ BEZPEČNOST 53 Casto se za jednotku casu volí jeden prenos znaku a potom I (S|J) = H (S) — H (S /J) bitu za jednotku casu. Informace o S podana pomocí J je pak rovna I (S|J) = H (S) — H (S|J) = H (S) + H (J) — H (S, J) a je to funkce, kterí zavisí pouze na pravdepodobnostním rozdelení q1,..., qn, a maticí kanalu P. Proto je prirozene definovat kapacitu C kanalu jako maximalní rychlost prenosu, tedy kde supremum je bríno pres vsechny zdroje bez pameti S, nebo, jeste presneji, nad vsemi moznymi rozdeleními pravdepodobností (p1,... ,pn). V dalsím tedy muzeme povazovat M za zdroj bez pameti s sifrovací funkcí e, pricemz klícce slouzí jako komunikacní kanal. Zíkladním pojmem je pojem klíčové, ekvivokace zavedení Shannonem H (K |C). ten nam merí prumernou nejistotu, ktera nam zustaví po zachycení kryptogramu C. Podobne budeme definovat ekvivokaci zprav jakozto H (M |C). Obcas budeme psat S = (M, K, C) a budeme znacit H (S) klíccovou ekvivokaci H (K |C). Níhodna promenní zprív ma pak entropii zprav a, jsou-li po rade K a C nahodne promenne klíccu a kryptogramu, jsou pak klícova entropie H (K) a entropie kryptogramu, definovíny jakozto C = sup I(S|J), (2.2) H(K)=— P(K = Ki)logP(K = Ki), H (C)=— E P (C = C j )logP (C = C), 54 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE kde sumace je provadena pres vsechny mozne klícce Ki a vsechny mozne kryptogramy Cj. Níasledující vlastnost ekvivokace vyjadňruje tu skuteňcnost, ňze daleko více nejistoty je spjato s klíňcem neňz se zpríavou. Veta 2.1 Klíčova ekvivokace je určena ekvivokací zprévý vztahem H (K |C) = H (M |C) + H (K |M, C). D ůkaz. Pňripomenňme zíakladní identitu pro entropii Muzeme tedy psat Nyní tedy i Ale H (X |Y) = H (X, Y) — H (Y). H (M |C )=H (M, C) — H (C) =H (M, K, C) — H (K |M, C) — H (C). H (K |C)=H (K, C) — H (C) =H (M, K, C) — H (M |K, C) — H (C). H (M |K, C) = 0, protoňze jakmile je zníam kryptogram C a klíňc K, je jednoznaňcnňe urňcena i zpraíva M a tedy míra neurňcitosti je nulovía. Tedy H (K |C) = H (M, K, C) — H (C), coňz, porovníano s vyíňse uvedenyím, níam díavía dokazovanou identitu. D ůsledek 2.2 Klííčcovía ekvivokace je alesponč tak velkía jako ekvivokace zpríavý. 2. perfektní: bezpečnost 55 Lemma 2.3 Pro každý kryptosystím (M, K, C) platí H (K, C) = H (M) + H (K). Důkaz. Protože náhodne veliCiny K a M jsou nezívis^, víme, že H (M) + H (K) = H (M, K). StaCí tedy overit, že H (C, K) = H (M, K) tj. H (C |K) = H (M |K). Poznamenejme, že staCí pro pevní klíC K j overit, že H (C |K = Kj) = H (M |K = Kj). Položme C' = {C G C : existuje Mi G M tak, že C = e(M ,Kj)}. Pák evidentne H (C |K = Kj) = H (C'|K = Kj), protože pro kryptogramy neležírí v C' je odpovídajíď podmínená pravdepodobnost nuloví. Pripomenme známy fakt z teorie informaCe H(U|V) = 0 príve tehdy, když U = g(V) pro nejakou funkd g. (2.3) Zrejme, protože fK. : M C' tak, že fK.(Mi) = e(Mi,Kj) a fK.~1(Íkj(Mi)) = Mi, je fK. bijekCe. SpeCiílne, C|K = Kj je funkď M|K = Kj a obríCene M|K = Kj je funkd C'|K = Kj. Lehkou upravou pak obdržíme, že H (M |K = Kj) = H (C'|K = Kj), tj. H (C |K = Kj) = H (M |K = Kj). Důsledek 2.4 Pro každí kryptosystím (M, K, C) platí H (C |K) = H (M |K), H (C, K) = H (M, K) a H (M) < H (C). Důkaz. StaCí overit poslední nerovnost. H (M) + H (K) = H (M, K) = H (C, K) < H (C) + H (K) tj. H(M) < H(C). Príklady: (a) Predpokládejme, že žprívy v M jsou písmena slov nejake (nemeCke) knihy; pravdepodobnost zprívy je pak Cetnost odpovídajíCího písmene; v prípade písmene e je pak p(e) ř« 0.174. (b) Nyní predpoklídejme, že žprívy v M jsou dvojiče ža sebou nísledujíčíčh písmen slov nejake (nemeCke) knihy; pravdepodobnost zprávy je pak Cetnost odpovídajíCího bigramu. 56 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE Představme si nyní, ze Mr. X zachytil kryptogram C. Aby ho byl schopen analyzovat, může (alespoň teoreticky) vyzkoušet vsechny zpravy a vždy ůrCit pravdepodobnost toho, že kryptogram C vznikl zasifrovaním zprávy M. Oznacme pak tyto pravdepodobnosti pc (M) = P (M |C); mluvíme pak o a posteriori (nebo pozorovaných) pravděpodobnostech. Príklady: (c) Bud' M stejne jako ve vyse uvedenem príkladu (a); jako algoritmus budeme uvazovat posouvací sifry se vsemi 26 moznymi klíci. Uvazme, ze kazde písmeno kryptogramu C ma tutez sanci, ze odpovídá urcitemu písmenu zprávy; napr. v 17.4% prípadu vznikne C z e, v 9.8% prípadu vznikne z n, atd. Jinak receno, pro kazdy kryptogram C platí pc (M) = p(M) pro kazdou zpravu M. (b) Nyní predpoklídejme, ze kazda zprava v M sestíva z prvních 100 písmen kazde strany prvního dílu slovníku das große Brockhaus. Algoritmus necht' opet sestíva z posouvacích sifer. Pro kazdou zprívu M je její pravdepodobnost -jmMj, male, ale stale jeste kladne císlo. Protoze je relativne snadne proverit, zda urcití kryptogram pochazí z urcite zpravy (rozdelení písmen v kryptogramu musí presne odpovídat rozdelení písmen ve zpríve), je pc(M) rovno bud' jedne nebo nule. To znamena obzvlast', ze pro kazdí kryptogram je pc (M) = p(M). Proberme tuto skutecnost podrobneji: Predpokladejme, ze kryptoanalytik Mr. X zjistí. ze pro jistou zpravu M je pc (M) > p(M). Pak by vedel, ze kryptogram C vznikl s vysokou pravdepodobností ze zpravy M. Tzn., ze by se analízou neco noveho naucil. To ale nesmí pri perfektním systemu nastat. V prípade, ze by bylo pc(M) < p(M), pak by Mr. X vedel, ze kryptogram C vznikne s velmi malou pravdepodobností ze zprívy M. I v tomto prípade by si Mr. X rozsíril svoje znalosti. Muzeme tedy definovat: Šifrovací systém (M, K, C) poskytuje perfektní bezpeCnost, jestliže pro každý kryptogram C platí Pc (M) = p(M) 2. PERFEKTNII BEZPECŠNOST 57 pro kačzdou zpraívu M. Jinak reňeno, sifrovacího system (M, K, C) je perfektní, pokud jsou a priori pravdepodobnosti rovny pravdepodobnostem a posteriori (viz príklad (c)). Posouvací čifrý jsou perfektní,, jestliže operují, nad jednotlivými písmeny. Mr. X se pak muze namíhat jak chce; písmena kryptogramu jsou totiz zcela nahodne rozdňelena. Chceme-li perfektnost sifrovacího systemu vyjadrit pomocí nahodních promenních M a C, je system perfektníí príavňe tehdy, kdyňz M a C jsou nezíavislíe. Z toho bezprostňrednňe plyne, ňze ňsifrovacíí systíem (M, K, C) poskytuje perfektní bezpecnost, jestlize pro kazdou zpravu M platí Pm (C )= p(C) pro kaňzdyí kryptogram C . Veta 2.5 Kryptosýstem (M, K, C) je perfektní prave tehdý, kdýz H (M |C) = H (M). Důkaz. Z teorie informace je znímo, ze H (M |C) = H (M) príve tehdy, kdyz M a C jsou nezavisle nahodne promňenníe tj. to je praívňe tehdy, kdyňz se jednía o perfektníí kryptosystíem. Ptejme se nyní, jak muzeme rozpoznat, kdy je sifrovací system perfektní ci nikoliv. K tomu si dokízeme nekolik jednoduchyích kritíeriíí. 1. Kriterium Je-li šifrovací sýstem (M, K, C) perfektní,, pak kazda zprava s odpovídajícím klícem múze bíýt zobrazena na libovolníý krýptogram. Proč platí toto kriterium? Uvazme zprívu M a kryptogram C. Protoze (M, K, C) je perfektní, platí pC (M) = p(M). V kazdem sifrovacím systemu je p(M) > 0, protoze kazda zpríva se vyskytuje s kladnou 58 KAPITOLA 3. DOPREJME SI JISTOTY NEBOLI TROCHU TEORIE pravdepodobností. Dohromady obdrzíme pC(M) > 0. To znamena, ze existuje klíč, pomocí kterého se zasifruje M do C .Tím je dokazano první kriterium. Toto kriterium je velmi uzitečne - v negativním smyslu: Umozní ním rozhodnout, ze jisté systémy nejsou perfektní. 2. Kriterium Je-li šifrovací system (M, K, C) perfektní, pak platí: | M| < | C| < | K| . Dukaz. Zrejme |M| < |C|. Proč platí |C| < |K|? Uvazme libovolnou, pevne zvolenou zpravu M a zasifrujme ji pomocí vsech moznych klíču z (M, K, C). Podle prvního kriteria lze M prevest do kazdeho mozneho kryptogramu. Pro kazdy kryptogram C potrebujeme alespon jeden klíč (totiz pomocí jednoho klícce nemuzeme M zobrazit na dva ruzne kryptogramy). Potrebujeme tedy alespoň tolik klíču, kolik je kryptogramu. Mame tedy |C| < |K|. 3. Kriterium Bud' (M, K, C) sifrovací system tak, ze |M| = |C| = |K|, ve kterem se vsechny klíce vyskytují s toutez pravdepodobností. Dale predpokladejme, ze ke kazde zpríve M a ke kazdemu kryptogramu C existuje príve jeden klíc K z (M, K, C) tak, Ze e(M, K) = C. Pak je (M, K, C) perfektní,. Dukaz. Stačí zrejme overit, ze pro kazdou zpravu Mi platí P (M = Mi|C = Cj) = P (M) pro kazdí kryptogram Cj. Z Bayesova vzorce maíme P (M = Mi|C = Cj )= ,P (C = Cj |M = Mi) • P (M = Mi) EL! P (C = Cj |M = Mfc) • P (M = Mfc) = ,P (M = Mi) = P (M = Mi), £ÍK|1 P (M = Mfc) 1 iJ' 2. PERFEKTNI BEZPEČNOST 59 nebot' P (C = C j |M = Mk) = nezívisle na j a k. Prirozením zpusobem jak zvísit bezpecnost sifrovíní je vzít ruzne systemy a kombinovat je. Dve takoveto metody navrzene Shannonem jsou stíle zíkladem mnoha praktickych kryptosystemu. Jedna se o • Vazení součet: Jsou-li S1 a S2 dva kryptosystemy se stejnym prostorem zprív M = M1 = M2 a 0 < p < 1, je pak jejich vazený součet pS1 + (1 — p)S2 kryptosystem urcení nasledním víberem: pouzijeme S1 s pravdepodobností p a S2 s pravdepodobností 1 — p. Ma-li tedy S1 klícce K1,..., Km s pravdepodobnostmi pouzití pi pro klíc Ki a S2 mí klícce K1,..., K s pravdepodobnostmi pouzití pj pro klícc Kj, ma pak kryptosystem pS1 + (1 — p)S2 m + n klíccu K1,..., Km, K1,..., K s pravdepodobnostmi pouzití ppi pro klícc Ki a s pravdepodobnostmi pouzití (1 — p)pj pro klícc Kj. Tento postup lze prirozene rpzsírit na více nez dva systemy. • Součin: Druhy zpusob kombinovaní kryptosystemu S1 a S2 je to, ze nejprve pouzijeme na nasi zpravu kryptosystíem S1 a potom aplikujeme S2 na vyíslednyí kryptogram. Abychom toto mohli províest, musí bít nutne C1 CM2. Pak muzeme definovat soucin jako S1*S2. Jsou-li klícce K1,... , Km s pravdepodobnostmi pouzití pi pro klícc Ki v kryptosystemu S1 a S2 ma klícce K1,... , K s pravdepodobnostmi pouzití pj pro klícc Kj, mí pak kryptosystem S1*S2 m.n klíccu (Ki,Kjj) s pravdepodobnostmi pouzití pipj. Poznamenejme, ze skutecne efektivních klíccu muze bít míenňe, protoňze nňekteríe se sloňzeníych transformací mohou splyívat. Poznamenejme, ňze evidentnňe platí níasledující: Jsou-li S1, S2 a S3 kryptosystemy tak, ze níze uvedene operace jsou definovíny, 0 0 : H (K |Cn ) = 0}, tj. H (Mu) + H (K) - H(Cu) = 0. Predpoklídejme, ze platí nasleduj ící: 1. Prirození jazyk, ve kterém sifrujeme, mí tu vlastnost, ze je dan vhodní odhad H(MN) jako H (Mn ) ~ NH, kde H je entropie jednoho symbolu jazyka; 2. kryptosystém má tu vlastnost, že všechny sekvence délky N symbolů mají stejnou pravděpodobnost jakožto kryptogram; jinak reCeno H(Cn) ^ NlogjEj. 68 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE To není nevhodní požadavek: každy dobrí kryptosystem by mel mít tuto vlastnost. Z víse uvedeneho obdržíme UH + H (K) - Ulog|E| = 0, tj. H (K) U = log|E| - H' Obvykle se rovnež predpoklada, že každí klíč mužeme vybrat se stejnou pravdepodobností a to žnamena, že log|K| U= log|E| - H kde H je entropie symbolu ždroje. Pripomenme, že existuje tesny vžtah meži bodem uničity kryptosystemu a redundančí jažyka, ve kterím se prenasí žprava. Pritom redundanče R jažyka s entropií H je určena vžtahem R =1- H log|S|' a tedy u = log|k| log|k| log|E| - H Rlog|E| Zejmena pak ma-li jažyk nulovou redundanči, je pro každí kryptosystem splnujíčí 1 a 2 bod uničity nekonečno. Příklad: Predpoklídejme, že sifrujeme pomočí jednodučhe substituče tak, že mame príve 26! klíču. Uvažujeme-li log26 = 4.7 a entropii angličkeho jažyka HE rovnu 2 bitum na symbol, obdržíme U = 4.^2= 2.7 " 32. S. REDUNDANCE PŘIROZENEhO JAZYKA A BOD UNICITY 69 Jinak rečeno, pri víse uvedene entropii anglickeho jazyka jsme obdrzeli hodnotu bodu unicity rovnu 32 symbolum. To pak celkem souhlasí s empirickím pozorovaním Shannona (1949), kterí tvrdí, ze pro bod unicity "lze ukízat, ze lezí mezi krajními body 20 a 30. S 30 písmeny existuje temer vzdy jedine resení pro kryptogram tohoto typu a s 20 muzeme najít nejakí počet resení. " Podobním zpusobem Friedman (1973) tvrdí, ze "Prakticky kazdí príklad 25 nebo více charakteru reprezentujících monoabecední zasifrovaní smysluplne zprávy v angličtině lze snadno vyřešit." V roce 1977 M.E. Hellman navrhl alternativní a prítazlive rozsírení víse zkoumaneho prístupu. V tomto modelu je prostor zprav rozdelen do dvou disjunktních podmnozin. První podmnozina obsahuje 2HN smyslu-plních či typickích zprív, pričemz kazda z techto zprav ma a priori pravdepodobnost 2-HN. Zbívající zpravy nemají v nasem jazyku smysl a mají pravdepodobnost 0. Zaroven budeme predpokladat, ze klíčče jsou pouzity nezavisle na zprave a se stejnou pravdepodobností. Je-li C kryptogram, označme Z(C) počet dvojic (M, K) takovích, ze zprava M je smysluplna a MA e(Mi ,Kj ) = C, 70 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE pak neprítel, kterí zachytí C bude v pochybích o použitem klíCi. Je-li |Z(C) | > 1, je kryptogram C zasifrován pomocí sifrovíní s falesním klíčem. Klademe-li s(C) =max{[Z(C) - 1], 0}, oCekávaná hodnota s (C), totiž s = £ s(C)P(C), ceC nám odhaduje oCekávany poCet sifrování s falesním klícem. Ale je okamžite videt, že s = z — 1, kde z =J2 Z(C)P(C) = Z2(C)/2NH|K|, ceC ceC a tedy z definice modelu obdržíme pro každy kryptogram C P (C) = Z (C)/2NH |K|. Pritom evidentne £ Z (C) = 2NH |K|. ceC Aplikujeme-li na víse uvedene jednoduche lemma tvrdící, že pro vsechna xi splňující n i=1 3. REDUNDANCE PŘIROZENÉHO JAZYKA A BOD UNICITY 71 mame n J^x2 > a2/n, i=1 obdržíme Z > (2NH|K|)2/|C|2NH|K| = 2NH|K|/|C|. MUžeme pak vyslovit nýsledující Věta 3.1 Za předpokladu platnosti výše uvedeného je očekávaný počet šifrováni, s falešným klíčem odhadnut jako s > (2NH|K|/|C|) - 1. Píseme-li nyní K = 2H(K), C = 2NHo = |S|N, kde H0 je entropie jažyka, lže víse uvedenou vetu prepsat jakožto S > 2NH+H(K)-NHo - i pričemž praví strana je rovna nule presne v bodu unicity. Příklad: Predpokladejme, že sifrujeme pomocí Vigenerova sifrovíní otevrení text delky 100 klícem delky 80 tak, že míme anglickou abecedu s 26 písmeny. Víme, že H0 = 4.7 = log26 a H = HE — 1.5 bitu, H (K) = 80log26 = 376. Obdržíme pak prumerne alespon 2376-320 — 256 ružních sifrovaní s falesnym klícem pro kryptogram o 100 písmenech. 72 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TĚORIĚ Kapitola 4 One-time Pad a lineární posouvací registry 1 One-time Pad Nyní budeme hovořit o následujícím perfektním systému: Předpokládejme, ze abeceda S je obvyklá 26-ti písmenná anglická abeceda a ze teCky, mezery atd. jsou vypuSteny a ze odesílaná zpráva M sestává z N písmen. Abychom zasifrovali zpravu, vygenerujeme nahodnou posloupnost o N pásmenech z abecedy S, přicemz váber kazdeho pásmene je nezavislá a kazde pásmeno ma pravdepodobnost 26, ze bude vybráno. Tato nahodna posloupnost (Z^..., ZN) bude klíc K a, abychom zasifrovali M = (#i,... ,xN) pomocí K budeme definovat C = e(M, K) Ví = x © Zj mod 26, kde jako v obvyklem substitucnám cáslicovem systemu jsme pásmenum po rade priradili cáselnou hodnotu z mnoziny {0,... , 25}. Tedy jako klíce vybereme rovnez vsech 26N posloupností delky N; kazdou z techto FI T3 74 KAPITOLA 4. ONE-TIME PAD A LINEARNI POSOUVACI REGISTRY posloupností lze zvolit se stejnou pravdepodobností tj. H (K) = Nlog26. Protoze klíc K = Z2,..., ZN) je posloupnost nahodních písmen z 26-ti prvkove abecedy E, je zrejme, ze existuje 26N stejne pravdepodobních kryptogramu. Zaroveň platí P (K|C) = ^ pro vsechna K G K. Z kriteria 3 vidíme, ze sifrovací system (M, K, C) je perfektní, nebot' klícc je jednoznacne urcen zprívou a kryptogramem, mnozina zprav je je zaroveň mnozinou klucu, resp. kryptogramu, zejmena tedy mají stejnou mohutnost. Zejmena je tedy tento tzv. one-time pad system perfektní. Tento sifrovací system byl objeven v roce 1926 americkím inzenyrem spolecnosti AT&T Gilbertem S. Vernamem (v drívejsích dobach byla písmena klícce napsína na listech trhacího bloku a jakmile bylo klícove písmeno pouzito, byl odpovídající list vytrhnut a znicen). Dnes se one-time pad neprovozuje s písmeny níbrz s bity. Pak ai, ki G {0,1} a kryptogram a1 ©k1 a2©k2 . . . a„©kra získame pomocí binarního scítání. Pro bezpeňcnost tohoto systíemu je podstatníe, ňze vňsechny posloupnosti díelky n se vyskytují s toutíeňz pravdepodobností. Jinak reňeno: Bity klícoveho slova musí bít voleny nahodne. Nejlepe si to predstavíme tím zpusobem, ze vrhame idealní minci. V praxi pouzívame fyzikalní nahodny zdroj a tím automaticky vytvoňríme bity. Za tuto formu perfektní bezpecnosti musíme - nikoliv neocekavane - platit vysokou cenu. Pro tradicní one-time pad potňrebujeme velkíe mnoňzství papíru, kteryí musí byít pňred uítoňcníkem absolutnňe bezpeňcnňe ukryt. Proto se takovíeto systíemy pouňzívají jen zňrídka. V druhíe svňetovíe víalce se one-time pad pouňzíval anglickou desifrovací skupinou, aby zprostredkovala zprívy premierovi, ktere byly Nemci zasifrovany pomocí Enigmy a ktere Anglicane rozsifrovali. Tímto zpusobem si spojenci zajistili, ze Nemci az do konce valky nevedeli, ze Enigma byla rozluňstňena. 1. ONE-TIME PAD 75 Jednou z dalsích nevíhod tohoto systemu je neexistence matematickeho zpusobu generovaní nezavislych nahodních promenních, ktere slouzí jako klíc. Tedy je nutne pouzít pseudonahodních posloupností gene-rovaních jednou z mnoha standardních metod. Neexistuje pak zídní zaruka, ze takovíto pseudonahodne posloupnosti nam budou stejnou uroven bezpecnosti. Jední se o hlubokí matematicky problem. Proc se tento nepochybne perfektní system pouzíva jen velmi zrídka? Abychom byli schopni zodpovedet tuto otazku, predstavme si sebe v roli príjemce. Ten muze prirozene kryptogram pohodlne rozsifrovat: desifrovaní je v podstate stejny postup jako zasifrovaní (pouzívame-li bity, jední se dokonce o presne totez). To ale muze príjemce provest jen v prípade, ze ma klíc. Kde je vlastne problem? Problem spocíví v tom, ze musíme prenest (dorucit) dlouhy tajní klíc. Kdybychom toto provídeli pomocí stejne cesty jako zpravu, je vzhledem k delce klícce sance prectení klícce stejna jako pri predíní nezasifrovaneho textu zprívy. Clovek by si mohl myslet, ze u takovehoto systemu by mohl odesilatel zpravu nepríteli predat prímo do domu. To ale není zcela sprívne; totiz pro prenos klíce muze odesilatel urcit druh, zpusob a dobu predíní, coz samozrejme u prenosu zprívy neplatí. Jiny zpusob prenosu klícce je pouzití kuryra. Pri prenosu klícce se nejedna pouze o teoretickí problem, níbrz o to, ze obtíznost vímeny klícce silne ovlivňuje nasazení sifrovacích systemu. Dulezití postup pro vyresení tohoto problemu spocíva v tom, ze namísto skutecne nahodnych klíccovych posloupností pouňzijeme pouze pseudoníahodníe posloupnosti. Takovíato posloupnost vypadía na první pohled jako skutecní nahodna posloupnost. A co je jeste dulezitejsí: nahodnou posloupnost lze urcit pomocí nekolika mílo dat; tyto data pak predstavují skutecní klícc. Oba komunikující partneri pak mohou z techto dat spocítat níahodníe posloupnosti a zaňsifrovat zpríavu resp. deňsifrovat kryptogram. Problíem pňrenosu klíňce tak není zcela vyňreňsen, ale podstatnňe ulehňcen. Šamozňrejmňe musíme za tuto vyíhodu zaplatit: takovíeto systíemy neposkytují ňzíadnou perfektní bezpeňcnost. Budeme tedy hledat kompromis mezi docílenou bezpeňcností a mnoňzinou tajnňe pňrenositelnyích dat. 76 KAPITOLA 4. ONE-TIME PAD A LINEÁRNI POSOUVACI REGISTRY Posouvaci registr je posloupnost v rade ža sebou nasledujíčíčh registru, pričemž každí registr muže obsahovat použe čísliči 1 (on) nebo 0 (off). Hodinovy strojek reguluje čhovaní systemu, kterí pračuje v souladu s naísledujííčíími podmíínkami: Predpokladejme, že system ma m registru R0, Ri,..., RTO_i a že ožnačuje obsah registru Ri v čase t. Nečhť je díle na žačatku system ve stavu X(0) = (Xm_i(0),..., Xo(0)). Pokud X(t) = (Xm_i (t),..., Xo(t)). ožnačuje stav systemu v dobe t, stav v čase t + 1 je určen vžtahy Xi(t +1)= Xi+i(t) (0 < i < m - 2), (1.1) Xm_i(t +1) = f (X(t)), (1.2) kde f je nejakí binarní funkče m promenníčh. Pokud je f tvaru m_ i f Cm_i Xi(t) = cm Xo(t) 0 cm_i Xi (t) 0 • • • 0 ciXm_i(t), i=0 mluvííme o lineíarníím posouvačíím registru. Pritom čhovíaníí systíemu je jednožnačne určeno (a) počíatečníím stavem X(0) a (b) množinou konstant ci,...,cm. Budeme vždy predpokladat, že cm = 0; jinak byčhom mohli pračovat bež registru R0. Zpusob, jakím linearní system pračuje, je, že po obdržení signalu každy registr provede dve veči: 1. ONE-TIME PAD 77 (i) Prenese svůj obsah do sveho praveho souseda (registr R0 toto provest nemuže, jeho obsah se stane vystupním bitem Zt naseho stroje). (ii) Takove registry Ri, pro ktere je ci = 1 prenesou svuj obsah do cítace, ten je secte a vísledek prenese do registru Rm-1. Jakmile je jednou nastaven pocatecní vektor, lže posouvací registr považovat ža ždroj nekonecne posloupnosti binarních císlic X0 (0),X0 (1),X0 (2),.... Ačkoliv takto vytvořená posloupnost není náhodná, lze ukázat, ze má jisté rysy nahodilosti. Navíc ji lze snadno a rychle generovat. Bohuzel je vsak velmi nejista. TS KAPITOLA 4. ONE-TIME PAD A LINEARNI POSOUVACI REGISTRY Vlastnosti posloupností vytvorených linearními posouvacími registry Nejprve uvazujme periodicitu. Nekoneční posloupnost (yi : 0 < i < to) se nazíví periodicka s periodou p, jestlize je p kladne prirozene číslo takove, ze yi+p = yi pro vsechna i a navíc je p nejmensí kladne prirozene číslo s touto vlastností. Mí-li tedy posloupnost (yi : 0 < i < to) periodu p, muzeme ji psít ve tvaru y0,y1,y2, . . . ,yp-1,y0,y1,y2, . . . ,yp-l,y0,yl, .... Jinak rečeno, posloupnost s periodou p je presne posloupnost opakovíní konečneho bloku delky p. Vrat' me se nyníí k posloupnosti urceníe lineaírníím posouvacíím registrem: predpoklíadejme, ze pocíatecníí vektor X(0) není nulovy vektor a ze rovnice 1.1 a 1.2 lze prepsat ve tvaru X(t + 1)=CX(t), (1.3) kde C je matice tvaru ci c2 cI . . . cm-i cm l Q Q . . . Q Q Q l Q . . . Q Q Q Q Q . . . l Q Protoze jsme predpoklíadali, ze cm = 1 a protoze det C = cm = 1 , vidíme, ze C je regulírní matice. Iterovíním rovnice 1.3 dostaneme X(t) = C*X(0). Pritom platí Veta 1.1 Posloupnost vytvorena pomocí linearního posouvacího registruje periodicka a pokud je vytvorena z m registrů,, je její maximalní perioda 2m — 1. 1. ONE-TIME PAD 79 Důkaz. Protože je C regulírní, je i regulírní matice C1 (i = 0,1,...); pritom je X(0) nenuloví vektor a existuje príve 2m — 1 nenůlových vektoru delky m. Je-li k = 2m — 1, pak jsou X(0), Cx(0), C2X(0),..., CkX(0) nenulove vektory delky m a tudíž nemohou bít vsechny různe: rekneme, že CsX(0) = Cs+tX(0), kde 0 < s 0, a C je periodickí s periodou ne^íse t < 2m — 1. Posloupnost vytvorená pomocí lineírního posouvaCíího registru je tedy periodiCkaí. Definujme čharakterističky polynom lineírního posouvacího registru jako polynom m Pm(x) 1 + cix', i=i s cm = 0, ci G {0,1}. Charakteristickí polynom je primitivní, jestliže (a) nemía vlastní netriviaílní dňelitele, (b) Pm(x) nedelí polynom xd + 1 pro vsechna d < 2m — 1. 80 Rs R2 Ri Ro XOR Lineární posoůvací registr s charakteristickým polynomem 1 + x + x2 + x4. Nasledující tvrzení uvedeme bez dukazu. Veta 1.2 Posloupnost výtvočena pomocí linearního posouvacího registru z nenulového vstupu mí maximalní periodu prave tehdý, je-li její charakteristický polynom primitivní. Nalezení primitivních polynomu je netrivialní íloha moderní algebry. Poznamenejme pouze, ze primitivní polynomy existují pro kazde n a ze jsou tabelovany. 2. KRYPTOANALYZA LINEARNICH POSOUVACICH REGISTRU 81 2 Kryptoanalyza lineárních posouvacích registrů Můžeme tedy použít lineární posouvací registry k vytvoření pseudonáhodných posloupností pro kryptografické účely. To je lacine, lineární posouvací registry provídí vípocty velmi rychle - co můžeme jeste víc chtít? Nelže poprít, že posloupnosti vytvorene pomocí lineírních posouvacích registru mají vynikající statis-ticke vlastnosti; a to platí dokonce pro posloupnosti, ktere vžniknou ž relativne kratkych linearních posouvacích registru. Ale ž kryptologickeho pohledu mají tyto posloupnosti mimorídne pochybný charakter. To je dusledkem toho, že v prípade known-plaintext ítoku mu nejsou schopny odolat. Definujme blok délky t jako posloupnost tvaru 011... 10 obsahující prave t jednicek. Dírou délky t je posloupnost tvaru 100... 01 obsahující príve t nul. Platí nasledující vísledek. Veta 2.1 Má-li lineární posouvací registr s m registry maximální periodu 2m — 1, mají pak výsledné posloupnosti délky 2m — 1 následující vlastnosti: (a) obsahuje prave 2m-1 — 1 nul a 2m-1 jednicek; (b) obsahuje pro včechna t taková, če 1 < t < m — 2, 2m_*_2 bloků, delky t a .stejný pocet der delky t. Důkaz. Stav lineírního posouvacího registru lže v každem okamžiku jednožnacne popsat prirožením císlem ž intervalu [1..2m — 1]: stací vžít príslusnou cast vístupní posloupnosti. Protože se vsechna nenuloví císla ž intervalu [1..2m — 1] musí vyskytnout jako stavy v cyklu maximalní delky, vysledek okamžite dostaneme vysledek (a) spoctením sudích a lichích císel v teto množine. Abychom dokížali (b), požnamenejme, že beh typu 011... 10 obsahující prave t jednicek se muže vyskytnout jako soucíst vístupu prave tehdy, když v nejake casti vípoctu je stav linearního posouvacího registru 011... 10x1x2 ... xm_t_2, kde #j G {0,1}. Protože mame príve 2m_í"2 stavu tohoto tvaru a protože každí stav je realižovan v nejakem okamžiku vípoctu vžhledem k tomu, že linearní posouvací registr ma maximalní periodu, vísledek (b) pro bloky platí. Zameníme-li 0 a 1, dostavame vísledek (b) pro díry. 82 KAPITOLA 4. ONE-TIME PAD A LINEÁRNI POSOUVACI REGISTRY Vrať me se nyní k dešifrování. Je-li zprava složená z binárních číslic, a je-li M = MiM2 ... Z — Z1Z2... posloupnost vyprodukovaná lineárním posouvacím registrem, pak kryptogram C je posloupnost kde C — C1C2 ..., C — M + Zi (mod 2) Jsou-li tedy Mi a Ci znamy, lze Zi získat trivialne jako (1 < i < to). (2.1) Z, — M, + X, (mod 2) (1 < i < to). (2.2) UvaZme nyní lineární posouvací registr s m registry a koeficienty c1 ,c2,...,cm. Jakmile zna neprítel nějakých 2 m za sebou nasledujících Clenu xi vísledne posloupnosti, je schopen najít tyto koeficienty c1, c2,... , cm. Totiz odpovídající system linearních rovnic ma tvar Zm-1 Zm-2 . . . . . . Z2 Z1 C1 Zm+1 Zm+1 Z m Zm-1 . . . . . . Z3 Z2 C2 Zm+2 Zm+2 Zm+1 Z m . . . Z4 Z3 C3 Zm+3 Z2m-3 Z2m-4 Z2m-5 . . . . . . Z m- 1 Zm-2 cm-2 Z2m-2 Z2m-2 Z 2 m- 3 Z 2 m- 4 . . . Z m Zm-1 cm-1 Z2m-1 Z2m-1 Z 2 m- 2 Z 2 m- 3 . . . . . . Zm+1 Z m cm Z2m (2.3) 2. KRYPTOANALYZA LINEÁRNÍCH POSOUVACICH REGISTRU 83 To pak plne určuje šifrovací systém v případě, ze matice na levé straně rovnice (2.3) je invertibilní a tudíž platí nasledující veta. Věta 2.2 Je-li posloupnost bitu Z = Z1Z2 ... generována regulárním lineárním posouvacím registrem R délky m a neexistuje-li kratší lineární posouvací registr generující tuto posloupnost, pak je charakteristicky polynom lineírního posouvacího registru R jednoznačně urcen 2m za sebou jdoucími cleny teto posloupnosti. Důkaz. Stací overit že matice A na leve strane rovnice (2.3) je invertibilní. Predpokladejme opak. Pak nutne její sloupce jsou lineírne závisle. Pritom sloupce nejsou nic jineho než stavy systemu: X(0), X(1),..., X(m — 1), mame tedy lineírní kombinaci m— 1 (2.4) i=0 kde bi E {0,1} nejsou vsechny nulove. Položme k = max{i : bi = 0}. Pak k < m — 1a nutne (protože pracujeme mod 2) mame k—1 (2.5) i=0 Bud' nyní C matice lineírního posouvacího registru R. Pak pro každe t > 0 platí k—1 k—1 X(t + k) = C*X(k) (2.6) i=0 i=0 Speciílne tedy pro t > 1 platí k—1 (2.7) i=0 84 KAPITOLA 4. ONE-TIME PAD A LINEÁRNI POSOUVACI REGISTRY Tudíž posloupnost Z = Z1Z2 ... je generoví^ lineírním posouvacím registrem R' delky k (priCemž príslusní charakteristicky polynom lineírního posouvacího registru R' má koeficienty bo,..., To je ale spor s minimalitou m. D ů sledek 2.3 Užití posloupností vytvorenyčh pomočí linearního posouvacího registru není, bezpečne proti known-plaintext utoku. D ů kaz. Predpokládejme, že odesilatel Alice a príjemce Bob používají proudovou sifru, jejímž klícem je vístup z lineírního posouvacího registru R delky m. Necht' utocník Eve zní Císt zdrojoveho textu o delce 2m, rekneme Mi+1, Mi+2, ..., Mi+2m. Pokud Eve zachytí odpovídající Cást sifroveho textu Ci+1, Ci+2, ..., Ci+2m, pak samozrejme zní i odpovídající Císt klíCe Zi+1, Zi+2, ..., Zi+2m. Dle predchozí vety je tedy Eve schopna urCit koeficienty charakteristickeho polynomu lineárního posouvacího registru R, tj. zkonstruovat R. Může tedy, vezme-li za poCáteCní základ Zi+1, Zi+2, ..., Zi+2m vygenerovat vsechny predchozí i následující Cleny klícce. Eve je tedy schopna desifrovat zbytek zprávy. Chceme-li zachovat hezke vlastnosti lineárních registrů a zíroveň zajistit vetsí stupeň bezpeCnosti, použijeme v rovnici 1.2 nelineírní funkci. SkuteCne je tomu tak, že vetsina dnes poůžíváných algoritmů je založená na nelineárních posouvacích registrech, aCkoliv bychom nemeli zapomenout na DES. Kapitola 5 VýpoCetní slozitost Dukaz toho, ze existují nerozhodnutelne problemy a nevyčíslitelne funkce, je jedním z nejvetsích vídobytku FI v tíeto oblasti. Sňifrovacíí systíem, jehoňz deňsifrovíaníí je zaloňzeno na vyípoňctu nevyňcííslitelníych funkcíí, by mňel víyhodnou pozici. Muzeme vsak snadno overit, ze takoveto zbozne praní nemuze bít splneno: vsechny takoveto systemy jsou koneňcníe a tedy mohou byít naruňseny provňeňreníím vňsech moňznostíí. Teorie vypočetní slozitosti se tíka trídy problemu, ktere lze v principu vyreňit: ale vzhledem k teto tríde se teorie pokousí klasifikovat problemy podle jejich vípočetní obtízznosti v zavislosti na mnozství času nebo pamňeti potňrebníych pro toto ňreňsení, Porozumení zakladním pojmum teorie slozitosti je podstatne pro kryptografii a v teto kapitole se budeme snazit pokrít podstatu problemu teorie slozitosti. Nejprve začneme informalne s nekolika príklady. Príklad. 1 Nasobení prirozenych císel Uvazme problem nísobení dvou binarních n-bitovych čísel x a y. Je-li x = x1... xn a y = y1... yn, muzeme provest standardní metodu dlouheho nasobení, ktera je učena na zakladní skole nasledovnym zpusobem: Postupne nasobme x čísly y1, y2 atd., posunme a pak pričteme vísledek. Kazde nísobení x číslem yi nas 85 86 KAPITOLA 5. VYPOCETNI SLOŽITOST stojí n jednoduchích bitovéjch operaci. Podobne sectení n soucinu nam zabere O(n2) bitovích operací. Je tedy celkoví pocet operací O(n2). Muzeme víse uvedene jeste zlepsit? Tj., existuje rychlejsí algoritmus v tom smyslu, ňze provede podstatnňe míenňe bitovíych informací. Pňresnňeji, jsou-li díana 2 n-bitovía ňcísla, n sudíe, píňseme x = a22 + b, y = c22 + d, pak soucin z lze získat pomocí trí nísobení 1 n-bitovích císel pouzitím reprezentace z = xy = (ac)2n + [ac + bd — (a — b)(c — d)]2n + bd. Oznacíme-li T (n) cas, kterí nam zabere nísobení podle teto metody, míme, proze nísobení 2n je rychle, ňze n T (n) < 3T + O(n). Po vyňreňseníí vyíňse uvedeníe rekurentníí nerovnosti obdrňzííme, ňze T (n) < AnIog3 + Bn, kde A a B jsou konstanty. Protoze log 3 ~ 1.59, míme k dispozici algoritmus o casove slozitosti O(n1.59) v porovníní se standardním O(n2) algoritmem. V soucasnosti ma jeden z nejlepsích znamích algoritmu (Schonhagen, Strassen) slozitost O(nlognloglogn). Príklad. 2 Determinanty a permanenty. Uvazujme nasledující dva vípocetní problemy. Pro kazdí vstup slození z binarní matice A typu n x n chceme vypocítat 1. determinant matice A, píňseme pak detA, 2. permanent matice A, píseme pak perA, permanenent je definovan jako perA = ^ a1n(1)a2n(2) . . . an^(n), 87 kde scítame pres vsechny permutace n na mnozine {1, 2, ...,n} a aij znací tou komponentu matice A. Zdanlive je permanent mnohem jednodussí funkce matice A nez její determinant; jedna se o soucet toho sameho systemu termu, ale bez toho, ze bychom dívali pozor na ± znamenka jako u determinantu. Avsak z hlediska vípocetní slozitosti platí opak: zatímco determinant je relativne snadna funkce k vípoctu, u permanentu se prokazalo, ze se jedna o vzdy temer jiste o neobvykle obtízznou zalezitost. Upresneme víse uvedene: standardní Gaussova eliminacní metoda vípoctu determinantu matice n x n potrebuje O(n3) bitovích operací, pricemz V. Strassen zkonstruoval algoritmus, kterí potrebuje O(nlog27) — O(n2'81-) bitovích operací. Redukce exponentu pod hranici log27 se prokízalo bít velmi obtízne a jeden z nejrychlejsích soucasních algoritmu (Coppersmith, Winograd) potrebuje O(n2'3976''') operací. Snadno je videt, ze vsechny vstupy matice musí bít nacteny a tedy n2 < tdet(n) < Cn2'3976- kde tdet(n) oznacuje casovou slozitost problemu vípoctu determinantu a C je nejakí konstanta. Pro permanent vsak oproti víse uvedenemu zadní takoví algoritmus není znam. Nejrychlejsí doposud znamí algoritmus je pouze o neco lepsí nez sectení vsech n! termu nasí sumy. Příklad. 3 Tříděni. Predpoklídejme, ze chceme sestrojit algoritmus, kterí, obdrzí-li na vstupu n celích císel setrídí tyto v rostoucím poradí. Snadní, temer instinktivní prístup je nasledující algoritmus, znamí jako Bubblesort. Postupne porovnavejme a1 s kazdím s prvku a2, ..., ara. Pro maximílní index i takovy, ze ai < a1 umísteme a1 za ai a obdrzíme pak nove usporídíní. Po n — 1 porovnaních obdrzíme usporídíní b1 je okamzite videt, ze se jedna o vzestupne usporadany seznam. Jednoduchí vípocet ukazuje, ze k víse uvedenemu je treba O (n2) porovnaní. 88 KAPITOLA 5. VYPOCĚTNI SLOŽITOST Poznamenejme, že máme nekolik rekurzivních algoritmů žáložených na princiou rozdel a panuj tím, že trídíme 2 polovice množiny a pak spojíme setrídene seznamy k sobe, což nám zabere pouze O(nlogn) srovníní. Pro názornost uved'me nísledující tabulku Ovsem, víraz O(n logn) může skryt velke konstantní vírazy, ale tak joko tak se jední o velky rozdíl, obzvlíste proto, že trídení je Casto poůžíváný algoritmus a velikost seznamů je Casto velmi velká. Jiní fascinující pohled na trídení je ten, že existuje spodní mez stejneho rídu pro každí algoritmus žáložený na trídení. Casto mluvíme o informaCne-teoreticke spodní mezi, ale nejední se o nic jineho, než o prímí důsledek pozorovíní, že každy algoritmus založeny na srovnání lze reprezentovat pomocí binání stromove struktury a protože musíme pokryt vsech n! možních usporádíní, každy takovíto strom musí mít alespon n! listů. Příklad. 4 Test prvočíselnosti. Bezprostredne se zdí, že testovat, zda prirozene Císlo N je prvoCíslo, lze vyreňit velmi rychlím a snadnym algoritmem: testujeme, zda je N delitelene 2 nebo nejakím lichím Císlem z intervalu [3, N2]. Protože se jední pouze o 1N2 delení, jedná se o polynomiální algoritmus v promenne N a tudíž rychly algoritmus. Avsak dalsí ívahy ukazují, že reprezentace Císla N v poCítaCi by byl binírní retezec delky [log N] a tudíž, abychom mohli algoritmus na testovíní prvoCíselnosti považovat za rychlí, jeho vípoCetní složitost musí bít polynomiální v n = [log N]. Doposud vsak žídní takovyto algoritmus není zním. V souCasnosti jsou k dispozici algoritmy se složitostí n n log2n n2 50 500 ~ 300 2500 ~ 4500 250000 t(N) = O(ln N) Clnln lnN kde c je kladná konstanta. 89 Příklad. 5 Nejvštši společný dšlitel a Euklidův algoritmus. Uvažujme problem naležení nejvetsího spolecneho delitele (nsd) dvou priroženích císel u a v. Zrejma metoda je faktorižace obou císel na prvocísla u = 2ui3U25U3v = 2vi3V25V3 pak lže žjistit jejich nejvetsí spolecní delitel nasledovne w = nsd(u,v) = 2wi3W25W3 kde wi = min{ui,vi}. Jedna se vsak o velmi neefektivní postup. Potrebujeme totiž faktorižovat obe císla a tento postup nelže rychle provest pro velka prirožení císla. Metoda, jíž tento postup mužeme obejít, je žnaímía jako Euklidůuv algoritmus. Predpokladejme, že u > v > 0. Pak obdržíme posloupnost delení: u=a1v + b1, 0 < b1 < v, v=a2&i + b2, 0 < b2 < b1, h=a:ib2 + b3, 0 < b3 < b2, bk-2=akbk-1 + bk, 0 < b3 < b2, ktera skoncí bud' bk = 0 nebo bk = 1. Pokud bk = 1, jsou císla u a v nesoudelní; pokud bk = 0, je nsd(u, v) = bk-1. O tomto algoritmu lže snadno dokažat, že je korektní a detailní analyža jeho ucinnosti ukíže, že nejhorsí prípad (mereno poctem delení) nastane, jsou-li u a v ža sebou nasledující Fibonacciho císla Fn+2 a Fn+1. Pak v tomto prípade a to vede k nasledujícímu Lameho vísledku (1845) 90 KAPITOLA 5. VYPOCETNI SLOZITOST Veta 0.4 Je-li 0 < u, v < N, pak pocet delení pri pouzití Euklidova algoritmu na u a v je nejvíse Rog^v^N)] — 2, kde p je zlatí rez 1 (1 + \f5). 1 P=polynomiainí Cas Zakladní mírou obtíznosti vypoctu je mnozství doby, ktere ním vípocet zabere. Zformulovíní presne definice, co to je cas, je netrivialní zalezitost; presní formulace pozaduje velmi precizní definici strojoveho modelu, jednotky ňcasu atd. V pňríkladech z pňredchozího paragrafu jsme mňeňrili slozitost vyípoňctu v pojmech poňctu zaíkladních operací, ktere byly provídeny. Mohlo se jednat o soucet bitu, srovníní nebo cokoliv jineho. Klíňcovíe pojmy jsou níasledující: 1. sloňzitost je funkce velikosti vstupu (obvykle ji znaňcíme jako n), 2. pro danou velikost vstupu n je sloňzitost doba nejhorsíího mozníeho príípadu bňehu algoritmu. Pňripomenňme si, ňze pňri testovíaní prvoňcíselnosti pňrirozeníeho ňcísla N jsme obdrňzeli jinou sloňzitost v pňrípadňe, ze jsme povazovali vstup velikosti N nebo vhodneji pomocí reprezentace n = [log N] binarních císlic. Na zaklade tohoto dusledku bude velikost vstupu vzdy povazovína za prirozenou delku ekonomickeho vstupu. Co se tíce definice slozitosti jako nejhorsího mozneho prípadu, jiní moznost - prumerní prípad - se potíka s obtííňzemi, a to jak teoretickyími tak praktickíymi. Ne posledníí obtííňznost je rozhodnout citlivňe o pravdivostníím rozdňeleníí na vstupu. Nejprve budeme postupovat neformálně. Řekneme, ze algoritmus A nm polynomiální, slozitost, jestlize existuje polynom p(x) tak, ze ÍA(n) < p(n), 1. P=POLYNOMIALNI CAS 91 pro vsechna pnrožena císla n, pricemž í^(n) je maximalní doba potrební algoritmem k vípoctu pres vsechny vstupy velikosti n. Problem lže provest v polýnomialnim (čase, pokud existuje nejakí algoritmus, kterí ho resí a mí poly-nomialní složitost, v tomto prípade tvrdíme, že problem leží v třídě P. Porovnejme nasi definici s príklady 1-5 ž predchožího paragrafu. Příklad. 1 Nasobeni přirozených čísel je operace provadení v polynomialní dobe, Příklad. 2 Determinanty a permanenty. Vypocet determinantu je problem, kterí urcite leží v P .U vípoctu permanentu nevíme, žda tento problem leží v P, predpoklída se, že žde neleží, a dukaž jakekoliv implikace by mel velkou duležitost v teorii složitosti. Příklad. 3 Trideni lže provest pomocí O (n logn) srovnaní a protože srovnaní lže provest v polynomialním case, leží trídení v P. Příklad. 4 O testu prvočiselnosti od roku 2002 víme, že leží v P. Tento vynikající výsledek prof. Manindry Agrawala spolu s jeho dvema studenty (Neeraj Kayal a Nitin Saxena) daví polynomialní algoritmus pracující v case O(n6'5) (pri konstantní složitosti aritmetickích operací). Tento algoritmus je pomerne komplikovaní a odhad jeho složitosti vyžaduje dosti netriviílní vety ž teorie císel. Příklad. 5 Naležení nejvetsiho společního delitele dvou priroženích císel velikosti < N a proto velikosti vstupu log N bitu lže provest v case O (log N) a proto tento problem leží v P. Trída P je v soucasnosti nejduležitejsí trídou v matematice a computer science, to, že nejaky problem leží v P, lže obvykle považovat ža to, že se jedna o vypocetne dobrí problem. Ackoliv poslední uvedene obecne žcela neplatí (problem naležení klik v grafu), ^sledující tvržení nam ukažují, že se jedna o atraktivní a efektivní pojem. 1. Trída P je robustní vžhledem k ružním reprežentacím vstupních hodnot ža predpokladu, že tyto 92 KAPITOLA 5. VYPOCETNI SLOŽITOST žmeny jsou vuci sobe polynomiílne korelovany.3 Napríklad, žda uvažujeme vstup matice typu n x n velikosti n nebo n2, nedela žadmí roždíl. 2. Trída P je robustní vžhledem k použitemu modelu vypocetního stroje. Jinak receno, žda použijeme Pentium nebo stroj s nahodním prístupem nebo Turinguv stroj, nase trída žustane nežmenena. Toto lže celkem snadno dokažat. Je použe nutno overit, že doby pro simulaci žakladních operací na obou strojích, jsou polynomialne korelovíny. Pripomenme strucne formalní definici trídy P. Tůringovy stroje — formální definice třídy P Turinguv stroj sestava ž 2-smerne nekonecne pasky roždelene do ctvercu. Každy ctverec muže obsahovat symbol ž konecne abecedy S obsahující príždní symbol *. Až na konecne mnoho ctvercu vsechny obsahují príždny symbol *. Paska je snímana rychlostí 1 ctverec ža jednotku casu tžv. ctecí i zapisovací hlavicí. Stroj muže bít v jednom ž konecne množiny r stavu, r = {q0, q1,... , qm} a príslusna akce stroje v danam case je jednožnacne urcena jeho vnitrním stavem a symbolem v soucasne snímanem ctverci. Akce provede libovolnou ž níasledujíícíích operacíí: 1. žmení (prepíse) snímaní symbol na jiní symbol že S, 2. posune ctecí hlavici o jeden ctverec doprava (—>) ci doleva (<—), 3. žmení svuj soucasny stav ž qi na qj. Vípocet Turingova stroje je tedy rížen prechodovou funkcí 5 : r x S ľ x S x {<—, —>}. 3Dve funkce f a g jsou vůči sobe polynomiálně korelovány, pokud existují polynomy pi a p2 tak, že f (n) < pi (g(n)) a g(n) < p2(f (n)) pro vSechna dostatečne velka n. 1. p =POLYNOMIALNI CAS 93 Control unit 2-way infinite tape Výpočet Turingova stroje sestává z následujících kroků: 1. reprezentace vápoCtu koneCním retezcem x G S0, kde S0 = S \ {*}, která je umístěn ve Čtvercích 1 — n, kde n je pocet symbolu obsazeních v x, 2. odstartování cinnosti Turingova stroje z jeho pocátecního stavu (obvykle q0) s prepisovací hlavou na ctverci 1 a jeho pokracovaní se zakladními operacemi (cetní, zapsání a zmeny stavu) az do doby, kdy stroj skoncá v koncovem stavu (qf). Vystup stroje M po jeho aplikovaní na stav x je obsah písky dosazení v koncovem stavu. Jeden krok vípoctu stroje sestava z jedne akce 1-3 uvedeních víse a delka neboli cas použity pri vípoctu je pocet takovíchto kroku. Pokud M oznacuje nejakí Turinguv stroj , oznacíme tuto dobu tM(x). Funkce f : E* — E* je vycíslitelní pomocí Turingova stroje M, jestlize pro vsechna x G E0, x je vstup pro M, v prípade ukoncení vípoctu stroj zastaví s hodnotou f (x) na jeho vístupní písce. Tedy Turinguv stroj je 94 KAPITOLA 5. VYPOCETNI SLOŽITOST presna analogie počítače - každí vípočet, ktery lže vykonat moderním počítačem, lže provest i Turingovym strojem. Ovsem v praxi je konstrukče Turingova stroje sčhopneho i použe jednodučhyčh vypočtu velmi časove naroční. Proto byl vyvinut soubor žakladníčh Turingovíčh stroju, ktere provídí odpovídajíčí ulohy. Konstruujeme-li pak složití Turinguv stroj, používane stroju již dríve žkonstruovanyčh, podobne jako když používame podrutiny v obvyklíčh poCítaCovách programečh. Mužeme pak formílne definovat časovou složitost. Je-li M Turinguv stroj, kterí žastaví pro vsečhny vstupy x G Eq, casova složitost Turingova stroje M je funkče tM : Z+ —► Z+ určení vžtahem tM(n) = max{t : existuje x G E0 tak, že |x| = n a čas provedení strojem M na vstupu x je t}. Funkče f je vyčíslitelna v polynomialním case nebo ma polynomiální, složitost, pokud existuje nejaky Turinguv stroj, kterí vypočte f a jistí polynom p tak, že tM(n) < p(n) pro vsečhna n. V praxi vetsinou neuvažujeme s Turingovym modelem, ale pračujeme na mnohem vyssí urovni. 2 NP = nedeterministický polynomiální cas Popisme si neformalní ideu trídy NP. Predpokladejme, že míte ža íkol prodat velkí složena čísla opravdu hodne žamestnanym nakupčím. S pomočí otroku pračujíčíčh neomežení počet hodin mužete sestavit se-žnam složenyčh čísel ci, c2, ... a abyčhom byli sčhopni prodívat tato čísla ryčhle, budete mít k dispožiči odpovídajíčí sežnam faktoru yi, y2, ... tak, že pokud ma dojít k prodeji, vse, čo musíte udelat, je dat číslo ci dohromady s faktorem yi a overit, že složene číslo ci je delitelne číslem ^i. Pak yi nažívame certifikatem neprvočíselnosti čísla ci, protože pak existuje pri jeho použití algoritmus pračujíčí v polynomiílní dobe pro overení, že ci je složene. Neformalne mužeme tedy ríči, že vlastnost náleží do NP, jestliže splnení teto vlastnosti lže overit v polynomialní dobe s pomočí vhodneho čertifikatu. Podejme nyní formílní definiči: 3. NP-UPLNE A NP-TEZKE PROBLEMY 95 Bud' E0 nejaka konecní abeceda. Libovolnou podmnozinu L mnoziny E0 nazveme vlastnosti (jazykem). Řekneme pak, ze L G NP, jestlize existuje funkce f : E* x E* — {0,1} tak, ze 1. x G L príve tehdy, kdyz existuje y G E0 tak, ze f (x, y) = 1, 2. vyípoňctovía ňcasovía naíroňcnost f je omezena polynomem v promňenníe x. To lze pňresnňeji pňreformulovat níasledovnňe: Pro x, y G E0* oznaňcme x y ňretňezec zaňcíínajíícíí x, níasledovanyí praízdníym symbolem a potíe níasledovanyí y. Jazyk L C E* bude v NP, pokud existuje Turinguv stroj M a polynom p(n) tak, ze TM(n) < p(n) a pro kazdíy vstup x G E*0: 1. Pokud x G L, pak existuje certifikát y G E0 tak, ze jyj < p(jxj) a M akceptuje vstupní retezec x y. 2. Pokud x G L, pak, pro kazdyí retezec y G E0*, M zamíítne vstupníí retezec x y. V pojmech teorie Turingovích stroju, povazujem y sdruzene se vstupem x za certifikét relace patrit prvku x v L, a nechavame Turinguv stroj pracovat v polynomiílní dobe na vstupu sestavajícímu z vstupu xa certikaítu y. Speciíalnňe pak P C NP, povaňzujeme-li P za soubor vlastností. Otíazka, zda P teoretickíe computer science. NP je pravdepodobne nejdulezitejsí otízkou v 3 NP-úplné a NP-těžké problémy Dulezitou vlastností trídy NP je, ze obsahuje nejtezsé vlastnosti tak, ze kdybychom byli schopni vyresit nňekterou z tňechto vlastnostíí, byli bychom schopni rozhodnout kaňzdou z vlastnostíí v NP. Preciznňeji, ňrekneme, 96 KAPITOLA 5. VYPOCETNI SLOŽITOST ze vlastnost n1 je polynomiálně redukovatelná na vlastnost n2, pokud existuje funkce f z P tak, ze x ma vlastnost n1 príve tehdy, kdyz f (x) mí vlastnost n2. Píseme pak Je snadno videt, ze pokud n1an2, implikuje existence polynomialního algoritmu pro n2 existenci poly-nomiílního algoritmu pro n1. Totiz, necht' A je algoritmus pro n2, kterí pracuje v case t(n). Je-li x nejakí vstup pro n1 tak, ze |x| — n, pak transformujme x na f (x) a aplikujme algoritmus A. Protoze transformace pracuje v polynomialním case, je |f (x)| ohranicene nejakím polynomem g(n). Tedy transformace f a algoritmus A pracují v case ohraniceny nejakím polynomem. Pripomenme níasledujíícíí tvrzeníí: Věta 3.1 Existuje vlastnost n G NP tak, ěe libovolná jiná vlastnost n' je polynomiálně redukovatelná na n. Takoveto n se nazyví polynomiálně áplný problém. Pripomenme, ze mame k dispozici seznam více nez 3000 N P-íplních problenrů. Pritom temer kazdí vlastnost z NP, o které se neví, zda lezí v P, je NP-uplní, ackoliv míme k dispozici tvrzení, které ríkí, ze pokud NP — P, pak NP — P obsahuje problemy, jez nejsou NP-íplne. Řekneme, ze problem n je NP-tezkí, pokud existuje nejakí NP-uplna vlastnost no tak, ze pokud existuje polynomialní algoritmus pro n, existuje i polynomialní algoritmus pro n0. Trivialní dusledky teto definice jsou naísledujíícíí tvrzeníí: 1. Pokud existuje polynomiíalníí algoritmus pro kazdyí NP-problíem, je pak NP — P. 2. Je-li n1 NP-tezkí a n1an2, je i n2 NP-tezkí. 3. Kazdy NP-uplní problem je NP-tezkí. Obracene tvrzení k 3 není pravdive. 4. SLOZITOST KOMBINACNICH OBVODU 97 4 Složitost kombinaCních obvodů Venujme se na chvíli zcela odlisnemu modelu vypoctu, ktery zhruba odpovídí realizaci cipu nebo VLSI obvodu (very large scale integration - velmi vysoka integrace). Kombinační, obvod (logickí obvod, hradlo) je zarízení pro vípocet booleovských funkcí. Obvykle je reprezentovan jakozto konecní orientovaní acyklickí graf, jehoz mnozina vrcholu se delí na vstupní vrcholy, vnitrní vrcholy neboli braný a jediny výstupní vrchol. Kazdí vstupní vrchol patrí k prave jednomu z argumentu pocítane booleovske funkce. Kazdy z vnitrních vrcholu odpovída vzajemne jednoznacne príslusne booleovske funkci dvou promenních pouzite behem vípoctu. Vyístupní vrchol pak obsahuje vyísledek vyípoňctu booleovskíe funkce na vstupních vrcholech. Řekneme, ze kombinacní obvod C s n vstupními vrcholy výpočte booleovskou funkci f (x1,..., xn), pokud, v prípade, ze vstupním vrcholum je prirazena po rade posloupnost x1, x2, ..., xn a tyto vstupní hodnoty jsou zpracovaíny vnitňrníími branami dle zňrejmíeho poňradíí indukovaníeho acyklickíym uspoňríadíaníím grafu C, je hodnota vyístupníího vrcholu rovna f(x1, . . . , xn). Velikost kombinacního obvodu C je pocet vnitrních vrcholu a znací se c(X). Je-li f booleovska funkce, je pak obvodova sločitost funkce f definovana jakozto minimílní velikost kombinacního obvodu, kterí vypoctu (realizuje) funkci f a oznaňcuje se jakoňzto c(f). Príklad 4.1 (Hamiltonovská kružnice ) Uvazme nasledující otazku: Určete, zda graf G obsahuje Hamil-tonovskou kruznici. Pro kazdou hodnostu n muzeme najít kombinacní obvod Cn, jenč ma O(n2) vstupních vrcholu (jeden pro kazdou moznou hranu), ktem díva na vístupu vísledek TRUE tehdý a jen tehdý, kdýz vstupníí graf G mía hamiltonovskou kručznici. V součcasníe dobče, bohučzel, včsechný znaímíe takovíeto kombinačcníí obvodý Cn majíí exponenciaílníí počcet vrcholuu. 98 KAPITOLA 5. VYPOCETNI SLOŽITOST G, G2 Graf G1 mi Hamiltonovskou kružnici (a, b, d, e, g)), ale graf G2 nema zadnou Hamiltonovskou kružnici. Řekneme tedy, ze vlastnost n mí polynomialní obvodovou velikost neboli obsahuje pouze male obvody, pokud existuje posloupnost kombinacních obvodu, (Cn : 1 < n < to) a polynom p tak, ze Cn rozhodne n na vsech moznych vstupech velikosti n a velikost c(Cn) splnuje c(Cn) < p(n) (1 << to). Poznamenejme, ze platíí: • Je-li vypočet turingovsky vypočítatelní v polynomialním čase, pak ma male kruznice. • Obracene tvrzení není pravdive: existují nerekurzivní funkce, ktere nejsou vypočítatelne zídnym tu-ringovskím strojem, ale mají male kruznice. • Ma-li kazdí NP-tezky problem male kruznice, ma i kazdí NP-problem male kruznice. V dalsím budeme kazdy problem s malími kruznicemi povazovat za snadní a sifrovací system na nem zalození nebude povazovín za bezpeční. 5. SPLNITELNOST - SATISFIABILITY 99 5 Splnitělnost - SATisfiability Klasickím prípadem rožhodovacího problemu je booleovska splnitelnost. Booleovska funkce je funkce f : {0,1}n — {0,1}. Budeme interpretovat '1' jakožto pravda a '0' jakožto nepravda. Zakladní booleovske funkce jsou negace (NOT), konjunkce (AND) a disjunkce (OR). Je-li x booleovskí promenna, pak negace x je 1 , pokud je x nepravda, x = 0, jinak. Literát je booleovska proměnna nebo její negace. Konjunkce posloupnosti literám xi,... ,xn je 1, pokud vSechna Xj jsou pravdivá, ! x1 A x2 A • • • A xn = , 0, jinak. Disjunkce posloupnosti literílu x1,..., xn je 1, pokud nektere xi je pravdive, i x1 V x2 V • • • V xn = , 0, jinak. Booleovska funkce f je v konjunctivní normalní forme (žkracene CNF), pokud f (x1,...,xn) = Afc=1 Ck, kde každa klaužule Ck je disjunkce literílu. Pravdivostní prirazení pro booleovskou funkci f (x1,... ,xn) je víber hodnot x = (x1,... ,xn) E {0,1}n pro její promenne. Splnene pravdivostní prirazení je x = (x1,... ,xn) E {0,1}n takove, že f (x) = 1. Pokud takove pravdivostní priražení existuje, rekneme, že funkce f je splnitelna. Booleovskía splnitelnost (SAT) je níasledujíícíí rožhodovacíí problíem. 100 KAPITOLA 5. VYPOCETNI SLOŽITOST SAT Vstup: booleovská funkce f (#i,..., xn) = /\m=1 Ck v CNF. Otázka: je f ... , xn) splnitelná? Uvažme prirozene žákodovíní tohoto problemu. Budeme pracovat nad abecedou E = {*, 0,1, V, A, —}, pfíCemž zakódujem promennou xi pomocí binární reprezentace i. Literíl xi budeme kídovat pridíním symbolů — na záCítek. Evidentne pak můžeme žákídovat CNF formuli, f(x1,...,xn) = /\m=1 prirožením způsobem nad abecedou E. Napr. formuli f (x1,... , x5) = (x1 V x4) A (x3 V x5 V x2) A (x3 V x5), zakodůjeme jako '1 V 100 A 1W-.10W 101'. Protože Žádná klauzule nemuze obsahovat více nez 2n literálU, bude rozmer vstupu CNF formule o n promennách a m klauzulích O(mnlogn). Fundamentální veta teorie slozitosti ríká, ze SAT G NP-uplná. Dulezitám podproblemem problemu SAT je tzv. k-SAT, for k > 1. k-SAT Vstup: booleovská funkce f v CNF s nejváse k literály v kazde klauzuli. Otázka: je f ... , xn) splnitelná? Evidentne je problem 1-SAT snadný. Kazde splnene pravdivostní prirazení pro f v tomto prípade musí zajistit, ze kazdá literál obsazený v f musá být pravda. Tedy f je splnitelne práve tehdy, kdyz neobsahuje zároven literál a jeho negaci. To samozrejme snadno overáme v polynomiální' dobe a tedy 1-SAT G P. Podstatne nárocnejsá je dukaz, ze 2-SAT G P. Ale uz 3-SAT G NP-áplny. 6. PAMETOVA SLOŽITOST (SPACE COMPLEXITY) 101 6 Pamětova složitost (Space complexity) Doposud jsme uvazovali jakozto jediníy vyípocetníí zdroj cas. Jinyím zdrojem, kteryí omezuje nasi schopnost provadet vípocty je pamet'. Zavedeme nyní potrebne definici, abychom se mohli krítce venovat pameťove slozitosti deterministickíeho Turingova stroje. Zastaví-li Turinguv stroj pri vstupu x G E0, pak pamet použité pri vstupu x je pocet ruzních ctvercu paísky, kteríe byly pouňzity ňctecíí-zapisovacíí hlavicíí Turingova stroje bňehem jeho vyípoňctu. Toto ňcííslo oznaňcííme jako sM (x). Zastaví-li Turinguv stroj M pro kazdí vstup x G E0, pak pametové složitost Turingova stroje M je funkce SM : N — N definovana jakozto SM(n) = max{s j existuje x G En tak, ze sM(x) = s}. Nejdulezitejsí trídou pameťove slozitosti je trída jazyku, ktere mohou byt rozhodnuty v polynomialné paměti PSPACE = {L C E0 j existuje Turinguv stroj M, kterí rozhodne L, a polynom p(n) tak, ze SM(n) < p(n) pro vsechna n > 1}. Je zňrejmíe, ňze pamňet' je hodnotnňejňsíí zdroj neňz ňcas v tom smyslu, ňze mnoňzstvíí pamňeti pouňzitíe pňri vyípoňctu je vňzdy ohraniňceno shora mnoňzstvíím ňcasu, kteríy vyípoňcet zabere. Tvržéní 6.1 Je-li jažyk L rozhodnutelný v case f (n), pak je L rozhodnutelný v paměti f (n). Dúkaž. Pocet ruznych ctvercu písky, ktere byly pouzity ctecí-zapisovací hlavicí libovolneho Turingova stroje behem jeho vípoctu nemuze prevísit pocet kroku, ktere Turinguv stroj provede. I Důsledek 6.2 P C PSPACE. 102 KAPITOLA 5. VYPOCETNI SLOŽITOST Dalsí duležitou trídou pamet'ove složitosti je trída jažyku, ktere mohou bít rožhodnuty v exponenciilnim čase EXP = {L C £0 | existuje Turinguv stroj M, kterí rožhodne L, a polynom p(n) tak, že TM(n) < 2p(n) pro vsechna n > 1}. Platí ale, že pri exponenciílním množství casu mužeme spocítat cokoliv, co lže spocítat pomocí poly-nomialní pameti. Věta 6.3 P C PSPACE C EXP Důkaz. Stací overit PSPACE C EXP. Predpokladejme, že jažyk L G PSPACE. Pak existuje polynom p(n) a Turinguv stroj M takovy, že M rožhodne L a žastaví po nejvyse p(|x|) ctvercích pasky pri vstupu x G Z^. Zíkladní myslenkou dukažu je, že protože M žastaví, nemuže nikdy opakovat stejnou konfiguraci dvakrat (pricemž konfigurace sestava že stavu Turingova stroje, požice ctecí-žapisovací hlavice a obsahu pasky). V opacnem prípade by vžnikla nekonecna smycka a tedy by Turinguv stroj nikdy nežastavil. Presneji, uvažujme vstup x G E^. Pokud |£| = m a |r| = k, pak každí v každem bode vypoctu muže byt momentalní konfigurace Turingova stroje popsína nasledovne: (i) soucasnym stavem Turingova stroje, (ii) požicí ctecí-žapisovací hlavice, (iii) obsahem paísky. Míme tedy k možností pro (i) a, protože vípocet použije nejvíse p(n) ružních ctvercu pasky, mame nejvíse p(n) možností pro (ii). Protože každy ctverec pasky obsahuje nejakí symbol ž abecedy E a obsah ctverce pasky, kterí nebyl použit ctecí-žapisovací hlavicí, se behem vípoctu nežmení, mame pak mp(n) 7. DOPLNKY JAZYKU 103 možností pro (iii). Celkem tedy míme kp(n)mp(n) konfigurací pro Turinguv stroj M behem jeho vípoctu pri vstupu x díelky n. Muže se nektera ž techto konfigurací opakovat? Evidentne nikoliv, protože kdyby se opakovala, Turinguv stroj by se dostal do smycky a nikdy by nežastavil. Tudíž t m (x) < kp(n)mp(n). Uvažme polynom q(n) splňující logk + logp(n) + p(n)logm < q(n). Odtud tM(x) < 2q(n). Pak L je rožhodnutelní v case 2q(n) a tedy L E EXP. | Je žnímo, že P = EXP. Ale žda platí, že PSPACE = EXP, je jedním ž hlavních problemnů teorie složitosti. Kdyby víse uvedene platilo, bylo by P = PSPACE, což se neví. 7 Doplňky jazyků Je-li L C S0 jažyk, pak komplement jažyka L je množina Lc = {x E S0 | x E L}. Je-li C trída složitosti, pak trída komplementů, jazyků, ž C se ožnacuje jako co — C = {L C S0 | Lc E C}. Nejduležitejsím príkladem takoveto trídy je co — N P, tj. soubor komplementu jažyku ž N P. Podle nasí definice jažyk L C S0 leží v co — NP tehdy a jen tehdy, když existuje Turinguv stroj M a polynom p(n) tak, že TM(n) < p(n) a pro každí vstup x E S0 míme: 104 KAPITOLA 5. VYPOCETN SLOŽITOST (i) pokud x G L, pak existuje certifikát y G £0 takoví, že |y| < p(|x|) a M akceptuje vstupní retežec xy, (ii) pokud x G L, pak pro každí retežec y G £0 M žamítne vstupní retežec xy. V prípade jažyka ležícího v P mame Turinguv stroj M, kterí v polynomialním case rožhodne L. Znegujeme-li vístup naseho Turingova stroje, obdržíme Turinguv stroj M1, kterí v polynomiílním case rožhodne Lc. Tedy P = co — P. Pro NP už víse uvedene neplatí. Otížka, žda NP = co — NP je pravdepodobne druhím nejduležitejsím problemem teorie složitosti, po otažce, žda P = NP. 8. NÁHODNĚ ALGORITMY 105 8 Nahodne algoritmy Algoritmus, kterí mí pravdepodobnost chyby mene, než 2-100 a kterí behem minuty je schopen identifikovat Císlo 2400 — 593 jakožto nejvetsí prvoCíslo mensí než 2400, má bezprostrední praktickí a estetickí důsledek. Takovími jsou napríklad algoritmy pro testovíní prvoCíselnosti od Rabina a dále od Solovaye a Strassena. Nejprve ilustrujme ideu náhodneho algoritmu na príklade: Predpokládejme, že máme polynomiální víraz v n promenních, rekneme f (x1,... , xn) a že si prejeme overit, zda je polynom f identicky nuloví. Overit to analyticky je neskuteCne poCítání. Predpokládejme místo toho, že jsme vygenerovali náhodní vektor (r1,..., rn) a vyCíslili f (n,..., rn). Pokud f (n,..., rn) = 0, víme že f je nenuloví. Pokud f (n,..., rn) = 0, je bud' f identicky nulove nebo jsme meli obrovske sstestí s víberem (r1 ,...,rn). Proved'me tyto kroky nekolikrát a pokud vždy obdržíme nulu, můžeme tvrdit, že f je identicky nula. Pravdepodobnost toho, že jsme udelali chybu, je zanedbatelná. 106 KAPITOLA 5. VYPOCETNI SLOŽITOST Je-li n vypočetní problem a x je vstup nebo instance n, rekneme, ze níhodny algoritmus pro resení n postupuje nasledovne. V jistych okamzicích pro resení instance x problemu n algoritmus provede nahodne rozhodnutí. S vyjímkou techto níhodních rozhodnutí je algoritmus čiste deterministickí. Jazyk L je nehodne rozhodnutelný v polynomiílním čase neboli lezí ve tríde RP, pokud existuje polynom f a polynomialní algoritmus, kterí pro kazdí vstup x a kazdí mozny certifikat y delky f (|y|) vypočte hodnotu v (x, y) G {0,1} tak, ze 1. x G L implikuje v (x, y) = 0 pro vsechna y. 2. x G L implikuje v (x, y) = 1 pro alespon polovici vsech mozních certifikatu y. Evidentne RP C NP a P C RP. Kapitola 6 Autentičnost a digitální podpisy V předchozích 3 kapitolách jsme předvedli metody, ktere mohou pomoci proti pasivnímu átoku; pomocí FI zašifrování lze data pro nepovolane osoby udelat necitelná. Tema teto kapitoly je venovano metodám proti aktivnáímu uátoku. Kryptografický protokol specifikuje, jakím způsobem kaZdá strana zaďná a odpovída na zpravy a to vcetne chybných nebo ilegálnách zpráv. Protokol můze rovnez specifikovat pozadavky na nastavená jako je napr. nastavená knihovny verejnách kláců. Strana, ktera se rádá protokolem, bude ochránena proti jistám specifikovanám nebezpeďm i v tom prípade, ze ostatní strany se protokolem nerídí. Je zrejne, ze Mr. X muze zpusobit podstatne vetsá skodu, jestlize neumá pouze pasávne ccást data, nábrz je dokonce aktivne zmenit. Skutecne se u vetsiny dnesnách aplikacá v kryptologii pozaduje autenticnost dat a ne jejich utajená. Je zvykem rozlisovat 3 zakladná typy problemu, ktere vzniknou z ruznách variant aktivnáho utoku. Odpovádajácá bezpečnostní architektura byla vytvorena instituci' International Standards Organisation (ISO) v Security Addendum k referenčnímu modelu ISO. Nejdráve je treba ptat se, zda byla zprava prenesena bez zmeny nebo zfalsováná; jedna se o pozadavek integrity zpravy. Je-li Mr. X v pozici, ze muze menit zpravy, nezbyva nez doufat, ze prájemce zpozoruje prápadnou zmenu. Musá bát schopen rozhodnout, zda byla zpráva zmenena ci nikoliv. 107 108 KAPITOLA 6. AUTENTIČNOST A DIGITÁLNI PODPISY Druhí typ ítoku je prvnímu podobní; zde je polozen duraz na otazku, zda si príjemce muze byt jisty, ňze zpríava skuteňcnňe pochíazí od uídajníeho odesilatele. Mluvíme pak o aůtenticnosti žpráavy. Poslední varianta je aůtenticnost uživatele: Muze osoba dokazat svoji identitu? Príjemce potrebuje prostňredek, aby se mohl pňresvňedňcit o tom, ňze skuteňcnňe komunikuje s tou osobou, o kteríe si myslí, ňze je s ní spojen. 1 Integrita a aůtenticnost 1.1 Symetrická aůtenticnost Ochrana autenticnosti informace sestaví z dvou nasledujících aspektu: o ochrana puvodce informace neboli dle terminologie ISO autenticita puvodu dat, o skutecnost, ze informace nebyla zmenena neboli dle terminologie ISO integrita informace. První aspekt lze prezentovat tak, ňze je informace naňcítíana napňr. z harddisku osobního poňcítaňce a my implicitne duverujeme zdroji informace. Jinym aspekteme je casovíní, umístení do fronty vzhledem k jiním zpríavaím a urňcení zpríavy. Aňz donedaívna se obecnňe pňredpoklíadalo, ňze zaňsifrovaíní informace je dostateňcníe k tomu, aby se prokaízala její autenticita. Pouňzityí argument byl ten, ňze pokud ňsifrovyí text dal po deňsifrovíaní smysluplnou informaci, tato by mňela vzniknout od nňekoho, kdo znía tajnyí klíňc, coňz garantuje autenticitu zpraívy a odesílatele. Ve dvou pňríkladech ukíaňzeme, ňze tato víra není spríavnía: ochrana integrity zíavisí na ňsifrovacím algoritmu a na míodu, ve kteríem je algoritmus pouňzit. Vernamova ňsifra, kde je naíhodnyí klíňc pňriňcítían modulo 2 k ňsifrovíemu textu níam poskytuje perfektní bezpecnost, ale aktivní utocník muze zmenit libovolny bit zdrojoveho textu tím, ze zmení odpovídající bit sifroveho textu. Tato informace analogicky platí pro libovolnou pricítací proudovou sifru a pro OFB mod (Output FeedBack) kazde blokove sifry. Castecne toto platí i pro prípad, ze sifra je pouzita CFB modu (Cipher FeedBack) nebo CBC moídu (Cipher Block Chaining). 1. INTEGRITA A AUTENTIČNOST 109 Je-li ždrojoví text delsí než jeden blok žasifrovan pomočí blokove sifry v ECB modu, aktivní ítočník muže snadno preusporadat bloky. Jiním príkladem žranitelnosti aktivním útočníkem je ždrojoví text žasifrovaní pomočí CFB modu. Vžhledem k synčhronižačním vlastnostem každí modifikače sifroveho textu žpusobí odpovídajíčí modifikači ždrojoveho textu a nasledne žkomolí nísledujíčí časti ždrojoveho textu. Pote čo čhyba opustí FB registr, bude sifrovy text opet spravne desifrovín. Je-li ale modifikovana poslední čast sifroveho textu, je žčela nemožne najít tuto modifikači. Pokud se žkomolení vyskytne v prostredku ždrojoveho textu, lže čhybu detekovat pomočíí redundanče. V jiníčh mídečh (jako napr. CBC míd) je každy sifrovy text složitou funkčí predčhožíčh bitu ždrojoveho textu a nejake počíteční hodnoty. Pokud modifikače jednoho bitu sifroveho textu žpusobí žkomolení t bitu ždrojoveho textu, pravdepodobnost, že že novy ždrojoví text bude akčeptovan jako smysluplní je rovna 2-tD, kde D je redundanče informače. V prípade priroženeho jažyka žakídovaneho pomočí 5 bitu na čharakter je redundanče na bit D ~ 0.74 a tato pravdepodobnostje rovna 2-22.2 pro t = 30. Avsak, je-li D = 0 a žasifrovaní neposkytuje žadnou autentičitu, jsou vsečhny žpravy smysluplne a to nežavisle na sifrovačím algoritmu nebo na modu sifrovaní. To pak žnamena, že ítočník muže modifikovat žpravy nebo padelet žprívy dle sveho vyberu. Omežení je pak to, že utočník neví dopredu, čo bude obsahem odpovídajíčího ždrojoveho textu, ale pro mnohí aplikače lže takovíto utok považovat ža ždroj važnyčh problemu. Požnamenejme, že i v prípade existenče redundanče se požaduje kontrola lidskym faktorem nebo vhodním počítačovím programem. Abyčhom žajistili integritu žprívy, je nutno pridat spečiílní redundanči, a je-li informače spojena s puvodčem žprívy, musí bít použít v tomto pročesu tajní klíč (to predpoklada spojení osoby a jejího klíče) nebo žvlastního kanalu pro žajistení integrity. Mužeme pak identifikovat dve žakladní metody. o První metoda je analogička metode symetričke sifry, kde utajení velkeho množství dat je žaloženo na utajení a autentičite kratkeho klíče. V tomto prípade autentičita informače žívisí na utajení a auten-tičite klíče. Abyčhom dosahli tohoto učelu, informače se žkomprimuje na kvantitu pevne delky, kterou nažyvame hesovacím kádem. Pote se hesovačí kod pripojí k informači. Funkče, kterí provede tuto operači komprese, se nažíva hesovací funkce. Zakladní myslenkou žabežpečení integrity je pridat redundanci k informači. Prítomnost redundanče dovoluje príjemči provest rožlisení autentičke informače 110 KAPITOLA 6. AUTENTIČNOST A DIGITÁLNI PODPISY a podvodne informace. Abychom garantovali původ dat, je nutno v procesu použít tajní klíC. Tajny klíC může bít obsažen v procesu komprese nebo může bít použit, aby ochránil hesovací kíd a/nebo informaci. V prvním prípade mluvíme o MACu (Message Authentication Code), zatímco v druhem prípade se hesovací kod nažívá MDC (Manipulation Detection Code). o Druhí metoda sestívá na zajistení autenticity (jak integrity a autenticity původu) informace o autenticite MDC. Typickím príkladem teto metody je uživatel poCítaCe, kterí pocítá MDC pro vsechny sve důležite soubory. Může si pak uložit soubor vsech MDC na diskete, kterou si bezpeCne uschová. Pokud tyto soubory zasle vzdálenemů príteli, může jednoduse poslat soubory a sdelit príteli po telefonu jejich MDC. Autenticita telefonního kanílu je zajistena hlasovou identifikací. Pridíní redundance není jiste dostateCne. Speciální důraz musíme klást na obranu proti ítokům na vysoke ůrovni, jako je napríklad opakování áůtentifikovane zprávy. Oba prípady nefungují, pokud si odesílatel a príjemce navzájem nedůverůjí. V prvním prípade sdílejí stejní tajní klíC. Pokud jedna ze stran tvrdí, že informace byla zmenená druhou stranou, nemůže soudce rozhodnout, kdo má pravdu, i když obe strany vydají spoleCní tajní klíC. Druhí prístup může pouze zajistit neprevzetí, pokud obe strany verí autenticite MDC: v praxi je to vsak obtížne realizovat, protože obe strany mají podobnyí pňrístup ke kanaílu. 1.2 Asymetřicka aůtenticita Jestliže chceme byt ochráneni proti vnimímu napadnutí, potrebujeme elektronickí ekvivalent podpisu. V tomto prípade tretí strana bude schopna rozlisit dve strany a to na základe skuteCnosti, že způsobilosti obou stran jsou různe. Pojem digitálního podpisu byl zaveden W. Diffiem a M. Hellmanem (blíže viz 2). Požadavky na elektronickí podpis jsou, že podpis závisí na podepisovane informaci (protože není fyzicky spjat s dokumentem) a že podepsány je jediní osoba, kterí je schopna vytvont podpis (to žnámený, že 1. INTEGRITA A AUTENTICNOST 111 nikdo jiní nemuze zfalsovat podpis tj. podepsaní nemuze zaprít, ze informaci podepsal prave on). Digitílní podpisove schema sestíví z nísledujíčích prvku: o inicializační faze (napr. generovaní klíčče a obecne nastavení), o procesu podpisu, kdy je vytvoren podpis, o procesu verifikace, kdy príjemce (nebo soudce) overí, zda je podpis spravmí. Digitílní podpis v tomto smyslu lze vytvorit pomocí zarízení bezpečních proti falsovíní, konvenčních jednosmerních funkcí nebo technik verejneho klíčče. Poznamenejme díle, ze bylo definovano nekolik zobecnení - napr. s ruzními stupni bezpečnosti a více hríči ve hre. Príklady takovychto jsou nasledující: libovolne podpisy, kde proces podpis a verifikace zahrnuje interakci s tretí stranou, skupinove podpisy, kde podpisující a/nebo kontrolori jsou členy skupiny, slepe podpisy, kde podpisující podepíse slepou nebo maskovanou zprívu a neviditelne nebo nepopiratelne zpravy, kde lze podpis verifikovat pouze ve spolupraci s podpisujícím. 1.3 Message-Authentication-Code Pripomenme si, ze pri integrite a autentičnosti zpravy jde o to, abychom vyvinuli metody, které príjemci umozní rozhodnout, zda zprava dosla neporusena a autentickí. K tomu potrebuje príjemce neco, s čím muze bít zpríva overena: Potrebuje dodatečnou informaci od odesilatele. Takoví informační blok se nazíví kryptograficky zkusební souCet neboli Message-Authentication-Code, zkrícene MAC. Protokol k vytvorení a verifikaci kryptografickeho zkusebního součtu je zalozen na pouzití tajneho klíče k, kterí je znam jak odesilateli tak príjemci, a kryptografickem algoritmu A, kterí budeme v dalsím diskutovat. Odesílatel neposíla pouze holou zpravu M, níbrz dodatečne príslusny MAC; ten se vypočte pomocí klíčče k algoritmem A ze zprívy M nísledovne: MAC = Ak (M). 112 KAPITOLA 6. AUTENTIČNOST A DIGITÁLNI PODPISY Poznamenejme, ze M je odesílíno nezasifrovane, protoze cílem odesílatele není utajit obsah zprívy, níbrz zpravu zabezpecit. Pokud chceme navíc duvernost, musí byt m a MAC zasifrovany. Nyní prijde na radu príjemce. Jeho zíjem je zjistit, zda prijatí zprava souhlasí se zpravou odeslanou a zda skutecne pochazí od uvedeneho odesilatele. Aby to provedl, simuluje proceduru odesilatele: Pouzije algoritmus A s klícem k na prijatou zprívu M' a proverí, zda vísledek souhlasí s obrzením MACem. Je-li Ak(M') — MAC', ví príjemce, ze se neco stalo: proto neakceptuje zprívu jako autentickou a odmítne ji. Je-li ale Ak(M') — MAC', muze si bít dostatecne jistí, ze zpríva nebyla zmenena. Prirozene tato jistota zavisí ve velke míre na kvalite algoritmu A a velikosti mnoziny mozních klíccu. Predstavy o MAC-mechanismu jsou níasledující: • Podvodu ze strany Mr. X bude zamezeno, protoze nezna klíc k. Musel by totiz spocítat odpovídající MAC pro svou zpríavu. • Príjemce muze pouze rozpoznat, ci je zpríva neporusena a autenticka; v zípornem prípade nemí zadnou moznost zrekonstruovat puvodní zprívu. To znamena, ze v tomto prípade je nutny noví prenos zpríavy. • MAC-mechanismus je metoda k dosazení integrity a autenticnosti. Uz jsme videli, ze lze poznat integritu. Pokud probehne verifikace kladne, je príjemce rovnez presvedcen o autenticnosti zprívy, protoze odesílatel je jedinou jinou instancí, ktera zní tajní klíc. Jake algoritmy A muzeme pouzít k vípoctu MACu? Okamzita odpoved' je jednoducha: pouzijme jed-noduse sifrovací algoritmus, pricemz MAC je kryptogram, ktery odpovída zprave M. Odhledneme-li od toho, ze takovýto slabí algoritmus není vhodne doporucit, mí tento navrh tu nevíhodu, ze prenasena data jsou dvojnísobne delsí nez vlastná zprava. Prirozene kazdí MAC prodlouzí zpravu, ale chteli bychom delku tohoto dodatecníeho bloku drzet v nejakyích rozumníych mezíích. 1. INTEGRITA A AUTENTIČNOST 113 V praxi používame k vípoctu MACu take sifrovací algoritmus, ale ne prímo, níbrž v tžv. Cipher-Block-Chaining modů. Predstavme si sifrovací algoritmus f (v praxi se vetsinou používí algoritmus DES), kterí žobražuje bloky žprívy složeních ž n žnaku pomocí nejakeho klíce K na bloky kryptogramu, rovnež složeních ž n žnaku (typicka hodnota je n = 64). Abychom mohli vypocítat MAC, roždelíme žpravu M do bloku M1, M2, ..., Ms delky n. Pak aplikujeme f na blok M1 a obdržíme první blok kryptogramu C1 = fK(M1). Potom pricteme C1 k M2 a položíme C2 = fK(C1 © M2). Tento postup opakujeme až skoncíme vístupem Cs = fK(Cs—1 © Ms), ktery vybereme ža MAC. Takto vypoctení MAC mí nísledující prednosti: - MAC ma pevnou delku n nežívislou na delce žpravy. - MAC žívisí na vsech blocích žpravy. Protoňže vňsechny moňžníe žpraívy jsou žkomprimovíany na MACy pevníe díelky, maí mnoho žpríav tentyíňž MAC. To nepredstavuje žídní problem pro príjemce, protože ten nemusí rekonstruovat puvodní žpravu ž MACu. Ne vsechny algoritmy jsou vhodne k tomu, aby byl Mr. X postaven pred neprekonatelne problemy. Algoritmus pro vyípoňcet MACu by mňel mít naísledující vlastnosti. 1. Mňelo by byít prakticky nemoňžníe najít pro danyí MAC odpovídající žpríavu (pokud tato vlastnost platí, nažyvame algoritmus jednosměrnou (one-way) fůnkcí). Prakticky nemozne žnamena, že s dnesními metodami a poňcítaňci by vyňreňsení problíemu trvalo pňríliňs dloho (nňekolik století). 2. Mňelo by byít prakticky nemoňžníe najít dvňe žpraívy, kteríe mají tentyíňž MAC (jednosmňernaí funkce splnňující tuto podmínku se nažíva bezkolizní). Je velmi obtížne podat precižní matematickou definici jednosmerne funkce. Neformílne je jednosmerna funkce funkce f : S — T, kde S a T jsou množiny takove, že (1) pro vsechna x E S je f (x) snadno vypocitatelne, (2) míme-li k dispožici informaci, že f (x) = y, neexistuje žídny primereny žpusob 114 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY jak získat (vípoctem) x pro dostatecne velké mnozství prvku y z T. Pracovní slova zde jsou snadno, primerene a dostatecne velkée. Je zrejme, ze je-li díno f (x), jeden zpusob, jak získat x je prohledívat vsechny mozne hodnoty x G S. Nepovazujeme to za primerene, protoze S sestíví obvykle z posloupnosti binírních retezcu delky n ~ 200. Pozadujeme, ze vípocet pro nalezení x ze znalosti y je prílis dlouhotrvající nebo níkladny, kdykoliv y lezí v dosti velké podmnozine mnoziny T. Príklad. Elementarním príkladem kandidata na jednosmernou funkci je, pro dostatecne velke prvocíslo p, funkce f (x), kde f (x) je polynom nad telesem Zp. Pak je relativne snadne vypocíst f (x) (1 < x < p — 1), ale obvykle je tezke nalezt resení rovnice f(x) = y. Víse uvedena nepresní definice znamení, ze co je jednosmerna funkce se mení s dobou. Napríklad, vípocet pozadující milion instrukcí a 10 000 slov pameti nemohl bít v roce 1950 povazovín za snadny, ale nyní by trval nekolik sekund na osobním pocítaci. Tedy funkce povazovaní v roce 1950 za jednosmernou nemusí byt za ni povazovana nyní. Jedna metoda podíní formalní definice by mohlo bít uzitím fyzikalního prístupu. Napr. 1060-bitova pamet' vzdy zustane nedosazitelnou, protoze i kdybychom potrebovali pouze jednu molekulu na bit pameti, její konstrukce by vyzadovala více hmoty nez existuje v slunecním systemu. Podobne, termodynamika nam díva omezení maximílne 1070 operací, ktere lze provest s vyuzitím celkove energie slunce. Nizsí íroveň nedosazitelnosti je pouzití myslenek vypocetní slozitosti. Nejdríve uvazujme nektere z vlastností, ktere bychom rídi pozadovali po jednosmerne funkci. (I) Vípocet f (x) z x musí bít primerení: vyjídríme to tím, ze f je vypocitatelna v polynomiílne omezene dobňe (ňríkaíme, ňze f G P. (II) Vípocet f-1 nesmí bít snadne; budeme tudíz pozadovat, ze není znam zadny algoritmus pro vípocet f-1 v polynomialne omezene dobe. 1. INTEGRITA A AUTENTIČNOST 115 (III) Tretí podmínka bude tzv. upřímnost funkce tj., ze existuje polynom p splňující |x| < p(|f (x)|). Poslední podmínka je technickía podmínka pro vylouňcení funkcí jako f (x) = [log logxl, kteraí zcela jistňe splnňuje (I) a (II), ale kterou bychom nemohli obvykle povaňzovat za jednosmňernou funkci. Funkce f splnňující (I),(II) a (III) se nazyívaí slabňe jednosmňernaí funkce. Príklad. Necht' Ik znací mnozinu vsech k-bitovích prirozeních císel tj. Ik = {2k-12k — 1} (k = 1, 2,...). Necht' Sk = Ik x Ik a necht' f : Sk —► Z+ je definovína jako f (m, n) = m • n. Polozíme-li S = \J{Sk : 1 < k < to} a rozsiríme-li f na S, získíme slabe jednosmernou funkci. Pritom v souňcasníe dobňe není zníamo, ňze by inverzní funkce leňzela v P. Není lehke najít matematickou explicitní definici jednosmerne funkce. Uved'me nasledující príklad. Príklad. Bud' F sifrovací algoritmus, ktery zobrazuje zpravu M pomocí klícce K na kryptogram C, FK(M) = e(M, K) = C a predpoklídejme, ze M C K. Zmeňme trochu tuto funkci. Zafixujme za tímto ucelem (ne tajnou) zprívu M0 (napr. M0 = 00... 0); tato zpríva se objeví v algoritmu místo obvykle zpravy, nehraje ale roli variabilní zpríavy. Variabilní zpríava se vloňzí do algoritmu F na místňe klíňce. Kríatce: uvaňzujeme funkci f = e(Mo, —) : M ^ C. 116 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Tvrdíme pak, ze f je jednosmerna funkce. Predstavme si, ze Mr. X zna jak M0 tak i C a chtel by nají M. V reci sifrovacího algoritmu F to lze vyjadrit nasledovne: Mr. X zní sobe odpovídající dvojici zprava-kryptogram (M0, C) a chtel by vypocíst klíc. Je-li algoritmus F kryptologicky bezpecní, je rezistentní proti tomuto known-plaintext utoku a proto je f jednosmerní funkce. Polozme si otízku, zda lze matematický dokazat, ze tato funkce f je jednosmerní. Odpoved' zní: Ne! Matematici nemohli jeňstňe o ňzíadníe funkci dokíazat, ňze je jednosmňernía. To znamenía, ňze nezníame ňzíadnou funkci, jejíňz funkňcní hodnoty lze spoňcítat v polynomiíalnňe omezeníe dobňe, ale kteraí pňri vyípoňctu funkce inverzní potňrebuje exponenciaílní dobu. Nevíme tedy, zda teoreticky jednosmňerníe funkce existují. Pro praktickíe uíňcely mají ale víyňse popsaníe funkce dostateňcnňe dobríe vlastnosti. Zanedbatelne fůnkce Definice. Funkce r : N — N je zanedbatelní, jestlize pro kazdí (pozitivní) polynom p : N — N, existuje cele císlo k0 takove, ze r(k) < 1/p(k) pro k > k0. Takze zanedbatelna funkce bude casem mensí, nez je inverze jakehokoliv (pozitivního) polynomu. Budeme pouzívat oznacení neg(^), ktere oznacuje libovolnou zanedbatelnou funkci. Po zbytek tohoto textu budeme o vňsech polynomech pňredpoklíadat, ňze jsou pozitivníí. To znamenaí, ňze splnňujíí p(k) > 1 pro vňsechna pňrirozenaí ňcíísla k > 1. Uvňedomme si, ňze funkce r : N — N neníí zanedbatelnía, praívňe kdyňz existuje pozitivníí polynom p(n) a nekonecne mnoho hodnot k G N tak, ze r(k) > 1/p(k). Nasledující vysledek nam ríka, ze nase definice zanedbatelnosti perfektne zapada do myslenka, ze pouze polynomiíalníí ňcasovíe víypoňcty jsou proveditelníe. Iňííkía tedy, ňze pokud algoritmus mía zanedbatelnou nadňeji na uspech, pak jeho opakovaní polynomialne mnohokrat nemuze zmenit tuto skutecnost. Tvržení 1.1 Pokud je pravdepodobnost, ze algoritmus E bude uspesní (v dane výpocetní uloze) na vstupech velikosti k, zanedbatelna (v k), pak pravdepodobnost, če uspeje alespoz jednou pri polýnomialne mnohokratem opakovan í, je take zanedbatelna. 1. INTEGRITA A AUTENTIČNOST 117 Důkaz. Predpoklídejme, ze existuje pozitivní polynom q(n) tak, ze pravdepodobnost alespoň jednoho uspechu, pokud je algoritmus E opakovan q(k)-krat, není zanedbatelní. Stací pak ukazat, ze pravdepodobnost uspechu algoritmu E nemohla bít zanedbatelna. Ale to znamení, ze existuje pozitivní polynom p(n) a nekonecne mnoho hodnot k G N tak, ze q(k)r(k) > 1/p(k). To je ale ekvivalentní s tím, ze pro nekonecne mnoho hodnot k G N platí r(k) > 1/(q(k)p(k)). Tedy r není zanedbatelnía, spor. Pak lze preformulovat definici jednosmerne funkce f : {0,1}* — {0,1}* nasledovne: (I) Vípocet f (x) z x musí bít primerení: vyjídríme to tím, ze f je vypocitatelna v polynomiílne omezene dobňe. (II) Pro kaňzdíy pravdňepodobnostní algoritmus A pracující v polynomiíalním ňcase, je pravdňepodobnost toho, ze A íspesne provede inverzi f (x), pro níhodne vybrane x G {0,1}k, zanedbatelna. (II) lze pak pňrepsat níasledovnňe (II') Pro každý pozitivní polynom q(n) a každý pravděpodobnostní algoritmus A pracující v polynomiálním čase, platí P(A(f (x), 1k) G f-1(f (x)) | x G{0,1}k) < 1 q(k) pro dostataňcnňe velkíe k. Předpoklad o diskřětním logaritmu Necht' p je prvocíslo, g je primitivní koren mod p a x G ZP. Definujme dexp(p,g,x) — (p,g,gxmod p). 118 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Funkci dexp(p, g, x) lže snadno spocítat, protože umocňovaní mod p muže bít provedeno v polynomialním case. Ale jak obtížne je ji invertovat? Definujeme 'inveržní' funkci dexp jakožto dlog(p,g,y) = x kde y = gxmod p. (Vsimnete si, že inveržní funkce dexp by opravdu mela dít na vístupu trojici (p, g, x), je vsak žjevne snadne najít p a g dane trojicí (p, g, y), žasadní 'problem' v invertovaní dexp spocíva v problemu naležení x.) Vyípoňcet funkce dlog je žnaímyí jako probliem diskrietniiho logaritmus. Vňeňrí se, ňže je nesmírnňe tňeňžkíy. V souňcasníe dobňe nejefektivnňejňsí algoritmus pro tento problíem je žaloňžen na algoritmu Number Field Sieve pro faktorižaci, a ža prijatelnych predpokladu se ocekíva doba O(exp(c(ln p)1/3(ln ln p)2/3)). I když si myslíme, že problem diskrétního logaritmu je obtížní, nevíme, žda je to pravda. Pokud chceme žaložit kryptograficke protokoly na 'obtížnosti' problemu diskrétního logaritmu, potrebujeme formulovat pňresnňe pňredpoklad nepoddajnosti, popisující pňresnňe, jak vňeňríme (nebo doufíame), ňže je problíem diskríetního logaritmus obtíňžnyí. To ňríkaí, ňže kaňždyí odpovídající protivník (pravdňepodobnostní algoritmus pracující v polynomiíalním ňcase) mía použe žanedbatelnou ňsanci vyňreňsení problíemu diskríetního logaritmu pro níahodnyí vyíbňer. 2 Autentičnost ůZivatělě Zakladní íloha bežpecnostní techniky je spolehliva identifikace osob tj. autentižace. Dríve to byl vílucne proces meži dvňema lidmi, kteryí je dnes rožňsíňren na proces meži ňclovňekem a poňcítaňcem. Pňritom vžnikají pňriroženňe problíemy; ale, jak uvidíme, lže i s poňcítaňcem provaídňet velmi dobrou autenticitu uňživatele. Nejprve si pripomeňme, jak je tento problem résen meži lidmi. Zasadne lže lidi požnívat podle nasledujících žnaku: - Osobu lže identifikovat podle charakteristických vlastnosti. 2. AUTENTICCNOST UZCIVATELE 119 - Osobu lže identifikovat podle vlastnictví. - Osobu lže identifikovat podle znalosti. Prvníí mechanismus je v bňeňžníem ňživotňe pouňžíívían tak ňcasto, ňže si ho ani nejsme vňedomi: požnaívíame nase žníme podle jejich obliceje, hlasu, chuže atd. V jistích situacích se používají ža ucelem obžvlíst' spo-lehlive identifikace otisky prstu. Nasledující metody se používají jen ve speciílních situacích. V druhem kole kupínove privatižace je nutno predložit obcanskí prukaž, kde je uvedeno ceske obcanství; pri prechodu hranic se musíme prokížat pasem; platíme-li kreditní kartou, lže overit identitu jejím vlastnictvím atd. Identifikace na žíklade žnalosti je provadena velmi žrídka - ackoliv tento mechanismus je žnam již ž nejstarsích dob (vojaci musí žnat soucasne heslo, aby se mohli identifikovat). Pňri procesu autenticity meži ňclovňekem a poňcítaňcem je situace žcela jinía. Autenticita na žíakladňe žnalosti je mechanismus, kteríy lže nejjednoduňseji realižovat; autenticita na žíakladňe vlastnictví je rovnňeňž moňžnaí. Naproti tomu je autenticita podle charakterostickyích vlastností velmi komplexní a pouňžívía se použe pňri aplikacích, kteríe vyňžadují extríemnňe vysokou bežpeňcnost. Proto se budeme vyíhradnňe žabyívat s metodami žaloňženyími na žnalosti resp. vlastnictví. Pňri pouňžití tňechto metod mía uňživatel nňejakíe tajemství a poňcítaňc se chce pňresvňedňcit, ňže osoba mía skuteňcnňe jí odpovídající tajemství. Hesla Klasicka metoda, se kterou se osoba prokíže stroji, je žaložena na heslech. Heslo je libovolní posloupnost žnaku (písmena, císlice, specialní žnaky), ktera je vílucnym tajemstvím osoby a pocítace. To žnamena, že v ideíalníím pňríípadňe žnajíí jen uňživatel a poňcíítaňc pňríísluňsníe heslo. Zíakladníí myňslenka je jednoduchía: poňcíítaňc uloňžil referencníí heslo P0, kteríe je žníamo uňživateli. Kdyňž chce uňživatel prokíažat svou antenticitu (napňr. pňríístup k daníemu poňcíítaňci), napííňse svíe heslo P a poňcíítaňc porovnía, žda jsou P a P0 totoňžníe. Uňživatel je pňripuňstňen, jestliňže P = P0. Je mnoho problemu s hesly, obžvlaste takove, ktere souvisí se spatním žachížením s hesly. My se budeme venovat jen tem problemum, ktere lže reňit pomocí kryptologickích prostredku. To jsou problemy, ktere se tyíkajíí uklaídíaníí hesel. 120 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY V prípade, že ma Mr. X ctecí prava na soubor obsahující hesla (nebo si ho opatrí), muže císt vsechna hesla a tím se stat libovolním uživatelem. Víse popsana procedura je použe tehdy bežpecní, jestliže je soubor obsahující hesla uloňžen jako neňcitelnyí - a to je poňžadavek, kteríy kaňždíy systíemovyí programaítor odmítne jako nerealižovatelnyí. Pňriroženňe naím napadne zasifrovat hesla. Kdyňž to provedeme naivne, navrhneme níasledující protokol: pocítac uloží žasifrovaní hesla P * = e(P0,K),; pri overení autenticity uživatele se P * rožsifruje a srovnía se s heslem žadaníym uňživatelem. Tato procedura ma jasnou vyhodu. Dokonce i když Mr. X muže císt soubor obsahující hesla, muže je císt použe žasifrovaní. Protože ale není schopen je desifrovat, nemuže simulovat jednotliveho uživatele vložením spríavníeho hesla. Je tento argument spríavnyí? Prirožene jsme podstatne redukovali množinu tajnyích dat; namíísto neo-hraniceníeho poctu hesel, ktería majíí byít tajne uložena, musííme v sifrovacíím modelu jen uložit tajne klííc K. To je nepochybne velkía víyhoda, ale neníí to žaídníe principiíalníí reseníí problíemu: Pokud si Mr. X opatríí klíc K, muže desifrovat vsechna žasifrovana hesla a ma tak stejne jako predtím možnost stat se libovolným uňživatelem. Po takoveto analíže je pro tvurce prístupoveho systemu žaloženeho na heslech težke vyjídrit sve príní: chtňel by mít k dispožici funkci, ktería zasifruje hesla bež toho, ňže by pouňžila tajnyí klíňc - to není nic jiníeho, neňž naňse žníamía jednosmňernía funkce. Nyní použijme takovouto jednosmernou funkci f. V pameti pocítace uložme hodnotu P# = f (P0). Behem procedury overení autenticity se aplikuje f na posloupnost žnaku P, kterou vloží uživatel. Pak pocítac proverí, žda platí P # = f (P). Pňrednost tíeto metody je žňrejmía: soubor obsahující hesla je nedeňsifrovatelníy a není ňžaídníe tajmeství. Je požoruhodníe, ňže jednosmňerníe funkce byly vyvinuty proto, aby uklíadaly hesla v neňcitelníe formňe; tato metoda byla v sedesítích letech navržena a realižovína Rogerem Needhamem ž University Cambridge. Prirožene nechraní takovato procedura proti spatne žvolením heslum. Mr. X se muže totiž pokusit o chosen password-utok: Mí-li sežnam nejcasteji používaních hesel (dívcí jmena, telefonní císla, data narožení,...), muže aplikovat f na tato popularní hesla a vísledky srovnat s obsahem souboru obsahující požmenena hesla. Empiricke vísledky ukažují, že Mr. X muže tímto žpusobem žískat podstatne procento vsech hesel. 2. autentičnost uživatele 121 Autenticita pomocí Cipových karet Zádní system žáložený na heslech nesplňuje extremne vysoke bezpeCnostní požadavky. To spoCíví zcela jednoduse na tom, že lide nemají schopnost si pamatovat hesla; aby si Clovek zapamatoval heslo (bez toho, že by si je bokem zapsal), musí se jednat o krítke a prehledne slovo. Mimo to je ochrana pomocí hesel statická metoda pro urCení autenticity. Prirozene může poCítaC nutit uživatele k pravidelne obmene hesel, napr. každí mesíc. To je ale jen malí pokrok: Stejne heslo se vždy použije vícekrát. ProC je to problem? Mr. X jednou odposlechne prenos hesla a od te chvíle se může vydávat za uživatele. Abychom vyreňili tento problem, musí se data, kterí jsou vymeňována mezi poCítaCem a uživatelem neustíle menit - pokažde nová otázka a nová odpoved'. Je jasne, že uživatelova odpoved' se musí formulovat tak, že nikdo jiny nemůže tuto odpoved' poskytnout. To znamená, že reakce uživatele na otázku musí zíviset na nejakem tajemství, jinak by totiž na ni mohl odpovedet i Mr. X. Odpovídající protokol podle metody Challenge-and-Response probíhá následovne. Jak poCítaC tak uživatel mají k dispozici jednosmernou funkci f a spoleCny tajní klíC K. PoCítaC obdrží od uživatele data k identifikaci; v nasem prípade treba jmeno uživatele A. Nato si poCítaC opatrí pro dane jmeno príslusní klíC K. (KlíC K může bít uložen v seznamu, může byt odvozen systemovím globálním klícem nebo dán k dispozici pomocí podobne procedury.) PoCítaC se musí presvedCit o tom, že uživatel, kterí se chce identifikovat, je skuteCne uživatel A a ne žákerny Mr. X. Pokud může uživatel dokázat, že má správní klíC K, je automaticky uznán za autentickeho. Tj. považujeme za dokázane, že se skuteCne jedná o uživatele A. Cílem poCítaCe v následující popsane procedure autenticity je nepřímo se presvedCit, že uživatel je ve vlastnictví klícce K. V popisu protokolů oznaCme klícc, kterí je ve vlastnictví uživatele (to by mohl bít i Mr. X) jako K'. Za tímto íCelem klade poCítaC uživateli otázku tím, že mu zasle níhodne zvolene Císlo RAND. Pak uživatel vypoCte parametr autenticity AP' = fK> (RAND) a zasle jej poCítaCi. SouCasne poCítaC vypoCte hodnotu AP = fK(RAND) a porovná zda AP = AP'. Pokud ne, pak neco nesouhlasí, v opaCnem prípade má poCítaC s vysokou pravdepodobností stejny klícc jako uživatel. Tedy uživatel bude akceptován. Tato procedura má dve víhody a dve nevíhody. Protože je Císlo RAND níhodne voleno, mení se prípad od prípadu a Mr. X nemá žídnou sanci predpovedet nísledující RAND. Take AP má charakter níhodneho 122 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY čísla, takze Mr. X nikdy nemuze na otazku dít sprívnou odpoved'. Prave tak dulezití je skutečnost, ze pomocí protokolu se prokaze, ze oba klíče jsou identicke, ale klíče samotne se uvnitr protokolu nikdy neobjeví. Nevyhody Challenge-and-Response protokolu jsou sice male, ale nesmejí byt jak prakticky tak teoretičky zanedbany. Uvedomme si, ze počítač vlastní prístup k tajním klíččum uzivatelu. To počítači umoznuje, aby se vydaval vzhledem k jinym instancím (nebo vuči sam sobe) za uzivatele. Jinak rečeno: Predpoklad pro pouzití Challenge-and-Response protokolu je, ze uzivatele duverují integrite počítače provídejícího autenticitu. Jina nevíhoda spočíví v tom, ze odesilatel A musí provest algoritmus f. Provedení kryptografickeho algoritmu vsak presahuje znalosti a moznosti kazdeho lidskeho stvorení; tyto veci bychom meli prenechat elektronickemu sluhovi. Takovímto sluhou muze bít napr. tzv. cipoví karta. Problem je vsak v tom, aby čipova karta rozpoznala, ze ji chce pouzít opravnemí uzivatel A a ne Mr. X. Musí tedy od uzivatele vyzadovat, aby vuči ní prokazal totoznost. 2.1 Zero-Knowledge protokol Zero-Knowledge protokol je procedura, ktera jedne strane dovolí presvedčit druhou stranu, ze ma určite tajemstvíí, aniz by prozradila o tomto tajemstvíí nejmensíí informaci. Zero-knowldege protokol je dvoustranny protokol; jedna strana se nazíví dokazovatel, druha proverovatel. Dokazovatel zní nejakou skutečnost a preje si presvedčit proverovatele o teto skutečnosti. Proverovatel chce protokol, kterí mu dovolí se presvedčit o platnosti teto skutečnosti prave tehdy, kdyz je tato skutečnost pravdiva. Presneji, dokazovatel (jestlize jedna podle protokolu) bude schopen presvedčit proverovatele o platnosti skutečnosti, pokud je tato skutečnost pravdiva, ale dokazovatel (dokonce i kdyz se pokusí podvídet) nebude mít zídnou podstatnou sanci v presvedčení proverovatele o platnosti skutečnosti, pokud tato neplatí. Pritom si dokazovatel nepreje podat zadnou informaci o podstate skutečnosti (napr. duvody proč skutečnost platí). Uved'me tri jednoduche príklady. 2. AUTENTIČNOST UŽIVATELE 123 Historický příklad: Tartagliovo tajemství Resení rovnič byl v historii matematiky nanejvís duležity problem. Jednodučhe bylo resení linearníčh a kvadratičkíyčh rovnič. Kubičkaí rovniče, tedy rovniče tvaru ax3 + bx2 + cx + d = 0 nebyla tak snadno resitelna a naležení jejího resení trvalo podstatne dele. Benatskí matematik Niččolo Tartaglia (1499-1557) objevil podle svyčh ídaju v roče 1535 metodu jejího resení. Verejne ožnamil svuj objev, ale vžoreč pečlive tajil. Tartaglia snadno ukažal, že je sčhopen kubičkou rovniči resit a tím každeho bež obtíží presvedčil, že jeho resení je sprívne. Ačkoliv se Tartagliovi konkurenti mimorídne snažili, nebyli sčhopni odhalit jeho tajemství. Až Geronimo Cardano (1501-1576) presbedčil Tartagliu, aby mu vžoreč ukížal. Slíbil, že ho udrží v absolutní tajnosti. Stalo se. čo se stít muselo: Ve sve kniže Ars Magma (1545) žverejnil Cardano Tartagliuv vžoreč; čestne vsak popsal, že tato formule počhaží od Tartaglii. Presto žustava ironií osudu, že se dnes vžoreč pro resení kubičke rovniče nažíva Cardanova formule. Pro nas je duležite, že Tartaglia mel tajemství (metodu resení kubičkíčh rovnič), ktere byl sčhopen utajit a o jehož existenči mohl presvedčit ostatníí. Odmocninový príklad Uvažme hru probíhajíčí nasledovne: Mama hríče A a hríče B. Hríč A tvrdí, že žna číslo s, ktere hrač B nežní, a s pritom splňuje, že s2 = 34 mod 55. Hríč A čhče hrače B presvedčit, že toto číslo opravdu žna. Proto níahodne žvolíí čííslo r, umočníí je na druhou a spočíítía žbytek po deleníí 55, rekneme napr. 26 a ukíaže jej hraíči B. Nyníí pričhíažíí na radu hríač B. Hodíí si minčíí; pokud padne hlava, čhče žnaít od prvníího hríače r s mod 55, jinak použe r. Predpoklídejme, že padla hlava. Pak reknu, že r • s mod 55 = 53, a to lže jednoduse proverit, nebot' skutečne platíí 124 KAPITOLA 6. AUTENTIČNOST A DIGITÁLNI PODPISY 53 mod 55 = 4 = (26 • 34) mod 55 = r • s mod 55. Uvedomme si, ze je právě tak těžké najít s, pokud navíc známe r2 mod 55 a r • s mod 55, jako kdybychom je obe neznali. Pripomeňme, že r nesmí bát zcela nahodne zvoleno; napríklad by r melo bát vetší než v^55. Lze u teto hry podvadet? Ano - v prípade, ze hrac B neobjeví podvod. Ale po case se na alespoň jeden podvod prijde. Predstavme si, ze hríc A podvadel a číslo s nezna. Kdyby vedel, ze mince hrace B neukaze hlavu, nemel by zídny problem ukízat hríci B císlo r. Avsak A by nevedel, co udelat, kdyby hríc B chtel znít r • s mod 55! Kdyby hríaňc A vňedňel, ňze mince hríaňce B ukíaňze hlavu, mohl by A takíe podvíadňet; nejprve by si vybral ňcííslo, o kteríem by vňedňel, ňze jeho zbytek po dňelení 55 je ňctverec, napňr 2 = 4 a zvolil by pak r2 = (4/s2) mod 55 = (4/34) mod 55 = 26. V prípade, ze by hrac B chtel znít r • s mod 55, odpoví jednoduse 2 a hrac B se muze presvedcit, ze platí 22 = (26 • 34) mod 55 = (4/34) • 34 mod 55. Kdyňz ale hraíňc A musí ňríci ňcíslo r, okamňzitňe se pňrijde ne jeho podvod. Celkem tedy muzeme ríci, ze hrac A ma v kazdem kole 50%-ní sanci uspesneho podvodu. Aby se tedy hraíc B presvedcil, ze hríac A nelze, musela by se hra hríat vííce kol. Tato hra ukazuje rozhodující vlastnosti skutecneho Zero-Knowledge protokolu: • Protokol je interaktivní; oba partneri provadí nahodne volby (hríc A volí níhodne císlo r, hríc B se rozhodne, zda chce znaít r nebo r • s mod 55). • Pravdňepodobnost uíspňeňsníeho podvodu zíavisíí na poňctu odehraítyích kol. V kaňzdíem kole se pravdňepodobnost zmenňsíí na poloviňcku. 2. AUTENTIČNOST UŽIVATELE 125 Príklad tríbarevneho obarvení grafů Uvazme nasledující hru dvou hracu A a B. Hrac A chce presvedcit hrace B, ze jisty graf je obarvitelní tremi barvami, aniz by mu prozradil konkrétní obarvení. Pritom hríc A to rmíze provest v posloupnosti j E j2 stavu zadaních nasledovne: • Hrac A nahodne prebarví tyto tri barvy (napr. vsechny cervene uzly na modro, vsechny zlute uzly na ňcerveno a vňsechny modríe uzly na ňzluto). • Hrac A zasifruje barvu kazdeho uzlu pomocí pouzití sifrovacího schematu s riíznou pravdepodobností pro kaňzdyí vrchol. Potom ukíaňze hríaňci B vňsechna tato zaňsifrovaíní spolu s pňredpisem pňriňrazujícím zaňsifrovaíní s odpovídajícím vrcholem. • Hríaňc B vybere hranu grafu. • Hrac A provede desifrovíní barev dvou uzlu teto hrany odkrytím odpovídajících sifrovacích klícu. • Hríaňc B potvrdíí, ňze deňsifrovíaníí bylo provedeno spríavnňe a ňze dva koncovíe uzly hrany jsou obarveny dvema ruzními, ale legalními hranami. Je-li graf skutecne 3-barevny (a hrac A zna obarvení), pak hríc B nikdy nezjistí zadnou spatne obarvenou hranu. V prípade, ze graf není 3-barevní, pak existuje sance alespoň jEj-1 v kazdem stavu, ze hríc A se hríce B pokousí podvest. Sance, ze by hrac A mohl hríce B podvest v jEj2 krocích je exponencialne mala. Poznamenejme, ze historie nasí komunikace - v prípade, ze graf je 3-barevní - sestava se zretezení zprav odeslanyích bňehem kaňzdíeho stavu. Je moňzníe dokíazat, (za pňredpokladu, ňze je moňzníe perfektní zaňsifrovíaní), ňze pravdepodobnostní rozdelení definovane nad temito prubehy nasí mnozinou moznych interakcí je nerozezna-telne v polynomialním case od rozdelení, ktere muzete vytvorit nad temito prubehy samotními, bez ícasti hraíňce A. To znamenía, ňze hríaňc B nezíískaí jinou vňedomost z protokolu, neňz ňze graf je skuteňcnňe 3-barevnyí. Nyníí se vňenujme skuteňcníemu protokolu. 126 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Fiat-Shamirův protokol V roce 1986 predlozili izraelstí matematici Adi Shamir a Amos Fiat protokol, kterí otevrel nove rozmery v urňcovíaníí autenticity uňzivatele. Pňresnňeji, jednía se o urňceníí autenticity typu poňcíítaňc - poňcíítaňc, pňriňcemňz jedníím z pocítacu je cipoví karta uzivatele. Fiat-Shamiruv protokol je zalozen na vysledcích Shafi Goldwassera a Silvia Micaliho z Massachusettskeho technologickeho institutu a rovnez Charles Rackoffa z Univerzity Toronto. Verze, kterou nyní popíňseme, je zobecnňením odmocninovíeho pňríkladu. Bezpeňcnost protokolu spoňcívaí na tom, ňze je mimoňríadnňe obtíňzníe najít druhou odmocninu nňejakíeho ňcísla v modulo n. Pňresnňeji, bud' daíno pňrirozeníe ňcíslo n, kteríe není prvoňcíslo. Jestlize nezníame rozklad n na soucin prvocísel, je praktický nemozne najít císlo s tak, ze s2 mod n = v. Doporuceje se volit n tak velike, aby bylo ňríadovňe asi 10200; to znamenaí, ňze normaílním písmen je n dlouhíe asi 1 m. Pňred vlastním procesem urňcení autenticity uňzivatele pomocí Fiat-Shamirova protokolů se zvolí v sifrovací centríle dve prvocísla p a q a utvorí se jejich soucin n = p • q. Je rozhodující, ze centríla drzí p a q v tajnosti, zatímco n je verejne znímo. Proto musí byt n tak velike, ze faktorizace n je odsouzena k neuspechu. Duvod proto je, ze muzeme relativne jednoduse urcit druhe odmocniny z mod p a mod q. Z tňechto ňcísel lze pak snadno získat druhou odmocninu mod n. Centríala spoňcítía pro kaňzdíeho uňzivatele ňcíslo s (kteríe je tajemství uňzivatele) a ňcíslo v tak, ňze platí v = s2 mod n. Císlo v slouzí k verejne identifikaci uzivatele. Centrála by mohla zvolit pro v identifikacní ídaje uňzivatele (v biníarníí podobňe) a odtud vypoňcíítat s. Cňííslo n je veňrejnaí systíemovaí konstanta. Tíímto jsou uňz vňsechny uílohy centríaly popsíany. Zejmíena uňz centríala nehraje pňri aktuíalníích procesech urňceníí autenticity ňzíadnou uílohu. Pritom zrejme ma Fiat-Shamiruv protokol nasledující vlastnosti: • Oba pocítace musí provest jen nekolik malo vípoctu mod n: na strane uzivatele se musí pouze umocnit na druhou nahodne císlo r; v polovine vsech prípadu se musí jeste spocítat r • s. Pocítac provadející urcení autenticity uzivatele musí umocnit na druhou císlo y a v polovine vsech prípadu vyníasobit x s v. 2. AUTENTIČNOST UŽIVATELE 127 • Počítač používa použe verejne dostupne informače, žatímčo uživatel podstatnym žpusobem používa tajemství žnalosti s. • Poňčítaňč se ža jistou dobu pňresvňedňčí, ňže uňživatel žnaí opravdu tajemství s. Pravdňepodobnost, ňže by neprítel, ktery nežna tajemství s pokažde predpovedel, kterí bit b bude žvolen, je pri t-nasobnem opakovíní protokolu jen 1/2*. V prípade, že t = 20, je tato pravdepodobnost mene než 1 ku milionu. • I po provedení určení autentičity uživatele žustane tajemství s absolutne utajeno. • Bežpeňčnost protokolu je v rožhodníe míňre žaívislaí na tom, ňže vyípoňčet odmočnin mod n je tak obtíňžníe, že ani sam Mr. X není sčhopen vypočítat druhou odmočninu ž v - a to ani tehdy ne, když odposlečhne tisíče transakčí meži uňživatelem a poňčítaňčem. 128 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Popis Fiat-Shamirova protokolu Uživatel Pocítac Uživatel náhodné zvolí číslo r, ktere je nesoudelne s n a výpočte x = r2 mod n. | Počítač náhodné výbere bit b. Uživatel v prípade, ze b =1 polozí y := r • s mod n; v prípade, že b = 0 položí y := r mod n. Počítač proverí, že y je nesoudelne s n;v prípade, že b = 1 proverí, žda y2 mod n = x • v mod n; v prípade, že b = 0 proverí, žda y2 mod n = x. 3. CIPOVE KARTY 129 3 Cipove karty Co je to čipoví karta? Cipový karta je plastikova karta o velikosti obvykle sekove nebo kreditní karty, do ktere je žabudovan cip, ktery je sčhopen ukladat data a provídet vypočty tj. čipoví karta je skuteční minipočítač. Dnesní čipove karty nemají žídne baterie, takže proud musí byt privíden behem provožu ž venku. To je jedna ž uloh žlatyčh kontaktu, podle kteríčh lže odlisit čipovou kartu od jejíčh žaostalíčh príbužníčh. Jina jejičh duležití funkče je, že žajist'ují transport dat od a do karty. Cipova karta vžnikla v roče 1974, kdy frančoužskí novinar Roland Moreno nahlísil k patentovíní systém pro ukladaní dat na nežavislem přenosném predmetu. Od teto doby byly vyrobeny stovky milionu čipovyčh karet a to hlavne ve Frančii, kde se stala vžorem čipova karta CP 8 firmy Bull. Take v Nemečku se čipove karty masove použíívajíí (telefonníí karty). Proc se tak zajímáme v kryptologii o cipove karty? Protože s čipovou kartou mame poprve k dispožiči míedium, kteríe žajist'uje bežpečnost na žíaklade kryptologie a to pro každíeho a ne použe pro experty. To spočíívía v tom, že čipovía karta mía dve vlastnosti, kteríe doposud byly od sebe oddeleny: • Cipovíe karty jsou ideíalníí pro kryptologii: mohou provaídet kryptologičkíe algoritmy a uklíadat bežpečnyím žpusobem tajne klíče. • Cipovíe karty jsou ideíalníí pro lidi: dajíí se velmi jednoduse použíívat. Uvidííme, že jedinía uíloha uživatele je, aby si žapamatoval svoje tajne číslo, aby se mohl vuči čipove karte identifikovat. Shrneme-li si pňredčhožíí argumenty, míame ňže ňčipovíe karty se neobsluhujíí obtííňžnňeji neňž obvyklíe kreditníí karty; poskytujíí vňsak bežpeňčnostníí sluňžby na nejvyňsňsíí uírovni, totiňž takovíe, kteríe jsou žaloňženy na kryptolo-gičkyíčh mečhanismečh. 3.1 Cipove karty na kontrolu vstupu Zaíkladníí idea je vloňžit ňčipovou kartu meži uňživatele a poňčíítaňč, aby se pročes urňčeníí autentičity uňživatele stal bežpeňčnňejňsíí. Tento pročes je províadňen níasledovnňe: 130 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY • Uzivatel se identifikuje vuci sve cipove karte pomocí tajneho císla, ktere se obvykle nazíva PIN (osobní identifikacní císlo). • Karta se identifikuje vuci pocítaci pomocí dynamickeho protokolu pro urcení autenticity. V prípade, ze Mr. X si chce zajistit neopravnení prístup k systemu, musí nejen zjistit u prívoplatneho uňzivatele tajníe ňcíslo, nyíbrňz i získat ňcipovou kartu. Uvaňzme nyní oba kroky k urňcení autenticity samostatnňe. • Kdyz uzivatel zadí svuj PIN pres klavesnici terminalu, prenese se tajne císlo prímo k cipove karte a porovnaí se s uvnitňr uloňzenou referenňcníí hodnotou. Pokud obňe tyto hodnoty nesouhlasíí, nedovolíí karta ňzíadnou jinou sluňzbu. Protoňze se porovníavía pouze tajníe ňcííslo uňzivatele uvnitňr jeho karty, neníí tňreba zadneho centralního PIN-souboru. Muzeme si snadno predstavit systemy, u kterích muze uzivatel menit svuj PIN, pokud chce, a u kterích muze mít PIN promennou delku. • Proces urcení autenticity karty vuci pocítaci se provadí pomocí Challenge-and-Response procedury, jak je popsíano v odstavci 2. Proto potňrebují karta a poňcítaňc spoleňcnyí algoritmus f a spoleňcnyí tajnyí klíňc K. Poňcítaňc vyzve kartu tak, ňze jí zadaí níahodníe ňcíslo RAND. Karta aplikuje algoritmus f za klíňce K na níahodníe ňcíslo RAND a zaňsle vyísledek AP jako odpovňed' poňcítaňci. Tento pak v mezidobí rovnňeňz spocítal AP a muze se tak presvedcit, zda oba vísledky splívají. Prednosti teto procedury lezí na dlani: Císla RAND se mení prípad od prípadu; z tohoto duvodu nemuze Mr. X predpovedet, ktere bude prístí císlo RAND. Pritom tajna data (jako napr. klícce) zustanou utajene. Dnesní cipove karty nají standardizovane rozmery 53, 98 x 85,595 x 0, 76 mm dle normy ISO 7810. Cipove karty nesou ve svem tele vlepení nebo zalaminovaní plochí mikroelektronickí pamet'ový modúl, jehoz poloha, víznam a pocet kontaktu je normovan. Vseobecne i u nís rozsírenou takovou kartou je telefonní karta SPT Telecom, s.p. pro placení ve veňrejnyích telefonních automatech. Modul totiňz nesmí byít vňetňsí neňz 20 mm2, jinak by se totiňz ňcip pro ohnutí karty mohl zlomit. Proto jsou na ňcipovíych kartíach prakticky vňsude implementovaíny symetrickíe algoritmy, tj. algoritmy, u kteríych obňe strany vlastní tentyíňz tajnyí klíňc. 3. CIPOVE KARTY 131 Samozrejme bychom si prali implementaci Zero-Knowledge protokolu nebo asymetrickích algoritmu, coz ale doposud není zcela moňzníe. Karty osazene pamet'ovím cipem jsou bud' kontaktní nebo bezkontaktní. Velikost a typ jejich pameti pňredurňcujíí ňcipovíe kary pro urňcitíe typy aplikacíí. Z hlediska pouňzitíí lze rozliňsit tyto zíakladníí skupiny karet: - pamet'ove karty s volným přístupem (Free Access Cards) obvykle s 2-4 kbity pameti typu EEPROM. - předplatní karty (Prepaid Cards/Token Memorz Cards) obvykle v podobe PROM nebo kombinace ROM/PROM 104-160-208 bitu, pri aplikaci abacus citacu az 20 kbitu jednotek, - víceúčelove pamet'ove karty (Multi-Service Cards, Electronic Purse) s pametmi ROM/EPROM do 1 kbit spolu se zabezpecovacíí logikou jakou je transportníí koíd, kteríy slouzíí k otevreníí karty v procesu jejího vydavaní,PIN na karte, ktery je vydavatelem karty pridelen adresne uzivateli karty, ktery slouzí pro ovňeňrení konzistence karty a jejího pňredkladatele ap. Aplikace pro identifikaci uZivatele Dukazy zalozene na Zero-Knowledge protokolu tvorí novy revolucní zpusob pro realizaci hesel. Zakladní myslenka je, ze kazdí uzivatel ulozí tvrzení vety ve sve verejne prístupne knihovne a pritom dukaz tvrzení zní pouze on. Po loginu uzivatel provede Zero-Knowledge dukaz sprívnosti vety. Je-li dukaz uspokojiví, je poskytnuto povolení praíce na poňcítaňci. Toto garantuje, ňze dokonce protivník, kteríy odposlechne Zero-Knowledge dukaz, se nemuze naucit tolik, aby získal neautorizovaní prístup k pocítaci. To je nova vlastnost, ktere nemuze bít dosazeno tradicním heslovým mechanismem. 3.2 Nakupy s čipovou kartou 132 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Idea elektronických nakupu (electronic cash) je nasledující: Zíkazník A jde do obchodního domu, vybere si zbozí a zaplatí pomocí čipove karty. Situace, kterí vznikne, je problem určení autenticity mezi tremi ruzními skupinami: zakazník A, obchodník O a banka B (za predpokladu identity banky obchodníka a zakazníka). Musíme rozlissovat mezi dvema ruzními sluzbami - určení autenticity komunikujících partneru a určení autenticity zpravy, coz je nyní neco jako elektronicky sek. Určení autenticity zakazníka A vzhledem k terminalu obchodníka O se provede pomocí obvykleho protokolu pro určení autenticity uzivatele. Obvykle se pozaduje oboustranne určení autenticity; take terminal obchodníka se musí vykazat vuči čipove karte jako autentickí. Cipoví karta mí pak moznost rozlisit mani-pulovane terminaly od opravdovích. Takovyto protokol opet probíha podle metody Challenge-and-Response s tím rozdílem, ze nyní posílí karta níhodne číslo, na které musí dít počítač obchodníka sprívnou odpoved'. Jiní vec je určení autenticity elektronickeho seku. Tento dokument se podepíse zpusobem MAC a pak je odeslan od čipove karty k terminalu obchodníka. Je zrejme, ze obchodník O nemuze zmenit sek; z druhe strany je vhodne, aby mohl overit platnost seku. Ale problem pri pouzití symetrickích algoritmu spočíva v tom, ze kazdí, kdo dovede overit MAC, je schopen ho take zfalsovat (zmení jednoduse dokument a určí s pomocí tajneho klíče odpovídající noví MAC). Zde se nabízí jako nejjednodussí resení asymetricka podpisovací schemata. Kdyz je z praktickích duvodu nutne pouzít symetricke algoritmy, lze postupovat nísledovne: Zakazník A a jeho banka B mají společní tajní klíč K*, kterí obchodník O nezní. Na elektronickí sek D aplikujeme obvyklou MAC-proceduru. Potom, co jsou zakazník a karta akceptovani, lze uskutečnit nakup. Za tímto učelem musí potvrdit učetní data D (obnos, druh zbozí, datum, jmeno obchodního domu) a predat je takovím zpusobem obchodníkovi O, ze - obchodník ma jistotu, ze obdrzí peníze od banky, a - na obchodních datech obchodník O nemuze provest dodatečne ípravy (podvodny obchodník by mohl po dodaní zbozí zvísit dohodnutou častku a tuto zvísenou čístku pozadovat od banky). 3. CIPOVE KARTY 133 Aby bylo mozno zabrínit tomuto podvodu, ma čipova karta ulození tajní klíč K*. To je klíč, kterí byl dohodnut mezi zíkazníkem A a jeho bankou B - a tento klíč je zcela neznam kazdemu potencialmímu podvodníkovi. Cipova karta neposílí pouze učetní data D na terminal obchodníka. níbrz take s pomocí klíčče K * podepsana data. Takto konstruovaní MAC se nazyví certifikýt a označuje se CER. Takovyto CER zaručuje, ze obchodník O nemuze zfalsovat získaní sek. Pokud se chce presvedčit o spolehlivosti seku, muze poverit určením pravosti banku. Zpusob certifikovíní není prirozene idealní a to ze dvou duvodu. Nejdrív musí jak zakazník A, tak obchodník O duverovat bance B. Díle nemuze obchodník vymenit sek okamzite. Dohromady vsak nabízí tento system podstatne vetsí bezpečnost pro vsechny zučastnene nez jine systemy zalozene na magnetickych či jinych kartach. 134 KAPITOLA 6. AUTENTIČNOST A DIGIT ALM PODPISY Kapitola 7 Asymetřickě šifrovací systěmy neboli systěmy s veřejným klíCem Doposud jsme pracovali se sifrovacími systemy nasledujících vlastností: FI 1. Kdo muze zasifrovat zpravu, muze ji i desifrovat. 2. Kazda dvojice partneru musí mít svuj spolecny tajny klíc. Druhaí vlastnost je nepochybnňe nevyíhodnaí. Pokud by poňcítaňcovaí sít' mňela n navzíajem propojenyích ucastníku, museli by pouzívat ra'(>2+1) ruzních sifrovacích klícu, ktere by si ucastníci museli mezi sebou vymenit. Zvolíme-li napr. n — 500, bylo by nutno mít v systemu cca 125000 klícu. Vzhledem k nutne obnove za novíe klíňce bychom se dostali do prakticky nerealizovatelníe situace. O sifrovacím systemu s první vlastností pak obvykle mluvíme jako o symetřickem sifrovacím systemu. První vlastnost muzeme povazovat za víhodnou, protoze lze k sifrovaní a desifrovaní pouzít stejní stroj. Asymetrickíe algoritmy se vyznaňcujíí tíím, ňze jsou od prvníí vlastnosti co nejvííce moňznía vzdíaleny. Ukaíňzeme, ňze takovíeto systíemy nemajíí druhou vlastnost a tedy príace s klííňci je jednoduchía. 135 136KAPITOLA 7. ASYMETRICKE CIFROVACÉSYSTEMYNEBOLI SYSTEMYS VEREJNYMKLICEM Budeme hlavne používat pojem asymětrickěho algoritmů; obcas budeme mluvit o půblic-key algoritmů. Takoveto postupy byly vyvinuty v roce 1976 Whitfieldem Diffiěm a Martinem Hěllmanem v jejich prýci New Directions in Crýptographý, ža kterou tito americtí matematici obdrželi v temže roce výrocní cenu M.I.T. 1 Asymětričkě Šifrovací systěmy Budeme predpokladat, že každí ýCastník T mí dvojici klícu, a to • věrějný klíč E = ET k žaSifrovýní; • soukromý (tajný) klíč D = DT k deSifrovýní; ktere se vyžnacují nasledující vlastností: Ze znalosti klice ET nelze zjistit soukromý klíc DT. Kryptosystem s touto vlastností se nažyva asymětrický kryptosystěm. Pokud navíc pňredpoklíadíame, ňže pro kaňždou žpríavu M platí D(E(M)) = M, mluvíme o asymětrickěm sifrovacím systěmů. Asymetricky kryptosystem se nažýva asymětričkě pod-pisovací schěma, pokud pro každou žpravu M lže pomocí verejneho klícce E proverit, žda se k sobe M a D(M) hodí. Vňsechny veňrejníe klíňce jsou uloňženy ve veňrejnňe dostupníem souboru (podobníemu telefonnímu sežnamu), žatímco soukrome klícce jsou tajne tj. žname použe jejich vlastníkum. IŠifrovaní a desifrovaní pomocí asymetrickeho sifrovacího systemu probíha ve 3 krocích: 1. Chce-li A žaslat B žpravu M, pak • najde verejny klíc EB pro B, 1. ASYMETRICKE SIFROVACI SYSTEMY 137 • žasifruje žpravu M pomocí klícce EB a • odesle Eb(M) k B. 2. B muže kryptogram EB(M) desifrovat, protože žna jako jediní tajní klícc DB : Db (Eb(M )) = M. 3. Zadny jiní ícastník nemuže (EB(M) rožluňtit, protože podle predpokladu že žnalosti (EB a (EB(M) nelže žískat žnalost o DB. Vyíhody asymetrickíeho ňsifrovacího systíemu jsou níasledující: • Není potreba výměna klíčů. Tímto je vyreňen hlavní problem symetrickeho algoritmu. Zejmena je tedy s pomocí asymetrickeho algoritmu možna bezprostrední komunikace. Mužeme tedy navžajem komunikovat, aniňž bychom se sloňžitňe dohadovali o klíňci. Asymetrickíe algoritmy jsou ideaílní pro otevrenou komunikaci. • Není potřeba mnoho klíčů. U symetrickeho algoritmu se žvysuje pocet klíccu kvadraticky s poctem uživatelu, u asymetrickeho algoritmu je pocet klíccu roven dvojnasobku poctu uživatelu. • Lze přijmout bez problémů nove uživatele. Je-li prijat noví ícastník do symetrickeho systemu, musí si s ním vňsichni staňrí uíňcastníci vymňenit klíňc. U asymetrickíeho systíemu není naproti tomu nutno, aby staňrí uíňcastníci aktualižovali svoje data. • Mnoho asymetrických sýstemů poskytuje skvele moZnosti pro elektronický podpis. 138KAPITOLA 7. ASYMETRICKE SIFROVACI. SYSTEMY NEBOLI SYSTEMY S VEREJNÝMKLICEM Nevíyhody asymetrickíeho sifrovacíího systíemu jsou pak: • Doposud není znám žídný asymetrický kryptosystém, který by byl zároveň rychlý a bezpeční. Postup, kteríym se budeme hlavne zabyívat, je tzv. RSA-algoritmus. V posledníí dobe se takíe pracuje s algoritmy, ktere spocívají na diskrétních logaritmech. • Asymetrické algoritmy potrebuje jisty dohled nad klíči. Muze se totiz stít, ze Mr. X opatrí svoji schrínku s falesnym jmenem, ke kterému se vsak hodí jeho klíc. Pak muze zachytit vsechny zpravy, ktere byly adresovany puvodnímu adresatovi. 2 Elektronicky podpis Dalsí dulezitou myslenkou Diffieho a Hellmana je elektronicky neboli digitalnápodpis. Nejdríve si ujasneme vlastnosti obvyklíeho podpisu rukou. Pňredpoklíadejme, ňze osoba A se podepsala rukou na nňejakyí dokument D. Pak mía tento podpis v ideíalním pňrípadu naísledující vlastnosti: • Pouze osoba A muze vytvorit tento podpis. • Kazdy jiní ícastník muze proverit, ze se opravdu jední o podpis osoby A. Diskutujme nejprve digitalní podpis s pouzitím symetrickeho sifrovacího systemu (napr. DES). Popíseme dva moňzníe pňríístupy. Diffie-Lampořtovo schema Odesíílat A, kteryí si pňreje podepsat n-bitovou biníarníí zpríavu M — M1... Mn, si predem vybere 2n klícu sifrovacího systemu (M, K, C). Oznacme je po rade jako 2. ELEKTRONICKY PODPIS 139 a1, . . . , an; b1, . . . , bn. Tyto klíňce jsou tajníe. Je-li sifrovací algoritmus e, osoba A vygeneruje 4n parametru, {(XQ, Yi, U, Vi) : 1 < i < n}, kde Xj, Yi lezí v definicním oboru e a Ui = e(Xj, aj) a V = e(Yj, bj) (1 < i < n). (2.1) Tyto parametry jsou dopňredu zaslíany pňríjemci B. Zíarovenň jsou odeslaíny nezaívislíemu provňeňrovateli (veňrejnyí registr). Nyní pňredpoklaídejme, ňze osoba A chce odeslat podepsanou n-bitovou zpríavu M = M1 . . . Mn. Bude postupovat podle níasledující procedury. Jejím podpisem bude ňretňezec S = S1 . . . Sn, kde pro vsechna i, 1 < i < n platí { S = ■ ai pokud Mi = 0, Si = ^ bi pokud Mi = 1. Ovňeňrovací protokol osoby B probíhaí naísledovnňe: pro vňsechna i (1 < i < n) pouňzije osoba B bit Mi a klíňc Si, aby ovňeňrila, ňze pokud Mi = 0 pak e(Xi, Si) = Ui, pokud Mi = 1 pak e(Yi, Si) = Vi. ! Osoba B pak akceptuje podepsanou zpríavu pouze za pňredpokladu, ňze ovňeňrovací protokol je splnňen pro vňsechna i. Aňckoliv tento systíem je jednoduchyí pro pouňzití a snadno pochopitelníy, mía minimíalnňe dvňe nevyíhody. První je nutna predbezní komunikace s parametry. Dulezitejsí je vsak zvísení rozmeru zpravy - napr. v prípade DESu, kdy klícce mají delku 64 bitu, by se zprava zvetsila 64-krat. 140KAPITOLA 7. ASYMETRICKÉ SÍIFROVACI SYSTÉMY NEBOLI SYSTÉMY S VĚRĚJNYM KLICĚM Rabinovo pravdepodobnostní podpisovací schema Rabin (1978) navrhl jiní prístup. Bud' e sifrovací funkce nejakeho sifrovacího systemu (M, K, C). Bud' dále (Ki : 1 < i < 2r) posloupnost níhodne vybranych klíCů, ktere odesílatel A uchová v tajnosti. Príjemce B obdrží seznam 2r parametrů (Xi, (1 < i < 2r), kde e(Xi,Ki) = Ui (1 < i < 2r), (2.2) a tyto parametry jsou uloženy na nejakem verejne prístupnem míste. Predpoklídejme nyní, že osoba A si preje podepsat zprávu M. Jejím podpisem pak bude retezec S = S1S2... iS2r, kde pro vsechna i, (1 < i < 2r) platí Si = e(M,Ki). Osoba B pak pokraCuje nísledovne: nejprve vybere náhodne Ci jinak r klíCů, ktere si preje uverejnit. Necht' to jsou klíce Pak po obdržení techto klícců osoba B proverí, že platí e(M,Kij) = , e(Xij,K.) = Ui. (1 < j < r). Osoba B akceptuje podpis jako podpis osoby A, pokud vsechny tyto rovnosti platí. Je zrejme, že bezpeCnost príjemce závisí na jeho důvere, že jedine osoba vlastnící tajne klíCe mu mohla poslat tuto podepsanou zprávu. Predpokládejme, že si osoba A chce podrobit kritice zprívu, o ktere se tvrdí, že ji podepsala a kterou B zkontroloval. Protokol A je jasní; musí vytvont pred kontrolorem svích 2r tajních klícců S = K1,K2 ...K2r, a verejne proverit rovnosti 2. ELEKTRONICKY" PODPIS 141 e(M, Ki) = Si e(Xi, Ki) = U (1 < i < 2r). Protokol Rabinova systemu se rídí pravidlem, že kritika je opravnena, použe v prípade, že vsečhna Ui a Si s vyjímkou nejmene r Si souhlasí. Uvažme, čo muže nastat ve trečh možníčh prípadečh: (a) Platí mene než r kontrol Si. V tomto prípade nemela osoba B akčeptovat (M, S) jako sprívne podepsanou žpríavu. (b) Platí príve r kontrol Si. V tomto prípade, když si osoba B vybrala r klíču k žverejnení, musela si vybrat praívňe tyto klíňče. Pravdňepodobnost vyíbňeru takovíeto mnoňžiny je urňčena pňredpisem 1 pr = a pr ~ 10-i0 pro r = 18. (č) Platí r + 1 kontrol Si či víče. V tomto prípade je príjemče v pravu. Vrat'me se nyní k asymetričkemu sifrovaní. Pak mužeme digitílní podpis realižovat nasledujíčím žpusobem: 1. Chče-li osoba A podepsat žpríavu M, tak • zašifruje M pomočí sveho tajneho soukromeho klíčče DA, • uverejní podepsanou žpravu DA(M). 2. Každí jiní učastník muže tento podpis DA(M) žkontrolovat tím, že pomočí verejneho klíčče EA proverí, žda se k sobe hodí M a DA(M). 142KAPITOLA 7. ASYMETRICKE ZIFROVACISYSTEMYNEBOLI SYSTEMYS VEREJNYMKLICEM Napňr. u RSA algoritmu se provňeňrí zda platí Ea(Da(M)) = M. V takovíem pňrípadňe je nňekdy i jinía moňznost kontroly digitíalního podpisu: podepsanía osoba A zveňrejní jen Da(M), ale ne zprívu M. Pokud osoba B obdrží pri aplikaci Ea smysluplnou žpravu, považuje to ža dukaž spravnosti digitélného podpisu. Vsimneme si, ze pri vytvorení a kontrole sprívnosti digitalního podpisu byly pouňzity pouze klíňce patňrící odesílateli A. Kazdí ucastník muze proverit digitalní podpis. Rozhodující rozdíl mezi digitalním a obycejním podpisem je, ze digitalní podpis Da(M) je neoddelitelne spjat se zprívou M. Naproti tomu je obycejní podpis pripojen na konec zpravy. Dusledkem je pak, ze pri zmene Da(M) na (Da(M)' se zmení i E(Da(M)) a tedy zpríva M a E(Da(M)') spolu nesouhlasí. Pňredpoklíadejme tedy, ňze maíme ňsifrovací systíem s veňrejnyím klíňcem s vlastností, ňze pro kaňzdíeho uňzivatele I ňsifrovací a deňsifrovací funkce komutují tj. ňze e/ (d/ (M)) = M. (2.3) Uvaňzme níasledující algoritmus. 1. Odesílatel A vypoňcte podpis S zpraívy M uňzitím svíeho vlastního soukromíeho klíňce a obdrňzí S = Úa(M ). 2. Uňzitím veňrejníeho klíňce pňríjemce B vypoňcte A kryptogram C = es (S). 3. Príjemce B vypocte podpis S z kryptogramu C uzitím sveho vlastního soukromeho klícce a obdrzí S = ds (C). 3. IDEA FUNKCE S VLASTNOSTI PADACICH DVERI 143 4. Uňžitím veňrejníeho klíňče odesílatele A vypoňčte B žpríavu M = eA(S). Nyní je pňríjemče B ve velmi vyíhodníe požiči. Vlastní dvojiči (M, S). V pňrípadňe sporu, potňrebuje-li pňresvňedňčit soudče, že odesílatel A opravdu odeslal žpravu, požada A o vytvorení jejího soukromeho klíče KA. Odesílatel A musí opravdu vytvorit svuj soukromí klíč KA, protože ho lže otestovat na identite eA(dA(M)) = M. Soudči pak použe stačí proverit, že S = dA(M). Ze stejneho duvodu musí príjemče B žustat počtiví. Predpokladejme, že žmenil žpravu M na žpravu M'. Pak by ale musel byt sčhopen žmenit podpis S na S', aby platilo, že S' = dA(M'). Ale to muže provest použe A. 3 Idea funkce s vlastností padacích dverí Zopakujme si vlastnosti systíemu s veňrejnyím klíňčem ž odstavče 1. Vňsičhni uňživatelíe systíemu, kteňrí si pňrejí navžíajem komunikovat, pouňžívají tentyíňž ňsifrovačí algoritmus e a tentyž desifrovačí algoritmus d. Každy uživatel Ui mí dvojiči klíču (Ki,Li) tak, že pro každou možnou žpríavu M platíí identita d(e(M,Ki),Li) = M, (3.1) kde Ki je žverejnen a uložen ve verejnem souboru; Li žustane utajem a mluvíme o nem jako o soukromém klíci; Ki se nažíví verejní klíc. Pokud čhče jiní uživatel odeslat uživateli Ui žpravu M, postupuje níasledovnňe. (a) Uživatel najde verejny klíčč Ki uživatel Ui ve verejnem souboru. (b) Uživatel odesle kryptogram C = e(M, Ki) k uživateli Ui verejním kanílem. 144KAPITOLA 7. ASYMETRICKE ^FROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNÝMKLICEM Bezpečnost systemu zavisí na funkcích e a d, které mají nasledující vlastnosti. Vlastnost 1 Zname-li M a K, melo by bít snadne vypočíst C = e(M, K). Vlastnost 2 Je-li dín pouze kryptogram C, není snadne vípočetne nají M. Vlastnost 3 Je-li zním kryptogram C a tajní klíčč Lj, je snadne určit zpravu M. Jinak rečeno, vlastnosti 1 a 2 tvrdí, ze sifrovací funkce e pouzívající verejní klíčč by mela byt jednosmerna, ale vlastnost 3 pozaduje navíc existenci večejneho klíce. Takovíto jednosmerní funkce se nazíva funkce s vlastností padacích dverí. Aby byl takovyto systém prakticky pouzitelní, je nutne splnení nasledující podmínky. Vlastnost 4 Melo by byt snadne generovat nahodne dvojice verejní/soukromí klíčč (Ki,Li). Jinak rečeno, melo by bít dostatečne mnoho dvojic (K, L) tak, ze je pro Mr. X nemozne sestrojit tabulku vhodních funkčních hodnot. 4 RSA-algoritmus Pripomenme dve zísadní tvrzení z teorie čísel. Veta 4.1 (Euler) Necht (c, m) = 1. Pak platí c^(m) = 1 mod m. Veta 4.2 (Fermat) Necht p je prvočíslo (c,p) = 1. Pak platí ď~l = 1 mod p. Postup pri sifrovaní RSA-algoritmu 4. RSA-ALGORITMUS 145 1. Najdeme dve velkí prvocísla p a q a položme n = p • q. 2. Najdeme velke a nahodne prirožene císlo d tak, že je nesoudelne s císlem (p — 1) • (q — 1). 3. Vypocteme jedine prirožene císlo e ležící v oboru hodnot 1 < e < (p — 1) • (q — 1) že vžtahu e • d =1 mod (p — 1) • (q — 1). 4. Zveňrejnňeme veňrejnyí klíňc, kteríy se sklíadía ž dvojice pňriroženíych ňcísel (e, n). 5. Reprežentujme žpravu M jako prirožene císlo ž intervalu {1,... ,n}; roždelme žpravu M do bloku, je-li pňrííliňs velkía. 6. Zakíodujme M do kryptogramu C dle pňredpisu C = Me mod n. 7. Deňsifrujme pomocíí soukromíeho klííňce d a pňredpisu D = Cd mod n. RSA-podpisovací schéma Ožnacme verejní klíc uživatele I dvojici (e/, n/) a soukromy klíc d/. V praxi je n/ obvykle voleno jako císlo, ktere je soucin dvou nahodne žvoleních asi 100-místních prvocísel, n = p/ • q/. Prvocísla p/ a q/ jsou osobním tajemstvím uživatele I. Díle si uživatel I žvolí tžv. sifrovací exponent e/ tak, aby byl nesoudelny s cp(n/). Zejmena tedy platí, že (e/, (p/ — 1) • (q/ — 1)) = 1. Uživatel I najde císlo d/ tak, že splňuje e/• d/ = 1 mod ^(n/). Toto ňcííslo je vyíňse uvedenyími hodnotami jednožnaňcnňe urňceno. Pak ňsifrovacíí pňredpis pro odesíílatele A, kteryí chce žaslat pňrííjemci B podepsanou žpraívu M níasledovnňe: 146KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM 1. Ocíslujme po rade písmena latinske abecedy A=01 B=02, ..., Z=26. V praxi se pouzíví desítkove vyjadrení v ASCII kodu. Text, kterí chceme utajit, prevedeme do císelne formy a rozdelíme na bloky stejne delky. Císelne vyjadrení bloku B oznacíme M. Pritom pozadujeme, aby 1 < M < nA. 2. Odesílatel A vypocte podpis S jako S = MdA (mod nA). 3. Pak A vypocte kryptogram C = SeB (mod nB). 4. Po obdrzení kryptogramu C vypocte B podpis S = CdB (mod nB). 5. Dale B vypocte zpravu M = SeA (mod m). Lemma 4.3 Pro všechna vhodne zvolená M platí S = MdA (mod ta) M = SeA(mod ta). Důkaz. Můžeme bez újmy na obecnosti předpokládat, že (M, nA) > 1. Dle předpokladu RSA-algoritmu eA • dA = (qA — 1) • c pro vhodne číslo c. Z Fermatovy vety máme pAA'dA"1 = (pAA-1)c = lmod qA. Po vynásobení číslem pa máme pAAdA = Pa mod pa • qA. 4. RSA-ALGORITMUS 147 Je-li (M, nA) > 1, je M delitelne bud' pA nebo qA. Necht' napr. M — a • pA, 1 < a < qA. Pak (MdA)eA — MeA'dA — aeA'dA • paea'da — aeA'dA • pa mod pa • ?a. Protoze (a,qA) — 1, míme dle Eulerovy vety aeA 'dA — a mod qA. Po vynasobení císlem pa míme pA • aeA'dA — pA • a — M mod pA • qA. Pro M — b • qA, 1 < b < pA se dukaz provede analogicky. Poznamenejme, ze odhledneme-li od nutneho pozadavku 2.3, musí bít nutne podpis S vypocteny odesílatelem A v definicním oboru sifrovací procedury eB. Tato poslední podmínka nemusí platit, kdyz pouzití system je RSA; podpis S muze bít vetsí prirozene císlo, nez je verejny klíc nB. Muzeme vsak zajistit platnost teto podmínky tím, ze prizpusobíme velikost bloku nasí zpravy tak, ze vysledek padne do pozadovaneho definicního oboru. Příklad. Zvolme (eA,nA) — (5, 35), (eB,nB) — (3,15), M — 3. Pak dA — 5, dB — 3. Míme pak S — 35 — 33 (mod35), C — 333 — 12 (mod 15). B vypocte podpis S' — 123 — 3 (mod 15) a z neho zpravu M' — 35 — 33 (mod35). Protoze 3 — 33, není pro uzivatele B splnena podmínka 2.3 a M se nam zobrazí na zcela jinou zprívu M'. Pokud by vsak bylo nA < nB (zvolme napr. (eB, nB) — (5, 35), (eA, nA) — (3,15), M — 3, dB — 5, dA — 3), mame S — 33 — 12 (mod 15), C — 125 — 17 (mod35), S' — 175 — 12 (mod35), M' — 123 — 3 (mod 15). Rivest, Shamir a Adleman (1978) navrhli mnohem elegantnejsí reňení: Je zvolena mezní hodnota h pro system s verejním klícem (rekneme h ~ 10199). Kazdy uzivatel pak mí dve dvojice verejnych klíccu, jednu pro zasifrovaní a druhou pro overení podpisu. Oznacme je po rade (e/, n/) a (f/,m/), kde I probíhí mnozinu uzivatelu. Soukromí klíc odpovídající dvojici pro overení podpisu budeme 148KAPITOLA 7. ASYMETRICKÉ CIFROVACII SYSTEMY NEBOLI SYSTEMY S VEREJNÝM KLICEM znacit gI. Zvolení predpis se rídí tím, ze sifrovací modul n a podpisovací modul mI by mely pro kazdeho uzivatele I splnovat mI < h < nI. Pocíítíame pak níasledovne: 1. Odesíílatel A vypocte podpis S jako S = MgA (mod mA). 2. Pak A vypocte kryptogram C = SeB (mod nB). 3. Po obdrzení kryptogramu C vypocte B podpis S = CdB (mod ns). 4. Díale B vypocte zpríavu M = SfA (mod mA). Snadno se overíí, ze tento systíem opravdu pracuje a aby bylo zpríavy mozno podepsat a overit vsemi uzivateli systíemu, vse co potrebujeme, aby platilo 0 < max M < min {mI : I G U}, (4.1) kde U je mnozina uzivatelu systemu. 5. DISKUSE RSA-ALGORITMU 149 5 Diskuse RSA-algoritmů V uvedene verzi RSA-algoritmu vystupují verejne parametry (e/, n/) a tajne parametry d/,pi a q/ spolu s ňcíselnyím vyjíadňrením (ňcíasti) zpríavy M. Rozeberme si poňzadavky na jejich vyíbňer. • Pňri pouňzití RSA-algoritmu kaňzdyí uíňcastník systíemu pouňzívía dvňe (ňctyňri) 100-místnía prvoňcísla. Kolik jich míme k dispozici? Pouzitím prvocíselne funkce n, ktera udava pocet prvocísel mensích nez dopredu zvoleníe ňcíslo n a odhaduje se pomocí odhadu .n ln n získame priblizní pocet prvocísel 5 lezících v intervalu [1099,10100] 5 = n(10100) - n(1099)^ 3.9 • 1097. Pravdňepodobnost, ňze by si dva uíňcastníci systíemu vybrali tutíeňz dvojici 100-místníych prvoňcísel, je pak rídove 10-391. • Dalňsím problíemem je nalezení 100-místníeho naíhodníeho prvoňcísla. Nejprve pomocí generíatoru pseu-donahodních císel sestrojíme 100-místne níhodne císlo m. V prípade, ze m bude sude, nahradíme ho císlem m +1. Pak nove císlo m otestujeme nekterím z testu na prvocíselnost. Pokud m nebude prvocíslo, vyzkousíme císlo m + 2 a postup opakujeme az do te doby, nez nenajdeme první prvocíslo vetsí nez m. Lze overit, ze pocet pokusu nutnych k nalezení prvocísla v okolí císla m je logaritmickou funkcí ňcísla m. Jako dalňsí uvedeme pňríklad jednoduchíeho pravdňepodobnostního algoritmu na zjiňstňení prvoňcíselnosti ňcísla m. 150KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM Algoritmus na zjištění prvočíselnosti čísla m na k pokusů BEGIN READ (m, k); FOR i := 1 TO k DO BEGIN a :=RANDOM(1,m - 1); b := (a**(m - 1) MOD m); IF b <> 1 THEN BEGIN WRITE (m, je složené číslo); GO TO KONEC END END; WRITE (m, je složené prvočíslo); KONEC: END. Funkce RANDOM vybírá pseudonáhodná celá čísla z určeného intervalu. Algoritmus na vstupu načte číslo m a číslo k a na výstupu obdržíme bud' pravdivou odpoved', Ze m je slozene číslo nebo odpoved', ze se asi jedna o prvočíslo. V prípade, že je k dostatečne velke, je pravdepodobnost, že se nejedna o prvočíslo, v prípade kladne odpovedi velmi mala. V praxi mame nekolik nevýhod RSA-systemu: (a) Odesílatel A muže ýmyslne ztratit svuj soukromý klíč tak, že, ačkoliv je uložen v bance soukromých kléču pred startem systemu, jí odeslane žpravy se stanou neoveritelními. (b) Odesílatel A muže umyslne vydat svuj soukromý klíč dA a dovolit tak, aby vsečhny jí adresovane žpravy byly resitelne. 6. SYSTÉMY ZALOZĚNĚ NA RUKSAKOVĚ METODĚ 151 (c) Doba venovaná sifrování, podepsání, desifrovíní a proverení může byt neprimerená. Totiž teprve nedávno byla nalezená rozumní implementace RSA-algoritmu a v souCasne dobe jsou na trhu RSA-Cipy, ktere ale mají rychlost asi 10 Kbit/s. K dispozici jsou i speciální RSA-karty, ktere zvlídnou 100 Kbit/s. Uvížíme-li vsak, že budoucí ISDN sítoví standard elektronicke posty pracuje s 64Kbit/s a že se v půmyslu (lokální síte apod.) pracuje s rychlostmi kolem 10 Mbit/s, vidíme, že nebude jeste dlouho možno použít RSA-algoritmus za ůCelem sifrování zpráv, níbrž hlavne pro správu klíCů a elektronicke podpisovíní. Pri tvorbe elektronickeho podpisu se totiž nejdríve text zkomprimuje a podpisovací algoritmus se aplikuje na komprimaít; není tedy nutno podpisovat velkíe soubory. 6 Systemy zaloZene na ruksakove metode Jeden z prvních (1978) sytemů s verejním klíCem byl vyvinut Merklem a Hellmanem a byl založen na tzv. ruksakovem problemu. Presneji, jední se o vípoCetní problem znímí jako PODMNOňINOVY SOUCET definovaní následovne: Vstup: Kladní reálná Císla a1, a2,..., an, t Otázka: Existuje podmnožina J C {1,..., n} tak, že Ei€ j ai = t? Tento problem je jedním z klasickích NP-ůplních problemů. Zasifrovýní zprývy 1. Odesílaní zpráva je odeslána v binárním tvaru m. 2. Verejne klícce tvorí soubor n-tic (a1,..., an) kladních prirozeních Císel. 152KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM 3. Binární zpráva m je rozdělena do bloků a n znacích tak, že m = mi... mt, kde každé rrij je n-tice nul kde mj = (Mi,...,Mra). 5. Přeneseme posloupnost (kryptogram) c1,... ,ct. Dešifrování zprávy Zdanlive se příjemce a každý, kdo zachytí kryptogram, zabývají tínže probiemem; aby bylo možno rozluStit zprávu z posloupnosti c1,... , ct a verejneho klícce (a1,... , an), musí vyresit t rUzných NP-ýplych problemU, každy pro jedno cj. Merkle-Hellmanuv system je zalozen na skutecnosti, ze ne vsechny prípady NP-uplních problemu jsou obtízne resitelne. Řekneme, ze posloupnost a1,... ,an je superrostoucí, jestlize pro vsechna k, 1 < k < n, a jednicek. 4. Pro kazde j, 1 < j < t, polozme n i=1 platí k (6.1) i=1 Snadno se dokíze nasledující tvrzení. Lemmá 6.1 Existuje rychlý algoritmus (v polynomiálním case) pro vyřešení tndy problémů, podmnožinového součtu pro superrostoucí posloupnosti. 6. SYSTEMY ZALOZENE NA RUKSAKOVE METODE 153 Proof. Predpokladejme, že posloupnost a1,...,an je superrostoucí,. Potrebujeme reprežentovat vstup t jako soucet vybrane podposloupnosti posloupnosti a1,...,an nebo rožhodnout, že takovouto reprežentaci nelže najíít. Položme r = max {i : ai < t}. Pak t = ar + s, kde nyní potrebujeme najít reprežentaci císla s jako soucet vybrane podposloupnosti posloupnosti a1,..., ar-1 nebo rožhodnout, že takovouto reprežentaci nelže najít. Opakovíaníí tohoto postupu níam pak día naňsi reprežentaci pro t nebo ojevíí, ňže takovou reprežentaci neníí moňžno najíít. Zaklad Merkle-Hellmanova systemu je nasledovny: 1. Typicky uživatel A si vybere snadnou superrostoucí posloupnost priroženych císel e1,..., en. 2. Uživatel si vybere dvojici velkých nesoudelných prirožených císel w a N a transformuje pomocí ní vybranou superrostoucí posloupnost do obtiZne posloupnosti T(e1),..., T(en) podle predpisu T (ej) = w • ei (mod N). Transformovany vektor (T(e1),..., T(en)) se stane verejným klicem uživatele A. Pritom by melo být N > e1 + e2 H---+ e„. Lěmma 6.2 Bud' c krýptogram odeslaný uZivatel A pri pouZiti obtiZneho verejneho klice T(e1),..., T(en) uZivatele A a predpisu T(ei) = w • ei (modN). Lehki krýptogram C pak ziskime z nasledujiciho vzorce: c' = w • c (mod N). 154KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEŘEJNÝM KLÍČEM Důkaz. Položme ai = T (ej). Je-li tedy M = (M1M2 ... Mn) zpráva, pak máme n c = ^ Mi • aj. i=1 Ale n n n n c = Mi • ai = Mi • w • ei + Mi • N • di = Mi • w • ei (mod N) i=l i=l i=l i=l pro vhodná přirozená čísla di. Máme tedy n l w~l ■ c Mi ■ ei (mod N)• i=l Výhody a nevýhody Zásadní váhodou je relativne vysoká rychlost Šifrování odesílatelem. Skutečne, vápočet součtu je velmi rychlá. Viditelnou neváhodou systemu je jeho linearita. Skutečne, platí E(x + y) = E (x) + E (y), kde E (x) = x * a = Yľn=1 xiai je operače zasifrování. Navíč v nejnižsím bitu součtu E (x) se operače sčítání promenuje na operači XOR. Proto nejnižsí bit součtu E (x), čož je dostupná sifrovy text, je roven výsledku operače XOR tedi bitu otevreneho textu tj. vektoru x, které stojá u ličhyčh ai. Bude-li napráklad ličhe jen a1 a a2, dostaneme x1 or X2=nejnižSí bit E (x). I když to nená velká informače, ze sifroveho textu by nemela vyzařovat. Kvalitná sifrovačá systemy nevydávajá o otevrenem textu vubeč zádnou vyuzitelnou informači. Lúštení, sýzky a prohry Merkle, jeden ze spoluautorů výše uvedeného šifrovacího systému, si byl jeho bezpečností tak jist, že na něj vsadil 100 USD. Bezpečností se pak zabývalo mnoho vedcu. Herlestam učinil zkusenost, že pomerne často lze zjistit jeden bit otevréne zprývy. Shamir ukýzal, ze je résitelný tzv. kompaktní problem rance. S 7. SYSTEM S VEREJNÝM KLICEM SE SLOŽITOSTI STEJNOU JAKO FAKTORIZACE 155 Zippelem pak dokázali řešitelnost Merkle-Hellmanova systému, jestliže lustitel bude znát tajný modul N. Pokrok pak nastal po Lenstrove objevu řesitelnosti problému celočíselného programování v polynomiýlním case. S jeho využitím pak Shamir popsal metodu řesení v polynomialním case a tím vyhral Merklovu sazku. Merkle sice prohral 100 USD, ale vsadil desetkrat tolik, že iterovaný problem nebude rozbit. E. Brickel v lete 1984 oznamil, ze je schopen rozlustit čtyricetkrýt iterovaný problem rance behem jedne hodiny. 7 System s veřejným klíčem se složitostí stejnou jako faktorizace Uved'me príklad systemu s verejním klíčem, o kterem lže ukažat, že jeho složitost je ekvivalentní s problemem faktorižače. Tvurčem systemu je Rabin (1979). Každí uživatel systemu vybere dvojiči (p, q) velkyčh ružníčh prvočísel, ktere učhoví v tajnosti. Zíroven si vybere prirožene číslo B < N = p • q. Verejny klíc bude dvojiče (B, N), soukromý klíc bude faktorižače (p,q) čísla N. IŠifrovačí funkče e žprívy M, kde M je reprežentovatelna jako prirožene číslo v definičním oboru {1,..., N — 1} (v prípade potreby se žpríva rožparčeluje na víče bloku), je e(M) = M (M + B) (mod N). Je-li C vísledny kryptogram, pak desifrovačí problem je nakéžt M tak, že (7.1) M2 + B • M = C (mod N). (7.2) MA Kongruenční rovnice a mocninne zbytky Poznamenejme nejprve, ze platí nýsledující tvrzení 156KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTEMY NEBOLI SYSTEMY S VEREJNÝM KLICEM Věta 7.1 Kongruenční rovnice ax = b (modm). (7.3) je řešitelná právě tehdy, kdyZ (a, m)/b. V tomto prípade má rovnice právě (a,m) navzájem nekongruentních řešení modulo m. Důkaz. Výše uvedená podmínka je nutná, neboť v opačném případě nemůže platit rovnost ax = b + km v oboru celých čísel. Bud' tedy d = (a, m) a necht' d/b. 1. Necht' d =1. Dle Bežoutovy vety existují celá čísla u, v takova, že au + mv = 1. Existují tedy cela čísla x, y splnující ax + my = b, tj. platí ax = b (modm). Resení x je jednožnacne urceno modulo m, nebot' je-li x' jine resení splňující ax' = b (modm), mame a(x — x') = 0 (modm) a tedy x = x' (modm). 2. Necht' d > 1. Protože nutne d/b, mame po dosažení do vžtahu ax = b + km ža a = a'd, b = b'd, m = m'd a po vydelení císlem d kongruencní rovnici a'x = b' (modm'). Z prípadu 1 víme, že tato kongruencní rovnice ma jedine resení x = xo (modm'). Vsechna resení modulo m tvoňríí praívňe d níasledujíícíích ňcíísel x = x0, x0 + m',..., x0 + (d — 1)m', (modm). Budeme chtít vyresit resp. zjistit, zda nísledující kongruenční rovnice ma resení v celych číslech pro n > 2: axn = b (modm). (7.4) Podobne jako v prípade linearních kongruečních rovnic se lze omezit na prípad, kdy (a, m) = 1. Pouzitím Eulerovy vety pak obdrzíme rovnici xn = 7. SYSTEM S VEREJNÝM KLICEM SE SLOŽITOSTI STEJNOU JAKO FAKTORIZACE 157 Buďte tedy m, n přirozená čísla taková, ze m > 2, n > 2, a cele číslo takové, ze (a,m) = 1. Číslo a se nazývá n-ty mocninný zbytek modulo m, je-li řesitelna kongruence xn = a (modm). (7.5) Pro zkoumání takovýchto kongruenčních rovnic vyuzijeme následujících tvrzení. Věta 7.2 Budte čísla mi,m2,..., mr navzájem nesoudělná, b1, b2, ..., br libovolná celá čísla takový, če (a1,m1) = (a2,m2) = • • • = (ar, mr) = 1. Pak mý systém aiX = bi (mod m,) (7.6) pro 1 < i < r prive jedno řešeni modulo m = m1 • m2,mr. Důkaz. Zrejme mají jednotlive kongruencní rovnice prave jedno resení, ktere získame z Euklidova algoritmu pro císla ai a mi (ai • ui + mi • vi = 1 a pronásobíme-li bi máme ai • xi + mi • yi = bi tj. aix = bi (mod mi)). Predpokládejme, ze toto resení je ve tvaru x = ci (mod mi) (7.7) pro 1 < i < r. Protoze máme (mi,mj-) = 1 pro i = j, máme (, ,..., mt) = 1. Zejmena tedy existují císla yi,y2,... ,yr tak, ze m m m --yi +--y2 + +--yr = 1. Polozme ei = • yi pro 1 < i < r. Zrejme platí e1 + e2 + • • • + er = 1 (mod m), (7.8) ei • ej = 0 (mod m) pro i = j, (7.9) ei • ei = ei (modm), (7.10) e. í 0 (modmi) pro i = j\ (7 11) i 1 (mod mi) pro i = j. 158KAPITOLA 7. ASYMETRICKE CIFROVACII SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLICEM Totiz ej • ej = m • c, ej • ej = YlI ei • ej = 1 • ej = ej (modm), ej = mj • c', (ej, m,) = 1. Poloňzme xo = ciei + C2e2 + • • • + cr er, mame pak z 7.11, ze x0 = cj (mod mj) pro 1 < i < r. Je tedy x0 spolecne resení modulo m. Pro kazde jine resení x0 modulo m systemu 7.7 míme x0 = x0 (mod mj) pro 1 < i < r a tedy take x0 = x0 (modm). Pripomenme, ze pro vsechna prirození císla m tvorí zbytkove trídy [a]m pro (a, m) = 1 multiplikativní abelovskou grupu modulo m. Pritom pocet prvku teto grupy je prave cp(m). Tuto grupu budeme v dalsím oznacovat jako Gm. Venujme se pro chvíli zkoumaní její algebraicke struktury. Necht' m = m1m2 ...mr, m1,m2,... ,mr jsou navzíjem nesoudelna. Podle vety 7.2 mí system kongruencí x = aj (mod mj) pro 1 < i < r príve jedno resení a modulo m. Pritom platí, ze (a,mj) = (aj,mj) pro 1 < i < r. Zejmena tedy (a,mj) = 1 príve tehdy, kdyz (aj,mj) = 1. Opet podle vety 7.2 míme jednoznacne urcení rozklad na zíklade rovností 7.8, 7.9, 7.10, 7.11 tvaru [a] m = [aiei]m +-----+ [ar er ]m. (7.12) Oznacme jakozto [a*]m zbytkovou trídu [e1 + • • • + ej-1 + ajej + ej+1 + • • • + er]m. Pak pro pevne i tvorí mnozina Gm,i zbytkovích tríd [a*]m podgrupu grupy Gm. Z rovnosti 7.12 obdrzíme jednoznacne urcení rozklad [a]m = [a1]m ... [aI]m. (7.13) 7. SYSTEM S VEREJNÝM KLICEM SE SLOŽITOSTI STEJNOU JAKO FAKTORIZACE 159 Provedeme-li tento rozklad pro všechna [a]m G Gm, lze výše uvedené formulovat tak, ze grupa Gm je přímý součin podgrup , • • •, . Mýme zejmena izomorfišmuš mezi grupami Gm; a Gm; pomocí zobrazení K*]m <-> Mm;• Řekneme, ze a patrí modulo m k exponentu d, pokud (a,m) = 1, ad = 1 (modm), ale an =1 (modn) pro 1 < n < d. Lemma 7.3 Patří-li a modulo m k exponentu d, jsou čísla 1,a,a2,... ,ad-1 modulo m nekongruentní Je-li dále a* = 1 (modm), tedy d\t. Důkaz. Necht' ak = ah (modm), 0 < h < k < d. Protoze (a, m) = 1, je ak-h = 1 (modm). To je však spor s 0 1, pak platí (gv) ^ = (gV(m)) t = 1 (mod m). Pak ale nemuže byt gv primitivní koren modulo m. Tvrzení 7.6 Bud' p prvocíslo. Pak Gp je cyklickí. Zejmena tedy existuje primitivní koren modulo p. Důkaz. Pro p = 2 je tvržení vety triviílní. Necht' p je v dalsím liche prvocíslo. Pro d| (p — 1) ožnacme x(d) pocet žbytkovych tríd ž Gm, ktere patrí k exponentu d modulo p. Mame ukížat, že x(p — 1) > 0. Podle tvržení 7.5 je pak dokonce cp(p — 1) = x (p — 1). Necht' tedy existuje nejake císlo a, ktere patrí k exponentu d. Pak dle lemmatu 7.3 jsou císla tvaru 1, a, a2,..., ad_1 navžíjem nekongruentní resení rovnice xd — 1 = 0 (modp). Toto lže prepsít pomocí polynomialní kongruence naísledovne xd — 1 = (x — — a) • • • (x — ad-1) (modp). Zaroven jsou víse uvedena císla take vsechna resení teto kongruence. Podle lemmatu 7.4 pak i ak patrí k exponentu d, pokud (d, k) = 1. To žnamení, že meži resení priníleží <^(d) císel, ktera patrí k exponentu d. Nutne pak bud' x(d) = 0 nebo x(d) = ^(d). Provedeme-li vícet vsech prvku ž Gm podle toho, ke kteremu exponentu patrí, je x(d) = p— 1. d|(p-1) Je ale dobňre žníamo, ňže ^(d)=p—1. d|(p-1) 7. SYSTEM S VEREJNYM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 161 Nutne pak x(d) = 2. Důkáz. Z a = glogg"(modm) a b = gloggb(modm) obdrzíme ab = glogga+loggb(modm). Porovníme-li toto s ab = glogg"b(modm), obdrzíme první vlastnost. Vlastnosti 2 a 3 plynou bezprostredne z vlastnosti 1. Z g = gloggg (mod m) obdrzíme 4. Pata vlastnost je zalozena na Fermat-Eulerove vete: gv(m) — 1 = (g^ — 1) (g^ + 1) = 0(modm). 162KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM Tvrzení 7.8 Buď p liché prvočíslo tak, že číslo a není dělitelné p. Kongruenční rovnice xn = a (modpr) mípréve d = (n,pr~1(p— 1)) nekongruentních resení, pokud d delí logg a. Jinak je tato kongruence neřešitelná. Důkaz. Tvrzení vety se logaritmováním převede na lineární kongruenční rovnici nloggx = logga (modpr-1(p — 1)). Zbytek plyne z tvrzení 7.1. Tvrzení 7.9 Bud' p liché prvočíslo tak, že číslo a není, dělitelné p, d = (n,pr-1(p — 1)). Kongruenční rovnice xn = a (mod pr) ma pmve resení pmve tehdy, když platí kongruencní rovnice a dpr-1(p-1) = 1 (mod pr). (7.15) Důkaz. Bud' g primitivní kořen modulo pr. Podle vety 7.8 je výše uvedená kongruence řešitelná právě tehdy, když existuje Číslo h ták, ze logga = h • d. Pák platí a = glogga = gh'd (modpr). Tedy a1pr 1 (p-1) = gh-pr 1(p-1) = i (modpr). Necht' obrácene plátá kongruenční rovnice 7.15. Položme /j, = logga. Protože a = gM (mod pr), máme g d 'pr 1 (p-1) = 1 (mod pr). Protože g je primitivní koren modulo pr, je ^ cele císlo, tj. d delí j. Tedy dle tvrzení 7.8 je kongruencní rovnice rešitelná. Věta 7.10 Buď f (x) polynom v proměnné x s celočíselnými koeficienty. Pak počet řešení kongruenční rovnice f (x) = 0 (mod m), m = nr=1pSi (7.16) je číslo N = n1n2nr, přičemž n je počet řešení rovnice f (x) = 0(mod psi) (7.17) pro 1 < i < r. 7. SYSTEM S VEREJNÝM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 163 D ů kaz. Resitelnost kongruencní rovnice 7.16 nastavá práve tehdy, kdyz je system kongruecních rovnic 7.17 resitelná. V prípade resitelnosti kazde jednotlive kongruencí rovnice oznacme x = ci (modpsi) resení i-te kongruncní rovnice. Obdrzíme pak linearní system kongruencí, která ma jednoznacne urcene resení (mod m). Probíhají-li ci vsech ni nekongruentních resení, získame celkem N resení (mod m). I D ů slěděk 7.11 Počet řeseni kongruenčni rovnice xs = x (modm),m = nr=1ps je čislo N = n1n2nr, pričemč ni je počet čečeni rovnice xs = x (modpsi) pro 1 < i < r. Tvrzení 7.12 Pocet resení kongruencní rovnice xs = x (modp), kde p je prvocíslo, je roven 1 + (p — 1, s — 1). D ů kaz. Uvazme dva prípady. Necht' x je císlo soudelne s p tj. x = p (modp) - takove x je pouze jedno (p) a je resením. Necht' x je nesoudelne s p. Mnozina vsech nesoudelnych císel s p tvorí cyklickou grupu stupne p — 1 a z predchozího víme, ze existuje práve (p — 1, s — 1) prvku teto grupy splnujících 7.20. I D ů slěděk 7.13 Pocet resení kongruencní rovnice xs = x (modm),m = nr=1pi (7.21) je císlo N = nr=1(1 + (pi — 1, s — 1)). (7.18) (7.19) (7.20) 164KAPITOLA 7. ASYMETRICKE ŠIFROVACÍSYSTEMYNEBOLI SYSTEMYS VEREJNÝMKLICEM Kvadraticke kongrúence FI Uvazme pro cela císla a, b, c, m (m > 1, a = 0 (mod m)) kvadratickou kongruenci ax2 + b • x + c = 0 (modm). (7.22) Vynísobením 4a prevedeme rovnici na tvar (2ax + b)2 = b2 - 4ac (modm). (7.23) To znamena, ze jsme schopni plne vyresit kvadratickou kongruenci 7.22, jestlize umíme vyresit specialní prípad x2 = a (mod m). (7.24) Tím se cela problematika prevede na problem kvadratických zbytků. Z dukazu vety 7.10 víme, ze se lze dale omezit na resení rovnice x2 = a (modps), (7.25) kde p je prvocíslo. Zaroven lze predpoklídat, ze (a,p) = 1. Totiz v prípade, ze p delí a mame 1. x = 0 (modp), pokud je s = 1, 2. v prípade s > 1 by muselo bít x = py tj. py2 = a' (modps-1), a = pa'. Nutne pak a' = pa'' tj. získame kongruencní rovnici y2 = a (modps-2),. Uvazme nyní kongruencní rovnici tvaru x2 = a (modps), (a,p) = 1. (7.26) Snadním overením získame resení pro p =2. 1. s = 1 : Existuje prave jedno resení a to x = 1. 7. SYSTEM S VEREJNYM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 165 2. s = 2 : (a) a =1 (mod 4) : Existují prave dve resení. (b) a = — 1 (mod 4) : Neexistuje žídne resení. 3. s > 3 : (a) a =1 (mod 8) : Existují príve ctyri resení. (b) a =1 (mod 8) : Neexistuje žídne resení. MA Věta 7.14 Je-li p liché prvočíslo, pák má kongruence 7.26 bud' žádné nebo práve dve rešení. Je-li a kvád-rátickí zbytek modulo p, je táke kvádráticky zbytek modulo ps á obrácene. D ů kaz. Víme, že (2,ps-1(p — 1) = 2. Podle vety 7.8 nm pak kongruencní rovnice 7.26 príve dve resení, pokud loga = 0 (mod 2) a žadne resení, pokud loga = 1 (mod2). Musíme jeste ukížat, že loga je nežívisle na s delitelne 2 nebo ne. Bud' g primitivní koren modulo ps pro libovolne s > 1a ^s = logga vžhledem k modulu ps. Ze vžtahu a = gMs (modps),a = gMs = gMl (modp), plyne ^s = ^1 (modp — 1) a proto ^s = ^1 (mod 2). Stací se tedy žrejme omežit na prípad, že s =1. Věta 7.15 Je-li p liché prvocíšlo, pák míme príve tolik kvádrátických zbytku jáko nezbytku. Kvádráticke zbytky modulo p jšou urceny a = 12, 22,..., 2—1 mod p. D ů kaz. Uvedena císla jsou žrejme modulo p nekongruentní. Totiž je-li b2 = c2 (modp), kde 1 < b, c < 2-1, míme (b — c)(b + c) = 0 (modp). Protože 1 < b + c < p, míme b — c = 0 (modp), tj. b = c. Protože dale (p — k)2 = k2 (modp), musí bít každy kvadratickí žbytek kongruentní s jedním ž víse uvedeních císel. Tíímto je tvrženíí dokaížíano. 166KAPITOLA T. ASYMETRICKE sIFROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNYMKLICEM Lemma 7.16 Resené rovnice x2 + B • x = C (modp • q) lže obdržet jako kombinaci řešení u, v rovnic x2 + B • x = C (mod p) x2 + B • x = C (mod q) a pžriroženíych žcíísel a, b splnžujíícíích a =1 (modp), a = 0 (modq), b = 0 (modp), b =1 (modq), a pak x = a • u + b • v splžuje 7.27. Důkáz. Plyne bezprostredne z predchozích tvrzení. Bud' p liche prvocíslo, p nedelí císlo a. Legendrův symbol (j^j definujeme jako + 1 pokud je a kvadratický zbytek modulo p, — 1 pokud je a kvadratický nezbytek modulo p. (7.27) (7.28) (7.29) (7.30) FI Mimo jine je vhodne vytvorit pravidla pro vípocet Legendrova symbolu. Evidentní jsou nasledující vlastnosti = (pO pro b = a (modp) l 7. SYSTEM S VEREJNYM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 167 Z Fermat-Eulerovy vety víme, ze ap 1 = 1 (modp) a proto platí av_ = ±1 (modp). Podle vety 7.9 je podmínka a~2~ = 1 (modp) dostatečná a nutná pro resitelnost kongruenční rovniče x2 = a (modp), (a,p) = 1. Máme tedy tzv. Eulerovo kritérium: Veta 7.17 G) a \ p_i = a 2 modp. v; Z tohoto kriteria lze odvodit radu dulezityčh faktu: Tvrzení 7.18 D ůkaz. Z Eulerova kritáeria máame, ze — = (ab) 2 = a 2 • b 2 =[-)[-) modp. Tvrzení 7.19 (t) = (-1) ^^ = (-1) * ■ MA Důkaz. První vztah plyne bezprostředně z Eulerova kritéria. Abychom dokázali druhý vztah, uvažme součin Il(-1)fc k =^^^)!("1)2 fc=1 168KAPITOLA 7. ASYMETRICKE sIFROVACí SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLíCEM Je-li v součinu číslo k ličhe, žameníme (—k) modulo p číslem (p — k) o obdržíme rovnost 2 i JJ(—1)k k = 2 • 4 • 6 • • • • (p — 1) = (p——)!2V mod p. fc=i Protože ale p nedelí (^-y1 )!, mame Z Eulerova kriteria plyne tvržení. Lemma 7.20 Je-li p prvočíslo tvaru 4k — 1 a d kvadratický žbýtek modulo p, resení kongruenčné rovnice tvaru y2 = d (modp) (7.31) je daéno predpisem y = dk (modp). (7.32) Důkaz. Z Eulerova kriteria mame, že í d\ , A - = 1 = d 2 mod p. p Protože k = 1 (p +1), míme d 4 (p+1)d1 = d 2= d1 (pTl)d = d mod p. Zkombinujeme-li predčhoží uvahy, dostaneme nasledují tvržení 7. SYSTEM S VEREJNYM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 169 Tvrzení 7.21 Za predpokladu, ze jak p tak q jsou kongruentní s 3 modulo 4, lze dešifrovací proceduru provést v polynomialním case. Dukaz. Príjemci, kterí zna faktory p a q a ví, ze kryptogram je kvadratickí zbytek, stací jenom aplikovat pňredchozí lemmata. Rabin ve skutecnosti dokazal víc nez 7.21. Totiz dokazal, ze i v prípade, ze prvocísla p a q nejsou v tomto speciílním tvaru, kongruencní rovnice modulo p a modulo q lze reňit nahodním algoritmem v polynomialním ňcase. Poznamenejme, ňze praktickou nevyíhodou Rabinova schíematu je, ňze pňrííjemce obdrňzíí ňctyňri moňzníe zpraívy, z nichňz mía vybrat tu spríavnou. Obvykle to lze províest tíím, ňze mía nňejakou dodateňcnou informaci - napňr. ňze po pňrevedeníí z biníarníího do textovíeho tvaru je zpríava psanaí v angliňctinňe. Mr. X vsak nezní faktory p a q císla N a musí se zabívat mnohonasobne obtíznejsím problemem. Ze je tomu skuteňcnňe tak, plyne z níňze uvedeníe druhíe Rabinovy vňety. Veta 7.22 Označme DN mnoZinu vsech takovích d, 0 < d < N, Ze existuje resení kongruencní rovnice y2 = d (modN). (7.33) JestliZe pro alespon \ 1 takovíchto d jsme schopni najít takove y, pak jsme schopni najít faktor N v níahodníe polynomiíalníí dobe. Lemma 7.23 Jsou-li x,y G ZN celí císla modulo N takoví, Ze x2 = y2 (mod N), x = ±y (mod N), (7.34) jsou pak (x + y, N) a (x — y, N) dělitele N. Zejmena pro N = p • q, p a q prvocísla je (x + y, N) prvocíselny delitel N. Dukaz. x2 = y2 (mod N) implikuje x2 = y2 + rN, kde r G Z. Tudíz (x — y)(x + y) = rN. Vňetu 7.22 lze neformaílnňe pňrepsat do tvaru 170KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM Veta 7.24 Rožsifrovíní Rabinova systemu s verejním klícem je ekvivalentní naležení efektivního algoritmu pro faktorizaci. Důkaz. Predpokládejme, ze máme algoritmus A, který pro dane (q, N) a pro [lJog^Nv 1 takovýchto q dává na výstupu odmocninu z q modulo N. Pak můžeme faktorizovat N iterováním nasledujících kroku: Vyberme náhodne z ze Zv tak, ze (z, N) = 1 a vypocteme q = z2 (mod N). Vlozme na vstup algoritmu A dvojici (q, N). Pokud A má za výstup druhou odmocninu z q ruznou od z nebo —z modulo N, pak 7.23 nám dává, ze jsme schopni faktorizovat N. Ocekávaný pocet iterací algoritmu bude maly, protoze je 2logN-ní šance na faktorizaci N v kazde iteraci. 8 Jak se napada RSA-algoritmůs? Pokůsy o narůSení RSA-algoritmů prostřednictvím faktorizace modůlů N = p • q Faktorizace modulu N je nepomerne obtíž?nejSí nez jeho konstrukce, tj. nalezená prvocásel p a q. V dobe vzniku RSA-algoritmu (1978) byla 50-místný prvočísla bezpecna, coz dnes uz nená pravda. Proto se v soucasne dobe pracuje se 100-místnými prvocísly. Pritom není vyloucene, ze bude mozno najít algoritmus na faktorizaci, který pracuje v polynomialmím case. Zaroven se nepodarilo dokazat, ze by faktorizace sifrovacího modulu byla ekvivalentní s bezpecností RSA-systemu. Mohla by se totiz najít metoda, jak tento system narusit bez faktorizace N. Zatím jsou vsak pokusy o narusení bezpecnosti RSA-systemu zalozeny hlavne na faktorizaci. Lze napríklad dokazat, ze vypocet desifrovacího exponentu t je ekvivalentní faktorizaci sifrovacího modulu N. Prvním algoritmem, ktery nás napadne, je tzv. pokusne delení (Trial Division) císly 2,33,..., [vN]. Postup lze urychlit tak, ze delíme jen císly 2, 3 a pak císly tvaru 6k — 1,6k + 1 pro k = 1, 2,.... Dalsí pouzívanou metodou je Pollardova p — 1 a p +1 metoda. Zakladem metody je nasledující tvrzení: 8. JAK SE NAPADÁ RSA-ALGORITMUS? 171 Věta 8.1 Buď n = p • q, p, q, r prvočísla, r — 1/b, r/n a n nedělí a. Pak r/(n, ab — 1). Důkaz. Podle Fermatovy vety platí ar-1 = 1 mod r a tedy i ab =1 modr tj. r/(ab — 1). Zároveň však r/n. Aby se výše uvedena veta dala využít, je nutno najít vhodna čísla a, b. Nalezení a je snadne. Stačí zvolit nejake male prvočíslo a presvedčit, zda je či není delitelem n - pokud by bylo delitelem, našli bychom faktorizaci čísla n a tím byli hotovi. Volba b je obtíznejsí, je treba ho najít postupním zkousením. Pritom se obvykle za b volí čísla tvaru bj = nsn(1, 2,...,j). Tato čísla je vhodne volit z toho duvodu, ze mají mnoho vlastníčh delitelu a je tedy velkí sanče na splnení podmínky r — 1/b. Algoritmus se hodí na nalezení mensíčh prvočíselníčh delitelu čísla n. Touto metodou bylo napr. faktorizo-vane číslo 2257 — 1 jako součin trí ruzníčh prvočísel. Dalsí znamou metodou je Pollardova rho-metoda (Monte Carlo), kterou se obvykle najdou male prvočíselne delitele modulu N asi po ^/p čyklečh programu. Metoda začíní víberem libovolne nelineírní funkče f s čeločíselnymi koefičienty, nejčasteji f (x) = x2 + c, c = 0, —2 a volbou počateční hodnoty x0, kterou lze zvolit níhodne. V dalsíčh kročíčh se rekurentne počítají hodnoty posloupnosti xj+1 = f (xj) mod N, j = 0,1, 2,.... Pomočí pravdňepodobnostníčh uívah lze dokíazat, ňze vyíslednía posloupnost bude skoroperiodičkía. To znamenía, ze po jiste dobe lze očekívat vyskyt dvou hodnot x j ,xk, pro které platí Xj = xk mod N, N = p • q x j = xk mod p. To ale znamení, ze (xj — xk, N) = p. Hledíní nejvetsího společneho delitele lze vsak provest Euklidovím algoritmem s malou slozitostí. Algoritmus se jeste tročhu upraví: kdyby se tímto zpusobem porovnavaly vsečhny rozdíly xk — xj pro vsečhna j < k, počet operačí by neumerne narustal. Proto postupujeme nasledovne: 172KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM předpokládejme, ze máme uz spočítané xk, přičemž k je h + 1-bitove číslo, 2h < k < 2h+1. Označme j = 2h — 1. Pak najdeme (xk — Xj,N). Pokud prvočíslo p nenalezneme, postup zopakujeme pro k + 1. Nevýhodou takovehoto postup je, ze pravdepodobne nenajdeme první dvojici xk,Xj. Venujme se pro okamzik tzv. Fermatove faktorizaci, ktera je zalozena na tvrzení 7.23 tj. ze x — y je pravdepodobne netriviílní delitel čísla N. Je-li navíč N = p • q, je pak i Protoze p a q jsou ruzna prvočísla, nemusíme se bat toho, ze by N bylo ýplným čtverčem nejakeho prvočísla. Pokud jsou prvočísla p a q blízko, resp. rozdíl |p — q| je malý, je číslo "Ěp+^ jen o malo vetsí nez vN. Pak ale stačí pro x = 1 + [vN], 2 + [vN],... počítat x2 — N = u. Je-li u = y2 íplní čtvereč, bude p = x — y hledane prvočíslo. Dalsí z moznyčh metod je metoda tzv. řetězových zlomků. Na zíklade teto metody lze navrhnout pročesor v čene asi 1000000 $, kterí rozlozí 100-místne dekadičke číslo asi za 1 mesíč. Pro 200-místne dekadičke číslo je ale odhad 3.8 milionu let, čoz garantuje postačujíčí bezpečnost čeleho systemu. Pripomenme si, ze tvurči RSA vsadili 100 USD na to, ze nikdo nerozlustí jejičh angličkí text záSifřováný algoritmem RSA s verejným modulem e = 9007 a znamym modulem N, kterí je součinem dvou 64- a 65-čifeřnýčh prvočísel. Rivest v roče 1977 spočítal, ze na roznasobení uvedeneho modulu N by bylo nejlepsí faktorizační metodou potreba 40 000 000 000 000 000 let. Proto se nebali investovat 100 USD do sazky. V dubnu 1994 bylo vsak oznameno, ze se toto 129-čifeme číslo N podarilo roznasobit. Zaroven tak byl odhalen otevrení text zasifrovane zprívy, ktera nemela nikdy spatrit svetlo sveta: The magic words are squemish ossifrage. Poznamenejme k vyse uvedenemu, ze v roče 1873 se zdalo nemozne faktorizovat desetičifeme číslo. V roče 1977 byla vsak uz znaímaí Pollardova rho metoda faktorizače. S jejíí víykonnostíí takíe Rivest počíítal pri odhadu uvedeneho času na faktorizači naseho čísla N. Od te doby se vsak objevily dalsí metody faktorizače: ECM (elliptič čurve method), QS (quadratič sieve fačtoring) a NFS (number field sieve fačtoring algorithm). Pollardova rho metoda na nalezení 64-čiferneho součinitele potrebovala odhadem 4 x 1032 modularního 8. JAK SE NAPADA RSA-ALGORITMUS? 173 násobená, tj. asi 1.3 x 1016 let - Rivest uvazoval, ze by jedno molekulární' násobená mohlo trvat jednu nanosekundu. ECM vsak uz dnes potrebuje uz jen 5 x 1015 modulárnáho násobená, tj. asi 2 mesáče. Ve skutečnosti se takoveto ryčhlosti modulárnáho násobená nedosahuje a reálná odhad by byl čča 15 000 let, čoz je vsak obrovská pokrok oproti 1016 letum. Na rozdál od ECM a Pollardovy rho metody metoda QS, pouzitá k nalezená 64-čiferneho součinitele u naseho čásla N, závisá mnohem váče na prástupu do pameti nez na vákonu pročesoru. Na základe analyzy reálne pouzitáčh typu počítaču a jimi spotrebovaneho času na faktorizači bylo spočítáno, ze k nalezení 64-čiferneho součinitele se spotrebovalo čelkem 4000 az 6000 tzv. MIPS roku. Pritom jeden MIPS rok je mnozstvá operačá, ktere za jeden rok vykoná počátač s vákonem jeden milion operačá za vterinu. Je to tedy 365, 25 x 24 x 3600 x 1000000 =čča. 3.16čot1013 operačá. Počátáme-li prumerná vákon jednoho počátače v experimentu 10 MIPS s tám, ze na experimentu pračoval jen polovinu dne tj. s reálnám vákonem pouze 5 MIPS, bylo k faktorizači pouzito čča. 1000 let práče. Zároven je z vyse uvedeneho videt ázasná nárast vákonnosti faktorizačiričh metod v poslednáčh letečh. Faktorizači 154-mástneho čásla (512 bitu) pak bude trvat čča 500000 MIPS let. Tent vykon by mohli zajistit vsičhni áčastmci sáte INTERNET. Dostáváme pak vápočetná kapačitu 20 miliánu MIPS - tj. faktorizače by probehla behem deváti dná. Důsledky nových faktorizačních algoritmů pro bezpečnost RSA-šifrovacího systemú Nejspolehlivejsá česta, jak narusit verejnou sát' využí'vající' RSA-kryptosystem, je nalezená desifrovatího exponentu, označme si ho treba t. Jednou z takováčhto moznostá je poznáná čásel p — 1 a q — 1, tj. faktorizače sifroveho modulu N = pq. Slabym místem Pollardovy p — 1 a p + 1 metody je nalezení vhodneho čísla b. Aby jsme ulohu faktorizače čísla N pro nekompetentní osobu zkomplikovali, musíme zvolit prvočísla p a q tak, aby p — 1 (q — 1) melo velká prvočáselneho delitel r a p +1 (q + 1) velká prvočáselná delitel d. Zároven je vhodne pozadovat, aby čáslo r — 1 melo rovnez velky prvočáselná delitel e. Proto prvočásla splnujíčí kongruenčná 174KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM rovniče p = 1mod r p = d — 1mod d (8.2) r = 1mod e. (kde r, d a e jsou velka níhodna prvočísla) se nazívají silna prvočísla. Aby jsme se zabezpeňčili i proti metodíam zaloňzenyím na Fermatovňe faktorizači, musíme zvolit silnía naíhodnaí prvočísla p a q tak, aby rozdíl |p — q| byl nekolik rídu. Pokud budeme mít efektivní metodu na nalezení silníčh nahodníčh prvočísel, pak splnení poslední podmínky ním nezpusobí zídne komplikače. Takovíto metoda byla poprve navrzení Gordonem v roče 1985. Další moZně útoky na RSA-šifrovací systěm Ukazeme, ze dva íčastníči RSA-sifrovačího systemu nemohou mít stejní sifrovačí modul N. Uvazujme učastníky A a B, NA = NB = N. Pak musí platit (sa,¥>(N)) = 1 a sb • í b — 1 = k • p(N) (8.3) pro nejake čele číslo k. Uvidíme, ze učastník B je sčhopen díky společnemu N číst kazdou zpravu určenou uíčastnííkovi A a takíe podpisovat uíčastnííka A. Totiz učastník B je sčhopen pouzitím Euklidova algoritmu vypočíst f = (sB • íb — 1, sA). Označme sb ^ í b — 1 /c n =-f-. (8.4) Pak (n, sa) = 1 a (f, <^(N)) = 1, protoze sifrovačí exponent sA je nesoudelní s N. Odtud pak n = f^(N) (8.5) 8. JAK SE NAPADÁ RSA-ALGORITMUS? 175 a přitom číslo f dělí číslo k. Proto je n násobek cp(N). Z nesoudělnosti čísel n a sA plyne existence čísel u, v tak, ze u • n + v • sA = 1. (8.6) Bez ujmy na obecnosti lze předpokládat, ze v > 0. Pak v • sA = 1 — u • n =1 mod <^(N) (8.7) ía • s a = 1 modp(N). (8.8) Zejmena tedy (v — ía) • sa = 0 modp(N). (8.9) v = ía mod^(N). (8.10) Takoveto v je desifrovacím exponentem zprav, ktere jsou zasílaný účastníkovi A. Totiz, je-li y = xSA mod(N), (8.11) zprava určenú pro A, pak platí yv = xSA-v = xSA) = x mod (N), (8.12) pro vhodne l G Z. Pokud čhče B odeslat zpravu jinemu účastníkovi C, stačí podepsat zpravu místo desifrovačím exponentem účastníka A exponentem v. Jinou z moznýčh príčin narusení RSA-sifrovačího systemu by mohla bít skutečnost, ze tatíz zprava je odeslína víče učastníkum sifrovačího systemu tak, ze je zasifrovana ruzními siframi tohoto systemu. RSA-algoritmus nemuze pouzívat stejne sifrovačí exponenty. a a 176KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM Z duvodu jednodučhosti uvazujme tri učastníky sifrovačího systemu, kterí mají sifrovačí klíče (s,Nj), i = 1, 2, 3. Muzeme bez ujmy na obečnosti predpokladat, ze moduly jsou navzajem nesoudelne. Pokud by tomu tak nebylo, nasli byčhom faktorizači a tím byli hotovi. Zasleme-li temto trem íčastníkum stejnou zpravu x, x < min N, pak Mr. X, kterí začhytí její zasifrovane varianty y», i = 1, 2, 3, muze zprívu x lehče desifrovat. Postup Mr. X bude nasledovní. Z kongruenčníčh rovnič yi = xs mod Ni y2 = xs mod N2 y3 = xs mod N3 (8.13) (8.14) (8.15) dostaneme pro N = NiN2N3 y1N2N3 = xsN2N3 mod N y2N1N3 = xsN1N3 mod N y3NiN2 = xsN1N2 mod N. (8.16) (8.17) (8.18) Po jejičh sečtení obdrzíme y1N2N3 + y2N1N3 + y3N1N2 = xs • (N2N3 + N1N3 + NN2) mod N. (8.19) Je-li s = 3, pak xs < N a Mr. X může z poslední kongruence přímo vypočítat zprávu x - vynásobením prvkem inverzním k prvku (N2N3 + NN3 + NiN2) a standardním odmocnením. Vásledek lze zobecnit na d účastníků Šifrovacího systemu. 8. JAK SE NAPADA RSA-ALGORITMUS? 177 Spěciýlní prístůpy k děsifrovýní RSA-sifrovacího systěmů Mužeme-li pocítat s jistou neopatrností ucastníka síte, žasle Mr. X ucastníkovi A žpravu xs • as, kde xs je žasifrovaný žprýva, kterou Mr. X žachytil a požmenil ji pronýsobením císlem as. Verejný sifrovací klíc je dvojice (s, N). Tedy uícastníík A obdržíí žpríavu y' = as • xs mod N (8.20) a po desifrovýní x' = (y')* = xa mod N. Pokud bude A neopatrný a umožní x' prístup k císlu x', pak mužeme jednoduse spocítat x = a-1 • x' mod N. (8.21) Dalsí možný prístup souvisí s protokolem pri vytvarení spojení meži ucastníky, kdy se A i B navžajem identifikují. Pokud chce ýcastník B navažat spojení s ucastníkem A, žvolí libovolnou žpravu x a vysle pomocí desifrovacího exponentu tB sifru y = x*B mod NB. Ucastník A žný sifrovací exponent ýcastníka B a proto si muže žkontrolovat ySB = x*B'SB = x mod NB. Nyní použije ýcastník A svuj desifrovací exponent tA a výse uvedený postup žopakuje. Zrejme je x < min {NA, NB}. Jak bude probíhat vlastní utok? Pokud ucastník B žíska dva takoveto podpisy od ucastníka A y1 = x1A mod NA, (8.22) y2 = x*/ mod Na, (8.23) je pak schopný vytvont tretí hodnoverný podpis ucastníka A bež žnalosti jeho desifrovacího exponentu tA y = (x1x2)*A modNA, (8.24) a ten žneužít pri podpisu nejake žpravy (B žna jak x1 tak x2). Proto je vhodne doplnit pri podpisovaní žpravu x nejakou aktualní redundantní a nepredvídanou informací. 178KAPITOLA 7. ASYMETRICKE sIFROVACi SYSTEMY NEBOLI SYSTEMY S VEREJNYMKLiCEM Tretí z mozníčh prístupu je nasledujíčí. Nečht sifrovačí modul N = p • q ma n-bitovou reprezentači a prvočísla p a q mají n-bitovou reprezentači. Predpokladejme, ze Mr. X mí moznost získat nejakím zpusobem n-bitovou informači o modulu N. Potom ho samozrejme imíze faktorizovat - prímo se zepta na jedno z prvoňčísel p a q. Día se ukíazat, ňze ňsifrovačí modul N je moňzno faktorizovat polynomiíalním algoritmem, pokud mí Mr. X moznost získat jen n bitu. Na poslední z prístupu k rozsifrovaní RSA-sifry poukazali jako první G.J. Simmons a M.J. Norris. Tento prístup vyuzíva algebraičke vlastnosti RSA-kryptosystemu. NO Algěbraickě vlastnosti RSA-kryptosystěmů a iterovanú útok na jeho bezpeCnost Uvazujme mnozinu zprív rozsírenou o nuloví prvek, tj. M = {0,1, 2,... , N — 1}. Pro kazde s, (s, 0(N)) = 1 je zobrazení T(s,x) = xs mod N (8.25) permutačí mnoziny M, ktera nečhava nuloví prvek na míste. Lze tedy mnozinu M s nísobením povazovat za konečnou komutativní pologrupu s nulovým prvkem, T (s, —) : M — M je homomorfismus pologrup začhovaívajíčí nulovyí prvek. Ukaňzme si moňznost naruňsení systíemu iterovanyím ňsifrovíaním. Z koneňčnosti mnoňziny M víme, ňze existuje ňčíslo h tak, ze T (s, —= T (s, —) (8.26) a tedy pro kazde zprívu x platí T (s, x)h = x. Navíč lze pro konkrétní zpravu najít takove minimalní h - tj. díelku čyklu, kteryí obsahuje zpraívu x. Tento postup je vňsak praktičky realizovatelnyí jen v pňrípadňe, kdyňz h bude relativnňe malíe ňčíslo, napňr. menňsí neňz miliíon. Je pňritom dokaízíano, ňze pňri vhodníem vyíbňeru prvoňčísel p a q je pravdňepodobnost nalezení takovíehoto maleho h mensí nez 10-90. Vzhledem k tomu, ze počet elementírníčh častič v nam znamem vesmíru je rídove 1080, lze kazdou pravdepodobnost mensí nez 10-80 povazovat za nulovou. 8. JAK SE NAPADA RSA-ALGORITMUS? 179 Popisme si nyní pologrupu M. Ta je sjednocením ctyr disjunktních grup a obsahuje presne ctyri idempotenty - 0,1, e1, e2. Poslední dva idempotenty dostaneme jako resení rovnic a1 • p = 1 mod q, resp. a2 • q = 1 modp, (8.27) kde a1 p = e1 a a2 q = e2 lezíí v M. Prííslusníe grupy jsou tedy G(0) = {0}, G(1) = {x :(x,p • q) = 1}, G(e1) = {x : x = p • a mod q, a =1, 2,... , q — 1}, G(e2) = {x : x = q • b mod p, b =1, 2,... ,p — 1}. To znamení, ze pocet prvku v jednotlivích grupach je 1, (p — 1)(q — 1), q — 1a p — 1. Nejprve urceme pocet tech zprív x G M, ktere zustanou pri permutaci T (s, —) = Ts na míste. Ptíme se tedy na pocet resení rovnice T(s,x)= xs = x mod N. (8.28) Lze dokazat, ze vsechna takovato resení tvorí podpologrupu Z1 pologrupy M, kterí obsahuje presne = [1 + (s — 1,p — + (s — 1, q — 1)] (8.29) prvku. V prípade, ze zvolíme parametry s,p, q tak, ze s = 2r + 1, p = 2p1 + 1, q = 2q1 + 1, (8.30) kde p1, q1 a r jsou navzajem ruzna prvocísla, je |Z11 = 9 a to je zrejme nejmensí mozní pocet zprav, ktere se nezasifrují. Podívejme se nyní, jak to vypada pri iterovanem sifrovíní. Chceme vedet, kolik ruzních zasifrovanych zprav muzeme tímto zpusobem precíst, zopakujeme-li sifrovaní h + 1-krat. Rovnost 8.26 prepíseme na tvar xsh+1 = xs mod N, resp. xsh = x mod N. (8.31) 180KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTEMY NEBOLI SYSTEMY S VEREJNÝM KLICEM Všechna takováto řešení opet tvoří podpologrupu Zh pologrupy M, která obsahuje přesně = [1 + (sh - 1,p - + (sh - 1,q - 1)] (8.32) prvku. Lemma 8.2 a) Zl n Zh = Zd, kde d = (l, h), b) Deli-li číslo l číslo h, je Zi C Zh. Důkaz. a) Nechť x G G(f), kde f = 0 je jeden z idempotentu pologrupy M. Rovnice x/"1 = f mod N a Xs'"1 = f mod N, (8.33) ktere získame vydelením vztahu 8.31 v príslušne grupe G(f), mají spoleCne rešení práve tehdy, kdyz (sl - 1,sh - 1) = sd - 1, kde d = (1,h). Tvrzení b) je speciílním prípadem pro l = (l, h). Lemma 8.3 Označme Zh = {x : x = xs' ,xs1 = x pro všechna l < h}, Dh = {d : d/h,d = h}. Pak a) Zh = Zh - U{Zd : d/h,d = h}, b) |Zh| = |Zh| - [E{|Zd| : d G Dh} - E{|Zdx n Zd21 : di,d2 G Dh,di = d2} + • • • + + (-1)|Dh|l -{Zd : d G Dh, }|.], č) Pokud je h = pa, p prvočíslo, je Zh = Zh - Z h . 8. JAK SE NAPADA RSA-ALGORITMUS? 181 D ú kaz. a) Nechť x G Zh, pak x G Z pro libovolne l < h, (l, h) = 1. Tedy Zh C Zh — |J{Z : l < h, (l, h) = 1} tj. Zh C Zh — U{Zd : d/h, d = h}. Opacna implikace je zrejmí. Zaroven protoze Zh I) IJ{Zd : d/h, d = h}, mame |Zh| = |Zh — |J{Zd : d/h, d = h}|. b) Plyne z principu exkluze a inkluze. c) Plyne z inkluzí Z1 C Zp C Zp2 C • • • C Zpa-1 a z rovnosti Zh = (J{Zd : d/h, d = h}. Pologrupu M muzeme tedy napsat jako disjunktní sjednocení mnozin Zh. Uloha navrhovatele sifrovacího systemu je, aby |Zh| =0 pro malí h. Mnozinu Zh muzeme pomocí zobrazení Ts popsat nísledovne Zh = {x : Tsh(x) = x a Tsž(x) = x pro l < h}. Lze ukízat, ze univerzalním desifrovacím exponentem je h0 = A(A(N)), kde A je tzv. Carmichaelova funkce, ktera císlu n = p^1 • pí?2 • •p^ priradí císlo A(n) = 1 jestlize n =1, 2a-2 jestlize n = 2a,a> 2, ^(n) jestlize n = 2, 4,pa,p - liche prvocíslo, nsn{A(pai),..., A(p^r)} jinak. Zejmena tedy pro kazdou zpravu x G M a pro kazde 1 < s < N — 1, (s, N) = 1 platí Tsh0 (x) = x. (8.34) Zaroven lze dokazat, ze tento univerzalní desifrovací exponent nelze nahradit mensím císlem. Je zrejme, ze permutace Ts tvorí grupu. Lze dokízat, ze pocet prvku teto grupy je cp(A(N)). Kazda z permutací Ts generuje v tíeto grupe nejakou konecnou cyklickou podgrupu {Ts, Ts2, . . . }. Jejíí exponent (exponentem grupy G nazívíme takove cele císlo h tak, ze ah = 1 pro vsechny prvky a grupy G) musí delit exponent h0 cele grupy. Proto nutna podmínka neprízdnosti mnoziny Zh je, aby h delilo h0. 182KAPITOLA 7. ASYMETRICKE ^FROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNYMKLICEM Nyní se budeme zajímat o výber vhodných parametru s, p a q. Po analýze, kterou jsme provedli, lze psát M = U: h delí ho}, resp. |M| = J][\Z£\ : h delí ho}, (8.35) kde nektere scítance |Z£| mohou být nulove. Nasím ukolem je zvolit s a N tak, aby |Z£| = 0 pro velka h, tj. aby pravdepodobnost uspechu pri pokusu o narusení RSA-algoritmu iterovaným utokem byla co nejmensí. Protoze víme, ze ho = X(X(N)) = A(nsn{p — 1, q — 1}), takovouto nutnou podmínkou je, aby císlo h0 melo velke prvocíselne delitele. Vezmeme-li do ávahy podmínku 8.30, pak dostaneme h0 = A(nsn{a1p1, b1q1}) = A(p1q1nsn{a1, b1}), (8.36) kde a1 ,b1 jsou libovolný náhodne zvolena mala císla, p — 1 = a1p1, q — 1 = b1q1. Podle definice Carmichaelovy funkce X je pak h0 násobek císla nsn{p — 1, q — 1}. Aby toto císlo bylo co nejvetsí, muzeme zvolit p1 = a2p2 +1 a q1 = b2q2 + 1, kde a2,b2 jsou libovolný nahodne zvolena mala císla a p2 a q2 jsou priblizne 90-ti ciferna prvocísla. Pak bude h0 = p2 • q2 • a, pro vhodne cele císlo a. Dale dokazeme, ze toto h0 je pro vetsinu transformací Ts nejmensím exponentem v príslusne grupe. Zabývejme se nyní exponentem zprav x G M. Zprava x nebude z grupy G(1) C M prave tehdy, kdyz bude nasobkem prvocísla p nebo q. Pravdepodobnost takoveto situace, ze (x, N) = (x,pq) = 1 pro nahodne zvoleníe x bude |G(e1)| + |G(e2)| + 1 = p + q — 1 < 1 + 1 < 10_9o, (8U7) N N ~ p q ~ ' coz je mozno povazovat za nulovou pravdepodobnost. Tento výsledek podtrhuje spolehlivost RSA-systemu pri vhodne volbe klícce. Tvrdí, ze pro odesilatele zpravy nema praktický význam, aby pocítal císlo (x,N), ktere muze být rovne 1, p nebo q. 8. JAK SE NAPADAÉ RSA-ALGORITMUS? 183 Predpokladejme tedy, ze (x, N) = 1 a prvočísla jsou vybraní vyse uvedením zpusobem p = (21 • p1 + 1, q = 61 • q1 + 1 (8.38) P1 = «2 • P2 + 1, q1 = 62 • q2 + 1 kde aj, 6j jsou libovolní níhodne zvolena malí čísla, p, q,p1, q1 ,p2, q2 jsou níhodne zvolena prvočísla, p2, q2 > 1090. Ukazeme, ze pro vetsinu zprav x je jejičh exponent nasobkem čísla p1q1. Pripomenme si naísledujííčíí zníamou vetu z obečníe algebry. Věta 8.4 (L. Sylow) Necht G je abelovská grupa, |G| = n. Necht dále pa je největší mocnina prvočísla p, která delí n. Pak grupa G obsahuje jedinou podgrupu, ktera má presne pa prvkU. Tato podgrupa se nazýva Sylowovská. D ů slěděk 8.5 Necht |G| = p^1 • pí?2je kanonický rozklad cásla n = |G|. Pak G je izomorfní s kartezskám součinem všech svých Sylowovských podgrup GPi. Aplikujeme-li predčhozí dusledek na nasi situači, dostavame, ze pro podgrupu G(1) platí |G(1)| = ťj*1 • ť?2i^* • p1 • q1. Je tedy grupa G(1) izomorfní s kartezskím součinem grup G' x Gp1 x Gp2, kde G' = Gtai x Gta2 x • • • x Gtafc. Počet prvku x G G(1), jejičhz exponent nebude soudelmí se součinem p1q1 je |G'| • (p1 + q1) — |G'|. Proto pravdepodobnost, ze níhodne zvolene x G G(1) nebude mít exponent h, kterí je nísobek p1 • q1, bude rovna |G'h (p1 + q1) — |G'| = p1 + q1 — 1 < 10-90. (8.39) | G '| • p1 • q1 p1 • q1 184KAPITOLA 7. ASYMETRICKE CIFROVAGI SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLICEM Naprosta vetsina prvku pologrupy M ma tedy exponent, který je nasobkem prvocísel p1 a q1, tj. h = a• p1 • q1. Aplikujeme-li tedy tento postup na grupu t ružných transformací Ts pro pevne žvolený modul N, víme, že se jedna o komutativní grupu, ktera ma presne cp(A(N)) prvku a její exponent je ho = A(A(N)). Zvolíme-li parametry p a q v souladu s 8.38, dostaneme ¥>(A(N)) = p(p1q1 • nsn{a1,61}) = (8.40) = (P1 - 1) • (q1 - 1) • ^(nsn{a!,61}) = (8.41) = a2 • 62 • ^(nsn{a1, 61}) • P2 • q2. (8.42) Snadno lže spocítat prvky x g G(1), jejichž exponent není delitelný soucinem p2q2. Pak pravdepodobnost, že pri iterovanem sifrovaní budeme uspesní, je a • (P2 + q2) - = P2 + q2 - 1 Navíc exponent h pro vetsinu transformací Ts je rýdove 10180. < 10-90. (8.43) Poznamka. Požnamenejme, že exituje jeste dalsí žrejma možnost, jak uspesne narusit RSA-algoritmus a to ža predpokladu, že žname cp(N). Pak je snadne nají tajný desifrovací klíc t. Ale jak je snadno videt, žnalost 2t + 1, pro daní císla t a a. Je-li tedy n = 1024 = 210 a t = 50, tj, k = 524, neprítel se musí zabívat lustením kryptogramu, kde se v kazde císti delky 1024 vyskytuje az 50 nahodních chyb. 192KAPITOLA 7. ASYMETRICKE SÍIFROVACISYSTEMY NEBOLI SYSTEMY S VEREJNYMKLKEM Kapitola 8 Šifrový standard DES a jěho kolegově 1 Potřeba a historie vzniků DES FI Obrovskí narust počítačove komunikače a nístup elektroničkyčh bankovníčh systemu v sedmdesatíčh letečh byly jedním z hlavníčh faktoru pro rozhodnutí exekutivy Spojenyčh stítu američkíčh na zajistení standardu pro bezpeční a spolehliví transfer dat Federalní banky a ostatníčh bank. Bylo tedy potreba zajistitit očhranu dat jak v počítačíčh zpračov^vaníčh a tamtez uklúdanúčh, tak i dat počítači preníseníčh. Soutez na tvorbu sifrovačího algoritmu vyhlasilo ministerstvo občhodu Spojenyčh statu američkíčh v roče 1973. Organizoval ji National Bureau of Standards (NBS). Pozadovaním vlastnostem vsak nevyhovel zadní ze zaslaníčh algoritmu - zíkladní idea byla, ze sifrovačí pročes by melo bít mozno provídet na malem čipu. Dusledkem pak by byla masoví víroba tečhto čipu, jejičhz pouzití by zajist'ovalo naprostou bezpečnost transferu dat. Pritom síam algoritmus mel byít bezpečníy, počhopitelnyí, dostupnyí, vyíkonnyí, jeho bezpečnost nemela zaviset na utajení algoritmu, vhodní pro nejruznejsí aplikače a ekonomičkí pri elektroničke realizači - tj. čip by mel bít levní. V srpnu 1974 byla vízva opakovína. Tentokrat se algoritmus podarilo nalezt. Bylo akčeptovano sifrovačí sčhema navrzene firmou IBM. Její 193 194 KAPITOLA S. sIFROVY STANDARD DES A JEHO KOLEGOVE vízkumní tím pod vedením dr. Tučhmana jej zalozil na zdokonalení sifrovačího algoritmu LUCIFER, kterí IBM pouzívala pro sve potreby. Na rozdíl od algoritmu LUCIFER, jez pouzíval klíč o delče 128 bitu, delka klíče navrzena pro NBS byla 64 bitu a z toho bylo 8 bitu odstraneno hned na začatku sifrovíní. NBS, IBM a NSA (National Sečurity Agenčy) se dohodly, ze NSA provede ohodnočení bezpečnosti DES (Data Enčryption Standars), jak byl pozdeji noví algoritmus nazvan, a IBM umozní jeho bezplatne vyuzívaní na uzemí Spojenyčh statu ámeřičkýčh. DES byl patentovan 24.2. 1975 a v breznu tehoz roku byl zverejnen pro vseobečne verejne hodnočení. Přes nektere víhrady byl 23.11. 1976 přijat jako federální standard a jako takoví zveřejnen 15.1. 1977. Algoritmus byl určen pro očhranu neutájováných dat v čivilním sektoru i vlídníčh institučí vyjma ozbřojeníčh slozek, kde nemohl bít pouzíván ani k očhrame neutájovánýčh dat. Předpokládaná doba pouzití byla 10-15 let. Algoritmus mel bít po svem přijetí v roče 1977 kazdíčh pet let hodnočen a jeho platnost potvrzována NBS. V roče 1984 zahájila NSA program Commercial COMSEC Endorsement Program (CCEP), určeny pro zábezpečovýní očhramy vládníčh informačí, v řámči nehoz melo bít pripraveno i náhřázovýní DES. Byly vyvinuty hářdwařove bezpečnostní moduly, přovídejíčí sifrove algoritmy navrzene pro tentokrát NSA. Tyto algoritmy byly typu 1 a typu 2. První byl určen pro utajovane vládní informače a druhy pro neutajovane vládní informače (mel nahradit DES). Pozdeji byla aplikače zařízení s algoritmem typu 2 řozsířena i na soukromyí sektor. Po 1.1. 1988 nemela uz NSA v umyslu doporučovat DES pro vládní pouzití. Bylo vsak zjisteno, ze by to zpusobilo značne potíze v bankovním sektoru. DES byl v teto dobe uz masove pouzíván v nejřuznejsíčh zařízeníčh včetne mezinárodního bankovního spojení. To vedlo ministerstvo občhodu USA ke zmírnení stanoviska NSA. V lednu 1988 NBS znovu potvrdil moznost pouzívat DES v dalsíčh 5 letečh, avsak ne pro fedeřílní nefinanční pouzití. Ve federálníčh nefinančníčh institučíčh musel byt DES nahrazován algoritmy vyvinutyími NSA v ríamči CCEP. Algoritmy jsou utajovíny a nesmí bít exportovány ze Spojeníčh stítu ámeřičkýčh. Cipy, ktere je realizují, mají očhřánní kryt. Vyrobči produktu musí při jejičh vírobe dodřzovat zvlástní postup, stanovení NSA. Tato opatření na očhranu novyčh algoritmu přinásejí do čele končepče jejičh vyuzívání velke rozpory. Jejičh 2. POPIS SIFRO V A CIHO ALGORITMU DES 195 softwarova implementace by nebyla schvalena, protoze by zde nemohla být zajistena ochrana algoritmu pred jeho odhalením. Pritom v mnoha aplikacích je softwarová implementace nezbytna. Otázkou zustávají i mezinárodní spoje, kde se predpokláda vyvoz techto zarázení. Je pravdepodobne, ze dnes je uz povolen prísne regulovany vývoz, i kdyz algoritmy zustavají nadale utajeny. Vzhledem k tomu, ze uvedený obranna opatrení fungují velmi dobre, o zarízeních nevíme temer nic, dokonce neznáme, ani jejich výkonove charakteristiky. Take není dosud nic znamo o rozhodnutí, které melo být prijato NBS v unoru r. 1993, tykajícím se dalsího existence DES ve financním sektoru pro leta 1993-1997. DES se od roku 1977 stal nejrozsírenejsím kryptografickým systémem ve svete. Je vseobecným nastrojeni bezpecnosti ve verejnem i soukromem sektoru. Ve financním sektoru se pouzívá k ochrane vsech aspektu sít'ove komunikace a autentizace a de facto se stal mezinarodním standardem. Je vclenen do maloobchodních 1 velkoobchodních systému, je prístupný v nedrahem hardwaru a jako volný software. Pouze ve Spojenych statech americkych vývoz hardwaru i softwaru s DES dosud podleha kontrole. DES je dostupný ve vsech mozných formách: ve forme cipu, zásuvkových modulu do PC nebo celých sifrovacích jednotek. Jsou k dispozici oficialní programy pro softwarovou realizaci a pro kontrolu spravnosti jeho realizace v zarízeních. Standardizaci na bazi DES podporuje pet nejvetsích standardizacních organizací: ABA, ANSI, GSA, ISO a NBS. Standardy NBS jsou pouzívány jako zaklad standardu dalsích organizací. DES se pouzíva pro sifrovaní PIN (Personal Identification Number) v ruzných druzích platebních, prístupovych aj. karet. Take v nekolika americkych vladních organizacích vytvarí DES základní mechanismus ochrany (ministerstvo ekonomiky, ministerstvo spravedlnosti). V USA na bázi DES vznikl kryptograficky prumysl. Je proto pravdepodobne, ze výroba a zavadení DES budou nadale pokracovat. 2 Popis sifrovacího algoritmů DES DES patrí do trídy blokových sifer. Otevrený text (OT) je rozdelen na bloky po 64 bitech. Kazdý z techto bloku M otevreneho textu je jako celek zpracováván na blok C sifroveho textu (ST) take o delce 64 bitu. Píseme jako obvykle C = Ek (M), M = Dk (C), 196 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE kde K je klíc o delce 56 bitu (vznikne z osmibajtoveho klícoveho slova vynechaním jeho paritních bitu). Zpracovíní bloku M probíha v 16 krocích. V kazdem z nich je z klícce K vybrano podle urciteho postupu 48 bitu tvorících pracovní klícc Kj. Vlastní blokoví algoritmus pri sifrovaní zpracovíva blok M tak, ze M je nejprve podroben počitečni permutaci IP, ktera permutuje vsech 64 bitu, a pote je rozdelen na pravou polovinu R0 a levou polovinu L0, kazdí o 32 bitech. Pak probíhí 16 totozních kroku, kdy je z dvojice (Lj, Rj) za ucasti pracovního klíce Kj vytvorena dvojice (Lj+1, Rj+1), i = 0,1,..., 15. Rj je nejprve rozsíren z 32 bitu na 48 bitu prostrednictvím expanze E tak, ze E (Rj) = E (r1,r2,...,rs1,rs2) (2.1) = (r32 ,r1,r2,r3,r4,r5,r4,r5,r6,r7,r8,rg,... ,r28,r29,r30, r31, r32, r1), a k vísledku je v modulu 2 tj. bit po bitu precten klícc Kj. Vístup E(Rj) © Kj je rozdelen do osmi castí po 6 bitech, ktere prochízejí pres substitucní boxy S1 az S8. Tyto S-boxy jsou v podstate pametí ROM 6x4 bity a vístup je tedy celkem 8x4=32-bitoví. Vetsinou se tyto boxy popisují i zadavají tak, ze krajní bity vstupu (1. a 6. bit) vybírají jeden ze ctyr mozních boxu 4x4 bity a vístup techto boxu se uvídí v tabulce. Pritom se jejich vstupní i vystupní 4-bitoví hodnota pro jednoduchost zapisuje dekadicky jako 0 az 15. Jsou to permutace na mnozine {0,1,..., 15}. Vystup z S-boxu, tj. 8x4=32 bity, je upraven permutaci P (32 na 32 bitu). Vznikle 32-bitove slovo je oznacovíno f (Rj, Kj), nebot' je funkcí klícce Kj a slova Rj. Poslední operace v i-tíem kroku je Lj+1 = Rj Rj+1 = Lj © f (Rj, Kj). (2.2) Po probehnutí 16. kroku je provedena zamena L16 a R16 a 64-bitoví blok (R16, L16) je permutovan permutaci IP-1 (permutací inverzní k IP). Vysledek je jiz C = EK(M). 2. POPIS SIFRO V A CIHO ALGORITMU DES 197 Tvorba pracovních klícu Kí probíhí pri sifrovaní tak, ze klíc K o 56 bitech je podroben permutaci PC 1 a pote je naplnen do dvou 28-bitovych registru, C a D. Obsah registru C, D je v kazdem kroku i, i = 0,1,... , 15 cyklicky posunut doleva o pí bitu (posun pí je v krocích 0, 1, 8 a 15 jednobitovíy a ve zbyívajících dvoubitoví) a jejich vísledne 56-bitove zretezení je podrobeno permutacnímu vyberu PC2. PC2 svuj vstup 56 bitu nejen permutuje, ale i redukuje na 48 bitu vynechaním nekterych bitu. Vístup z PC2 uz tvorí pracovní klícc Kí. Klícce Kí lze vytvaret bud' soubezne se zpracovíním otevreneho textu nebo predem. l98 KAPITOLA S. ŘIFROVY STANDARD DES A JEHO KOLEGOVE Postup formovaní klíču K je takoví, ze v uvedemíčh 16x48=768 bitečh je kazdí bit klíče K obsazen 12 az 15 a objevuje se na rázníčh pozičíčh. Tímto je popis sifrovačí časti blokoveho algoritmu uzavřen. Filozofie algoritmu je takova, aby pri desifrovaní nemuselo bít pouzito zčela jine hardwarove sčhema. Desifrovaní M = DK(C) probíhí stejmím postupem jako sifrovíní! Pouze poradí vyberu klíču K je obračene - místo K0, K1, ..., K15 se pouzíví poradí K15, K14, ..., K2, K1, K0. Vytvaríme-li klíče postupne, pak ve víse uvedenem popisu se místo SHL musí pouzít SHR a tabulka posunu (0,1, 2, 2, 2, 2, 2, 2,1, 2, 2, 2, 2, 2, 2,1), jinak zustane vse začhovíno. Tento prinčip zpračovaní (Li,Ri) na se nazýví FeistelUv princip podle dr. Horsta Feistela, kryptologa IBM a vynalezče sifrovačího algoritmu LUCIFER. 2. POPIS SSIFROVACÉIHO ALGORITMU DES 199 Tábůlká permůtáčí IP PC1 PC2 P IP PC1 PC2 P 1 58 57 14 16 22 22 19 20 27 2 50 49 17 7 23 14 11 13 3 3 42 41 11 20 24 6 3 2 9 4 34 33 24 21 25 64 69 41 19 5 26 25 1 29 26 56 52 52 13 6 18 17 5 12 27 48 44 31 30 7 10 9 3 28 28 40 36 37 6 8 2 1 28 17 29 32 63 47 22 9 60 58 15 1 30 24 55 55 11 10 52 50 6 15 31 16 47 30 4 11 44 42 21 23 32 8 39 40 25 12 36 34 10 26 33 57 31 51 13 28 26 23 5 34 49 23 45 14 20 18 19 18 35 41 15 33 15 12 10 12 31 36 33 7 48 16 4 2 4 10 37 25 62 44 17 62 59 26 2 38 17 54 49 18 54 51 8 8 39 9 46 39 19 46 43 16 24 40 1 38 56 20 38 35 7 14 41 59 30 34 21 30 27 27 32 42 51 22 53 IP PC1 PC2 43 43 14 46 44 35 6 42 45 27 61 50 46 19 53 36 47 11 45 29 48 3 37 32 49 61 29 50 53 21 51 45 13 52 37 5 53 29 28 54 21 20 55 13 12 56 5 4 57 63 58 55 59 47 60 39 61 31 62 23 63 15 64 7 2QQ KAPITOLA S. sIFROVY STANDARD DES A JEHO KOLEGOVE S-box Sl (X2, X3, X4, X5) xi O l 2 s 4 5 e T s Q lO ll l2 ls l4 15 O O 14 4 13 1 2 15 11 S 3 10 G 12 5 Q 0 ľ O l 0 15 ľ 4 14 2 13 1 10 G 12 11 Q 5 3 S 1 O 4 1 14 S 13 G 2 11 15 12 Q ľ 3 10 S 0 1 l 16 12 S 2 4 Q 1 ľ 5 11 3 14 10 0 G 13 S-box S2 (X2, X3, X4, X5) Xi O l 2 s 4 5 e T s Q lO ll l2 ls l4 15 O O 15 1 S 14 G 11 3 4 Q ľ 2 13 12 0 S 10 O l 3 13 4 ľ 1S 2 S 14 12 0 1 10 G Q 11 5 1 O 0 14 ľ 11 10 4 13 1 S S 12 G Q 3 2 15 1 l 13 S 10 1 3 1S 4 2 11 G ľ 12 0 S 14 Q S-box Ss (X2, X3, X4, X5) Xi X6 O l 2 s 4 5 e T s Q lO ll l2 ls l4 l5 O O 10 0 Q 14 G 3 1S 5 1 13 12 ľ 11 4 2 S O l 13 ľ 0 Q 3 4 G 10 2 S S 14 12 11 1S 1 l O 13 G 4 Q S 1S 3 0 11 1 2 12 S 10 14 ľ l l 1 10 13 0 G Q S ľ 4 1S 14 3 11 S 2 12 2. POPIS SIFROVACIHO ALGORITMU DES 201 S-box S4 (X2, X3, X4, X5) xi 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 0 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 1 0 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 1 1 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S-boX S5 (X2, X3, X4, X5) Xi X6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 0 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 1 0 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 1 1 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S-boX S6 (X2, X3, X4, X5) Xi X6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 0 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 1 0 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 1 1 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 202 KAPITOLA S. Í~>IFROVY STANDARD DES A JEHO KOLEGOVE S-box ST (X2, X3, X4, X5) xi O l 2 s 4 5 6 T S 9 lO ll l2 ls l4 15 O O 4 ll 2 l4 15 O S 1S S l2 Q ľ 5 lO G 1 O l 1S O ll ľ 4 Q l lO l4 S 5 l2 2 lS S G 1 O 1 ll 4 lS l2 S ľ l4 lO 15 G S O S Q 2 1 l G ll lS S l 4 lO ľ Q 5 O 15 l4 2 S 12 S-box SS (X2, X3, X4, X5) xi X6 O l 2 s 4 5 6 T S 9 lO ll l2 ls l4 15 O O 1S 2 S 4 G 15 11 1 lO Q S l4 5 O l2 ľ O l 1 lS S lO S ľ4 l2 5 G ll O l4 Q 2 1 O ľ ll 4 l Q l2 l4 2 O G lO lS lS S S S 1 l 2 l l4 ľ 4 lO S 1S 15 l2 Q O S S G 11 Vlastnosti DES Cílem pocatecní permutace IP je provest rožprostrení vlivu bitu ž jednech bajtu otevreneho textu M do ostatních. Permutace IP-1 je žde proto, aby se v desifrovacím procesu napravil ýcinek IP. Kryptograficky je tato permutace nevýžnamna a v rožborech je žanedbývana. Skutecne, pri utoku se žnalostí otevreneho textu M, tj. pri žnalosti odpovídajících si dvojic M otevreneho textu a C sifroveho textu, si vliv permutace IP na otevreny i sifrový text snadno eliminujeme. Uvažujeme-li IP-1(M) a IP (C), je to totež, jako by schema tyto permutace vubec neobsahovalo. Take žaverecna výmena slov L a R je žde jen proto, aby desifrovací proces byl shodny se sifrovacím, tj. pro možnost žahajení rekonstrukce predchožích dvojic (L,R) ž nasledujících. 2. POPIS SIFROVACIHO ALGORITMU DES 203 Základem sčhematu je transformače f, která vytvárá tzv. substitučne-permutačná sát'. V podstate se skládá ze substituče (S-boxy) a permutače P a zároven zajist'uje vliv kláče na pročes zpračováná otevreneho textu. Kláč je na promenne R načŕtán v modulu 2 jako heslo na otevrená text u Vernamovy sifry, permutače P náam pňripomáínáa historičkáe transpoziňčnáí systáemy a S-boxy substituňčnáí systáemy. DES je pak jejičh souňčinováa ňsifra. DES jako čelek je substituční systemem, pračujíčím se slovy delky 64 bitu. Je to tedy kódová kniha, která má 264 kádováčh várazu, nebot' to je počet vsečh moznáčh otevrenáčh textu. Kodove várazy se nevyhledávajá, ale na záakladňe znalosti kláňče se vypoňčátáavajá. Ten, kdo neznáa kláňč, by mňel báyt postaven pňred neňreňsitelnou uálohu dekiodovianii. Cálem algoritmu je, aby v uvedenáe káodováe knize neexistovala jináa skrytaá souvislost mezi kláňčem K, otevňrenyám textem M a ňsifrovyám textem C, kteraá by byla vyuňzitelnáa k luňstňená. Jednou z vlastnostá DESu, kteráa se rovnňeňz statističky testovala, je vliv zmňeny jednoho bitu v otevňrenáem textu M (resp. v kláči K), aby pravdepodobnost zmeny kazdeho bitu sifroveho textu C byla asi 50%. Támto bude mj. zaručeno, ze sifrove várazy odpovídajíčí dvema málo se lisíčím otevrenym textu budou naprosto odliňsnáe. Podobnňe to je i s poňzadavkem vlivu kláňče na ňsifrováy text. Dáale se poňzadovalo, aby neexistovala ňzáadnaá korelače mezi otevňrenyám textem M a ňsifrovyám textem C a mezi ňsifrovyám textem C a kláňčem K. Tyto vlastnosti byly statističky potvrzeny a testovaány. Váybňerováe statističkáe testy pak mohou potvrdit jen nňekteráe vlastnosti, ale nemohou vylouňčit nekoneňčnňe mnoho dalňsáčh. To se táykáa napňráklad vlastnosti komplementaárnosti, kterou budeme diskutovat daále. Jak na ni maáme pňriját statističkáymi testy, kdyz neváme, ze vubeč existuje? Dalňsámi poňzadovanáymi vlastnostmi jsou konfuáze a difuáze. Jednáa se o to, aby mňel kaňzdyá bit kláňče K a otevňrenáeho textu M vliv na kaňzdáy bit ňsifrováeho textu C a aby tento vliv byl velmi komplikovanáy. Na sloňzitost zde pak majá nejvňetňsá vliv S-boxy. Kaňzdyá vyástupná bit S-boxu je nelineáarná funkčá vňsečh vstupnáčh bitu (pri vyjádrem operačemi 0 a a). V prápade, ze by S-boxy realizovaly lineárná funkči, čele sčhema by realizovalo pouze lineárná funkči. Potom by ovsem vsečh 64 bitu sifroveho textu C bylo jen ruznymi lineárnámi kombinačemi bitu otevreneho textu M a kláče K. Ale takoveto sčhema byčhom mohli okamzite rozluňstit ňreňsenám soustavy lineáarnáčh rovnič. Nelineáarnám vlastnostem se pňri studiu DES vňenovala velkáa pozornost, nebot' zajisťujá pozadovanou konfuzi. Bohuzel, kriteria návrhu S-boxu zustávajá doposud tajná a 204 KAPITOLA S. SCIFROVYI STANDARD DES A JEHO KOLEGOVEI pritom praíve zde bylo nalezeno mnoho slabin. RěZimy cinnosti DES U DES byly stanoveny 4 zíkladní mody činnosti, které byly odvozeny od raznyčh potréb. Zakladem je vlastní blokovy algoritmus, tj. zobrazení EK : X — X, kde X = {0,2,..^ 64} je mnozina vsečh 64-bitovíčh bloku. Tento algoritmus je zíroven prvním modem. 1. ECB - Elektronička kídoví kniha, píseme C = EK(M), kde M je otevréní text a C je sifroví text. Jednaí se skuteňčnňe o kíodovou knihu, nebot' pňri opakovanyíčh bločííčh otevňreníeho textu M jsou ňsifrovíe zpríavy C stejníe. Proto by bylo moňzníe pňri ňsifrovíaníí zpraív tíímto míodem z operativnííčh informačíí domyíňslet ňčaíst zaňsifrovaníeho obsahu bez nutnosti jejičh luňstňeníí. Formalizovaníe ňčíasti zpraív by bylo moňzníe opakovat v zaňsifrovaníem tvaru (platebníí pňrííkazy, standardníí hlíaňseníí). Proto se tento míod nepouňzíívía k sifrovaní zprav, ale jen k sifrovaní klíču. 2. CBC - Zretezeníí sifrovíeho textu, symboličky zapsaíno jako C„ = Ek(M„ 0 Cn_1), (2.3) kde (Mn)n je system bloku otevreneho textu. Tento míd vyuzíva vístup z jednoho kroku sifrovaní k modifikači noveho vstupu, takze kazdí blok Cn sifroveho textu je zavislí nejen na príve sifrovanem bloku Mn otevreneho textu, ale i na vsečh predčhozíčh bločíčh otevreneho textu a sifroveho textu. 3. CFB - Zpetna vazba ze sifroveho textu, píseme C„ = M„ 0 Ek(In), (2.4) kde In je vstupní registr posunuty o k bitu doleva a doplnení zprava k bity Cn-1. Pritom Mn je proud k—bitovyčh znaku otevreneho textu. Je to mod vhodní tam, kde se data zpračovívají po značíčh nebo po častečh mensíčh nez 64 bitu. Zpetna vazba je vedena ze sifroveho textu, ale jen v delče k 3. KRITIKA SIFROVEHO STANDARDU 205 bitu, pričemz u vístupu z blokoveho algoritmu je vyuzívano take jen k bitu. Je to system podobní proudove sifre, avsak začhovúvajíčí vlastnost zavislosti sifroveho textu na predčhozím otevrenem textu a sifrovem textu. 4. OFB - Zpetna vazba z vístupu, symboličky zapsano jako H = Ek(J„), C„ = M„ 0 Hn, (2.5) kde Jn je vstupní registr posunutí o k bitu doleva a doplneny zprava k bity Mn je proud k- bitovyčh znaku otevreneho textu a Hn je vytvorení proud hesla. Tento míd pračuje podobne jako Vernamova ssifra, pouze zdroj hesla není nahodmí. Mod byl navrzen pro potreby, kdy je nezadoučí, aby se čhyby vznikle na komunikačním kanílu rozsirovaly pusobením sifroveho algoritmu do otevreneho textu. Jde napríklad o prenosy dat s vysokou ryčhlostí a redundančí (^dovaní reč, videosignal, satelitní spoje aj.). Poznamenejme, ze u modu CBC, CBF a OFB je nutne vstupná registr nejprve na začítku naplnit nejakou hodnotou. Ta se nazíví inicializační vektor a odesíla se vetsinou na začítku zpravy. 3 Kritika Šifrového standardů PříliS kratký klíč Prvními velkími kritiky navrhu DES se stali Diffie a Hellman ze Stanfordske univerzity. Ve svem dopise NBS nejvíče kritizovali maly objem klíčče - 56 bitu. Poukazovali na to, ze nehlede na jiny mozní utok k rozbití DES postačí pouhe zkousení mozníčh klíču. To muze provadet kdokoli, kdykoli a se zaručením uspečhem. Dokazovali, ze to bylo mozne i s tehdejsí tečhnologií (1975). Uvazovali o sestrojení spečiílního stroje, kterí by pro danou dvojiči otevrení text M a sifroví klíč C hledal pouzití klíč vyzkousením vsečh jeho mozností. 2Q6 KAPITOLA S. sIFROVY STANDARD DES A JEHO KOLEGOVE V dobe kritiky, tj. v říjnu 1975, odhadovali, ze by s tímto strojem vylustili zajeden den jednu takovou ulohu za čenu 10 000 $. Spečiální stroj by potřeboval vyzkouset 256 tj. čča. 1017 klíču zajeden den, čoz je přiblizne 1012 klíču za sekundu. Při čene 10 $ za čip by tento stroj stál 20 000 000 $ (10 000 000 $ na čipy a zbytek na ostatní náklady). Při uplnem odepsání stroje za 5 let by tak denní provoz stál 10 000 $. Ve skutečnosti se s padesátipřočentní pravdepodobností narazí na správny klíč uz po vyzkousení poloviny klíču. To by hledání klíče dvakrít zryčhlilo a tím i o polovinu snízilo náklady. Dále argumentovali tím, ze behem 5 let se čena tečhnologie snízí v prameni 10-krát, a proto by za 10 let tento stroj stál pouze 200 000 $. Přitom si v odhadu nedelali nárok na přesnost v rozmezí jednoho řádu! Doporučovali řozsířit klíč na 128 nebo 256 bitu nebo sifrovat víčkrát za sebou s pouzitím nezývislých klíču, tedy sifroví text C = EKl (Ek2 (...£*„ (M)...)). Pracovní konference NBS NBS reagoval na jejičh argumenty svolaíníím pračovníí konferenče, ktería se konala 30.-31. srpna 1976 a byla zameřena na to, zda predpovedi a tvrzení Diffieho a Hellmana jsou realističke. Záver z konferenče byl, ze tehdejsíí tečhnologiíí by jejičh stroj nebylo mozníe sestrojit, a pokud se ho sestrojit podaríí, nebude to drííve nez po roče 1990 (a to asi za 72 000 000 $). Proti zvetseníí klííče bylo argumentovíano tíím, ze by to vedlo k prodrázení čipu, horsím podmínkím vívozu a ze to není nezbytne ani pro zámýSlene aplikače, ani pro uvazovanou zivotnost sčhematu (10-15 let). Diffie a Hellman na to odpovedeli článkem Exhaustive Cryptoanalysis of the NBS Data Encryption Standard (1977), v nemz vyčerpávajíčím zpusobem a podlozeními argumenty dokazovali, ze jejičh odhady jsou správne (dnes víme, ze meli pravdu). Mezitím i interní studie IBM odhadla, ze by takoví stroj mohl bít sestrojen do roku 1981 a za čenu 200 000 000 $, tedy v ríamči jejičh toleranče. 3. KRITIKA SIFROVEHO STANDARDU 207 Komplementarnost a pracovní bloky Protoze Diffie, Hellman a dalsích pet jejich kolegu nesouhlasili s tím, ze IBM a NSA utajují vísledky sveho zkoumíní bezpecnosti DES a navrhova kriteria, zorganizovali behem srpna 1976 vlastní kratke studium DESu Results of an initial attempt to cryptoanalyze the NBS Data Encryption Standard (1976). Z neho vyplynuly dalsí zavazne slabosti DES: vlastnost komplementírnosti, urcite pravidelnosti v S-boxech a jejich dostatecna nelinearita. Poukazovali na to, ze verejny standard by mel mít i verejna navrhoví kriteria. V opacnem prípade to budí neduveru. Tem, kdo navrhova kriteria znají, umoznuje vyuzít jejich slabosti k lustení, a jsou tedy proti ostatním zvíhodneni. Mohlo by jít bud' o osoby, ktere se k temto tajním informacím dostanou neopravnene (napr. cizí tajne sluzby), nebo o samotne ochrínce (IBM, NSA). To by u verejneho standardu nemelo bít. Ucastníci studia se domnívali, ze NSA si ve skutecnosti nepreje silny standard, aby jej mohla snadneji lustit. Nesouhlasili s tím, ze by DES mel bít odolní jen proti luštěni se znalosti otevčeneho textu, coz NBS do pozadavku dal, ale i proti luštěni s možnosti, volby otevčeneho textu, coz puvodne pozadovano nebylo. Drůha konference NBS Nato NBS zorganizoval pracovní setkaní matematiku v zarí 1976 k analíze kvality DES a moznosti, ze by mohl obsahovat trojského kone (Report of the workshop on cryptography on support of computer security). Prestoze jiní ucastníci na ruzne nedostatky take upozomovali, fakticky nebyla predlozena zídní konkrétní metoda na jejich príme vyuzití. Predstavitel IBM na konferenci k problemu trojského kone dokonce prohlasil: Músíte nam d úverovat, my vsichni jsme dobrí skaúti. Take NBS a NSA prohlísily, ze neznají zadne metody, jak vyuzít objevene kvazilinearity. Bezprostredne po skoncení konferencí se NBS rozhodl ponechat DES beze zmen. Toto rozhodnutí zpusobil zejmena tlak prumyslu, kterí uz potreboval konecní verdikt, aby mohl vyríbet cipy. Zmeny v DES by tento proces nejmene o rok oddílily. Afera kolem utajovaní vsak zanechala na NSA nesmazatelní stín podezrení. Zvlaste kdyz vysetrovací komise Senatu USA potvrdila, ze NSA presvedcila IBM o vhodnosti redukce delky klícce. Puvodne totiz IBM pro sve potreby pouzívala 128-bitoví klícc. 208 KAPITOLA 8. sIFROVY STANDARD DES A JEHO KOLEGOVE V roče 1978 prohlaísil Davis na podporu DES naísledujíčí: Kazdí, kdo si zakoupí kryptografické zarízení pracující na základě DES, může bít ujištěn o specifické Úrovni bezpečnosti dat: totiž je potreba pouzít 255 pokusu a metodu proverení vsech možností,, aby bylo mozno získat klíc pro pouzity šifrovací, algoritmus. 3. KRITIKA SIFROVEHO STANDARDU 209 Komplementarnost Objevenía vlastnost komplementaírnosti spoScívaí v tom, Sze ze vztahu C = E k (M) plyne non C — Enon k (non M), (3.1) kde non oznaScuje negaci bit po bitu. To je pravidelnost, ktería by se v takovíemto pSrípadSe rozhodnSe nemSela objevit. Autori rozboru její odhalení povazovali diplomaticky receno za velmi znepokojující. Tvurcum schýmatu tato vlastnost pravdSepodobnSe unikla. Je umoSznSena tíím, Sze negace klííSce i vstupu se pSri jejich souSctu mod 2 ve funkci f zrusí: f (R, K) = f (non R, non K). (3.2) Totiz oznacíme-li R0 = non R0, Ľ0 = non L0 a sifrujeme-li zpravu M' = (L'0,R'0) klícem K' = non K obdrzíme postupne: M' = non M, platí-li, ze (Li,Ri) = non (Li,R), je i (Li+1,Ri+1) = non (Li+1,R+1Ž), protoze (Li+1, Ri+1) = (Ri, Li 0 f (Ri, K')) = (non Ri, (non Li) 0 f (non Ri, non Ki)) = (non Ri, (non Li) 0 f (Ri, K i)) = (non Ri, non Ri+1) = non (Li+1,R+1Í). Specialne tedy (L/16,R/16) = non (L16,R16) tj. non Ek(M) = Enon K(non M). To se daí pak vyuSzít i k luSstSení v pSrípadSe, Sze hledaíme klíSc K a maíme k dispozici dvojice (M, C1) a (non M, C2), kteríe vznikly pSri Ssifrovaíní tímto nezníamyím klíScem. Proved'me zasifrování Ek(M). Není-li tento výraz roven C1, vylucujeme klícc K. Kdyby byl pri sifrování non M pouSzít klíSc non K, obdrSzeli bychom C2 = Enon k (non M) = non Ek (M). (3.3) Nejsou-li si oba krajní vyrazy, které máme k dispozici, rovny, muzeme vyloucit i klíc non K. Tím jsme nahradili jedno sifrovaní (klícem non K) za pohá porovnavaní výrazu, coz je proti sifrovaní casove zanedbatelne. Prostor klícu je tedy de facto polovicní a hledání 2-krat rychlejsí. 210 KAPITOLA S. SCIFROVYI STANDARD DES A JEHO KOLEGOVEI Vlastnost komplementarity by navíc mohla ve spatne navrzeních protokolech zpusobit i nezadoucí odhalení chraneních informací. Pri vsech mozních aplikacích na ni musí byt davan pozor. Je smutne, ze mnozí kryptologove (zejmena z NBS) tuto vlastnost nepovazují za podstatnou. Ostatne v oficiílním popisu DES vypracovanem NBS se take tvrdí ze klícc je 64-bitoví. Rozhodne nejde o chybu, ale o vytvorení dojmu, ze tomu tak je. S dobrími skauty tedy není asi vsechno v poradku. Nevhodný návrh S-boxů Krome tajních navrhovych kriterií, ktera mohla obsahovat dalsí skryte vady, v studiu bylo poukazíno na velkou korelovanost a nedostatecnou nelinearitu vístupních bitu S-boxu. Napríklad box S4 mí petasedmdesati-procentní nadbytecnost. S-box S4 (xi, x6) (X2, x3, x4, x5) 0 0 0 1 1 0 l l o o o o o l l l l l o l l o l o o o l l o o o l l l o l l o o o o l l o l l l l o o l o l l l o l o l l l o o l o o o o o o l l o o l l o l o l o o o o o l l o o l o o o o o o o l l o l l o o l o l o o l o l o l l o l l l l l o l l o o o o o l l o l o o l o o o o o l l l l l o l o l l l l o l o o o l l l l o l l o o o l o o o T~ o o l ~o~ ~T~ o o l l l l T~ o o l l o o l o o l o o l l l o o o l o l o o l o l o l o o o o o l o o o l l o l o l l o o l o l o l l l o o l l l o l o l l l l o o l o l l o o o l o l o l l l o o l l o l l l o o l o l o o o l o o l l l l l l o o l o o l l l o l o o o o o l o l l l l l l l l l o o l o l o l l l l o 3. KRITIKA SIFROVEHO STANDARDU 211 Jeho 4 menší boxy 4x4 (při hodnotách krajních bitů x^6 = 00, 01,10,11) jsou snadno odvoditelné pouze od prvního z nich (00). Platí dokonce vztah S4(x 0 000001) = (12)(34)S4(x) © (x6, non x6, non x6,x6), (3.4) kde x = (x1,x2,x3,x4,x5,x6) je vstup a symbolicky zapis (1,2) znamená výmenu 1. a 2. bitu. Oznacíme-li y = y2,y3,y4) jako výstup, vyplývá odud, ze soucet (y1 © y2) je na x6 zavislý pouze lineárne a (y1 © y2 © y3 © y4) na nem nezávisí vubec. Takova pravdepodobnost je nežádoucí. Slabe a poloslabe klíče Hodne pozornosti bylo venovano studiu klícu. Budou-li registry C a D na pocatku obsahovat konstantní bity (bud' nuly nebo jednicky), pak je operace SHL a PC2 je nijak nezmení a klícce K si budou rovny. Tím nastane i nezadoucí rovnost EK = DK. Celkem existují 4 tyto klícce (podle toho, zda registry C nebo D obsahují nuly nebo jednicky). Podobnou vlastnost ma 6 dvojic tzv. poloslabách klícu K1 a K2, pro nez platí EKl EK2 = Id neboli EKl = DK2. Ty vznikají tak, ze jejich klícce jsou shodne, ale v opacnem poradí jejich pouzití. Tím vznika efekt, ze pri sifrovaní druhym klíccem probíha postupne desifrování klíccem prvním. To nastane napr. u teto dvojice klíccu (01FE 01FE 01FE 01FE,FE 01FE 01FE 01FE 01). Pozdeji bylo identifikovano mnoho dalsích tríd ruzne slabých klícu. Hellmanův časopameťový útok Váchodisko k lustení lze nalezt i v efektivním vyuzití casu a pameti. Vychazí se ze znalosti konkretního otevreneho textu, která se velmi casto objevuje ve zpravach, napr. osm za sebou jdoucích mezer. Pri zachycení jemu odpovídajícímu sifroveho textu muzeme klícc lustit vyzkousením vsech jeho mozností (cas t=256 2l2 KAPITOLA S. ŠIFROVY STANDARD DES A JEHO KOLEGOVE ňsifrovaáná, pamňet' m=1 slovo) nebo tám, ňze si pňredem pňripraváme tabulku vňsečh moňznyáčh dvojič (kláňč, ňsifrovyá text) (čas t=1, pamet' m=256 slov) a porovnánmi sifroveho textu. V obou prápadečh je čelková spotreba casopameti t-m=256 - spotrebu času lze prelít do pameti a naopak. Hellman v roče 1980 prisel na to, jak část tabulky vypočítat predem a ve velmi zhustene podobe ji ulozit do pameti. Lustení potom probíhá částečne jako sifrování a částečne jako porovnávání. Pri optimalizači pozadavku na čas, pamet' a čenu dospel k návrhu, která zahrnoval 10 000 DES čipu, pamet' 1000 GB a prípravne vypočty tabulek trvajíčí 1 az 2 roky. To vse v čene asi 3,6 milionu $. S temito prostredky byl sčhopen určit az 1000 klíču denne (v dusledku paralelismu) s prumernym čekánám na resená 1 den. Pri plne amortizači ža^žem do 5 let by čena za vylustená jednoho kláíče byla 1-100 $. Neváyhoda Hellmanova uátoku spočáíváa v tom, ze vse se počáítáa pro konkráetnáí otevrenyá text. Pro jinyá otevrenyá text musáíme vsečhny predbeznáe váypočty prováest znovu. Další zajímave vlastnosti DES Pri studiu DES do r. 1990 bylo popsáano nekolik dalsáíčh vlastnostáí DES. Zminme se o odhalenáí kratsáí periody v jednom z modu činnosti DES. Pri vazbe k = 64 u OFB je prumerná delka čyklu produkovaneho hesla priblizne 263 bloku, avsak pri jine delče k je pouze kolem 231 bloku! Toto mnozství hesla pri ryčhlosti sifrování 216 bitu za sekundu (napr. pro digitalizovanou reč) je vyčerpáno asi za 18 hodin! Pote by doslo k dvojímu pouňzitáí hesla, čoňz je pro luňstitele znáamaá a jednodučhaá uáloha. Musáí byát proto pouňzáívanáa pouze plnaá vazba k = 64, pri ktere je prumerná delka periody hesla dostatečná. Mnohonýsobne poůzití DES K odstranňenáí nedostatku maláeho objemu kláíňče bylo doporuňčováano nňekolikanáasobnáe ňsifrovaánáí DES. Pňri dvojnaá-sobnem sifrování algoritmem DES s pouzitím dvou ruznáčh klíču, tj. C = Ek2 (EKl (M)) (3.5) by kláč vzrostl na 112 bitu, čoz se zdá bát dostatečne. Avsak byla nalezena tečhnika, která by de fačto redukovala kláč na pouháčh 57 bitu. Spočává v átoku se znalostá otevreneho textu. Známá otevrená text je 3. KRITIKA SŠIFROVEÉHO STANDARDU 213 zasifrovín vsemi mozními klíči (vznikí mnozina EK1 (M) o 256 prvčíčh) a znamí sifroví text je desifrovín vsemi moznymi klíčči (vznikí mnozina DK2(C) o 256 prvčíčh). Prunik obou vzniklích mnozin obsahuje prave resení. Krome toho vznika asi 248 falesníčh píru klíču. Ty lze snadno vyloučit kontrolním zasifrovaním na dalsím znamem píru (M, C). Tato metoda se nazíva meet in the middle. IBM doporučení Diffieho a Hellmana prijala, vylepsila a k sifrovaní vúznamnúch informačí (jako jsou napríklad klíče nizsíčh urovní) pouzíva dvou klíču nasledním zpusobem C = (Dk2 (Ek1 (M))). (3.6) Tato metoda trojnasobneho sifrovaní (s dvojnasobním klíčem) ma víhodu v kompatibilite se systemy s jedním klíčem (puvodního sifrovaní se dosahne volbou K1 = K2). DES-X Jedním z dalsích pomerne jednoduchých navrhu na zabezpečení DESu proti ítoku hrubou silou je DES-X vyvinutí Rivestem. Ten pouzíva 184-bitovy klíč, ktery se skladí z jednoho 56-bitoveho DES klícce K a dva 64-bitove klíčču K1 a K2. Šifrovaní se provede nejprve pouhým XORovaním K1 se zpravou, pak sifrovíním s DESem pomocí klícce K a konečne XORovaním s K2, tedy kryptogram pro 64-bitoví blok zprívy M je C = K2©DESK(M0K1), kde DESK(—) je DES sifrovíní s klíčem K. Tento system je srovnatelny s DESem z hlediska uíŠčinnosti a je takíe zpŠetnŠe kompatibilní s DES, prostŠe pŠredpoklíadejme, Šze K1 a K2 jsou nulovíe vektory. Bylo prokazano, ze DES-X je v podstate imunní vuči hrubou silou klíčovích vyhledavíní. Ačkoli DES-X neposkytuje zvísenou bezpečnost proti teoretickím diferenciílním a linearním ítokum, pokud si myslíte, ze jediní zpusob, jak zlomit DES je hrubou silou, pak DES-X je atraktivní nahrazení DESu. První výZný analytičky ýtok Obríanči DES, kteŠrí argumentovali tím, Šze doposud nebyl pŠredloŠzen Šzíadnyí víaŠznŠejŠsí uítok proti DES (a pŠrehlíŠzeli tak víyŠse uvedeníe skuteŠčnosti), mají od 11.8. 1990 ztíŠzenou argumentači. Tento den pŠredloŠzili 214 KAPITOLA 8. SIFROVY STANDARD DES A JEHO KOLEGOVE Eli Biham a Adi Shamir z Weizmanova institutu v Izraeli metodu lustení, nazívanou diferenčiílní krypto-ánálýzá (DK). Je ánálytičkým utokem proti DES. Snadno s ní rozbili osmikrokovou DES, japonskou blokovou sifru FEAL a predchUdce DES LUCIFERa. U patnáčtikrokove verze DES s ní dosáhli lepsíčh vysledku, nez je zkousení vsečh mozníčh klíču. Po dvou letečh pak metodu zdokonalili i pro plne sestnáčtikrokovou verzi DES a tím vyvrátili tvrzení Davise. Podstata diferenčiální kryptografie spočívá ve vyuzití nevhodnyčh S-boxu a slabeho zpračování klíče. Vliv klíče K se dá totiz určitím zpusobem vyblokovat. Uvazujme v jednom kroku DES při vípočtu f (R, K) zpřáčovíní dvou vstupu: R1 a R2. První uvaha spočíví v tom, ze diferenče R1 a R2 (=R1 © R2) zustívá nezmenená, kdyz R1 a R2 projdou řozsířením (expanzí) E a operačí © s klíčem K. Vliv klíče se v této diferenci eliminuje: (E(R1) © K) © (E(R2) © K) = E(R1) © E(R2) = E(R1 © R2)! (3.7) Druhá myslenka spočívá v tom, jak obejít nelineární S-boxy. Pro nektere diference vstupu jsou mnohé diference výstupů z S-boxu málo pravdepodobné a jine velmi pravdepodobné. Vístupní diferenče se ovsem v dalsím kroku sčhematu stávají vstupními diferenčemi! Permutače P ním v tom vubeč nevadí. Tímto postupním zřetezením vstupne-vístupníčh diferenčí dostavíme nakoneč pravdepodobnostní vztah mezi diferenčemi otevřeneho textu a diferenčemi sifroveho textu. Nalezneme-li píry (M, C), kde M je otevření text, C je sifroví text, ktere vyhovují nasemu modelu, máme o prubehu sifrování uz dost informačí. Určení klíču K16 az K1 je pak jen slozitou tečhničkou zálezitostí. S kazdím krokem se ovsem příslusne pravdepodobnosti násobí, takze čím víče kroku mí sčhema, tím je íčinnost metody horsí. Například na rozbití osmikrokove verze DES stacily pouze 2 minuty, na sestnáčtikrokovou verzi je to jiz 237 operačí. Dosud je take k tomu potřeba velke mnozství odpovídajíčíčh si dvojič (M, C). Na druhe strane se metoda neustále zdokonaluje, takze nelze odhadnout, kde se zastaví její íčinnost. Na obranu proti ní v dnesní podobe zatím postačuje trojnásobne sifrování. Avsak duveřa v DES jako čelek dostala váznou trhlinu. Záplata v podobe mnohonásobneho sifrování muze brzy povolit. Krome toho existují oblasti, u ničhz prepračování z jednodučheho sifrování vyjde stejne jako zavedení jineho kryptosystemu (platební karta, klíčová hospodářství, ...). 3. KRITIKA SIFROVEHO STANDARDU 215 Dalsí analyticke ýtoky Ve dnečh 23.-27.kvetna 1993 se v Lofthusu, male norske vesničče, konala dalsí ze serie konferenčí Mezinárodní asočiače pro kryptologičky vázkum - EUROCRYPT'93. K DES se vztahovalo nekolik práspevku. Uved'me dva nejdulezitejsá. Prvná z práspevku prednesl Eli Biham, jeden ze známáčh izraelskyčh rozbijeců DES. Svuj práspevek s názvem Nove typy kryptoanalytických itoků na bizi príbuzných kličů, uvedl predvedenám čersveho vátisku knihy o diferenčiální kryptoanaláze DES; napsal ji společne s Adi Shamirem. Biham si vsiml, ze nektere rodiny kryptosčhemat vyuzívají pomerne jednodučhe tvorby rundovskáčh klíču (u DES viz Ki), čímz mezi nimi vznikajá zrejme vztahy, a ty pak vyuzil ke dvema átokum. Prvnám uátokem s močznostii vo by otevčrenieho textu dosáahl novou redukči sloňzitosti pňri luňstňená pomňernňe ňsirokáe trády kryptosčhemat a predvedl ryčhlejsá variantu tohoto átoku s vyuzitám vlastnosti komplementýrnosti. Druhá utok je nová a autor ho pojmenoval itok s mocnosti volby vztahu, v klici s nizkou sločitosti. Pripomenme rozlisená typu utoku na sifrovačá system • Lustená pouze ze sifroveho textu. Kryptoanalytik má k dispoziči libovolne mnozstvá kryptogramu, nevá ovňsem, jakyá otevňrenyá text byl zaňsifrováan. • Luňstňenáí pňri znalosti otevňrenáeho a ňsifrováeho textu. Kryptoanalytik maá k dispoziči libovolnáe mnoňzstváí dvojič otevňrenáeho textu a jemu pňráísluňsnáeho kryptogramu. • Lustení s mozností volby. Kryptoanalytik má moznost vnutit sifrovačímu systemu svuj otevreny text a obdrňzet od nňej odpováídajáíčáí kryptogram. Jakáy uátok kryptoanalytik zvoláí, záaleňzáí vňzdy na konkráetnáí uáloze, pňred kterou je postaven. V tomto typu uátoku bylo vyuňzito toho, ňze urňčitáe jednodučháe vztahy mezi kláíňči majáí za náasledek urňčitáe jednodučháe vztahy mezi otevrenámi a sifrovymi texty. Bihamovy utoky jsou aplikovatelne na rodinu sčhemat LOKI a LUCIFERA. Mohly by byt aplikovatelne i na DES, kdyby posuny registru C a D v algoritmu prípravy klíču Ki byly stejne .... Jak krehká je bezpečnost DES! Ukazuje se, ze nove vysledky ýtoků nepadají z nebe, ale jsoů poůze 216 KAPITOLA S. Í~>IFROVY STANDARD DES A JEHO KOLEGOVE výsledkem nového soustředěného úsilí kryptoanalytikú. Bihamuv útok je totiž zlepšením, rozšířením a zobecněním Knudšenova útoku na auštralšký algoritmus LOKI91 z roku 1992, ale vznikl nezavišle na nem. Druhý príšpevek byl ješte zajímavejší. Prednešl ho Japonec M. Matsui a byl nazván Lineární kryptoanaly-ticka metoda pro šifru DES. Nova metoda kryptoanalýzy je utokem se znalostí otevřeného textu. Její podštata špoCívá v objevu lineárních vztahU v křyptosystému DES (s využitelnou pravděpodobností). To še mu podarilo díky slabym nelineařitam S-boxu. Našledující vyšledky kryptoanalízy byly zíškany na pracovní štanici Hewlett-Packard HP 9750 (PA-RISC/66 MHz) š programy vytvorenymi v jazyku C. 1. Víšledky experimentu pri utoku še znaloští otevreneho textu: • ošmikrokoví DES je rozluštitelna š 221 otevreními texty za 40 šekund, • dvanactikrokova DES je rozluštitelní š 233 otevreními texty za 50 hodin, • šeštnactikrokova DES je rozluštitelna š 247 znamími otevrenymi texty rychleji, nez je vycepavající hledaní 56-bitoveho klícce. V nekteřych případech (není-li otevřeny text nahodny) lze klíc lustit přímo ze sifřoveho textu. To je novinka, ktera prímo ohromuje. Pritom Matšuiho metoda luštení je myšlenkovite prímocara. 2. Zde jšou víšledky experimentu pro luštení pouze ze šifroveho textu: • je-li otevrení text tvoren anglickími texty ve znacích ASCII, ošmikrokoví DES je rozluštitelna š 229 šifrovími texty. • jšou-li otevrene texty nahodne znaky ASCII, je potreba 237 šifrovích textu, • jšou-li otevreníe texty tvoreny zcela níahodnyími znaky, exištujíí šituace, kdy je Matšuiho metoda rychlejšíí nez vyzkoušeníí všech hodnot klííce. 3. KRITIKA ŠIFROVÉHO STANDARDU 217 Z pSrííspSevku je zSrejmíe, Sze posledníí slovo ve vyuSzitíí tíeto mySslenky jeSstSe nepadlo. Díavía zcela konkríetníí metodu pro luSstSeníí algoritmu DES, ale mía zejmíena vyíznam vSedecko-metodologickíy. PSrííspSevek obsahuje mnoho novyích mySslenek, kteríe budou studovaíny a pouSzity jak pro kryptoanalyízu, tak pro tvorbu novyích kryp-toschýmat. Je temer neuveritelne, ze cely utok je zalozen na tom, ze S-box S5 dava s velkou pravdepodobností linearní vžtah meži nekterymi vstupy a nekterími výstupy. Je to dalsí utok se znalostí otevreneho textu a prvníí uítok se znalostíí Ssifrovíeho textu na DES. Původní varovaní Diffieho a Hellmana Vrat'me se nyní k puvodním varovaním Diffieho a Hellmana z roku 1976. Jak víme, brali v uvahu 1 milion cipu provádejících asi 800 000 zkousek klícu za sekundu. Z konference NBS vyplynul zaver, ze takovy cip nebude moSzno vyrobit dSríve neSz v roce 1990. Podívejme se na níasledující tabulku Rok ohlášení Forma PoCet zkoušek DES klíCU/s Zdroj informace Uvedená cena 1984 vyrobeno 218 (256 k) Proc. CRYPTO84 1987 vyvinuto 219 (512 k) Proceedings of EUROCRYPT 87 1987 možne vyrobit 220 (1 M) 40 $ 1991 možne vyrobit 222 (4 M) DES Watch 1992 možne vyrobit 224 (16 M) Proc. CRYPTO92 300 $ 1995 možne vyrobit 226 (64 M) odhad 1999 možne vyrobit 228 (2 56 M) odhad Z tabulky je videt, ze konference vývoj mírne podcenila a pozadovaných parametru bylo dosazeno uz v roce 1987! Dnes je mozno za 300 $ porádit cip s rychlostí zkousek 16 M klícu/s. Pokud chceme v prumeru lustit jeden klíc za den, potrebujeme 255/(86400 • 224) = 24855 cipu. Za ne zaplatíme 24855 • 300 = 7 456 500 $. UvaSzujeme-li o stejníe cenSe za bSeSznou technologii v daníem roce, zaplatíme za totíeSz v roce 1995 pouze 1 864 125 $ a v roce 1999 jen 466 031 $. Cena za jeden vylůstený klíc by tak byla v roce 1992 218 KAPITOLA S. SCIFROVYI STANDARD DES A JEHO KOLEGOVEI ási 4000 $, v roce 1995 potom jen 1000 $ á v roce 1999 poůze 250 $. To uz je bajecna investice pro vysoce kvalifikovane zlodeje!!! Uvedomme si, ze za 5 let projdou pod ochranou DES v severoamerickych bankach financní transakce v hodnote 1826 • 400 • 109 « 700 000 000 000 000 $. V tomto svetle vypadí argumentace lidí od NBS, ze nejutajovanejsí veci mohou bít vyžraženy ža mnohem mene než desítky milionu, dolaru,, nutních k rožbití DES ... jako omezena a ícelova. Stejne ucelove je i chovaní nekterych bank, ktere proste uvedenou situaci neberou na vedomí (pokud o ní vubec vedí). Klasicke argumenty jsou: V praxi jsou tyto ceny ža hardware dostatečně odstrasující, další, vydaje jsou nutne na žaplacení expertu - kryptoanalytiků, íroven žnalostí o bankovních systemech je nížkí, hlavní hrožba je spíse uvnitžr banky nežž drahyí a nejistíy matematickíy uítok, snadnžejžsíí je klíížce ukríast atd. Kde budou tyto argumenty banky, az jednoho dne pan prezident banky zjistí, ze neznamy poberta odeslal aktiva banky nekam na druhí konec sveta? Tvarit se, ze hrozba neexistuje, je pstrosí politika. A tu nelze delat v oblastech tykajících se bezpecnosti. Rozbití DES je rok od roku atraktivnejsí a hrozba se staví hrozivejsí. Utocníkem nemusí bít obycejnízlodeji, ale treba nektera z tajních sluzeb ci mafií. Dnes by Hellmanuv casopamet'oví utok mohl byt proveden s 1024 DES cipy, 32 GB pameti a par mesíci predbezních vípoctu. To vse v cene do 3,6 miliínu $ a s dobou cekaní na resení jeden den. I to je dost neprííjemníe. Softwárová hrozbá Softwarovy ítok je snadno a vsem dostupní. Softwaroví verze DES bezí na pracovních stanicích dostatecne rychle, aby hrave rozlustila nekvalitní hesla (zasifrovana v DES). Ukazuje se, ze na novejsích poďtaďch muze software nahradit prumerne rychle cipy DES. Soucasní experiment vyuzívající necinnost v síti 40 pracovních stanic dosíhl 234 zkousek klícu DES behem jednoho dne. Uvazujeme-li, ze heslo obsahuje pouze malí písmena, je to 268 mozností. V danem experimentu by nam k íspechu stacilo zkouset klícc po víkendech necelí mesíc. 4. POUZIT NP-TEZKYCH PROBLEMU V SIFROVACICH SYSTEMECH 219 Predstavíme-li si sít' o 512 nejmodernejsích pracovních stanicích, ktere pracují po dobu jednoho mesíce v mimopracovní dobe, pak jsou tyto stanice schopny provest 512(poc.) • (22 • 15 + 8 • 24)(hod.) • 3600(sec.) • 32000(klícu/s) « 245 zkousek klítcu. Praví klíc bude tedy za tuto dobu nalezen s pravdepodobností 1:2000, tedy vetsí, nez je pro cinitele od-povedne za bezpecnost zdravo. Záver Velmi brzy budeme postaveni pred kolaps dnesní bezpecnostní technologie postavene na bazi DES. Realne lustení hrozí ze trí stran: sestrojením specialního stroje na hledíní klíccu, analytickym utokem a softwarovím utokem. Cena za jeden vylustení klíc bude v roce 1999 jen 250 $. Analytickí utok s vyuzitím diferenciílní kryptoanalyzy a linearní kryptoanalyticke metody pro DES se bude zdokonalovat. Moznosti softwarove hrozby porostou s rozsirovaním pocítacovích sítí. To vse si vynutí nahradu DES. Bude to velmi drahí a narocní proces. Do te doby tam, kde je to mozne, bude nutne jednoduche sifrovíní DES nahradit za nekolikanísobne. Casem se bude muset vymenit mnozství ruzních platebních a jiních karet pracujících pod DES. Pravdepodobne se zmení i politika verejnosti sifrovích schemat. Budou muset bít zahíjeny nove mezinarodní standardizacní procesy. Vnitrní ochranu nekterích narodních komercních systemu bude vhodnejsí zabezpecit po vzoru svícarskích bank narodními nebo firemními neverejními kryptoschematy. Jediními moznostmi jak nahradit DES jsou algoritmus RSA a diskrétní mocnení. Rozhodne bychom se z vívoje DES meli poucit. 4 Poúzití NP-tezkych probiem ú v sifrovacích systemech V soucasne dobe neexistuje rychlí (tj. pracující v polynomialní dobe) algoritmus pro zadní NP-tezkí problem, a pokud NP=P, takoví algoritmus neexistuje. Je tedy prirození nípad zalozit kryptosystem na 22O KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE NP-těžkém problému, aby rozbití šifrovacího systému bylo ekvivalentní nalezení rychlého algoritmu, který by rešil NP-težky problem. To je mj. zakladní idea pro DES. Uvažme nasledující výpoCetní problem. Algebraické rovnice nad Z2 Vstup: Polynomy pi,... ,pk v promenných xi,... , xn nad Z2. Otazka: Mají polynomy spoleCny nulový bod (xi,... .xn) v Zn? Napríklad nasleduj ící tri rovnice xix4X6 + x2x4x5 — 1 =0 xix2 + x2x3 + x3x4 — 1 =0 xix3 + x4x5 + xix6 — 1 =0 mají spolecne rešení (1,0,1,1,1,1). Ackoliv výše uvedený problem je lehký pro mala k a n, se zvetšovaním techto parametru se obtíznost vyresení neustíle zvysuje. Lze navíc dokazat, že platí Véta 4.1 Problém rozhodnout, zda algebraický systém rovnic modulo 2 má řešeni, je NP-téžký. Výse uvedena veta byla pouzita pri tvorbe sifrovacího systemu LUCIFER navrzeneho IBM a popsaneho H. Feistelem v roce 1973. System pracuje nasledovne. Bez ujmy na obecnosti lze predpokladat, ze delka zprývy M je 2n (pokud by byla vetsí, pouzijeme rozdelení do bloku delky 2n a na kazdý blok aplikujeme sifrovací proceduru). Zpravu M rozdelíme na dva stejne bloky delky n, tj. M = (M0,Mi). Klícc K bude vektor k, který urcuje podklícce ki, k2,..., kd_i. Pro 2 < i < d, rekurzivne definujeme Mi = Mi-2 + f (ki-i,Mi-1), (4.l) 5. GOST ANEB GOSUDARSTVENNYJ STANDART 221 kde f je nSejakaí libovolnía pevnSe zvolenía nelineíarní transformace a poScítíame modulo 2. ZíavSereScníy kryptogram C je urScen vztahem C = e(M,K ) = (Md_1,Md). (4.2) Zpríavu M lze získat z kryptogramu C opaScnyím postupem - vSsechno, co musí pSríjemce zpríavy províest, je obríacení poSradí 4.1. Tedy Mi_2 = Mi + f (ki_i,Mi_1), (4.3) d > i > 2, az dospejeme k puvodní zprave M = (M0, M1). Za predpokladu, ze prájemce zna tvar funkce f a hodnoty sifrovacích klícu, je desifrovaní kryptogramu prave tak tezke jako jeho zasifrovaní. Poznamenejme, ze díky 4.3 funkce f nemusí být invertibilní. V typicke situaci, Mr. X muze znat tvar funkce f, ale nesmí znat klícce. Zda je pak schopen získat klícce pomocí luSstSení s pomocí volby, zíavisí na tvaru f. Je-li f lineíarní transformace, je urScení klíSce vyípoScetnSe snadníe. AvSsak, v pSrípadSe, Sze f je nelineaírní transformace, napSr. f ...,xn; y1,...,yn) = . . . ,pn), kde kazde p' je polynom v promenných (x1,... , xn; y1,... , yn), pak urcení klícce ze znalosti M a C se redukuje na problíem vySreSsení algebraickyích rovnic pro klíScovíe promSenníe. Jak jsme vidSeli, to je NP-tSeSzkíy problíem. Dosíahli jsme tedy naSseho cíle: nalezení kryptosystíemu, kteríy maí lehkyí proces Ssifrovaíní a deSsifrovíaní, ale kteryí zaírovenS vynucuje po Mr. X, aby pSri hledíaní klíSce pomocí luSstSení s pomocí volby SreSsil NP-tSeSzkyí problíem. Za pSredpokladu, Sze NP-tSeSzkíe problíemy jsou nezvlíadnutelníe, je bezpeScnost systíemu zajiSstSena. Je zde vSsak naísledující problíem. Klasickía teorie sloSzitosti se tíemSeSr uíplnSe zabyívaí s nejhorSsím moSznyím chovaíním. ASckoliv tedy urScení klíSce je tSeSzkyí problíem, nemíame jistotu, Sze neexistuje velkyí poScet snadníych vstupů,. 5 GOST aneb GOsůdarstvennyj STandart Šifrovací algoritmus GOST 222 KAPITOLA 8. SIFROVY STANDARD DES A JEHO KOLEGOVE • vžnikl roku 1989, • je první a žatím poslední sovetska verejna sifra, • vladní standard pro kryptografickou ochranu systemni žpracovýní dat, • urcen pro SW i HW implementaci, • neklade žýdne omežení na stupen utajení chranených informací. Klíče GOST • GOST je klasicka blokový symetrický sifra s tajným klícem a delkou bloku 64 bitu (na první pohled velmi podobna DES), • ma 256 bitovy klíc W (DES mý použe 56b), • ma 8 substitucních tabulek, každa o 64 bitech (vstup 4b, výstup 4b). Dohromady tvorí tžv. substitucní blok K, který je soucýstí tajneho klícce. Tuto cast klícce lže považovat ža žnamou, pokud je konstantní ve vetsí síti (bankovnictví). Na 8 substitucních funkcí j — K] nejsou ve standardu kladeny žadne požadavky; vhodne jsou permutace císel 0-15. Singularity: K] = const.,K] = j. Prestože existují tyto singularity, nelže blok K považovat ža odepsaný a klíc žužovat použe na W. Princip šifrování GOST (v základním režimu ECB) • v podstate prevod jednoho bloku otevreneho textu (OT) na odpovídající blok sifroveho textu (ST), • klíc W roždelen do osmi (32 bitových) slov X[0] až X[7] • tato jsou rožvinuta na dalSsí, tžv. rundovní klíSce takto: - for(i = 8; i < 24; i + +) X[i] = X[i - 8]; 5. GOST ANEB GOSUDARSTVENNYJ STANDART 223 - for(i = 24; i < 32; i + +) X[i] = X[31 — i] Tj. posloupnost rundovních klíčů X [0] az X [31] nabíva hodnot - X[0],...,X[7],X[0],...,X[7],X[0],...,X[7],X[7],...,X[0]. • vstupní 64 bitoví blok OT = in[0]) rozdelen na slova N1 = in[0], N2 = • N1 a N2 jsou ve 32 rundích promíchína s rundovními klíči Feistelovím principem nísledovne: - for(i = 0; i < 32; i + +) {tmp = N1; N1 = F(N1 + X[i])^^2; N2 = rmp) • nakonec probehne zamena slov N1 a N2, tj. vísledny sifroví text je: - ŠT= (ouí[1],ouí[0]) = (N1,N2) • Zbíví dodefinovat funkci F: její 32 bitoví vstup je rozdelen na 8 cty^^v^]! slov a kazde z nich projde odpovíídajííčíí substitučníí tabulkou K[i]. Vyísledek (8x 4 bity) spojenyí do 32 bitovíeho slova se pote cyklicky rotuje doleva o 11 bitu. • Desifrovíaníí: stejnyí postup, ale rundovníí klííče se pouzijíí v opačníem poradíí (dííky Feistelovu prinčipu). Kvalita Šifrovaní • kvalitu zajist'ujíí o dostatečna delka klíče o dve nelinearní operace — sčítaní v modulu 232 a substituční boxy K [i] • funkce substitučních boxu: vliv kazdeho vstupního bitu OT (i rundovního klícce) vmíchívají v kazde runde sifrovaní do 4 bitu vístupu. Rotace o 11 bitu zpusobí, ze tyto vístupní bity v kazde nísledující rundŠe ovlivnŠujíí o 4 vyístupníí bity vííče. 224 KAPITOLA S. ŘIFROVY STANDARD DES A JEHO KOLEGOVE • dalsí (doprední) vliv ma scítíní mezivísledku (N1;N2) s X[i]. Teoreticky tedy múze díky aritme-tickemu prenosu od nejnizsího rídu k nejvyssímu dojít k ovlivnení vsech 8 boxu najednou behem jedne rundy (zalezí na poctu a vzajemních polohach jednicek). • Nevíhoda oproti DES: cyklickí rotace o 11 bitu místo promyslene permutace pouzívane v DES. GOST tuto nevíyhodu kompenzuje dvojnaísobkem poŠčtu rund. Kryptografická betonáž • 32 rund je značně předimenzovaný počet, nicméně je velkou překážkou pro diferenciální a lineární kryptoanalýzu • sloitost šifry roste s každou další rundou exponenciýlne, kdežto čas lineírne (32 rund je tedy 216 krat složitejší než 16 rund, ale trvý jen dvakrýt dele) • pocet rund byl navrzen s ohledem na omezení slozitosti sifry shora souctem bitu OT a klíce 5. GOST ANEB GOSUDARSTVENNYJ STANDART 225 Dálsí rezimy činnosti • Rezim zpetne vazby ze sifroveho textu (CFB) je definovan stejne jako u DES: - ST[i] = OT[i]^GOST(ŠT[i — 1]) • Rezim gammirovanija se sice preklída jako OFB, ale je odlisny od OFB u DES. Transformuje blokovou sifru na proudovou. Zakladem je 64b cítaC Nejprve se zvolí inicializacní vektor IV a po zasifrovíní se naplní do cítace: (c[1],c[0]) = GOST(1V[1],1V[0]). Pote se vzdy k c[0] pricte konstanta 0x01010101 v modulu 232 a k c[1] 0x01010104 v modulu (232 — 1). Zasifrovaním takto vznikle hodnoty cítace vzikí heslo. Pak ST[i] = OT[i]"heslo[i]. V dalsím kroku se k cítaci opet prictou príslusne konstanty a cely postup se opakuje, az je vygenerovíno tolik bitu hesla, kolik mía OT. • ZabezpeScovací kíod zpríavy (MAC) je rovnSeSz odliSsníy od DES. Na tvorbu MAC je pouSzit stejnyí klíSc jako na data, ale jinaí Ssifra (prvních 16 rund GOST). Tvorba MACu probíhía v reSzimu CBC a jeho díelku L < 32b si volí uzivatel. • Rezim retezení sifroveho textu (CBC) není definovan. Slábiny stándárdů GOST • Existují slabe klíce X[i] = X[7 — i], kdy zasifrovíní je rovno desifrovíní, ale jejich hustota v prostoru vsech klícu (1/2128) je oproti DES (1/254) miziva. Navíc GOST nema vlastnost komplementírnosti. • Problemy se substitucními boxy: pokud jsou (nesmyslne) zvoleny jako konstanta, GOST vubec nesifruje. Zvolí-li se jako identity, jako by ve schíematu nebyly. Záverem • GOST pouzíva nekolik kryptografickích novinek (gammirovanije), 226 KAPITOLA S. SSIFROVYI STANDARD DES A JEHO KOLEGOVEI • nepodporuje jeden z mezinarodne standardizovaních rezimni (CBC), • predpoklídí se jeho masove nasazení v Rusku. 6 Šifrovací algoritmús Skipjack Skipjack je noví sifrovací algoritmus vyvinutí NSA (National Security Agency) v ramci jejího noveho navrhu na podmínene sdílení klícu. Tento novy sifrovací standard ma nahradit dnes jiz zastarívající DES. (Zastarívající i v tom smeru, ze na utok hrubou silou — tj. vyzkousení vsech klícu — dnes stací jedna velka firma a 300 000 USD!) Proto NSA prisla s novím nípadem nazvanym Key Escrow System (podmínene sdílení klíccu) a novím algoritmem Skipjack. Tento algoritmus je tajny, je ukryt v cipu Clipper, kterí je chranen specialním pouzdrem. Pri porusení tohoto pouzdra dojde k fyzikalne-chemicke destrukci vnitrního zapojení a ulozenych klíccu. Popis algoritmú Skipjack Skipjack pracuje podobne jako DES, kterí ma nahradit. Je to blokova ssifra, mí stejne rezimy cinnosti jako DES a stejnou delku bloku (64 bitu). Lisí se "podstatne" slozitejsím vnitrkem (32 rund proti 16 u DES...), delkou klícce (80 bitu proti 56 u DES) a hlavne tím, ze ho zna jen NSA. Podle expertu, jimz NSA dovolila nahlednout do tajne dokumentace, je Skipjack velmi kvalitní sifrovací algoritmus. Nevidí u nej jinou moznost lustení, nez vyzkousení vsech klícu. (Coz podle nich v nasledujících 30 - 40 letech nehrozí.) Algoritmus se tají mimo jine i proto, aby nemohl bít realizovan softwarove, protoze by tím obcane dostali do rukou kvalitní sifru, aniz by ji vlada mohla lustit. Podmínene sdílení klícú Tento napad jako by vypadl z Orwellova romanu: Chcete kvalitne sifrovat? Ano, mame pro vís velmi kvalitní algoritmus od NSA. Vís sifrovací klícc si ale s dovolením ponechame. Bude ulozen u vlídou poverene organizace ve dvou castech a dohromady ho lze dat jedine na zaklade soudního povolení. 6. šifrovací algoritmus skipjack 227 Zajímávaje i technická realizace teto myšlenky: Programování čipů provádí utajované vládní zařízení (ZPC). Toto zařízení ma v sobe uloZeny tři tajne vladní klíče — k1, k2, FK (Family Key). Při vírobe asistují určene organizace ORG1 a ORG2, u nichz budou ulozeny ony dve půlky klícce noveho čipu. ORG1 a ORG2 generují níhodne vstupy do ZPC, ktere k nim pridaví identifikacní císlo noveho cipu ICC (tj. identifikacní císlo noveho uzivatele cipu) a z techto 3 hodnot vygeneruje 80 bitove subklíce KU 1 pro ORG1 a KU2 pro ORG2. Pak se spocte klícc uzivatele KU = KUlxor KU2 a zapíse se do cipu, spolecne s ICC a FK. Do databíze ORG1 vsak ZPC zasle spolecne s ICC nikoli KU 1, ale KU 1 zasifrovane klícem K1, tj. hodnota E(KU 1,K 1) a do ORG2 obdobne e (KU 2, K 2). Tyto dve organizace tedy dostavají do uschovy cernou skríňku, od níz nemají klíce, neví, co je uvnitr, ale mají ji bedlive hlídat. Postup vlády pri dešifrování V "prípade potreby" — tj. na zaklade soudního povolení — ma vlída moznost desifrovat komunikaci mezi dvema uzivateli A a B. Klícc, kterí sifruje vlastní data se nazíva relacní klícc (RK). Clipper sam o sobe neresí problem volby RK. Povinností kazdeho vírobce sifrovacího zarízení, ktere obsahuje Clipper, vsak je, aby RK byl pred vlastní komunikací "sdelen vlade". IŠifratory to provedou automaticky tak, ze behem vzajemne synchronizace kazdí zasle svemu protejsku pole dat LEAF, ktere nese pozadovaní RK. LEAF (Law Enforcement Access Field) je definovan takto: LEAF = E ((25b ICC, 80b hodnota E (RK, UK), 23b autentizátor A), F K). Je-li zachycena podezrela komunikace, vlída (mí k dispozici FK) nejprve odsifruje LEAF a dostane ICC, E(RK, UK) a A. Po získaní soudního povolení k vydaní klícu uzivatele s císlem ICC obdrzí od ORG1 E(KU 1,K 1) a od ORG2 E (KU 2, K 2). Po odsifrovaní (ma k dispozici K1, K 2) z nich zjistí KU 1, KU 2 a urňcíí KU = KU1xorKU2. Pomocíí KU odňsifruje zbylou ňcíast pole LEAF, tj. E(RK, UK), a zíískía koneňcnňe relacní klíc RK. S pomocí Skipjacku uz muze desifrovat zachycenou komunikaci (ale i tu co byla predtím i tu co bude). . . 228 KAPITOLA S. ŠIFROVY STANDARD DES A JEHO KOLEGOVE Porovnání algoritmů DES a Skipjack DES Skipjack typ šifry bloková bloková vývoj algoritmu IBM NSA delka bloku dat 64 bitů 64 bitů inicializační vektor 64 bitů 64 bitů délka uZivatelškeho klícce 56 bitů 80 bitů prídavne klícce ne ne popiš algoritmu veřejná státem ůtajovaná moZnošt pouZití dif. kryptoanalýzy ano ne vyroba čipu desítky fiřem vládoů USA ůřCení výrobci moZnošt preprogramovaní čipu vetsinoů ne ne 7 Rijndael a AES FI V lednu 1997 NIST (National Institute of Standards and Tečhnology) oznáamil zaháajená hledáaná náastupče DESu: Advančed Enčryption Standard (AES), čoz mel bát neklasifikovaná a verejny sifrovačá algoritmus. Bylo predlozeno patnáčt ruznáčh návrhu a v rájnu 2000 byl vybrán algoritmus Rijndael, pojmenovaná po sváčh tvurčíčh Joan Daemenove a Vinčentu Rijmenovi z COSUC Laboratory na K.U. Leuven v Belgii (ve skutečnosti AES, není presne Rijndael, jelikoz Rijndael podporuje vetsí rozsah bloku a delky klíču). Stejne jako DES je AES bloková ssifra. Velikost bloku zprávy je stanovena na 128 bitu zatámčo delka kláče muze bát 128, 192 nebo 256 bitu. Jedná se o slozenou sifru a pouzává 10, 12 nebo 14 kol sifrováná v závislosti na volbe delku klíče. Ničmene, ma rozdíl od predčhozíčh algoritmu, ktere byly zalozeny na Feistelove myslenče 8. PROUDOVÁ ŠIFRA RC4 229 a skutecne linearní, Rijndael je non-lineírní. Non-linearita v Rijndael je vytvorena tím, ze reprezentuje byty jako polynomy stupne 7 v Z2[x]. Napr. 6766 ... b0 je reprezentovýn polynomem b(x) = b0 + bix + • • • + b7x7. Scítaní bytu je proste obycejný bitovy XOR. Nasobení je definovano jako nýsobení polynomu modulo ire-ducibilní polynom 1 + x + x3 + x4 + x8. Rijndael lze popsat algebraicky pomocí konecnych teles, avsak popis presných detailu algoritmu je casove (a prostorove) narocne. Jeho tvurci o tom napsali celou knihu, kde je vse do detailu popsano. Podrobnosti jsou takíe k dispozici na domovskíe stríance Rijndaelu. Ackoliv AES byl puvodne vyvinut pro pouzití s neklasifikovanými materialy, v cervnu 2003 obdrzel oficialní schvílení NSA pro sifrovaní utajovaných materialu az do urovne TOP SECRET (s 192 - nebo 256-bitový klíc). Jedna se o první verejne dostupný kryptografický system, který je certifikovany pro klasifikovane pouzití NSA. Stejne jako o DESu se i o AES hodne diskutovalo. mel rovnez více nez jeho spravedlivý podíl na polemiku. Se svym dlouhým klíccem je ochrýnen proti utokem hrubou silou. Pri jeho navrhu rovnez byly zohledneny diferencialní a linearní utoky. Nicmene, v kryptograficke komunite byl znacny zajem na studiu algebraicke struktury AES. Zejmena clanky Courtoise a Pieprzyka (2002) a Murphyho s Robshawem (2002), ktere se zabývají tím, jak obnovit AES klíc z razných systemni kvadratických rovnic, kladou oprývnenouotízku, zda by algebraicke utoky mohly ohrozit bezpecnost AESu. 8 Proudová Šifra RC4 Po mnoha letech boje s DESem a dalsími siframi se zda ze zvítezila sifra Rona Rivesta ze spolecnosti RSA Data Security jmenem RC4. Tato sifra je vsak vzhledem k sídlu firmy "americkým produktem" a jako 23Q KAPITOLA S. sIFROVY STANDARD DES A JEHO KOLEGOVE takovaí je čhríanena predpisy proti vyvaízeníí zbraníí. Jejíí kvalita tedy byla v programečh vyvíazenyíčh mimo USA značne omezena, a to vedlo k jejíímu rozlusteníí (pomočíí Internetu). Popis RC4 RC4 je proudovía sifra. Uzivatelem zadanyí klííč se pouzije k tvorbe 256bajtovíe sifrovačíí tabulky. Potom se v kazdem kroku sifrování jednak modifikuje obsah tabulky, a jednak se z ní vygeneruje jeden bajt hesla. Heslo se pouzije jako základ geneřítořu pseudonýhodnýčh čísel; dvema z ničh se mení sama tabulka (permutuje se) a třetí se posílí na vístup. To se pak "přixoruje" na práve zpřácováváný bajt otevřeneho textu. Jako sifřá proudoví mí RC4 mnoho vyhod i nevyhod. K víhode patří předevsím řyčhlost zpřáčovýní, která z ní delí nástroj přitazliví pro mnoho komerčníčh produktu. Proudove sifry kodují jen tolik bajtu, kolik jičh má otevření text, delka dat se tedy neprodluzuje. Je take mozno desifrovat libovolní bajt, kterí je třeba uprostred zprávy. A zde začínají nevyhody. Na proudove sifry lze obečne lepe ítočit. Stačí zmenit např. jediny bajt, pokud známe formít zpřívy, nebot': noví bajt = (původní bajt XOR heslo) XOR diference. Pokud tohle bude desifrováno operačí XOR heslo, dostaneme (puvodní bajt XOR diference). Víme-li, kde stojí v textu jednička na poziči desetitisíču, např. v textu "Proveďte převod 10 000 USD z konta x na konto y." muzeme volbou (1 XOR 9) snadno získat 80 000 doláru. Přitom: o nezníme klíč uzivatele o neznáme heslo o neznáme konkretní typ proudove sifry Rozlustení Šifru RC4 vyvinula firma RSA, která zamestnívá sčhopne kryptology, např. prof. Ronalda Rivesta a má patent na dalsí sifry jako RSA, MD a řadu RC. Kombinačí tečhto prostředku ovládla RSA trh, nebot' 8. PROUDOVA SIFRA RC4 231 asymetrickou RSA sifru pouzila pro distribuci klícu, MD pro digitalní podpisy a RC4 pro vlastní rychle sifrovaní. Klíc sifer byl pochopitelne omezen na 40 bitu, coz se jim patrne stalo osudným. Prezident firmy Jim Bidzon se sice dal zaregistrovat jako vyívozce zbraníí a podaSrilo se mu dosíahnout podstatníeho zkraíceníí casu pri vladním schvalování sifer, ale zrusit omezení na delku klíce nedokazal. Firma tedy alespoň prísne tajila i zdrojovyí koíd Ssifry RC (jako by si v nSekteríe z prvníích lekcíí Kryptologie nemohla pSreScííst, Sze nemía cenu tajit algoritmus), a tento byl v roce 1994 disassemblován patrne nekým z tzv. cypherpunkers v ramci boje na príavo se bríanit, kteríe tito Ssifrovacíí nadSsenci interpretujíí jako praívo zjistit kíod Ssifry, kteríe se mía svSeSrit ochrana jejich dat. Vyísledníy zdrojovyí kíod Ssifry v jazyce C byl pomocíí anonymníí poSsty oznaímen 13. Scervence 1994 na Internetu. V hutníem perlovskíem formíatu vypadía takto: #!/usr/local/bin/perl -0777— -export-a-crypto-system-sig -RC4-3-lines-PERL @k=unpack('C*',pack('H*',shift));for(@t=@s=0..255){$y=($k[$_°/„@k]+$s[$x=$_ ]+$y)7„256;&S;}$x=$y=0;for(unpack('C*',<>)){$x++;$y=($s[$x7„=256]+$y)7„256; &S;print pack(C,$_~=$s[($s[$x]+$s[$y])7,256]);}sub S{@s[$x,$y]=@s[$y,$x];> SamozSrejmSe normaílníí zíapis je níasledujíícíí: Klícový proud je nezavisly na otevrenem textu. Ma 8*8 S-box: S0, S1,S255. Polozky jsou permutací císel 0 az 255, a permutace je funkcí promenne-delky klícce. Pracujeme s dvema cítaci, i a j, které se inicializují jako 0. Chceme-li generovat náhodný byte, proved'me následující: i := ( i + 1) mod 256 j := ( j + Si) mod 256 zameň s' a S j t := (Sj + Si) mod 256 K := St Príslusný byte K klícoveho proudu je XORovan se zdrojovým textem, abychom získali kryptogram nebo XORorován s kryptogramem, abychom získali zdrojový text. Šifrovaní je rychle - je asi 10-krat rychlejsí nez DES. 232 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE Inicializace S-boxu je take snadna. Za prve, vyplníme jej linearne: S0 = 0, S1 = 1, ..., S255 = 255. Pak vyplníme dalŠsí 256-bytovíe pole klíŠčem, pŠriŠčemŠz klíŠč opakujeme, abyčhom vyplnili čelíe pole: K0, K1, . . . , K255. Pote nastavíme index j na nulu. Pak provedeme: pro i = 0 aŠz 255 : j := (j + S + Kj) mod 256 zamen Si a Sj A to je vŠse. Firma RSA tvrdí, Šze algoritmus je imunní proti diferenčiaílní a lineíarní kryptoanalyíza. Zdía se, Šze nemí zadne male cykly a ze je vysoce nelineírní. (RC4 muze byt asi v 21700(256! x 2562) mozních stavech, coz je obrovske mnozství.) U S-boxu i zajist'uje, ze se kazdí prvek zmení a j zajist'uje, ze se prvky zmení níahodnŠe. Algoritmus je jednodučhíy. Dnes jiŠz je moŠzníe si staíhnout Šradu utilitek pro komfortníí pouŠzíívíaníí RC4. SŠifropankŠri se domníívajíí, Šze rozlousknutím kodu ztratila firma RSA na algoritmus pravo a umoznují s ním volne pracovat, pouze nedo-poruŠčují komerŠční vyuŠzití (koupŠe Šsifry u RSA vyjde levnŠeji, neŠz soudní pročes s ní). Šifropankri a jejich zabavy RC4 vsak pro sve klady pronikla nejen do mnoha komerčních produktu (jak je zmíneno víse), ale take na Internet. Pro bezpeční prenos napr. finančních dat se na síti pouzíva protokol SSL (Secure Sockets Layer), kteryí pračuje s RC4. Tento protokol pouŠzívía napŠr. Netsčape, a príavŠe prostŠredničtvím Šsifrovaníe objedníavky zbozí Netscapem bylo loni ukazíno, jak je komunikace na Internetu "bezpečna". Vzhledem k tomu, ze ssifra RC4 je zníama a byl pouŠzit pouze 40 bitovyí klíŠč, zbyívalo jediníe: vyzkouŠset vŠsečhny moŠznosti. To provedly nezíavisle na sobŠe dva tyímy, trvalo to zhruba 100 MIPS let (30 Pentií za 8 dní). Tím bylo jasnŠe ŠreŠčeno, Šze je to príavŠe díelka klíŠče, ktería umoŠznŠuje kaŠzdíemu províest tento nejjednoduŠsŠsí typ uítoku. Pozdeji Hal (puvodní zadavatel sifrove ulohy) vyhlasil dalsí kod. Nyní bylo cílem zvlídnout prohledaní prostoru vsech klíču v co nejkratsím čase. Pritom bylo pomocí Internetu zapojeno nekolik desítek lidí a vísledek se dostavil: informace o tom, ze Hall si objednal tričko NetScape za 12 dolaru, byla zníma za 31h 47m 36s. Tretí Halova vízva se chysta, do projektu se zapojuje rada. Pokud chcete na neco takoveho 9. šifrovací algoritmus idea 233 věnovat strojový cas, jste vítáni, je dokonce možnost získat symbolickou finanční odměnu, pokud se zrovna vám podarí získat klíč. Závěr Tato situace v oblasti bezpečnosti komunikace na Internetu je tedy velice neuspokojiva. Svet obecne predpoklída, že Netscape si najme programatory mimo USA (zajímave je prohlasení firmy z 18. cervence, tedy tri dny po prolomení jejich systemu o tom, ze protokol SSL ma byt otevrenou platformou pro vytvorení bezpecneho produktu pro vímenu duverních informací). Cypher pankeri predpokladají, ze casem zlomí vlídní dle nich nesmyslna omezení na delku klícce. A Jelcin v Rusku zavadí nutnost pouzívat klícce o delce 256 bitu. Prílohy áneb hrátky s RC4: • RC4 in 3 lines of perl: http://dcs.ex.ac.uk/aba/rc4.html, • RC4 v cecku: http://dcs.ex.ac.uk/äba/rc4.c , • Lamací projekt (mimo jiních): http://dcs.ex.ac.uk/ aba/brute-rc4.html. 9 Šifrovací algoritmus IDEA První verze tohoto algoritmu byla poprve prezentovana v roce 1990. Jeho autory jsou Xuejia Lai a James Massey. Autori dali tomuto algoritmu nazev PES (Proposed Encryption Standard). V prístím roce, kdyz Biham a Shamir prisli s diferencialní kryptoanalyzou, autori zesílili svuj algoritmus a nazvali ho IPES (Improved Proposed Encryption Standard), pozdeji (1992) byl nízev zmenen na IDEA (International Data Encryption Algorithm). Algoritmus IDEA se zda bít v dnesní dobe nejlepsím a nejbezpecnejsím verejne dostupním blokovím sifrovacem. Ale jeho budoucnost není uplne jasna. Není zde moc velka snaha prevzít ho jako nahradu za 234 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE DES. Zcasti proto, ze je patentovany a take proto, ze verejnost stale ceka na jeho odolnost proti kryptoanalyze prístích let. Velkím plusem pro IDEA je to, ze je soucístí sifrovacího systemu PGP. 9.1 Zakladní vlastnosti sifrovacího systemú IDEA IDEA je blokoví sifrovací algoritmus. Pracuje se 64-bitovími bloky vstupního textu. Klíc je pritom dlouhí 128 bitu. Pro desifrovaní je pouzit ten samí algoritmus jako pro sifrovaní. Myšlenka celého algoritmu je postavena na míchání tří algebraických operací. Všechny mohou být snadno implementovány jak hardwarově tak i softwarove. Jsou to: • XOR (na obrízku znízorneno modrím ©), • scítíní modulo 216 ((znízorneno zelením EB),) • nasobení modulo 216 + 1, kde nuloví slova (0x0000) jsou interpre-tovana jako 216 (znízorneno cervenym 0, na tuto operaci muzeme pohlízet jako na S-box z DESu). Vsechny tyto operace pracují na 16-bitovych blocích. 9.2 Popis systemú IDEA 64-bitoví blok se rozdelí na ctyri 16-bitove podbloky: X1, X2, X3 a X4. Tyto podbloky jsou potom vstupem pro první kolo algoritmu. Algoritmus celkem obsahuje osm kol. V kazdem kole se tyto podbloky XORují, scítají a nísobí mezi sebou navzíjem a s sesti 16-bitovími podklíci. Po kazdem kole se prohodí druhí a tretí podblok. Nakonec se na techto ctyrech podblocích provede vystupní transformace zkombinovaním se ctyrmi podklííci. V kazdíem kole algoritmu probííhajíí tyto operace: 9. ŠIFROVACÍ ALGORITMUS IDEA 235 1. Vynasobení X1 a prvního podklíce. 2. Sectení X2 a druheho podklíce. 3. Sectení X3 a tretího podklícce. 4. Vynísobení X4 a ctvrteho podklícce. 5. XOR vísledku kroku 1. a 3. 6. XOR vísledku kroku 2. a 4. 7. Vynísobení vísledku kroku 5. s pítím podklíccem. 8. Sectení vísledku kroku 6. a 7. 9. Vynísobení vísledku kroku 8. a sesteho podklícce. 10. Sectení vísledku kroku 7. a 9. 11. XOR vísledku kroku 1. a 9. 12. XOR vísledku kroku 3. a 9. 13. XOR vísledku kroku 2. a 10. 14. XOR vísledku kroku 4. a 10. Vístupem kola jsou ctyri podbloky, ktere jsou vísledkem kroku 11., 12., 13. a 14. Prohozením dvou prostredních podbloku dostaneme vstup pro dalsí kolo, kterí oznacme rovnez X1, X2, X3 a X4. Po osmém kole obdržíme finální výstup: 1. Vynasobení X1 a prvního podklícce 2. Sectení X2 a druheho podklícce 3. Sectení X3 a tretího podklícce 4. Vynasobení X4 a ctvrteho podklícce Nakonec spojením techto ctyr vístupních podbloku dostaneme zasifrovaní text. Vytvírení podklícu je take snadne. Algoritmus pouzíva celkem 52 takovích podklícu (sest pro kazde kolo a ctyri pro vístupní transformaci). 128-bitoví klíc se nejprve rozdelí na 16-bitove podklícce. Toto je prvních osm podklícu pro algoritmus (sest pro první kolo a dva pro druhe kolo). Potom klícc rotuje o 25 bitu doleva 236 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE a znovu se rozdelí na osm podklíčů. A tak dále až do konce algoritmu. Dešifrování je v podstatě stejné jako šifrovaní až na to, že podklíče jsou reverzní a mírne odlišne. Dešifrovací klíče jsou bud' aditivní nebo multiplikativní inverze sifrovacích klíčů. (Pro účely algoritmu IDEA bereme, že podblok složený ze samých nul reprezentuje 216 = —1 pro núsobení modulo 216 + 1; tedy multiplikativní inverze nuly je nula.) Tyto výpočty zaberou nejakí čas, ale stačí je vždy spočítat pouze jednou pro každí klíč. Tabulka ukazuje sifrovací podklíče a jim príslusne desifrovací podklíče: Kolo Šifrovací podklíCe Dešifrovací podklíce 1. 7(i) 7(i) 7(i) 7(i) 7(i) 7(i) 7(9)-1 7(9) 7(9) 7(9)-1 7(8) 7(8) 2. 7(2) 7(2) 7 (2) 7(2) 7(2) 7 (2) 7(8)-1 7(8) 7(8) 7(8)-1 7(7) 7(7) 3. 7(3) 7(3) 7 (3) 7(3) 7(3) 7 (3) 7(7)-1 7(7) 7(7) 7(7)-1 7(6) 7(6) 4. 7(4) 7(4) 7 (4) 7(4) 7(4) 7 (4) 7(6)-1 7(6) 7(6) 7(6)-1 7(5) 7(5) 5. 7(5) 7(5) 7 (5) 7(5) 7(5) 7 (5) 7(5)-1 7(5) 7(5) 7(5)-1 7(4) 7(4) 6. 7(6) 7(6) 7 (6) 7(6) 7(6) 7 (6) 7(4)-1 7(4) 7(4) 7(4)-1 7(3) 7(3) 7. 7(7) 7(7) 7 (7) 7(7) 7(7) 7 (7) 7(3)-1 7(3) 7(3) 7(3)-1 7(2) 7(2) 8. 7(8) 7(8) 7 (8) 7(8) 7(8) 7 (8) 7(2)-1 7(2) 7(2) 7(2)-1 7(1) 7(1) Výstupní transformace 7(9) 7(9) 7 (9) 7(9) 7(1)-1 7(1) 7(1) 7(1)-1 Rychlost algoritmu IDEA Současne softwarove implementace jsou asi dvakrat rychlejsí než DES. IDEA na stroji 386, 33 MHz sifruje data rychlostí 880 Kbit/s a na stroji 486, 66 MHz rychlostí 2.4 Mbit/s. Možna se to zda malo, ale nasobení není levna operace. Na vy^sobe^ dvou 32-bitovích čísel potrebuje procesor 486 čtyricet cyklu (pentium 10). Hardwarove implementace pak dosahují rychlostí až 177 Mbit/s. 9. ŠIFROVACI ALGORITMUS IDEA 237 9.3 Kryptoanalýza systemů IDEA Delka klícce algoritmu IDEA je 128 bitu, to je více nez dvakrat tolik co u DES. Pokud bychom chteli provest utok hrubou silou, potrebujeme 2128 (1038)-krat sifrovat. Predstavme si cip, ktery otestuje miliardu klícu za sekundu a nechme miliardu takovych cipu lustit klíc. Potom stejne bude rozlomení klícce trvat 1013 let, tedy vice nez je starí vesmíru. Pole 1024 takových cipu by klíc rozlomilo za jeden den, ale ve vesmíru ani není dostatek atomu kremíku k sestrojení takoveho stroje. Tedy utok hrubou silou není zrovna nejlepsí cesta, jak na IDEU zautocit. Ale na definitivní kryptoanalyticke výsledky je algoritmus stale jeste moc nový. Navrhari se snazili, aby algoritmus byl odolný vuci diferencialní kryptoanalyze. Definovali koncept Markovova sifrovace a ukazali, ze odolnost vuci diferencialní kryptoanalýze lze modelovat a kvantifikovat. (Na obrázku 2 je pro porovnání uveden puvodní PES algoritmus. Ten byl pozdeji zesílen proti diferencialní kryptoanalyze. Je zajímave, jak malo nekdy stací.). Lai tvrdí, ze IDEA je odolný vuci diferencianí kryptoanalýze uz po ctyrech kolech z osmi. Willi Meier zkoumal tri algebraicke operace pouzite v algoritmu. Ackoli jsou nekompatibilní, existují prípady, kdy mohou byt zjednoduseny tak, ze kryptoanalyza zabere pár procent puvodního casu. Jeho átok je efektivnejsí nez utok hrubou silou pouze pro dvoukolovy algoritmus. Pro tri a více kol uz je utok hrubou silou efektivnejsí. Osmi-kolový algoritmus je tedy bezpecný. John Daemen objevil trídu slabých klícu. Tyto klíce nejsou slabe ve smyslu slabých klícu pro DES. To, ze jsou slabe, znamená, ze pokud jsou pouzity, átocník je dokaze rozpoznat pomocí átoku z vybraneho textu. Takový slabý klícc je napr.: 0000,0000,0x00,0000,0000,000x,xxxx,x000 (hex). Na pozici, kde se vyskytuje x lze dosadit libovolne císlo. V kazdem prípade sance na nahodne vygenerovaní nejakeho takoveho klícce je velmi mala. Navíc je snadne modifikovat algoritmus tak, aby nemel zadne slabe klícce - pouzít operaci XOR na kazdy podklícc s hodnotou 0x0DAE. Pracovní mídy a varianty Zapojení dvou sifrovacu za sebe (double-IDEA) bude stejne jako double-DES nachylne na meet-in the middle utok. Ale, protoze klíc algoritmu IDEA je více nez dvakrat delsí nez klíc DES, je tento utok prakticky 238 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE neproveditelný. Utocník by potreboval pamet 1039 bytu. Pokud to stale nekomu nestací, lze pouzít tripple-IDEA: C = (Dk2 (Ek, (P))) Dalsí mozností je pouzít nezavisle podklícce. IDEA potrebuje 52 16-bitových klícu, tedy celkem 832 bitu. Tato varianta je jiste bezpecnejsí, ale nikdo neví o kolik. Pokus o variaci algoritmu by mohlo byt zdvojnasobení velikosti bloku. Algorimus by pracoval namísto s 16-bitovými podbloky s 32-bitovymi podbloky a s 256-bitovým klíccem. Kódovaní by bylo rychlejsí a bezpecnost by vzrostla 232-krýt. Ale - bylo by to opravdu tak? Teorie v pozadí algoritmu se opíra o fakt, ze 2i6 + 1 je prvocíslo. Ale 232 + 1 prvocíslo není. Algoritmus by se snad dal modifikovat tak, aby fungoval, ale mel by velmi odlisne vlastnosti z hlediska bezpecnosti. Lai tvrdí, ze by bylo obtízne prinutit takovýto algoritmus pracovat. I kdyz vypadý IDEA mnohem bezpecnejsí nez DES, není vzdy snadne v uz existujících aplikacích DES nahradit. Pokud jsou databíze a formulare navrzeny pro 64-bitovy klíc, je temer nemozne predelat je na 128-bitový klíc. Toto je mozno obejít zdvojením 64-bitoveho klícce - ovsem za cenu snízení bezpecnosti systemu. Pokud nekomu zalezí více na rychlosti nez na bezpecnosti, je mozne snízit pocet kol v algoritmu. V soucasne dobe je nejlepsí ýtok rychlejsí nez ýtok hrubou silou pouze pro mene nez 2,5 kolový algoritmus. 4-kolový algoritmus bude tedy dvakrat rychlejsí a - podle dnesních znalostí - i stejne bezpecný. Bez záruky IDEA je relativne novy algoritmus a mnoho otazek o nem zustava neodpovezenych. Je IDEA grupa? (Lai si myslí, ze ne.) Existují nejake dosud neobjevene cesty k rozbití tohoto algoritmu? IDEA mý pevne teoreticke zaklady, ale cas od casu i bezpecne vypadající algoritmus muze podlehnout nejake nove forme kryptoanalýzy. Ruzne akademicke a vojenske skupiny se snazily kryptoanalyzovat IDEU. Zatím vsak bez ýspechu. 10. pgp - pretty good privacy 239 10 PGP - Pretty Good Privacy Úvod PGP je kryptografickí aplikacní software autora Philipa R. Zimmermanna. V roce 1991 Phillip R. Zimmermann napsal PGP a dal ho k dispozici svím prítelum. Verze 1.0 vsak pouzívala kryptograficky slabí algoritmus, kterí byl v dalsích verzích nahrazen. V roce 1993 se objevila první tzv. mezinarodní verze 2.3. Klíccovou zmenou bylo zarazení algoritmu IDEA jako symetricke sifry. Na vívoji se jiz podíleli autori z celeho sveta, P. Zimmermann pusobil uz pouze jako koordinator prací. PGP vyuzíví system verejneho klícce RSA a algoritmus symetrickeho blokoveho sifrovaní IDEA. Ma pro-myslení system sprívy klícu a pouzíva se predevsím k autentizaci a sifrovíní zprív pro elektronickou postu. Presto je PGP pouze samostatním prostredkem a není soucístí zadneho standardního maileru. PGP je v soucasnosti k dispozici prakticky na vsech platformach od MS-DOS, OS/2, LINUX, SCO a mnoha dalsích typech operacních systemu. Pro uzemí Spojenych statu a Kanadu se do roku 1996 pouzívala pro komercní ucely legílní verze PGP pod nazvem ViaCrypt PGP verze 2.7.1. Pro ízemí mimo USA a Kanadu je pouze pro nekomercní vyuzití dostupny balík PGP verze 2.6.2i z kvetna roku 1995, kterí umoznuje maximalní delku verejneho klícce az na 2048 bitu. Tato verze PGP je v soucasnosti snadno prístupna na mnoha znamích ftp serverech v Evrope jako jsou treba : ftp.funet.fi nebo ftp.sunet.se. Od roku 2002 nove zalozena spolecnost PGP Corporation prisla na trh s novou verzí PGP 8.0. Ják pracuje PGP PGP je hybridní sifrovací system, kterí vyuzíví princip sifrovaní RSA s verejním klícem. Navenek se jeví jako program s verejnyím sifrovacíím klíícem, plne vyuzíívajíícíí asymetrickíeho sifrovíaníí. Kazdyí uzivatel si generuje jeden nebo více paru tajneho a verejneho klíce, pricemz se verejne klíce zverejnují. Tyto seznamy verejnych klícu se dají najít na mnoha serverech na Internetu. V prípade, ze hodlame poslat nekomu zpravu sifrovanou pomocí PGP, postupujeme takto : 24Q KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE 1. najdeme si verejny klíč adresata na Internetu, 2. PGP vygeneruje nahodní konvenční 128-bitoví symetrickí sifrovací klíč, 3. pomocí sifry RSA a verejneho klíče adresata se tento noví 128-bitoví klíč zasifruje do tvaru, kterí je pak zaslan v hlavičce zpravy 4. telo zprívy je zasifrovíno pomocí toho 128-bitoveho klícce prostrednictvím symetricke blokove sifry IDEA svycarskeho typu, kterí je dosud povazovína dokonce za silnejsí prostredek nez RSA (sifrovaní pomocí IDEI pouzívíme proto, ze je o hodne rychlejsí), 5. nakonec se spojí obe časti a zprava se vysle. System RSA tedy slouzí pouze jako zabezpečení prenosu konvenčního klícce. Mimo jine PGP take zpravu pred zasifrovaním komprimuje prostrednictvím kompresních podprogramu ZIP. PGP navíc umoznuje opatrit sifrovanou zpravu digitalní signaturou, kterí pak dovolí príjemci ujistit se o integrite a autenticite teto zpravy. Pro digitalní signaturu se pouzíva volne dostupní funkce jednosmerneho vzorkovaní zprívy MD5 (Message Digest Function). Ta vyprodukuje z puvodní zpravy kryptograficky silne 128 bitove číslo, ktere co nejlepe zaručuje integritu cele puvodní zpravy. Tento MD5 kód je posleze zasifrovín tajnym klíčem uzivatele. Príjemce po desifrovaní teto signatury pomocí verejneho klícce odesílatele zjistí, zda je zpríva originílní. V prípade, ze uzivatel pouzije noví typ klícce DH/DSS, bude se sifrovat asymetrickím algoritmem Diffie-Hellman (ElGamalova varianta) a jako symetrickou sifru lze vybrat ze trí variant: IDEA (128 efektivních bitu klíče), TripleDES (168 bitu) nebo CAST (128 bitu). Pri podepisovaní se pouzíva asymetricka ssifra DSS a SHA-1 kontrolní součty (hash). Systém správy klíčů System spravy klíčů je dulezitou součístí PGP. Jednotliví par tajneho a verejneho klícce pro RSA se vytvarí na zíklade dialogu s programem PGP. Programu muzeme ríct jakou delku ma mít klíčč - od 512 bitu az do delky 2048 bitu včetne. Program se take taze na jakousi frázi hesla, ktera muze bít libovolne dlouha a ma 10. PGP - PRETTY GOOD PRIVACY 241 byt snadno zapamatovatelná. Tato fráze je veliče dulezitá, protoze jsou podle ní tajná hesla sifrována pomočí konvenčního sifřovačího algoritmu IDEA. Při kazdem pouzití sveho tajneho klíče se pak program PGP na tuto fřázi ptá. Je to jakási pojistka pro PGP. Program PGP nám tak vytvoří 2 soubory, ve kteříčh učhováví vsečhna hesla, která byčhom mohli pozdeji potřebovat. Soubor 'pubřing.pgp' obsahuje vsečhny veřejne klíče uzivatele + veřejne klíčče vybřáníčh adřesítu a tento soubor neustále roste. Druhí soubor 'sečring.pgp' obsahuje tajníe klíŠče uŠzivatele, kteríe jsou zakoídovíany pomočí fríaze. Je tŠreba veliče peŠčlivŠe čhríanit soubor tájnyčh klíču a take frázi hesla. Při komunikači s jiními osobami budeme potřebovat jejičh veřejne klíčče. Takovy klíč mí nekolik atributu: ID - binírní číslo, jednoznačná identifikače, např. 0x59159CF1 User ID - identifikače osoby (skupiny osob), kterím klíč patří. Kazdy klíč muze mít víče takovíčh uzivatel-skyíčh jmen. Signature - podpis jiním klíččem, vyjádření jistoty jine osoby, ze klíč patří skutečne teto osobe. Podpisu muze bít opet libovolne mnozství. Podepisují se jednotliví User ID, dáváte tedy pouze najevo, ze podepsaníe uvedeníe uŠzivatelskíe jmíeno neníí podvrh. Photo - od verze 6.0 lze do klíču vkládat fotografie uzivatele ve formítečh JPEG a BMP. Data - samotnyí klíŠč, obsah zíavisí na typu klíŠče. zaver Daí se pŠredpoklaídat, Šze bezpeŠčnost PGP je pro nejbliŠzŠsí dobu zajiŠstŠena velmi dobŠre. Nabourat PGP lze snad jen tak, Šze se podaŠrí rozluŠstit konvenŠční symetričkou Šsifru IDEA, nebo faktorizovat Šsifrovačí modul Šsifry RSA. IDEA pouŠzívía 128-bitovíy klíŠč a zatím nebyly publikovíany Šzíadníe zíasadní slabiny. JelikoŠz lze zvolit delku klíču pro RSA az do 2048 bitu, lze předpokládat i zde, ze PGP obstojí. 242 KAPITOLA S. SSIFROVYI STANDARD DES A JEHO KOLEGOVEI Kapitola 9 Nahodne sifrovaní Se zavedením náhodnyčh nebo pravdepodobnostníčh kryptografičkyčh tečhnik bylo umozneno navrzení vhodne definiče matematičke bezpečnosti kryptografičkeho systemu a dokázíní toho, ze jiste kryptosystemy jsou bezpečne podle tečhto definič (za vhodnyčh předpokladu z teorie slozitosti). Tyto pravdepodobnostní kryptosystíemy pouŠzívají jednosmŠerníe funkče a funkče s vlastností padačíčh dveŠrí v daleko komplexnŠejŠsí míŠre nez tomu bylo u deteřministických sifrovačíčh systemu. Ačkoliv pouzití pravdepodobnostníčh tečhnik nebylo v kryptografii nic noveho, novinkou byla dokazatelna uroveň bezpečnosti. Dokazujeme-li, ze kryptografickí system je bezpečný, je dulezite opatrne specifikovat, ktere zpusoby utoku muze nepřítel Mr. X podniknout. Např. system muze bít bezpečný proti slabemu ítoku (pasivní odposlech), ale není uŠz bezpeŠčníy proti silnŠejŠsímu uítoku (aktivní odposlečh a manipulače s komunikaŠční linkou). Nejjednodussí formou utoku je, ze pasivní nepřítel pouze sleduje legitimní uzivatele kryptografičkeho systemu. Muze znát pouze kryptogramy nebo nejake dvojice otevřeneho a mu odpovídajícího sifroveho textu (a known-plaintext attack). V případe pouzití veřejneho klíčče pak muze generovat polynomiální počet dvojic otevřeneho a mu odpovídajíčího Šsifrovíeho textu. PotenčioníalnŠe nebezpeŠčnŠejŠsí uítok, kteríy je povaŠzovían za realističkyí v praktičkíem pouŠzití, je uítok nepŠrítele, kteří je legitimním oprávnením uzivatelem systemu. Nepřítel pak muze podniknout vsechny akce dovolene FI 243 244 KAPITOLA 9. NAHODNE ŠIFROVANÍ legitimnímu uzivateli predtím, nez se pokusí desifrovat sifroví text zaslaní mezi dvojicí uzivatelu. Muzeme obecne predpoklídat, ze neprítel muze manipulovat komunikacním kanalem mezi kazdou dvojicí legitimních uzivatelu a dokonce muze pouzívat jejich kryptograficke zarízení (ale nemuze získat jejich klícce). Napr. pomocí tzv. chosen-ciphertext attack muze neprítel získat otevreny text pro kryptogram dle sveho vyíbSeru. Nepríteluv uspžch by mel bít definovín co mozna nejvelkomyslneji - totiz dukaz bezpecnosti systemu by mSel zamezit i tu nejslabSsí formu nepSrítelova uíspSechu. Skromní cíl nutní pro tvorbu kryptosystemu je, ze vetsinu zprav nemuze neprítel odvodit jenom z kryptogramu. To je vSsak aSz pSríliSs skromnyí cíl, protoSze neSreSsí níasledující problíemy: • kryptosystíem není bezpeScnyí pro jistía pravdSepodobnostní rozloSzení prostoru zpríav (napSr. prostor zpríav sestíavía pouze z polynomiíalního poSctu zpríav, kteríe nepSrítel znía), • parciaílní informace o zpraívíach lze snadno spoScítat z kryptogramu, • lze snadno urScit jednoduchíe, ale uSziteScníe fakty o transmisi zpríavy (napSr. kdySz je jedna a tatíaSz zpríava odeslíana vícekríat). 1 Náhodnost v sifrováčím procesů V tomto odstavci se budeme vSenovat pouSzití níahodnosti v Ssifrovacím procesu. Prvním diskutovanyím pojmem je nalezení Ssifrovacích schíemat, kteraí jsou semanticky bežpežcna. To jsou takovaí schíemata, ktería zajiSst'ují bezpecnost vsech cístecních informací o prenaseních zpravích (uved'me napr. Goldwasseruv a Micaliuv kryptosystem). Toto je pak tesne spjato k nevyresením problemum nalezení kryptograficky bežpecnych pseu-donahodních císel. To jsou posloupnosti, v kterych nemuze neprítel Mr. X v realnem case predpovedet s uspechem vetsím nez je prumerní íspech, s jakym bude vyslano dalsí císlo. 2. SÉMANTICKÁ BEZPEČNOST A GOLDWASSER-MICALIHO SCHÉMA 245 Totéž schéma znáhodnění šifrovacího procesu spočívá na praktickém řešení fundamentálního problému vyřešeného A.D. Wynerem, když v roce 1975 spojil teorii informace, kódovaní a pseudonahodna císla ve sve príci o tzv. Wynerové odposlouchávacím kanalu. Homofonická substituce Nejjednodussí nahodné sifrovací schéma je tzv. homofonicka substituční šifra. Zprava M je retézec z abecedy Ei. M je žaSifrována do nahodného sifrového textu C nad abecedou E2, kde |Ei| < |E2|. Mí-li abeceda E1 t symbolu, lze E2 rozlozit na disjunktní neprazdné podmnoziny Aj, (1 < i < t) tak, ze symbol s j je níhodné zasifrovan do prvku z podmnoziny A j. Klíc K systému je usporadaní rozklad (Ai,...,At). Cesta, pomocí které nahodnost zvísí uroven bézpecnosti, je jasna. Zvétsení poctu klícu nam zvysí uroven dvojsmyslnosti textu. Platba za nahodné sifrovaní spocíva v tom, ze pro kazdí klíc kazda zprava odpovída nékolika sifrovym textum, tj. mnozina kryptogramu bude vétsí nez mnozina zprav. Abychom toto vyrovnali, musííme míít zajisteno jistíe rozsííreníí v komunikacníím kanaílu, protoze je potreba vííce informace na urceníí kryptogramu nez na urceníí otevreníeho textu. Mluvííme pak o píasovíe expanzi. Tento postup se nutne objevíí v kazdíem níahodníem sifrovacíím schíematu. Tato myslenka není vubec noví. Napr. Gauss se domníval, ze objevil nenapadnutelnou sifru zavedením homofonu. Dalsím príkladem homofonní sifry byla Jéfférson-Baziérova koloví sifra a její variace pouzívané ve Spojeních stítech v obou svétovych valkích. 2 Sémantická bezpeCnost á Goldwásser-Micáliho schemá Šifrovací schémata, kterí zajist'ují bézpecnost vsech castécnych informací o zpravach, jsou zrejmé dulezité cíle kryptografického zkoumaní. Takovato schémata se nazývají sémanticky bezpečna. 246 KAPITOLA 9. NÁHODNE ŠIFROVANI Problemem semanticke bezpecnosti jsme se v predchozím nezabyvali. Napr., ta bezpecnost, o ktere jsme predtím mluvili, nam nezajistila, ze nektere z bitu zakýdovanych RSA-algoritmem nebo DES-algoritmem jsou snadneji urcitelne nez jine. Pokusíme se neformýlne popsat resení takovýchto problemnů. Príklad. Uvazme system s verejným klícem zalozený na faktorizaci prirozeneho císla N, ktere je soucinem dvou prvocísel p a q. Obecný problem urcení p a q z N je velmi obtízný, ale pokud poslední císlice N je 3, snadno získýme cístecnou informaci, ze poslední císlice p a q jsou bud' 1 a 3 nebo 7 a 9. Zvlístní prípad semanticke bezpecnosti je bitové bezpečnost, který zajist'uje, ze nejenom celou zpravu nelze desifrovat, ale ze nelze získat i jednotlive bity. Poprve se tímto problemem do hloubky zabyvali Goldwasser a Micali v roce 1982. Ti pak navrhli nove semanticky bezpecne schema zalozene na nahodnem sifrovaní. Toto schema je rozsírení myslenky verejneho klíce, ale zabýva se zakýdovíním zprývy bit po bitu. Aktualní zasifrovaní jednoho bitu zavisí na zprýve a na vysledku posloupnosti vrhu mincí. Je pak zcela bezpecne vzhledem k pojmum bitove a semanticke bezpecnosti (za predpokladu ze císelne-teoreticky problem) rozhodnutí, zda císlo je kvadraticky zbytek, je teZký. Popisme nyní aktualní sifrovací proceduru. Uvazme zpravu M jako posloupnost bitu MiM2 ... Mn a zasifrovaním kazdeho bitu jako retezce. Predpokladejme, ze A si preje odeslat zpravu M príjemci B. Nejprve si B vybere svuj verejný/soukromý klíc pomocí nasledujícího postupu. 1. Níhodne vybere dve k-bitoví prvocíslap a q a necht' N = p-q. Faktorizace (p, q) císla N bude soukromý klíc príjemce. 2. Vybere nahodne takove císlo y z císel nesoudelnych s císlem N tak, ze y je kvadratický nezbytek vzhledem k N. 3. Zverejní jako svuj verejný klíč usporadanou dvojici (N, y). Odesíílatel A zakíoduje svoji zpraívu M = MiM2 . . . Mn podle naísledujíícíího algoritmu. 2. SEMANTICKA BEZPEČNOST A GOLDWASSER-MICALIHO SCHEMA 247 Šifrovací algoritmus Pro každý bit Mi A vybere náhodně číslo x z množiny čísel N * = {z : 1 < z < N, (N, z) = 1}. Mi pak zakóduje jako ( ) = í yx2 mod N pokud Mi = 1, (2n e(Mi) = \ x2 mod N pokud Mi = 0. () Kryptogram C ma pak tvar C = e(Mi)e(M2)... e(Mn). (2.2) Protože N je 2k-bitove prirozene číslo, je jasne, že kryptogram je mnohonasobne delSi než M. Pro okamžik predpokládejme, že sifrovačí proces a vytvorení registru verejných klíčů lže provest v polynomiálním čase (ve skutečnosti v čase O(nk2)). Venujme se nyní desifrovačímu pročesu provadenem príjemčem B. Dešifrovací algoritmus Ožnačme prirožena čísla e(Mi) jako ei, 1 < i < n. Pak pročedura pro deSifrovýní je snadní: je-li ei kvadratičkí žbytek modulo N, je Mi = 0, není-li ei kvadratičkí žbytek modulo N, je Mi = 1. Dodateční (trapdoor) informače príjemče B je, že, protože žní faktorižači M na prvočísla p a q, je sčhopen veliče ryčhle rožhodnout ž Eulerova kriteria, žda je či není ei kvadratičkí žbytek modulo p a q. Protože to nastaví prave tehdy, když ei je kvadratičkí žbytek modulo N, jsme hotovi. Příklad. Uvažme Goldwasser-Mičaliho system s s bežpečnostním parametrem k. Pak sifrovačí algoritmus e žasle bit Mi = 1 do jednoho ž čísel yx1,yx'2^,...,yx2V{N) (modN), kde x1,x2,..., xip(N) (mod N) leží v N * a (N, y) je príjemčuv verejní klíč. 248 KAPITOLA 9. NÁHODNE ŠIFROVANÍ Šifrovací algoritmus e zasle bit Mj = 0 do jednoho z čísel x?,x2,---,xJ(w) (mod N )- Aby bylo sifrovaní bezpečne, musí bít N dostatečne velke, aby bylo prakticky nemozne rozhodnout, zda se jednía o kvadratičkyí zbytek či ne. Protoze to zaívisíí na faktorizači N, musíí míít N alespon 200 čííslič. Tedy jednía se o velmi neefektivníí algoritmus a mííra komunikače drastičky klesía. FI+ Popisme nyníí typ nepríítele, se kteryím jsme pripraveni se utkat. Predpoklíadejme, ze míame čo činit s pasivníím odposloučhíavačem prenosovíe linky, kteryí znía prostor zpríav, pravdepodobnostníí rozdeleníí zpraív a sifrovačíí algoritmus. Necht' zna díle kryptogram a pokousí se z neho získat zpravu. Pokud dovolííme nepŠrííteli neohraniŠčenou dobu a víypoŠčetníí kapačity, bude sčhopen rozluŠstit zpraívu pouŠzitíím uplneho prohledavaní. Co ale skutečne chceme, je situace, ve ktere neprítel nemuze spolehat na to, ze rozŠsifruje kryptogram v rozumníe dobŠe. Pokud budeme uvazovat Goldwasser-Micaliho schema, poznamenejme nasledující: (a) Kazdy bit je zasifrovín jako prirozene číslo modulo N a tedy je transformovín do 2k-bitoveho retezce. (b) ÍŠifrovací funkce e je nahodní v tom smyslu, ze tentíz bit muze bít transformovan do ruzních retezcu v zavislosti na vyberu nahodne promenne x. Proto mluvíme o pravděpodobnostním šifrování. Bezpečnost systemu zavisí na predpoklídane nemoznosti rozhodnutí neprítelem, zda se jedna o kvadratickí zbytek modulo N a toto pak zavisí na delce N, tj. na 2k. Lze tedy povazovat k za bezpečnostní parametr naŠseho Šsifrovačího systíemu. Jakmile budeme povaŠzovat k za naíŠs parametr, ptíame se nyní, zda nikdo omezeníy Ščasem ohraniŠčenyím polynomem v k nemuze prolomit sifrovací system. Goldwasser a Micali dokazali, ze jejich system ma tuto vlastnost v extremne silnem smyslu. Predpokladejme, ze si muzeme predstavit neprítel Mr. X jako prodavače zarízení na prolomení kodu. Aby byl schopen demonstrovat svoje zbozí, spustí svuj polynomiílne omezení prístroj T na odposlech linky. Pak 2. SEMANTICKA BEZPEČNOST A GOLDWASSER-MICALIHO SCHEMA 249 pouzije hledač zprév F s vípočetními zdroji omezeními polynomem v k, aby prohledal prostor zprív M1 a M2 tak, ze zasifrování M1 a M2 jsou rozlisitelní přístrojem T. Rekneme, ze system je polynomiálne bezpecny, jestlize polynomiálne omezeny hledač zprív F nemuze najít dve zpríavy M1 a M2, kteríe jsou rozlisitelníe polynomiaílne omezenyím príístrojem T na odposlečh linky. To znamená, ze je-li díno C (kryptogram vzniklí bud' z M1 nebo z M2), T by nemel získat zídnou víhodu v porozumŠeníí toho, ktería ze dvou zpríav M1 a M2 byla zaŠsifrovíana do kryptogramu C. Goldwasserovi a Micalimu se podařilo dokázat o svem sifrovacím schematu, ze je semanticky bezpečne proti kazde pohruzce polynomiálne omezeneho ítočníka za předpokladu, ze problem kvadratickeho zbytku je obtízní v nísledujícím smyslu. Pro kladne přirozene číslo k je mnozina Hk obtíznych slozenych prirozenych císel definována jako Hk = {N : N = p • q, kde p a q jsou k—bitová prvočísla}. Predpoklad, ze problem kvadratickeho zbytku je nezvladnutelny Bud' P a Q pevne polynomy. Pro kazde přirozene číslo k, bud' Ck booleovskí obvod se dvema 2k—bitovymi vstupy a jedním booleovskíym vyístupem s níasledujíčími vlastnostmi: (a) Je-li dín vstup (n, x), pak Ck sprívne rozhodne pro alespon čísel n z Hk, zda je či není x kvadraticky zbytek modulo n pro kazde přirozene číslo x mensí a nesoudelne s n; (b) Ck mí ze vsech takovíchto booleovskích obvodu splnujících (a) minimílní počet vnitřních vrcholu (bran). Pak, pro dostatečne velike k, je počet vnitřních vrcholu obvodu Ck alespon Q(k). Na základe vísledku získanych Goldwasserem a Micalim vyvstívá přirozená otázka: jak bezpečne jsou bity podstatne praktičtejsích sifrovacích schemat jako jsou RSA a Rabinova schemata s veřejním klíččem? Goldwasser, Micali a Tong dokázali, ze specificke bity jak RSA tak Rabinova schematu byly bezpečne v tom smyslu, ze nalezení nejmensího signifikantního bitu otevřeneho textu je ekvivalentní narusení celeho 250 KAPITOLA 9. NÁHODNE ŠIFROVANI RSA systemu. Tento vísledek byl zesílen Ben-Orem, Chorem a Shamirem v roce 1983, kde dokazali, ze kazdí metoda, kterí určí nejmene podstatní bit musí bud' mít pravdepodobnost chyby 4 — e nebo musí bít schopna prolomit zcela RSA-algoritmus. Alexi, Chor, Goldreich a Schnorr v roce 1984 ukazali, ze získaní jakíekoliv vyíhody ve zjiŠstŠení nejmíenŠe podstatníeho bitu je ekvivalentní rozluŠstŠení čelíe zpríavy. Goldwasser-Micaliho schema lze prirozením zpusobem zobecnit. Poznamenejme, ze predikátem s vlastností padacích dverí je booleovskí funkce B : {0,1}* — {0,1} takova, ze je snadne v očekavanem polynomiílním čase za vstup delky k a vístup v vybrat níhodne x tak, ze B(x) = v a |x| < k; a zadní neprítel pracující v polynomiílním čase nemuze, pro níhodne vybrane x g X tak, ze |x| < k, nemuze spočítat B (x) s pravdepodobností vetsí nez 1 + , pro vsechna c > 0 a pro dostatečne velke k; je-li vsak znama informace 0 padačíčh dveŠríčh, lze snadno spoŠčítat B(x). Bud' daíle B predikaít s vlastností padačíčh dveŠrí a k bud' bezpeŠčnostní parametr systíemu. VeŠrejnyí klíŠč uzivatele A obsahuje popis B a jeho tajny klíčč obsahuje informaci o padacích dverích. Nyní muze uzivatel B odeslat uzivateli A soukromou zpravu M = mim2... mk (to je M v binarní notaci) nísledovne: pro 1 = 1,...,k B 1. nahodne vybere binarní retezec xj delky nejvíse k tak, ze B(xj) = 2. odesle xj k A. Pro desifrovaní zpravy pak uzivatel A, kterí zna informaci o padacích dverích, vypočte B(xj) = mj pro vŠsečhna i = 1 , . . . , k. Platíí pak níasledujííčíí vŠeta. Věta 2.1 Goldwassěr-Micali Existuje-li predikat s vlastností padacích dverí, je vyse uvedení pravdrpodobnostní rifrovačí schema s verejným klíčem bezpečne v polynomiální dobe. FI 3. KRYPTOGRAFICKY BEZPEČNA PSEUDONAHODNA CISLA 251 3 Kryptograficky bezpečná pseudonáhodná čísla Problém nalezení nepředpověditelnych pseudonáhodných čísel je těsně svázán s náhodným zašifrováním. Je-li dáná metodá pro generování tákovýchto posloupností, lze ji uZít jáko zdroj pribliZneho one-time pád sýstemu, který je bezpečný, zátímco lineární posouvácí registry bezpečne nejsou. Bezpečne právdepodobnostní sifrovácí schemá zálozene ná mýslenkách Goldwásserá á Micáliho, ále podstátne efektivneji implementovátelne, je schemá Blumá á Goldwásserá (1985). Zákládní ideá schemátu je zásifrovíní zprávý tím, ze ji secteme modulo 2 s nepredpoveditelnou pseudonáhodnou posloupností. Predpoklídejme, ze A á B si prejí tájne komunikovát á proto sdílí spolecní generátor náhodných císel á spolecnou tájnou informáci s. Abý mohl odeslát A blok otevreneho textu M1M2 ... k uziváteli B, odesílátel A pouzije s pro výgenerovím posloupnosti pseudonahodných císel X^X2,..., á vývorí krýptográm C = C1C2 ..., kde Ci = Mi + Xi (mod2). (3.1) Nebezpecí pro tento sýstem spocívá v tom, ze neprítel muze mít nejáko dodátecnou informáci, která mu umozní nájít nektere Xi. Ná zíkláde techto ználostí bý pák mohl být schopní výgenerovát zbýtek posloupnosti á tedý prolomit krýptográm. Príklad 3.1 Jedná z nejpopulýrnejSích á nejrýchlejsích metod získání pseudo^^d^ch posloupností je pouzití metodý lineárních kongruenčních generátorů. Tý sestávájí z modulu N, násobku a nesoudelním s N á pčírustku c. Zácneme z níhodne tájne informáce X1. Posloupnost (Xn : 1 < n < to) je urcená vztáhem Xra+i = aX„ + c (mod N). (3.2) Jsou tedý vsechná Xi pfírozená císlá mezi 0 á N — 1. Lze dokázát, ze výtvorene posloupnosti spmují mnoho ruzních testu náhodnosti pro vhodný výber párámetra a, c á N. Proto je táto lineární kongruencní metodá siroce pouzíváná. 252 KAPITOLA 9. NAHODNE ŠIFROVANI Tato metoda není vsak kryptogragraficky bezpecní. Ze znalosti vsech bitu nekolika po sobe jdoucích Xk lze odvodit parametry a, c a N. Lze dokonce dokízat, ze zbytek posloupnosti je temer vsude predpoveditelní v polynomiílním case za predpokladu, ze jsou díny alespon | vedoucích bitu prvních mílo císel. Neformílní popis kryptograficky bežpecneho generatoru nahodních císel (RNG) je nasledující. Zacneme s tajnou informací s s n pravdivími nahodními bity. Generítor pak s musí pouzít, aby vytvoril v case polynomialním v n, posloupnost bitu s vlastností, ze pro daní generítor a prvních t bitu Xj, ale bez moznosti tajne informace s, je vípocetne nemozne predpovedet Xt+1 s pravdepodobností vetsí nez 2. O takovemto generatoru rekneme, ze prosel testem naísledujíícíího bitu. Presneji pak bude nase protivníík byít zníamyí jako prediktor. Prediktor je pravdepodobnostmíí polynomiíalníí casovy algoritmus P, kterí se pokousí predpovedet dalsí bit generatoru bitu G(x) vzhledem k jeho pocatecním bitum. Kazdí dobrí generator pseudoníhodních by mel bít nepredvídatelní, a tak definujeme test nasle-dujíícíího bitu, Sze prediktor musíí selhat tíemSeSr polovinu doby. Test následůjícího bitů Nahodne vybereme x G {0,1}k a vypocteme G(x) = y1y2 ... //z(k), kde /(k) > k je delka vístupu retezce G(x) na vstupu x delky k. Zadejme prediktoru P vstup 1k. i <— 1 Dokud i < /(k) P bud' pozadí o dalsí bit, y, nebo dí na vístup hídane b pokud P da na vístup hadane b, pak test koncí a P projde testem nasledujícího bitu prave tehdy, kdyz b = y/j. jinak P obdrzí nísledující bit /ji i <— i + 1. P selžže, pokud se nepodaSrilo algoritmu híadat. 3. KRYPTOGRAFICKY BEZPEČNA PSEUDONAHODNA CISLA 253 Ríkame, ze bitoví generator G je pseudonahodny generétor, pokud pro kazdy prediktor P je pravdépodobnost toho, ze P projde testem nísledujícího bitu nanejvís nepatrné vétsí nez 2. Tj., pro x g {0,1}k, Pr[P projde testem nísledujícího bitu na vstupu 1k] < 1 + neg(k). (PŠripomenŠme, Šze funkce je zanedbatelnaí, pokud je eventuaílnŠe menŠsí neŠz je inverze k jakíemukoliv pozitivnímu polynomu.) TakŠze pseudoníahodníy generaítor produkuje bity, kteríe jsou v zaísadŠe nepŠredvídatelníe pro kaŠzdíeho rozumníeho protivníka. Tato definice není mozna tak silní, jak bychom chtéli. Pseudonahodní generator by mél mít tu vlastnost, Šze bity, kteríe produkuje, jsou k nerozeznaíní od tŠech, kteríe vytvoŠril opravdu níahodnyí zdroj. Blum a Micali vytvorili první metodu pro tvorbu dokazatelné bézpécních generatoru pseudoníhodnych bitovích posloupností zalozenou na pouzití jednocestních predikatu. Necht' tedy D znací konecnou mnozinu, f : D — D je permutace na D, kterí mí vlastnost jednosmerné funkce, a necht' B je funkce z D do {0,1} takovaí, Šze • je-li díno x = flze snadno vypocíst B(y), • je-li dano pouze y, lze B(y) obtízné vypocítat. Je-li dana tajní informace x0 g D, muzemé vytvorit posloupnost x0,x1,...,xra pouzitím rekurentního predpisu xi+1 = f (xj). Abychom vytvorili binarní posloupnost b0,..., 6ra_1 délky n, definujme 6» = B(xra_i). Uvedomme si obrícené usporadíní vzhledem k posloupnosti x0, x1,..., xn; musíme nejprve vypocíst vsechna x0, x1,..., xn a teprve pak spocítat 60 z xn, ..., z x1. UkaŠzme, Šze tento generíator splnŠuje test níasledujícího bitu. PŠredpoklíadejme opak. Pak získíame spor tím, Šze ukazeme, jak lze spocítat B (y) z y. Protoze f je permutace, existuje x0 tak, ze y = xn_i_1 v posloupnosti generované z x0. Pro dané y = xn_i_1 muzeme spocítat xra_i,xra_i+1, ..., xn pomocí f a pak vypocteme 60,... ,6 z y. Muzeme-li pak urcit efektivné = B (xn_i_1) = B (y), získame spor s tím, ze je obtízné spoŠcítat B(y) pouze z y. V roce 1982, Blum a Micali navrhli generator splňující test nasledujícího bitu za predpokladu, ze problém vypoctení diskrétního algoritmu je obtéZny v tom smyslu, ze jakmile budou vstupy dostatecné velké, kazda 254 KAPITOLA 9. NÁHODNE ŠIFROVANÍ efektivní procedura pro výpočet diskrétního logaritmu by nefungovala alespon pro jistou pevnou část vstupů. Definujme B (x) = Bfl)P(x) = 1, pokud loggx mod p < a B(x) = Bfl)P(x) = 0 jinak, kde p je prvočíslo, g je generator multiplikativní grupy Zp a x G Zp. Dale klademe f (x) = /fl,p(x) = gx mod p. Je-li vypočet diskrétního logaritmu skutečne obtíižný, budou vytvorene posloupnosti neprédpovídatelne. Ačkoliv je Blum-Micaliho generator mezník v historii problemu, nelze jej snadno používat či popsat a navíč byl prédstilmut jinými praktičtejsími a efektivnejsími systemy. Věta 3.2 Blum-Micali Je-li vypočet diskrétního logaritmu obtížný, je Blum-Micaliho generator pseudona-hodný generátor. FI+ L. Blum, M. Blum and Shub (1983) navrhli tzv. x2 mod N generátor, ktery lze jednoduseji implementovat a lze dokazat, že je bezpečny vzhledem k testu nasledujíčího bitu za predpokladu, že problem kvadratičkeho zbytku je obtízní. Tento generator funguje stejne jako obečna Blum-Mičaliho metoda s volbou /(x) = x2 mod N a B (x) = 1, pokud je x ličhe, a B (x) = 0 jinak. Pritom počíteční tajna informače x0 je kvadratičkí zbytek modulo N, N je obvykle součin dvou prvočísel stejne delky, pričemz kazde z tečhto prvočísel je kongruentní se 3 modulo 4. Alexi, Chor, Goldreičh a Sčhnorr (1984) dokazali, ze predpoklad, ze problem kvadratičkeho zbytku tezkí lze nahradit prédpokladem, ze faktorizovíní je tezke. Zaved'me nyní pojem statistického testu v polynomiálním čase. Bud' G generator pseudonahodnyčh čísel, kterí roztahne k—bitovou vstupní tajnou informači do p(k)—bitove posloupnosti, kde p je nejakí pevní polynom. Bud' dale Sk mnozina vsečh p(k)—bitovíčh posloupností vytvoreníčh generátorem G z k—bitovíčh vstupníčh tajníčh informačí. Statistický test v polýnomiélním čase je níhodní algoritmus A, kterí se, pro daní vstupní rétezeč delky n, zastaví v polynomialním čase v n a da na vístup 0 nebo 1. Generítor G projde testem A, jestlize, pro kazde prirozene číslo t a vsečhna dostatečne velka k, mame IPÍ — PRI 0 a dostatecne velký k platí ipS—21 0, existuje kodovací a dekodovací algoritmus s parametry n a k tak, ze - > R - e, H(X|Z) > d-e, Pe < e, (4.2) nk kde P je rychlost chybovíeho dekoídovíaníí na bit u legitimníího prííjemce. Díale platíí H(S| Z) = H(S, Z) - H(Z) = H (S, C, Z) - H (C|S, Z) - H (Z) = H (z|S, C) + H (S, C) - H (C|S, Z) - H (Z) (4.3) = H (z|s, c) + H (S|C) - H (Z) + H (C) - H (C|S, Z) = H (z|s, C) + H (s|c) + [H (C) - H (Z)] - H (C|S, Z). Pritom níhodní vektor C modeluje zasifrovanou zpravu, tj. T (G, s) = c, ktera je vyslana pri pouzití syndromovíeho vektoru s. Pokud vííme hodnotu C = c, pak znaíme i hodnotu vektoru S = s a naopak. Proto pak mame H(Z|C, S) = H(Z|C). Abychom mohli 4.3 upravit, musíme udelat doplnující predpoklady o binírním symetrickem kanalu, pres kterí neprítel odposlouchaví prenasene zpravy. Jak vyslanou sifru C tak odposlechnutou zpravu Z muzeme povazovat za nahodne vektory C = (C1,... , Cn), resp. Z = ... , Zn). Pritom níhodne veliciny Cj, resp. Zj nabívají hodnot 0 a 1 s príslusními pravdepo-dobnostmi. Pripomenme, ze binarní symetrickí kanal se nazíví bez pameti, jestlize n P (Z = z|C = c) = J] P (Zj = Zj|Cj = Cj). (4.4) j=1 260 KAPITOLA 9. NAHODNE ŠIFROVANI Označme h(x) = —xlogx — (1 — x)log (1 — x). Pripomeňme, ze pravdepodobnost vstupu znaku 1 do binarního symetrickeho kanílu bez pameti je P(Cj = 1) = p' = 1 — P(Cj = 0) a chybovost kanílu, tj. P(Zj = 1|Cj = 0) = P (Z = 0|Cj = 1) = e. Pak entropie vstupu bude H (Cj) = h(p') a entropie zachyceních zprav bude H (Zj) = h (p' + p — 2pp'). Díle bude platit pro podmínene entropie H (Zj|Cj = 0) = H (Z |Cj = 1) = H(Zj|Cj) = h(p). Odtud pak n H(Z|C) = J] H(Zj|Cj) = n • h(p). (4.5) Zaroven lze z teorie informace dokízat, ze entropie sifroveho vektoru C je mensí nebo rovna entropii odpo-slechnuteho vektoru Z. Protoze vzdy H(C|S, Z) > 0 a H(S|C) = 0, je H(S|Z) < H(Z|C) = n • h(p). (4.6) Zejmíena tedy pro pňríísluňsnou mííru dvojsmyslnosti obdrňzííme k • d < n • h(p) tj. R • d < h(p). (4.7) Dokíazali jsme tedy níasledujííčíí tvrzeníí: Věta 4.2 Pri pouZití syndromoveho kryptosystemu o prenosovem pomeru R, míre dvojsmyslnosti d a chybovosti symetrickíeho binaírníího kanaílu bez pameti, pres kteryí nepríítel odposlouchíavía zpríavy platíí nerovnost R • d < h(p). V prípade, Ze prenos zprív mezi odesílatelem a ádrísátím není bezsumovy a pravdepodobnost chyby na jeden vyslaní znak je Pp = k P (S = S'), je R • [d — h(Pp)] < h(p). Vyíňse uvedeníe tvrzeníí je pak ekvivalentníí s tvrzeníím: Věta 4.3 Je-li hlavní kaníl bez sumu a odposlouchavacův binírní symetricky kaníl ma pravdepodobnost chyby p, je dvojice (R, d) dosazitelna, 0 < R, d < 1, prave tehdy, kdyz R • d < h(p). 5. PRAVDEPODOBNOSTNI PODPISOVAC SCHEMATA 261 Popisme dale obecnéjsí Wyneruv vísledek. Nasím íkolem je maximalizace prenosu zprav k legitimnímu pňríjemci a zíarovenň udrňzení nejistoty odposlouchíavaňce nad jistou hodnotou. Pomocí entropie to lze vyjaídňrit naísledovnňe: maximalizovat I(X|Y) = H(X) - H(X|Y) a zíarovenň minimalizovat informaci I(X|Z) = H(X) - H(X|Z). Pro kazdy pomér R > 0 definujme p(R) jakozto mnozinu téch rozdelení p pravdepodobnosti na vstupním vektoru X hlavního kaníalu tak, ňze I(X|Y) > R. Bud' CM bud' kapacita hlavního kanalu a necht' r(R) = suppep(R)[J(X|Y) - I(X|Z)]. Pak platí Vetá 4.4 MnoZina 7Z* vsech dosaZitelnych dvojic (R, d) je určena vztahem 71* = {(R, d) : 0 < R < CM, 0 < d < 1, R • d < r(R)}. 5 Právdepodobnostní podpisovácí schemátá Pravdépodobnostní techniky byly rovnéz aplikovíny na vytvorení digitalních podpisu. Tento prístup byl zapocat Goldwassérem, Micalim a A.C. Yaoem (1984), kterí predstavili podpisovací schéma zalozené na obtíznosti faktorizace a na obtízznosti invertibility RSA funkce, coz jsou dokazatelné obtízné problémy pro 262 KAPITOLA 9. NÁHODNE ŠIFROVÁNI utok s pouzitím známeho podpisu a to pro neprítele, která uspeje s padelaním podpisu jedne zpravý, ale ne dle jeho váberu. Goldwasser, Micali a Rivest zesílili tento vásledek navrzením podpisovacího schenatu, ktere je nenapadnutelne váse uvedením zpusobem. Toto schema je zalozeno na obtíznosti faktorizovaní (daleko obecneji na existenci tzv. permutaci s vlastnosti padacích dverí - tj. takove dvojice permutací /0, f1 majících spolecní definicní obor, pro který je obtízne najít x,y tak, ze /0(x) = f1(y)). Popisme jejich schema. Bud' (f0,/1) a (g0,g1) dve dvojice takovýchto permutací. Bud' dále b = b1... bk binární retezec a definujme F"1(y) = .. (y)))) a G-1 (y) = .. (g—(y)))). Podpisující zverejní (x,/0,/1 ,g0,g1), kde x je nahodne výbraný prvek z definicního oboru /0,/1 a utají informaci týpu padacích dverí dovolující mu výpocíst Fb_1 a G-1. Zároveň si uchová obsah promenne history (ne nutne utajeno). Pro jednoduchost budeme predpokladat bezprefixová prostor zprav. Podpis i—te zpravý se výtvorí následovne. Podpisující 1. výbere nahodne r z definicního oboru g0,g1 a polozí history = history • r^, kde • oznacuje zretezení; 2. výpocte li = Letory(x) a ti = Gmi (ri); 3. výtvorí podpis zpravý mi jako trojici (history, li, ti). Abýchom zkontrolovali platnost podpisu (h, l, t) zprávý m, kazdá s prístupem k verejnemu klícci podpisujícího muze proverit, ze 1. = x, kde x je ulozeno ve verejne prístupnem souboru; 2. Gm(t) = r, kde r je suffix h. Pokud obňe podmínký platí, je podpis platnýí. Váse popsane schema, ackoliv teoretický velmi atraktivní, je zcela neefektivní. Lze ho vsak modifikovat do daleko kompaktnejsích podpisu bez pouzití pameti pro jine veci nez pro verejne a tajne klícce. Literatura [1] J. Adímek: Stochastické procesy a teorie informace - úlohy. CVUT, Praha 1989. [2] J. L. Balcazar, J. Díaz, J. Gabarro: Structural Complexity I. Springer-Verlag, Heidelberg 1988. [3] H. Beker and F. Piper: Cipher Systems. The Protection ofCommunication. Northwood, London 1982. [4] A. Beutelspacher: Kryptologie. Vieweg, Braunschweig 1991. [5] E. Biham and A. Shamir: Differential Cryptoanalasys of the Data Encryption Standard. Springer-Verlag, New York 1993. [6] International Data Encryption Algorithm, http://cs.wikipedia.org/wiki/InternationaLDat^Encryption_ Algorithm. [T] V. Klíma: Kody, komprimace a šifrované,. Chip 2/1993, str. 24-28. [8] V. Klíma: Kritika sifrovéeho standardu. Chip 5/1993 str. 52-58, Chip 6/1993, str. 5Q-55, T/1994 str. 5Q-51. [9] V. Klíma: Sifry a kryptéeri. Chip 2/1994, str. 2Q6-2QT. 263 264 LITERATURA [10] V. Klíma: Utajene komunikace. Chip 5/1994, Chip 6/1994, str. 184-188, 7/1994 str. 138-141 a 8/1994 str. 118-121. [11] V. Klíma: Utajene komunikace. Chip 2/1995 str. 126-128, Chip 3/1995, str. 136-141, 4/1995 str. 136138, Chip 5/1995 str. 166-168, Chip 6/1995, str. 174-175, 7/1995 str. 130-131, 8/1995 str. 142-143, 9/1995 str. 206-208, 10/1995 str. 226-228, 11/1995 str. 170-172 a 12/1995 str. 164-166. [12] J. Kodl, V. Smejkal, T. Sokol: Smííme sifrovat. Chip 5/1995, str. 30-32. [13] J. Kodl, V. Smejkal, T. Sokol: Sifry, stíatníí zíajmy a lidskía príava. Chip 4/1995, str. 34-37. [14] L. KuScera a J. NeSsetSril: Algebraickíe metody diskríetníí matematiky. SNTL, Praha 1989. [15] K. Kukura: Pretty Good Privacy. Elektronika 12/1995, str. 18-19. [16] S. Porubská a O. Grosek: Sifrovanie. Algoritmy, Metody, Prax. Grada, Praha 1992. [17] B. Preneel, R. Govaerts and J. Vandewalle: Information Authentication: Hash Functions and Digital Signatures. preprint 1993. [18] Pretty Good Privacy - Jak PGP pracuje, Historie a legalita. http://www.pgp.cz. [19] B. Preneel: Standardization ofCryptographic Techniques. preprint 1993. [20] A. Salomaa: Public-Key Cryptography. Springer, Berlin 1996. [21] B. Schneier: Angewandte Kryptographie. Addison-Wesley, Bonn 1996. [22] National Bureau of Standards: Data Encryption Standard. U.S. Department of Commerce, FIPS pub. 46, December 1977. LITERATURA 265 [23] National Bureau of Standards: Data Encryption Standard. U.S. Department of Commerce, FIPS pub. 81, December 1977. [24] J. Talbot, D. Welsh: Complexity and Cryptography: An Introduction. Cambridge University Press, Cambridge 2006. [25] D. Welsh: Codes and Cryptography. Oxford University Press, New York 1989. Index A aproximace 0. rádu 60 1. rádu 60 B bigram 25 bitová bezpeCnost 246 Blaise de Vigenere 32 blok delky t 81 bod unicity 67 C Claude E. Shannon 49 C cetnost 17 CítaC 77 D DES 26 dešifrování 12 determinant matice A 86 dáíra dáelky t 81 E ekvivokace zpraáv 53 entropie 50 zpráav 53 Eulerovo kritáerium 247 F Friedmanuv test 32, 38 Friedrich Wilhelm Kasisky 34 G Gaussova eliminaCní metoda 87 Gilbert. S. Vernam 74 H Hillova sifra 23 homofonnáí sifra 29 Ch charakteristickáy polynom 266 INDEX 267 linearního posouvačího registru 79 čhosen plaintext attačk 24 I index koinčidenče 38 informače o U poskytnuta V 52 K kaníal diskrétní bež pameti 51 kapačita komunikačního kanílu 52-53 kappa-test 39 Kasiskeho test 32, 36 Kerčkhoffuv prinčip 24 klíč 11, 48 společný sifrovačí 11 klíčova ekvivokače 53 klíčove písmeno 22 klíčove slovo 22 Vigenere 32 known čiphertext attačk 24 known plaintext attačk 24 kritíerium perfektnosti 57-58 kryptoanalíyža 12 kryptografie 12 kryptogram 12, 48 kryptologie 12 kryptosystíem 48 L linearní posouvací registr 73 M Markovova aproximace 1. radu 60 2. rádu 61 matice prechodu markovskeho retezce 51 stochasticka 51 monoabecedníí sifrovíaníí 19 multiplikativníí sifra 21 N naísobeníí prirozenyích cíísel 85 O obtííznost vyímeny klííce 75 one-time pad 73 P perfektníí bezpecnost 49, 56 sifrovacíího systíemu 47 perioda 78 maximaílníí 78 periodicita 78 periodickaí posloupnost 78 permanent matice A 86 268 INDEX podmínení entropie 50 polyabecední sifrovíní 26, 29 posouvací (aditivní) sifra 14, 20 posouvací registr 76 lineírní 76 pozadavek jednoznacnosti 29 pravdepodobnost a posteriori 56 a priori 49 pozorovanía 56 primitivníí polynom 79 pseudonaíhodnía posloupnost 75 pseudonahodní generítor 253 R redundance 65 prirozeneho jazyka 60 registr 76 S skytíala 12 soucin sifrovacích systemu 59 statistickaí analíyza 17 substitucní algoritmus 13 Š sifrovací algoritmus 48 asymetrickyí 11 symetrickyí 11 sifrovacíí systíem 48 polynomiíalne bezpecnyí 249 sifrovaíníí 12 T transpozicníí algoritmus 13 tríídeníí 87 V vaízenyí soucet sifrovacích systemu 59 Vigenerevo sifrovaní 30 Vigeneruv ctverec 32 vyípocetníí slozitost 85 W William Frederick Friedman 35 Z zímenní (afinní) sifra 22 zdroj bez pameti 50 Zipfovo pravidlo 64 zpríava 12, 48