Intro('┌toky na algoritmy jsou nejΦast∞ji pracφ kryptoanalytik∙. Jednß se o hledßnφ chyb nejΦast∞ji v nßvrzφch algoritm∙. Samoz°ejm∞ m∙₧ou takΘ najφt chybu v n∞jakΘ konkrΘtnφ implementaci, tj. nejΦast∞ji v Üifrovacφm programu, ale to je o n∞Φem ·pln∞ jinΘm. ');
Podle zp∙sobu provedenφ m∙₧eme rozd∞lit ·toky na algoritmus do n∞kolika druh∙ :
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
┌tok bez znßmΘho originßlu, (anglicky Ciphertext-only attack), v praxi nejpot°ebn∞jÜφ druh ·toku, spoΦφvß v nalezenφ nezaÜifrovanΘ zprßvy korespondujφcφ se znßmou zprßvou zaÜifrovanou. Kryptoanalytik znß tedy zm∞¥ znak∙ a algoritmus, p°iΦem₧ se po n∞m chce, aby naÜel nezaÜifrovan² originßl, tj. plaintext. Vedle toho ·tok se znßm²m originßlem, (Known plaintext attack), spoΦφvß v nalezenφ klφΦe jako "spojku" mezi znßm²m nezaÜifrovan²m originßlem a znßm²m zaÜifrovan²m prot∞jÜkem. Pou₧φvß se v p°φpad∞, ₧e p°edpoklßdßme existenci vφce zprßv nebo Φßstφ textu zaÜifrovan²ch stejn²m heslem; poΦφtß se, ₧e zφskan²m heslem se potΘ deÜifruje zbylß komunikace. V rßmci ·toku se znßm²m originßlem se takΘ velmi Φasto odliÜuje ┌tok s vybran²m originßlem (Chosen plaintext attack), co₧ je n∞co podobnΘho, ovÜem s tφm rozdφlem, ₧e strana sna₧φcφ se zprßvu deÜifrovat nezφskß originßl k jednomu urΦitΘmu zaÜifrovanΘmu textu, ale n∞jak²m zp∙sobem "donutφ" druhou stranu zaÜifrovat jakΘkoliv mno₧stvφ dat. Znamenß to tedy, ₧e si m∙₧e originßl a korespondujφcφ zaÜifrovan² text vybrat a nemusφ ·tok provßd∞t podle toho, co mß k dispozici. Dob°e se to p°edstavuje jako Φernß sk°φnka, do kterΘ se strkajφ z jednΘ strany texty a z druhΘ vypadßvajφ zaÜifrovanΘ depeÜe. Kryptoanalytik znß algoritmus, ale ne heslo.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Specißln∞ v souvislosti s Chosen plaintext attackem se Φasto objevuje pojem Timing attack, nejlepÜφ Φesk² ekvivalent by asi byl "·tok na zßklad∞ prodlevy". P°esto₧e jde spφÜe o ·tok na konkrΘtnφ implementaci, nem∞l by b²t opomφjen. Princip sßm o sob∞ je relativn∞ jednoduch² : v p°φpad∞, ₧e se na Üifrovacφm klφΦi zßvisφ poΦet n∞jak²ch operacφ, m∙₧eme po "prohnßnφ" dostateΦnΘho mno₧stvφ dat v²Üe zmi≥ovanou Φernou sk°φ≥kou usoudit n∞co o hesle. P°idßnφ nßhodnΘ prodlevy na zaΦßtek nebo konec algoritmu nepom∙₧e, nebo¥ p°i velkΘm objemu si spoΦφtßm st°ednφ hodnotu a jsem na tom ·pln∞ stejn∞. Zßm∞rn∞ pφÜi n∞co, proto₧e detaily jsou daleko slo₧it∞jÜφ a p°evyÜujφ rßmec tohoto Φlßnku. Navφc bychom se museli bavit o konkrΘtnφch algoritmech.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Kvalitnφ algoritmus musφ b²t odoln² proti vÜem t°em druh∙m ·toku.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Prvn∞ jmenovan² ·tok se m∙₧e zdßt nejΦast∞jÜφ, ale pokud alespo≥ p°ibli₧n∞ znßme charakter zprßvy, m∙₧eme daleko efektivn∞ji vyu₧φt ·tok druh². Skoro ka₧d² soubor mß toti₧ svojφ hlaviΦku, kterß se pohybuje od dvou do p∞ti byt∙, a to u₧ by nßm mohlo pomoci. Takov² dokument psan² ve Wordu mß hlaviΦku jist∞ daleko v∞tÜφ, navφc nemusφ jφt jen o ni. Momentßln∞ m∞ napadjφ grafickΘ formßty, nap°φklad ka₧d² obrßzek ve formßtu BMP mß v sob∞ bez hlaviΦky v definici barevnΘ palety 256 rezervovan²ch byt∙, nejΦast∞ji nastaven²ch na nulu. Tak₧e celkov² postup bude takov², ₧e nejprve odhadneme, kterou sekvenci znßme, provedeme na nφ known plaintext attack a se zjiÜt∞n²m heslem deÜifrujeme zbytek dokumentu. Stejn∞ dob°e jako hlaviΦku m∙₧eme pou₧φt cokoliv, o Φem p°edpoklßdßme, ₧e se v dokumentu vyskytuje. Znalost podpisu na konci, zvlßÜt∞ pokud jde o popis-nepodpis generovan² poÜtovnφm programem, je takΘ u₧iteΦnß v∞c. Pokud odpovφdßte na e-mail, vßÜ poÜtovnφ program nejspφÜ na zaΦßtek p°ihodφ n∞co jako ---Original message follows---. Pokud pou₧φvßte extra slabou Üifru (prost² XOR apodà), toto ·toΦnφkovi staΦφ na deÜifrovßnφ celΘho dopisu. Siln² algoritmus, tedy ten, kter² jedin∞ se vyplatφ pou₧φvat, by m∞l b²t odoln² proti vÜem t°em druh∙m ·toku.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
╚etli jste Vernovku Osm tisφc mil po Amazonce? Romßn zaΦφnß dvaceti °ßdky Üifry, nßsleduje d∞j a ·pln∞ na konci dojde k rozluÜt∞nφ zprßvy tak, ₧e se vypßtrß pisatelovo jmΘno a na poslednφ znaky zprßvy (podpis) se v principu pou₧ije known plaintext attackà
</DIV></FONT></b></i>
<A Name="Title1"><FONT Size=3><DIV Class=Headline>Brute force, neboli ·tok hrubou silou</DIV></font>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
┌tok hrubou silu p°edstavuje prostΘ vyzkouÜenφ vÜech mo₧nostφ. Jednß se obvykle o ·tok se znßm²m originßlem, tedy alespo≥ k Φßsti zaÜifrovanΘho textu je pot°eba znßt kus originßlu (podle toho deÜifrovacφ program toti₧ poznß, ₧e se prßv∞ strefil do sprßvnΘho klφΦe...). Odolnost proti tomuto zp∙sobu ·toku je p°φmo spjatß s dΘlkou klφΦe.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Nejsm∞rodatn∞jÜφ bude, pokud se dovφme kolik kombinacφ m∙₧e n∞kdo zkusit p°i urΦitΘm pen∞₧nφm vkladu za urΦit² Φas. P°i t∞chto ·vahßch musφme mφt na z°eteli p°edevÜφm nßsledujφcφ fakta:
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
1. èifrujeme pro to, aby si nikdo neΦetl naÜe zprßvy nejen dnes nebo zφtra, ale taky za jeden, dva p∞t, deset nebo padesßt let, co₧ znamenß vzφt v ·vahu nßr∙st v²konu poΦφtaΦ∙. Ten mß exponencißlnφ charakter a meziroΦnφ nßr∙st se podle r∙zn²ch zdroj∙ pohybuje od 160 do 180 procent za rok. Pro jednoduchost budeme poΦφtat, ₧e za ka₧d²ch p∞t let vzroste v²kon poΦφtaΦ∙ desetkrßt, co₧ tak p°ibli₧n∞ odpovφdß v²Üe uvßd∞n²m hodnotßm.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
2. ╚eho bude p°i ·toku pou₧ito. Nabφzejφ se dv∞ mo₧nosti : hardware a software. Ka₧dß z nich mß svoje v²hody a nev²hody. Pokud pou₧ijeme hardware, k samotnΘmu zkouÜenφ budou pou₧ity optimalizovanΘ Φipy. Pokud je n∞jakß v∞c na n∞co optimalizovanß, znamenß to, ₧e je svΘmu ·Φelu Üitß jaksi na mφru a ₧e se jejφm pou₧itφm zφskß obecn∞ nejlepÜφch mo₧n²ch v²sledk∙. Tuto mo₧nost si ovÜem nem∙₧e dovolit jen tak ka₧d² a ne v₧dy se to vyplatφ. Nejznßm∞jÜφ hardware na ·tok hrubou silou je kdysi tolik dΘmonizovan² DES Cracker. Obecn∞ crackovacφ Φipy jsou malß elektronickß za°φzenφ vyrobenß nejen pouze na deÜifrovßnφ Üifer, ale taky p°φmo na mφru algoritmu, kter² se budeme pokouÜet prolomit. VyzkouÜenφ urΦitΘho poΦtu mo₧nostφ trvß hardwarov²mi prost°edky a₧ desettisφckrßt kratÜφ dobu.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
SoftwarovΘ "bruteforcovßnφ" probφhß obvykle na normßlnφch domßcφch poΦφtaΦφch, proto se v tabulkßch nejΦast∞ji uvßdφ zßvislost deÜifrovacφho Φasu na dΘlce klφΦe p°i poΦφtßnφ na n∞jakΘm aktußlnφm stroji, dnes °ekn∞me Pentium III 800 MHz. V²hody jsou z°ejmΘ: deÜifrovat m∙₧e naprosto ka₧d² doma, navφc se dß v²poΦet synchronizovat po Internetu a tak m∙₧ou na jednΘ Üif°e pracovat tisφce lidφ najednou, staΦφ mφt p°ipojenφ k Internetu a nainstalovat si specißlnφ program. Touto metodou cel² sv∞t onoho Φasu dokazoval americkΘ vlßd∞ nesmyslnost omezenφ Üifer na 56 bit∙.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Zde se objevuje jeÜt∞ jeden zajφmav² aspekt, vlastn∞ je to p°φm² d∙sledek technickΘho pokroku v oblasti v²poΦetnφ techniky. P°edstavme si na chvφli, ₧e chceme provΘst n∞jak² nßroΦn² v²poΦet, pro zm∞nu t°eba vyzkouÜet miliardu miliard mo₧nostφ Üifrovacφch klφΦ∙. Mo₧nß se domnφvßte, ₧e platφ Φφm d°φve zaΦneme, tφm d°φve skonΦφme. Ale pozor. U₧ vφme ₧e za p∞t let budou poΦφtaΦe desetkrßt rychlejÜφ, a proto se ukazuje ₧e nenφ nejlepÜφ zaΦφnat s v²poΦtem hned ale je v²hodnΘ naopak n∞jakou dobu poΦkat. Samoz°ejm∞ to nesmφ b²t zase moc dlouho, proto₧e pak by jsme m∞li sice vlastnφ v²poΦet hned, ale na dobu, kdy budeme a₧ tak technologicky vysp∞lφ by jsme Φekali velmi dlouho. Nejideßln∞jÜφ by bylo upgradovat v²poΦetnφ techniku p°φmo v pr∙b∞hu v²poΦtu - to by nßm samoz°ejm∞ zajistilo nejrychlejÜφ mo₧n² v²poΦet a tyto ·vahy by p°estßvaly mφt smysl.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Kdy₧ se bavφme o ·toku hrubou silou, nenφ ·pln∞ od v∞ci znßt urΦitΘ konstanty, resp. jejich dekadickΘ logaritmy (tj. poΦet Φφslic). Dekadick² logaritmus Φφsla 2, log(2) se p°ibli₧n∞ rovnß hodnot∞ 0,3, tedy 2<sup>n</sup> mß p°ibli₧n∞ n*0,3 desetinn²ch mφst. Keyspace 128 bitovΘ Üifry mß tedy v dekadickΘm zßpisu 38 Φφslic. Kdybychom m∞li miliardu dneÜnφch poΦφtaΦ∙, kterΘ by deÜifrovali takovouto Üifru, ka₧d² rychlostφ miliardu operacφ za sekundu, trvalo by to stßle dΘle ne₧ existuje vesmφr. V p°φpad∞, ₧e si brute-force nem∙₧eme z n∞jakΘho d∙vodu dovolit, m∙₧eme zkusit tzv. Dictionary attack, (slovnφkov² ·tok), kter² spoΦφvß ve vyzkouÜenφ dlouhΘho seznamu slov jako hesla. Na internetu jsou k dispozici deÜifrovacφ slovnφky ve velikostech °ßdov∞ od stovek kilobyt∙ po desφtky magabytu.
Zde je d∙le₧itΘ °φci, ₧e jednorßzov² blok nenφ Üifra v podob∞ algoritmu, vlastnφ transformace m∙₧e probφhat jakkoliv. Jednorßzov² blok je soubor vlastnostφ, kterΘ musφ Üifrovacφ proces mφt, aby byla Üifra nerozluÜtitelnß. Na poΦφtßnφ se pravda nejΦast∞ji pou₧φvß xor, proto₧e je nejjednoduÜÜφ a deÜifruje se stejn²m zp∙sobem jako Üifruje, ale principieln∞ nic nebrßnφ v pou₧itφ jakΘkoliv jinΘ funkce. D∙le₧itΘ v∞ci jsou, ₧e dΘlka zprßvy nesmφ p°esahovat dΘlku klφΦe a ₧e jeden klφΦ bude pou₧it maximßln∞ jednou. Tyto vlastnosti jsou nutnou a postaΦujφcφ podmφnkou k tomu, aby byl brute force ne·sp∞Ün². P°edstavte si ₧e chcete n∞komu poslat n∞jakou tajnou zprßvu. Pro zjednoduÜenφ n∞jakΘ celΘ Φφslo v rozmezφ 0 a₧ 99 vΦetn∞. Aby byla Üifra naprosto bezpeΦnß, zvolφte jako heslo op∞t jakΘkoliv celΘ v tom samΘm rozmezφ. Nynφ p°ijde vlastnφ Üifrovacφ-transformaΦnφ algoritmus : ke zprßv∞ p°iΦtete heslo a vezmete zbytek po d∞lenφ stem, tj. v naÜem p°φpad∞ odma₧ete prvnφ Φφslici. Tedy pokud vaÜe zprßva byla 87 a heslo 39, v²sledek bude 26. V²sledkem je tedy zaÜifrovanΘ Φφslo. Nynφ se v₧ijme do role Evy, kterß znß algoritmus a tento v²sledek zφskala z VaÜφ e-mailovΘ schrßnky. Sna₧φ se zjistit originßlnφ nezaÜifrovan² text (Φφslo). Zkusφ ·tok hrubou silouàa ouha. VyzkouÜela vÜech sto mo₧nostφ a dostala sto Φφsel. Jedno jako druhΘ. Neexistuje toti₧ mo₧nost jak p°ijφt na to, kter² klφΦ je ten prav², co₧ je zp∙sobeno prßv∞ tφm, ₧e heslo je stejn∞ dlouhΘ jako zprßva. Kdyby Eva cht∞la, m∙₧e si k urΦitΘ zprßv∞ domyslet heslo, aby jφ vyÜel v²sledek deÜifrovßnφ takov² jak² chce, co₧ je pravda pon∞kud absurdnφ. Podmφnka jen jednoho pou₧itφ hesla je obrana proti ·toku se znßm²m originßlem v p°φpad∞ zkompromitovßnφ originßlu. TakΘ musφte zaruΦit aby heslo bylo skuteΦn∞ naprosto nßhodnΘ, ne pouze pseudonßhodnΘ. Pokud by to neplatilo, tak se keyspace (maximßlnφ mno₧stvφ klφΦ∙ kterΘ se musφ hrubou silou vyzkouÜet) redukuje na poΦet vÜech mo₧n²ch stavu automatu, kter² tyto nßhodnß Φφsla generuje. Prosl²chß se, ₧e horkß linka mezi Washingtonem a Moskvou byla zaÜifrovßna pomocφ jednorßzovΘho bloku.