- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiál´avou. Jelikoˇz xor je komutativn´ı funkce, m˚uˇzeme
v tomto pˇr´ıpadˇe v´ypoˇcet paralelizovat.
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
20 Kapitola 3. Stavebn´ı bloky kryptografie
3.3.2 HMAC
Jednazobvyklejˇs´ıch funkc´ı,kter´ajedefinov´anavRFC 2104. Z´akladn´ıvzorecv´ypoˇctu
je n´asleduj´ıc´ı.
HMACK(m) = (K⊕opad||h((K⊕ipad]||m))
Na zpracov´an´ı jednoho bloku je moˇzn´e aplikovat nˇekolik iterac´ı haˇsovac´ı funkce.
K diskusi, jestli je lepˇs´ı pouˇz´ıvat blokov´e ˇsifry, nebo haˇsovac´ı funkce je vhodn´e
uv´est, ˇze jsou znaˇznˇe rychlejˇs´ı oproti blokov´ym ˇsifr´am. U haˇsofac´ıch funkc´ı se uv´ad´ı
rychlostmenˇs´ıneˇz1Problokov´eˇsifry seuv´ad´ırdhlost4bityzasekundu.uhaˇsovac´ıch
funkc´ı pak pouze 1 bit.
3.4 Gener´atory pseudon´ahodn´ych ˇc´ısel – PRNG
Jakmile se rozhodneme zaˇc´ıt pouˇz´ıvat kryptografii, tak nutnˇe zaˇcneme potˇrebovat
n´ahodn´a data – a ne jak´akoliv n´ahodn´a data, ale opravdu nepˇredv´ıdateln´a. V poˇc´ıta-
ˇc´ıch jsou obvykle implementov´any velice jednoduch´e gener´atory n´ahodn´ych dat –
tzv. gener´atory pseudon´ahodn´ych dat (PRNG). Pˇr´ıdavn´e jm´eno pseudon´ahodn´y se
pouˇz´ıv´a proto, ˇze tato data jsou generov´ana pomoc´ı nˇejak´e funkce a nejsou tedy
´uplnˇe n´ahodn´a. PRNG naprosto postaˇcuj´ı pro bˇeˇzn´e poˇc´ıtaˇcov´e aplikace, i pro ´uˇcely
r˚uzn´ych simulaˇcn´ıch program˚u. V kryptografii bychom ovˇsem s tˇemito jednoduch´ymi
gener´atory pˇr´ıliˇs dlouho nevystaˇcili, takˇze bylo postupnˇe definov´ano nˇekolik kryp-
tograficky bezpeˇcn´ych PRNG, z nichˇz nˇekter´e si nyn´ı pop´ıˇseme.
Z´akladn´ı struktura PRNG je na obr. !!!!. Na vstupu je nepˇredv´ıdateln´y bin´arn´ı
ˇretˇezec a po zpracov´an´ı v PRNG, kter´y kromˇe nˇejak´e funkce (tato obsahuje alespoˇn
jednu kryptografickou funkci) obsahuje i vnitˇrn´ı stav, je vytvoˇrena pseudon´ahodn´a
bin´arn´ı sekvence. Jak vid´ıte, tak bezpeˇcnost PRNG je zaloˇzena na tˇrech pˇredpokla-
dech:
• nepˇredv´ıdatelnost vstupu
• bezpeˇcnosti (jednosmˇernosti) vnitˇrn´ı funkce PRNG
• d˚uvˇernosti vnitˇrn´ıho stavu PRNG
Kvalita PRNG je podle definice odvozena od obt´ıˇznosti odliˇsit v´ystup PRNG
od n´ahodn´e sekvence – ´utoˇcn´ık tedy ve chv´ıli ´utoku dostane k dispozici dva bin´arn´ı
ˇretˇezce, z nichˇz jeden je v´ystupem PRNG a druh´y je n´ahodn´a sekvence. Vzhledem k
tomu, ˇze bezpeˇcnost PRNG je zaloˇzena na v´yˇse uveden´ych tˇrech bodech, tak ´utoˇcn´ık
m˚uˇze zvolit jeden z n´asleduj´ıc´ıch tˇr´ı pˇr´ıstup˚u:
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
3.4. Gener´atory pseudon´ahodn´ych ˇc´ısel – PRNG 21
1. Pˇr´ımy kryptoanalytick´y ´utok – ´utoˇcn´ık analyzuje vnitˇrn´ı funkci a pˇr´ım´ym ´utokem
na kryptografickou bezpeˇcnost t´eto funkce bude schopen rozliˇsit v´ystup PRNG
od n´ahodn´e sekvence.
2. ´Utok zaloˇzen´y na vstupu – ´utoˇcn´ık bude kontrolovat vstup do PRNG a vhod-
nou manipulac´ı dos´ahne stavu, kdy je opˇet schopen rozliˇsit PRNG od n´ahodn´e
sekvence.
3. Rozˇs´ıˇren´ı kompromitace stavu – v tomto pˇr´ıpadˇe se ´utoˇcn´ık bude snaˇzit vyuˇz´ıt
znalosti vnitˇrn´ıho stavu pro identifikaci v´ystupu PRNG. V´ysledek ´utoku m˚uˇze
b´yt v nˇekolika podob´ach. ´Utoˇcn´ık m˚uˇze b´yt schopen postupovat zp´atky v ˇcase a
rozˇsiˇrovat znalostvnitˇrn´ıhostavu odurˇcit´eho okamˇziku zp´atky. M˚uˇze b´yt schopen
doc´ılit trval´e kompromitace vnitˇrn´ıho stavu, kdy PRNG nen´ı schopen obnovit
d˚uvˇernost vnitˇrn´ıho stavu a ´utoˇcn´ık bude zn´at vnitˇrn´ı stav neomezenˇe. Jestliˇze
se podaˇr´ı zjistit vnitˇrn´ı stav ve dvou ˇcasov´ych bodech, tak m˚uˇze postupovat od
tˇechto bod˚u dovnitˇr intervalu a odhalit vnitˇrn´ı stav po celou dobu mezi tˇemito
dvˇema okamˇziky. Posledn´ı moˇznost´ı je, ˇze se ´utoˇcn´ık bude pokouˇset o iterativn´ı
h´ad´an´ı a postupnˇe zpˇresˇnovat svoji znalost aˇz do ´upln´e kompromitace vnitˇrn´ıho
stavu.
3.4.1 ANSI X9.17 PRNG
Vnitˇrn´ı funkce tohoto gener´atoru (jak je zobrazena na obr. !!!!) je zaloˇzena na pouˇzit´ı
algoritmu 3DES (algoritmus DES, kdy jsou pouˇzity 3 kl´ıˇce, prvn´ım se blok dat
zaˇsifruje, druh´ym kl´ıˇcem se odˇsifruje a tˇret´ım se opˇet zaˇsifruje). Nepˇredv´ıdateln´y
vstup se pouˇz´ıv´a jako sem´ınko (seedi) a krom tohoto vstupu je dalˇs´ım zdrojem
n´ahodnosti aktu´aln´ı ˇcasov´e raz´ıtko.
Posledn´ı v´ystup je xorov´an s Ti zaˇsifrovanou hodnotou ˇcasov´eho raz´ıtka, toto
je opˇet zaˇsifrov´ano a v´ysledek je uloˇzen jako aktu´aln´ı sem´ınko. Tj. sem´ınko je
bud’ vloˇzeno zvenˇc´ı jako n´ahodn´a data, nebo je poˇc´ıtano z posledn´ıho v´ystupu a
aktu´aln´ıho ˇcasu. Sem´ınko je pak xorov´ano s hodnotou Ti a v´ysledek je zaˇsifrov´an.
Tento PRNG tedy poskytuje 64 bitov´e bloky pseudon´ahodn´ych dat. Pokud je
tˇreba z´ıskat vˇetˇs´ı mnoˇzstv´ı dat, tak je tˇreba popsan´y v´ypoˇcet opakovat.
Jak funguj´ı na tento PRNG jednotliv´e typy ´utok˚u?
´Utok rozˇs´ıˇren´ım vnitˇrn´ıho stavu Jestliˇze se ´utoˇcn´ıkovi podaˇr´ı zjistit hodnotu
K kl´ıˇce, kter´y je pouˇz´ıv´an ve funkci 3DES, tak se bezpeˇcnost PRNG nikdy neob-
nov´ı.
Backtracking Backtracking funguje, podobnˇe jako posun dopˇredu za pˇredpokladu
znalosti kl´ıˇce.
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
22 Kapitola 3. Stavebn´ı bloky kryptografie
Meet-in-the-middle Pˇredpokl´adejme, ˇze zn´ame seedi a seedi+8. Jestliˇze se poku-
s´ımeuhodnoutˇctveˇrice Ti+1,...,Ti+4 aTi+5,...,Ti+8 anajejich z´akladˇe spoˇc´ıtat
hodnoty vnitˇrn´ıho stavu seedi+4 vytvoˇren´ım dvou mnoˇzin potenci´aln´ıch hod-
not, tak pokud se n´am to podaˇr´ı, tak spr´avn´a hodnota bude v obou mnoˇzin´ach.
Celkovˇe tedy sniˇzujeme entropii na polovinu.
3.4.2 DSA PRNG – NIST
Tento PRNG je znaˇcnˇe rychlejˇs´ı na v´ypoˇcet oproti pˇredchoz´ımu X9.17. Ve struktuˇre
funkce je pouze jeden v´yskyt haˇsovac´ı funkce, kter´a m˚uˇze b´yt implementov´ana bud’
pomoc´ı SHA-1, nebo 3DESu. Zbytek funkce jsou v podstatˇe jen dva souˇcty, kter´e
maj´ı za ´ukol aktualizovat vnitˇrn´ı stav Xi a kombinovat vnitˇrn´ı stav se n´ahodn´ym
vstupem Wi, pokud existuje.
Vzhledem k velmi jednoduch´e aritmetice uvnitˇr funkce je moˇzn´e vhodnˇe volit
n´ahodn´y vstup a t´ım doc´ılit opakov´an´ı v´ystupu:
Wi = Wi−1−outputi1−1
Tak´e je moˇzn´e ze zn´am´ych hodnot v´ystupu a vnitˇrn´ıch stav˚u dopoˇc´ıt´avat pˇred-
choz´ı v´ystupy:
outputi = Xi+2−Xi−2−outputi
Jestliˇze shrneme pˇredchoz´ı ´utoky, tak tento PRNG nelze urˇcitˇe doporuˇcit jako
univerz´aln´ı kryptografick´y gener´ator pseudon´ahodn´ych dat.
3.4.3 RSAREF PRNG
RSAREF je (ale hlavnˇe byla) velmi popul´arn´ı kryptografick´a knihovna. Jako prvn´ı
implementovala RSA a byla vytvoˇrena firmou RSA. Knihovna jako takov´a byla rel-
ativnˇe jednoduch´a na pouˇz´ıv´an´ı, naps´ana v jazyce C a dodnes se celkem hodnˇe
pouˇz´ıv´a. V r´amci t´eto knihovny byl implementov´an i gener´ator pseudon´ahodn´ych
ˇc´ısel.
PRNG m´a vlastn´ı vnitˇrn´ı stav Ci, kter´y je upravov´an jednak po vstupu dalˇs´ıho
n´ahodn´ehoˇretˇezce Xi a tak´e inkrementov´an s kaˇzd´ym nov´ym spuˇstˇen´ım gener´atoru.
PRNG je postaven na funkci MD5, takˇze v´ystupem je vˇzdy 128 bit˚u.
Na tento PRNG je moˇzn´e aplikovat ´utok se zvolen´ym vstupem, kter´y umoˇzˇnuje
zkr´atit cyklus, po kter´em se v´ystup zaˇcne opakovat. Je moˇzn´e relativnˇe ´uspˇeˇsnˇe
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
3.5. Blokov´e ˇsifry 23
pouˇz´ıt i ´utok s iterativn´ım h´ad´an´ım a backtracking. Podstatn´ym pozorov´an´ım je, ˇze
vnitˇrn´ı stav je ovlivˇnov´an zp˚usobem, kter´y zajiˇst’uje komutivitu vstupu – nez´aleˇz´ı,
v jak´em poˇrad´ı je vstup vkl´ad´an, v´ysledek bude vˇzdy stejn´y.
3.4.4 Cryptlib PRNG
TBD
3.5 Blokov´e ˇsifry
Blokov´e ˇsifry, jak napov´ıd´a jejich n´azev, ˇsifruj´ı text po menˇs´ıch bloc´ıch. Velikost
tˇechto blok˚u se r˚uzn´ı, ale typicky je 64, 80, 128 bit˚u. ˇSifrov´an´ı prob´ıh´a tak, ˇze se
vezme pˇr´ısluˇsn´a ˇc´ast ˇcist´eho textu, zaˇsifruje se a v´ysledek se uloˇz´ı do v´ystupn´ıho
souboru. Jestliˇze bychom ale zpracov´avali bloky samostatnˇe, tak by ´utoˇcn´ık mohl
zaˇsifrovan´e bloky vymˇeˇnovat, mazat, nebo nahrazovat jin´ymi. Jestliˇze bychom napˇr.
zaˇsifrovali pˇr´ıkaz k bankovn´ımu pˇrevodu, tak ´utoˇcn´ıky by mohl blok obsahuj´ıc´ı
ˇc´astku nahradit jin´ym blokem – s jinou ˇc´astkou. Je moˇzn´e se proti tomuto br´anit?
Moˇzn´e to je t´ım, ˇze jednotliv´e bloky k sobˇe logicky sv´aˇzeme. K tomu slouˇz´ı r˚uzn´e
m´ody pouˇz´ıv´an´ı blokov´ych ˇsifer.
3.5.1 M´ody blokov´ych ˇsifer
Jestliˇze budou bloky textu zpracov´av´any nez´avisle, tak ´utoˇcn´ık m˚uˇze volnˇe manip-
ulovat s bloky textu, jako se skl´adankou. M´od, kter´y toto umoˇzˇnuje se naz´yv´a ECB
(electronic code book). Tento m´od je vhodn´e pouˇz´ıvat pˇri ˇsifrov´an´ı kr´atk´ych zpr´av,
nebo jestliˇze bychom chtˇeli vytvoˇrit obdobu k´odov´e knihy.
Asi nejzn´amˇejˇs´ım m´odem, kter´y uˇz propojuje jednotliv´e bloky je CBC (cipher
block chaining) adalˇs´ı dvaz´akladn´ı m´ody jsou OFB(outputfeedback) a CFB(cipher
feedback). Kaˇzd´y m´od m´a specifick´e vlastnosti, jin´e slabiny, jin´e pˇrednosti a pro
kaˇzdou aplikaci je tˇreba uv´aˇzit, kter´y m´od by mˇel b´yt pouˇzit.
Pro popis ˇsifrovac´ıch m´od˚u budeme pouˇz´ıvat n´asleduj´ıc´ı konvenci z´apisu: c0, c1,
..., cj, ...znaˇc´ı bloky ˇsifrov´eho textu. x1, x2, ..., xj, ...oznaˇcuj´ı bloky ˇcist´eho
textu. IV je inicializaˇcn´ı vektor, Ij je blok vstupuj´ıc´ı do ˇsifry a Oj je v´ystup ˇsifry.
EK je oznaˇcen´ı ˇsifry s kl´ıˇcem K a⊕je operace xor.
CBC – Cipher block chaining
N´azev tohoto m´odu je moˇzn´e pˇreloˇzit jako v´az´an´ı ˇsifrov´eho bloku a nejkratˇs´ı popis
je pomoc´ı n´asleduj´ıc´ıch rovnic:
c0 = IV; cj = EK(cj−1⊕xj)
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
24 Kapitola 3. Stavebn´ı bloky kryptografie
Prvn´ı (nult´y) blok ˇsifrov´eho textu je roven inicializaˇcn´ımu vektoru. V re´aln´ych
sch´ematech se IV definuje jako konstanta uˇz ve standardu, coˇz umoˇzˇnuje vynechat
jeho pˇrenos pˇri komunikaci, ale tak´e sniˇzuje bezpeˇcnostˇsifrovac´ıho sch´ematu. Kaˇzd´y
dalˇs´ı blok je zaˇsifrov´an tak, ˇze se nejdˇr´ıve provede bitov´y xor pˇredch´azej´ıc´ıho ˇsifro-
v´eho bloku a bloku ˇcist´eho textu. V´ysledek t´eto operace je pak zaˇsifrov´an a v´ysledek
je nov´ym ˇsifrov´ym blokem.
Cel´aˇsifrov´a zpr´ava sezmˇen´ı, jestliˇze sezmˇen´ı inicializaˇcn´ı vektor, neboprvn´ıblok
ˇcist´eho textu. Jestliˇze tedy standardem zafixujeme inicializaˇcn´ı vektor, tak m˚uˇzeme
velmi snadno zjistit, jak moc se shoduj´ı zaˇc´atky dvou otevˇren´ych text˚u – pouze se
znalost´ı jejich zaˇsifrov´an´ı.
Pro spr´avn´e deˇsifrov´an´ı urˇcit´eho bloku je tˇreba m´ıt spr´avn´y pˇredch´azej´ıc´ı zaˇsifro-
van´y blok. Chyba v jin´ych bloc´ıch nem´a na spr´avnost deˇsifrov´an´ı vliv. Nav´ıc, velikost
chyby m˚uˇzeme snadno odhadnout. Jestliˇze dojde pˇri pˇrenosu zpr´avy k jednobitov´e
chybˇe v bloku cj, tak chyba pˇri deˇsifrov´an´ı bude n´asleduj´ıc´ı:
• zmˇen´ı se polovina bit˚u v bloku xj (toto vypl´yv´a z kryptoanal´yzy, aby ˇsifra byla
kvalitn´ı, je tˇreba aby zmˇena jednoho bitu na vstupu zp˚usobila zmˇenu poloviny
bit˚u na v´ystupu),
• dojde k jednobitov´e zmˇenˇe v bloku xj+1 a to pˇresnˇe toho bitu, kter´y byl zmˇenˇen
v cj.
Podobn´e v´ysledky jsou i u ostatn´ıch m´od˚u. Zaj´ımav´e je, ˇze tyto vlastnosti je
moˇzn´e pouˇz´ıt k ´utoku. Obzvl´aˇstˇe dobˇre pˇri ˇsifrov´an´ı s´ıt’ov´ych protokol˚u, kde je
velk´e mnoˇzstv´ı dat, jejichˇz zmˇena niˇcemu nevad´ı. M˚uˇzeme tak napˇr. c´ılenˇe zmˇenit
IP adresy, nebo r˚uzn´e pˇr´ıznaky, kter´e ovlivˇnuj´ı zp˚usob zpracov´an´ı dat po jejich
deˇsifrov´an´ı.
OFB – Output feedback
Tento m´od m˚uˇze m´ıt dvˇe verze. V prvn´ıverzi, kter´a je definov´ana v normˇe ISO10116,
je velikost v´ystupn´ıho bloku rovna velikosti bloku ˇsifry. Druh´a verze, jeˇz byla speci-
fikov´ana ve FIPS81 umoˇzˇnuje vytv´aˇret z kaˇzd´eho bloku pr´avˇe r bit˚u, kde r je menˇs´ı,
nebo rovno velikosti bloku ˇsifry. N´asleduj´ıc´ı rovnice jsou pro jednoduchost pro jen
pˇr´ıpad s maxim´aln´ı d´elkou v´ystupu.
I1 = IV, Oj = EK(Ij), cj = xj⊕Oj, Ii+1 = Oi
Kdyˇz se pod´ıv´ame na rovnice, tak zjist´ıme, ˇze vstup pro ˇsifrov´an´ı v˚ubec nez´aleˇz´ı
naˇcist´em textu,ale pouzenainicializaˇcn´ım vektoru akl´ıˇci. Jin´ymislovy,ˇsifrafunguje
jako gener´ator pseudon´ahodn´eho ˇretˇezce, kter´y se xoruje s otevˇren´ym textem.
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
3.5. Blokov´e ˇsifry 25
A jak v tomto pˇr´ıpadˇe ovlivn´ı chyba pˇri pˇrenosuˇsifrov´eho textu otevˇren´y text po
deˇsifrov´an´ı? D´ıky tomu, ˇze generovan´y proud se xoruje pˇri deˇsifrov´an´ı se ˇsifrovan´ym
textem, tak jednobitov´a chyba/zmˇenaˇsifrov´eho textu zapˇr´ıˇcin´ı zmˇenu pr´avˇe jednoho
bitu v deˇsifrovan´em textu.
Jestliˇze dojde ke ztr´atˇe bit˚u, nebo cel´ych blok˚u, tak uˇz nen´ı moˇzn´e prov´est resyn-
chronizaci a eliminovat tak chybu.
CFB – Cipher feedback
Posledn´ım zeˇctyˇr z´akladn´ıch m´od˚u je CFB – zpˇetn´a vazba pˇresˇsifrov´y text. V tomto
pˇr´ıpadˇe je vstupem ˇsifry aˇz v´ysledek operace xor na pˇredchoz´ı v´ystupn´ı blok ˇsifry s
otevˇren´ym textem (ˇsifrov´y text) – jak m˚uˇzete vidˇet v n´asleduj´ıc´ıch rovnic´ıch.
I1 = IV, Oj = EK(Ij), cj = xj⊕Oj, Ij+1 = cj
Tento m´od je samosynchronizuj´ıc´ı podobnˇe jako CBC. A jak´y je vliv chyby v
ˇsifrov´em textu na otevˇren´y text po deˇsifrov´an´ı? Zmˇena jednoho bitu v bloku cj
zp˚usob´ı.
• zmˇenu toho sam´eho bitu v xj a
• zmˇemu poloviny bit˚u v xj+1.
V tomto, stejnˇe jako v pˇredchoz´ım m´odu (OFB) se pouˇz´ıv´a pouze ˇsifrov´an´ı,
deˇsifrov´an´ı nen´ı potˇreba. Toto m˚uˇze b´yt v´yhodn´e v pˇr´ıpadˇe, kdy m´ame omezen´e
prostˇredky pro implementaci ˇsifry.
A jeˇstˇe dalˇs´ı m´ody ...
Celkov´y poˇcet m´od˚u pro ˇsifrov´an´ı je ovˇsem mnohem vˇetˇs´ı. Mezi dalˇs´ı nejzn´amˇejˇs´ı
jsou napˇr. m´ody zaloˇzen´e na ˇc´ıtaˇci, nebo zpˇetnou vazbou pˇres kl´ıˇc. Napˇr. pro ˇsifru
AES bylo navrˇzeno pˇres dvacet r˚uzn´ych m´od˚u.
CTR (counter mode) m´od, ˇc´ıtaˇcov´y, spoˇc´ıv´a v tom, ˇze m´ısto vazby s pˇredchoz´ım
blokem je pouˇzita vazba s hodnotou inkrement´aln´ıho ˇc´ıtaˇce. Takˇze napˇr. druh´y blok
je v´az´an s ˇc´ıslem 2, tˇret´ı blok s ˇc´ıslem 3, atd. Je to vlastnˇe zjednoduˇsen´y OFB m´od,
kter´y umoˇzˇnuje paraleln´ı zpracov´an´ı dat, nebo zpracov´an´ı (ˇsifrov´an´ı/deˇsifrov´an´ı)
blok˚u mimo poˇrad´ı.
M´od KFB (key feedback) v´aˇze bloky k sobˇe tak, ˇze v´ystup ˇsifrov´an´ı bloku xj je
pouˇzit jako kl´ıˇc pro ˇsifrov´an´ı bloku xj+1.
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
26 Kapitola 3. Stavebn´ı bloky kryptografie
ABC m´od (accumulated block chaining) je n´aroˇcnˇejˇs´ı na v´ypoˇcet, protoˇze pro
ˇsifrov´an´ı bloku xj je tˇreba pouˇz´ıt bloky xj−1, xj a cj. Posledn´ım pˇr´ıkladem, kter´y si
kr´atcezm´ın´ımejeIGE(infinitegarbleextension), kter´y jepoˇc´ıt´an podlen´asleduj´ıc´ıch
rovnic:
y0 = f(r0), x0 = r0,yi = E(xi⊕yi−1)⊕xi−1
3.6 Proudov´e ˇsifry
Dan Cvrcek, DRAFT VERSION; printed on 29. ledna 2006
DRAFT Not Proofread
27
Kapitola 4
Kryptoanal´yza
Jestliˇze se dnes vyuˇcuje kryptoanal´yza, tak se obvykle zaˇc´ın´a obdob´ım druh´e svˇetov´e
v´alky. Do jist´e m´ıry je to pochopiteln´e, protoˇze v t´e dobˇe dos´ahli kryptologov´e
obrovsk´ych ´uspˇech˚u. Nav´ıc jetoto obdob´ıuˇz dostateˇcnˇe v minulosti, takˇze vˇetˇsina in-
formac´ı uˇz je dostupn´a a kryptoanalytick´e ´uspˇechy se tak daj´ı velice dobˇre vykl´adat.
Na druhou stranu, i v ned´avn´e minulosti se podaˇrilo dos´ahnout obrovsk´ych
pokrok˚u v kryptoanal´yze, kter´e mˇeli i praktick´y dopad na mnoh´e obecnˇe pouˇz´ıvan´e
aplikace. Moˇzn´a jim ale st´ale chyb´ı urˇcit´e tajemno a tuˇsen´ı obrovsk´ych dopad˚u, kter´e
jsou spojeny s v´alkou a tak se obvykle na prvn´ı str´anky novin nedostanou. V t´eto
kapitole se tedy budeme vˇenovat nˇekolika pˇr´ıklad˚um kryptoanal´yzy z ned´avn´e min-
ulosti a na z´avˇer se pˇreci jen lehce zm´ın´ıme i o Enigmˇe a pˇr´ıˇcin´ach jej´ıho tot´aln´ıho
selh´an´ı. Naˇs´ım c´ıle bude uk´azat, ˇze kryptoanal´yza nen´ı jen vˇec´ı tajn´ych a tajemn´ych
oddˇelen´ı utajen´ych nˇekde v hlubin´ach arm´adn´ıch, ˇci jin´ych st´atn´ıch agentur, ale
ˇze se jedn´a o oblast skuteˇcnˇe aktu´aln´ı, kter´a ovlivˇnuje bezpeˇcnost vaˇs´ı elektronick´e
poˇsty, internetov´eho spojen´ı s obchodn´ım partnerem, nebo kdo vlastnˇe poslouch´a
vaˇse telefonn´ı hovory.
4.1 Virtu´aln´ı (ne)priv´atn´ı s´ıt’
Firma Microsoft, jakoˇzto dodavatel vˇseobecnˇe pouˇz´ıvan´ych operaˇcn´ıch syst´em˚u m´a
velk´y z´ajem o rozˇsiˇrov´an´ı jejich moˇznost´ı a jednou z mnoha oblast´ı, kter´e se dostali
na st˚ul tˇem spr´avn´ym manaˇzer˚um byly virtu´aln´ı priv´atn´ı s´ıtˇe. V´ysledkem byla im-
plementace konkr´etn´ıho protokolu, kter´y je dostupn´y pˇr´ımo z operaˇcn´ıho syst´emu.
Virtu´aln´ı priv´atn´ıs´ıt’ˇreˇs´ı jeden z velk´ych probl´em˚u Internetu, kter´ym jeveˇrejnost
dat, kter´e jsou pˇres nˇej pos´ıl´ana. Data jsou transportov´ana od odesilatele k pˇr´ıjemci
v otevˇren´e podobˇe, takˇze kdokolivˇsikovn´y, kdo si pˇripoj´ı poˇc´ıtaˇc na m´ısto, pˇres kter´e
data proch´azej´ı, tak si je m˚uˇze prohl´ednout. Tato jednoduchost je trochu zhorˇsena
t´ım,ˇze nikdo dopˇredu na sto procent nev´ı, kudy se budou data pos´ılat, ale na druhou
DRAFT Not Proofread
28 Kapitola 4. Kryptoanal´yza
stranu m˚uˇze b´yt toto nepˇr´ıjemn´e i pro odesilatele a pˇr´ıjemce. Jedn´ım z pouˇz´ıvan´ych
ˇreˇsen´ı je vytvoˇren´ı tzv. virtu´aln´ı priv´atn´ı s´ıtˇe (virtual private network – VPN).
Virtu´aln´ı priv´atn´ı s´ıtˇe je tvoˇrena jak´ymisi tunely, kter´e se podle potˇreby vytv´aˇrej´ı
mezi uˇzivateli dan´e virtu´aln´ı priv´atn´ı s´ıtˇe. Slovo tunel se pro spojen´ı pouˇz´ıv´a proto,
ˇze data je moˇzn´e ˇc´ıst, nebo nepozorovanˇe mˇenit jen na koncov´ych bodech tohoto
spojen´ı. Vˇsechny tyto vlastnosti jsou samozˇrejmˇe zajiˇstˇeny kryptografick´ymi pro-
tokoly.
Firma Microsoft pro tento ´uˇcel navrhla a implementovala protokol PPTP (point-
to-point tunelling protocol), coˇz je doslovnˇe tunelovac´ı protokoly pro dva body. Pro-
tokol pouˇz´ıv´a port 1723, nedefinuje ˇz´adn´e specifick´e kryptografick´e algoritmy a jeho
prvn´ı verze byla implementov´ana v operaˇcn´ıch syst´emech Window 98, Me a Win-
dows NT. Cel´y protokol m´a dvˇe ˇc´asti – autentizaci a vytvoˇren´ı ˇsifrovan´eho spojen´ı
(tunelu). V n´asleduj´ıc´ıch ˇr´adc´ıch n´as bude zaj´ımat hlavnˇe ˇc´ast autentizaˇcn´ı.
4.1.1 Autentizace MS-CHAP
Protokol PPTP umoˇzˇnuje tˇri zp˚usoby autentizace. Prvn´ım je posl´an´ı hesla v ˇcist´e
podobˇe. To mimo jin´e znamen´a, ˇze kdo poslouch´a vaˇse spojen´ı, tak z´ısk´a okamˇzitˇe
heslo a bezpeˇcnost vˇsech protokol˚u, kter´e jsou na hesle postaveny je t´ım p´adem
zanedbateln´a. Druhou moˇznost´ı je posl´an´ı heˇse zpr´avy. Z pohledu ´utoˇcn´ıka je toto
t´emˇeˇr totoˇzn´e s prvn´ı moˇznost´ı, s jedin´ym rozd´ılem – pˇri ´utoku mus´ı pouˇz´ıt speci´aln´ı
program,kter´y nahrad´ıp˚uvodn´ızpracov´an´ı zadan´eho hesla uˇz pˇripravenou hodnotou
heˇse.
Tˇret´ı moˇznost´ı je pouˇz´ıt protokol MS-CHAP (Microsoft Challenge Authentica-
tion Protocol), coˇz je protokol typu v´yzva odpovˇed’. Pro rozumn´e zajiˇstˇen´ı bezpeˇc-
nosti vytv´aˇren´e VPN je MS-CHAP jedinou rozumnou volbou, takˇze se j´ı budeme
podrobnˇeji zab´yvat. Jak uˇz napov´ıd´a n´azev protokolu, tak klient nem˚uˇze zaslat au-
tentizaˇcn´ı zpr´avu s´am, ale mus´ı nejdˇr´ıve poˇz´adat server o zasl´an´ı v´yzvy. Uk´azka
cel´eho protokolu je na n´asleduj´ıc´ım obr´azku XXXX
´Uvodn´ı zpr´ava klienta: c0 21 01 00 00 13 03 05 c2 23 80
2B – urˇcen´ı protokolu (LCP packet), 1B – typ zpr´avy v protokolu (konfiguraˇcn´ı
ˇz´adost), 1B identifikace ???, 1B – d´elka dat (0), 1B – typ konfigurace (autentizace),
1B – voliteln´a d´elka pro CHAP (05), 2B identifikace protokolu pro dalˇs
Vloženo: 26.04.2009
Velikost: 607,19 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Copyright 2024 unium.cz