Kryptografie Jan Paseka 6. kvetna 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 nadnesene, ale není tomu tak: Matematika poskytuje - alespoň v principu - teoreticke odůvodnení pro sílu algoritmu nebo šifrovacího protokolu. S matematikou lze (v ideálním prípade) dokázat, že kryptograficky algoritmus mí jistí stupen bezpečnosti. A jakmile je jednou bezpeňcnost algoritmu jednou matematicky dokaízaína, neníí ňzíadnyích pochyb o tom, že algoritmus je skutecne bezpecní; nemusíme se pak spolehat na (zpravidla rozporuplne) posudky expertu, nepotrebujeme se odvolavat pri posuzovíní bezpecnosti na technologii dneska (kterí muze bít zítra íplne jina), atd.__J nutno priznat, ze takoveto dukazy se podarily jen ve velmi mílo prípadech. Avsak presto: matematika je duverohodní nastroj pro systematicke zkoumaní kryptosystemu (tzn. navrh a analíza). To je duvod, proc davame 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 naroky na uplnost ci puvodnost. Pouzite zdroje jsou uvedeny v literatuře. Prípadne komentíre ci kriticke pripomínky k textu ocekavam nejlepe na e-mailove 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. Kucerova, M. Misíkoví, J. Mraka, A. Rozsypal, R. Sedlacek, Svitel a E. Zíckoví a dalsími v rímci stejnomenne prednasky na Prírodovedecke fakulte Masarykovy univerzity. Veskera zodpovednost za styl a obsah vsak pada 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 Nákupy s cipovou 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íccem............. .......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ích 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-é-zuz-o-fuf-é-juj! Bub-u-dud-é-šuš o-sus-vuv-o-bub-o-zuz-é-nun! Pup-o-zuz-o-rur! Tut-o juj-é tut-é-nun vuv-rur-a-huh! Astrid Lingrenoví Pri kazdem zakódovaní musí bít príjemce vzdy o neco pred ítočníkem. S pomocí teto informace muze príjemce zpravu rozsifrovat; tato informace nesmí bít zídnemu utočníkovi k dispozici, nebot' by utočník byl schopen rozlustit zpravu zrovna tak lehce jako príjemce. O teto exkluzivní informaci mluvíme jako o klíCi. Klasicke sifrovací metody jsou zalozeny na tom zíklade, ze odesilatel a príjemce mají společny 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íí takíe asymetrickíe sifrovacíí algoritmy: v techto systíemech potrebuje pouze prííjemce tajníy klííc. V tíeto kapitole se budeme zabyívat v jistíem slova smyslu pouze temi nejjednodussíími sifrovacíími algoritmy a to takovíymi, ze v nich je jedno a totíez píísmeno nahrazeno jedníím a tíímtíez symbolem. Naprííklad píísmeno e obsazeníe v textu by se zasifrovalo pomocíí píísmena K. 11 12 KAPITOLA 1. CAESAR NEBOLI KAZDY ZACATEK JE LEHKY! Nejdříve několik slov k terminologii. Pojmy kryptologie a kryptografie pochází z řeckých slov Kpvnroa (tajný) a AoYoa (slovo, smysl) a jpaipeiv (psát).Obe slova označují umení a vedu, která se zabývá rozvojem metod k utajení zpráv. (Mnozí autoři rozlisují mezi kryptografií, tj. vedou o vývoji kryptosystemů a kryptoanalyzou, umením tyto kryptosystemy prolomit a označují 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) : aj G {0,1}} vsech binarních posloupností delky 64 v prípade, ze to bude pro nase uvahy vhodne. V rozporu s nadpisem kapitoly zacínají dejiny kryptografie pred Caesarem. 1 Spartška skytala Historie zacína asi pred 2500 lety. Jak dobre víme z díla reckeho dejepisce Plutarcha, pouzívala vlída ve Sparte nasledující lstivou metodu pro prenos tajne zpravy pro sve generíly: odesilatel a prí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í sifry Jeden z prvníCh, kdo pouzíval kryptologiCke teChniky, byl rímskí vojevudCe a statník Gaius Julius Caesar (100-44 pr. n. l.). U Suetona (Caes. LVI) muzeme 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. Preklad zní priblizne 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 pouzitou Caesarem obdrzíme tím zpusobem, ze místo abeCedy zpravy budeme psat abeCedu kryptogramu, ale o 23 míst doprava, coz znamena totez, jako posunutí doleva o 3 místa: Zprava: abcdefghijklmnopqrstuvwxyz Kryptogram: ABCDEFGHIJKLMNOPQRSTUVWXYZ. IŠifruje se tím zpusobem, ze nahradíme písmeno zpravy pod ním stojírím písmenem kryptogramu. Napríklad ze slova zpravase stane zdanlive nesmyslne slovo CSUDYD. Desifrovíní je zrovna tak jed-noduChíe: KaŠzdíe písmeno kryptogramu se nahradí nad ním stojíCím písmenem zpríavy. Clovek se ovsem muze ptít, proC Caesar zvolil príve posunutí o 3 místa. Odpoved' je jednoduCha: nebyl na to vubeC zídní duvod! Samozrejme muzeme posunout abeCedu o libovolní poCet míst. Protoze se nase abeCeda sestava z 26 písmen, existuje prave 26 takovyCh 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, které samozrejme nikdo nebude pouzívat k sifrovaní tajních zprav. Vyjasneme si na teto nejjednodussí tríde sifer pojmy šifrovací algoritmus a klíč. Šifrovací algoritmus je bezprostredne videt na sifrovaní slova zprava. Naproti tomu klíc je napr. pocet míst, o ktera 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ícce. 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 velky. 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 kryptosystému leží na utajení klíče. Tento poŠzadavek se zdía byít pŠrehnaníy, je ale nanejvyíŠs realistickyí: pro nŠekoho, kdo chce neopríavnŠenŠe Š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 prédat bezpecnou cestou. K cemu pak vubec sifrovaní zpravy? V tom prípade jsme mohli hned préróst celou zpravu touto bezpecnou cestou! - Tato namitka je plne opravnena, lze ji vŠsak níasledujíícíími argumenty podstatnŠe zmíírnit. 1. Zpríva byva zpravidla velmi dlouha, klíc se obvykle volí co nejkratsí. Dodatecní namaha 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 systému 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! Upozorněme ještě na další nebezpečí. Je-li klíč vyměněn, musí být spolehlivě uložen; nesmí nastat případ, že jej bude možno z přístroje zjistit. Experti souhlasí s tím, že klíč je pouze tehdy bezpečně uložen, pokud přístroj nelze najít fyzikalními prostředky. Nyní ale nastala doba na změnu stran. Kryptologie se nezabíva pouze tím, že navrhuje bezpečnostní systěmy pro prenos zprav; jedna z jejičh ustredníčh uloh je takově systěmy rozluštit (nebo se o to alespon pokusit!). Začněme tedy na okamžik hrat roli zlosyna - to lze vyjadrit tročhu slusněji nasledovně: pračujeme jako kryptoanalytik a provídíme kryptoanalýzu kryptogramu (prípadně zkoumaněho kryptosystěmu). Tvurče kryptosystěmu musí vždy počítat s možností, že algoritmus je protivníkovi znam (alespon po delsí dobu). Kromě toho se doporučuje protivníka nepodčenovat a prisoudit mu čo nejvyssí inteligenči; nazvěme je Mr. X. Predstavme si, že Mr. X začhytil nasledujíčí kryptogram: BIBV HXZIDI CH VMVQ BIRVI Na zaklade jistíčh indičií dosel k domněnčě, že tento text byl zasifrovín pomočí posouvačí sifry (napr. by mohl najít jeden z vyse popsanyčh sifrovačíčh stroju). Takovýto text pak lze prinčipialně analyzovat dvěma zpusoby. l.Systematičkě prozkoušení vsech moZností Protože se jedna pouze o 26 posunutí, není nase namaha prílis velka. Mr. X ale muže tuto nímahu podstatně zredukovat, omezí-li se pouze na malou čast začhyčeněho textu. Uvažme napr. slovo VMVQ. Vyzkousíme-li vsečhna posunutítěto posloupnosti písmen, zjistíme snadno, že ze vsěčh možnyčh ekvivalentu pouze slovo neni daví smysl. Je tedy víčě než pravděpodobně, že kryptogram byl získan posunutím o 8 míst. Mr. X pak prověrí svou domněnku tím, že desifruje čělkoví text: tato zprava uz neni tajna. Tato metoda pro prolomení posunovačí sifry je proto tak dobra, protože větsina kombinačí písmen je v čestině zčěla bez víznamu. Ačkoliv je toto pozorovaní duležity zaklad pro mnoho kryptoanalytičkyčh 2. POSOUVACI SIFRY 17 metod, ma víse uvedena metoda velkou nevyhodu. Nelze ji totiz (nebo jen s neumerne velkou namahou) automatizovat. Pokud by tato metoda mela byt provedena počítačem samostatne, pak by bylo nutno ulozit vsechna (nebo v kazdem prípade velmi mnoho) česka slova. I kdyz je to v principu mozne, pouzívali bychom zbytečne silní nastroj. A to nelze nasledující metode vytknout. 2.Statistička analýza V čestine, nemčine a angličtine (stejne jako v kazdem prirozenem jazyku) se nevyskytují vsechna písmena se stejnou četností; spíse ma kazde písmeno svou charakteristickou četnost. Tyto početnosti jsou uvedeny v nasledující tabulce: Písmeno Četnost v % Četnost v % nemčina angličtina 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 Četnost v % nemčina Četnost v % angličtina 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 četnosti jejich vískytu do čtyr skupin (napr. v nemčine). V první skupine budou nejpočetneji 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, ^ 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. Konkrétne Mr. X ve sve analíze zpravy MRNBNA CNGC RBC WRLQC VNQA PNQNRV vytvorí seznam jednotlivích četností Písmeno: ABCDEFGHIJKLMNOPQRSTUVWXYZ Četnost: 22400010 00 0136O1340002 1 00 0. Písmeno s nejvetsí četností je N; muzeme tedy v prvním priblízzení 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% jisté! 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 hypotézu, 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 ŠIFROVANÍ 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. Víse uvedení text je smysluplní a tedy jeho domnenka je s konecnym zaverem potvrzena. Zaverem nekolik poznamek. Druha metoda mí bezespornou prednost, ze ji poď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í sifrovaní SŠifrovíaní se nazyívía monoabecednýí, jestliŠze kaŠzdíe písmeno abecedy zpríavy je zaŠsifrovaíno jako nŠejakíe písmeno teze abecedy. Monoabecední sifrovíní si muzeme predstavit tím, ze pod abecedu zpravy napíseme abecedu kryptogramu. NapŠr. naísledujíícíí metody Šsifrovíaníí jsou monoabecedníí. Zpráva: abcdefghijklmnopqrstuvwxy z Kryptogram: QWERTZUIOPASDFGHJKLYXCVBNM. Zpráva: abcdefghijkl mn o p q r s t uvwxy z Kryptogram: Q^EaK/TUi_OP3Y79V245. Poslední príklad by nam mel pripomenout, ze zprava a kryptogram nemusí bít definovíny nad stejnou abecedou. Je-li tomu ale tak, pak kazdemu monoabecední sifrovaní odpovída 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, c, ..., 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 obzvlíst' dobre: posunutí o s míst odpovída prictení císla s modulo 26. Konkretne postupujeme nasledovne: • Nejdríve prevedeme písmena zpravy do odpovídajících císlic; • pak pripocteme k tomuto císlu císlo s; • z vyísledku uvaňzujeme pouze zbytek, kteryí obdrňzííme po dňeleníí 26; tento zbytek pňreloňzííme zpaí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 reprezentace písmena D kryptogramu. Pri desifrovaní písmene B postupujeme následovne: • B se reprezentuje pomocí ňcíslice 2; 4. ZAMENNE ZIFRY 21 • 2 - 3 = -1; • Zbytek —1 po delení26 je 25 a to odpovídí písmenu y zprívy. S pomocí teto metody lze tzv. cí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: abcdefghijklmnopqrstuvwxyz 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 ssifru. Pro kazde sifrovaní musí totiz platit doposud nevyslovene ale zcela samozrejme pravidlo, ze text zprávy musá byt s pomoci klíče jednoznacne rekonstruovatelny z kryptogramu. Mnozí pováZují tozo pravidlo za přáiš omezující; lze ho vsák zeslabit á zároveň odůvodnit: Kazdí kryptogram musí bíyt s pomocí klíŠce deŠsifrovatelníy nejakyám pocáítacem. Pokusme naŠse ŠstŠestí jeŠstŠe jednou a vyníasobme vŠsechna písmena Šcíslem 3: Zpráva: abcd 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! Muzeme 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 sifru, tzv. zámennou (afinní)sifru, kterou budeme oznacovat [s, t]. KlíC zímenne sifry [s, t] sestava z dvojice císel (s, t) (prirozene musí bít pro kazdou zímennou sifru císlo t zvoleno tak, ňze níasobení ňcíslem t je multiplikativní ňsifra; t tedy musí bíyt jedno z víyňse uvedeníych ňcísel 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 nebo 25). Poňcet vňsech zíamňennyích ňsifer vypoňcteme jako poňcet vňsech posuvacích ňsifer vynaísobenyí poňctem vňsech multiplikativních ňsifer; tedy poňcet vňsech zaímňenníych ňsifer je 26 • 12 = 312. Toto ňcíslo je uňz tak velkíe, ňze pňri ruňcní kryptoanalyíze níam systematickíe provňeňrení vňsech moňzností daí pňeknňe zabrat. 5 KlíCova slova Velke mnozství 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 kazde písmeno vyskytne pouze jednou. To získíme nasledujícím zpusobem, ze kazde písmeno se pri svem druhíem, tňretím, . . . vyískytu vyňskrtne. Maíme-li zvoleno napňríklad klíňcovíe slovo MATEMATIKA, získíame posloupnost MATEIK. Napisme nyní tuto posloupnost pod abecedu zpravy, a to tím zpusobem, ze bude zacínat príve pod klíňcovyím písmenem. Napňr., zvolili jsme jako klíňcovíe písmeno j, obdrňzíme Zpráva: 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 cryptographie 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 systemnů, ktere zustanou bezpecne i v tom prípade, ze o algoritmu bylo dlouhou dobu verejne diskutovano. Příkladem je DES-algoritmus. Kryptoanalytik rozliŠsuje naísledující pŠrípady uítoku na Šsifru: 1. Known ciphertext attack: Kryptoanalytik znaí relativnŠe velkou Šcaíst kryptogramu. To je opravdu reíalnyí pŠredpoklad, protoŠze je zpravidla celkem jednoduchí zajistit si (libovolne dlouhe) císti kryptogramu. 2. Known plaintext attack: Kryptoanalytik zna relativne malou cast související zpravy/kryptogramu. Tato hypoteza je realnejsí, nez se na první pohled zda. Totoz casto vi Mr. X, o co se jední, a muze proto uhadnout nekolik hlavních slov. Mimoto lze nalíezt zpravidla standardníí uívodníí a zíavŠereŠcníe fraíze atd. 3. Chosen plaintext attack: Ma-li kryptoanalytik prístup k sifrovacímu algoritmu (s aktuílním klícem), muze pak za ícelem zjistení klíŠce koídovat vybraníe Šcaísti zpraívy a pokusit se udŠelat z obdrŠzeníeho kryptogramu zíavŠery o struktuŠre klíŠce. Mohl by napŠríklad do stroje vklíadat pravidelnaí zdrojovía slova, napŠr. posloupnosti stejnyích písmen (aaa . . . ) za uíŠcelem jejich zakoídovíaní. NebezpeŠcí takovíehoto uítoku spoŠcívía v tom, Šze by se mohlo Mr. X podaŠrit pŠrimŠet sifrovací stroj k tomu, aby zakódoval zdánlivě neskodne zpravy, s jejichz pomocí pak Mr. X muze zasifrovat zpravu, kterou by odesilatel nikdy nezasifroval. Jak nebezpecny muze byt takovíto ítok, se obzvlaste ukaze, 7. KRYPTO ANALÝZA 25 když pomyslíme na to, že mnohě sifrovačí prístroje pouze nesifrují, ale takě podpisuji: Pokud je algoritmus tak slabí, že dovolí tento utok, pak by mohl Mr. X vytvorit z nevinně vyhlížejíčíčh podepsaníčh zprav brizantní, platně podepsaní dokument. Každě monoaběčědní sifrovaní prirozeněho jazyka muže byt dosti lehčě prolomena. Musíme si pouze ujasnit, že každě monoaběčědní sifrovíní (prirozeněho jazyka) lze prolomit již za vysočě slaběho (pričemž nanejvís realističkěho) predpokladu 1. Predvedenie pouze princip algoritmu. Predstavme si, že Mr. X začhytil kryptogram o dělčě asi 500 písmen a že ví, že kryptogram byl zasifrovan pomočí monoaběčědního sifrovaní. Krok 1. Nejdríve Mr. X zjistí četnosti písmen kryptogramu. Tím získa ekvivalent e, n spolu s množinou písmen {i, s, r, a, t}. Jednotliví písmena z těto množiny pritom zpravidla jestě nemuže identifikovat. Krok 2. Nyní Mr. X spočte bigramy, tzn. píry po sobě sledujíčíčh písmen. Nejčastějsí bigramy němečkěho jazyka jsou uvedeny v naísledujíčí tabulče: Bigram Četnost Bigram Četnost 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 muže Mr. X izolovat písmena o největsím vískytu. Napr. dvojičě er mí velmi velkou četnost, zatímčo vsěčhny jině kritičkě kombinačě s e se vyskytují dosti zrídka (ea a et jsou opravdu velmi rídkě - pod 0.5%) a takě es se vyskytuje se signifikantně malou četností. Konkurentem by mohla bít dvojičě ei; tu vsak lze vyradit tím zpusobem, že testujeme inverzní dvojičě: jen u těčhto dvojič je tomu tak, že 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, kterí tvorí více nez dve tretiny textu. A to vsechno lze provest automaticky pomoCí poŠCítaŠCe! Krok 3. Pak necha Mr. X dosadit rozpoznana písmena do celeho textu. Jinak reCeno: poCítaC rozsifruje 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í sifřovíní nad přirozením jazykem jsou pozoruhodne nejistí (přirozený jazyk ma mílo písmen, jez jsou dost neřovnomeřne řozdelena). V současne dobe přoto poůžíváme bud' monoabecední sifřovaní nad umělým jazykem nebo polyabecední sifřovaní. Nejpopulařnejsí monoabecední sifřovíní je DES - Data Encřyption Standařd. Tento algoritmus byl vyvinut fiřmou IBM a v řoce 1977 se stal standařdem. DES nesifřuje písmena, níbřž symboly 0 a 1, a to 64 nařaz (v případe, že používame DES k žašifřování obyčejneho textu, musí bít písmena nejdřív přeložena do řetezce bitů. Jednou z takovích metod je použití ASCII kodu. Tedy DES je monoabecední algoritmus nad abecedou {(a\,..., a64) : a G {0,1}}. Jako klíč lze se beře posloupnost binařních řetezců z 56 bitů, tj. vsech klíčů je příve 256 ř« 7 • 1016. Tento algoritmus byl od sameho počatku ůplne publikovan - jednalo se o první algoritmus historii, kdy se to stalo. DES se převažne ůspesne používa v bankovnictví. 7. KRYPTO ANALÝZA 27 V roCe 1990 predvedli Biham a Shamir, ze DES je algoritmus vyvinutí podle vynikajících prindpu; vseobeCne vsak prevladí obeCne presvedCení, ze by delka klíCe mela bít vetsí. Biham a Shamir zaroven ukazali, ze mnoho algoritmu príbůžný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 šifer se zvedaá poznanáy zivot, naáhláy smysl. Gottfried Benn V teto kapitole se budeme zabývat p^víz^ polyabecedními sifrovaními. U techto sifrovaní se písmena FI zpraívy nesifrujíí pomocíí tíeze abecedy. Zejmíena tedy nelze polyabecedníí sifrovaíníí popsat jednoduse pomocíí abecedy zpríavy a pod níí napsaníe abecedy kryptogramu. Prirazení písmene zpravy k nejakemu písmenu kryptogramu nesmí bít provadeno svevolním zpusobem. Šifrovaní musí splňovat silní pozadavek jednoznacnosti; v opacnem prípade by nebylo mozne zadne desifrovíaníí. Jinak receno: kdyby nebylo sifrovíaníí jednoznacníe, neníachazel by se prííjemce principiaílne v zadne lepsí situaci nez Mr. X! Typickyím prííkladem algoritmu, u kteríeho neníí sifra jednoznacnía, je homofonnýsifra. Takovíeto algoritmy budou predvedeny v níasledujíícíím odstavci. Nejvetsíí cíast kapitoly bude vsak venovíana zkoumíaníí takovíychto 29 30 KAPITOLA 2. PROC JEDNODUŠE, KDYZ TO JDE I SLOŽITÉ? polyabecedních sifer, ktere vzniknou z kombinací monoabecedních algoritmu; takovímto charakteristickám príkladem je Vigenerevo sifrovíní. 1 ZneprUhlednéní Četností 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 splneny nasledující podmínky: - Aby bylo desifrovíní jednoznacne, musí byt mnoziny príslusející ruzním písmenu zpravy disjunktní. - Pocet písmen kryptogramu, ktere patrí k nejakemu písmenu zprívy, odpovídí 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ípadný kryptoanalytik je tak postaven pred podstatne tezsí ulohu nez pŠri zkoumaíníí monoabecedníího Šsifrovaíníí. Avsak nemeli bychom prílis jasat, nebot' kryptoanalýza 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, KDYZ TO JDE I SLOZITE? • Uvazuje-li Mr. X ekvivalent písmena c, tedy dvojici 28, zjistí, ze v uvahu jako prirozeny nasledník prichazí pouze urcita písmena kryptogramu. Toto jsou dvojice 07, 24, 23, 47, 89, tedy ekvivalenty písmen h a písmenk. • Zkoumíame-li ekvivalent písmene e, tedy napŠr. 99, zjistíme, Šze jistíe znaky kryptogramu se vyskytují jako predchudci a nasledníci 99 - a to prakticky stejne pocetne. Musí se pak jednat o ekvivalenty Vigenerovo zasifrovýní bylo veřejnosti zpřístupneno 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 přirozený, ze variace Vigenerova zasifrovaní byly vícenýsobne znovuobjeveny. Dva z nejdulezitejsích předchudcu byli Johannes Trithemiuš (1462 - 1516), jehoz knihy Poligraphiá (1518) a Steganographiá (1531) byly uveřejneny posmrtne, a Giovanni Battista Della Porta (1538-1615), vynalezce přístroje Camera obscura, který v roce 1558 ve sve knize Mágiá naturalis zveřejnil polyabecední algoritmus, který vykazuje velkou podobu s Vigenerovou sifrou. V teto kapitole se budeme hlavne zabývat Vigenerovou sifrou, ktera je nejznamejsí mezi vsemi periodický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 případem Vigenerovy sifry pro klícove slovo delky 1). • Při kryptoanalýze se seznamíme se dvemi extremne dulezitými metodami, a to Kašiškeho teštem a Friedmanovyám teštem. písmene i. 2 Vigenerova šifra Abychom mohli pouzít Vigeneruv algoritmus, potřebujeme dve veci: klícove šlovo a Vigeneruv ctverec. 2. VIGENEROVA SIFRA 33 Vigeneruv ctverec Zpráva: abcde fgh i j k lmnopqr s tuvwxyz Kryptogram: ABCDEFGH I J KLMNOPQRS TUVWXYZ 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 čtverec se skladí z 26 abeced, ktere jsou napsíny pod sebou takovím zpusobem, ze první abeceda je obyčejní abeceda, druhí abeceda je o jedno písmeno posunuta, tretí o dve atd. Jinak rečeno: Vigeneruv čtverec sestava z 26 posouvacích sifer v prirozenem poradí. Klíčovím slovem muze bít libovolna posloupnost písmen; pro nas demonstranční prípad vybereme slovo VENUSE. Klíčove slovo: VENUSEVENUSE Zprava: po l yabecedni. Pri Šifrovaní určí písmeno klíčoveho slova, ktere stojí nad určitím písmenem zpravy príslusnou abecedu tj. radku ve Vigenerove čtverci a pomocí teto abecedy bude písmeno zpravy sifrovano. Celkem tedy míame Klíčove slovo: VENUSEVENUS 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 sifrovaní. Cetnost písmen je daleko rovnomernejsí, coz lze poznat i na nasem krítkem 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 Prirozene lze i pomocí dnesních metod prolomit text zasifrovaní pomocí Vigenerovy sifry. Totiz dostatečne dlouhí text vykazuje mnoho statističky zachytitelnych pravidelností, ktere umoznují zjistení klíčoveho 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). Obe metody slouzí k urcení delky klícoveho slova. Protoze oba testy mají i mimo specialní analí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 JEDNODUŠE, KDYŽ TO JDE I SLOŽITĚ? 3.1 Kasiskeho test Ačkoliv tato pusobiví metoda analízy polyabečedníčh algoritmu byla poprvě publikovana Kasiskím, musíme se zmínit, že angličkí matematik Charles Babbage (1792-1871), ktery je mimo jině zním svou končepčí predčhudčě moderního počítače, provedl neuverejněna zkoumaní i v kryptografii. Mj. vyvinul Kasiskěho test už v roče 1854, tj. devět let pred Kasiskím. Test je založen na nasledujíčí myslenče: vyskytují-li si ve zpravě dvě posloupnosti stejníčh písmen (napr. v němčině slovo ein), mohou oběčně odpovídajíčí posloupnosti v kryptogramu dopadnout ruzně. Jsou-li ale obě počateční písmena posloupností zasifrovína pomočí těhož písmene klíčověho slova, jsou i obě písmena kryptogramu stejní. V tomto prípadě bude takě druhě písmeno posloupnosti v zpravě zasifrovano pomočí těhož písmene klíččověho slova; tedy obdržíme i v kryptogramu stejně písmeno. To tedy znamena: Budou-li obě počíteční písmena posloupností zprívy zasifrovana pomočí těhož písmene klíččověho slova, pak sestavají obě posloupnosti v kryptogramu ze stejníčh písmen. Kdy muže nastat prípad, že dvě písmena jsou zasifrovana pomočí těhož písmene klíččověho slova? Pravě tehdy, když se klíčově slovo mezi tato písmena n-krít vejde pro vhodně prirozeně n. Když nyní Mr. X najde v kryptogramu dvě posloupnosti skladajíčí se se stejníčh písmen, pak se muže domnívat, že jejičh vzdílenost je několikanísobek dělky klíče. Tato pravděpodobnost se rídí pravidlem cím delší, tím milejší: stejní písmena nevypovídají, že víme něčo o dělče klíče, a takě dvojičě složeně ze stejnyčh písmen by mohly vzniknout nahodně. Z posloupností trečh nebo víčě písmen již muže Mr. X dostatečně spolehlivě usuzovat na dělku klíččověho slova. V nasem prípadě 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 Nejvetší 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íče stejnyčh písmen, ktere mají vzdalenost nedelitelnou peti. Pak byčhom 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 siče s odstupem 128 = 2 • 2 • 2 • 2 • 2 • 2.) To znamena, ze nesmíme počítat nejvetsí společní delitel slepé pomočí počítače, ale musíme jej určit citem. Musíme tedy zrejme čhyby vypustit. 2. Prave proto byčhom mohli prijít na myslenku, ze delka klíče 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 JEDNODUSE, KDYŽ TO JDE I SLOŽITÉ? 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 JTK I HKEQ Z vyse uvedeneho duvodu budeme prezentovat druhou metodu; tato urcuje fédovéj odhad delky klícoveho slova. Kombinace tŠechto obou metod je prakticky uíplnŠe spolehlivaí. 3.2 FriedmanUv test Tento postup byl vyvinut Williamem Friedmanem v roce 1925. V tomto testu se ptame na to,s jakou šancí se nehodne vybrané pér písmen že žpravy sestaví že stejných písmen. Odpoved' je pak dana indexem koincidence. Predstavme si nejprve libovolnou posloupnost písmen delky n. Bud' n1 pocet písmen a, n2 pocet písmen b, ..., n26 pocet písmen z. Zajímíame se o poŠcet dvojic, kdy jsou obŠe písmena rovna aa. (NepoŠzadujeme, aby se uvaŠzovaníe dvojice sklíadaly za sebou naísledujích písmen.) Pro poŠcet prvního a míame príave n1 moŠzností, pro víybŠer druhíeho a zbíva n1 — 1 mozností. Protoze nezílezí na poradí písmen, je pocet hledaních dvojic roven rai'("21~1). 3. KRYPTOANALYZA 39 Je tedy počet dvojic, kdy jsou obě písmena stejná, roven ni • (ni - 1) + n • (n - 1) +_____ n26 • (n26 - 1) = n • (ni - 1) i=1 Šance obdřžení dvojice složene ze stejných písmen je ůřčena nášledůjícím vířazem: n • (n - 1) a nazíva se Fřiedmanův index koincidence. Fřiedman sím značil toto číslo jako k, přoto se občas přo metodu, kteřou v dalším předvedeme, použí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 ktereho 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 +-----+ P26 = Pi i=1 * Toto číslo zavisí přiřozením způsobem na přavdepodobnostech p1,p2,... ,p26. Spočteme si dva příklady. 40 KAPITOLA 2. PROC JEDNODUzE, KDYZ TO JDE I SLOZITE? • Pro text v nňemeckíem jazyce míame 26 J^Pi2 = 0.0762. í=1 To znamena, ze níhodne zvolení dvojice písmen se sklada ze dvou stejních písmen s sancí 7,62%. • Pňredstavme si obríacenňe zcela naíhodnyí text, tj. text, ve kteríem jsou písmena divoce promíchíana. Pak kaňzdíe písmeno se zde vyskytne se stejnou pravdňepodobností = 1 Pí = 26. V tomto pňrípadňe pak 26 26 1 1 Ep-2 ^ 262 = 26 = 0.0385. í=1 í=1 Sňance, ňze v takovíemto textu najdeme dvňe stejnía písmena, se níam zmenňsila na polovinu. 1. Pokud zníame pravdňepodobnosti P1, P2, . . . , P26 (jako je tomu napňr. s nňemňcinou ňci angliňctinou), pak víme, ze soucet ctvercu pracdepodobností je priblizne roven indexu koincidence: 26 í=1 Obecne lze pak dokazat, ze index koincidence (nebo stejne platne i Yl2=Pí2) je tím vetsí, cím je text nepravidelnější, a mensí, cím je text pravidelnější Hodnota 0.0385 je absolutní minimum proi index koincidence. Totiňz 26 1 2 26 1 í=1 í=1 S. KRYPTOANALYZA 41 2. Vrat' me se na okamňžik k monoabecedním ňsifrovíaním. Protoňže monoabecední ňsifrovíaní je použe permutace písmen, žustává roždelení cetností žachovano. (Četnosti jednotlivách písmen jsou permutovany žíarovenň s písmeny). Napňr. ňcetnost O.1T uňž nepatňrí písmenu e, níybrňž jeho ekvivalentu v kryptogramu. Mame tedy, že pri monoabecedním sifrovaní index koincidence žustava žachovan, žatímco pri polya-becedním ňsifrovíaní klesía, vžhledem k tomu, ňže polyabecední ňsifrovíaní bylo vytvoňreno ža tím uíňcelem, aby se navžíajem vyrovnaly ňcetnosti jednotlivyích písmen. Z toho lže odvodit tešt, kteryí naím ukíaňže, žda byl kryptogram vytvoňren monoabecedním ňsifrovaíním nebo ne: Nejprve vypoňcteme index koincidence kryptogramu. Je-li tento index pňribliňženňe O.OT62, je sifrování pravdepodobne monoabecední. Je-li index koincidence žretelne mensí, mužeme vychažet ž toho, ňže text byl ňsifrovan polyabecedníím ňsifrovaíníím. Nyníí pouňzijeme index koincidence k vyípoňctu díelky klííňcovíeho slova pro text zaňsifrovanyí Vigenerovou ňsifrou. Cíílem je urňcit index koincidence textu bez jeho znalosti. Protoňze bylo pouňzito polyabecedníího algoritmu, je index koincidence mensí nez 0.0762. Ale o kolik mensí? Odpoved' je, ze to zívisí na delce klíňoveho slova. Predpokladejme, ze klíccove 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 vňsechna ta píísmena, ktería byla zaňsifrovaína pomocíí prvníího píísmene klííňcovíeho slova. Podobnňe se v druhem, ..., 1-tem sloupci nachazejí vsechna ta písmena, ktera byla zaSifrovýna pomocí druheho, ..., 1-teho píísmene klííňcovíeho slova. 42 KAPITOLA 2. PROC JEDNODUzE, KDYZ TO JDE I SLOZITE? Písmeno Sí klíc. slova S1 S2 S3 Si 12 3 / / + 1 / + 2 / + 3 2/ 2/ + 12/ + 2 ... 3/ 3/ + 1 ... Podrobnejsím studiem víse uvedeneho schematu lze vypocítat index koincidence. První pozorovíní: Kazdí sloupec byl získan pomocí monoabecedního sifrovaní (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í.) Druhe pozorovíní: Vypocteme nyní pocet dvojic písmen ze stejnych sloupcu a z ruzních sloupcu. Mí-li nas kryptogram celkem n písmen, pak v kazdem sloupci stojí presne n// písmen (Vzdame se uvazovaní 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 kterem lezí. V tomto sloupci mame k dispozici jeste zbívajících n// — 1 písmen, tedy prave tolik mozností pro vyber druheho písmene. Je tedy pocet dvojic písmen, kterí se nachazejí v tom samem sloupci roven n • (n — 1)/2= . Protoze míme k dispozici príve n — n// písmen mimo urcení sloupec, je pocet dvojic písmen z různých 3. KRYPTOANALYZA 43 sloupců rovna n. , n2 • (l — 1) Na zaklade víse zmíneneho pak mame, ze očekavaní počet A dvojic stejních písmen je roven A = n ^ (n — ž) • 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 úpravě A 1 [0.0377 • n + l • (0.0385 • n - 0.0762)]. n • (n - 1)/2) l • (n - 1) Zároveň víme, ze index koinciděnce I jě aproximací tohoto čísla; proto platí = 0.0377 • n 0.0385 • n - 0.0762 l • (n - 1) n - 1 Vyjádríme-li si z výše úvedeneho vztahú l, získame důležitou Friedmanovú formuli pro delkú klíčoveho slova: 0.0377 n (n - 1) • I - 0.0385 • n + 0.0762' 44 KAPITOLA 2. PROC JEDNODUŠE, KDYŽ TO JDE I SLOŽITĚ? Použijme nyní tuto formuli na nas príklad. Najdeme-li vsěčhna nj, obdržíme n = 368, Ei=i 26nj2 = 5924. Míame tedy 5924 I =-= 0.0439. 135056 Jedna se tedy s velkou pravděpodobností o polyabečední sifrovaní. Spočtěme nyní dělku klíčověho slova / ř« 6.5. To ukazuje současně s vysledkem testu Kasiskěho na to, že dělka klíččověho slova je skutečně 5 (a ne 10, 15 nebo 20). 3.3 Ur Cení klíCoveho slova Jakmile je zjistěna dělka klíčovího slova, jde o to poznat klíčově slovo samotně. Ale to už není tak těžkě. Pokud kryptoanalytik Mr. X zna dělku klíččověho slova, ví, že písmena č. 1,1 + 1, 2/ + 1,... príp. č. 2,1 + 2, 2/ + 2,... atd. byla získana pomočí monoaběčědního sifrovaní (dokončě pomočí posouvačí sifry). Zpravidla tedy stačí nalězt ekvivalent písmene e. V nasem príkladu je / = 5. Ze 74 písmen první monoabecední časti je 14 rovno V. Proto odpovídí e písmenu V. Z Vigenerova čtverce pak obdržíme , že první písmeno klíčověho slova je R. Analogičky, Ze 74 písmen druhě, tretí, čtvtě a patě monoabecední č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. Opětovnym nahlědnutím do Vigenerova čtverce pak obdržíme , že dalsí písmena klíččověho slova jsou po radě A, D, I a O. Rozsifrovaní textu je již standartní zíležitostí. Snadnyím porovnaíním získíame S. KRYPTOANALYZA 45 Zpráva denhoechst e n o rganisa t ions stand e r f uhrdiek ryptologie inv enedigw os i e informe i n erstaat lichenbuer o t a etigkei uka t en i mmonat bekamen eswurde d a fuer geso r gt das ss iew aehre ndih r er arbe i tn i c htge stoe r tw urdensi e durft enih r eb tausgeueb t wu r deesgab schluesse l s ek retaere dieihrbue r o im dogenpa lasthatten und fuerihr etaetigke i t ru ndzehnd uerosabe r auch nich tve rl assenb evors ieei neg es tel l t e aufga bege l oe sthatten 3.4 ZávereCne poznámky Videli jsme, ze každé Vigenerovo šifrování s dostatečně krátkým klíčem (aby se mohla ke slovu dostat pravděpodobnost ve sloupcích) lze jednoduchým způsobem rozsifrovat. Uvažujme nyní Vigenerovo sifrovaní s dlouhým klíčovým slovem. Budeme predpokladat, ze klíčove slovo je dlouhe prýve tak, jak je delka zpravy. Ukazeme dva triky, ktere Mr. X znemozní učinne vyuzít výse uvedených testu. Trik C.1 Mohli bychom se pokusit, pouzít jako klíč text knihy. Takový klíč ma zcela určite tu výhodu, ze ho lze prenest bez velkých problemu. Napr. stačí podat príjemci informaci Eugen Eichhorn: Felix Hausdorff - Paul Mongre, aby mohl začít desifrovat kryptogram pomocí nasledujícího slova: As ýou have already heard, Hausdorff was born in the Silesian metropolis Breslau, today called Wroclaw. In the last daýs of the Second World War, the German Wehrmacht declared Breslau a fortress; the result was its complete destruction. That happened ... 46 KAPITOLA 2. PROC JEDNODUŠE, KDYŽ TO JDE I SLOŽÍTE? V prípade pouzití takovehoto klíče se vsečhny metody na určení delky klíče minou učinkem. Protoze vsak klíč tvorí souvislí text nejake reči (angličtina, nemčina, apod.), pusobí na kryptogram statističky signifikantní data, takze nemuzeme takovouto sifru označit za zčela bezpečnou. První, kdo odhalil tuto slabinu, byl opet Friedman. Proto pujdeme jeste o kus dal. Trik č.2 V prípade triku č.1 mohl Mr. X jeste pouzít nejakou statistiku v dusledku tvaru klíčoveho slova. Proto nyní zvolíme za klíčove slovo praktičky nekonečnou, nahodnou posloupnost písmen, na kterou si se statističkími testy neprijdeme. Napr. lze za ni zvolit vísledky opakovaní vrhu idealní 26-hranou kostkou. Lze pak ukazat, ze takovíto zpusob sifrovaní je dokonce teoreticky bezpečný! Jinak rečeno: nabízí nam perfektní bezpečnost. Takovyímito perfektníími systíemy se budeme zabyívat v naísledujííčíí kapitole. Kapitola 3 Doprejme si jistoty neboli trochu teorie Mnozáá lidáe poučzáávájáá svoji inteligenci k zjednodušená, mnozáá k zesločzitčenáá. (Erich Kästner) V teto kapitole se pokusíme vytvorit teoretickí zaklad pro nase drívejsí uvahy. Zejmena 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 nejáky klíc a zasifrují s ním zpravu. Spravní pohled na vec se od teto predstavy jemne odlisuje. Budeme nyní uvazovat systemy, ktere sestívají z nejake mnoziny zprív, príslusnych kryptogramu a klícu. V prípade, ze bychom nísledující myslenky chteli provest zcela precizne, museli bychom se drzet axiomatiky; pro nase ucely 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 -—._^ ^Enem>y a 2. PERFEKTNÍ BEZPEČNOST 49 Víse uvedení definiče byla formulovana praotčem moderní kryptografie Claudem E. Shannonem. Uved'me dve trivialní pozorovaní: 1. Je mozne, ze dve ruzne transformače prevadí tutez zpravu na jednu transformači. 2. Skutečnost, ze transformače je invertibilní, implikuje |M| < |C|. 2 Perfektní bezpečnost Nyní víme, čo je sifrovačí system. Tezistem tohoto odstavče je podaní definiče a popisu bezpečneho sifrovačího systíemu. Intuivne rečeno znamena perfektní bezpečnost, ze Mr. X nema zadnou sanči zvetsit sve znalosti o systemu, i kdyby mel k dispoziči vsečhno vedeníí a vsečhnu počíítačovou kapačitu sveta. Predpoklídejme nyní, ze mame sifrovačí system (M, K, C) a ze (a) pi je pravdepodobnost, ze je odeslana zprava Mi, 1 < i < n = |M|; tyto pravdepodobnosti se nazyvají a priori (nebo teoretičke) pravdepodobnosti a jsou prirozene kazdemu dobremu kryptoanalytikovi znamy. (b) pravdepodobnost, ze je pouzit klíč Kj je kj a víber klíče nezívisí na zprave, kterí je prenasena. Tyto dve rozdelení pravdepodobností indukují rozdelení pravdepodobností na mnozine mozníčh kryptogramu, kde pro jistí kryptogram C, rekneme Cu, je pravdepodobnost toho, ze náhodné) kryptogram C je roven kryptogramu Cu, je určena vztahem kde v sume na prave strane sčítíme pres vsečhny dvojiče zprava-klíč (Mi,Kj) takove, ze e(Mi,Kj) = Cu. Víse uvedene lze preformulovat nasledovne pomočí pojmu nahodne veličiny. Mejme tri nahodne veličiny 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íč Kj G K a jev C = Cu znamena, ze byl začhyčen kryptogram Cu G C. Zejmena tedy P (M = Mi) = pi a P (K = Kj) = P (K = Kj |M = Mi) pro vsečhan i a vsečhna k. 50 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE Připomenme, ze víse uvedení situace je analogickí situaci v teorii kýdování pro prípad zdroje bez pameti. Pritom povazujeme zdroj za proud symbolu jiste koneCne 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. ZnaCí-li Xi i-tí symbol vytvorení zdrojem, dohodneme se pak, ze, pro každy symbol aj, pravdepodobnost P (Xi = aj) = pj je nežávislý na i a tedy je nezívislí na vsech minulích nebo v budoucnosti vyslanych symbolech. Jinak reCeno, X1,X2,... je práve posloupnost identicky distribuováních, nežývislých níhodních veliCin. Takovíto zdroj nazveme ždrojem s nulovou pamětí nebo ždrojem bež pameti a jeho entropie H je definovýná jako H = ~Y1 pj logpj' kde sCítíme pres množinu j takovích, že pj > 0. Připomenme, že jsou-li X1,... , Xm náhodne promenne takove, že každá z nich nábývý pouze koneCne mnoha hodnot, lze pak považovat X = (X1,...,Xm) za náhodny vektor a definovat souhrnou entropii X1,... ,Xm jako H (X1, . . . ,Xm) = H (X) = - ^ p(x1, . . . ,Xm) • log2 p(X1, . . . ,Xm), (2.1) k kde p(x1, . . . ,Xm) = P(X1 = X1,X2 = X2, . . . ,Xm = Xm). Predpokládejme dále, že X je náhodní promenná na pravdepodobnostním prostoru Q a A je udílost z Q. Nabívá-li X koneCne množiny hodnot {ai : 1 < i < m}, je prirozene definovat podmanenou entropii náhodne promenne X urCenou událostí A jako m H (X |A) = - J] P (X = ak |A)logP (X = ak|A). k=1 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. Diskrétní kanál bez paměti je charakterizovan vstupní abecedou I1 = {ai,..., am} vstupních znaku, vístupní abecedou I2 = {b1,..., bn} vístupníčh znaku a maticí P kanálu ( P = P11 Pi2 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íčí: kazdí posloupnost (u1,u2,... ,uN) symbolu ze vstupní abecedy S1 na vstupu se prevede na posloupnost v2,..., vN) teze delky symbolu z vístupní abecedy S2 na vístup tak, ze P(vfc = bj|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 stochastická 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-vovíana níňze uvedenyí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(bj obdrzeno^ 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 obdrzeno|ai 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 (U|V) = H (U) - H (U|V). Jinak receno, I(U|V) 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 pňrenosu diskríetníím kaníalem 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(S|J) = H(S) — H(S/J) bitu za sekundu. t 2. PERFEKTNÍ BEZPEČNOST 53 Casto se za jednotku času volí jeden prenos znaku a potom I (S|J) = H (S) — H (S /J) bitu za jednotku času. Informače o S podana pomočí J je pak rovna I (S|J) = H (S) — H (S|J) = H (S) + H (J) — H (S, J) a je to funkče, kterí zavisí pouze na pravděpodobnostním rozdělení q1,..., qn, a matičí kanalu P. Proto je prirozeně definovat kapacitu C kanalu jako maximalní ryčhlost prenosu, tedy kde supremum je bríno pres vsečhny zdroje bez paměti S, nebo, jestě presněji, nad vsemi možnymi rozděleními pravděpodobností ... V dalsím tedy mužeme považovat M za zdroj bez paměti s sifrovačí funkčí e, pričemž klíče slouží jako komunikační kanal. Zíkladním pojmem je pojem klíčové ekvivokace zavedení Shannonem H (K |C). ten nam měrí pruměrnou nejistotu, ktera nam zustaví po začhyčení kryptogramu C. Podobně budeme definovat ekvivokaci zprav jakožto H (M |C). Občas budeme psat S = (M, K, C) a budeme značit H (S) klíčovou ekvivokači H (K |C). Níhodna proměnní zprív ma pak entropii zprav a, jsou-li po radě K a C nahodně proměnně klíčču a kryptogramu, jsou pak klíčová entropie H (K) a entropie kryptogramU definovíny jakožto C = sup I(S|J), (2.2) H (K )=— £ P (K = Kj)logP (K = Kj), H (C)=— £ P (C = C )logP (C = C), 54 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE kde sumace je provadena pres vsechny mozne klícce K a vsechny mozne kryptogramy Cj. Nasledující vlastnost ekvivokace vyjadruje tu skutecnost, ze daleko více nejistoty je spjato s klíccem nez se zpríavou. Veta 2.1 Klíčová ekvivokáce je určená ekvivokácá zprávy vztahem H (K |C) = H (M |C) + H (K |M, C). Dukaz. Pripomeňme zakladní 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. Dusledek 2.2 Klácová ekvivokáce je álesponč ták velká jáko ekvivokáce zprávy. 2. PERFEKTNÍ BEZPECNOST 55 Lemma 2.3 Pro kazdý krýptosýstím (M, K, C) platí H (K, C) = H (M) + H (K). Dukaz. Protoze nahodne veliciny K a M jsou nezívisle, víme, ze H (M) + H (K) = H (M, K). Stací tedy overit, ze H (C, K) = H (M, K) tj. H (C |K) = H (M |K). Poznamenejme, ze stací pro pevní klíc Kj overit, ze H (C |K = Kj) = H (M |K = Kj). Polozme C' = {C G C : existuje M* G M tak, ze C = e(Mí ,Kj)}. Pak evidentne H (C |K = Kj) = H (C'|K = Kj), protoze pro kryptogramy nelezící v C' je odpovídající podmínŠenía pravdŠepodobnost nulovaí. PŠripomenŠme zníamíy fakt z teorie informace H(U|V) = 0 príve tehdy, kdyz U = g(V) pro nejakou funkci g. (2.3) Zrejme, protoze : M C' tak, ze (M*) = e(Mí,Kj) a (M*)) = M*, je bijekce. Speciílne, C|K = Kj je funkcí M|K = Kj a obrícene M|K = Kj je funkcí C'|K = Kj. Lehkou upravou pak obdrzíme, ze H (M |K = Kj) = H (C'|K = Kj), tj. H (C |K = Kj) = H (M |K = Kj). Dusledek 2.4 Pro kazdí krýptosýstem (M, K, C) platí H (C |K) = H (M |K), H (C, K) = H (M, K) a H (M) < H (C). Dukaz. 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) Predpokladejme, ze zprívý 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) w 0.174. (b) Nyní predpoklídejme, ze zprívý v M jsou dvojice za sebou následujících písmen slov nejake (nemecke) knihy; pravdŠepodobnost zpríavy 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. PERFEKTNYI BEZPECZNOST 57 pro kazdou zprá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í Zifry jsou perfektní,, jestliZe operují, nad jednotlivými písmeny. Mr. X se pak muze namíhat jak chce; písmena kryptogramu jsou totiz zcela nahodne rozdelena. Chceme-li perfektnost sifrovacího systemu vyjadrit pomocí nahodních promenních M a C, je system perfektní prave tehdy, kdyz M a C jsou nezavisle. Z toho bezprostredne plyne, ze sifrovací system (M, K, C) poskytuje perfektní bezpeCnost, jestlize pro kazdou zpravu M platí pm (C )= p(C) pro kazdí kryptogram C. Veta 2.5 Kryptosystem (M, K, C) je perfektní prave tehdy, kdyz H (M |C) = H (M). DUkaz. Z teorie informace je znímo, ze H (M |C) = H (M) príve tehdy, kdyz M a C jsou nezavisle nahodne promenníe tj. to je praíve tehdy, kdyz se jednía o perfektníí kryptosystíem. Ptejme se nyní, jak muzeme rozpoznat, kdy je sifrovací system perfektní či nikoliv. K tomu si dokízeme nekolik jednoduchích kriterií. 1. Kriterium Je-li šifrovací system (M, K, C) perfektní, pak kazda zprava s odpovídajícím klíčem mů,ze byt zobrazena na libovolny kryptogram. ProZ 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íc, pomocí ktereho se zaŠsifruje M do C .Tím je dokíazíano první kritíerium. Toto kriterium je velmi uzitecne - v negativním smýslu: Umozní ním rozhodnout, ze jiste systemy nejsou perfektní. 2. Kriterium Je-li šifrovací, sýstem (M, K, C) perfektní,, pak platí,: | M| < | C| < | K| . Dukaz. Zrejme |M| < |C|. Proc platí |C| < |K|? Uvazme libovolnou, pevne zvolenou zpravu M a zasifrujme ji pomocí vsech moznych klícu z (M, K, C). Podle prvního kriteria lze M prevest do kazdeho mozneho kryptogramu. Pro kazdy kryptogram C potrebujeme alespon jeden klíc (totiz pomocí jednoho klícce nemuzeme M zobrazit na dva ruzne kryptogramy). Potrebujeme tedy alespoň tolik klíccu, kolik je kryptogramu. Mame tedy |C| < |K|. 3. Kriterium Bud' (M, K, C) šifrovací sýstem tak, ze |M| = |C| = |K|, ve kterém se vsechný klíce vyskytují s toutéž pravdepodobností. Dale predpokladejme, ze ke každé zpríve M a ke kazdemu kryptogramu C existuje príve jeden klíc K z (M, K, C) tak, še e(M, K) = C. Pak je (M, K, C) perfektníí. Dukaz. Stací zrejme overit, ze pro kazdou zpravu platí P (M = M*|C = Cj) = P (M) pro kazdí kryptogram Cj. Z Bayesova vzorce míme P (M = M*|C = Cj )= ,P (C = Cj |M = M*) • P (M = M*) Eli=l1 P (C = Cj |M = Mfc) • P (M = Mfc) £ÍK|1 P (M = Mfc) 1 th 2. PERFEKTNYI BEZPECZNOST 59 nebot' P (C = C j |M = Mk) = j-Ky nezívisle na j a k. Prirozením zpusobem jak zvísit bezpečnost 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í souzet: Jsou-li S1 a S2 dva kryptosystemy se stejnym prostorem zprív M = M1 = M2 a 0 < p < 1, je pak jejich vazeny soucet pS1 + (1 — p)S2 kryptosystem určení 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íčč Ki a S2 mí klícce K1,..., K'n s pravdepodobnostmi pouzití pj pro klíčč Kj, ma pak kryptosystem pS1 + (1 — p)S2 m + n klíču K1,..., Km, K1,..., Kí s pravdepodobnostmi pouzití ppi pro klíčč Ki a s pravdepodobnostmi pouzití (1 — p)pj pro klíčč Kj. Tento postup lze prirozene rpzsírit na více nez dva systemy. • Soucin: 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 součin jako S1*S2. Jsou-li klícce K1,... , Km s pravdepodobnostmi pouzití pi pro klíčč Ki v kryptosystemu S1 a S2 ma klícce K1,... , K'n s pravdepodobnostmi pouzití pj pro klíčč Kj, mí pak kryptosystem S1*S2 m.n klíčču (Ki,Kjj) s pravdepodobnostmi pouzití pipj. Poznamenejme, ze skutečne efektivních klíčču muze bít mene, protoze nektere se slozenych transformací mohou splívat. Poznamenejme, ze evidentne platí nasledující: Jsou-li S1, S2 a S3 kryptosystemy tak, ze mze uvedene operace jsou definovíny, 0 0 : H (K |CW) = 0}, tj. H (Mu) + H (K) — H(Cu) = 0. Pňredpoklaídejme, ňze platí níasledující: 1. Prirození jazyk, ve kterem sifrujeme, mí tu vlastnost, ze je dan vhodní odhad H(MN) jako H(Mn) ~ NH, kde H je entropie jednoho symbolu jazyka; 2. kryptosystem mí tu vlastnost, ze vsechny sekvence delky N symbolu mají stejnou pravdepodobnost jakoňzto kryptogram; jinak ňreňceno H(Cn) ^ Nlog|E|. 68 KAPITOLA 3. DOPŘEJME SI JISTOTY NEBOLI TROCHU TEORIE To není nevhodní pozadavek: kazdy dobrí kryptosystem by mel mít tuto vlastnost. Z víse uvedeneho obdrzíme UH + H (K) - Ulog|E| = 0, tj. H (K) U = log|E| - H' Obvykle se rovnez predpoklada, ze kazdí klíčč muzeme vybrat se stejnou pravdepodobností a to znamena, ze log|K| U= log|E| - H kde H je entropie symbolu zdroje. Pripomenme, ze existuje tesny vztah mezi bodem uničity kryptosystemu a redundančí jazyka, ve kterím se prenasí zprava. Pritom redundanče R jazyka s entropií H je určena vztahem R =1- H log|S|- a tedy u = log|k| log|k| log|E| - H Rlog|E| Zejmena pak ma-li jazyk nulovou redundanči, je pro kazdí kryptosystem splnujíčí 1 a 2 bod uničity nekonečno. Príklad: Predpoklídejme, ze sifrujeme pomočí jednodučhe substituče tak, ze mame príve 26! klíču. Uvazujeme-li log26 = 4.7 a entropii angličkeho jazyka HE rovnu 2 bitum na symbol, obdrzíme U = 4.7-2= 2.7 " 32. S. REDUNDANCE PŘIROZENEhO JAZYKA A BOD UNICITY 69 Jinak řeceno, při 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), ktery tvrdí, ze pro bod unicity "lze ukízat, ze lezí mezi krajními body 20 a 30. S 30 písmeny existuje temeř vzdy jedine řesení pro kryptogram tohoto typu a s 20 muzeme najít nejakí pocet řesení. " Podobním zpusobem Friedman (1973) tvrdí, ze "Prakticky kazdí pří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 přítazlive rozsíření víse zkoumaneho přístupu. V tomto modelu je prostor zprav rozdelen do dvou disjunktních podmnozin. První podmnozina obsahuje 2HN smyslu-plních ci typickích zprív, přicemz 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 předpokladat, ze klícce jsou pouzity nezavisle na zprave a se stejnou pravdepodobností. Je-li C kryptogram, oznacme Z(C) pocet dvojic (M, K) takovích, ze zprava M je smysluplna a MA e(Mi ,Kj ) = C, 70 KAPITOLA 3. DOPRŠEJME SI JISTOTY NEBOLI TROCHU TEORIE pak neprítel, kterí zachytí C bude v pochybích o pouzitem klíci. Je-li |Z(C) | > 1, je kryptogram C zasifrovan pomocí ňsifrovaíní s faleZsnyám kláiZcem. Klademe-li s(C) =max{[Z(C) — 1], 0}, ocekavana hodnota s(C), totiz s = ^ s(C)P(C), ceC níam odhaduje oňcekíavaníy poňcet ňsifrovíaní s faleňsnyím klíňcem. Ale je okamňzitňe vidňet, ňze s = z — 1, kde z =J2 Z(C)P(C) = Z2(C)/2NH|K|, ceC ceC a tedy z definice modelu obdrzíme pro kazdy kryptogram C P (C) = Z (C)/2NH |K|. Pňritom evidentnňe £ Z (C) = 2NH |K|. ceC Aplikujeme-li na vyíňse uvedeníe jednoduchíe lemma tvrdící, ňze pro vňsechna xi splnňující n xi = a, i 1 S. REDUNDANCE PRIROZENEHO JAZYKA A BOD UNICITY 71 míame n obdrňzíme Z > (2NH|K|)2/|C|2NH|K| = 2NH|K|/|C|. Muzeme pak vyslovit nísledující Veta 3.1 Za predpokladu platnosti váse uvedeného je očekávány pocet šifrování s fálesnym klícem odhádnut jáko S > (2NH|K|/|C|) - 1. Píňseme-li nyní K = 2H(K), C = 2NHo = |E|N, kde H0 je entropie jazyka, lze vyíňse uvedenou vňetu pňrepsat jakoňzto S > 2NH+H(K)-NHo - 1 pňriňcemňz pravaí strana je rovna nule pňresnňe v bodu unicity. Príklad: Predpokladejme, ze sifrujeme pomocí Vigenerova sifrovíní otevrení text delky 100 klícem delky 80 tak, ze míme anglickou abecedu s 26 písmeny. Víme, ze H0 = 4.7 = log26 a H = HE ~ 1.5 bitu, H (K) = 80log26 = 376. Obdrzíme pak prumerne alespon 2376-320 ~ 256 ruzních sifrovaní s falesnym klícem pro kryptogram o 100 písmenech. 72 KAPITOLA 3. DOPRZEJME SI JISTOTY NEBOLI TROCHU TEORIE Kapitola 4 One-time Pad a lineární posouvací registry 1 One-time Pad Nyní budeme hovořit o nasledujícím perfektním systemu: Předpokladejme, že abeceda S je obvyklý 26-ti písmenna anglický abeceda a že tecky, mežery atd. jsou vypusteny a že odesílana žprýva M sestývý ž N písmen. Abychom žasifrovali žpravu, vygenerujeme nahodnou posloupnost o N písmenech ž abecedy S, pricemž výber každeho písmene je nežavislý a každe písmeno ma pravdepodobnost 26, že bude vybrýno. Tato nahodna posloupnost (Z1,..., ZN) bude klíc K a, abychom žasifrovali M = ... ,xN) pomocí K budeme definovat C = e(M, K) Ví = Xj © Zj mod 26, kde jako v obvyklem substitucním císlicovem systemu jsme písmenum po rade priradili císelnou hodnotu ž množiny {0,... , 25}. Tedy jako klíce vybereme rovnež vsech 26N posloupností delky N; každou ž techto FI 73 74 KAPITOLA 4. ONE-TIME PAD A LINEÁRNI POSOUVACI REGISTRY posloupností lze zvolit se stejnou pravdepodobností tj. H (K) = Nlog26. Protoze klíc K = (Z1, 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) = 26n 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 klícu, 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íccove 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 . . . an©kn získame pomocí binarního scítaní. Pro bezpeňcnost tohoto systíemu je podstatníe, ňze vňsechny posloupnosti díelky n se vyskytují s toutíeňz pravdňepodobností. Jinak ňreňceno: Bity klíňcovíeho slova musí byít voleny níahodnňe. Nejlíepe si to pňredstaví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 deňsifrovací skupinou, aby zprostňredkovala zpraívy premiíerovi, kteríe byly Nňemci zaňsifrovíany 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íč. Tedy je nutne pouzít pseúdonahodných posloupností gene-rovanýčh jednou z mnoha standardních metod. Neexistuje pak zadní zaruka, ze takovíto pseudonahodne posloupnosti nam budou stejnou uroven bezpečnosti. Jední se o hlubokí matematicky problem. Proč 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 zasifrovíní (pouzívame-li bity, jední se dokonce o presne totez). To al muze príjemce provest jen v prípade, ze ma klíčč. Kde je vlastne problem? Problem spočíví v tom, ze musíme prenest (doručit) dlouhy tajní klíčč. Kdybychom toto provídeli pomocí stejne cesty jako zpravu, je vzhledem k delce klícce sance prečtení 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íče muze odesilatel určit druh, zpusob a dobu predíní, coz samozrejme u prenosu zprívy neplatí. Jiny zpusob prenosu klícce je pouzití kuryra. Pri prenosu klíče se nejedna pouze o teoretickí problem, níbrz o to, ze obtízznost vímeny klícce silne ovlivňuje nasazení sifrovacích systemu. Dulezití postup pro vyresení tohoto problemu spočíva v tom, ze namísto skutečne nahodnych klíčovych posloupností pouzijeme pouze pseudonahodne posloupnosti. Takovato posloupnost vypada na první pohled jako skuteční nahodna posloupnost. A co je jeste dulezitejsí: nahodnou posloupnost lze určit pomocí nekolika maílo dat; tyto data pak pňredstavují skuteňcnyí klíňc. Oba komunikující partneňri pak mohou z tňechto dat spoňcí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. Samozň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čností a mnozinou tajne prenositelních dat. 76 KAPITOLA 4. ONE-TIME PAD A LINEARNI POSOUVACI REGISTRY Posouvacé registr je posloupnost v rade za sebou nasledujících registru, pricemz kazdí registr muze obsahovat pouze císlici 1 (on) nebo 0 (off). Hodinovy strojek reguluje chovaní systemu, kterí pracuje v souladu s naísledujíícíími podmíínkami: Predpokladejme, ze system ma m registru R0, R1,..., a ze Xj(t) oznacuje obsah registru R v case t. Necht' je díle na zacatku system ve stavu X(0) = (Xm_1(0),..., Xo(0)). Pokud X(t) = (Xm_1 (t),..., Xo(t)). oznacuje stav systemu v dobe t, stav v case t + 1 je urcen vztahy Xj(t +1)= Xj+1(t) (0 < i < m — 2), (1.1) Xm_1(t +1) = f (X(t)), (1.2) kde f je nejakí binarní funkce m promenních. Pokud je f tvaru m_ 1 f °m_jXj(t) = cmXo(t) 0 cm_1 X1 (t) 0 • • • 0 dXm_1(t), mluvííme o lineíarníím posouvacíím registru. Pritom chovíaníí systíemu je jednoznacne urceno (a) pocíatecníím stavem X(0) a (b) mnozinou konstant c1, . . . , cm. Budeme vzdy predpoklíadat, ze cm = 0; jinak bychom mohli pracovat bez registru R0. Zpusob, jakím linearní system pracuje, je, ze po obdrzení signalu kazdy registr provede dve veci: 1. ONE-TIME PAD 77 (i) Prenese svůj obsah do svěho pravěho souseda (registr R0 toto prověst nemuže, jeho obsah se stane vystupním bitem Zt naseho stroje). (ii) Takově registry Rj, pro kterě je cj = 1 prenesou svuj obsah do čítače, ten je sečte a vísledek prenese do registru Rm-1. Jakmile je jednou nastaven počateční vektor, lze posouvačí registr považovat za zdroj nekonečně posloupnosti binarníčh číslič Xo (0),Xo (1),Xo (2),.... Ačkoliv takto vytvorena posloupnost není níhodna, lze ukazat, že ma jistě rysy nahodilosti. Navíč ji lze snadno a ryčhle generovat. Bohuzel je v sak velmi nejistía. 78 KAPITOLA 4. ONE-TIME PAD A LINEARNI POSOUVACI REGISTRY Vlastnosti posloupností vytvořenýčh lineárními posouvačími registry Nejprve uvazujme periodičitu. Nekoneční posloupnost (yi : 0 < i < to) se nazíví periodická s periodou p, jestlize je p kladne prirozene číslo takove, ze yi+p = yi pro vsečhna i a navíč 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-1,y0,y1, .... Jinak rečeno, posloupnost s periodou p je presne posloupnost opakovíní konečneho bloku delky p. Vrat' me se nyníí k posloupnosti určeníe lineaírníím posouvačíím registrem: predpoklíadejme, ze počíatečníí vektor X(0) není nulovy vektor a ze rovniče 1.1 a 1.2 lze prepsat ve tvaru X(t + 1)=CX(t), (1.3) kde C je matiče tvaru C1 C2 Ca . . . cm—1 Cm l O O . . . O O O l O . . . O O O O O . . . l O Protoze jsme predpokladali, ze cm = 1 a protoze det C = cm = 1, vidíme, ze C je regulírní matiče. Iterovíním rovniče 1.3 dostaneme X(t) = C*X(0). Pritom platí Veta 1.1 Posloupnost vytvorená pomocí lineárního posouvacího registruje periodická á pokud je vytvorená z m registrů,, je její máximální periodá 2m - 1. 1. ONE-TIME PAD 79 Dukaz. Protoze 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 nenuloví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íz nemohou bít vsechny ruzne: rekneme, ze CsX(0) = Cs+tX(0), kde 0 < s < s +t < 2m - 1. Protoze existuje C-s, mame X(t) = CX(0) = C-sCs+tX(0) = X(0). Tedy X(r + t) = Cr+tX(0) = CrCť X(0) = CrX(t) = CrX(0) = X(r) pro vsechna r > 0, a C je periodickí s periodou nejvíse t < 2m-1. Posloupnost vytvorena pomocí lineírního posouvacíího registru je tedy periodickaí. Definujme charakteristicky polynom lineírního posouvacího registru jako polynom m i=1 s cm = 0, ci G {0,1}. Chařakteřistický polynom je primitivná, jestlize (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í posouvací registr s charakteristickým polynomem 1 + x + x2 + x4. Nasledující tvrzení uvedeme bez dukazu. Veta 1.2 Posloupnost vytvoZena pomocí linearního posouvacího registru z nenuloveho vstupu mí maximalní periodu prave tehdy, je-li její charakteristicky 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 linearníčh posouvačíčh registrU Muzeme tedy pouzít lineírní posouvačí registry k vytvorení pseudonahodníčh posloupností pro kryptogra-fičke učely. To je lačine, linearní posouvačí registry provídí vípočty velmi ryčhle - čo muzeme jeste víč čhtít? Nelze poprít, ze posloupnosti vytvorene pomočí lineírníčh posouvačíčh registru mají vynikajíčí statis-tičke vlastnosti; a to platí dokonče pro posloupnosti, které vzniknou z relativne kratkyčh linearníčh posouvačíčh registru. Ale z kryptologičkeho pohledu mají tyto posloupnosti mimoradne počhybny čharakter. To je dusledkem toho, ze v prípade known-plaintext ítoku mu nejsou sčhopny odolat. Definujme blok delky t jako posloupnost tvaru 011... 10 obsahujíčí prave t jedniček. Dírou delky t je posloupnost tvaru 100... 01 obsahujíčí príve t nul. Platí níasledujíčí vyísledek. Veta 2.1 Mé-li lineérní posouvácí registr s m registry máximélní periodu 2m - 1, májí pák vysledne posloupnosti delky 2m - 1 nesledující vlástnosti: (a) obsáhuje práve 2m-1 - 1 nul á 2m-1 jedniček; (b) obsáhuje pro včechná t tákové, re 1 < t < m - 2, 2m-t-2 bloku, delky t á stejny pocet der delky t. DUkaz. Stav lineírního posouvačího registru lze v kazdem okamziku jednoznačne popsat prirozením číslem z intervalu [1..2m - 1]: stačí vzít príslusnou čast vístupní posloupnosti. Protoze se vsečhna nenuloví čísla z intervalu [1..2m - 1] musí vyskytnout jako stavy v čyklu maximalní delky, vysledek okamzite dostaneme vysledek (a) spočtením sudíčh a ličhíčh čísel v teto mnozine. Abyčhom dokízali (b), poznamenejme, ze beh typu 011... 10 obsahujíčí prave t jedniček se muze vyskytnout jako součíst vístupu prave tehdy, kdyz v nejake časti vípočtu je stav linearního posouvačího registru 011... 10x1x2 ... xm-t-2, kde xi G {0,1}. Protoze mame príve 2m-t-2 stavu tohoto tvaru a protoze kazdí stav je realizovan v nejakem okamziku vípočtu vzhledem k tomu, ze linearní posouvačí registr nm 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 leve 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 LINEARNI POSOUVACI REGISTRY Tudíz posloupnost Z = Z1Z2 ... je generovína lineírním posouvacím registrem R' delky k (přicemz příslusní charakteristicky polynom lineírního posouvacího registru R' ma koeficienty b0,..., To je ale spor s minimalitou m. D u sledek 2.3 Uzitá posloupností vytvorených pomocí lineárního posouvacího registru není bezpečné proti known-pláintext utoku. D u kaz. Předpokladejme, ze odesilatel Alice a příjemce Bob pouzívají proudovou sifru, jejímz 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, řekneme Mi+1, Mi+2, ..., Mi+2m. Pokud Eve zachytí odpovídající cast sifroveho textu Ci+1, Ci+2, ..., Ci+2m, pak samozřejme zní i odpovídající císt klíce Zi+1, Zi+2, ..., Zi+2m. Dle předchozí vety je tedy Eve schopna urcit koeficienty charakteristickeho polynomu linearního posouvacího registru R, tj. zkonstruovat R. Muze tedy, vezme-li za pocatecní zaklad Zi+1, Zi+2, ..., Zi+2m vygenerovat vsechny předchozí i nasledující cleny klícce. Eve je tedy schopna desifrovat zbytek zpravy. Chceme-li zachovat hezke vlastnosti linearních registru a zíroveň zajistit vetsí stupeň bezpecnosti, pouzijeme v rovnici 1.2 nelineírní funkci. Skutecne je tomu tak, ze vetsina dnes pouzívaních algoritmu je zalozena na nelinearních posouvacích registrech, ackoliv bychom nemeli zapomenout na DES. Kapitola 5 Výpocetní slozitost Dukaz toho, ze existují nerozhodnutelne problemy a nevycí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 vypocetní slozitosti se tíka trídy problemu, ktere lze v principu vyresit: ale vzhledem k teto tríde se teorie pokousí klasifikovat problemy podle jejich vípocetní obtíznosti v zavislosti na mnozství casu 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 zacneme informalne s nekolika príklady. Príklad. 1 Nasobení přirozených čísel Uvazme problem nísobení dvou binarních n-bitovych císel x a y. Je-li x = x1... xn a y = y1... yn, muzeme provest standardní metodu dlouhého nasobení,, ktera je ucena na zakladní skole nasledovnym zpusobem: Postupne nasobme x císly y1, y2 atd., posunme a pak pricteme vísledek. Kazde nísobení x císlem nas 85 86 KAPITOLA 5. VYPOCETNI SLOŽITOST stojí n jednodučhíčh bitových operací. Podobně sečtení n součinu nam zabere O(n2) bitovíčh operačí. Je tedy čelkoví počet operačí O(n2). Mužeme víse uvedeně jestě zlepsit? Tj., existuje ryčhlejsí algoritmus v tom smyslu, že provede podstatně měně bitovyčh informačí. Presněji, jsou-li dana 2 n-bitova čísla, n sudě, píseme x = a22 + b, y = c22 + d, pak součin z lze získat pomočí trí nísobení 1 n-bitovíčh čísel použitím reprezentače z = xy = (ac)2n + [ac + bd — (a — b)(c — d)]2n + bd. Označíme-li T (n) čas, kterí nam zabere nísobení podle těto metody, míme, prože nísobení 2n je ryčhlě, že n T (n) < 3T + O(n). Po vyresení víse uvedeně rekurentní nerovnosti obdržíme, že T (n) < AnIog3 + Bn, kde A a B jsou konstanty. Protože log 3 ~ 1.59, míme k dispoziči algoritmus o časově složitosti O(n1.59) v porovníní se standardním O(n2) algoritmem. V současnosti nm jeden z nejlepsíčh znamíčh algoritmu (Sčhonhagen, Strassen) složitost O(nlog nloglog n). Příklad. 2 Determinanty a permanenty. Uvažujme nasledujíčí dva vípočetní problěmy. Pro každí vstup složení z binarní matičě A typu n x n čhčeme vypočítat 1. determinant matičě A, píseme pak detA, 2. permanent matičě 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íznou 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 Trideni. 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, ..., an. 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,..., bn; 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. VYPOCETNI SLOŽITOST Poznamenejme, ze mame nekolik rekurzivních algoritmu zaloZených na princiou rozdel a panuj tím, ze trídíme 2 polovice mnoziny a pak spojíme setrídene seznamy k sobe, coz nam zabere pouze O(nlogn) srovnaíní. Pro níazornost uved'me naísledující tabulku Ovsem, víraz O(n logn) muze skryt velke konstantní vírazy, ale tak joko tak se jední o velky rozdíl, obzvlíste proto, ze trídení je casto pouzívaní algoritmus a velikost seznamu je casto velmi velka. Jinyí fascinujíícíí pohled na tňríídňeníí je ten, ňze existuje spodníí mez stejníeho ňraídu pro kaňzdyí algoritmus zaloZený na trídení. Casto mluvíme o informacne-teoreticke spodní mezi, ale nejední se o nic jineho, nez o prímí dusledek pozorovíní, ze kazdy algoritmus zalozeny na srovnaní lze reprezentovat pomocí binaní stromove struktury a protoze musíme pokryt vsech n! mozních usporadíní, kazdy takovíto strom musí mít alespon n! listu. Príklad. 4 Test prvocíselnosti. Bezprostredne se zdí, ze testovat, zda prirozene císlo N je prvocíslo, lze vyresit velmi rychlím a snadnym algoritmem: testujeme, zda je N delitelene 2 nebo nejakím lichím císlem z intervalu [3, N2]. Protoze se jední pouze o 1N2 delení, jedna se o polynomialní algoritmus v promenne N a tudíňz rychlíy algoritmus. Avsak dalsí ívahy ukazují, ze reprezentace císla N v pocítaci by byl binírní retezec delky [log N] a tudííz, abychom mohli algoritmus na testovaíníí prvocííselnosti povazovat za rychlyí, jeho vyípocetníí slozitost musí bít polynomialní v n = [log N]. Doposud vsak zídní takovyto algoritmus není zním. V soucasnosti jsou k dispozici algoritmy se slozitostíí n n log2n n2 50 500 ~ 300 2500 ~ 4500 250000 t(N) = O(ln N) Clnln lnN kde c je kladnía konstanta. 89 Příklad. 5 Největší společný dělitel a Euklidův algoritmus. Uvazujme problem nalezení nejvetsího společného delitele (nsd) dvou prirozeních císel u a v. Zrejma metoda je faktorizace obou císel na prvocísla u — 2ui3U25U3v — 2vi3V25V3 pak lze zjistit jejich nejvetsí spolecní delitel nasledovne w — nsd(u,v) — 2wi3W25W3 kde wi — min{ui,vi}. Jedna se vsak o velmi neefektivní postup. Potrebujeme totiz faktorizovat obe císla a tento postup nelze rychle provest pro velka prirození císla. Metoda, jíz tento postup muzeme obejít, je znaímía jako Euklidůuv algoritmus. Predpokladejme, ze u > v > 0. Pak obdrzíme posloupnost delení: u—a1v + b1, 0 < 61 < v, V—(Í2&1 + &2, 0 < 62 < 61, 61—^362 + 63, 0 < 63 < 62, bk-2—ak6fc_1 + 6fc, 0 < 63 < 62, ktera skoncí bud' 6k — 0 nebo 6k — 1. Pokud 6k — 1, jsou císla u a v nesoudelní; pokud 6k — 0, je nsd(u, v) — 6k-1. O tomto algoritmu lze snadno dokazat, ze je korektní a detailní analýza jeho ucinnosti ukíze, ze nejhorsí prípad (mereno poctem delení) nastane, jsou-li u a v za sebou nasledující Fibonacciho císla Fra+2 a Fra+1. Pak v tomto prípade a to vede k nasledujícímu Lameho vísledku (1845) 90 KAPITOLA 5. VYPOCETNI SLOŽITOST Věta 0.4 Je-li 0 < u, v < N, pak pocet delení pri pouZití Euklidova algoritmu na u a v je nejvíse \logv(Vf5N)] — 2, kde p je zlatí rez 1 (1 + V5). 1 P=polynomiainí cas Zakladní mírou obtížnosti vypoctu je množství doby, ktere ním vípocet žabere. Zformulovíní presne definice, co to je cas, je netrivialní žaležitost; presní formulace požaduje velmi precižní definici strojoveho modelu, jednotky casu atd. V príkladech ž predchožího paragrafu jsme merili slozitost vípoctu v pojmech poctu žíkladních operací, ktere byly provídeny. Mohlo se jednat o soucet bitu, srovníní nebo cokoliv jineho. Klícove pojmy jsou nasledující: 1. složitost je funkce velikosti vstupu (obvykle ji žnacíme jako n), 2. pro danou velikost vstupu n je složitost doba nejhorsího mozneho prípadu behu algoritmu. Prripomenrme si, rže prri testovíaní prvorcíselnosti prriroženíeho rcísla N jsme obdrrželi jinou sloržitost v prrípadre, že jsme považovali vstup velikosti N nebo vhodneji pomocí reprežentace n = [log N] binarních císlic. Na žaklade tohoto dusledku bude velikost vstupu vždy považovína ža pňrozenou delku ekonomickeho vstupu. Co se tíce definice složitosti jako nejhorsího možneho prípadu, jiní možnost - prumerní prípad - se potíka s obtížemi, a to jak teoretickími tak praktickými. Ne poslední obtížnost je rožhodnout citlive o pravdivostním roždrelení na vstupu. Nejprve budeme postupovat neformálne. Řekneme, že algoritmus A nm polynomialní slozitost, jestliže existuje polynom p(x) tak, že tA(n) < P(n), 1. P=POLYNOMIALNI CAS 91 pro vsechna prirozena císla n, pricemz t^(n) je maximalní doba potrební algoritmem k vípoctu pres vsechny vstupy velikosti n. Problem lze provest v polynomiálním case, pokud existuje nejakí algoritmus, kterí ho resí a mí poly-nomialní slozitost, v tomto prípade tvrdíme, ze problém leží, v tride P. Porovnejme nasi definici s príklady 1-5 z predchozího paragrafu. Příklad. 1 Nasobeni pnrožených císel je operace provadení v polynomialní dobe, Příklad. 2 Determinanty a permanenty. Vypocet determinantu je problem, kterí urcite lezí v P .U vípoctu permanentu nevíme, zda tento problem lezí v P, predpoklída se, ze zde nelezí, a dukaz jakekoliv implikace by mel velkou dulezitost v teorii slozitosti. Příklad. 3 Trídení lze provest pomocí O(n logn) srovnaní a protoze srovnaní lze provest v polynomialním case, lezí trídení v P. Příklad. 4 O testu prvocíselnosti od roku 2002 víme, ze lezí v P. Tento vynikající vysledek 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í slozitosti aritmetickích operací). Tento algoritmus je pomerne komplikovaní a odhad jeho slozitosti vyzaduje dosti netriviílní vety z teorie císel. Příklad. 5 Nalezení nejvetsího společného dělitele dvou prirozeních císel velikosti < N a proto velikosti vstupu log N bitu lze provest v case O (log N) a proto tento problem lezí v P. Trída P je v soucasnosti nejdulezitejsí trídou v matematice a computer science, to, ze nejaky problem lezí v P, lze obvykle povazovat za to, ze se jedna o vypocetne dobrí problem. Ackoliv poslední uvedene obecne zcela neplatí (problem nalezení klik v grafu), nísledující tvrzení nam ukazují, ze se jedna o atraktivní a efektivní pojem. 1. Trída P je robustní vzhledem k ruzním reprezentacím vstupních hodnot za predpokladu, ze tyto 92 KAPITOLA 5. VYPOCETNI SLOŽITOST změny jsou vuči sobě polynomiílně korelovany.3 Napríklad, zda uvažujeme vstup matičě typu n x n velikosti n nebo n2, neděla zadní rozdíl. 2. Trída P je robustní vzhledem k použitěmu modelu vypočetního stroje. Jinak rečeno, zda použijeme Pentium nebo stroj s nahodním prístupem nebo Turinguv stroj, nase trída zustane nezměněna. Toto lze čelkem snadno dokazat. Je pouze nutno ověrit, že doby pro simulači zakladníčh operačí na obou strojíčh, jsou polynomialně korelovíny. Pripomenme stručně formalní definiči trídy P. Tuřingovy stroje — formálni definice třídy P Turingův stroj sestava z 2-směrně nekonečně pasky rozděleně do čtverču. Každy čtvereč muže obsahovat symbol z konečně aběčědy S obsahujíčí prízdní symbol *. Až na konečně mnoho čtverču vsěčhny obsahují prízdny symbol *. Paska je snímana ryčhlostí 1 čtvereč za jednotku času tzv. čtecí i zapisovací hlavičí. Stroj muže bít v jednom z konečně množiny r stavu, r = {q0, q1,... , qm} a príslusna akčě stroje v danam čase je jednoznačně určena jeho vnitrním stavem a symbolem v současně snímaněm čtverči. Akčě provede libovolnou z níasledujíčíčh operačí: 1. změní (prepíse) snímaní symbol na jiní symbol ze S, 2. posune čtečí hlaviči o jeden čtvereč doprava (—>) či doleva (<—), 3. změní svuj současny stav z q na qj. Vyípočet Turingova stroje je tedy ríízen prečhodovou funkčíí 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 =POLYNOMIALM CAS 93 Control unit 2-way infinite tape Vypocet Turingova stroje sestava z nísledujících kroku: 1. reprezentace vípoctu konecním řetezcem x G E0, kde E0 = E \ {*}, kterí je umísten ve ctvercích 1 - n, kde n je pocet symbolu obsazeních v x, 2. odstartovíní cinnosti Turingova stroje z jeho pocatecního stavu (obvykle q0) s přepisovací 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 (q/). 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 delká neboli cas použití při vípoctu je pocet takovíchto kroku. Pokud M oznacuje nejakí Turinguv stroj , oznacíme tuto dobu tM(x). Funkce f : Eq Eq je vycíslitelní pomocí Turingova stroje M, jestlize pro vsechna x G E0, x je vstup pro M, v pří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 - kazdí vípočet, ktery lze vykonat moderním počítačem, lze provest i Turingovym strojem. Ovsem v praxi je konstrukče Turingova stroje sčhopneho i pouze jednodučhyčh vypočtu velmi časove naroční. Proto byl vyvinut soubor zakladníčh Turingovíčh stroju, ktere provídí odpovídajíčí ulohy. Konstruujeme-li pak slozití Turinguv stroj, pouzívane stroju jiz dríve zkonstruovanyčh, podobne jako kdyz pouzívame podrutiny v obvyklíčh počítačovýčh programečh. Muzeme pak formílne definovat časovou slozitost. Je-li M Turinguv stroj, kterí zastaví pro vsečhny vstupy x G Eq, cásová sloZitost Turingova stroje M je funkče tM : Z+ —► Z+ určení vztahem tM(n) = max{t : existuje x G E0 tak, ze |x| = n a čas provedenyí strojem M na vstupu x je t}. Funkče f je vyčíslitelna v polynomiálním cáse nebo nm polynomiální sloZitost, pokud existuje nejaky Turinguv stroj, kterí vypočte f a jistí polynom p tak, ze tM(n) < p(n) pro vsečhna n. V praxi vetsinou neuvazujeme s Turingovym modelem, ale pračujeme na mnohem vyssí urovni. 2 NP = nedeterminističký polynomialní čas Popisme si neformalní ideu trídy NP. Predpokladejme, ze míte za ukol prodat velkí slozena čísla opravdu hodne zamestnanym nakupčím. S pomočí otroku pračujíčíčh neomezení počet hodin muzete sestavit seznam slozenyčh čísel c1, c2, ... a abyčhom byli sčhopni prodívat tato čísla ryčhle, budete mít k dispoziči odpovídajíčí seznam faktoru y1, y2, ... tak, ze pokud nm dojít k prodeji, vse, čo musíte udelat, je dat číslo c» dohromady s faktorem a overit, ze slozene číslo c» je delitelne číslem ^i. Pak nazívame certifikátem neprvočíselnosti čísla q, protoze pak existuje pri jeho pouzití algoritmus pračujíčí v polynomiílní dobe pro overení, ze c je slozene. Neformalne muzeme tedy ríči, ze vlastnost níleZí do NP, jestlize splnení teto vlastnosti lze overit v polynomialní dobe s pomočí vhodneho čertifikatu. Podejme nyní formílní definiči: 3. NP-UPLNE A NP-TEZKE PROBLEMY 95 Bud' So nejaka koneční abeceda. Libovolnou podmnozinu L mnoziny S0 nazveme vlastností (jazykem). Řekneme pak, ze L G NP, jestlize existuje funkce f : S* x S* — {0,1} tak, ze 1. x G L príve tehdy, kdyz existuje y G S0 tak, ze f (x, y) = 1, 2. vípočtova časova níročnost f je omezena polynomem v promenne x. To lze presneji preformulovat níasledovne: Pro x, y G S* označme x y retezec začínající x, nasledovaní prázdnym symbolem a pote nasledovaní y. Jazyk L C S* bude v NP, pokud existuje Turinguv stroj M a polynom p(n) tak, ze TM(n) < p(n) a pro kazdy vstup x G S0: 1. Pokud x G L, pak existuje certifikat y G S0 tak, ze |y| < p(|x|) a M akceptuje vstupní retezec x y. 2. Pokud x G L, pak, pro kazdyí retezec y G S0*, 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, povazujeme-li P za soubor vlastností. Otazka, zda P teoretickíe computer science. NP je pravdepodobne nejdulezitejsí otízkou v 3 NP-uplne a NP-tezke problemy 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 7T1 7T2. 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ě redukovatelna na n. Takoveto n se nazyví polynomiálně áplný problém. Pripomenme, ze mame k dispozici seznam více nez 3000 NP-íplních problemu. 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í. Obríaceníe tvrzeníí k 3 neníí pravdivíe. 4. SLOŽITOST KOMBINACNICH OBVODU 97 4 Slozitost kombinační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 vnitrníími branami dle zrejmíeho poradíí indukovaníeho acyklickíym usporí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 znaď se c(X). Je-li f booleovska funkce, je pak obvodova slozitost 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ý krůznice ) Uvazme nasledující otazku: Určete, zda graf G obsahuje Hamil-tonovskou kružnici. Pro kazdou hodnostu n můžeme najít kombinacní obvod Cn, jenč ma O(n2) vstupních vrcholu (jeden pro kazdou močnou hranu), ktem díva na vístupu vísledek TRUE tehdý a jen tehdý, kdýz vstupníí graf G mía hamiltonovskou kruzznici. V souzcasníe dobze, bohuzzel, vzsechný znaímíe takovíeto kombinazcníí obvodý Cn mají exponenciální, pocet vrcholu. 98 KAPITOLA 5. VYYPOCCETNYI SLOZCITOST G, G2 Gráf G1 mí Hámiltonovskou kruZnici (a, b, d, e, g)), ále gráf G2 nemá Zádnou Hámiltonovskou kruZnici. Řekneme tedy, ze vlastnost n mí polynomiální obvodovou velikost neboli obsahuje pouze mále obvody, pokud existuje posloupnost kombinácních obvodu, (Cn : 1 < n < to) a polynom p tak, ze Cn rozhodne n na vsečh moznyčh vstupečh velikosti n a velikost č(Cn) splnuje č(C„) < p(n) (1 << to). Poznamenejme, ze platíí: • Je-li vypočet turingovsky vypočítatelní v polynomialním čase, pak ma male kruzniče. • Obračene tvrzení není pravdive: existují nerekurzivní funkče, ktere nejsou vypočítatelne zídnym tu-ringovskím strojem, ale mají male kruzniče. • Ma-li kazdí NP-tezky problem male kruzniče, ma i kazdí NP-problem male kruzniče. V dalsím budeme kazdy problem s malími kruzničemi povazovat za snádný a sifrovačí system na nem zalození nebude povazovín za bezpeční. 5. SPLNITELNOST - SATISFIABILITY 99 5 Splnitelnost - SATisfiability Klasickím prípadem rozhodovacího problemu je booleovska splnitelnost. Booleovska funkce je funkce f : {0,1}n — {0,1}. Budeme interpretovat '1' jakozto pravda a '0' jakozto nepravda. Zakladní booleovske funkce jsou negace (NOT), konjunkce (AND) and disjunkce (OŘ). Je-li x booleovskaí promňennaí, pak negace x je 1 , pokud je x nepravda, i x = 0, jinak. Literát je booleovská proměnna nebo její negace. Konjunkce posloupnosti literálů xi,... ,xn je 1, pokud vSechna x» jsou pravdivá, ! x1 A x2 A • • • A xn = , 0, jinak. Disjunkce posloupnosti literílu x1,..., xn je 1 , pokud nňekteríe xi je pravdivíe, i x1 V x2 V • • • V xn = , 0, jinak. Booleovska funkce f je v konjunctivní normalní formZ (zkracene CNF), pokud f (x1,...,xn) = Afc=1 Ck, kde kazda klauzule Ck je disjunkce literílu. Pravdivostní prirazení pro booleovskou funkci f (x1,... ,xn) je víber hodnot x = (x1,... ,xn) G {0,1}n pro její promenne. Splnene pravdivostní prirazení je x = (x1,... ,xn) G {0,1}n takove, ze f (x) = 1. Pokud takovíe pravdivostní pňriňrazení existuje, ňrekneme, ňze funkce f je splnitelnía. Booleovskía splnitelnost (SAT) je níasledující rozhodovací problíem. 100 KAPITOLA 5. VYPOCETNI SLOŽITOST SAT Vstup: booleovskí funkce f (x1,..., xn) = /\m=1 Ck v CNF. Otažka: je f (x1,... , xn) splnitelna? Uvažme prirožene žakodovíní tohoto problemu. Budeme pracovat nad abecedou S = {*, 0,1, V, A, —}, pricemž žakodujem promennou xi pomocí binarní reprežentace i. Literíl xi budeme kídovat pridíním symbolu — na žacítek. Evidentne pak mužeme žakídovat CNF formuli, f(x1,...,xn) = /\m=1 prirožením žpusobem nad abecedou S. Napr. formuli f (x1,... , x5) = (x1 V x4) A (x3 V x5 V x2) A (x3 V x5), žakíodujeme jako '1 V 100 A 1W-.10W 101'. Protože žadna klaužule nemuže obsahovat více než 2n literalu, bude rožmer vstupu CNF formule o n promenních a m klaužulích O(mnlogn). Fundamentílní veta teorie složitosti ríkí, že SAT E NP-uplmí. Duležitím podproblemem problemu SAT je tžv. k-SAT, for k > 1. k-SAT Vstup: booleovskaí funkce f v CNF s nejvyíse k literíaly v každíe klaužuli. Otížka: je f (x1,... , xn) splnitelní? Evidentne je problíem 1-SAT snadníy. Každíe splneníe pravdivostníí priraženíí pro f v tomto príípade musíí žajistit, že každyí literaíl obsaženíy v f musíí bíyt pravda. Tedy f je splnitelníe praíve tehdy, když neobsahuje žaroven literal a jeho negaci. To samožrejme snadno overíme v polynomiílní dobe a tedy 1-SAT E P. Podstatne narocnejsí je dukaž, že 2-SAT E P. Ale už 3-SAT E NP-íplny. 6. PAMETOVA SLOŽITOST (SPACE COMPLEXITY) 101 6 Paměťová složitost (Space complexity) Doposud jsme uvažovali jakožto jediny vípočetní zdroj čas. Jimím zdrojem, kterí omezuje nasi sčhopnost provadět vípočty je pamět'. Zavedeme nyní potrebně definiči, abyčhom se mohli krítčě věnovat paměťově slozitosti determinističkíeho Turingova stroje. Zastaví-li Turinguv stroj pri vstupu x G S0, pak pamet pouZití pri vstupu x je počet ruzníčh čtverču paísky, kteríe byly pouzity čtečíí-zapisovačíí hlavičíí Turingova stroje behem jeho vyípočtu. Toto čííslo označííme jako sM (x). Zastaví-li Turinguv stroj M pro každí vstup x G S0, pak pametoví sloZitost Turingova stroje M je funkče SM : N — N definovana jakožto SM(n) = max{s | existuje x G Sn tak, že sM(x) = s}. Nejduležitějsí trídou paměťově složitosti je trída jazyku, kterě mohou byt rozhodnuty v polynomialní paměti PSPACE = {L C S0 | existuje Turinguv stroj M, kterí rozhodne L, a polynom p(n) tak, že SM(n) < p(n) pro vsečhna n > 1}. Je zrejmě, že pamět' je hodnotnějsí zdroj než čas v tom smyslu, že množství paměti použitě pri vípočtu je vždy ohraničeno shora množstvím času, ktery vípočet zabere. Tvřžení 6.1 Je-li jazyk L rozhodnutelní) v case f (n), pak je L rozhodnutelný v paměti f (n). Dukaž. Počet ruznyčh čtverču písky, kterě byly použity čtěčí-zapisovačí hlavičí libovolněho Turingova stroje během jeho vípočtu nemuže prevísit počet kroku, kterě Turinguv stroj provede. I DUsledek 6.2 P C PSPACE. 102 KAPITOLA 5. VYPOCETNI SLOŽITOST Dalsí dulezitou trídou pameťove slozitosti je trída jazyku, ktere mohou bít rozhodnuty v exponenciálním case EXP = {L C S0 | existuje Turinguv stroj M, kterí rozhodne L, a polynom p(n) tak, ze TM(n) < 2p(n) pro vsechna n > 1}. Platí ale, ze pri exponenciílním mnozství casu muzeme spocítat cokoliv, co lze spocítat pomocí poly-nomialní pameti. Věta 6.3 P C PSPACE C EXP Důkaz. Stací overit PSPACE C EXP. Predpokladejme, ze jazyk L G PSPACE. Pak existuje polynom p(n) a Turinguv stroj M takovy, ze M rozhodne L a zastaví po nejvyse p(|x|) ctvercích pasky pri vstupu x G Zíkladní myslenkou dukazu je, ze protoze M zastaví, nemuze nikdy opakovat stejnou konfiguraci dvakrat (pricemz konfigurace sestava ze stavu Turingova stroje, pozice ctecí-zapisovací hlavice a obsahu pasky). V opacnem prípade by vznikla nekonecna smycka a tedy by Turinguv stroj nikdy nezastavil. Presneji, uvazujme vstup x G 1^. Pokud |E| = m a |r| = k, pak kazdí v kazdem bode vypoctu muze byt momentalní konfigurace Turingova stroje popsína nasledovne: (i) soucasnym stavem Turingova stroje, (ii) pozicí ctecí-zapisovací hlavice, (iii) obsahem paísky. Míme tedy k mozností pro (i) a, protoze vípocet pouzije nejvíse p(n) ruzních ctvercu pasky, mame nejvíse p(n) mozností pro (ii). Protoze kazdy ctverec pasky obsahuje nejakí symbol z abecedy E a obsah ctverce pasky, kterí nebyl pouzit ctecí-zapisovací hlavicí, se behem vípoctu nezmení, mame pak mp(n) 7. DOPLNKY JAZYKU 103 mozností pro (iii). Celkem tedy míme fcp(n)mp(ra) konfigurací pro Turinguv stroj M behem jeho vípoctu pri vstupu x delky n. Muze se nektera z techto konfigurací opakovat? Evidentne nikoliv, protoze kdyby se opakovala, Turinguv stroj by se dostal do smycky a nikdy by nezastavil. Tudíz t m (x) < kp(n)mp(n). Uvazme polynom q(n) splňující logk + logp(n) + p(n)logm < q(n). Odtud tM(x) < 2q(n). Pak L je rozhodnutelní v case 2q(n) a tedy L G EXP. | Je znímo, ze P — EXP. Ale zda platí, ze PSPACE — EXP, je jedním z hlavních problemnů teorie slozitosti. Kdyby víse uvedene platilo, bylo by P — PSPACE, coz se neví. 7 Doplňky jazyků Je-li L C S0 jazyk, pak komplement jazyka L je mnozina Lc — {x G S0 | x G L}. Je-li C trída slozitosti, pak trída komplementů jazýků z C se oznacuje jako co — C — {L C S0 | Lc G C}. Nejdulezitejsím príkladem takoveto trídy je co — NP, tj. soubor komplementu jazyku z NP. Podle nasí definice jazyk L C S0 lezí v co — NP tehdy a jen tehdy, kdyz existuje Turinguv stroj M a polynom p(n) tak, ze TM(n) < p(n) a pro kazdí vstup x G S0 míme: 104 KAPITOLA 5. VYPOCETNI SLOŽITOST (i) pokud x G L, pak existuje certifikít y G E0 takoví, ze |y| < p(|x|) a M akčeptuje vstupní retezeč xy, (ii) pokud x G L, pak pro kazdí retezeč y G E0 M zamítne vstupní retezeč xy. V případě jazyka ležícího v P máme Turinguv stroj M, který v polynomiálním čase rozhodne L. Znegujeme-li výstup naseho Turingova stroje, obdržíme Turinguv stroj Mi, který v polynomiýlním čase rozhodne Lc. Tedy P = co — P. Pro N P už výse uvedene neplatí. Otýzka, zda NP = co — NP je pravdepodobne druhým nejdulezitejsím problemem teorie slozitosti, po otazce, zda P = NP. 8. NÁHODNE ALGORITMY 105 8 Nahodne algoritmy Algoritmus, ktery mí pravdepodobnost chyby mene, nez 2-100 a ktery behem minuty je schopen identifikovat císlo 2400 - 593 jakozto nejvetsí prvocíslo mensí nez 2400, ma bezprostřední praktickí a estetickí dusledek. Takovími jsou například algoritmy pro testovíní prvocíselnosti od Rabina a dale od Solovaye a Strassena. Nejprve ilustrujme ideu nahodneho algoritmu na příklade: Předpokladejme, ze mame polynomialní víraz v n promenních, řekneme f (x1,... ,xn) a ze si přejeme oveřit, zda je polynom f identicky nuloví. Oveřit to analyticky je neskutecne pocítaní. Předpokladejme místo toho, ze jsme vygenerovali nahodní vektor (r1,..., rn) a vycíslili f (n,..., rn). Pokud f (n,..., rn) = 0, víme ze 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 nekolikrat a pokud vzdy obdrzíme nulu, muzeme tvrdit, ze f je identicky nula. Pravdepodobnost toho, ze jsme udelali chybu, je zanedbatelna. 106 KAPITOLA 5. VYPOCETNI SLOŽITOST Je-li n vypocetní problem a x je vstup nebo instance n, rekneme, že níhodny algoritmus pro resení n postupuje nasledovne. V jistych okamžicích pro resení instance x problemu n algoritmus provede nahodne rožhodnutí. S vyjímkou techto níhodních rožhodnutí je algoritmus ciste deterministickí. Jažyk L je níhodne rozhodnutelníy v polynomiaílníím rcase neboli leržíí ve trríídre RP, pokud existuje polynom f a polynomiíalníí algoritmus, kterí pro každí vstup x a každí možny certifikat y delky f (|y|) vypocte hodnotu v (x, y) E {0,1} tak, rže 1. x E L implikuje v (x, y) = 0 pro vsechna y. 2. x E L implikuje v (x, y) = 1 pro alespon polovici vsech možních certifikatu y. Evidentnre 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 átoku. Kryptografický protokol spedifikuje, jakám způsobem kaZdá strana zací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 institucí 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 zprava skutecne pochazí od ídajneho odesilatele. Mluvíme pak o autentičnosti zpravy. Poslední varianta je autentičnost ůzivatele: 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 autentičnost 1.1 Symetrickí autentičnost 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 zdrojoví text delsí než jeden blok zasifrovan pomočí blokově sifry v ECB modu, aktivní ítočník muže snadno preusporadat bloky. Jiním príkladem zranitelnosti aktivním ítočníkem je zdrojoví text zasifrovaní pomočí CFB modu. Vzhledem k synčhronizačním vlastnostem každí modifikačě sifrověho textu zpusobí odpovídajíčí modifikači zdrojověho textu a nasledně zkomolí nísledujíčí časti zdrojověho textu. Potě čo čhyba opustí FB registr, bude sifrovy text opět spravně desifrovín. Je-li ale modifikovana poslední čast sifrověho textu, je zčěla nemožně najít tuto modifikači. Pokud se zkomolení vyskytne v prostredku zdrojověho textu, lze čhybu detekovat pomočíí redundanče. V jiníčh míděčh (jako napr. CBC míd) je každy sifroví text složitou funkčí predčhozíčh bitu zdrojověho textu a nějakě počíteční hodnoty. Pokud modifikačě jednoho bitu sifrověho textu zpusobí zkomolení t bitu zdrojověho textu, pravděpodobnost, že že novy zdrojoví text bude akčeptovan jako smysluplní je rovna 2-tD, kde D je redundanče informače. V prípadě prirozeněho jazyka zakídovaněho pomočí 5 bitu na čharakter je redundanče na bit D ~ 0.74 a tato pravděpodobnostje rovna 2-22.2 pro t = 30. Avsak, je-li D = 0 a zasifrovaní neposkytuje zadnou autentičitu, jsou vsěčhny zpravy smysluplně a to nezavisle na sifrovačím algoritmu nebo na modu sifrovaní. To pak znamena, že ítočník muže modifikovat zpravy nebo padělet zprívy dle svěho vyběru. Omezení je pak to, že utočník neví dopredu, čo bude obsahem odpovídajíčího zdrojověho textu, ale pro mnohě aplikačě lze takovíto ítok považovat za zdroj važnyčh problěmu. Poznamenejme, že i v prípadě existenče redundanče se požaduje kontrola lidskym faktorem nebo vhodním počítačovím programem. Abyčhom zajistili integritu zprívy, je nutno pridat spečiílní redundanči, a je-li informače spojena s puvodčem zprívy, musí bít použít v tomto pročesu tajní klíč (to predpoklada spojení osoby a jejího klíče) nebo zvlastního kanalu pro zajistění integrity. Mužeme pak identifikovat dvě zakladní metody. o První metoda je analogička metodě symetričkě sifry, kde utajení velkěho množství dat je založeno na utajení a autentičitě kratkěho klíče. V tomto prípadě autentičita informače zívisí na utajení a auten-tičitě klíčče. Abyčhom dosahli tohoto učelu, informače se zkomprimuje na kvantitu pevně dělky, kterou nazyvame hesovacím kídem. Potě se hesovačí kod pripojí k informači. Funkče, kterí provede tuto operači komprese, se nazíva hesovací funkce. Zakladní myslenkou zabezpečení integrity je pridat redundanci k informači. Prítomnost redundanče dovoluje príjemči prověst rozlisení autentičkě informače 110 KAPITOLA 6. AUTENTIČNOST A DIGITÁLNI PODPISY a podvodníe informace. Abychom garantovali puvod dat, je nutno v procesu pouzít tajní klíč. Tajny klíč muze bít obsazen v procesu komprese nebo muze bít pouzit, aby ochranil hesovací kíd a/nebo informaci. V prvním pňrípadňe mluvíme o MACu (Message Authentication Code), zatímco v druhíem pňrípadňe se heňsovací kíod nazyívía MDC (Manipulation Detection Code). o Druhí metoda sestíva na zajistení autenticity (jak integrity a autenticity puvodu) informace o auten-ticitňe MDC. Typickyím pňríkladem tíeto metody je uňzivatel poňcítaňce, kteryí poňcítía MDC pro vňsechny svíe dulezite soubory. Muze si pak ulozit soubor vsech MDC na diskete, kterou si bezpečne uschova. Pokud tyto soubory zasle vzdalenemu príteli, muze 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 dostatečne. Specialní duraz musíme klast na obranu proti ítokum na vysoke urovni, jako je napríklad opakovaní autentifikovanezpravy. Oba prípady nefungují, pokud si odesílatel a príjemce navzajem neduverují. V prvním prípade sdílejí stejní tajní klíč. Pokud jedna ze stran tvrdí, ze informace byla zmenena druhou stranou, nemuze soudce rozhodnout, kdo ma pravdu, i kdyz obe strany vydají společní tajní klíč. Druhí prístup muze pouze zajistit nepňrevzetí, pokud obňe strany vňeňrí autenticitňe MDC: v praxi je to vňsak obtíňzníe realizovat, protoňze obňe strany mají podobnyí pňrístup ke kanaílu. 1.2 Asymetricka autenticita Jestliňze chceme bíyt ochríanňeni proti vniňrnímu napadnutí, potňrebujeme elektronickyí ekvivalent podpisu. V tomto prípade tretí strana bude schopna rozlisit dve strany a to na zaklade skutečnosti, ze zpusobilosti obou stran jsou ruzne. Pojem digitalního podpisu byl zaveden W. Diffiem a M. Hellmanem (blízze viz 2). Poňzadavky na elektronickyí podpis jsou, ňze podpis zíavisí na podepisovaníe informaci (protoňze není fyzicky spjat s dokumentem) a ze podepsany je jediní osoba, kterí je schopna vytvorit podpis (to znamení, ze 1. INTEGRITA A AUTENTIČNOST 111 nikdo jiní nemuže žfalsovat podpis tj. podepsaní nemuže žaprít, že informaci podepsal prave on). Digitílní podpisove schema sestíví ž nísledujících prvku: o inicialižacní faže (napr. generovaní klícce a obecne nastavení), o procesu podpisu, kdy je vytvoren podpis, o procesu verifikace, kdy príjemce (nebo soudce) overí, žda je podpis spravní. Digitaílní podpis v tomto smyslu lže vytvorrit pomocí žarrížení bežpercnyích proti falrsovaíní, konvenrcních jednosmrernyích funkcí nebo technik verrejníeho klírce. Požnamenejme díle, že bylo definovano nekolik žobecnení - napr. s ružními stupni bežpecnosti a více hríci ve hre. Príklady takovychto jsou nasledující: libovolne podpisy, kde proces podpis a verifikace žahrnuje interakci s tretí stranou, skupinove podpisy, kde podpisující a/nebo kontrolor! jsou cleny skupiny, slepe podpisy, kde podpisujíícíí podepíírse slepou nebo maskovanou žpraívu a neviditelníe nebo nepopiratelníe žpríavy, kde lže podpis verifikovat použe ve spolupráci s podpisujícím. 1.3 Měssagě-Aůthentication-Codě Prripomenrme si, rže prri integritre a autentircnosti žpríavy jde o to, abychom vyvinuli metody, kteríe prríjemci umoržní rožhodnout, žda žpríava dorsla neporursenía a autentickaí. K tomu potrrebuje prríjemce nreco, s rcím muže bít žpríva overena: Potrebuje dodatecnou informaci od odesilatele. Takoví informacní blok se nažíví kryptograficky zkůSěbní soůCět neboli Měssagě-Aůthěntication-Codě, žkrícene MAC. Protokol k vytvorení a verifikaci kryptografickeho žkusebního souctu je žaložen na použití tajneho klícce k, kterí je žnam jak odesilateli tak príjemci, a kryptografickem algoritmu A, kterí budeme v dalsím diskutovat. Odesílatel neposíla použe holou žpravu M, níbrž dodatecne príslusny MAC; ten se vypocte pomocí klícce k algoritmem A že žprívy M nísledovne: MAC = Ak (M). 112 KAPITOLA 6. AUTENTIČNOST A DIGITALNI 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 zpravu jako autentckoi a odmítne ji. Je-li ale Ak(M') = MAC', muze si bít dostatecne jistí, ze zpríva nebyla zmenena. Prirozene tato jistota zívisí ve velke míre na kvalite algoritmu A a velikosti mnoziny mozních klícu. Predstavy o MAC-mechanismu jsou níasledující: • Podvodu ze strany Mr. X bude zamezeno, protoze nezní 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. Poku probehne verifikace kladne, je príjemce rovnez presvedcen o autenticnosti zprívy, protoze odesilatel je jedinou jinou instancí, kterí zní tajní klíc. Jake algoritmy A muzeme pouzít k vípoctu MACu? Okamzití odpoved' je jednoducha: pouzijme jed-noduse sifrovací algoritmus, pricemz MAC je kryptogram, ktery odpovídí zprave M. Odhledneme-li od toho, ze takovyto slabí algoritmus není vhodne doporucit, mí tento nívrh tu nevíhodu, ze prenasena data jsou dvojnaísobne delsíí nez vlastníi žpríava. Prirozene kazdyí MAC prodlouzíí zpríavu, ale chteli bychom díelku tohoto dodatecníeho bloku drzet v nejakyích rozumníych mezíích. 1. INTEGRITA A AUTENTIČNOST 113 V praxi pouzívame k vípoctu MACu take sifrovací algoritmus, ale ne prímo, níbrz v tzv. Ciphěř-Block-Chaining modů. Predstavme si sifrovací algoritmus f (v praxi se vetsinou pouzíví algoritmus DES), kterí zobrazuje bloky zprívy slozeních z n znaku pomocí nejakeho klíce K na bloky kryptogramu, rovnez slozeních z n znaku (typicka hodnota je n — 64). Abychom mohli vypocítat MAC, rozdelíme zpravu M do bloku M1, M2, ..., Ms delky n. Pak aplikujeme f na blok M1 a obdrzíme první blok kryptogramu C1 — fK(M1). Potom pricteme C1 k M2 a polozíme C2 — fK(C1 © M2). Tento postup opakujeme az skonďme vístupem Cs — fK(Cs-1 © Ms), ktery vybereme za MAC. Takto vypoctení MAC mí nísledující prednosti: - MAC ma pevnou delku n nezívislou na delce zpravy. - MAC zívisí na vsech blocích zpravy. Protoňze vňsechny moňzníe zpraívy jsou zkomprimovíany na MACy pevníe díelky, maí mnoho zpríav tentyíňz MAC. To nepredstavuje zídní problem pro príjemce, protoze ten nemusí rekonstruovat puvodní zpravu z 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ňzníe najít pro danyí MAC odpovídající zpríavu (pokud tato vlastnost platí, nazyvame algoritmus jednosmernou (one-way) fůnkcí). Praktický nemožné znamena, ze 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ňzníe najít dvňe zpraívy, kteríe mají tentyíňz MAC (jednosmňernaí funkce splnňující tuto podmínku se nazíva bezkolizní). Je velmi obtízne podat precizní matematickou definici jednosmerne funkce. Neformílne je jednosmerna funkce funkce f : S — T, kde S a T jsou mnoziny takove, ze (1) pro vsechna x G S je f (x) snadno vypocitatelne, (2) míme-li k dispozici informaci, ze f (x) — y, neexistuje zídny primerený zpusob 114 KAPITOLA 6. AUTENTI ZNOST A DIGITAYLNYI PODPISY jak získat (vípočtem) x pro dostatecne velke mnozství prvku y z T. Pracovní slova zde jsou snadno, primerene a dostatecne velke. 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 rérézcu delky n ~ 200. Pozadujeme, ze vípočet pro nalezení x ze znalosti y je prílis dlouhotrvající nebo níkladny, kdykoliv y lezí v dosti velke podmnozine mnoziny T. Príklad. Elementarním príkladem kandidata na jednosmernou funkci je, pro dostatečne velke prvočíslo p, funkce f (x), kde f (x) je polynom nad telesem Zp. Pak je relativne snadne vypočí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ípočet pozadující milion instrukcí a 1O OOO slov pameti nemohl byt v roce 1950 povazovan za snadny, ale nyní by trval nekolik sekund na osobním počítači. Tedy funkce povazovana 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 slunečním systemu. Podobne, termodynamika nam díva omezení maximílne 1070 operací, které lze provest s vyuzitím celkove energie slunce. Nizsí íroveň nedosazitelnosti je pouzití myslenek vypočetní slozitosti. Nejdríve uvazujme nektere z vlastností, ktere bychom rídi pozadovali po jednosmerne funkci. (I) Vípočet f (x) z x musí bít primerení: vyjídríme to tím, ze f je vypočitatelna v polynomiílne omezene dobňe (ňríkaíme, ňze f G P. (II) Vípočet f-1 nesmí bít snadne; budeme tudíz pozadovat, ze není znam zadny algoritmus pro vípočet f-1 v polynomialne omezene dobe. 1. INTEGRITA A AUTENTIČNOST 115 (III) Tretí podmínka bude tzv. uprímnost funkce tj., ze existuje polynom p splňující |x| < p(|f (x)|). Poslední podmínka je technicka podmínka pro vyloucení funkcí jako f (x) = [log 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. MO = 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, že f je jednosmerna funkce. Predstavme si, že Mr. X žna jak M0 tak i C a chtel by nají M. V reci sifrovacího algoritmu F to lže vyjídrit nasledovne: Mr. X žní sobe odpovídající dvojici žprava-kryptogram (M0, C) a chtel by vypocíst klíc. Je-li algoritmus F kryptologicky bežpecní, je režistentní proti tomuto known-plaintext utoku a proto je f jednosmerna funkce. Položme si otažku, žda lže matematicky dokízat, že tato funkce f je jednosmerní. Odpoved' žní: Ne! Matematici nemohli jerstre o ržíadníe funkci dokaížat, rže je jednosmrernía. To žnamenía, rže nežníame ržíadnou funkci, jejírž funkrcní hodnoty lže sporcítat v polynomiíalnre omeženíe dobre, ale ktería prri vyíporctu funkce inveržní potrrebuje exponenciaílní dobu. Nevíme tedy, žda teoreticky jednosmrerníe funkce existují. Pro praktickíe uírcely mají ale víyrse popsaníe funkce dostatercnre dobríe vlastnosti. Zanědbatělně fůnkcě Děfinicě. Funkce r : N — N je zanedbatelní, jestliže pro každí (požitivní) polynom p : N — N, existuje cele císlo k0 takove, že r(k) < 1/p(k) pro k > k0. Takže žanedbatelní funkce bude casem mensí, než je inverže jakehokoliv (požitivního) polynomu. Budeme používat ožnacení neg(-), ktere ožnacuje libovolnou žanedbatelnou funkci. Po žbytek tohoto textu budeme o vrsech polynomech prredpoklíadat, rže jsou požitivníí. To žnamenaí, rže splnrujíí p(k) > 1 pro vrsechna prriroženía rcíísla k > 1. Uvredomme si, rže funkce r : N — N neníí žanedbatelnaí, príavre kdyrž existuje požitivníí polynom p(n) a nekonercnre mnoho hodnot k E N tak, rže r(k) > 1/p(k). Nísledující vysledek nam ríka, že nase definice žanedbatelnosti perfektne žapada do myslenka, že použe polynomiaílníí rcasovíe vyíporcty jsou proveditelníe. Řrííkía tedy, rže pokud algoritmus mía žanedbatelnou nadreji na uspech, pak jeho opakovaní polynomiílne mnohokrat nemuže žmenit tuto skutecnost. Tvrzění 1.1 Pokud je pravdepodobnost, Ze algoritmus E bude íspesny podarí (v nekterych dane vípocetní íloze) na vstupech velikosti k, zanedbatelna (v k), pak pravdepodobnost, Ze uspeje alespoz jednou pri opako-vaníí polynomiaílnre mnohokríat, je takíe zanedbatelnía. 1. INTEGRITA A AUTENTIČNOST 117 Dukaž. Predpoklídejme, ze existuje pozitivní polynom q(n) tak, ze pravdepodobnost alespoň jednoho uspečhu, pokud je algoritmus E opakovan q(k)-krat, není zanedbatelní. Stačí pak ukazat, ze pravdepodobnost uspečhu algoritmu E nemohla bít zanedbatelna. Ale to znamení, ze existuje pozitivní polynom p(n) a nekonečne mnoho hodnot k G N tak, ze q(k)r(k) > 1/p(k). To je ale ekvivalentní s tím, ze pro nekonečne mnoho hodnot k G N platí r(k) > 1/(q(k)p(k)). Tedy r není zanedbatelnía, spor. Pak lze preformulovat definiči jednosmerne funkče f : {0,1}* — {0,1}* nasledovne: (I) Vípočet f (x) z x musí bít primerení: vyjídríme to tím, ze f je vypočitatelna v polynomiílne omezene dobňe. (II) Pro každý pravděpodobnostní algoritmus A pracující v polynomiálním čase, je pravděpodobnost toho, že A úspěSně provede inverzi f (x), pro náhodně vybraně x G {0,1}k, zanedbatelna. (II) lze pak pňrepsat níasledovnňe (II') Pro každá pozitivní polynom a každá pravděpodobnostní algoritmus A pracující v polynomialním čase, platí P(A(f (x), 1k) G f-1(f (x)) | x G{0,1}k) < 1 q(k) pro dostataňčnňe velkíe k. Predpoklad o diskretním logaritmu Nečht' p je prvočí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 Funkči dexp(p, g, x) lze snadno spočítat, protoze umočňovaní mod p muze bít provedeno v polynomialním čase. Ale jak obtízzne je ji invertovat? Definujeme 'inverzní' funkči dexp jakozto dlog(p, g, y) = x, kde y = gxmod p. (Vsimnete si, ze inverzní funkče dexp by opravdu mela dít na vístupu trojiči (p, g, x), je vsak zjevne snadne najít p a g dane trojičí (p, g, y), zasadní 'problem' v invertovaní dexp spočíva v problemu nalezení x.) Vyípoňčet funkče dlog je znaímíy jako problíem diskríetníího logáritmus. Vňeňrí se, ňze je nesmírnňe tňeňzkíy. V souňčasníe dobňe nejefektivnňejňsí algoritmus pro tento problíem je zaloňzen na algoritmu Number Field Sieve pro faktorizači, a za prijatelnyčh predpokladu se očekíví doba O(exp(c(ln p)1/3(ln ln p)2/3)). I kdyz si myslím, ze problem diskretního logaritmu je obtízní, nevíme, zda je to pravda. Pokud čhčeme zalozit kryptografičke protokoly na 'obtížnosti' problemu diskretního logaritmu, potrebujeme formulovat pňresnňe pňredpoklad nepoddajnosti, popisujíčí pňresnňe, jak vňeňríme (nebo doufíame), ňze je problíem diskríetního logaritmus obtíňznyí. To ňríkía, ňze ňzíadníe odpovídajíčí protivník (pravdňepodobnostní algoritmus pračujíčí v polynomiíalním ňčase) mía zanedbatelnou ňsanči vyňreňsení problíemu diskríetního logaritmu pro naíhodnyí vyíbňer. 2 Autentičnost uživatele Zakladní uloha bezpečnostní tečhniky je spolehliva identifikače osob tj. autentifikače. Dríve to byl vílučne pročes mezi dvňema lidmi, kteryí je dnes rozňsíňren na pročes mezi ňčlovňekem a poňčítaňčem. Pňritom vznikají prirozene problemy; ale, jak uvidíme, lze i s počítačem provídet velmi dobrou autentičitu uzivatele. Nejprve si pripomenme, jak je tento problem resen mezi lidmi. Zasadne lze lidi poznívat podle nasledujíčíčh znaku: - Osobu lze identifikovat podle chárákteristickych vlástností. 2. AUTENTIČNOST UŽIVATELE 119 - Osobu lze identifikovat podle vlastnictví. - Osobu lze identifikovat podle znalosti. Prvníí mechanismus je v bňeňzníem ňzivotňe pouňzíívían tak ňcasto, ňze si ho ani nejsme vňedomi: poznaívíame nase zníme podle jejich obliceje, hlasu, chuze atd. V jistích situacích se pouzívají za ucelem obzvlíst' spo-lehlive identifikace otisky prstu. Nasledující metody se pouzívají jen ve speciílních situacích. V druhem kole kupínove privatizace je nutno predlozit obcanskí prukaz, kde je uvedeno ceske obcanství; pri prechodu hranic se musíme prokízat pasem; platíme-li kreditní kartou, lze overit identitu jejím vlastnictvím atd. Identifikace na zíklade znalosti je provadena velmi zrídka - ackoliv tento mechanismus je znam jiz z nejstarsích dob (vojaci musí znat soucasne heslo, aby se mohli identifikovat). Pňri procesu autenticity mezi ňclovňekem a poňcítaňcem je situace zcela jinía. Autenticita na zíakladňe znalosti je mechanismus, kteríy lze nejjednoduňseji realizovat; autenticita na zíakladňe vlastnictví je rovnňeňz moňznaí. Naproti tomu je autenticita podle charakterostickyích vlastností velmi komplexní a pouňzívía se pouze pňri aplikacích, kteríe vyňzadují extríemnňe vysokou bezpeňcnost. Proto se budeme vyíhradnňe zabyívat s metodami zaloňzenyími na znalosti resp. vlastnictví. Pňri pouňzití tňechto metod mía uňzivatel nňejakíe tajemství a poňcítaňc se chce pňresvňedňcit, ňze osoba mía skuteňcnňe jí odpovídající tajemství. Hesla Klasicka metoda, se kterou se osoba prokíze stroji, je zalozena na heslech. Heslo je libovolní posloupnost znaku (písmena, císlice, specialní znaky), ktera je vílucnym tajemstvím osoby a pocítace. To znamena, ze v ideíalníím pňríípadňe znajíí jen uňzivatel a poňcíítaňc pňríísluňsníe heslo. Zakladní myslenka je jednoducha: pocítac ulozil referenční heslo P0, ktere je znamo uzivateli. Kdyz chce uňzivatel prokíazat 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, zda jsou P a P0 totoňzníe. Uňzivatel je pňripuňstňen, jestliňze P — P0. Je mnoho problemni s hesly, obzvlaste takove, ktere souvisí se spatním zachízením s hesly. My se budeme venovat jen tem problemum, ktere lze resit pomocí kryptologickích prostredku. To jsou problemy, ktere se tyíkají uklaídíaní hesel. 120 KAPITOLA 6. AUTENTI ZNOST A DIGITAYLNYI PODPISY V prípade, ze ma Mr. X čtecí prava na soubor obsahující hesla (nebo si ho opatrí), muze číst vsechna hesla a tím se stat libovolním uzivatelem. Víse popsana procedura je pouze tehdy bezpeční, jestlize je soubor obsahující hesla ulozen jako nečitelní - a to je pozadavek, ktery kazdy systemoví programítor odmítne jako nerealizovatelní. Prirozene ním napadne zasifrovat hesla. Kdyz to provedeme naivne, navrhneme nasledující protokol: poňcítaňc uloňzí zaňsifrovanaí hesla P* = e(P0, K),; pňri ovňeňrení autenticity uňzivatele se P* rozňsifruje a srovnía se s heslem zadaníym uňzivatelem. Tato procedura ma jasnou vyhodu. Dokonce i kdyz Mr. X muze číst soubor obsahující hesla, muze je číst pouze zasifrovaní. Protoze ale není schopen je desifrovat, nemuze simulovat jednotliveho uzivatele vlozením spríavníeho hesla. Je tento argument spravní? Prirozene jsme podstatne redukovali mnozinu tajních dat; namísto neo-hraniňceníeho poňctu hesel, ktería majíí byít tajnňe uloňzena, musííme v ňsifrovacíím modelu jen uloňzit tajnňe klííňc K . To je nepochybnňe velkía víyhoda, ale neníí to ňzaídníe principiíalníí ňreňseníí problíemu: Pokud si Mr. X opatňríí klíč K, muze desifrovat vsechna zasifrovana hesla a ma tak stejne jako predtím moznost stat se libovolnym uňzivatelem. Po takoveto analíze je pro tvurce prístupoveho systemu zalozeneho na heslech tezke vyjídrit sve príní: chtel by mít k dispozici funkci, ktera zasifruje hesla bez toho, ze by pouzila tajní klíč - to není nic jineho, neňz naňse zníamía jednosmňernía funkce. Nyní pouzijme takovouto jednosmernou funkci f. V pameti počítače ulozme hodnotu P# = f (P0). Behem procedury overení autenticity se aplikuje f na posloupnost znaku P, kterou vlozí uzivatel. Pak počítač proverí, zda platí P# = f (P). Pňrednost tíeto metody je zňrejmía: soubor obsahující hesla je nedeňsifrovatelníy a není ňzaídníe tajmeství. Je pozoruhodníe, ňze jednosmňerníe funkce byly vyvinuty proto, aby uklíadaly hesla v neňcitelníe formňe; tato metoda byla v Sedesýtýčh letech navrzena a realizovína Rogerem Needhamem z University Cambridge. Prirozene nechraní takovato procedura proti spatne zvolením heslum. Mr. X se muze totiz pokusit o chosen password-utok: Mí-li seznam nejčasteji pouzívaních hesel (dívčí jmena, telefonní čísla, data narození,...), muze aplikovat f na tato popularní hesla a vísledky srovnat s obsahem souboru obsahující pozmenena hesla. Empiricke vísledky ukazují, ze Mr. X muze tímto zpusobem získat podstatne procento vsech hesel. 2. AUTENTIČNOST UŽIVATELE 121 Autenticita pomocí čipových karet Zňíadnyí systíem zaloňzenyí na heslech nesplnňuje extríemnňe vysokíe bezpeňcnostní poňzadavky. To spoňcívaí zcela jednoduse na tom, ze lide nemají schopnost si pamatovat hesla; aby si clovek zapamatoval heslo (bez toho, ze by si je bokem zapsal), musí se jednat o krítke a přehledne slovo. Mimo to je ochrana pomocí hesel staticka metoda pro urcení autenticity. Přiroozene muze pocítac nutit uzivatele k pravidelne obmene hesel, např. kazdí mesíc. To je ale jen malí pokrok: Stejne heslo se vzdy pouzije vícekrat. Proc je to problem? Mr. X jednou odposlechne přenos hesla a od te chvíle se muze vydavat za uzivatele. Abychom vyňreňsili tento problíem, musí se data, kteraí jsou vymňenňovíana mezi poňcítaňcem a uňzivatelem neustíle menit - pokazde nova otazka a nova odpoved'. Je jasne, ze uzivatelova odpoved' se musí formulovat tak, ze nikdo jiny nemuze tuto odpoved' poskytnout. To znamena, ze reakce uzivatele na otazku musí zíviset na nejakíem tajemstvíí, jinak by totiz na ni mohl odpovedet i Mr. X. Odpovídající protokol podle metody Challenge-and-Response probíha nasledovne. Jak pocítac tak uňzivatel mají k dispozici jednosmňernou funkci f a spoleňcníy tajnyí klíňc K. Poňcítaňc obdrňzí od uňzivatele data k identifikaci; v nasem případe třeba jmeno uzivatele A. Nato si pocítac opatří pro dane jmeno příslusní klíc K. (Klíc K muze bít ulozen v seznamu, muze byt odvozen systemovím globalním klícem nebo dan k dispozici pomocí podobníe procedury.) Pocítac se musí přesvedcit o tom, ze uzivatel, kterí se chce identifikovat, je skutecne uzivatel A a ne zakeřny Mr. X. Pokud muze uzivatel dokazat, ze ma spravní klíc K, je automaticky uznan za autentickeho. Tj. povaňzujeme za dokíazaníe, ňze se skuteňcnňe jednía o uňzivatele A. Cílem poňcítaňce v níasledující popsaníe proceduře autenticity je neptímo se přesvedcit, ze uzivatel je ve vlastnictví klícce K. V popisu protokolu oznacme klíc, kterí je ve vlastnictví uzivatele (to by mohl bít i Mr. X) jako K'. Za tímto ícelem klade pocítac uzivateli otazku tím, ze mu zasle níhodne zvolene císlo RAND. Pak uzivatel vypocte parametr autenticity AP' = fK/ (RAND) a zasle jej pocítaci. Soucasne pocítac vypocte hodnotu AP = fK(RAND) a porovna zda AP = AP'. Pokud ne, pak neco nesouhlasí, v opacnem případe mía poňcítaňc s vysokou pravdňepodobností stejníy klíňc jako uňzivatel. Tedy uňzivatel bude akceptovían. Tato procedura mía dvňe vyíhody a dvňe nevyíhody. Protoňze je ňcíslo RAND naíhodnňe voleno, mňení se pňrípad od pňrípadu a Mr. X nemía ňzaídnou ňsanci pňredpovňedňet naísledující RAND. Takíe AP mía charakter naíhodníeho 122 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY císla, takze Mr. X nikdy nemuze na otazku dít sprívnou odpoved'. Prave tak dulezití je skutecnost, ze pomocíí protokolu se prokíaňze, ňze oba klííňce jsou identickíe, ale klííňce samotníe se uvnitňr protokolu nikdy neobjevíí. Nevíyhody Challenge-and-Iesponse protokolu jsou sice malíe, ale nesmňejíí bíyt jak prakticky tak teoreticky zanedbany. Uvedomme si, ze pod'tac vlastní prístup k tajním klícum uzivatelu. To pocítaci umoznuje, aby se vydaval vzhledem k jinym instancím (nebo vuci sam sobe) za uzivatele. Jinak receno: Predpoklad pro pouzití Challenge-and-Response protokolu je, ze uzivatele duverují integrite pocítace provídejícího autenticitu. Jina nevíhoda spocíví v tom, ze odesilatel A musí provest algoritmus f. Provedení kryptografickeho algoritmu vňsak pňresahuje znalosti a moňznosti kaňzdíeho lidskíeho stvoňrení; tyto vňeci bychom mňeli pňrenechat elektronickemu sluhovi. Takovímto sluhou muze bít napr. tzv. cipoví karta. Problem je vsak v tom, aby ňcipovía karta rozpoznala, ňze ji chce pouňzít opríavnňenyí uňzivatel A a ne Mr. X. Musí tedy od uňzivatele vyňzadovat, aby vuci ní prokazal totoznost. 2.1 Zero-Knowledge protokol Zero-Knowledge protokol je procedura, ktería jedníe stranňe dovolí pňresvňedňcit druhou stranu, ňze mía urňcitíe tajemství, aniňz by prozradila o tomto tajemství nejmenňsí informaci. Zero-knowldege protokol je dvoustranny protokol; jedna strana se nazývý dokazovatel, druha proverovatel. Dokazovatel znaí nňejakou skuteňcnost a pňreje si pňresvňedňcit provňeňrovatele o tíeto skuteňcnosti. Provňeňrovatel chce protokol, kteryí mu dovolí se pňrsvňedňcit o platnosti tíeto skuteňcnosti príavňe tehdy, kdyňz je tato skuteňcnost pravdivía. Pňresnňeji, dokazovatel (jestliňze jednía podle protokolu) bude schopen pňresvňedňcit provňeňrovatele o platnosti skuteňcnosti, pokud je tato skuteňcnost pravdivía, ale dokazovatel (dokonce i kdyňz se pokusí podvaídňet) nebude mít ňzaídnou podstatnou ňsanci v pňresvňedňcení provňeňrovatele o platnosti skuteňcnosti, pokud tato neplatí. Pritom si dokazovatel nepreje podat zadnou informaci o podstate skutecnosti (napr. duvody proc skutecnost platí). Uved'me tňri jednoduchíe pňríklady. 2. AUTENTIČNOST UŽIVATELE 123 Historická přiklad: Tartagliovo tajemstva Resení rovnič byl v historii matematiky nanejvís duležity problěm. Jednodučhě 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 nalezení jejího resení trvalo podstatně děle. Benatskí matematik Niččolo Tartaglia (1499-1557) objevil podle svyčh ídaju v roče 1535 metodu jejího resení. Verejně oznamil svuj objev, ale vzoreč pečlivě tajil. Tartaglia snadno ukazal, že je sčhopen kubičkou rovniči resit a tím každěho bez obtíží presvědčil, že jeho resení je sprívně. Ačkoliv se Tartagliovi konkurenti mimorídně snažili, nebyli sčhopni odhalit jeho tajemství. Až Geronimo Cardano (1501-1576) presbědčil Tartagliu, aby mu vzoreč ukízal. Slíbil, že ho udrží v absolutní tajnosti. Stalo se. čo se stít muselo: Ve svě knize Ars Magma (1545) zverejnil Cardano Tartagliuv vzoreč; čestně vsak popsal, že tato formule počhazí od Tartaglii. Presto zustava ironií osudu, že se dnes vzoreč pro resení kubičkě rovničě nazíva Cardanova formule. Pro nas je duležitě, že Tartaglia měl tajemství (metodu resení kubičkíčh rovnič), kterě byl sčhopen utajit a o jehoz existenči mohl presvedčit ostatníí. Odmocninová príklad Uvažme hru probíhajíčí nasledovně: Mama hríče A a hríče B. Hríč A tvrdí, že zna číslo s, kterě hrač B nezní, a s pritom splňuje, že s2 = 34 mod 55. Hríč A čhče hrače B presvědčit, že toto číslo opravdu zna. Proto nahodně zvolí číslo r, umoční je na druhou a spočíta zbytek po dělení 55, rekněme napr. 26 a ukaže jej hraíňči B. Nyní pričhazí na radu hrač B. Hodí si minčí; pokud padne hlava, čhče znít od prvního hrače r • s mod 55, jinak pouze r. Pňredpoklaídejme, ňze padla hlava. Pak ňreknu, ňze r • s mod 55 = 53, a to lze jednoduňse provňeňrit, nebot' skuteňčnňe 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 Cí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 kterem by vedel, ze jeho zbytek po delení 55 je Ctverec, napr 22 = 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. Kdyz ale hríC A musí ríci Císlo r, okamzite se prijde ne jeho podvod. Celkem tedy muzeme ríci, ze hraC A ma v kazdem kole 50%-ní sanci úspesneho podvodu. Aby se tedy hríC B presvedCil, ze hraC A nelze, musela by se hra hrat 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 znít r nebo r • s mod 55). • Pravdepodobnost uspesneho podvodu zavisí na poCtu odehrítích kol. V kazdem kole se pravdepodobnost zmensí na poloviCku. 2. AUTENTIČNOST UŽIVATELE 125 Príklad tríbarěvněho obarvění grafů Uvažme nasledující hru dvou hracu A a B. Hrac A chce presvedcit hrace B, že jisty graf je obarvitelní tremi barvami, aniž by mu prožradil konkretní obarvení. Pritom hríc A to muže provest v posloupnosti |E|2 stavu žadaních nasledovne: • Hrac A nahodne prebarví tyto tri barvy (napr. vsechny cervene užly na modro, vsechny žlute užly na rcerveno a vrsechny modríe užly na ržluto). • Hrac A žasifruje barvu každeho užlu pomocí použití sifrovacího schematu s nižnou pravdepodobností pro karždyí vrchol. Potom ukíarže hríarci B vrsechna tato žarsifrovaíní spolu s prredpisem prrirražujícím žarsifrovaíní s odpovídajícím vrcholem. • Hríarc B vybere hranu grafu. • Hrac A provede desifrovíní barev dvou užlu teto hrany odkrytím odpovídajících sifrovacích klícu. • Hríarc B potvrdíí, rže dersifrovíaníí bylo provedeno spríavnre a rže dva koncovíe užly hrany jsou obarveny dvema ružními, ale legalními hranami. Je-li graf skutecne 3-barevny (a hrac A žna obarvení), pak hríc B nikdy nežjistí žadnou spatne obarvenou hranu. V prípade, že graf není 3-barevní, pak existuje sance alespoň |E|-1 v každem stavu, že hríc A se hraíce B pokousíí podvíest. Sance, že by hríac A mohl hraíce B podvíest v | E| 2 krocíích je exponenciíalne malía. Požnamenejme, že historie nasíí komunikace - v príípade, že graf je 3-barevnyí - sestíavía se žreteženíí žpríav odeslanyích behem každíeho stavu. Je možníe dokíažat, (ža predpokladu, že je možníe perfektníí žasifrovíaníí), že pravdepodobnostní roždelení definovane nad temito prubehy nasí množinou možnych interakcí je nerožežna-telne v polynomialním case od roždelení, ktere mužete vytvorit nad temito prubehy samotnými, bež ícasti hraíňce A. To žnamenía, ňže hríaňc B nežískaí jinou vňedomost ž protokolu, neňž ňže graf je skuteňcnňe 3-barevnyí. Nyní se vňenujme skuteňcníemu protokolu. 126 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Fiat-Shamiřův přotokol V roce 1986 predlozili izraelstí matematici Adi Shamiř a Amos Fiat protokol, kterí otevrel nove rozmery v urcovaní autenticity uzivatele. Presneji, jedna se o urcení autenticity typu pocítac - pocítac, pricemz jedním z pocítacu je cipoví karta uzivatele. Fiat-Shamiruv protokol je zalozen na vysledcích Shafi Goldwassěřa a Silvia Micaliho z Massachusettskeho technologickeho institutu a rovnez Charles Rackoffa z Univerzity Toronto. Verze, kterou nyní popíseme, je zobecnením odmocninoveho príkladu. Bezpecnost protokolu spocíví na tom, ze je mimoradne obtízne najít druhou odmocninu nejakeho císla v modulo n. Presneji, bud' díno prirozene císlo n, ktere není prvocíslo. Jestliže nežname rozklad n na soucin prvocisel, je prakticky nemožné najít císlo s tak, že s2 mod n = v. Doporuceje se volit n tak velike, aby bylo radove asi 10200; to znamení, ze normílním písmen je n dlouhe asi 1 m. Pred vlastním procesem urcení autenticity uzivatele pomocí Fiat-Shamiřova 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 techto císel lze pak snadno získat druhou odmocninu mod n. Centrala spocíta pro kazdeho uzivatele císlo s (ktere je tajemství uzivatele) a císlo v tak, ze platí v = s2 mod n. Císlo v slouzí k verejne identifikaci uzivatele. Centrala by mohla zvolit pro v identifikacní ídaje uzivatele (v binarní podobe) a odtud vypocítat s. Císlo n je verejní systemoví konstanta. Tímto jsou uz vsechny ulohy centraly popsany. Zejmena uz centrala nehraje pri aktualních procesech urcení autenticity zadnou í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 • Pocítac pouzíva pouze verejne dostupne informace, zatímco uzivatel podstatnym zpusobem pouzíva tajemství znalosti s. • Pocítac se za jistou dobu presvedcí, ze uzivatel zní opravdu tajemství s. Pravdepodobnost, ze by neprítel, ktery nezna tajemství s pokazde predpovedel, kterí bit 6 bude zvolen, je pri t-nasobnem opakovíní protokolu jen 1/2*. V prípade, ze t — 20, je tato pravdepodobnost mene nez 1 ku milionu. • I po provedení urcení autenticity uzivatele zustane tajemství s absolutne utajeno. • Bezpecnost protokolu je v rozhodne míre zívislí na tom, ze vípocet odmocnin mod n je tak obtízzne, ňze ani síam Mr. X není schopen vypoňcítat druhou odmocninu z v - a to ani tehdy ne, kdyňz odposlechne tisíce transakcí mezi uňzivatelem a poňcítaňcem. 128 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY Popis Fiat-Shamirova protokolu Uzivatel Počítač Uzivatel nahodne zvolí císlo r, ktere je nesoudelne s n a vypocte x = r2 mod n. | Pocítac nahodne vybere bit b. Uzivatel v prípade, ze b =1 polozí y := r • s mod n; v prípade, ze b = 0 polozí y := r mod n. Poňcítaňc provňeňrí, ňze y je ne-soudňelníe s n;v pňrípadňe, ňze b = 1 provňeňrí, zda y2 mod n = x • v mod n; v prípade, ze b = 0 provňeňrí, zda y2 mod n = x. 3. CIPOVE KARTY 129 3 Cipově karty Co je to cipoví karta? Cipová karta je plastikova karta o velikosti obvykle sekove nebo kreditní karty, do kteríe je zabudovían ěcip, kteríy je schopen uklíadat data a provaídet víypocty tj. cipovaí karta je skutecnyí minipocíítac. Dnesníí cipovíe karty nemajíí zaídníe baterie, takze proud musíí bíyt privaíden behem provozu z venku. To je jedna z uloh zlatych kontaktu, podle kterích lze odlisit cipovou kartu od jejích zaostalích príbuzních. Jina jejich dulezití funkce je, ze zajist'ují transport dat od a do karty. Cipova karta vznikla v roce 1974, kdy francouzskí novinar Roland Moreno nahlísil k patentovíní sýstem pro ukladaní dat na nezavislím prenosným predmetu. Od teto doby byly vyrobeny stovky milionu cipovych karet a to hlavne ve Francii, kde se stala vzorem cipova karta CP 8 firmy Bull. Take v Nemecku se cipove karty masove pouzíívajíí (telefonníí karty). Proc se tak zajímáme v krýptologii o cipove karty? Protoze s cipovou kartou mame poprve k dispozici míedium, kteríe zajist'uje bezpecnost na zíaklade kryptologie a to pro kazdíeho a ne pouze pro experty. To spocíívía v tom, ze cipovía karta mía dve vlastnosti, kteríe doposud byly od sebe oddeleny: • Cipove karty jsou idealnípro krýptologii: mohou provídet kryptologicke algoritmy a ukladat bezpecním zpusobem tajne klíce. • Cipove karty jsou idealní pro lidi dají se velmi jednoduse pouzívat. Uvidíme, ze jedina uloha uzivatele je, aby si zapamatoval svoje tajne císlo, aby se mohl vuci cipove karte identifikovat. Shrneme-li si predchozíí argumenty, míame ze cipovíe karty se neobsluhujíí obtíízneji nez obvyklíe kreditníí karty; poskytujíí vsak bezpecnostníí sluzby na nejvyssíí uírovni, totiz takovíe, kteríe jsou zalozeny na kryptolo-gickyích mechanismech. 3.1 Cipove karty na kontrolu vstůpů Zaíkladníí idea je vlozit cipovou kartu mezi uzivatele a pocíítac, aby se proces urceníí autenticity uzivatele stal bezpecnejsíí. Tento proces je províaden níasledovne: 130 KAPITOLA 6. AUTENTIČNOST A DIGITALNI PODPISY • Uživatel se identifikuje vuci sve cipove karte pomocí tajneho císla, ktere se obvykle nažíva PIN (osobní identifikacní císlo). • Karta se identifikuje vuci pocítaci pomocí dynamickeho protokolu pro urcení autenticity. V pňrípadňe, ňže Mr. X si chce žajistit neopríavnňenyí pňrístup k systíemu, musí nejen žjistit u praívoplatníeho uňživatele tajníe ňcíslo, nyíbrňž i žískat ňcipovou kartu. Uvaňžme nyní oba kroky k urňcení autenticity samostatnňe. • Když uživatel žadí svuj PIN pres klavesnici terminalu, prenese se tajne císlo prímo k cipove karte a porovnaí se s uvnitňr uloňženou referenňcníí hodnotou. Pokud obňe tyto hodnoty nesouhlasíí, nedovolíí karta ňžíadnou jinou sluňžbu. Protoňže se porovníavía použe tajníe ňcííslo uňživatele uvnitňr jeho karty, neníí tňreba žadneho centralního PIN-souboru. Mužeme si snadno predstavit systemy, u kterích muže uživatel menit svuj PIN, pokud chce, a u kterích muže 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. Pocítac vyžve kartu tak, že jí žadí nahodne císlo RAND. Karta aplikuje algoritmus f ža klícce K na nahodne císlo RAND a žasle vísledek AP jako odpoved' pocítaci. Tento pak v mežidobí rovnež spocítal AP a muže se tak presvedcit, žda oba vísledky splívají. Prednosti teto procedury leží na dlani: Císla RAND se mení prípad od prípadu; ž tohoto duvodu nemuže Mr. X predpovedet, ktere bude prístí císlo RAND. Pritom tajna data (jako napr. klícce) žustanou utajene. Dnesní cipove karty nají standardižovane rožmery 53, 98 x 85,595 x 0, 76 mm dle normy ISO 7810. Cipove karty nesou ve svem tele vlepení nebo žalaminovaní plochí mikroelektronickí paměťový modůl, jehož poloha, vížnam a pocet kontaktu je normovan. Vseobecne i u nís rožsírenou takovou kartou je telefonní karta SPT Telecom, s.p. pro placení ve verejních telefonních automatech. Modul totiž nesmí bít vetsí než 20 mm2, jinak by se totiňž ňcip pro ohnutí karty mohl žlomit. 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íňž tajnyí klíňc. 3. CIPOVE KARTY 131 Samozřejmě bychom si přáli implementaci Zero-Knowledge protokolu nebo asymetrických algoritmů, coz ale doposud není zcela mozne. Karty osazene pameťovým cipem jsou bud' kontaktní nebo bezkontaktní. Velikost a typ jejich pameti predurcují cipove kary pro urcite typy aplikací. Z hlediska použití lze rozlisit tyto zakladní 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í kýd, ktery slouzí k otevrení karty v procesu jejího vydavaní,PIN na karte, ktery je vydavatelem karty pridelen adresne uzivateli karty, ktery slouzí pro overení konzistence karty a jejího predkladatele 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í príce na pod'tad. Toto garantuje, ze dokonce protivník, ktery odposlechne Zero-Knowledge dukaz, se nemuze naucit tolik, aby získal neaůtořizovaný prístup k pod'tad. To je nova vlastnost, ktere nemuze bít dosazeno tradicním heslovým mechanismem. 3.2 Nakupy s čipovou kartou 132 KAPITOLA 6. AUTENTI ZNOST A DIGITAYLNYI PODPISY Idea elektronických nakupu (electronic cash) je nasledující: Zíkazník A jde do obchodního domu, vybere si zboňzí a zaplatí pomocí ňcipovíe karty. Situace, kterí vznikne, je problem určení autenticity mezi tremi ruzními skupinami: zakazník A, obchodník O a banka B (za pňredpokladu identity banky obchodníka a zíakazníka). Musíme rozlissovat mezi dvema ruzními sluzbami - určení autenticity komunikujících partneru a určení autenticity zpríavy, coňz je nyní nňeco jako elektronickíy ňsek. Urňcení autenticity zaíkazníka A vzhledem k terminíalu obchodníka O se provede pomocí obvyklíeho protokolu pro urňcení autenticity uňzivatele. Obvykle se poňzaduje oboustranníe urňcení autenticity; takíe terminíal obchodníka se musí vykízat 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'. Jina 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číví v tom, ňze kaňzdyí, kdo dovede ovňeňrit MAC, je schopen ho takíe zfalňsovat (zmňeníí jednoduňse dokument a urňcíí s pomocíí tajníeho klííňce odpovíídajíícíí novyí MAC). Zde se nabíízíí jako nejjednoduňsňsíí ňreňseníí asymetrickía podpisovacíí schíemata. Kdyz je z praktickích duvodu nutne pouzít symetricke algoritmy, lze postupovat nísledovne: Zíkazní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 zíakazník a karta akceptovíani, lze uskuteňcnit níakup. Za tímto uíňcelem musí potvrdit uíňcetní data D (obnos, druh zboňzí, datum, jmíeno obchodního domu) a predat je takovím zpusobem obchodníkovi O, ze - obchodník mía jistotu, ňze obdrňzí peníze od banky, a - na obchodmích datech obchodník O nemuze provest dodatečne upravy (podvodní obchodník by mohl po dodaní zbozí zvísit dohodnnutou častku a tuto zvísenou častku pozadovat od banky). 3. CIPOVE KARTY 133 Aby bylo možno zabrínit tomuto podvodu, ma čipova karta uložení tajní klíč K*. To je klíč, kterí byl dohodnut mezi zíkazníkem A a jeho bankou B - a tento klíč je zčěla neznam každěmu potenčialmímu podvodníkovi. Cipova karta neposílí pouze učetní data D na terminal občhodníka. níbrž takě s pomočí klíče K * podepsana data. Takto konstruovaní MAC se nyzyva certifikát a označuje se CER. Takovyto CER zaručuje, že občhodník O nemuže zfalsovat získaní sek. Pokud se čhče presvědčit o spolehlivosti seku, muže pověrit urňčeníím pravosti banku. Zpusob čertifikovíní není prirozeně idealní a to ze dvou duvodu. Nejdrív musí jak zakazník A, tak občhodník O duvěrovat banče B. Díle nemuže občhodník vyměnit sek okamžitě. Dohromady vsak nabízí tento systíem podstatnňe vňetňsí bezpeňčnost pro vňsečhny zuíňčastnňeníe neňz jiníe systíemy zaloňzeníe na magnetičkíyčh ňči jiníyčh kartíačh. 1B4 KAPITOLA 6. AUTENTICNOST A DIGIT ALM PODPISY Kapitola 7 Asymetričke sifrovačí systemy neboli systemy s verejným klíčem Doposud jsme pračovali se sifrovačími systemy nasledujíčíčh vlastností: FI 1. Kdo muze zasifrovat zpravu, muze ji i desifrovat. 2. Kazda dvojiče partneru musí mít svuj společny tajny klíčč. Druhaí vlastnost je nepočhybnňe nevyíhodnaí. Pokud by poňčítaňčovaí sít' mňela n navzíajem propojenyíčh učastníku, museli by pouzívat ra'(>2+1) ruzníčh sifrovačíčh klíču, ktere by si učastníči museli mezi sebou vymenit. Zvolíme-li napr. n = 500, bylo by nutno mít v systemu čča 125000 klíču. Vzhledem k nutne obnove za novíe klíňče byčhom se dostali do praktičky nerealizovatelníe situače. O sifrovačím systemu s první vlastností pak obvykle mluvíme jako o symetričkem sifrovačím systemu. První vlastnost muzeme povazovat za víhodnou, protoze lze k sifrovaní a desifrovaní pouzít stejní stroj. Asymetričke algoritmy se vyznačují tím, ze jsou od první vlastnosti čo nejvíče mozna vzdaleny. Ukízeme, ňze takovíeto systíemy nemají druhou vlastnost a tedy príače s klíňči je jednodučhía. 135 136KAPITOLA 7. ASYMETRICKE ^FROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNÝMKLICEM Budeme hlavnňe pouňzíívat pojem asymetrickáeho algoritmů; obňcas budeme mluvit o půblic-key algoritmů. Takoveto postupy byly vyvinuty v roce 1976 Whitfieldem Diffiem a Martinem Hellmanem v jejich príci New Directions in Crýptographý, za kterou tito americtí matematici obdrzeli v temze roce vírocní cenu M.I.T. 1 Asymetrické Šifrovací systémy Budeme predpokladat, ze kazdí ícastník T mí dvojici klícu, a to • verejná klíc E — ET k zasifrovíní; • soukromá (tajná) klíc D — DT k desifrovíní; ktere se vyznacují nasledující vlastností: Ze znalosti klíce ET nelze zjistit soukromý klíc DT. Kryptosystem s touto vlastností se nazíyvía asymetrickyá kryptosystáem. Pokud navíc pňredpoklíadíame, ňze pro kaňzdou zpríavu M platí D(E(M)) — M, mluvíme o asymetrickáem sifrovacáím systáemů. Asymetrickíy kryptosystíem se nazyívía asymetrickáe pod-pisovacáí scháema, pokud pro kaňzdou zpríavu M lze pomocí veňrejníeho klíňce E provňeňrit, zda se k sobňe M a D(M) hodí. Vňsechny veňrejníe klíňce jsou uloňzeny ve veňrejnňe dostupníem souboru (podobníemu telefonnímu seznamu), zatímco soukrome klícce jsou tajne tj. zname pouze jejich vlastníkum. Sňifrovíaní a deňsifrovíaní pomocí asymetrickíeho ňsifrovacího systíemu probíhía ve 3 krocích: 1. Chce-li A zaslat B zpríavu M, pak • najde veréjny klícc EB pro B, 1. ASYMETRICKE SIFROVACI SYSTEMY 137 • zasifruje zpravu M pomočí klíče EB a • odesle Eb(M) k B. 2. B muže kryptogram EB(M) desifrovat, protože zna jako jediní tajní klíč DB : Db (Eb(M )) = M. 3. Zadny jiní íčastník nemuže (EB(M) rozluňtit, protože podle predpokladu ze znalosti (EB a (EB(M) nelze získat znalost o DB. Vyíhody asymetričkíeho ňsifrovačího systíemu jsou níasledujíčí: • Není potreba výměna klíčů. Tímto je vyreňen hlavní problěm symetričkěho algoritmu. Zejměna je tedy s pomočí asymetričkěho algoritmu možna bezprostrední komunikace. Mužeme tedy navzajem komunikovat, aniňz byčhom se sloňzitňe dohadovali o klíňči. Asymetričkíe algoritmy jsou ideaílní pro otevrenou komunikaci. • Není potřeba mnoho klíčů. U symetričkěho algoritmu se zvysuje počet klíčů kvadraticky s počtem uživatelu, u asymetričkěho algoritmu je počet klíčču roven dvojnasobku počtu uživatem. • Lze přijmout bez problémů nove uživatele. Je-li prijat noví íčastník do symetričkěho systěmu, musí si s ním vňsičhni staňrí uíňčastníči vymňenit klíňč. U asymetričkíeho systíemu není naproti tomu nutno, aby staňrí uíňčastníči aktualizovali svoje data. • Mnoho asymetrických systémů poskytuje skvele moZnosti pro elektronický podpis. 138KAPITOLA 7. ASYMETRICKE ^FROVACIISYSTEMYNEBOLI SYSTEMYS VEREJNYMKLICEM Nevíyhody asymetričkíeho ňsifrovačího systíemu jsou pak: • Doposud není znám ZIdnI asymetricky krýptosýstIm, který bý býl zároveň rýchlý a bezpeCný. Postup, kteríym se budeme hlavnňe zabyívat, je tzv. RSA-algoritmus. V poslední dobňe se takíe pračuje s algoritmy, kteríe spoňčívají na diskríetníích logaritmech. • Asýmetricke algoritmý potřebují jistý dohled nad klíci. Muže se totiž stat, že Mr. X opatrí svoji sčhrínku s falesnym jměnem, ke kterěmu se vsak hodí jeho klíč. Pak muže začhytit vsěčhny zpravy, kterě byly adresovany puvodnímu adresatovi. 2 Elektronicky podpis Dalsí duležitou myslenkou Diffieho a Hellmana je elektronicky neboli digitalnípodpis. Nejdríve si ujasněme 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 ideaílním pňrípadu níasledujíčí vlastnosti: • Pouze osoba A muže vytvorit tento podpis. • Každy jiní íčastník muže prověrit, že se opravdu jedna o podpis osoby A. Diskutujme nejprve digitíalní podpis s pouňzitím symetričkíeho ňsifrovačího systíemu (napňr. DES). Popíňseme dva moňzníe pňrístupy. Diffie-Lamportovo schema Odesílat A, kteryí si pňreje podepsat n-bitovou biníarní zpríavu M = Mi... Mn, 2. ELEKTRONICKY PODPIS 139 si predem vybere 2n klícu sifrovacího systemu (M, K, C). Oznacme je po rade jako Tyto klííňce jsou tajníe. Je-li sifrovací algoritmus e, osoba A vygeneruje 4n parametru, {(XQ, Yí,Uí, Vi) : 1 < i < n}, kde Yi lezí v definicním oboru e a Uj = e(Xj, Oj) a Vj = e(Yj, bj) (1 < i < n). (2.1) Tyto parametry jsou dopňredu zaslaíny pňríjemci B. Zaírovenň 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... 5^ kde pro vsechna i, 1 < i < n platí { s = j oj pokud Mi = 0, Sj = ^ bi pokud Mj = 1. Ovňeňrovací protokol osoby B probíhaí naísledovnňe: pro vňsechna i (1 < i < n) pouňzije osoba B bit Mj a klíňc sj, aby ovňeňrila, ňze pokud Mi = 0 pak e(Xj, Sj) = Uj, pokud Mj = 1 pak e(Yj, Sj) = Vj. ! 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É ŠIFROVACÍ SYSTEMY NEBOLI SYSTEMY S VEREJNÝM KLICEM Rabinovo pravdepodobnostní podpisovačí sčhema Rabin (1978) navrhl jiní prístup. Bud' e sifrovačí funkče nejakeho sifrovačího systemu (M, K, C). Bud' dale (K : 1 < i < 2r) posloupnost níhodne vybranyčh klíču, které odesílatel A učhova v tajnosti. Príjemče B obdrzí seznam 2r parametru (Xj, Uj), (1 < i < 2r), kde e(Xj,Kj) = Uj (1 < i < 2r), (2.2) a tyto parametry jsou uloňzeny na nňejakíem veňrejnňe pňrístupníem místňe. Pňredpoklaídejme nyní, ňze osoba A si pňreje podepsat zpríavu M. Jejím podpisem pak bude ňretňezeč S = S1S2... iS2r, kde pro vňsečhna i, (1 < i < 2r) platí Sj = e(M,Kj). Osoba B pak pokračuje nísledovne: nejprve vybere nahodne či jinak r klíču, které si preje uveréjnit. Nečht' to jsou klíňče K K K Pak po obdrzení tečhto klíčču osoba B proverí, ze platí e(M,Kjj) = Sj., e(Xjj,Kj.) = Uj. (1 < j < r). Osoba B akčeptuje podpis jako podpis osoby A, pokud vňsečhny tyto rovnosti platíí. Je zňrejmíe, ňze bezpeňčnost príjemče zavisí na jeho duvere, ze jedine osoba vlastníčí tajne klíče mu mohla poslat tuto podepsanou zprávu. Pňredpoklíadejme, ňze si osoba A čhče podrobit kritiče zpraívu, o kteríe se tvrdí, ňze ji podepsala a kterou B zkontroloval. Protokol A je jasní; musí vytvont pred kontrolorem svíčh 2r tajníčh klíču S = K1,K2 ...K2r, a veňrejnňe provňeňrit rovnosti 2. ELEKTRONICKY PODPIS 141 e(M, Ki) = Si e(Xi, Ki) = U (1 < i < 2r). Protokol Rabinova systemu se řídí pravidlem, ze kritika je opravnena, pouze v případe, ze vsechna Ui a Si s vyjímkou nejmene r Si souhlasí. Uvazme, co muze nastat ve třech mozních případech: (a) Platí mene nez r kontrol Si. V tomto případe nemela osoba B akceptovat (M, S) jako sprívne podepsanou zpríavu. (b) Platí príve r kontrol Si. V tomto případe, kdyz si osoba B vybrala r klíccu k zveřejnení, musela si vybrat praívňe tyto klíňce. Pravdňepodobnost vyíbňeru takovíeto mnoňziny je urňcena pňredpisem 1 a pr ~ 10-10 pro r = 18. (c) Platí r + 1 kontrol Si ci více. V tomto případe je příjemce v pravu. Vrat'me se nyní k asymetrickemu sifrovaní. Pak muzeme digitílní podpis realizovat nasledujícím zpusobem: 1. Chce-li osoba A podepsat zpríavu M, tak • zašifruje M pomocí sveho tajneho soukromeho klícce DA, • uveřejní podepsanou zpravu DA(M). 2. Kazdí jiní ucastník muze tento podpis DA(M) zkontrolovat tím, ze pomocí veřejneho klícce EA proveří, zda se k sobe hodí M a DA(M). 142KAPITOLA 7. ASYMETRICKE SIFROVACI. SYSTEMYNEBOLI SYSTEMYS VEREJNÝMKLICEM Napňr. u RSA algoritmu se provňeňrí žda platí Ea(Da(M)) = M. V takovíem pňrípadňe je nňekdy i jinía moňžnost kontroly digitíalního podpisu: podepsanía osoba A žveňrejní jen DA(M), ale ne žprívu M. Pokud osoba B obdrzí pri aplikaci Ea smysluplnou zpravu, povazuje to za dukaz spravnosti digitálního podpisu. Vsimneme si, že pri vytvorení a kontrole sprívnosti digitalního podpisu byly pouňžity použe klíňce patňrící odesílateli A. Každí ucastník muže proverit digitalní podpis. Rožhodující roždíl meži digitalním a obycejním podpisem je, že digitalní podpis DA(M) je neoddelitelne spjat se žprívou M. Naproti tomu je obycejní podpis pripojen na konec žpravy. Dusledkem je pak, že pri žmene DA(M) na (DA(M)' se žmení i E(Da(M)) a tedy žpríva M a E(Da(M)') spolu nesouhlasí. Predpokladejme tedy, že míme sifrovací system s verejním klíccem s vlastností, že pro každeho uživatele I sifrovací a desifrovací funkce komutují tj. že e/ (d/ (M)) = M. (2.3) Uvažme níasledujíícíí algoritmus. 1. Odesílatel A vypocte podpis S žprívy M užitím sveho vlastního soukromeho klíce a obdrží S = c!a(M ). 2. Užitím verejneho klícce príjemce B vypocte A kryptogram C = es (S). 3. Príjemce B vypocte podpis S ž kryptogramu C užitím sveho vlastního soukromeho klícce a obdrží S = ds (C). 3. IDEA FUNKCE S VLASTNOSTI PADACÍCH DVERI 143 4. Uzitím veřejneho klícce odesílatele A vypocte B zpravu M = eA(S). Nyní je příjemce B ve velmi vyhodne pozici. Vlastní dvojici (M, S). V případe sporu, potřebuje-li přesvedcit soudce, ze odesílatel A opravdu odeslal zpravu, pozada A o vytvoření jejího soukromeho klícce KA. Odesílatel A musí opravdu vytvořit svuj soukromí klíc KA, protoze ho lze otestovat na identite eA(dA(M)) = M. Soudci pak pouze stací proveřit, ze S = dA(M). Ze stejneho duvodu musí příjemce B zustat poctiví. Předpokladejme, ze zmenil zpravu M na zpravu M'. Pak by ale musel byt schopen zmenit podpis S na S', aby platilo, ze S' = dA(M'). Ale to muze provest pouze A. 3 Idea funkce s vlastností padacích dverí Zopakujme si vlastnosti systemu s veřejním klíccem z odstavce 1. Vsichni uzivatele systemu, kteří si přejí navzajem komunikovat, pouzívají tentíz sifrovací algoritmus e a tentyz desifrovací algoritmus d. Kazdy uzivatel Ui mí dvojici klícu (Ki,Li) tak, ze pro kazdou moznou zpríavu M platíí identita d(e(M,Ki),Li) = M, (3.1) kde Ki je zveřejnen a ulozen ve veřejnem souboru; Li zustane utajem a mluvíme o nem jako o soukromem klíči; Ki se nazíví verejní klíč. Pokud chce jiní uzivatel odeslat uzivateli Ui zpravu M, postupuje nasledovne. (a) Uzivatel najde veřejny klícc Ki uzivatel Ui ve veřejnem souboru. (b) Uzivatel odesle kryptogram C = e(M, Ki) k uzivateli Ui veřejním kanílem. 144KAPITOLA 7. ASYMETRICKE ^FROVAGI SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLICEM Bezpecnost 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ípocetne nají M. Vlastnost 3 Je-li zním kryptogram C a tajní klíc Lj, je snadne urcit zpravu M. Jinak receno, vlastnosti 1 a 2 tvrdí, ze sifrovací funkce e pouzívající verejní klícc by mela byt jednosmerna, ale vlastnost 3 pozaduje navííc existenci veěrejníeho klííěce. Takovaíto jednosmernaí funkce se nazyívía funkce s vlastnostíí padacíích dveěríí. Aby byl takovíyto systíem prakticky pouzitelnyí, je nutníe splneníí níasledujíícíí podmíínky. Vlastnost 4 Melo by byt snadne generovat nahodne dvojice veréjní/soukromí klíc (Ki,Li). Jinak receno, melo by bít dostatecne mnoho dvojic (K, L) tak, ze je pro Mr. X nemozne sestrojit tabulku vhodnyích funkcníích hodnot. 4 RSA-algoritmus Pripomenme dve zaísadníí tvrzeníí z teorie cíí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í cp-1 — 1 mod p. Postúp pri sifrovaní RSA-algoritrmi 4. RSA-ALGORITMUS 145 1. Najdeme dve velká prvocísla p a q a polozme n = p • q. 2. Najdeme velké a nahodne prirozene císlo d tak, ze je nesoudelne s císlem (p — 1) • (q — 1). 3. Vypocteme jedine prirozene císlo e lezící v oboru hodnot 1 < e < (p — 1) • (q — 1) ze vztahu e • d =1 mod (p — 1) • (q — 1). 4. Zverejneme verejní klíc, ktery se sklada z dvojice prirozenych císel (e,n). 5. Reprezentujme zpravu M jako prirozene císlo z intervalu {1,... ,n}; rozdelme zpravu M do bloku, je-li prílis velka. 6. Zakódujme M do kryptogramu C dle predpisu C = Me mod n. 7. Desifrujme pomocí soukromeho klícce d a predpisu D = Cd mod n. RSA-podpisovací schěma Oznacme verejní klíc uzivatele I dvojici (e/, n/) a soukromy klíc d/. V praxi je n/ obvykle voleno jako císlo, ktere je soucin dvou nahodne zvoleních asi 100-místních prvocísel, n = p/ • q/. Prvocísla p/ a q/ jsou osobním tajemstvím uzivatele I. Díle si uzivatel I zvolí tzv. sifrovací exponent e/ tak, aby byl nesoudelny s cp(n/). Zejmena tedy platí, ze (e/, (p/ — 1) • (q/ — 1)) = 1. Uzivatel I najde císlo d/ tak, ze splňuje e/• d/ = 1 mod cp(n/). Toto císlo je víse uvedeními hodnotami jednoznacne urceno. Pak sifrovací predpis pro odesílatele A, kterí chce zaslat prííjemci B podepsanou zpraívu M níasledovne: 146KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM 1. Očí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 číselne formy a rozdelíme na bloky stejne delky. Císelne vyjadrení bloku B označíme M. Pritom pozadujeme, aby 1 < M < nA. 2. Odesílatel A vypočte podpis S jako S = MdA (mod tia). 3. Pak A vypočte kryptogram C = SeB (mod nB). 4. Po obdrzení kryptogramu C vypočte B podpis S = CdB (mod nB). 5. Dale B vypočte zpravu M = SeA (mod nA). Lemma 4.3 Pro všechna vhodne zvolená M platí S = MdA (mod wa) M = SeA (mod wa). 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 ?a. 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. Nečht' napr. M = a • pA, 1 < a < qA. Pak (MdA)eA = MeA'dA = aeA'dA • pAeA'dA = aeA'dA • pA mod pA • £4. Protoze (a,qA) = 1, míme dle Eulerovy vety aeA 'dA = a mod qA. Po vynasobení číslem p a míme pA • aeA'dA = pA • a = M mod pA • qA. Pro M = b • qA, 1 < b < pA se dukaz provede analogičky. Poznamenejme, ňze odhlíedneme-li od nutníeho poňzadavku 2.3, musí byít nutnňe podpis S vypoňčteníy odesílatelem A v definičním oboru sifrovačí pročedury eB. Tato poslední podmínka nemusí platit, kdyz pouzití system je RSA; podpis S muze bít vetsí prirozene číslo, nez je verejny klíč nB. Muzeme vsak zajistit platnost teto podmínky tím, ze prizpusobíme velikost bloku nasí zpravy tak, ze vysledek padne do pozadovaneho definičního oboru. Prí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 vypočte 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 zčela 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). Řivest, Shamir a Adleman (1978) navrhli mnohem elegantnňejňsí ňreňsení: Je zvolena mezní hodnota h pro system s verejním klíččem (rekneme h ~ 10199). Kazdy uzivatel pak mí dve dvojiče verejnyčh klíčču, jednu pro zasifrovaní a druhou pro overení podpisu. Označme je po rade (e/, n/) a (f/), kde I probíhí mnozinu uzivatelu. Soukromí klíčč odpovídajíčí dvojiči pro overení podpisu budeme 148KAPITOLA 7. ASYMETRICKE ^FROVAGISYSTEMYNEBOLI SYSTEMYS VEREJNÝMKLICEM znacit g/. Zvolení predpis se rídí tím, ze sifrovací modul nj a podpisovací modul m/ by mely pro kazdeho uzivatele I splnovat m/ < h < n/. 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 nB). 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 {m/ : I G U}, (4.1) kde U je mnozina uzivatelu systemu. 5. DISKUSE RSA-ALGORITMU 149 5 Diskuse RSA-algoritmu V uvedene verzi RSA-algoritmu vystupují verejne parametry (e/, n/) a tajne parametry d/,p/ a q/ spolu s císelním vyjadrením (casti) zpravy M. Rozeberme si pozadavky na jejich víber. • Pri pouzití RSA-algoritmu kazdí ucastník systemu pouzíva dve (ctyri) 100-místna prvocísla. Kolik jich míme k dispozici? Pouzitím prvocíselne funkce n, ktera udava pocet prvocísel mensích nez dopredu zvolene 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. Pravdepodobnost, ze by si dva ucastníci systemu vybrali tutez dvojici 100-místnych prvocísel, je pak rídove 10-391. • Dalsím problemem je nalezení 100-místneho níhodneho prvocísla. Nejprve pomocí generatoru 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 dalsí uvedeme príklad jednoducheho pravdepodobnostního algoritmu na zjistení prvocíselnosti císla m. 150KAPITOLA 7. ASYMETRICKE sIFROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNYMKLICEM Algoritmus na zjištění prvočíselnosti čísla m na k pokůsů 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 sloZene číslo); GO TO KONEC END END; WRITE (m, je sloZene prvočíslo); KONEC: END. Funkce RANDOM vybíra pseudonahodna cela čísla z určeneho intervalu. Algoritmus na vstupu načte číslo m a číslo k a na vástupu obdržíme bud' pravdivou odpoved', že m je složene číslo nebo odpoved', že 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) Odesilatel A muže ámyslne ztratit svuj soukromý kláč tak, že, ačkoliv je uložen v bance soukromých klíčů pred startem systemu, já odeslane žpravy se stanou neoveritelnámi. (b) Odesálatel A muže umyslne vydat svuj soukromy kláč dA a dovolit tak, aby vsečhny já adresovane žpravy byly resitelne. 6. SYSTEMY ŽALOŽENE NA RUKSAKOVE METODE 151 (č) Doba věnovana sifrovaní, podepsaní, desifrovíní a prověrení muže byt nepriměrena. Totiž teprve nedíavno byla nalezena rozumnaí implementače RSA-algoritmu a v souňčasníe dobňe jsou na trhu RSA-čipy, kterě ale mají ryčhlost asi 10 Kbit/s. K dispoziči jsou i spečialní RSA-karty, kterě zvlídnou 100 Kbit/s. Uvížíme-li vsak, že budoučí ISDN sítoví standard elektroničkě posty pračuje s 64Kbit/s a že se v pumyslu (lokální sítě apod.) pračuje s ryčhlostmi kolem 10 Mbit/s, vidíme, že nebude jestě dlouho možno použít RSA-algoritmus za učelem sifrovaní zprav, níbrž hlavně pro spravu klíčču a elektroničkě podpisovíní. Pri tvorbě elektroničkěho podpisu se totiž nejdríve text zkomprimuje a podpisovačí algoritmus se aplikuje na komprimaít; není tedy nutno podpisovat velkíe soubory. 6 Systemy zaloZene na ruksakove metode Jeden z prvníčh (1978) sytěmu s verejním klíččem byl vyvinut Merklem a Hellmanem a byl založen na tzv. ruksakověm problěmu. Presněji, jední se o vípočetní problěm znímí jako PODMNOňINOVY SOUCET definovaní nasledovně: Vstup: Kladní realna čísla a1, a2,..., an, t Otízka: Existuje podmnožina J C {1,..., n} tak, že Ei€ j «» = t? Tento problěm je jedním z klasičkíčh NP-uplníčh problěmu. Zašifrovaní zprávy 1. Odesíílanaí zpríava je odeslíana v biníarníím tvaru m. 2. Verejně klíče tvorí soubor n-tič (a1,..., an) kladníčh prirozeníčh čí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í trídy problémů, podmnožinového součtu pro superrostoucí posloupnosti. 6. SYSTÉMY ZALOZENE NA RUKSAKOVE METODE 153 Proof. Předpokladejme, ze posloupnost a1,...,an je superrostoucí,. Potřebujeme reprezentovat vstup t jako soucet vybrane podposloupnosti posloupnosti a1,...,an nebo rozhodnout, ze takovouto reprezentaci nelze najíít. Polozme r = max {i : ai < t}. Pak t = ar + s, kde nyní potřebujeme najít reprezentaci císla s jako soucet vybrane podposloupnosti posloupnosti a1,..., ar-1 nebo rozhodnout, ze takovouto reprezentaci nelze najít. Opakovaní tohoto postupu nam pak da nasi reprezentaci pro t nebo ojeví, ze takovou reprezentaci není mozno najít. Zaklad Merkle-Hellmanova systemu je nasledovny: 1. Typicky uzivatel A si vybere snadnou superrostoucí posloupnost prirozenych císel ei,... , en. 2. Uzivatel si vybere dvojici velkých nesoudelních prirozenách císel w a N a transformuje pomocí ní vybranou superrostoucí posloupnost do obtíZne posloupnosti T(e1),..., T(en) podle predpisu T (ej) = w • (mod N). Transformovany vektor (T(e1),..., T(en)) se stane verejným klícem uzivatele A. Pritom by melo bát N > ei + e2 H---+ e„. Lemma 6.2 Bud' c kryptogram odeslaný uZivatel A pri pouZití obtíZneho verejného klíce T(e1),..., T(en) uZivatele A a predpisu T (ej) = w • ej (mod N). Lehký kryptogram C pak získíme z nasledujícího 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=l 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 nej 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ícem, o kterem lže ukažat, že jeho složitost je ekvivalentní s problemem faktorižace. Tvurcem systemu je Rabin (1979). Každí uživatel systemu vybere dvojici (p, q) velkych ružních prvocísel, ktere uchoví v tajnosti. Zíroven si vybere prirožene císlo B < N = p • q. Verejný klíc bude dvojice (B, N), soukromý klíc bude faktorižace (p, q) císla N. IŠifrovací funkce e žprívy M, kde M je reprežentovatelna jako prirožene císlo v definicním oboru {1,..., N — 1} (v prípade potreby se žpríva rožparceluje na více bloku), je e(M) = M • (M + B) (mod N). Je-li C výsledný kryptogram, pak desifrovací problem je nalezt M tak, ze (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 Kongruencní rovnice ax = b (modm). (7.3) je řešitelná právě tehdy, když (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í kongruencní rovnice ma resení v celych císlech pro n > 2: axn — 6 (modm). (7.4) Podobne jako v prípade linearních kongruecní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 príve jedno řešení 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 CIFROVACISYSTEMYNEBOLI SYSTEMYS VEREJNYMKLICEM Totiz ej • ej = m • c, ej • ej = YlI ej • ej = 1 • ej = ej (modm), ej = mj • c', (ej, mj) = 1. Polozme 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 = Ke^m H-----H [arer]m. (7.12) Oznacme jakozto [a*]m zbytkovou trídu [e1 + • • • + ej-1 + ajej + ej+1 + • • • + er]m. Pak pro pevne i tvorí mnozina zbytkovách tríd [a*]m podgrupu grupy Gm. Z rovnosti 7.12 obdrzíme jednoznacne urcená rozklad [a]m = [a*]m ... [a*]m. (7.13) 7. SYSTEM S VEREJNYM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 159 Provedeme-li tento rožklad pro vsečhna [a]m G Gm, lže váse uvedene formulovat tak, že grupa Gm je prámá součin podgrup G^, ..., Gm. Máme žejmena ižomorfismus meži grupami Gmi a G^ pomočá žobražená [a*]m <—> [ai]mi. Rekneme, že 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 Patrá-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. Nečht' ak = ah (modm), 0 < h < k < d. Protože (a, m) = 1, je ak-h = 1 (modm). To je vsak spor s 0 1, pak platí (gv) ^ = (g^(m)) t = 1 (mod m). Pak ale nemuže byt gv primitivní koren modulo m. Tvrzění 7.6 Bud' p prvocíslo. Pak Gp je cyklickí. Zejmena tedy existuje primitivní koren modulo p. Důkaz. Prp p = 2 je tvržení vety triviílní. Necht' p je v dalsím liche prvocíslo. Pro d| (p — 1) ožnacme 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 — 1)(x — a) • • • (x — ad-1) (modp). Zíaroven jsou vyíse uvedenía cíísla takíe vsechna reseníí tíeto 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 dobre žnamo, že E ^(d) = p — 1. d|(p-1) 7. SYSTEM S VEREJNÝM KLICEM SE SLOŽITOSTI STEJNOU JAKO FAKTORIZACE 161 Nutne pak x (d) = y?(d). Bud' g primitivní koren modulo m, (a, m) = 1 a // bud' jednoznacne urcene císlo mezi 0 a <^(m) — 1 z kongruencní rovnice gM = a (modm). Pak ríkame, ze // je index (diskrétni logaritmus) císla a vzhledem k bazi g. Píseme pak // = logga mod <^(m). Pritom platí pravidla pro logaritmovaní soudnu, mocniny atd. FI Tvrzení 7.7 Pro diskrétni logaritmované platí naslédujécé zakony: 1. loggab = logga + loggb (mod <^(m)), 2. loggan = nlogga (mod<^(m)), 3. logg 1 = 0 (mod t/?(m)), 4. loggg = 1 (mod ^(m)) 5. logg(—1) = 2<^(m) (mod<^(m)),m > 2. Dukaz. 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: g^(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í prave 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 KLICEM SE SLOŽITOSTI STEJNOU JAKO FAKTORIZACE 163 D ů kaz. Resitelnost kongruenční rovnice 7.16 nastaví prýve tehdy, kdyz je system kongruečních rovnic 7.17 resitelný. V prípade resitelnosti kazde jednotlive kongruenčí rovnice označme x = ci (modpsi) resení i-te kongrunční rovnice. Obdrzíme pak linearní system kongruencí, kterí ma jednoznačne určene resení (mod m). Probíhají-li ci vsech ni nekongruentních resení, získame celkem N resení (mod m). I D ů sledek 7.11 Počet řešeni kongruenčni rovnice xs = x (modm),m = nr=1ps je číslo N = n1n2nr, přičemž ni je počet řešení rovnice xs = x (modpsi) pro 1 < i < r. Tvrzení 7.12 Počet rešení kongruenční rovniče xs = x (modp), kde p je prvočíslo, je roven 1 + (p — 1, s — 1). D ů kaz. Uvazme dva prípady. Necht' x je čí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 čí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 ů sledek 7.13 Počet rešení kongruenční rovniče xs = x (modm),m = nr=1pi (7.21) je číslo N = nr=1(1 + (pi — 1, s — 1)). (7.18) (7.19) (7.20) 164KAPITOLA 7. ASYMETRICKE ^FROVAGISYSTEMYNEBOLI SYSTEMYS VEREJNÝMKLICEM Kvadratické kongruence 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 prevedenie 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 zbytkU. 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 = gw (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 ŠIFROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNYMKLICEM Lemma 7.16 Resení rovnice x2 + B • x = C (modp • q) lze obdrZet jako kombinaci řešení u, v rovnic x2 + B • x = C (mod p) x2 + B • x = C (mod q) a přirozených čísel a, b splň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 ů kaz. Plyne bezprostredne z predčhozáčh tvrzená. Buď p lichá prvočáslo, p nedelá čáslo a. Legendruv symbol (j^j definujeme jako + 1 pokud je a kvadraticky 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ápočet Legendrova symbolu. Evidentní jsou následující vlastnosti = (pO pro b = a (modp) l 7. SYSTEM S VEREJNYM KLICEM SE SLOŽITOSTI STEJNOU JAKO FAKTORIŽACE 167 Z Fermat-Eulerovy věty víme, že ap 1 = 1 (modp) a proto platí ap 2 = ±1 (modp). Podle věty 7.9 je podmínka a~2~ = 1 (modp) dostatečna a nutna pro reňitelnost kongruenční rovniče x2 = a (modp), (a,p) = 1. Mame tedy tzv. Eulerovo kritérium: Veta 7.17 G) a \ p_i = a 2 mod p. p Z tohoto kriteria lze odvodit radu dulezityčh faktu: Tvrzení 7.18 D ukaz. Z Eulerova kritíeria míame, ze — = (ab) 2 = a 2 • b 2 = -- mod p. Tvrzení 7.19 (t)=(-1) 1-1 ^H-1** ■ MA p D ukaz. Prvníí vztah plyne bezprostňrednňe z Eulerova kritíeria. Abyčhom dokaízali druhíy vztah, uvaňzme souňčin 2 ^ - ^t, 1Np2_i IT(-1)fc k =^^^)!(-1)2 fc=i 168KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEŘEJNÝM KLÍČEM Je-li v součinu číslo k liche, zameníme (—k) modulo p číslem (p — k) o obdrzíme rovnost 2 i JJ(—1)kk = 2 • 4 • 6 • • • • (p — 1) = (P——modp. fc=i Protože ale p nedelí (2—1)!, mame Z Eulerova kritáeria plyne tvrženáí. Lemma 7.20 Je-li p prvocíslo tvaru 4k — 1 a d kvadratický zbytek modulo p, resení kongruencní rovnice tvaru y2 = d (modp) (7.31) je daíno predpisem y = dk (modp). (7.32) D ů kaz. Z Eulerova kriteria mame, že í d\ , jp=i A - = 1 = d 2 mod p. p Protože k = 1 (p +1), máme d 4 (p+1)d1 (p+1) = d 2 (p+1) = d1 (p-1)d = d mod p. Zkombinujeme-li predčhoží uvahy, dostaneme nasledují tvržení 7. SYSTEM S VEREJNÝM KLKEM SE SLOŽITOST1 STEJNOU JAKO FAKTORIZACE 169 Tvrzení 7.21 Zá predpokladu, zeják p ták q jsou kongruentní s 3 modulo 4, lze desifrovacíproceduru provest v polynomiálním Cáse. Dukaz. Příjemci, kterí zna faktory p a q a ví, ze kryptogram je kvadratickí zbytek, stací jenom aplikovat předchozí lemmata. Rabin ve skutecnosti dokazal víc nez 7.21. Totiz dokazal, ze i v případe, ze prvocísla p a q nejsou v tomto ^ speciílním tvaru, kongruencní rovnice modulo p a modulo q lze řesit nahodním algoritmem v polynomialním case. Poznamenejme, ze praktickou nevíhodou Rabinova schematu je, ze příjemce obdrzí ctyři mozne zprívy, z nichz mía vybrat tu spríavnou. Obvykle to lze províest tíím, ze mía nejakou dodatecnou informaci - napr. ze po prevedeníí z biníarníího do textovíeho tvaru je zpríava psanaí v anglictine. Mr. X vsak neznaí faktory p a q cíísla N a musíí se zabyívat mnohoníasobne obtííznejsíím problíemem. Ze je tomu skutecne tak, plyne z nííze uvedeníe druhíe Rabinovy vety. Veta 7.22 Označme DN množinu vsech tákovích d, 0 < d < N, ze existuje resení kongruencní rovnice y2 = d (modN). (7.33) Jestlize pro álespon \ jogN] tákovíchto d jsme schopni nájít tákove y, pák jsme schopni najít faktor N v náhodne polynomiální dobe. Lemma 7.23 Jsou-li x,y G ZN celí císlá modulo N tákoví, ze x2 = y2 (mod N), x = ±y (mod N), (7.34) jsou pák (x + y, N) á (x - y, N) dělitele N. Zejmena pro N = p • q, p á q prvocíslá 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. Vetu 7.22 lze neformaílne prepsat do tvaru 170KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM Veta 7.24 Rožsifrovíní Rabinova systému 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 narušení RSA-algoritmů prostřednictvím faktorizace modůlů N = p • q Faktorizace modulu N je nepomerne obtíznejsí 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 NAPADA RSA-ALGORITMUS? 171 Věta 8.1 Buď n = p • q, p, q, r prvocísla, r — 1/b, r/n a n nedelí 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). Zaroveň vsak r/n. Aby se víse uvedena veta dala využít, je nutno najít vhodna císla a, b. Naležení a je snadne. Stací žvolit nňejakíe malíe prvoňcíslo a pňresvňedňcit, žda je ňci není dňelitelem n - pokud by bylo dňelitelem, naňsli bychom faktorižaci ňcísla n a tím byli hotovi. Volba b je obtížnejsí, je treba ho najít postupním žkousením. Pritom se obvykle ža b volí císla tvaru bj = nsn(1, 2,...,j). Tato císla je vhodne volit ž toho duvodu, že mají mnoho vlastních delitelu a je tedy velkí sance na splnení podmínky r — 1/b. Algoritmus se hodí na naležení mensích prvocíselních delitelu císla n. Touto metodou bylo napr. faktorižo-vane císlo 2257 — 1 jako sou cín trí ružních prvocísel. Dalsí žnamou metodou je Pollardova rho-metoda (Monte Carlo), kterou se obvykle najdou male prvocíselne delitele modulu N asi po ^/p cyklech programu. Metoda žacíní víberem libovolne nelineírní funkce f s celocíselnymi koeficienty, nejcasteji f (x) = x2 + c, c = 0, —2 a volbou pocatecní hodnoty x0, kterou lže žvolit níhodne. V dalsích krocích se rekurentne pocítají hodnoty posloupnosti xj+1 = f (x j) mod N, j = 0,1, 2,.... Pomocí pravdňepodobnostních uívah lže dokíažat, ňže vyíslednía posloupnost bude skoroperiodickía. To žnamenía, že po jiste dobe lže ocekívat vyskyt dvou hodnot x j ,xk, pro ktere platí xj = xk mod N, N = p • q x j = x k mod p. To ale žnamení, že (xj — xk, N) = p. Hledíní nejvetsího spolecneho delitele lže vsak provest Euklidovím algoritmem s malou složitostí. Algoritmus se jeste trochu upraví: kdyby se tímto žpusobem porovnavaly vsechny roždíly xk — xj pro vsechna j < k, pocet operací 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 2++q 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 NAPADÁ 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 nasobení, tj. asi 2 mesíce. Ve skutečnosti se takoveto rychlosti modularního nasobení nedosahuje a realní odhad by byl cca 15 000 let, coz je vsak obrovskí pokrok oproti 1016 letum. Na rozdíl od ECM a Pollardovy rho metody metoda QS, použita k nalezení 64-ciferneho soucinitele u naseho císla N, zívisí mnohem více na prístupu do pameti nez na víkonu procesoru. Na zaklade analýzy realne pouzitích typu pocítacu a jimi spotrebovaneho casu na faktorizaci bylo spocítano, ze k nalezení 64-ciferneho soucinitele se spotrebovalo celkem 4000 az 6000 tzv. MIPS roku. Pritom jeden MIPS rok je mnozství operací, které za jeden rok vykona pocítac s víkonem jeden milion operací za vterinu. Je to tedy 365, 25 x 24 x 3600 x 1000000 =cca. 3.16cot1013 operací. Pocítame-li prumerní víkon jednoho pocítace v experimentu 10 MIPS s tím, ze na experimentu pracoval jen polovinu dne tj. s reílním víkonem pouze 5 MIPS, bylo k faktorizaci pouzito cca. 1000 let prace. Zaroven je z vyse uvedeneho videt ízasní níriíst víkonnosti faktorizacních metod v posledních letech. Faktorizaci 154-místneho císla (512 bitu) pak bude trvat cca 500000 MIPS let. Tent vykon by mohli zajistit vsichni ícastníci síte INTERNET. Dostavíme pak vípocetní kapacitu 20 miliínu MIPS - tj. faktorizace by probehla behem devíti dní. Důsledky nových faktorizacních algoritmů pro bezpečnost RSA-šifrovacího systémů Nejspolehlivejsí cesta, jak narusit verejnou sít' vyuzívající RSA-kryptosystem, je nalezení desifrovacího exponentu, oznacme si ho treba t. Jednou z takovíchto mozností je pozníní císel p — 1 a q — 1, tj. faktorizace sifroveho modulu N = pq. Slabym místem Pollardovy p — 1 a p + 1 metody je nalezení vhodneho císla b. Aby jsme ulohu faktorizace císla N pro nekompetentní osobu zkomplikovali, musíme zvolit prvocíslap a q tak, aby p — 1 (q — 1) melo velkí prvocíselneho delitel r a p +1 (q + 1) velkí prvocíselní delitel d. Zaroven je vhodne pozadovat, aby císlo r — 1 melo rovnez velky prvocíselní delitel e. Proto prvocísla splnující kongruencní 174KAPITOLA 7. ASYMETRICKE ŠIFROVACÍSYSTEMYNEBOLI SYSTEMYS VEREJNÝMKLICEM rovnice p = 1mod r p = d — 1mod d (8.2) r = 1mod e. (kde r, d a e jsou velka níhodna prvocísla) se nažývají silna prvocísla. Aby jsme se žabežpeňcili i proti metodíam žaloňženyím na Fermatovňe faktorižaci, musíme žvolit silnía naíhodnaí prvocísla p a q tak, aby roždíl |p — q| byl nekolik rídu. Pokud budeme mít efektivní metodu na naležení silních nahodních prvocísel, pak splnení poslední podmínky ním nežpusobí žídne komplikace. Takovíto metoda byla poprve navržení Gordonem v roce 1985. Další mozně útoky na RSA-šifrovací systěm Ukažeme, že dva ícastníci RSA-sifrovacího systemu nemohou mít stejní sifrovací modul N. Uvažujme ucastníky A a B, NA = NB = N. Pak musí platit (sa,¥>(N)) = 1 a sb • tB — 1 = k • p(N) (8.3) pro nňejakíe celíe ňcíslo k. Uvidíme, ňže uíňcastník B je schopen díky spoleňcníemu N ňcíst kaňždou žpríavu urňcenou uíňcastníkovi A a takíe podpisovat uíňcastníka A. Totiž ucastník B je schopen použitím Euklidova algoritmu vypocíst f = (sb • tB — 1, sa). Ožnacme n =-f-. (8.4) Pak (n, s a) = 1 a (f, <^(N)) = 1, protože sifrovací exponent sa je nesoudelní s N. Odtud pak n = f^(N) (8.5) 8. JAK SE NAPADA RSA-ALGORITMUS? 175 a pritom číslo f delí číslo k. Proto je n nasobek <^(N). Z nesoudelnosti čísel n a sA plyne existence čísel u, v tak, ze u • n + v • sA = 1. (8.6) Bez ujmy na obecnosti lze predpokladat, ze v > 0. Pak v • sA = 1 — u • n =1 mod <^(N) (8.7) ía • sa = 1 modp(N). (8.8) Zejmíena tedy (v — ía) • sa = 0 modp(N). (8.9) v = ía modp(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 chce B odeslat zpravu jinemu íčastníkovi C, stačí podepsat zpravu místo desifrovacím exponentem ýčastníka A exponentem v. Jinou z mozných príččin narusení RSA-sifrovacího systemu by mohla bít skutečnost, ze tatíz zprava je odeslína více učastníkum sifrovacího systemu tak, ze je zasifrovana ruzními siframi tohoto systemu. RSA-algoritmus nemuze pouzívat stejne sifrovací exponenty. a a 176KAPITOLA 7. ASYMETRICKE ^FROVAGISYSTEMY NEBOLI SYSTEMY S VEREJNYMKLKEM Z duvodu jednoduchosti uvazujme tri učastníky sifrovacího systemu, kterí mají sifrovací klíče (s,Nj), i = 1, 2, 3. Muzeme bez ujmy na obecnosti predpokladat, ze moduly jsou navzajem nesoudelne. Pokud by tomu tak nebylo, nasli bychom faktorizaci a tím byli hotovi. Zasleme-li temto trem ýčastníkům stejnou zpravu x, x < min , pak Mr. X, kterí zachytí její zasifrovane varianty yj, i = 1, 2, 3, muze zprívu x lehce desifrovat. Postup Mr. X bude nasledovní. Z kongruenčních rovnic y1 = xs mod N1 y2 = xs mod N2 y3 = xs mod N3 (8.13) (8.14) (8.15) dostaneme pro N = N1N2N3 y1N2N3 = xsN2N3 mod N y2N1N3 = xsN1N3 mod N y3N1N2 = xsN1N2 mod N. (8.16) (8.17) (8.18) Po jejich 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 Speciální přístupy k dešifrování RSA-šifrovacího systemu Muzeme-li pocítat s jistou neopatrností ucastníka síte, zasle Mr. X ucastníkovi A zprívu xs • as, kde xs je zaSifrovaný zprava, ktero Mr. X zachytil a pozmenil ji pronísobením císlem as. Verejní sifrovací klíc je dvojice (s, N). Tedy ícastník A ob drzí zpravu y' = as • xs mod N (8.20) a po desifrovíní x' = (y')* = xa mod N. Pokud bude A neopatrní a umozní x' prístup k císlu x', pak muzeme jednoduse spocítat x = a-1 • x' mod N. (8.21) Dalsí mozní prístup souvisí s protokolem pri vytvarení spojení mezi ucastníky, kdy se A i B navzajem identifikují. Pokud chce ícastník B navazat spojení s ucastníkem A, zvolí libovolnou zpravu x a vysle pomocí desifrovacího exponentu tB sifru y = x*B mod NB. Ucastník A zní sifrovací exponent ícastníka B a proto si muze zkontrolovat ySB = x*B'SB = x mod NB. Nyní pouzije ícastník A svuj desifrovací exponent tA a víse uvedeny postup zopakuje. Zrejme je x < min {NA, NB}. Jak bude probíhat vlastní utok? Pokud ucastník B získa dva takoveto podpisy od ucastníka A y1 = x*A mod NA, (8.22) y2 = x*A mod Na, (8.23) je pak schopní vytvont tretí hodnoverní podpis ucastníka A bez znalosti jeho desifrovacího exponentu tA y = (x1x2)*A modNA, (8.24) a ten zneuzít pri podpisu nejake zpravy (B zna jak x1 tak x2). Proto je vhodne doplnit pri podpisovaní zprívu x nejakou aktualní redundantní a nepredvídanou informací. 178KAPITOLA 7. ASYMETRICKÉ ŠIFROVACÍ SYSTEMY NEBOLI SYSTEMY S VEREJNÝM KLICEM Tretí z mozních prístupu je nasledující. Necht' sifrovací modul N = p • q ma n-bitovou reprezentaci a prvocísla p a q mají n-bitovou reprezentaci. Predpokladejme, ze Mr. X mí moznost získat nejakím zpusobem n-bitovou informaci o modulu N. Potom ho samozrejme muze faktorizovat - prímo se zepta na jedno z prvocísel p a q. Da se ukazat, ze sifrovací modul N je mozno faktorizovat polynomialní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 algebraicke vlastnosti RSA-kryptosystemu. NO Algebraicke vlastnosti RSA-kryptosystemu a iterovaná átok na jeho bezpečnost Uvazujme mnozinu zprív rozsírenou o nuloví prvek, tj. M = {0,1, 2,... , N — 1}. Pro kazde s, (s, c/>(N)) = 1 je zobrazení T(s,x) = xs mod N (8.25) permutací mnoziny M, ktera nechava nuloví prvek na míste. Lze tedy mnozinu M s nísobením povazovat za konecnou komutativní pologrupu s nulovym prvkem, T (s, —) : M — M je homomorfismus pologrup zachovaívající nulovyí prvek. Ukazme si moznost narusení systemu iterovaním sifrovaním. Z konecnosti mnoziny M víme, ze existuje císlo h tak, ze T (s, —= T (s, —) (8.26) a tedy pro kazde zprívu x platí T (s, x)h = x. Navíc lze pro konkretní zpravu najít takove minimalní h - tj. díelku cyklu, kteryí obsahuje zpraívu x. Tento postup je vsak prakticky realizovatelný jen v prípade, kdyz h bude relativne male císlo, napr. mensí nez milion. Je pritom dokízano, ze pri vhodnem víberu prvocísel p a q je pravdepodobnost nalezení takovehoto maleho h mensí nez 10-90. Vzhledem k tomu, ze pocet elementírních castic 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 čtyr disjunktnách grup a obsahuje presne čtyri 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 al • p = el 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 počet prvku v jednotlivách grupách je 1, (p — 1)(q — 1), q — 1a p — 1. Nejprve určeme počet tech zpráv x G M, které zustanou pri permutaci T (s, —) = Ts na míste. Ptáme se tedy na počet resení rovnice T(s,x) = xs = x mod N. (8.28) Lze dokázat, ze vsechna takováto 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 navzájem ruzná prvočásla, je |Z11 = 9 a to je zrejme nejmensá mozná počet zpráv, které se nezasifrujá. Podávejme se nyná, jak to vypadá pri iterovanem sifrováná. Chceme vedet, kolik ruznách zasifrovanyčh zpráv muzeme tímto zpusobem prečíst, zopakujeme-li sifrování h + 1-krát. Rovnost 8.26 prepíseme na tvar xsh+1 = xs mod N, resp. xsh = x mod N. (8.31) 180KAPITOLA ľ. ASYMETRICKE RIFROVACE SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLtäEM Vsechna takovato řesení opet tvoří podpologrupu Zh pologrupy M, který obsahuje přesne |Zh| = [1 h (sh - l,p - h (sh - l,q - 1)] (8.32) prvku. Lemma 8.2 á) Zž n Zh = Zd, kde d = (l, h), b) Delí-li císlo l císlo h, je C Zh. Dukaz. a) Necht' x G G(f), kde f = 0 je jeden z idempotentu pologrupy M. Rovnice x5'-1 = f mod N a xs'-1 = f mod N, (8.33) ktere získame vydelením vztahu 8.31 v příslusne grupe G(f), mají spolecne řesení prýve tehdy, kdyz (sl - l,sh - 1) = sd - 1, kde d = (l,h). Tvrzení b) je speciýlním případem pro l = (l, h). Lemma 8.3 Oznacme Zh = {x : x = xs', xs = x pro vsechna l < h}, Dh = {d : d/h,d = h}. Pák á) Zh = Zh - U{Zd : d/h,d = h}, b) |Z*| = |Zh| - [£{|Zd| : d G Dh} - E{|Zdi n 1 : dl,d2 G Dh,dl = h • • • h h(-l)|Dh|| -{Zd : d G Dh, }|.], c) Pokud je h = pa, p prvocíslo, je Zh = Zh - Zh . 8. JAK SE NAPADA RSA-ALGORITMUS? 181 Důkaz. a) Nechť x E Z^, pak x E Zi pro libovolne l < h, (l, h) = 1. Tedy Zh C Zh — IJ{Zl : l < h, (l, h) = 1} tj. Zh C Zh — \J{Zd : d/h,d = h}. Opacna implikace je zrejmá. Zaroven protoze Zh ^ \J{Zd : d/h,d = h}, mame |Z^| = |Zh — |J{Zd : d/h,d = h}|. b) Plyne z principu exkluze a inkluze. c) Plyne z inkluzíí Zi C Zp C Zp2 C • • • C Zpa-i a z rovnosti Zh = \^}{Zd : d/h,d = h}. Pologrupu M muzeme tedy napsat jako disjunktní sjednocení mnozin Z^. Uloha navrhovatele sifrovacího systemu je, aby |Z£| =0 pro malá h. Mnozinu muzeme pomocí zobrazení Ts popsat následovne Zh = {x : Tsh(x) = x a Tsl(x) = x pro l < h}. Lze ukázat, ze univerzalním desifrovacím exponentem je h0 = A(A(N)), kde X je tzv. Carmichaelova funkce, ktera císlu n = p^1 • p^2 • ^par priradí císlo X(n) = 1 jestlize n =1, 2"-2 jestlize n = 2a,a> 2, ip(ri) jestlize n = 2, 4,pa,p - liche prvocíslo, nsn{X(pa),..., X(p^r)} jinak. Zejmena tedy pro kazdou zpravu x E 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(X(N)). Kazda z permutací Ts generuje v teto 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. ASYMETRICKÉ ŠIFROVACÍ SYSTÉMY NEBOLI SYSTÉMY S VEREJNÝM KLICEM 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](K| : 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 = A(A(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 A 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. Zabyvejme 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, že (x, N) = 1 a prvocísla jsou vybraní vyse uvedením žpusobem p = a1 • p1 + 1, q = b1 • q1 + 1 (8.38) p1 = a2 • p2 + 1, q1 = b2 • q2 + 1 kde aj, bj jsou libovolní níhodne žvolena malí císla, p, q,p1, q1 ,p2, q2 jsou níhodne žvolena prvocísla, p2, q2 > 1090. Ukažeme, že pro vetsinu žprav x je jejich exponent nasobkem císla p1q1. Pripomenme si naísledujíícíí žníamou vetu ž obecníe algebry. Věta 8.4 (L. Sylow) Necht G je abelovskí grupa, |G| = n. Necht díle pa je nejvetsí mocnina prvocísla p, ktera delí n. Pak grupa G obsahuje jedinou podgrupu, ktera mí presne pa prvků,. Tato podgrupa se nazyva Sylowovskí. Důslěděk 8.5 Necht |G| = p^1 • p^2je kanonicky rozklad císla n = |G|. Pak G je izomorfní s kartezskím soucinem vsech svych Sylowovskych podgrup GPi. Aplikujeme-li predchoží dusledek na nasi situaci, dostavame, že pro podgrupu G(1) platí |G(1)| = ťj*1 • ť?2t^* • p1 • q1. Je tedy grupa G(1) ižomorfní s kartežskím soucinem grup G' x Gp1 x Gp2, kde G' = Gtai x Gta2 x • • • x Gtafc. Pocet prvku x G G(1), jejichž exponent nebude soudelní se soucinem p1q1 je |G'| • (p1 + q1) — |G'|. Proto pravdepodobnost, že níhodne žvolene x G G(1) nebude mít exponent h, kterí je nísobek p1 • q1, bude rovna |G'|• (p1 + q1) — |G'| = p1 + q1 — 1 < 10-90. (8.39) | G '| • p1 • q1 p1 • q1 184KAPITOLA 7. ASYMETRICKE ^FROVAGI SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLKEM Naprosta vetsina prvku pologrupy M ma tedy exponent, kterí je nasobkem prvočísel p1 a q1, tj. h = a• p1 • q1. Aplikujeme-li tedy tento postup na grupu t ruzních transformací Ts pro pevne zvolení modul N, víme, ze se jedna o komutativní grupu, ktera ma presne <^(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 lze spočítat prvky x G G(1), jejichz exponent není delitelní součinem p2q2. Pak pravdepodobnost, ze 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) Poznámka. Poznamenejme, ze exituje jeste dalsí zrejma moznost, jak uspesne narusit RSA-algoritmus a to za predpokladu, ze zname <^(N). Pak je snadne nají tajní desifrovací klíč t. Ale jak je snadno videt, znalost t/?(N) vede k faktorizaci N. Platí totiz identity p + q = n — p(N), (p — q)2 = (p + q)2 — 4N, q = ^[(p + q) — (p — q)]. (8.44) Rozluštění RSA-kryptosystemu za 100 USD Tvůrci RSA vsadili 100 USD na to, ze nikdo nerozlustí anglickí text a zasifrovaní RSA s verejním exponentem e = 9007 a modulem N = 1143816257578886766923577997614661010218 9. DISKRETN LOGARITMUS 185 9 Diskrétní logaritmus V tomto odstavci se budeme zabívat dalsím příkladem toho, co lze v soucasnosti povazovat za dalsí jednosmernou funkci. Definujme tedy diskrítní logaritmus. Uvazme n tak, ze ma primitivní kořen a, tj. platí (a, n) = 1 a pro vsechna d, 1 < d < <^(n) - 1 je ad =1. Pokud pro x, 1 < x < <^(n) - 1, platí y = ax mod n, (9.1) ríkíme, ze x je diskretní logaritmus z y pri základu a modulo n a píseme x = logay mod <^(n). Dulezitost toho, aby a bylo primitivní kořen, spocíví v tom, ze ním tím garantuje pro kazde y, 1 < y < n - 1, (y, n) = 1 existenci jedineho takoveho x tj. diskretní logaritmus je korektne definovana funkce. Platíí pak níasledujíícíí tvrzeníí. Tvrzení 9.1 Exponenciální funkce definovaná v 9.1 je jednosmerná, tj. provedení umocnování je snádne, ále logáritmovíáníí je obtííčzníe. Dukaz. Umocnovíní lze provest pomocí 2 • \logn2] nísobení modulo n tj. umocnovaní je funkce lezící v tříde operací, ktere lze provest v polynomialním case. V soucasne dobe není zním zadní algoritmus pracující v polynomiílním case na vypocet diskretního logaritmu. Vyuzití diskretních algoritmu pro bezpecnou distribuci klícu Jeden za zakladních problemu klasicke kryptografie je zpusob bezpecne distribuce klícu. Jaka je jistota, ze kdyz nemuzeme bezpecne přeníset zpravy, ze klícce budou bezpecne? Diffie a Hellman navrhli elegantní zpusob vyřesení tohoto problemu. Zavisí na jednosmerne povaze problemu diskretní logaritmizace. Uvazme seznam uzivatelu (Ui : 1 < i < N), kteří spolu chtejí navzíjem komunikovat. Bud' p velke prvocíslo (o mnoho vetsí nez N) a necht' a je primitivní kořen z p. Typickí uzivatel Ui si vygeneruje, nezívisle na ostatních uzivatelích, pseudoníhodne císlo Xi v rozmezí od 1 do p - 1a ponechí ho v tajnosti. Zaroven prohlasí za svuj verejny klíc přirozene císlo Yi = aXi modp. (9.2) 186KAPITOLA 7. ASYMETRICKE SIFROVAC SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLICEM Prejí-li si uživatele U a Uj komunikovat soukrome, použijí ža svuj klíc císlo Kjj = aXiXj mod p. (9.3) Uživatel U si vypocte Kj tím, že si najde ve verejne prístupnem souboru Yj a použije vžtah Kij = YjXi mod p. (9.4) Podobnňe to provede i uňživatel Uj Kij = Y^' mod p. (9.5) Je-li p prvocíslo žapsane v dvojkove soustave pomocí b bitu, je na umocnení potreba nejvíse 2b nasobení modulo p. Naopak vsak Mr. X potrebuje více než polynomialní pocet operací, aby byl schopen napadnout systíem. Požnamenejme, ňže doposud není žníamo, žda prolomení tohoto systíemu je ekvivalentní vyípoňctu diskríetního logaritmu. Šifrovací systěm běz klíCů Uvaňžme naísledující ňsifrovací systíem. Pňredpoklíadejme, ňže uňživatel A chce poslat žpraívu uňživateli B a ňže tato žpríva je reprežentovatelní jako prirožene císlo v intervalu {0,1, 2,... ,p — 1}, kde p je velke prvocíslo. Uživatel A si vybere prirožene císlo a nesoudelne s p — 1. Totež provede uživatel B pro císlo b. Komunikace meži A a B sestava že trí kroku. Nejdrív A posle B cele císlo C = M" mod p. (9.6) Potom B odeňsle A ňcíslo D = Cb mod p. (9.7) Pak A urňcí celíe ňcíslo a' tak, ňže a • a' = 1 mod p— 1 a žaňsle B ňcíslo E = D" mod p. (9.8) 9. DISKRETN LOGARITMUS 187 Následovne prájemce B desifruje zprávu podle predpisu F = E6' modp, (9.9) kde b' je cele čáslo tak, ze b • b' = 1 mod p — 1 tj. existuje cele čáslo t splňujká b • b' = 1 + t • (p — 1). Ukazme, ze F = M. Totiz F= E6' = (D"')6' = D"'6' = C"'6'6 = (C"' = (C"' )1+í(p_1) mod p (9 = C"' • (C"' )*(p_1) = C"' = (M")"' = M= M mod p. ( . ) Vaáňznou neváyhodou tohoto systáemu je 3-náasobnáa ňčasováa náaroňčnost. Šifrovací system š verejným klíčem zaloZeny na diškretním logaritmovýní Vňsičhni uňzivateláe systáemu znajáí velkáe prvoňčáíslo p spolu s primitivnáím koňrenem a modulo p. Platáí tedy, ňze (a,p) = 1, ap-1 = 1 mod p a pro vsechna d, 1 < d < ^(p) — 1 je ad =1 mod p. Soukromý klíc uzivatele B je náhodne vybrane prirozene číslo xB, 1 < xB < p — 1. Veřejný klíc uzivatele B je číslo yB = aXB mod p. Predpokládejme, ze A chce odeslat B zprávu M, 1 < M < p — 1. A postupuje následovne: 1. Vybere náhodne číslo k tak, ze1 < k < p — 1. 2. Vypočte klíc K = yBk mod p. 3. Zaňsifruje zpráavu M jako dvojiči pňrirozenyáčh ňčáísel (C1, C2), kde C1 = ak mod p, C2 = KM mod p. Je tedy enkrypče urňčena zobrazenáím e : M h+ C =(C1,C2), kteráe náam zdvojnáasobáí dáelku zpráavy. 188KAPITOLA 7. ASYMETRICKEÉSŠIFROVACÉISYSTEÉMY NEBOLISYSTEÉMY S VERŠEJNYÉMKLÉICŠEM Pritom toto zasifrovíní ma tu vlastnost, ze stejna zprava sifrovaní podruhe nemusí dít tentíz kryptogram vzhledem k níahodnosti k. Desifrovaní provadí uzivatel B nísledovne: 1. Vypočte K jako K = ysk = aXBk = (ak)XB = C1XB modp. 2. Vypočte M tím, ze podelí C2 číslem K modulo p. Zrejme je tento algoritmus snadno napadnutelnyí kazdyím, kdo je sčhopen províest diskríetníí logaritmovíaníí v dostatečne kríatkíe dobe. Doposud vsak neníí zníamo, zda je uíspesníe napadnutíí tohoto systíemu ekvivalentníí diskríetníímu logaritmovíaníí. 10 Rychlejší podpisy ale mene bezpečnosti Pokud se nís prílis nedotíka bezpečnost systemu, pak muze bít sifrovačí pročedura popsaní v predčhozím paragrafu modifikovana tak, ze umozní vípočet ryčhlejsí temer o poloviči. Uvazme nasledujíčí algoritmus. 1. Odesílatel A vypočte podpis S zprívy M uzitím sveho vlastního soukromeho klíčče a obdrzí S = c!a(M ). 2. A odesle podpis S otevrenym kanalem príjemči B. 3. Uzitím verejneho klíčče odesílatele A vypočte B zpravu 10. RYCHLEJSI PODPISY ALE MENE BEZPEČNOSTI 189 B je pak ve stejne pozici jako predtím, kdyz overuje, ze A skutečne odeslal zprávu M. Ale, pokud Mr. X zachytil prenásená podpis S, pak muze Mr. X vypočítat zprávu M stejne jako B. Tedy tento algoritmus nemá skutečne utajená. Je vsak mnohem rychlejsá a jeho rychlost ho delá cennym pro ty aplikace, kde je podstatnáym faktorem autentičita a ne utajená. Pokud jsem pňripraveni zčela zapomenout na utajená, pak zňrejmyá protokol pro odesálatele A na odesláaná podepsanáe zpráavy pro B je poslat otevňrenáym kanáalem podepsanou zpráavu (M, S), kde S = c1a(M ). Uvazme následujKá práklad. Rabinovo podpisovací schéma je odvozeno ze systemu s verejnám kláčem, kde ňsifrovačá funkče maá tvar e(x) = x • (x + B) mod N, (10.1) kde N je souňčin dvou prvoňčásel (ta jsou utajena) a (N, B) je veňrejnyá kláňč typičkáeho uňzivatele. Bez uájmy na obečnosti lze pňredpoklaádat, ňze B = 0, a tedy e(x) = x • x mod N, d(x) = \fx mod N. (10.2) Tedy uňzivatel A podepáňse zpráavu podpisem S =v/M mod Na; (10.3) pritom zde pouzije sve znalosti faktorizace NA. Prájemce podepsane zprávy (M, vM) musá pouze overit autentičitu zpraávy kontrolou, ňze M = (v^)2 mod NA. (10.4) Je okamzite videt, ze toto schema nená zcela dokonale - ne vsechna prirozená čásla mensá nez NA jsou čtverci modulo NA. Aby to slo napravit, Rabin zavedl následující postup: Chce-li A podepsat zprávu M, pridá k ní binární retezec U dohodnute delky k. Váber U je náhodná. Uzivatel A pak zajistí kompresí nebo jinou vhodnou funkcí c, ze c(MU) < Na. (10.5) 190KAPITOLA 7. ASYMETRICKE ^FROVAGI SYSTEMY NEBOLI SYSTEMY S VEREJNYM KLICEM Funkce c je verejne znama a proto verejne zkontrolovatelna. Uzivatel A nyní pouzije svuj soukromy klíč, aby zjistila, zda toto prirozene číslo c(MU) je čtverec modulo NA. Pokud tomu tak není, vybere opet níhodne jiní binírní retezec delky k a postup opakuje do te doby, nez najde číslo c(MU), které je čtverec modulo NA. Lze dokízat, ze prumerní počet pokusu pro nalezení takovehoto U je maly. Uzivatel A nyní pouzije jako svuj podpis zpravy M dvojici (U, S). Kdokoliv si preje overit, ze A skutečne zpríavu M odeslala, musíí pouze províest • vípočet c(MU) = M1, • kontrolu, ze M1 = S2 mod Na. 11 KOdy opravující chyby jakoZto šyštěm š věřějnym klíčem Edgar Allan Poe, kterí se povazoval za dobrého kryptoanalytika, se jednou vyjadril v novinach, ze je schopen bezprostredne rozlustit kazdí kryptogram (tím mínil monoabecední substituční sifru). G.W. Kulp tuto vízvu prijal a zaslal mu 43-slovní sifrovy text. V dalsím članku Poe dokazal, ze tento sifrogram byl shlukem nahodních charakteru bez jakehokoliv víznamu. V roce 1975 byl Kulpuv kryptogram rozlusten B. J. Win-skelem a M. Lysterem. Ke Kulpove hlavní chybe se navíc pridalo alespon 15 mensích (snad tiskovích) chyb - z toho pak vyplynuly duvody pro obtíznost desifrovaní tohoto kryptogramu. At' je to umyslne nebo nikoliv, zavedení chyn zcela jiste zmate nepratelskeho kryptoanalytika a toto je pak zakladem chytrého navrhu systemu s verejním klíčem od R. J. McEliece z roku 1978. Tento systém pracuje nasledovne: Typicky uzivatel, rekneme A, ma za svuj verejní klíč binírní matici G typu k x n; zasíla-li uzivatel B binarní zpravu M uzivateli A, pouzije nasledující kodovací algoritmus. 1. B rozdelí zprívu do bloku velikosti k, a pokračuje s kazdím blokem zvlíst'. 11. KODY OPRAVUJICI CHYBY JAKOŽTO SYSTEM S VEREJNYM KLKEM 191 2. B zakóduje kazdy blok m pomocí predpisu c = e(m) = mG + z, (11.1) zde z je nahodní vektor chyb delky n a vahy mensí nebo roven t, prirozene císlo bylo t predtím sjednano dopredu. Soukromý klíč uzivatele A je dvojice matic (S, P), kde S je regulírní matice typu k x k a P je nahodna permutacní matice. Platí pak G = SGP, (11.2) kde G je matice linearního kodu typu k x n, kterí je schopen odhalit a opravit az t chyb. Desifrovací proces uzivatele A je nasledující: 1. c = cP_1=(mSGP + z)P-1 = mSG + zP-1. 2. Protoze z je nahodny vektor s víhou mensí nebo rovnu t a kíd generovaní maticí G opraví t chyb, dekoduje pak dekídovací algoritmus c do mS. Pritom r = zP-1 je tzv. chybový vektor. Oznacíme-li H tzv. kontrolní matici splnující G • HT = 0, je obraz chyboveho vektoru r tzv. syndromovy vektor s. 3. Urcíme m pomocí nasobení S-1 zprava. McEliece navrhoval pouzít Goppovy kídy jako zaklad. Jední se o trídu dobrych lineírních kídu s velmi MA efektivním dekoídovacím algoritmem. Jejich parametry jsou tvaru n = 2", k = n — at, d > 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 CIFROVACISYSTEMYNEBOLI SYSTEMYS VEREJNYMKLICEM Kapitola 8 Šifrový standard DES a jeho kolegove 1 Potřeba a historie vzniku DES FI Obrovskí narust počítačove komunikače a nístup elektroničkyčh bankovníčh systemu v sedmdesátých letečh byly jedním z hlavníčh faktoru pro rozhodnutí exekutivy Spojenyčh stítu ámeřičkýčh na zajistení standardu pro bezpečný a spolehliví transfer dat Federální banky a ostatníčh bank. Bylo tedy potřeba zajistitit očhranu dat jak v počítačíčh zpřáčovývánýčh a tamtez uklídaníčh, tak i dát počítači přenýSených. Soutez na tvorbu sifrovačího algoritmu vyhlásilo ministerstvo občhodu Spojenyčh státu ámeřických v roče 1973. Organizoval ji National Bureau of Standards (NBS). Pozádovaním vlastnostem vsak nevyhovel zádní ze záslánýčh algoritmu - zíkladní idea byla, ze sifrovací proces by melo bít mozno provídet na malem čipu. Dusledkem pak by byla masoví víroba techto čipu, jejichz 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 záviset na utajení algoritmu, vhodní pro nejřuznejsí aplikace a ekonomickí při elektronicke realizaci - tj. čip by mel bít levní. V srpnu 1974 byla vízva opakovína. Tentokrát se algoritmus podařilo nalezt. Bylo akceptováno sifrovací schema navrzene firmou IBM. Její 193 l94 KAPITOLA S. ŽIFROVY STANDARD DES A JEHO KOLEGOVE vízkumní tím pod vedením dr. Tuchmana jej zalozil na zdokonalení sifrovacího algoritmu LUCIFER, kterí IBM pouzívala pro sve potreby. Na rozdíl od algoritmu LUCIFER, jez pouzíval klíc o delce 128 bitu, delka klícce navrzena pro NBS byla 64 bitu a z toho bylo 8 bitu odstraneno hned na zacatku sifrovíní. NBS, IBM a NSA (National Security Agency) se dohodly, ze NSA provede ohodnocení bezpecnosti DES (Data Encryption Standars), jak byl pozdeji noví algoritmus nazvan, a IBM umozní jeho bezplatne vyuzívaní na uzemí Spojenych statu americkích. DES byl patentovan 24.2. 1975 a v breznu tehoz roku byl zverejnen pro vseobecne verejne hodnocení. Pres nektere víhrady byl 23.11. 1976 prijat jako federalní standard a jako takoví zverejnen 15.1. 1977. Algoritmus byl urcen pro ochranu ^utajovaních dat v civilním sektoru i vlídních institucí vyjma ozbrojeních slozek, kde nemohl bít pouzívan ani k ochrame neutajovaných dat. Predpokladana doba pouzití byla 10-15 let. Algoritmus mel bít po svem prijetí v roce 1977 kazdích pet let hodnocen a jeho platnost potvrzovana NBS. V roce 1984 zahíjila NSA program Commercial COMSEC Endorsement Program (CCEP), unceny pro zabezpeCovýní ochramy vladních informací, v ramci nehoz melo bít pripraveno i nahrazovíní DES. Byly vyvinuty hardwarove bezpecnostní moduly, provídející sifrove algoritmy navrzene pro tentokrat NSA. Tyto algoritmy byly typu 1 a typu 2. První byl urcen pro utajovane vladní informace a druhy pro neutajovane vladní informace (mel nahradit DES). Pozdeji byla aplikace zarízení s algoritmem typu 2 rozsírena i na soukromyí sektor. Po 1.1. 1988 nemela uz NSA v umyslu doporucovat DES pro vladní pouzití. Bylo vsak zjisteno, ze by to zpusobilo znacne potíze v bankovním sektoru. DES byl v teto dobe uz masove pouzívan v nejruznejsích zarízeních vcetne mezinarodního bankovního spojení. To vedlo ministerstvo obchodu USA ke zmírnení stanoviska NSA. V lednu 1988 NBS znovu potvrdil moznost pouzívat DES v dalsích 5 letech, avsak ne pro federální nefinancní pouzití. Ve federalních nefinancních institucích musel byt DES nahrazovan algoritmy vyvinutyími NSA v ríamci CCEP. Algoritmy jsou utajovíny a nesmí bít exportovany ze Spojeních stítu americkích. Cipy, ktere je realizují, mají ochranní kryt. Vyrobci produktu musí pri jejich vírobe dodrzovat zvlastní postup, stanovení NSA. Tato opatrení na ochranu novych algoritmu pfínasejí do cele koncepce jejich vyuzívaní velke rozpory. Jejich 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 regulovaný 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 formach: 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ístupovýc 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íč o delce 56 bitu (vznikne z osmibajtoveho klíčoveho slova vynecháním jeho paritních bitu). Zpřacovíní bloku M probíhá v 16 krocích. V kazdem z nich je z klícce K vybráno podle určiteho postupu 48 bitu tvořících pracovní klíč Kj. Vlastní blokoví algoritmus při sifrování zpřácovývá blok M tak, ze M je nejprve podroben počáteční permutaci IP, která 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 učasti pracovního klíče Kj vytvořena dvojice (Lj+1, Rj+1), i = 0,1,..., 15. Rj je nejprve řozsířen z 32 bitu na 48 bitu prostřednictvím expanze E tak, ze E (Rj) = E (ri,r2,...,r3i,r32) (2.1) = (r32 ,ri,r2,r3,r4,r5,r4,r5,r6,r7,rs,rg,... ,r28,r29,r3o, r3i, r32, ri), a k vísledku je v modulu 2 tj. bit po bitu přečten klíč Kj. Vístup E(Rj) © Kj je rozdelen do osmi částí po 6 bitech, ktere přochízejí přes substituční boxy Si 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 zadávají tak, ze krajní bity vstupu (1. a 6. bit) vybírají jeden ze čtyř mozních boxu 4x4 bity a vístup techto boxu se uvídí v tabulce. Přitom 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 permutací P (32 na 32 bitu). Vznikle 32-bitove slovo je označovíno f (Rj, Kj), nebot' je funkcí klíče Kj a slova Rj. Poslední operace v i-tíem kroku je Lj+i = Rj Rj+i = Lj © f (Rj, Kj). (2.2) Po probehnutí 16. kroku je provedena zámena Li6 a Ri6 a 64-bitoví blok (Ri6, Li6) je permutován permutací IP-i (permutací inverzní k IP). Vysledek je jiz C = EK(M). 2. POPIS SIFROVACIHO ALGORITMU DES 197 Tvorba pracovních klícu Ki probíhí při 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 pi bitu (posun pi je v krocích 0, 1, 8 a 15 jednobitovíy a ve zbyívajících dvoubitoví) a jejich vísledne 56-bitove zřetezení je podrobeno permutácní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 tvoří pracovní klíc Ki. Klícce Ki lze vytvařet bud' soubezne se zpracovíním otevřeneho textu nebo předem. 198 KAPITOLA S. SCIFROVYI STANDARD DES A JEHO KOLEGOVEI Postup formovaní klícu K je takoví, že v uvedeních 16x48=768 bitech je každí bit klícce K obsažen 12 až 15 a objevuje se na rážních požicích. Tímto je popis sifrovací casti blokoveho algoritmu užavren. Filožofie algoritmu je takova, aby pri desifrovaní nemuselo bít použito žcela jine hardwarove schema. Desifrovaní M = DK(C) probíhí stejním postupem jako sifrovíní! Použe poradí vyberu klícu K je obracene - místo K0, K1, ..., K15 se používí poradí K15, K14, ..., K2, K1, K0. Vytvaríme-li klícce postupne, pak ve ví se uvedenem popisu se místo SHL musí použít SHR a tabulka posunu (0,1, 2, 2, 2, 2, 2, 2,1, 2, 2, 2, 2, 2, 2,1), jinak žustane vse žachovíno. Tento princip žpracovaní (Li,Ri) na se nažýví Feisteluv princip podle dr. Horsta Feistela, kryptologa IBM a vynaležce sifrovacího algoritmu LUCIFER. 2. POPIS SIFROVACIHO ALGORITMU DES 199 Tabulka permutací 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 2OO KAPITOLA S. ŽIFROVY 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 SIFRO V A CIHO 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. SIFROVY 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 počátečná permutace IP je provest rozprostrem vlivu bitu z jednech bajtu otevreneho textu M do ostatnách. Permutace IP-1 je zde proto, aby se v desifrovacám procesu napravil áčinek IP. Kryptograficky je tato permutace neváznamná a v rozborech je zanedbávaná. Skutečne, pri utoku se znalostá otevreneho textu M, tj. pri znalosti odpovídajíčíčh si dvojic M otevreneho textu a C sifroveho textu, si vliv permutace IP na otevreny i sifrová text snadno eliminujeme. Uvazujeme-li IP-1(M) a IP (C), je to totez, jako by schema tyto permutace vubec neobsahovalo. Take záverečná vámena slov L a R je zde jen proto, aby desifrovací proces byl shodny se sifrovacím, tj. pro moznost zahájení rekonstrukce predchozích dvojic (L, R) z následujících. 2. POPIS SIFROVACIHO ALGORITMU DES 203 Zíkladem schematu je transformace f, kterí vytvírí tzv. substitucne-permutacní sít'. V podstate se sklada ze substituce (S-boxy) a permutace P a zíroven zajist'uje vliv klícce na proces zpracovíní otevreneho textu. Klícc je na promenne R nacítan v modulu 2 jako heslo na otevrení text u Vernamovy sifry, permutace P nam pripomína historicke transpozicní systemy a S-boxy substitucní systemy. DES je pak jejich soucinova sifra. DES jako celek je substitucní systemem, pracujícím se slovy delky 64 bitu. Je to tedy kodova kniha, ktera ma 264 kídovích vírazu, nebot' to je pocet vsech mozních otevreních textu. Kodove vírazy se nevyhledavají, ale na zaklade znalosti klícce se vypocítavají. Ten, kdo nezna klícc, by mel byt postaven pred neresitelnou uílohu dekýodovýanýí. Cílem algoritmu je, aby v uvedeníe kíodovíe knize neexistovala jinía skrytaí souvislost mezi klíccem K, otevrením textem M a sifrovím textem C, kterí by byla vyuzitelna k lustení. Jednou z vlastností DESu, ktera se rovnez statisticky testovala, je vliv zmeny jednoho bitu v otevrenem textu M (resp. v klíci K), aby pravdepodobnost zmeny kazdeho bitu sifroveho textu C byla asi 50%. Tímto bude mj. zaruceno, ze sifrove vírazy odpovídající dvema mílo se lisícím otevrenym textu budou naprosto odlisne. Podobne to je i s pozadavkem vlivu klícce na sifrovy text. Dale se pozadovalo, aby neexistovala zadní korelace mezi otevrením textem M a sifrovím textem C a mezi sifrovyím textem C a klíícem K. Tyto vlastnosti byly statisticky potvrzeny a testovaíny. Víyberovíe statistickíe testy pak mohou potvrdit jen nekteríe vlastnosti, ale nemohou vyloucit nekonecne mnoho dalsíích. To se tíykía naprííklad vlastnosti komplementaírnosti, kterou budeme diskutovat daíle. Jak na ni maíme prijíít statistickíymi testy, kdyz nevíme, ze vubec existuje? Dalsími pozadovanymi vlastnostmi jsou konfíze a difíze. Jedna se o to, aby mel kazdí bit klíce K a otevreneho textu M vliv na kazdy bit sifroveho textu C a aby tento vliv byl velmi komplikovany. Na slozitost zde pak mají nejvetsí vliv S-boxy. Kazdí vístupní bit S-boxu je nelinearní funkcí vsech vstupních bitu (pri vyjídrení operacemi 0 a A). V prípade, ze by S-boxy realizovaly lineírní funkci, cele schema by realizovalo pouze lineírní funkci. Potom by ovsem vsech 64 bitu sifroveho textu C bylo jen ruznymi lineírními kombinacemi bitu otevreneho textu M a klíce K. Ale takoveto schema bychom mohli okamzite rozlustit resením soustavy linearních rovnic. Nelinearním vlastnostem se pri studiu DES venovala velka pozornost, nebot' zajist'ují pozadovanou konfuzi. Bohuzel, kriteria navrhu S-boxu zustívají doposud tajna a 204 KAPITOLA S. CIFROVY STANDARD DES A JEHO KOLEGOVE pritom praíve zde bylo nalezeno mnoho slabin. RěZimy činnosti DES U DES byly stanoveny 4 zíkladní mody činnosti, které byly odvozeny od ruznych potreb. Zakladem je vlastní blokovy algoritmus, tj. zobrazení EK : X — X, kde X = {0,2,..^ 64} je mnozina vsech 64-bitovích bloku. Tento algoritmus je zíroven prvním modem. 1. ECB - Elektronička kídoví kniha, píseme C = EK(M), kde M je otevrení text a C je sifroví text. Jední se skutečne o kodovou knihu, nebot' pri opakovaních blocích otevreneho textu M jsou sifrove zpravy C stejne. Proto by bylo mozne pri sifrovaní zprív tímto modem z operativních informací domíslet číst zasifrovaneho obsahu bez nutnosti jejich lustení. Formalizovane časti zprív by bylo mozne opakovat v zasifrovanem tvaru (platební príkazy, standardní hlasení). Proto se tento mod nepouzíva k sifrovaní zprav, ale jen k sifrovaní klíčču. 2. CBC - Zretezení sifroveho textu, symbolicky zapsíno jako C„ = Ek(Mn 0 Cn_1), (2.3) kde (Mn)n je system bloku otevreneho textu. Tento míd vyuzíva vístup z jednoho kroku sifrovíní k modeifikaci noveho vstupu, takze kazdí blok Cn sifroveho textu je zívisly nejen na príve sifrovanem bloku Mn otevreneho textu, ale i na vsech predchozích blocích 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—bitovych znaku otevreneho textu. Je to mod vhodní tam, kde se data zpracovívají po znacích nebo po častech mensích nez 64 bitu. Zpetna vazba je vedena ze sifroveho textu, ale jen v delce k 3. KRITIKA SIFROVEHO STANDARDU 205 bitu, pricemz u výstupu z blokoveho algoritmu je vyuzívano take jen k bitu. Je to system podobný proudovíe SsifSre, avSsak zachovaívající vlastnost zíavislosti Ssifrovíeho textu na pSredchozím otevSreníem textu a Ssifrovíem textu. 4. OFB - Zpetna vazba z výstupu, symbolicky zapsano jako Hn = Ek(Jn), Cn = M,n 0 Hn, (2.5) kde Jn je vstupní registr posunutý o k bitu doleva a doplneny zprava k bity Hn-1, Mn je proud k-bitovych znaku otevreneho textu a Hn je vytvorený proud hesla. Tento mád pracuje podobne jako Vernamova Ssifra, pouze zdroj hesla není níahodnyí. Míod byl navrSzen pro potSreby, kdy je neSzíadoucí, aby se chyby vznikle na komunikacním kanálu rozsirovaly pusobením sifroveho algoritmu do otevreneho textu. Jde napSríklad o pSrenosy dat s vysokou rychlostí a redundancí (koídovanaí SreSc, videosigníal, satelitní spoje aj.). Poznamenejme, ze u modu CBC, CBF a OFB je nutne vstupní registr nejprve na zacátku naplnit nejakou hodnotou. Ta se nazyívaí inicialižačcníí vektor a odesílía se vSetSsinou na zaScaítku zpríavy. 3 Kritika sifroveho standardů Prílis kratký klíC Prvními velkými kritiky navrhu DES se stali Diffie a Hellman ze Stanfordske univerzity. Ve svem dopise NBS nejvíce kritizovali maly objem klícce - 56 bitu. Poukazovali na to, ze nehlede na jiny mozný utok k rozbití DES postací pouhe zkousení mozných klícu. To muze provadet kdokoli, kdykoli a se zaruceným uspechem. Dokazovali, ze to bylo mozne i s tehdejsí technologií (1975). Uvazovali o sestrojení speciálního stroje, který by pro danou dvojici otevSrenyí text M a Ssifrovyí klíSc C hledal pouSzityí klíSc vyzkouSsením vSsech jeho moSzností. 206 KAPITOLA S. ŘIFROVY 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 cenu 10 000 $. Speciílní stroj by potřeboval vyzkouset 256 tj. cca. 1017 klícu zajeden den, coz je přiblizne 1012 klícu za sekundu. Při cene 10 $ za cip by tento stroj stíl 20 000 000 $ (10 000 000 $ na cipy a zbytek na ostatníí níaklady). Pri uíplníem odepsíaníí stroje za 5 let by tak denníí provoz stíal 10 000 $. Ve skutecnosti se s padesátipřocentní pravdepodobností narazí na spravny klíc uz po vyzkousení poloviny klícu. To by hledaní klícce dvakrat zrychlilo a tím i o polovinu snízilo naklady. Díle argumentovali tím, ze behem 5 let se cena technologie snízí v prumeru 10-krat, a proto by za 10 let tento stroj stal pouze 200 000 $. Přitom si v odhadu nedelali narok na přesnost v rozmezí jednoho řadu! Doporučovali rozsířit klícc na 128 nebo 256 bitu nebo sifrovat víckrat za sebou s pouzitím nezavislích klícu, tedy sifroví text C = (Ek2 (...£*„ (M)...)). Pracovní konference NBS NBS reagoval na jejich argumenty svolaním pracovní konference, ktera se konala 30.-31. srpna 1976 a byla zameřena na to, zda předpovedi a tvrzení Diffieho a Hellmana jsou realisticke. Zíver z konference byl, ze tehdejsí technologií by jejich stroj nebylo mozne nebylo mozne sestrojit, a pokud se ho sestrojit podaří, nebude to dříve nez po roce 1990 (a to asi za 72 000 000 $). Proti zvetsení klícce bylo argumentovano tím, ze by to vedlo k prodrazení cipu, horsím podmínkam vívozu a ze to není nezbytne ani pro zamíslene aplikace, ani pro uvazovanou zivotnost schematu (10-15 let). Diffie a Hellman na to odpovedeli clankem Exhaustive Cryptoanalysis of the NBS Dáta Encryption Standard (1977), v nemz vycerpavajícím zpusobem a podlozeními argumenty dokazovali, ze jejich odhady jsou spravne (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 cenu 200 000 000 $, tedy v ríamci jejich tolerance. 3. KRITIKA SIFROVEHO STANDARDU 207 Komplěměntarnost a pracovní bloky Protože Diffie, Hellman a dalsích pet jejich kolegu nesouhlasili s tím, že IBM a NSA utajují vísledky sveho žkoumíní bežpecnosti DES a navrhova kriteria, žorganižovali behem srpna 1976 vlastní krítke studiem DES Results of an initial attempt to cryptoanalyze the NBS Data Encryption Standard (1976). Z neho vyplynuly dalsí žavažne slabosti DES: vlastnost komplementírnosti, urcite pravidelnosti v S-boxech a jejich dostatecna nelinearita. Poukažovali na to, že verejní standard by mel mít i verejna navrhova kriteria. V opacnem prípade to budí neduveru. Tem, kdo navrhova kriteria žnají, umožnuje využít jejich slabosti k lustení, a jsou tedy proti ostatním žvíhodneni. Mohlo by jít bud' o osoby, ktere se k temto tajním informacím dostanou neoprávnene (napr. ciží tajne služby), nebo o samotne ochrance (IBM, NSA). To by u verejneho standardu nemelo bít. Ucastníci studia se domnívali, že NSA si ve skutecnosti nepreje silny standard, aby jej mohla snadneji lustit. Nesouhlasili s tím, že by DES mel bít odolní jen proti lustení se znalostí otevreneho textu, což NBS do požadavku dal, ale i proti lustení s mozností volby otevreneho textu, což puvodne požadovíno nebylo. Drůha konfěrěncě NBS Nato NBS žorganižoval pracovní setkaní matematiku v žarí 1976 k analíže kvality DES a možnosti, že by mohl obsahovat trojskíeho konre (Report ofthe workshop on cryptography on support ofcomputer security). Prestože jiní ícastníci na ružne nedostatky take upožornovali, fakticky nabyla predložena žídna konkretní metoda na jejich príme využití. Predstavitel IBM na konferenci k problemu trojskeho kone dokonce prohlasil: Můsítě nam důvěřovat, my vsichni jsmě dobrí skaůti. Take NBS a NSA prohlísily, že nežnají žadne metody, jak využít objevene kvažilinearity. Bežprostredne po skoncení konferencí se NBS rožhodl ponechat DES beže žmen. Toto rožhodnutí žpusobil žejmena tlak prumyslu, kterí už potreboval konecní verdikt, aby mohl vyríbet cipy. Zmeny v DES by tento proces nejmene o rok oddílily. Afera kolem utajovaní vsak žanechala na NSA nesmažatelní stín podežrení. Zvlaste když vysetrovací komise Senatu USA potvrdila, že NSA presvedcila IBM o vhodnosti redukce delky klícce. Puvodne totiž IBM pro sve potreby používala 128-bitoví klíc. 208 KAPITOLA 8. SIFROVY STANDARD DES A JEHO KOLEGOVE V roce 1978 prohlaísil Davis na podporu DES naísledující: Kazdí, kdo si zakoupí kryptograficke zarízení pracující na zíklade DES, múze bít ujisten o speci-ficke uurovni bezpecnosti dat: totiz je potreba pouzít 255 pokusu a metodu proverení vsech mozností, aby bylo morzno zíískat klíírc pro pourzitíy rsifrovacíí algoritmus. 3. KRITIKA SIFROVEHO STANDARDU 209 Komplementáarnost Objevena vlastnost komplementírnosti spocíví v tom, ze ze vztahu C = Ek (M) plyne non C — Enon k (non M), (3.1) kde non oznacuje negaci bit po bitu. To je pravidelnost, ktera by se v takovemto prípade rozhodne nemela objevit. Autori rozboru její odhalení povazovali diplomaticky receno za velmi znepokojující. Tvurcum schematu tato vlastnost pravdepodobne unikla. Je umoznena tím, ze negace klíce i vstupu se pri jejich souctu 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' = (L0,R0) klíccem K' = non K obdrzíme postupne: M' = non M, platí-li, ze (Li,Ri) = non (Li,Ri), je i (L^R^) = non (Li+1,R+1Í), protoze (Li+1, Ri+1) = (Ri, Li © f (Ri, Kí)) = (non Ri, (non U) © f (non R, non K)) = (non Ri, (non Li) © f (Ri, Ki)) = (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 dí pak vyuzít i k lustení v prípade, ze hledíme klíc K a míme k dispozici dvojice (M, C1) a (non M, C2), ktere vznikly pri sifrovíní tímto neznamím klícem. Proved'me zasifrovíní EK(M). Není-li tento víraz roven C1, vylucujeme klíc K. Kdyby byl pri sifrovíní non M pouzít klíc non K, obdrzeli bychom C2 = Enon k (non M) = non Ek (M). (3.3) Nejsou-li si oba krajní vyrazy, ktere míme k dispozici, rovny, muzeme vyloucit i klícc non K. Tím jsme nahradili jedno sifrovaní (klícem non K) za pohe 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. sIFROVY STANDARD DES A JEHO KOLEGOVE Vlastnost komplementarity by navíc mohla ve spatne návřZených protokolech zpusobit i nezádoucí odhalení čhřánenýčh informací. Při vsech mozních aplikacích na ni musí byt dáván pozor. Je smutne, ze mnozí kryptologove (zejmena z NBS) tuto vlastnost nepovazují za podstatnou. Ostatne v oficiílním popisu DES vypřacovanem NBS se take tvrdí ze klíč je 64-bitoví. Rozhodne nejde o chybu, ale o vytvoření dojmu, ze tomu tak je. S dobrámi skauty tedy není asi vsechno v pořádku. Nevhodný návrh S-boxU Krome tajních návrhovych kriterií, která mohla obsahovat dalsí skryte vady, v studiu bylo poukázíno na velkou korelovanost a nedostatečnou nelinearitu vístupních bitu S-boxu. Například box S4 mí petasedmdesáti-procentní nadbytečnost. 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íccu 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í lz 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. SIFROVY STANDARD DES A JEHO KOLEGOVE sifrováná, pamet' m=1 slovo) nebo tám, ze si predem pripraváme tabulku vsech moznách dvojic (kláč, sifrová text) (čas t=1, pamet' m=256 slov) a porovnáním sifroveho textu. V obou prípadech je celková spotreba časopaměti t-m=256 - spotrebu času lze prelát do pameti a naopak. Hellman v roce 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ám'. Pri optimalizaci pozadavku na čas, pamet' a cenu dospel k návrhu, která zahrnoval 10 000 DES čipu, pamet' 1000 GB a prípravne vypočty tabulek trvající 1 az 2 roky. To vse v cene asi 3,6 milionu $. S temito prostredky byl schopen určit az 1000 kláču denne (v dusledku paralelismu) s prumernym čekánám na resem 1 den. Pri plne amortizaci zarázem do 5 let by cena za vylustená jednoho klíče byla 1-100 $. Nevyhoda Hellmanova utoku spočívá v tom, ze vse se počítá pro konkrétní otevrená text. Pro jiná otevrená text musáme vsechny predbezne vypočty prcvést znovu. Další zajímavé vlastnosti DES Pri studiu DES do r. 1990 bylo popsáno nekolik dalsách vlastnosti' DES. Zminme se o odhalená kratsá periody v jednom z modu činnosti DES. Pri vazbe k = 64 u OFB je prumerná delka cyklu produkovaneho hesla priblizne 263 bloku, avsak pri jine delce k je pouze kolem 231 bloku! Toto mnozstvá hesla pri rychlosti sifrováná 216 bitu za sekundu (napr. pro digitalizovanou reč) je vyčerpáno asi za 18 hodin! Pote by doslo k dvojímu pouzití hesla, coz je pro lustitele známá a jednoduchá uloha. Musí bát proto pouzívaná pouze plná vazba k = 64, pri které je prumerná delka periody hesla dostatečná. Mnohonásobné pouZití DES K odstránená nedostatku maleho objemu kláče bylo doporučováno nekolikanásobne sifrováná DES. Pri dvojná-sobnem sifrováná algoritmem DES s pouzitám dvou ruznách klácču, tj. C = Ek2 (M)) (3.5) by klíč vzrostl na 112 bitu, coz se zdá bát dostatečne. Avsak byla nalezena technika, která by de facto redukovala kláč na pouhych 57 bitu. Spočává v átoku se znalostá otevreneho textu. Známá otevrená text je 3. KRITIKA SIFROVEHO STANDARDU 213 zasifrován vsemi moznými klíci (vzniká mnozina EKl (M) o 256 prvcích) a znamý sifrový text je desifrován vsemi moznymi klíci (vzniká mnozina DK2(C) o 256 prvcích). Prunik obou vzniklých mnozin obsahuje prave resení. Krome toho vznika asi 248 falesných páru klítcu. Ty lze snadno vyloucit kontrolním zasifrovaním na dalsím znamem páru (M, C). Tato metoda se nazýva meet in the middle. IBM doporucení Diffieho a Hellmana pSrijala, vylepSsila a k Ssifrovíaní vyíznamnyích informací (jako jsou napSríklad klíSce niSzSsích uírovní) pouzíva dvou klícu nasledným zpusobem C = Eki (Dk2 (Eki (M))). (3.6) Tato metoda trojníasobníeho Ssifrovíaní (s dvojníasobnyím klíScem) mía vyíhodu v kompatibilitSe se systíemy s jedním klícem (puvodního sifrovaní se dosahne volbou K1 = K2). DES-X Jedním z dalsích pomerne jednoduchých navrhu na zabezpecení DESu proti átoku hrubou silou je DES-X vyvinutyí Rivestem. Ten pouSzívía 184-bitovíy klíSc, kteríy se sklíadaí z jednoho 56-bitovíeho DES klíSce K a dva 64-bitove klícu K1 a K2. Šifrovaní se provede nejprve pouhým XORovaním K1 se zpravou, pak sifrováním s DESem pomocí klíSce K a koneScnSe XORovíaním s K2, tedy kryptogram pro 64-bitovyí blok zpraívy M je C = K20DESk(M0K1), kde DESk(—) je DES sifrování s klícem K. Tento system je srovnatelny s DESem z hlediska uíScinnosti a je takíe zpSetnSe kompatibilníí s DES, prostSe pSredpoklíadejme, Sze K1 a K2 jsou nulovíe vektory. Bylo prokazano, ze DES-X je v podstate imunní vuci hrubou silou klícových vyhledavání. Ackoli DES-X neposkytuje zvýsenou bezpecnost 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ýí vaýznyý analytickyý ůýtok Obríanci DES, kteSrí argumentovali tím, Sze doposud nebyl pSredloSzen Szíadnyí víaSznSejSsí uítok proti DES (a pSrehlíSzeli tak víySse uvedeníe skuteScnosti), mají od 11.8. 1990 ztíSzenou argumentaci. Tento den pSredloSzili 214 KAPITOLA 8. SIFROVY STANDARD DES A JEHO KOLEGOVE Eli Biham a Adi Shamir z Weizmanova institutu v Izraeli metodu lustení, nazývanou diferenciýlní krypto-analýza (DK). Je analýtickým utokem proti DES. Snadno s ní rozbili osmikrokovou DES, japonskou blokovou sifru FEAL a predchudce DES LUCIFERa. U patnactikrokove verze DES s ní dosahli lepsích vysledku, nez je zkousení vsech mozných klícu. Po dvou letech pak metodu zdokonalili i pro plne sestnactikrokovou verzi DES a tím vyvratili tvrzení Davise. Podstata diferencialní kryptografie spocíva ve vyuzití nevhodnych S-boxu a slabeho zpracovaní klícce. Vliv klícce Ki se da totiz urcitým zpusobem vyblokovat. Uvazujme v jednom kroku DES při výpoctu f (R, K) zpracovýní dvou vstupu: R1 a R2. První uvaha spocívý v tom, ze diference R1 a R2 (=R1 © R2) zustíva nezmenena, kdyz R1 a R2 projdou rozsířením (expanzí) E a operací © s klíccem K. Vliv klíce se v teto diferenci eliminuje: (E(R1) © K) © (E(R2) © K) = E(R1) © E(R2) = E(R1 © R2)! (3.7) Druha myslenka spocíva v tom, jak obejít nelinearní S-boxy. Pro nektere diference vstupu, jsou mnohe diference výstupu z S-boxu mílo pravdepodobne á jine velmi pravdepodobne. Výstupní diference se ovsem v dalsím kroku schematu stavají vstupními diferencemi! Permutace P ným v tom vubec nevadí. Tímto postupným zřetezením vstupne-výstupních diferencí dostavíme nakonec pravdepodobnostní vztah mezi diferencemi otevřeneho textu a diferencemi sifroveho textu. Nalezneme-li píry (M, C), kde M je otevřený text, C je sifrový text, ktere vyhovují nasemu modelu, mame o prubehu sifrovaní uz dost informací. Urcení klícu K16 az K1 je pak jen slozitou technickou zalezitostí. S kazdým krokem se ovsem příslusne pravdepodobnosti nasobí, takze cím více kroku mý schema, tím je ýcinnost metody horsí. Například na rozbití osmikrokove verze DES stacily pouze 2 minuty, na sestnactikrokovou verzi je to jiz 237 operací. Dosud je take k tomu potřeba velke mnozství odpovídajících si dvojic (M, C). Na druhe strane se metoda neustale zdokonaluje, takze nelze odhadnout, kde se zastaví její ýcinnost. Na obranu proti ní v dnesní podobe zatím postacuje trojnasobne sifrovaní. Avsak duvera v DES jako celek dostala vaznou trhlinu. Zaplata v podobe mnohonasobneho sifrovaní muze brzy povolit. Krome toho existují oblasti, u nichz přepracovaní z jednoducheho sifrovaní vyjde stejne jako zavedení jineho kryptosystemu (platební karta, klícova hospodařství, ...). 3. KRITIKA SSIFROVEEHO STANDARDU 215 DalŠsíí analytickíě ůítoky Ve dnech 23.-27.kvetna 1993 se v Lofthusu, male norske vesnicce, konala dalsí že serie konferencí Mežinarodní asociace pro kryptologicky vížkum - EUROCRYPT'93. K DES se vžtahovalo nekolik príspevku. Uved'me dva nejduležitejsí. První ž príspevku prednesl Eli Biham, jeden že žnímích ižraelskych rozbíjecu DES. Svuj príspevek s nažvem Nove typy kryptoanalytickych utoku na bízi príbuzných klícu uvedl predvedením cersveho vítisku knihy o diferenciílní kryptoanalíže DES; napsal ji spolecne s Adi Shamirem. Biham si vsiml, že nektere rodiny kryptoschemat využívají pomerne jednoduche tvorby rundovskích klícu (u DES viž Kj), címž meži nimi vžnikají žrejme vžtahy, a ty pak využil ke dvema ítokum. Prvním utokem s mozností volby otevreneho textu dosahl novou redukci složitosti pri lustení pomerne siroke trídy kryptoschemat a predvedl rychlejsí variantu tohoto ítoku s využitím vlastnosti komplěměntúrnosti. Druhí utok je noví a autor ho pojmenoval ítok s mozností volby vztahu, v klíci s nízkou slozitostí. Pripomenme rožlisení typu utoku na sifrovací system • Lustení použe že sifroveho textu. Kryptoanalytik ma k dispožici libovolne množství kryptogramu, neví ovsem, jakí otevrení text byl žasifrovan. • Lustení pri žnalosti otevreneho a sifroveho textu. Kryptoanalytik mí k dispožici libovolne množství dvojic otevreníeho textu a jemu prííslusníeho kryptogramu. • Lustení s možností volby. Kryptoanalytik mm možnost vnutit sifrovacímu systemu svuj otevreny text a obdržet od nej odpovídající kryptogram. Jaky ítok kryptoanalytik žvolí, žaleží vždy na konkretní ulože, pred kterou je postaven. V tomto typu utoku bylo využito toho, že urcite jednoduche vžtahy meži klíci mají ža nasledek urcite jednoduche vžtahy meži otevreními a sifrovymi texty. Bihamovy utoky jsou aplikovatelne na rodinu schemat LOKI a LUCIFERA. Mohly by byt aplikovatelne i na DES, kdyby posuny registru C a D v algoritmu prípravy klícu Kj byly stejne .... Jak krehkí je bežpecnost DES! Ukažuje se, že nově vyslědky útoků nepadají ž nebe, ale jsoů poůzě 216 KAPITOLA S. SCIFROVYI STANDARD DES A JEHO KOLEGOVEI výsledkem nového soustředěného úsilí kryptoanalytiků. Bihamův útok je totiž zlepšením, rozšířením a zobecněním Knůdšenova útoků na aůštralšký algoritmus LOKI91 z roků 1992, ale vznikl nezavišle na nem. Drůhý 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 ůtokem se znalostí otevřeného textu. Její podštata špoCívá v objevu lineárních vztahú v křýptosýstému DES (s využitelnou pravděpodobností). To še mů podarilo díky slabým nelineařitam S-boxů. Našledůjící vyšledky kryptoanalízy byly zíškany na pracovní štanici Hewlett-Packard HP 9750 (PA-RISC/66 MHz) š programy vytvorenými v jazyků C. 1. Víšledky experimentů pri ůtoků še znaloští otevreneho textů: • ošmikrokoví DES je rozlůštitelna š 221 otevreními texty za 40 šekůnd, • dvanactikrokova DES je rozlůštitelní š 233 otevreními texty za 50 hodin, • šeštnactikrokova DES je rozlůštitelna š 247 znamími otevrenymi texty rychleji, nez je vycepavající hledaní 56-bitoveho klícce. V nekteřých případech (není-li otevřený text nahodný) lze klíc lustit přímo ze sifřoveho textu. To je novinka, ktera prímo ohromůje. Pritom Matšůiho metoda lůštení je myšlenkovite prímocara. 2. Zde jšoů víšledky experimentů pro lůštení poůze ze šifroveho textů: • je-li otevrení text tvoren anglickími texty ve znacích ASCII, ošmikrokoví DES je rozlůštitelna š 229 šifrovími texty. • jšoů-li otevrene texty nahodne znaky ASCII, je potreba 237 šifrovích textů, • jšoů-li otevreníe texty tvoreny zcela níahodnyími znaky, exištůjíí šitůace, kdy je Matšůiho metoda rychlejšíí nez vyzkoůšeníí všech hodnot klííce. 3. KRITIKA ŠIFROVEHO STANDARDU 217 Z príspevku je zrejme, ze poslední slovo ve vyuzití teto myslenky jeste nepadlo. Dava zcela konkretní metodu pro lustení algoritmu DES, ale ma zejmena víznam vedecko-metodologicky. Príspevek obsahuje mnoho novích myslenek, ktere budou studovíny a pouzity jak pro kryptoanalízu, tak pro tvorbu novích kryp-toschemat. Je temer neuveritelne, ze cely utok je zalozen na tom, ze S-box S5 dava s velkou pravdepodobností linearní vztah mezi některými vstupy a některými výstupy. Je to dalsí utok se znalostí otevreneho textu a první utok se znalostí sifroveho textu na DES. Puvodní 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 mozno vyrobit dríve nez v roce 1990. Podívejme se na nasledující tabulku Rok ohlášení Forma Počet zkoušek DES klíčů/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 prameni lustit jeden klícc za den, potrebujeme 255/(86400 • 224) = 24855 cipu. Za ne zaplatíme 24855 • 300 = 7 456 500 $. Uvazujeme-li o stejne cene za beznou technologii v danem roce, zaplatíme za totez v roce 1995 pouze 1 864 125 $ a v roce 1999 jen 466 031 $. Cena za jeden vylustená klíc by tak byla v roce 1992 218 KAPITOLA S. sIFROVY STANDARD DES A JEHO KOLEGOVE asi 4000 $, v roce 1995 potom jen 1000 $ a v roce 1999 pouze 250 $. To uz je báječná investice pro vysoce kvalifikovane zlodeje!!! Uvedomme si, ze za 5 let projdou pod ochranou DES v severoamerickych bankách finanční transakce v hodnote 1826 • 400 • 109 « 700 000 000 000 000 $.. V tomto svetle vypadí argumentace lidí od NBS, ze nejutajovanšjsí veci mohou bát vyzrazeny za mnohem mene neZ desítky milionu dolaru, nutnách k rozbití DES ... jako omezená a íčelová. Stejne učelove je i chování nekterych bank, ktere proste uvedenou situaci neberou na vedomí (pokud o ní vubec vedí). Klasicke argumenty jsou: V praxi jsou tyto ceny za hardware dostatecne odstrašující, další vydaje jsou nutne na zaplacení expertu - kryptoanalytiků,, íroven znalostí o bankovních systémech je nízkí, hlavní hrozba je spíše uvnitšr banky nešz 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 neznámy poberta odeslal aktiva banky nekam na druhí konec sveta? Tvářit se, ze hrozba neexistuje, je pstrosí politika. A tu nelze delat v oblastech tykajících se bezpečnosti. Rozbití DES je rok od roku atraktivnejsí a hrozba se stáví hrozivejsí. "Útočníkem nemusí bít obycejnízlodeji, ale třeba nekterá z tajních sluzeb či mafií. Dnes by Hellmanuv čásopámeťový utok mohl byt proveden s 1024 DES čipy, 32 GB pameti a pár mesíci předbeZnýčh vípočtu. To vse v cene do 3,6 miliínu $ a s dobou čekání na řesení jeden den. I to je dost neprííjemníe. Softwarová hrozba Softwarovy utok je snadno a vsem dostupní. Softwaroví verze DES bezí na pracovních stanicích dostatečne rychle, aby hrave rozlustila nekvalitní hesla (zasifrovaná v DES). Ukazuje se, ze na novejsích počítačích muze software nahradit pramenie rychle čipy DES. Současní experiment vyuzívající nečinnost v síti 40 pracovních stanic dosíhl 234 zkousek klíču DES behem jednoho dne. Uvazujeme-li, ze heslo obsahuje pouze malí písmena, je to 268 mozností. V danem experimentu by nám k íspechu stačilo zkouset klíč po víkendech necelú mesíc. 4. POUZIT NP-TEZKYCH PROBLEMU V SIFRO V A CICH SYSTEMECH 219 PSredstavííme-li si síít' o 512 nejmodernSejSsíích pracovníích stanicíích, kteríe pracujíí po dobu jednoho mSesííce v mimopracovníí dobSe, pak jsou tyto stanice schopny províest 512(poc.) • (22 • 15 + 8 • 24)(hod.) • 3600(sec.) • 32000(klícu/s) « 245 zkousek klícu. Pravyí klíSc bude tedy za tuto dobu nalezen s pravdSepodobností 1:2000, tedy vSetSsí, neSz je pro Scinitele od-povSedníe za bezpeScnost zdríavo. Zýaver Velmi brzy budeme postaveni pSred kolaps dneSsní bezpeScnostní technologie postaveníe na bíazi DES. Reíalníe 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í kryptoanalíyzy a lineíarní kryptoanalytickíe metody pro DES se bude zdokonalovat. MoSznosti softwarovíe hrozby porostou s rozSsiSrovíaním poScítaScovyích sítí. To vSse si vynutí níahradu DES. Bude to velmi drahyí a níaroScnyí proces. Do tíe doby tam, kde je to moSzníe, bude nutníe jednoduchíe Ssifrovaí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. Jedinyími moSznostmi jak nahradit DES jsou algoritmus RSA a diskríetníí mocnSeníí. RozhodnSe bychom se z vyívoje DES mSeli pouScit. 4 Poůzití NP-tezkych problemů v sifrovacích systemech V souScasníe dobSe neexistuje rychlyí (tj. pracujíícíí v polynomiíalníí dobSe) algoritmus pro Szíadnyí NP-tSeSzkyí problíem, a pokud NP=P, takovyí algoritmus neexistuje. Je tedy pSrirozenyí naípad zaloSzit kryptosystíem 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 nejaká libovolná pevne zvolená nelineárná transformace a počátáme modulo 2. Záverečny kryptogram C je určen vztahem C = e(M, K) = (Md_1,Md). (4.2) Zprávu M lze záskat z kryptogramu C opačnám postupem - vsechno, co musá prájemce zprávy provest, je obrácená poradá 4.1. Tedy Mi_2 = Mi + f (ki_i,Mi_1), (4.3) d > i > 2, az dospejeme k puvodná zpráve M = (M0, M1). Za predpokladu, ze prájemce zná tvar funkce f a hodnoty sifrovacách kláču, je desifrováná kryptogramu práve tak tezke jako jeho zasifrování. Poznamenejme, ze díky 4.3 funkce f nemusí bát invertibilní. V typicke situaci, Mr. X muze znát tvar funkce f, ale nesmá znát kláče. Zda je pak schopen záskat kláče pomocá lustená s pomocá volby, závisá na tvaru f. Je-li f lineárná transformace, je určená kláče vápočetne snadne. Avsak, v prápade, ze f je nelineárná transformace, napr. f (a^ ... yl,... ,yra) = ... ,pra), kde kazde pí je polynom v promennách ... , xn; y1,... , pak určená kláče ze znalosti M a C se redukuje na problem vyresem algebraickách rovnic pro kláčove promenne. Jak jsme videli, to je NP-tezky problem. Dosáhli jsme tedy naseho cále: nalezená kryptosystemu, ktery má lehká proces sifrováná a desifrováná, ale která zároveň vynucuje po Mr. X, aby pri hledaná kláče pomocá lustená s pomocá volby resil NP-tezký problem. Za predpokladu, ze NP-tezke problemy jsou nezvládnutelne, je bezpečnost systemu zajistena. Je zde vsak následující problem. Klasická teorie slozitosti se temer uplne zabává s nejhorsím moznám chováním. Ačkoliv tedy určení klíče je tezká problem, nemáme jistotu, ze neexistuje velká počet snadných vstupu. 5 GOST aneb GOsudarstvénnyj STandart IŠifrovacá algoritmus GOST 222 KAPITOLA 8. SIFROVY STANDARD DES A JEHO KOLEGOVE • vznikl roku 1989, • je první a zatím poslední sovetska verejna ssifra, • vladní standard pro kryptografickou ochranu systeirm zpracovíní dat, • urcen pro SW i HW implementaci, • neklade zídne omezení na stupen utajení chraneních informací. Klíce GOST • GOST je klasicka blokoví symetrickí sifra s tajním klícem a delkou bloku 64 bitu (na první pohled velmi podobnía DES), • ma 256 bitovy klíc W (DES mí pouze 56b), • ma 8 substitucních tabulek, kazda o 64 bitech (vstup 4b, vístup 4b). Dohromady tvorí tzv. substitucní blok K, kterí je soucístí tajneho klícce. Tuto cast klícce lze povazovat za znamou, pokud je konstantní ve vetsí síti (bankovnictví). Na 8 substitucních funkcí j — K] nejsou ve standardu kladeny zadne pozadavky; vhodne jsou permutace císel 0-15. Singularity: K] = const.,K] = j. Prestoze existují tyto singularity, nelze blok K povazovat za odepsaní a klíc zuzovat pouze na W. Princip šifrování GOST (v základním rezimu ECB) • v podstate prevod jednoho bloku otevreneho textu (OT) na odpovídající blok sifroveho textu (ST), • klíc W rozdelen do osmi (32 bitovích) slov X[0] az X[7] • tato jsou rozvinuta na dalSsí, tzv. 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ícu 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[1], in[0]) rozdelen na slova N1 = in[0], N2 = in[1] • N1 a N2 jsou ve 32 rundách promíchána s rundovními klíci Feistelovým principem následovne: - for(i = 0; i < 32; i + +) {tmp = N1; N = F(N1 + X[i])^; N2 = tmp} • nakonec probSehne zíamSena slov N1 a N2, tj. vyísledníy Ssifrovyí text je: - ST = (out[1],out[0]) = (N1,N2) • Zbývá dodefinovat funkci F: její 32 bitový vstup je rozdelen na 8 ctyrbitových slov a kazde z nich projde odpovídající substitucní tabulkou K [i]. Výsledek (8x4 bity) spojený do 32 bitoveho slova se pote cyklicky rotuje doleva o 11 bitu. • Desifrovaní: stejný postup, ale rundovní klícce se pouzijí v opacnem poradí (díky Feistelovu principu). Kvalita sifrovaní • kvalitu zajiSst'ují o dostatecna delka klícce o dve nelinearní operace — scítaní v modulu 232 a substitucní boxy K [i] • funkce substitucní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í rundSe ovlivnSují o 4 vyístupní bity více. 224 KAPITOLA S. ŘIFROVY STANDARD DES A JEHO KOLEGOVE • dalsí (dopředný) vliv ma scítýní mezivýsledku (N1,N2) s X [i]. Teoreticky tedy muze díky aritme-tickemu přenosu od nejnizsího řý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 nevyhodu kompenzuje dvojnýsobkem poctu rund. Kryptograficka betonaz • 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) • počet rund byl navržen s ohledem na omezení složitosti šifry shora součtem bitů OT a klíče 5. GOST ANEB GOSUDARSTVENNYJ STANDART 225 Dálsí rezimy cinnosti • 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. • Zabezpecovací kod zpravy (MAC) je rovnez odlisny od DES. Na tvorbu MAC je pouzit stejní klíc 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. Slabiny standardu GOST • Existujíí slabíe klííce X[i] = X[7 — i], kdy zasifrovaíníí je rovno desifrovaí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 schematu nebyly. Zaverem • GOST pouzíva nekolik kryptografickích novinek (gammirovanije), 226 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE • nepodporuje jeden z mezinarodne standardizovaných rezimu (CBC), • predpoklídí se jeho masove nasazení v Rusku. 6 Šifrovací algoritmus 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 ítok hrubou silou — tj. vyzkousení vsech klíccu — 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 algoritmu 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ácu 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 ponechanie. 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íc 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íínku, 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íc, kterí sifruje vlastní data se nazíva relacní klíc (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". Sifratory 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 urScíí KU = KU1xorKU2. Pomocíí KU odSsifruje zbylou Scíast pole LEAF, tj. E(RK, UK), a zíískía koneScnSe 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. SIFROVY 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 Technology) oznámil zahájení hledání nástupce DESu: Advanced Encryption Standard (AES), coZ mel být neklasifikovaný a verejný Šifrovací algoritmus. Bylo predloZeno patnact ruzných navrlru a v rýnu 2000 byl vybran algoritmus Rijndael, pojmenovaný po svých tvurcích Joan Daemenove a Vincentu Rijmenovi z COSUC Laboratory na K.U. Leuven v Belgii (ve skutecnosti AES, není presne Rijndael, jelikoz Rijndael podporuje vetsí rozsah bloku a delky klícu). Stejne jako DES je AES blokova sifra. Velikost bloku zpravy je stanovena na 128 bitu zatůnco delka kluče muze být 128, 192 nebo 256 bitu. Jedna se o slozenou sifru a pouzrvý 10, 12 nebo 14 kol sifrovúm v zavislosti na volbe delku klýcce. Nicmene, ma rozdíl od predchozých algoritmu, ktere byly zalozeny na Feistelove myslence 8. PROUDOVA SIFRA RC4 229 a skutecne linearní, Rijndael je non-lineírní. Non-linearita v Rijndael je vytvorena tím, že reprežentuje byty jako polynomy stupne 7 v Z2[x]. Napr. b7b6 ... b0 je reprežentovín polynomem b(x) = b0 + b1x + • • • + 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 lže 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 dispožici na domovskíe stríance Rijndaelu. Ackoliv AES byl puvodne vyvinut pro použití s neklasifikovaními materialy, v cervnu 2003 obdržel oficialní schvílení NSA pro sifrovaní utajovaních materialu až do urovne TOP SECRET (s 192 - nebo 256-bitoví klíc). Jedna se o první verejne dostupní kryptografickí system, kterí je certifikovany pro klasifikovane použití NSA. Stejne jako o DESu se i o AES hodne diskutovalo. mel rovnež více než jeho spravedliví podíl na polemiku. Se svym dlouhým klíccem je ochrínen proti utokem hrubou silou. Pri jeho navrhu rovnež byly žohledneny diferencialní a linearní utoky. Nicmene, v kryptograficke komunite byl žnacny žajem na studiu algebraicke struktury AES. Zejmena clanky Courtoise a Piepržyka (2002) a Murphyho s Robshawem (2002), ktere se žabyvají tím, jak obnovit AES klíc ž räžních systemu kvadratickích rovnic, kladou oprívnenouotížku, žda by algebraicke utoky mohly ohrožit bežpecnost AESu. 8 Proůdovú sifra RC4 Po mnoha letech boje s DESem a dalsími siframi se žda že žvítežila sifra Rona Rivesta že spolecnosti RSA Data Security jmenem RC4. Tato sifra je vsak vžhledem k sídlu firmy "americkím produktem" a jako 23O 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á sifra. Uzivatelem zádáný klíč se pouzije k tvorbe 256bajtove sifrovací 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 generátoru pseudonUhodných čísel; dvema z nich 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 sifra proudoví mí RC4 mnoho vyhod i nevyhod. K víhode patří předevsím rychlost zpřácovUní, která z ní delí nástroj přitazliví pro mnoho komerčních produktu. Proudove sifry kodují jen tolik bajtu, kolik jich 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 obecne lepe ítočit. Stačí zmenit např. jediníy bajt, pokud zníame formaít zpraívy, nebot': noví bajt = (puvodní bajt XOR heslo) XOR diference. Pokud tohle bude desifrováno operací XOR heslo, dostaneme (puvodní bajt XOR diference). Víme-li, kde stojí v textu jednička na pozici desetitisícu, 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 dolaru. Přitom: o nezníme klíč uzivatele o neznáme heslo o neznáme konkretní typ proudove sifry Roziusten Šifru RC4 vyvinula firma RSA, která zámestnUvá schopne kryptology, např. prof. Ronalda Rivesta a má patent na dalsí sifry jako RSA, MD a řadu RC. Kombinací techto 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 ssifer byl pochopitelne omezen na 40 bitu, coz se jim patrne stalo osudným. Prezident firmy Jim Bidzon se sice dal zaregistrovat jako vývozce zbraní a podařilo se mu dosahnout podstatneho zkrýcení casu při vladním schvalovýní sifer, ale zrusit omezení na delku klícce nedokazal. Firma tedy alespoň přísne tajila i zdrojový kýd sifry RC (jako by si v nektere z prvních lekcí Kryptologie nemohla přecíst, ze nema 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 ňsifrovací nadňsenci interpretují jako praívo zjistit kíod ňsifry, kteríe se mía svňeňrit ochrana jejich dat. Vyísledníy zdrojovyí kíod ňsifry v jazyce C byl pomocí anonymní poňsty oznaímen 13. ňcervence 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];> Samozňrejmňe normaílní zíapis je níasledující: Klíccový proud je nezavisly na otevřenem textu. Ma 8*8 S-box: S0, S1,S255. Polozky jsou permutací císel 0 az 255, a permutace je funkcí promenne-delky klíce. Pracujeme s dvema cítaci, i a j, ktere 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ň Si a Sj t := (Sj + Si) mod 256 K := St Příslusný byte K klíccoveho proudu je XORovan se zdrojovým textem, abychom získali kryptogram nebo XORorovín s kryptogramem, abychom získali zdrojový text. IŠ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: So = 0, S1 = 1, ..., S255 = 255. Pak vyplníme dalsí 256-bytove pole klícem, pricemz klíc opakujeme, abychom vyplnili cele pole: K0, K1, K255. Pote nastavíme index j na nulu. Pak provedeme: pro i = 0 aSz 255 : j := (j + Si + Ki) mod 256 zamen Si a S j A to je vSse. Firma RSA tvrdí, Sze algoritmus je imunní proti diferenciaílní a lineíarní kryptoanalyíza. Zdía se, Sze nemý zadne male cykly a ze je vysoce nelineární. (RC4 muze byt asi v 21700(256! x 2562) mozných stavech, coSz je obrovskíe mnoSzství.) U S-boxu i zajiSst'uje, Sze se kaSzdyí prvek zmSení a j zajiSst'uje, Sze se prvky zmSení níahodnSe. Algoritmus je jednoduchíy. Dnes jiSz je moSzníe si staíhnout Sradu utilitek pro komfortní pouSzívíaní RC4. SSifropankSri se domnívají, Sze rozlousknutím kodu ztratila firma RSA na algoritmus pravo a umoznují s ním volne pracovat, pouze nedo-poruScují komerScní vyuSzití (koupSe Ssifry u RSA vyjde levnSeji, neSz soudní proces s ní). Sifropankri a jejich zabavy RC4 vsak pro sve klady pronikla nejen do mnoha komercních produktu (jak je zmíneno výse), ale take na Internet. Pro bezpecný prenos napr. financních dat se na síti pouzíva protokol SSL (Secure Sockets Layer), kteryí pracuje s RC4. Tento protokol pouSzívía napSr. Netscape, a príavSe prostSrednictvím Ssifrovaníe objedníavky zbozí Netscapem bylo loni ukazáno, jak je komunikace na Internetu "bezpecna". Vzhledem k tomu, ze sifra RC4 je zníama a byl pouSzit pouze 40 bitovyí klííSc, zbyívalo jediníe: vyzkouSset vSsechny moSznosti. To provedly nezíavisle na sobSe dva tyímy, trvalo to zhruba 100 MIPS let (30 Pentiíí za 8 dníí). Tíím bylo jasnSe SreSceno, Sze je to príavSe díelka klííSce, ktería umoSznSuje kaSzdíemu províest tento nejjednoduSsSsíí typ uítoku. Pozdeji Hal (puvodní zadavatel sifrove ulohy) vyhlasil dalsí kod. Nyní bylo cílem zvládnout prohledaní prostoru vsech klícu v co nejkratsím case. Pritom bylo pomocí Internetu zapojeno nekolik desítek lidí a výsledek se dostavil: informace o tom, ze Hall si objednal tricko 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. Zčásti proto, že je patentovaný a také proto, že veřejnost stále čeká na jeho odolnost proti kryptoanalýze příštích let. Velkým plusem pro IDEA je to, že je součástí Šifrovacího systemu PGP. 9.1 Zakladní vlastnosti sifrovacúho systěmů 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 použit 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ížku žnížorneno modrím ©), • scítíní modulo 216 ((žnížorneno želením EB),) • nasobení modulo 216 + 1, kde nuloví slova (0x0000) jsou interpre-tovana jako 216 (žnížorneno cervenym 0, na tuto operaci mužeme pohlížet jako na S-box ž DESu). Vsechny tyto operace pracují na 16-bitovych blocích. 9.2 Popis systěmů IDEA 64-bitoví blok se roždelí 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 každem kole se tyto podbloky XORují, scítají a nísobí meži sebou navžíjem a s sesti 16-bitovími podklíci. Po každem kole se prohodí druhí a tretí podblok. Nakonec se na techto ctyrech podblocích provede vystupní transformace žkombinovaním se ctyrmi podklííci. V každíem kole algoritmu probííhajíí tyto operace: 9. ŠIFROVACÍ ALGORITMUS IDEA 235 1. Vynasobení X1 a prvního podklícce. 2. Sectení X2 a druheho podklícce. 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, které 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ícc 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íc 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íccu. (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ýpocty zaberou nejakí cas, ale stací je vždy spocítat pouze jednou pro každí klíc. Tabulka ukazuje sifrovací podklíce a jim príslusne desifrovací podklíce: 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 Soucasne 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 císel potrebuje procesor 486 ctyricet cyklu (pentium 10). Hardwarove implementace pak dosahují rychlostí až 177 Mbit/s. 9. ŠIFROVACI ALGORITMUS IDEA 237 9.3 Kryptoanalýza systému 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)-krýt sifrovat. Predstavme si ccip, který otestuje miliardu klícu za sekundu a nechme miliardu takových 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 zaýtocit. 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 staď.). 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íc 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 nepřoveditelný. Utočník by potřeboval pamet' 1039 bytu. Pokud to stále nekomu nestačí, lze pouzít tripple- IDEA: C = (Dk2 (EXl (P))) Dalsí mozností je pouzít nezávisle podklíče. IDEA potřebuje 52 ^-bitovích klíču, tedy celkem 832 bitu. Tato varianta je jistŠe bezpeŠčnŠejŠsí, ale nikdo neví o kolik. Pokus o variači algoritmu by mohlo bíyt zdvojníasobení velikosti bloku. Algorimus by pracoval namísto s 16-bitovími podbloky s 32-bitovymi podbloky a s 256-bitovím klíčem. Kódování by bylo rychlejsí a bezpečnost by vzrostla 232-krat. Ale - bylo by to opravdu tak? Teorie v pozadí algoritmu se opírá o fakt, ze 2i6 + 1 je prvočíslo. Ale 232 + 1 prvočíslo není. Algoritmus by se snad dal modifikovat tak, aby fungoval, ale mel by velmi odlisne vlastnosti z hlediska bezpečnosti. Lai tvrdí, Šze by bylo obtíŠzníe pŠrinutit takovyíto algoritmus pračovat. I kdyŠz vypadaí IDEA mnohem bezpeŠčnŠejŠsí neŠz DES, není vŠzdy snadníe v uŠz existujíčíčh aplikačíčh DES nahradit. Pokud jsou databaíze a formulíaŠre navrŠzeny pro 64-bitovíy klíŠč, je tíemŠeŠr nemoŠzníe pŠredŠelat je na 128-bitovyí klíŠč. Toto je moŠzno obejít zdvojením 64-bitovíeho klíŠče - ovŠsem za čenu sníŠzení bezpeŠčnosti systíemu. Pokud nŠekomu zíaleŠzí víče na ryčhlosti neŠz na bezpeŠčnosti, je moŠzníe sníŠzit poŠčet kol v algoritmu. V souŠčasníe dobŠe je nejlepŠsí uítok ryčhlejŠsí neŠz uítok hrubou silou pouze pro míenŠe neŠz 2,5 kolovyí algoritmus. 4-kolovyí algoritmus bude tedy dvakríat ryčhlejŠsí a - podle dneŠsníčh znalostí - i stejnŠe bezpeŠčnyí. Bez zaruky IDEA je relativne novy algoritmus a mnoho otázek o nem zustává neodpovezenych. Je IDEA grupa? (Lai si myslí, ze ne.) Existují nejake dosud neobjevene cesty k rozbití tohoto algoritmu? IDEA mí pevne teoretičke základy, ale čas od času i bezpečne vypadající algoritmus muze podlehnout nejake nove forme křyptoánálýzy. Ruzne akádemicke a vojenske skupiny se snazily křyptoanalyzovat IDEU. Zatím vsak bez íspechu. 10. PGP - PRETTY GOOD PRIVACY 239 10 PGP - Pretty Good Privacy Úvod PGP je kryptografický aplikační 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 používala kryptograficky slabý algoritmus, který byl v dalsích verzích nahrazen. V roce 1993 se objevila první tzv. mezinarodní verze 2.3. Klícovou zmenou bylo zarazení algoritmu IDEA jako symetricke sifry. Na vývoji se jiz podíleli autori z celeho sveta, P. Zimmermann působil 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í Spojených 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. Jak 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 : 240 KAPITOLA S. sIFROVY STANDARD DES A JEHO KOLEGOVE 1. najdeme si verejny klíc adresata na Internetu, 2. PGP vygeneruje nahodný konvencní 128-bitový symetrický sifrovací klíc, 3. pomocí sifry RSA a verejneho klíce adresata se tento nový 128-bitový klíc zasifruje do tvaru, který je pak zaslan v hlavicce 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 casti a zprava se vysle. System RSA tedy slouzí pouze jako zabezpecení prenosu konvencní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 císlo, ktere co nejlepe zarucuje integritu cele puvodní zpravy. Tento MD5 kód je posleze zasifrován tajnym klícem 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íce), TripleDES (168 bitu) nebo CAST (128 bitu). Pri podepisovaní se pouzíva asymetricka sifra DSS a SHA-1 kontrolní soucty (hash). System správy klíců System spravy klíccu je dulezitou soucá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íc - od 512 bitu az do delky 2048 bitu vcetne. 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 velice dulezitá, protoze jsou podle ní tajná hesla sifrováná pomocí konvenčního sifrovacího algoritmu IDEA. Pri kazdem pouzití sveho tajneho klíče se pak program PGP na tuto frázi ptá. Je to jakási pojistka pro PGP. Program PGP nám tak vytvorá 2 soubory, ve kterách uchovává vsechna hesla, která bychom mohli pozdeji potrebovat. Soubor 'pubring.pgp' obsahuje vsechny verejne kláče uzivatele + verejne kláče vybranách adresátu a tento soubor neustále roste. Druhá soubor 'secring.pgp' obsahuje tajne kláče uzivatele, ktere jsou zakádovány pomocá fráze. Je treba velice pečlive chránit soubor tajnych klácu a take frázi hesla. Pri komunikaci s jinámi osobami budeme potrebovat jejich verejne kláče. Takovy kláč má nekolik atributu: ID - binárná čáslo, jednoznačná identifikace, napr. 0x59159CF1 User ID - identifikace osoby (skupiny osob), kterám kláč pátrá. Kazdy kláč muze mát váce takovách uzivatel-skách jmen. Signatuře - podpis jinám kláčem, vyjádrená jistoty jine osoby, ze kláčč pátrá 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íčů vkládat fotografie uzivatele ve formátech JPEG a BMP. Data - samotná kláčč, obsah závis! na typu kláče. Závěr Dá se predpokládat, ze bezpečnost PGP je pro nejblizsá dobu zajistena velmi dobre. Nabourat PGP lze snad jen tak, ze se podará rozlustit konvenčná symetrickou sifru IDEA, nebo faktorizovat sifrovacá modul sifry RSA. IDEA pouzívá 128-bitovy klíč a zatím nebyly publikovány zádne zásadní slabiny. Jelikoz lze zvolit delku klácu pro RSA az do 2048 bitu, lze predpokládat i zde, ze PGP obstojí. 242 KAPITOLA S. SIFROVY STANDARD DES A JEHO KOLEGOVE Kapitola 9 Náhodne šifrovaní Se zavedením nahodnych nebo pravdepodobnostních kryptografickych technik bylo umozneno navrzení vhodne definice matematicke bezpecnosti kryptografickeho systemu a dokazýní toho, ze jiste kryptosystemy jsou bezpecne podle techto definic (za vhodnych predpokladu z teorie slozitosti). Tyto pravdepodobnostní kryptosystemy pouzívají jednosmerne funkce a funkce s vlastností padacích dverí v daleko komplexnejsí míre nez tomu bylo u deterministických sifrovacích systemu. Ackoliv pouzití pravdepodobnostních technik nebylo v kryptografii nic noveho, novinkou byla dokazatelná úroveň bezpecnosti. Dokazujeme-li, ze kryptografický system je bezpecný, je dulezite opatrne specifikovat, ktere zpusoby utoku muze neprítel Mr. X podniknout. Napr. system muze být bezpecný proti slabemu ýtoku (pasivní odposlech), ale není uz bezpecny proti silnejsímu utoku (aktivní odposlech a manipulace s komunikacní linkou). Nejjednodussí formou utoku je, ze pasivní neprítel pouze sleduje legitimní uzivatele kryptografickeho systemu. Muze znat pouze kryptogramy nebo nejake dvojice otevreneho a mu odpovídajícího sifroveho textu (a known-plaintext attack). V prípade pouzití verejneho klícce pak muze generovat polynomialní pocet dvojic otevreneho a mu odpovídajícího sifroveho textu. Potencionalne nebezpecnejsí utok, ktery je povazovan za realistický v praktickem pouzití, je utok neprítele, který je legitimním opravneným uzivatelem systemu. Neprítel pak muze podniknout vsechny akce dovolene FI 243 244 KAPITOLA 9. NÁHODNE ŠIFROVANÍ legitimnímu uzivateli předtím, nez se pokusí desifrovat sifroví text zásláný mezi dvojicí uzivatelu. Muzeme obecne předpoklUdát, ze nepřítel muze manipulovat komunikačním kanálem mezi kazdou dvojicí legitimních uzivatelu a dokonce muze pouzívat jejich křyptogřaficke zařízení (ale nemuze získat jejich klícce). Např. pomocí tzv. chosen-ciphertext attack muze nepřítel získat otevřeny text pro kryptogram dle sveho vyíbŠeru. Nepřítelův uspěch by mel bít definovUn co mozná nejvelkomyslneji - totiz dukaz bezpečnosti systemu by mŠel zamezit i tu nejslabŠsí formu nepŠrítelova uíspŠečhu. Skromní cíl nutní pro tvorbu kryptosystemu je, ze vetsinu zpráv nemuze nepřítel odvodit jenom z kryptogramu. To je vŠsak aŠz pŠríliŠs skromnyí číl, protoŠze neŠreŠsí níasledujíčí problíemy: • kryptosystem není bezpečný pro jistá přavdepodobnostní rozlození prostoru zpráv (např. prostor zpráv sestává pouze z polynomiálního počtu zpráv, ktere nepřítel zná), • parčiaílní informače o zpraívíačh lze snadno spoŠčítat z kryptogramu, • lze snadno urŠčit jednodučhíe, ale uŠziteŠčníe fakty o transmisi zpríavy (napŠr. kdyŠz je jedna a tatíaŠz zpríava odeslíana víčekríat). 1 Nahodnost v sifrovacím procesu V tomto odstavči se budeme vŠenovat pouŠzití níahodnosti v Šsifrovačím pročesu. Prvním diskutovanyím pojmem je nalezení Šsifrovačíčh sčhíemat, kteraí jsou semanticky bezpešcna. To jsou takovaí sčhíemata, ktería zajiŠst'ují bezpečnost vsech č^teč^ch informací o přenáSených zpřávUčh (uved'me např. Goldwasseruv a Micaliuv kryptosystem). Toto je pak tesne spjato k nevyřeSeným přoblemum nalezení kryptograficky bezpecnych pseu-donáhodnýčh čísel. To jsou posloupnosti, v kterych nemuze nepřítel Mr. X v reálnem čase předpovedet s uspechem vetsím nez je přumeřní íspech, s jakym bude vysláno dalsí číslo. 2. SÉMANTICKÁ BEZPEČNOST A GOLDWASSER-MICALIHO SCHEMA 245 Totež schema žnahodnení sifrovacího procesu spocíví na praktickem resení fundamentalního problemu vyreseneho A.D. Wynerem, když v roce 1975 spojil teorii informace, kódovaní a pseudonahodna císla ve sve príci o tžv. Wynerove odposlouchívacím kanalu. Homofonickú sůbstitůcě Nejjednodussí nahodne sifrovací schema je tžv. homofonicka substituční šifra. Zprava M je retežec ž abecedy E1. M je žasifrovína do nahodneho sifroveho textu C nad abecedou E2, kde |E1| < |E2|. Mí-li abeceda E1 t symbolu, lže E2 rožložit na disjunktní nepraždne podmnožiny Aj, (1 < i < t) tak, že symbol s j je níhodne žasifrovan do prvku ž podmnožiny A j. Klíc K systemu je usporadaní rožklad (A1,...,At). Cesta, pomocí ktere nahodnost žvísí uroven bežpecnosti, je jasna. Zvetsení poctu klícu nam žvysí uroven dvojsmyslnosti textu. Platba ža nahodne sifrovaní spodVa v tom, že pro každí klíc každa žprava odpovída nekolika sifrovym textum, tj. množina kryptogramu bude vetsí než množina žprav. Abychom toto vyrovnali, musííme míít žajisteno jistíe rožsííreníí v komunikacníím kanaílu, protože je potreba vííce informace na urceníí kryptogramu než na urceníí otevreníeho textu. Mluvííme pak o píasovíe expanži. Tento postup se nutne objevíí v každíem níahodníem sifrovacíím schíematu. Tato myslenka není vubec noví. Napr. Gauss se domníval, že objevil nenapadnutelnou sifru žavedením homofonu. Dalsím príkladem homofonní sifry byla Jefferson-Bažierova koloví sifra a její variace používane ve Spojenyích staítech v obou svdetovíych víalkaích. 2 Sěmantickú bězpěCnost a Goldwassěr-Micaliho schěma Šifrovací schemata, kterí žajist'ují bežpecnost vsech castecnych informací o žpravach, jsou žrejme duležite cíle kryptografickeho žkoumaní. Takovato schemata se nažyvají sémanticky bezpečna. 246 KAPITOLA 9. NÁHODNE ŠIFROVANÍ 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 problemu. 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éc 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 kazdá bit Mj A vybere náhodne čáslo x z mnoziny čásel N * = {z : 1 < z < N, (N, z) = 1}. Mj pak zakóduje jako (m ) = / mod N pokud Mj = 1, (2i) e(Mi) = \ x2 mod N pokud Mj = 0. () Kryptogram C máa pak tvar C = e(M1)e(M2)... e(Mra). (2.2) Protoze N je 2k-bitove prirozene číslo, je jasne, ze kryptogram je mnohonásobne delsí nez M. Pro okamzik predpokládejme, ze Sifrovačí proces a vytvorená registru verejnách kláču lze provest v polynomiálním čase (ve skutečnosti v čase O(nk2)). Venujme se nyní desifrovacímu procesu provádenem príjemcem B. Dešifrovací algoritmus Označme prirozená čásla e(Mj) jako ej, 1 < i < n. Pak procedura pro desifrovám je snadná: je-li ej kvadratická zbytek modulo N, je Mj = 0, není-li ej kvadratická zbytek modulo N, je Mj = 1. Dodatečná (trapdoor) informace prájemce B je, ze, protoze zná faktorizaci M na prvočísla p a q, je schopen velice rychle rozhodnout z Eulerova kriteria, zda je či nená ej kvadratická zbytek modulo p a q. Protoze to nastává práve tehdy, kdyz ej je kvadratická zbytek modulo N, jsme hotovi. Príklad. Uvazme Goldwasser-Micaliho system s s bezpečnostnám parametrem k. Pak sifrovacá algoritmus e zasle bit Mj = 1 do jednoho z čísel yx1,yx2,...,yxJ(W) (mod N), kde x1, x2,..., x^(N) (mod N) lezí v N * a (N, y) je príjemcuv verejná klíč. 248 KAPITOLA 9. NÁHODNE ŠIFROVANÍ Šifrovací algoritmus e zasle bit Mj = 0 do jednoho z císel xl,xl,...,xl(N) (mod N). Aby bylo sifrovaní bezpecne, musí být N dostatecne velke, aby bylo prakticky nemozne rozhodnout, zda se jednía o kvadratickyí zbytek ci ne. Protoze to zaívisíí na faktorizaci N, musíí míít N alespon 200 cííslic. Tedy jednía se o velmi neefektivníí algoritmus a mííra komunikace drasticky klesía. FI+ Popisme nyníí typ nepríítele, se kteryím jsme pripraveni se utkat. Predpoklíadejme, ze míame co cinit s pasivníím odposlouchíavacem prenosovíe linky, kteryí znía prostor zpríav, pravdepodobnostníí rozdeleníí zpraív a sifrovacíí algoritmus. Necht' zna dále kryptogram a pokousí se z neho získat zpravu. Pokud dovolííme nepŠrííteli neohraniŠcenou dobu a víypoŠcetníí kapacity, bude schopen rozluŠstit zpraívu pouŠzitíím uplneho prohledavaní. Co ale skutecne chceme, je situace, ve které 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 císlo modulo N a tedy je transformován do 2k-bitoveho rérézce. (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í. Bezpecnost 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 Šsifrovacího systíemu. Jakmile budeme povaŠzovat k za naíŠs parametr, ptíame se nyní, zda nikdo omezeníy Šcasem ohraniŠcenyím polynomem v k nemuze prolomit sifrovací systém. Goldwasser a Micali dokazali, ze jejich systém ma tuto vlastnost v extrémne silnem smyslu. Predpokladejme, ze si muzeme predstavit neprítel Mr. X jako prodavace 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ípocetními zdroji omezeními polynomem v k, aby prohledal prostor zprív M1 a M2 tak, ze zasifrovaní M1 a M2 jsou rozlisitelní prístrojem T. Rekneme, ze system je polynomiálně bezpečná), jestlize polynomialne omezeny hledac zprív F nemuze najít dve zpravy M1 a M2, ktere jsou rozlisitelne polynomiílne omezením prístrojem T na odposlech linky. To znamena, ze je-li díno C (kryptogram vzniklí bud' z M1 nebo z M2), T by nemel získat zídnou víhodu v porozumení toho, ktera ze dvou zprav M1 a M2 byla zasifrovana do kryptogramu C. Goldwasserovi a Micalimu se podarilo dokazat o svem sifrovacím schematu, ze je semanticky bezpecne proti kazde pohruzce polynomialne omezeneho ítocníka za predpokladu, ze problem kvadratickeho zbytku je obtízní v nísledujícím smyslu. Pro kladne prirozene císlo k je mnozina Hk obtížných složených přirozených čísel definovana jako Hk = {N : N = p • q, kde p a q jsou k—bitova prvocísla}. Predpoklad, ze problem kvadratickeho zbytku je nezvladnutelny Bud' P a Q pevne polynomy. Pro kazde prirozene císlo k, bud' Ck booleovskí obvod se dvema 2k—bitovymi vstupy a jedním booleovskíym vyístupem s níasledujícími vlastnostmi: (a) Je-li dín vstup (n, x), pak Ck sprívne rozhodne pro alespon císel n z Hk, zda je ci není x kvadraticky zbytek modulo n pro kazde prirozene císlo x mensí a nesoudelne s n; (b) Ck mí ze vsech takovíchto booleovskích obvodu splnujících (a) minimílní pocet vnitrních vrcholu (bran). Pak, pro dostatecne velike k, je pocet vnitrních vrcholu obvodu Ck alespon Q(k). Na zaklade vísledku získanych Goldwasserem a Micalim vyvstíva prirozena otazka: jak bezpecne jsou bity podstatne praktictejsích sifrovacích schemat jako jsou RSA a Rabinova schemata s verejním klíccem? Goldwasser, Micali a Tong dokazali, ze specificke bity jak RSA tak Rabinova schematu byly bezpecne v tom smyslu, ze nalezení nejmensího signifikantního bitu otevreneho textu je ekvivalentní narusení cekého 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ý urcí nejmene podstatný bit musí bud' mít pravdepodobnost chyby 4 — £ nebo musí být schopna prolomit zcela RSA-algoritmus. Alexi, Chor, Goldreich a Schnorr v roce 1984 ukazali, ze získaní jakekoliv výhody ve zjistení nejmene podstatneho bitu je ekvivalentní rozlustení cele zpravy. Goldwasser-Micaliho schema lze prirozeným zpusobem zobecnit. Poznamenejme, ze predikátem s vlastnosti padacích dverí je booleovský funkce B : {0,1}* — {0,1} takova, ze je snadne v ocekavanem polynomiálním case 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 case nemuze, pro níhodne vybrane x G X tak, ze |x| < k, nemuze spoďtat B (x) s pravdepodobností vetsí nez 4 + j;, pro vsechna c > 0 a pro dostatecne velke k; je-li vsak znama informace 0 padacích dverích, lze snadno spocítat B(x). Bud' díle B predikít s vlastností padacích dverí a k bud' bezpecnostní parametr systemu. Verejný klíc uzivatele A obsahuje popis B a jeho tajny klícc obsahuje informaci o padacích dverích. Nyní muze uzivatel B odeslat uzivateli A soukromou zpravu M = ... 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) = m^; 2. odesle xj k A. Pro desifrovaní zpravy pak uzivatel A, který zna informaci o padacích dverích, vypocte B (xj) = nii pro vsechna i = 1,..., k. Platí pak nasledující veta. Véta 2.1 Goldwasser-Micali Existuje-li predikát s vlastností padacích dverí, je výsse uvedené pravdčpodobnostné ssifrovací .schema s verejným klíčem bezpečne v polynomialné dobe. FI 3. KRYPTOGRAFICKY BEZPEČNA PSEUDONAHODNA CISLA 251 3 Kryptograficky bezpečná pseudonáhodná čísla Problém nalezení nepredpoveditelných 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átoru. Tý sestávájí z modulu N, násobku a nesoudelním s N á přírůstku 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 splnují mnoho ruzních testu náhodnosti pro vhodný výber párámetra a, c á N. Proto je táto lineárni, kongruenční metodá siroce pouzíváná. 252 KAPITOLA 9. NÁHODNE ŠIFROVANI Tato metoda není vsak křyptogřagřaficky bezpečnU. Ze znalosti vsech bitu nekolika po sobe jdoucích Xk lze odvodit parametry a, c a N. Lze dokonce dok^at, ze zbytek posloupnosti je temeř vsude předpovedite!^ v polynomiílním čase za předpokladu, ze jsou díny alespon | vedoucích bitu prvních mílo čísel. NefořmUlní popis kryptograficky bezpecneho generátoru náhodných čísel (RNG) je následující. Začneme s tajnou informací s s n pravdivími náhodními bity. Generátor pak s musí pouzít, aby vytvořil v čase polynomiální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ýpočetne nemozne předpovedet Xt+i s pravdepodobností vetsí nez 2. O takovemto generátoru řekneme, ze prosel testem naísledujíícíího bitu. Přesneji pak bude nase protivník bít známí jako prediktor. Prediktor je přavdepodobnostmí polynomiální časovy algoritmus P, kterí se pokousí předpovedet dalsí bit generátoru bitu G(x) vzhledem k jeho počátečním bitum. Kázdí dobrí generátor pseudonUhodnýčh by mel bít nepředvídátelný, a tak definujeme test následujícího bitu, ze prediktor musí selhat temeř polovinu doby. Test nasledujícího bitu Náhodne vybereme x G {0,1}k a vypočteme G(x) = yiy2 ... yj(k), kde /(fc) > k je delka vístupu řetezce G(x) na vstupu x delky k. Zadejme prediktoru P vstup 1k. i <— 1 Dokud i < /(k) P bud' poZádU o dalsí bit, yj, nebo dí na vístup hídane b pokud P dá na vístup hádane b, pak test končí a P projde testem nasledujícího bitu práve tehdy, kdyz b = yj. jinak P obdrzí nUsledující bit yj i <— i + 1. P selze, pokud se nepodařilo algoritmu hádat. 3. KRYPTOGRAFICKY BEZPECNA PSEUDONAHODNA CISLA 253 Ríkame, ze bitový generator G je pseudonáhodny generátor, pokud pro kazdy prediktor P je pravdepodobnost toho, ze P projde testem nýsledujícího bitu nanejvýs nepatrne vetsí 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 chteli. Pseudonahodný generator by mel 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 vytvořili první metodu pro tvorbu dokazatelne bezpecných generatorií 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 jednosmerne 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ízne vypocítat. Je-li dana tajní informace x0 G D, muzeme vytvořit posloupnost x0,x1,...,xn pouzitím rekurentního předpisu xi+1 = f (xi). Abychom vytvořili binarní posloupnost b0,..., 6ra-1 delky n, definujme bi = B(xn-i). Uvedomme si obrícene uspořadíní vzhledem k posloupnosti x0, x1,... , xn; musíme nejprve vypocíst vsechna x0, x1,..., xn a teprve pak spocítat b0 z xn, ..., 6ra_1 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 generovane z x0. Pro dane y = xn_i_1 muzeme spocítat xra_i,xra_i+1, ..., xn pomocí f a pak vypocteme b0,... ,bi z y. Muzeme-li pak urcit efektivne = B (xn_i_1) = B (y), získame spor s tím, ze je obtízne spoňcítat B(y) pouze z y. V roce 1982, Blum a Micali navrhli generíator splnňující test níasledujícího bitu za pňredpokladu, ňze problíem vypoňctení diskríetního algoritmu je obt íčzny v tom smyslu, ňze jakmile budou vstupy dostateňcnňe velkíe, kaňzdía 254 KAPITOLA 9. NAHODNE SIFROVANI efektivní procedura pro výpocet diskretního logaritmu by nefungovala alespon pro jistou pevnou cast vstupu. Definujme B (x) = Bfl)P(x) = 1, pokud logg x mod p < p_1 a B(x) = Bfl)P(x) = 0 jinak, kde p je prvocíslo, g je generator multiplikativní grupy Zp a x G Zp. Dale klademe f (x) = ffl,p(x) = gx mod p. Je-li vypocet diskríetního logaritmu skuteňcnňe obtíňznyí, budou vytvoňreníe posloupnosti nepňredpovídatelníe. Aňckoliv je Blum-Micaliho generíator mezník v historii problíemu, nelze jej snadno pouňzívat ňci popsat a navíc byl pňredstihnut jinyími praktiňctňejňsími a efektivnňejňsími systíemy. Veta 3.2 Blum-Micali Je-li vípocet diskretního logaritmu obtízny, je Blum-Micaliho generátor pseudoná-hodny generátor. FI+ L. Blum, M. Blum and Shub (1983) navrhli tzv. x2 mod N generátor, ktery lze jednoduseji implementovat a lze dokíazat, ňze je bezpeňcníy vzhledem k testu níasledujícího bitu za pňredpokladu, ňze problíem kvadratickíeho zbytku je obtíňznyí. Tento generíator funguje stejnňe jako obecnía Blum-Micaliho metoda s volbou f(x) = x2 mod N a B (x) = 1, pokud je x liche, a B (x) = 0 jinak. Přitom pocítecní tajna informace x0 je kvadratický zbytek modulo N, N je obvykle souňcin dvou prvoňcísel stejníe díelky, pňriňcemňz kaňzdíe z tňechto prvoňcísel je kongruentní se 3 modulo 4. Alexi, Chor, Goldreich a Schnorr (1984) dokazali, ze předpoklad, ze problem kvadratickíeho zbytku tňeňzkyí lze nahradit pňredpokladem, ňze faktorizovaíní je tňeňzkíe. Zaved'me nyní pojem státistickeho testu v polynomiálním case. Bud' G generator pseudonahodnych císel, který roztahne k—bitovou vstupní tajnou informaci do p(k)—bitove posloupnosti, kde p je nejaký pevný polynom. Bud' dale Sk mnozina vsech p(k)—bitových posloupností vytvořených generítorem G z k—bitových vstupních tajných informací. Štatistickí test v polynomiílním case je níhodný algoritmus A, který se, pro daný vstupní řetezec delky n, zastaví v polynomialním case v n a da na výstup 0 nebo 1. Generítor G projde testem A, jestlize, pro kazde přirozene císlo t a vsechna dostatecne velka k, mame IPÍ — PRI 0 a dostatečne velká k platá Věta 3.3 Generátor G projde vsemi statistickými testy v polynomiainím čase tehdy a jen tehdy, kdy Z projde vsemi testy nísledujíčího bitu v polynomiainím čase. FI Zustává otázka existence takováchto kryptograficky bezpečnách generátoru. Doposud vsak závisí na predpokladu obtíznosti nejakeho problemu z teorie čísel. Platá vsak následující dulezitá a obtáízna veta: Věta 3.4 Hastad, Impagliazzo, Levin and Luby (1999) Jednosmerne funkce existuji prave tehdy, kdyZ existuji pseudoníhodne generatory. 4 Wyneruv kanal Kódovaní a kryptografie Uvazme nasledující kryptosystem (K, M, C, T), kde 256 KAPITOLA 9. NÁHODNE ŠIFROVANÍ o prostor klíčů K se bude skládat ze vsech matic G typu k x n tak, ze /1 0 0 1 G = 00 00 v... 00 00 gi,k+i g2,k+1 1 0 9k-1,k+1 0 1 gk,k+1 spolu s kontrolní matici H typu k x n tak, Ze G • HT = 0 a H = h2,i hk-1,1 \ hk,i h1,k h2,k 1 0 0 1 9i,n \ g2,n gk-1,n gk,n 00 00 : : v . . . hk-i,k 0 0 hk,k 0 0 10 01 o prostor zprav M = (s0,... , sk} je totožný s množinou syndromů, o prostor C zasifrovaných textu je množina vsech n-tic Vn, o zobrazení T : K x M —► C je definovane nísledovne: T(G, s*) = c = (c1,... , cn), kde c je libovolný vektor z príslusne trídy rozkladu, tj. mnoziny {v : v • HT = s}. Adresít obdrzí nezkreslenou informaci, protoze jejich spojení je bez sumu. Pomoci vektoru c vypocíta syndromový vektor s* = c • HT. Funkce T nabýví svych hodnot nahodne. Proto se v tomto prípade mluví o nedeterministickem resp. náhodném sifrovacím systému. Presneji receno, níhodní sifrovací system FJ je podmnozina kartezskeho soucinu M x K x C tak, ze pro kazdí klíc K G K a kazdí zasifrovaní text C G C existuje nejvíc jedna zprava M G M tak, ze (M, K, C) G n. Zaroven pro kazde M G M a kazde K G K existuje aspon jeden kryptogram C G C tak, ze (M, K, C) G n. 4. WYNERUV KANÁL 257 Zejména platí následující tvrzení Tvrzení 4.1 V syndromovém kryptosystému je přenosový pomer R < m^+i ■ Proof. Předpokládejme kvůli jednoduchosti, ze prostor zpráv M obsahuje 2m prvku. To znamená, ze nejúspornéjší rovnomerný kád bude používat m—tice u = (u\,... ,um). Pokud použijeme (n, 1)-grupová lineární kád, tj. jeho príslusna matice G je týpu 1 x n a jeho kontrolní matice H je týpu (n — 1) x n, pak sýndromoví vektor s = v • HT bude týpu 1 x (n — 1) = 1 x m. Proto prenosový pomer bude n — 1 m mm R =-= — =-1 <-7. n n m +1 m +1 Pri rostoucím 1 bude limR = 0. V prípade, ze pocet zprav nebude mocninou čísla 2, pouzije ohraničení 2m < |M| < 2m+1 a postup dukazu zopakujeme. Podívejme se nýní na nasi situaci z pohledu neprítele. Pocet tríd rozkladu s rostoucím 1 bude menší a várazne bude narustat pocet mozných slov, ktera muzeme výslat pro jedno konkretní zdrojove slovo tj. v kazde tríde rozkladu bude 21 vektoru. Navíc vlivem poruch v binarním sýmetrickem kanale bude vektor z, která zachýtí neprítel ruzná od krýptogramu, který obdrzí povolaný príjemce. Neprítel tedý bude neustale maten. Za to ale zaplatíme rýchlostí prenosu, nebot' na prenos m-bitove zpravý budeme muset výslat n = m + 1-bitovou sifru. Pripomenme si v dalsím zhruba obsah fundamentální prace A.D. Wýnera, ve kterem jsou spojený problemý krýptografie, kódování a teorie informace do opravdu atraktivního a praktickeho tvaru. Zdroj S výsíla informaci konstantní rýchlostí a tato se prenasí pokud mozno bez chýbý k príjemci, zatímco nechavá odpo-slouchavace bez povsimnutí. Nejprve predpokladejme speciální situaci, kdý hlavní kanal je binarní kanal bez pameti a bez sumu a odposlouchavací kanal je binarní sýmetrický kanál s pravdepodobností chýbý p < 1. První resení tohoto problemu je velmi jednoduche: 258 KAPITOLA 9. NAHODNE SIFROVANI Sifrovací algoritmus ZaSsifrujte 0 jakoSzto níahodnyí binaírní SretSezec díelky N obsahující sudyí poScet jedniScek. ZaSsifrujte 1 jakoSzto níahodnyí biníarní SretSezec díelky N obsahující lichyí poScet jedniScek. Je jasníe, Sze deSsifrovací proces je snadníy, pSríjemce musí pouze zjistit paritu kaSzdíeho bloku díelky N. PSritom nejsou zídne pozadavky na pamet' ci CPU jednotku. Prípadní odposlouchavac bude vsak více nez zmaten. Totiz, pripomeňme, ze p < 1 je pravdepodobnost toho, ze je spatne prenesen pres odposlouchavací kanal. Pak pravdepodobnost Pc spravne obdrzeneho symbolu odposlouchíavaScem je urScena vztahem Pc = P [nastane príve sudí pocet chyb v N symbolech] = qN + ( f) qN-2p2 +... (q =1 — p) (4.1) = 2[(q+p)N + (q—p)N] =1 [1 + (1 — 2p)n]. Zejmena tedy Pc ~ | pro velka N. Evidentne pak pri prenosu binarní zpravy zachytí odposlouchavac text temer zcela plní poruch a sumu. Za toto pak ale platíme velkou cenu - totiz prenosovy pomer, coz je pocet bitu puvodního textu, které préneseme jedním bitem sifry, se ním redukoval na císlo N. Predpokladejme místo toho, ze jsme rozdelili proudovy zdroj do bloku S delky k a ze pouzijeme kod na opravovíní chyb, abychom zakodovali kazdy takovíto blok n-bitovím vektorem X tak, ze prenosoví rychlost R kídu je n. Je-li Z n-bitoví posloupnost zachycena odposlouchívacem, oznacíme odposlouchavacovu ekvivokaci H(X|Z) a tedy = H (X|Z) = k je odposlouchíavaScova ekvivokace na 1 bit vysílaníe zpríavy neboli míra dvojsmyslnosti pSripadající na jeden bit vysílaníe zpríavy. Z teorie informace víme, ze H (X|Z) = H (S|Z) < H (S) < k a tedy d < 1. Specialne, pokud odposlouchívac poznía klííSc, pomocíí nSehoSz se vysíílía, tj. hodnotami níahodníeho vektoru Z je jednoznaScnSe urScena hodnota 4. WYNERUV KANAL 259 níhodneho vektoru S, pak je H(S|Z) = 0 a d = 0. Naopak, pokud odposlouchavac nepostrehne žídnou žívislost meži S a Z, tj. žpravy S a Z jsou nežavisle, je pak d = H((S) Jsou-li navíc vsechny vysílane žprívy stejne pravdepodobne, tj. P (S = (s1,..., sk)) = 2-k pro každou žprívu (s1,..., sk), je H (S) = k, d =1. Cílem je navrhnout takovyí Šsifrovací systíem, kteryí by mŠel maximaílní míru dvojsmyslnosti tj. žajistit vŠeci tak, aby odposlouchíavaŠc nežískaíl Šžaídníe mnoŠžství informací. Evidentne, parametry R a d pusobí proti sobe tj. pokud R roste, d klesa a obracene. Wyner dokížal analogie Shannonovy vety o kídovíní se sumem. Rekneme, že dvojice (R, d) je dosahnutelna, jestliže, pro vsechna e > 0, existuje kodovací a dekodovací algoritmus s parametry n a k tak, že - > R - e, H(X|Z) > d-e, Pe < e, (4.2) 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 žasifrovanou žpravu, tj. T (G, s) = c, ktera je vyslana pri použití syndromoveho vektoru s. Pokud víme hodnotu C = c, pak žníme i hodnotu vektoru S = s a naopak. Proto pak míame H(Z| C, S) = H(Z| C). Abychom mohli 4.3 upravit, musíme udŠelat doplnŠující pŠredpoklady o binaírním symetrickíem kaníalu, pŠres kteryí nepŠrítel odposlouchíavaí pŠreníaŠseníe žpríavy. Jak vyslanou sifru C tak odposlechnutou žpravu Z mužeme považovat ža nahodne vektory C = (C1,... , Cn), resp. Z = ... , Pritom níhodne veliciny Cj, resp. Zj nabívají hodnot 0 a 1 s príslusními pravdepo-dobnostmi. PŠripomenŠme, Šže biníarní symetrickyí kaníal se nažyívaí bez pameti, jestliŠže n P (Z = z|C = c) = J] P (Zj = Zj|Cj = Cj). (4.4) j=1 260 KAPITOLA 9. NAHODNE SIFROVANI Oznacme 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 (C = 1) = p' = 1 — P (C = 0) a chybovost kanílu, tj. P (Z = 1|C = 0) = P (Zj = 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) j=1 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 pSríísluSsnou mííru dvojsmyslnosti obdrSzííme k • d < n • h(p) tj. R • d < h(p). (4.7) Dokíazali jsme tedy níasledujíícíí tvrzeníí: Veta 4.2 Při použití syndromoveho kryptosystemu o přenosovém pomeru R, míře dvojsmyslnosti d a chybovosti symetrického binárního kanálu bez pameti, pres která neprítel odposlouchava zpmvy platí nerovnost R • d < h(p). V prípade, ze prenos zpráv mezi odesílatelem a adresátem není bezsumovy a pravdepodobnost chyby na jeden vyslaná znak je Pp = k P (S = S'), je R • [d — h(Pp)] < h(p). VyíSse uvedeníe tvrzeníí je pak ekvivalentníí s tvrzeníím: Veta 4.3 Je-li hlavní kanál bez sumu a odposlouchavacuv binární symetricky kanál ma pravdepodobnost chyby p, je dvojice (R, d) dosazitelna, 0 < R, d < 1, pmve tehdy, kdyz R • d < h(p). 5. PRAVDĚPODOBNOSTNÍ podpisovaci schémata 261 Popisme dale obecnejsí Wyneruv vísledek. Nasím íkolem je maximalizace prenosu zprav k legitimnímu príjemci a zaroven udržení nejistoty odposlouchavace nad jistou hodnotou. Pomocí entropie to lze vyjídrit nísledovne: maximalizovat I (X|Y) = H (X) — H (X|Y) a zaroven minimalizovat informaci I (X|Z) = H (X) — H (X|Z). Pro každy pomer R > 0 definujme p(R) jakožto množinu tech rozdelení p pravdepodobnosti na vstupním vektoru X hlavního kanalu tak, že I(X|Y) > R. Bud' CM bud' kapacita hlavního kanalu a necht' r(R) = suppep(R)[I (X|Y) — I (X|Z)]. Pak platí Věta 4.4 Množina R* všech dosažitelných dvojic (R, d) je určena vztahem R* = {(R, d) : 0 < R < CM, 0 < d < 1, R • d < r(R)}. 5 Pravděpodobnostní podpisovaci schěmata Pravdepodobnostní techniky byly rovnež aplikovíny na vytvorení digitalních podpisu. Tento prístup byl zapocat Goldwasserem, Micalim a A.C. Yaoem (1984), kterí predstavili podpisovací schema založene na obtížnosti faktorizace a na obtížnosti invertibility RSA funkce, což jsou dokazatelne obtížne problemy pro 262 KAPITOLA 9. NÁHODNE ĚIFROVANI utok s použitím znímeho podpisu a to pro neprítele, kterí uspeje s padelaním podpisu jedne zpravy, ale ne dle jeho víberu. Goldwasser, Micali a Rivest zesílili tento vísledek navržením podpisovacího schenatu, ktere je nenapadnutelne víse uvedením zpusobem. Toto schema je založeno na obtížnosti 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 ktery je obtížne najít x, y tak, že /0(x) = Popisme jejich schema. Bud' (/0,/1) a (g0,g1) dve dvojice takovychto permutací. Bud' díle b = b1... bk Hwm 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 vybrany prvek z definicního oboru /0,/1 a utají informaci typu padacích dverí dovolující mu vypocíst Fb-1 a G-1. Zíroveň si uchoví obsah promenne historý (ne nutne utajeno). Pro jednoduchost budeme predpokladat bezprefixoví prostor zprav. Podpis i—te zpravy mi se vytvorí nísledovne. Podpisující 1. vybere nahodne ri z definicního oboru g0,g1 a položí history = history • r^, kde • oznacuje zretezení; 2. vypocte li = FhiLry(x) a ti = Gmi (ri); 3. vytvorí podpis zpravy mi jako trojici (history, li, ti). Abychom zkontrolovali platnost podpisu (h, l, t) zprívy m, každí s prístupem k verejnemu klícci podpisujícího muže proverit, že 1. = x, kde x je uloženo ve verejne prístupnem souboru; 2. Gm(t) = r, kde r je suffix h. Pokud obňe podmínky platí, je podpis platnyí. Víse popsane schema, ackoliv teoreticky velmi atraktivní, je zcela neefektivní. Lze ho vsak modifikovat do daleko kompaktnejsích podpisu bez použití pameti pro jine veci než pro verejne a tajne klícce. Literatura [1] J. Adámek: stochastické procesy a teorie informace - álohy. CVUT, Praha 1989. [2] J. L. Balcáažar, J. Dáíaž, J. Gabarráo: Štructural Complexity I. Springer-Verlag, Heidelberg l988. [3] H. Beker and F. Piper: Cipher Šystems. The Protection ofCommunication. Northwood, London l982. [4] A. Beutelspacher: Kryptologie. Vieweg, Braunschweig l99l. [5] E. Biham and A. Shamir: Differential Cryptoanalasys of the Data Encryption Štandard. Springer-Verlag, New York l993. [6] International Data Encryption Algorithm, http://cs.wikipedia.org/wiki/InternationaLDat^Encryption_ Algorithm. [T] V. Klíma: Kody, komprimace a sifrovaní. Chip 2/1993, str. 24-28. [8] V. Kláma: Kritika sifrovíeho standardu. Chip 5/l993 str. 52-58, Chip 6/l993, str. 50-55, T/l994 str. 50-5l. [9] V. Kláma: Šifry a kryptíeri. Chip 2/l994, str. 206-20T. 263 264 LITERATURA [10] V. Klíma: Utajene komunikace. Chip 5/1994, Chip 6/1994, str. 184-188, T/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. 1T4-1T5, T/1995 str. 130-131, 8/1995 str. 142-143, 9/1995 str. 206-208, 10/1995 str. 226-228, 11/1995 str. 1T0-1T2 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-3T. [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] SS. Porubskyí a O. GroSsek: Sifrovanie. Algoritmy, Metéody, Prax. Grada, Praha 1992. [1T] 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 19TT. 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. Inděx A aproximace 0. raídu 60 1. raídu 60 B bigram 25 bitovaí bežpecnost 246 Blaise de Vigenere 32 blok díelky t 81 bod unicity 67 C Claude E. Shannon 49 C cetnost 17 cíítac 77 D DES 26 desifrovaíníí 12 determinant matice A 86 dííra díelky t 81 E ekvivokace žpraív 53 entropie 50 žprí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 lineárního posouvacího registru 79 chosen plaintext attack 24 I index koincidence 38 informace o U poskytnuta V 52 K kaníal diskrétní bez pameti 51 kapacita komunikacního kanálu 52-53 kappa-test 39 Kasiskeho test 32, 36 Kerckhoffuv princip 24 klíc 11, 48 spolecny sifrovací 11 klícova ekvivokace 53 klíccove písmeno 22 klíccove slovo 22 Vigenere 32 known ciphertext attack 24 known plaintext attack 24 kritíerium perfektnosti 57-58 kryptoanalíyza 12 kryptografie 12 kryptogram 12, 48 kryptologie 12 kryptosystém 48 L linearní posouvací registr 73 M Markovova aproximace 1. radu 60 2. rídu 61 matice prechodu markovskíeho retezce 51 stochastickía 51 monoabecední sifrovaní 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 polyabecedm sifrováná 26, 29 posouvací (aditivní) sifra 14, 20 posouvací registr 76 lineární 76 pozadavek jednoznačnosti 29 pravdepodobnost a posteriori 56 a priori 49 pozorovanáa 56 primitivnáí polynom 79 pseudonaáhodnáa posloupnost 75 pseudonáhodná generátor 253 R redundance 65 prirozeneho jazyka 60 registr 76 S skytáala 12 součin sifrovacích systemu 59 statistická analyza 17 substituční algoritmus 13 Š sifrovací algoritmus 48 asymetrická 11 symetrická 11 sifrovací system 48 polynomiálne bezpečná 249 sifrovaánáí 12 T transpoziční algoritmus 13 tráídenáí 87 V vázená součet sifrovacích systemu 59 Vigenerevo sifrování 30 Vigeneruv čtverec 32 vápočetní slozitost 85 W William Frederick Friedman 35 Z zámenná (afinní) sifra 22 zdroj bez pameti 50 Zipfovo pravidlo 64 zpráava 12, 48