Drobn´y u´vod do matematiky bezpeˇcnosti Martin Ber´anek Stˇredn´ı Sm´ıchovsk´ a pr˚ umyslov´ a ˇskola
17. ledna 2015
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
1 / 105
Co n´as ˇcek´a 1 2
3
4 5 6
7 8 9
´ Uvod Informace! Obsaˇznost jazyka Typy ˇsifer Proudov´a ˇsifra Blokov´a ˇsifra Caesarova ˇsifra Vernamova ˇsifra Spousta teorie Konf´ uze vs dif´ uze P=NP? Exponenci´aln´ı ˇsifra Axiomy Kvadratick´e residuum ˇ Martin Ber´ anek (SSPS)
10 11
12
13 14 15
Gener´atory grupy Prvoˇc´ısla Maska a co s n´ı Inverze Hled´an´ı prvoˇc´ısel Eratosthenovo s´ıto Rabin-Miller Mal´a Fermatova vˇeta Eulerova funkce ˇ C´ınsk´a vˇeta RSA RSA-CRT Feistel˚ uv kryptosyst´em
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
16 17 18 19
20 21 22
23
AES Operaˇcn´ı m´ody RC4 Hash Kolize HMAC Veˇrejn´e kl´ıˇce DSA Model OIS Sluˇzby bezpeˇcnosti Mechanismy bezpeˇcnosti ´ Utoky na bezpeˇcnost Z´avˇer 17. ledna 2015
2 / 105
Worf!
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
3 / 105
Entropie M´ıra neurˇcitosti zpr´avy Entropie vyjadˇruje pr˚ umˇernou informaˇcn´ı hodnotu jedn´e zpr´avy z dan´eho zdroje Co je ale informaˇcn´ı hodnota? Zde pravdˇepodobnost jedn´e zpr´avy zdroje P H(X ) = − ni=1 pi log2 pi Pˇr.: Mˇejme ˇctyˇri zpr´avy ˇcerven´a, ˇzlut´a, zelen´a a b´ıl´a (barvy odjezdov´eho n´avˇestidla na n´adraˇz´ı), ty maj´ı pravdˇepodobnost: 1 1 1 1 4 , 2 , 8 , 4 , potom entropie je rovna: H(X ) = −( 14 log2 14 + 21 log2 12 + 18 log2 18 + 14 log2 14 ) = −( 41 · (−2) + 12 · (−1) + 81 · (−3) + 41 · (−2)) = 1, 75
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
4 / 105
Entropie Maxim´aln´ı entropie nast´av´a, pokud maj´ı vˇsechny zpr´avy stejnou pravdˇepodobnost: H(X ) = log2 (n) Minim´aln´ı nast´av´a, pokud pˇrijde pouze jedna zpr´ava a m´a pravdˇepodobnost 1, potom H(x) = 0 A k ˇcemu n´am to je? K ˇcemu to potˇreboval pan Shannon? K tomu potˇrebujeme nadefinovat hned nˇekolik veliˇcin: ) – Obsaˇznost jazyka pro zpr´avy d´elky N, X je zdroj zpr´avy, RN RN = H(X N potom vr´at´ı pr˚ umˇernou entropii znaku zpr´avy r = limN→∞ RN – Obsaˇznost jazyka vzhledem k 1 p´ısmenu, pr˚ umˇern´a entropie znaku ve zpr´avˇe, pro angliˇctinu r = 1,3 aˇz 1,5 N R = logN2 L = log2 L – Absolutn´ı obsaˇznost jazyka – pr˚ umˇern´a entropie znaku pokud by byly vˇsechny zpr´avy a znaky stejnˇe pravdˇepodobn´e L – poˇcet znak˚ u v abecedˇe LN – poˇcet zpr´av d´elky N vˇsechny stejnˇe pravdˇepodobn´e: p = L1N Entropie takov´eho zdroje H(X 0 ) = log2 LN = N log2 L D = R - r – Redundance jazyka, nadbyteˇcnost ˇ Martin Ber´ H(K )anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
5 / 105
Pˇr´ıklad
Mˇejmˇe AES-256 s d´elkou kl´ıˇce 256 bit˚ u. Touto ˇsifrou zachyt´av´ame text, o kter´em v´ıme, ˇze je v angliˇctinˇe v k´ odov´an´ı ASCII 8-bit. Kolik znak˚ u mus´ıme odchytit, aby mu odpov´ıdala jedin´a smyslupln´a zpr´ava. H(K ) = 256 – entropie kl´ıˇce D = R − r – redundance R = 8 (abeceda je ASCII 8-bit) r = 1, 5 (angliˇctina) D = 8 − 1, 5 = 6, 5 ) 256 δU = H(K D = 6,5 = 39, 38 Staˇc´ı n´am tedy 40 znak˚ u ˇsifrov´eho textu, abychom vˇedˇeli, ˇze text obsahuje jedin´y smyslnupln´y otevˇren´y text.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
6 / 105
Ot´azka!
Kolik znak˚ u ˇsifrov´eho textu by bylo potˇreba s DES?
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
7 / 105
SRSLY?
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
8 / 105
Proudov´a ˇsifra Vigener˚ uv autokl´av ˇ Sifra reaguje na minul´y stav ˇsifrovan´ych dat ˇ Sifrovac´ ı funkce m´a dva vstupy, minul´y kousek dat a kl´ıˇc
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
9 / 105
Proudov´a ˇsifra
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
10 / 105
Blokov´a ˇsifra
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
11 / 105
Caesarova ˇsifra
Kl´ıˇcem je cel´e ˇc´ıslo Kl´ıˇc se pˇriˇc´ıt´a k ˇc´ıseln´e hodnotˇe p´ısmena abecedy Funkce vypad´a pro jedno p´ısmeno: f (a) = |a + k|24 , kde k je kl´ıˇc, a je vstupn´ı znak a 24 je modulo poˇctu symbol˚ u abecedy Deˇsifrov´an´ı obstar´a inverzn´ı funkce: f (b) = |b − k|24 , kde k je kl´ıˇc, b je vstupn´ı znak pro deˇsifrov´an´ı a 24 je modulo poˇctu symbol˚ u abecedy Probl´emem je frekveˇcn´ı anal´yza, kter´a se d´a vygenerovat pro kaˇzd´y jazyk
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
12 / 105
Caesarova ˇsifra
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
13 / 105
Caesarova ˇsifra
K prolomen´ı staˇc´ı vhodnˇe porozumˇet frekvenˇcn´ı anal´yze Vypracujete si ˇcetnost p´ısmen abecedy r˚ uzn´ych jazyk˚ u Podle ˇcetnosti v k´odovan´em textu potom m˚ uˇzete zkusit aplikovat posun
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
14 / 105
Frekvenˇcn´ı anal´yza C# public class FrqAnalys { public Dictionary < char , int > chars ; public string fileName ; public FrqAnalys ( string name ) { chars = new Dictionary < char , int >() ; fileName = name ; } public void countFreq () { Stream s = new FileStream ( fileName , FileMode . OpenOrCreate ) ; StreamReader sr = new StreamReader ( s ) ; string text = sr . ReadToEnd () ; sr . Close () ; for ( int i = 0; i < text . Length ; i ++) { char c = text [ i ]; if ( chars . ContainsKey ( c ) ) chars [ c ]++; else chars . Add (c , 1) ; } } }
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
15 / 105
Vernamova ˇsifra Nejbezpeˇcnˇejˇs´ı ˇsifra Neprolomiteln´a Do dnes pouˇz´ıvan´a (ˇr´ık´a se, ˇze Rusk´ymi agenty) Kl´ıˇc je stejnˇe dlouh´y jako otevˇren´y text Pouˇz´ıv´a se operace XOR˚ u
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
16 / 105
Vernamova ˇsifra
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
17 / 105
Vernamova ˇsifra C++ # include < iostream > # include < string > using namespace std ; char * EnDecrypt ( const string & input , const string & key ) { if ( key . length () != input . length () ) throw string ( " Key or input not same size ! " ) ; char * output = new char [ input . length () ]; for ( unsigned int i =0; i < input . length () ; i ++) { output [ i ]=( input [ i ]^ key [ i ]) ; } return output ; } int main () { string text ( " Hello world ! " ) ; string key ( " abcdefghkijk " ) ; string cipher = string ( EnDecrypt ( text , key ) ) ; cout << EnDecrypt ( cipher , key ) << endl ; return 0; }
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
18 / 105
Konf´uze vs dif´uze
Konf´ uze m´a za u ´kol zmˇenit ˇsifrov´y text tak, ˇze zmˇen´ıme znaky v OT ˇ na jin´e a vytvoˇr´ıme ST I
Pˇr´ıkladem je substituce - t´e se pouˇz´ıv´a v Caesarovˇe ˇsifˇre, ...
ˇ tak, ˇze nen´ı Dif´ uze m´a za u ´kol zmˇenit poˇrad´ı znak˚ u OT do ST um´ıstˇen´ı znak˚ u nen´ı stejn´e (jako, kdybychom podle nˇejak´eho kl´ıˇce zam´ıchali OT) I
Pˇr´ıkladem jsou tˇreba ˇsifry maticov´eho charakteru, tedy Hillova ˇsifra, Transpoziˇcn´ı ˇsifra, ...
A proˇc tyto term´ıny zn´at? Uˇz jen tˇreba kv˚ uli tomu, ˇze modern´ı ˇsifry kombinuj´ı oboje.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
19 / 105
P=NP
P jsou polynomi´aln´ı probl´emy - tedy u ´lohy, kter´e lze ˇreˇsit v polynomi´aln´ım ˇcase I I
I
Hled´an´ı GCD je tˇreba takov´y probl´em V podstatˇe vˇsechny probl´emy, kter´e m˚ uˇzete ˇreˇsit na deterministick´em Turingovˇe stroji Tedy vˇsechny probl´emy, na kter´e lze vymyslet nˇejak´e ˇcasovˇe sh˚ udn´e ˇreˇsen´ı
NP jsou nedeterministick´e polynomi´aln´ı probl´emy - tedy u ´lohy, kter´e dok´aˇze vyˇreˇsit jen nedeterministick´y Turing˚ uv stroj I I I
Tˇreba deˇsifrov´an´ı dobr´e ˇsifry, pokud nezn´ate postup ˇreˇsen´ı Pro NP u ´pln´e probl´emy dokonce nen´ı moˇzn´e hledat polynomi´aln´ı ˇreˇsen´ı Velk´a ot´azka matematiky a stringologie je, zdali P=NP?
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
20 / 105
P=NP
Co kdyby P=NP? Co to znamen´a pro kryptografii Nˇekdo by naˇsel algoritmus, kter´y by kaˇzd´y NP probl´em pˇrevedl na P probl´em ˇ Sifrov´ an´ı v RSA je P probl´em a stejnˇe tak deˇsifrov´an´ı, pokud m´ame spr´avn´y kl´ıˇc Prolamov´an´ı je ale uˇz NP probl´em a pokud by NP=P, pak by i prolamov´an´ı byl P probl´em To by byl konec kryptografie, jak j´ı zn´ame
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
21 / 105
Vernamova ˇsifra
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
22 / 105
Exponenci´aln´ı ˇsifra
Kryptovac´ı funkce c = |p e |m , kde 0 < e < m − 1; gcd(e, m − 1) = 1 Dekryptovac´ı funkce p = |c d |m , kde d = |e −1 |m−1 Podm´ınky jsou omezuj´ıc´ı, protoˇze mus´ı existovat inverzn´ı ˇ c´ıslo v modul´arn´ı soustavˇe. Za m si nem˚ uˇzeme zvolit ledajak´e ˇc´ıslo Cel´y probl´em vych´az´ı z diskr´etn´ıho logaritmu. Pokud Y ≡ q k (mod m), pak inverzn´ı funkci je skoro nemoˇzn´e nal´ezt Takov´ych vlastnost´ı se vyuˇz´ıv´a pro Diffie-Helman algoritmus
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
23 / 105
Alice a Bob
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
24 / 105
Diffie Helmann pro dva uˇzivatele
g - je grupa - grupa je matematick´e tˇeleso, kter´e obsahuje vlastnosti uzavˇrenosti na operaci ⊕; je asociativn´ı, m´a inverzn´ı prvek a obsahuje neutr´aln´ı prvek ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
25 / 105
Axiomy
Uzavˇrenost - nen´ı pˇr´ımo axiom - mˇejme a a b, kter´e jsou ze stejn´e mnoˇziny (N, W, R, ...), potom operace ⊕ mezi a ⊕ b z˚ ust´av´a st´ale na stejn´e mnoˇzinˇe 1
a ⊕ b = b ⊕ a - komutativita (takovou vlastnost grupa nem´a, pokud ano, pak se naz´yv´a Abbelova grupa)
2
(a ⊕ b) ⊕ c = a ⊕ (b ⊕ c) - asociativita
3
a ⊕ i = 1, kde i je inverzn´ı prvek
4
a ⊕ n = a, kde n je neutr´aln´ı prvek
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
26 / 105
Kvadratick´e residuum
Pokud m je kladn´e cel´e ˇc´ıslo ⇒ cel´e ˇc´ıslo a je kvadratick´e residuum modulo m, kdyˇz gcd(a, m) = 1 a kongruence x 2 ≡ amod(m) m´a nˇejak´e ˇreˇsen´ı. Kdyˇz tato kongruence nem´a ˇz´adn´e ˇreˇsen´ı ⇒ a je kvadratick´e nonresiduum modulo m. Vlastnˇe zjiˇst’ujeme, jak´a ˇc´ısla n´am d´av´a vztah |x 2 |m . Takto m˚ uˇzete stanovit mnoˇziny residu´ı a nonresidui´ı (ˇc´ısel, kter´e se nevyskytuj´ı mezi residui).
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
27 / 105
Symboly Legendre˚ uv symbol – Je 1 kdyˇz a je kvadratick´ym residuem, -1 pokud a je kvadratick´ym nonresiduem. Jacobiho symbol – a mus´ı b´yt nesoudˇeln´e s n (jinak je a stejnˇe nonresiduum). Udˇel´ame kanonick´y rozklad modula (ˇc´ısla n) – tj rozklad na souˇcin prvoˇc´ısel. Rychle urˇc´ıme, zdali je a residuem, nebo nonresiduem n. Jak´e je x nezjist´ıme. Pˇr´ıklad: 2 2 2 2 · 5 = (−1)2 · (−1) = −1 = = 2 45 3 3 ·5 2 je tedy kvadratick´e nonresiduum.
2
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
28 / 105
Gener´atory grup
Co kdybychom pro pˇredpis grupy potˇrebovali jen jedno ˇc´ıslo v grupˇe a to by n´am vygenerovalo ostatn´ı ˇc´ısla grupy? A jak s t´ım souvis´ı grupy o prvoˇc´ıseln´e velikosti? Je 7 gener´atorem grupy Z11 ? To znamen´a skl´adat |7|11 ,|7 ∗ 7|11 , ... Pokud mi vypadne z mocnin ˇc´ıslo 1, pak se zastav´ım Pokud byly vˇsechny ˇc´ısla, kter´e jsem vygeneroval, souˇc´ast´ı grupy Z11 , pak je 7 gener´atorem grupy Z11
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
29 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC Jak velk´a ˇc´ısla m˚ uˇzeme d´at do zn´am´ych datov´ych typ˚ u? Char m´a bajt (8 bit˚ u, max ˇc´ıslo 28 ) Int m´a 4 bajty (32 bit˚ u, max ˇc´ıslo 232 ) Long int m´a 4 bajty (32 bit˚ u, max ˇc´ıslo 232 ) Long long int m´a 8 bajt˚ u (64 bit˚ u, max ˇc´ıslo 264 ) Double m´a 8 bajt˚ u (64 bit˚ u, max ˇc´ıslo 264 ) Float m´a 4 bajt˚ u (32 bit˚ u, max ˇc´ıslo 232 ) Co se stane, kdyˇz ˇc´ıslo pˇreteˇce? A co dˇel´a poˇc´ıtaˇc, kdyˇz potˇrebuje poˇc´ıtat s vˇetˇs´ımi ˇc´ısli?
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
30 / 105
Vˇsechno je o datov´ych typech!
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
31 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC Uk´azka pˇreplut´ı C++ # include < iostream > using namespace std ; int main () { unsigned int i =10; long long unsigned int j =0; // pocitadlo while ( i !=9) { i ++; j ++; } cout << " pocet konecnych iteraci cyklu je : " << j << endl ; // napoveda : 2^32 -1 , proc tomu tak je ? return 0; }
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
32 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC Datov´e typy jsou takov´e velk´e modlu´arn´ı soustavy Pokud chcete skladovat vˇetˇs´ı ˇc´ısla, rozdˇelte je do menˇs´ıch pomoc´ı masek Pˇr´ıklad: Ukl´ad´ame druh´y byte (8 bit˚ u) z unsigned integeru (32 bit˚ u) do charu (8 bit˚ u): (10101110 10101111 10111110 10101010)2 & (00000000 00000000 11111111 00000000)2 = (00000000 00000000 10111110 00000000)2
Protoˇze ale budeme ukl´adat do bytu, mus´ıme jeˇstˇe posunout int doprava o 8 m´ıst a potom ORovat do char: 8 >> (00000000 00000000 10111110 00000000)2 | = (00000000 00000000 00000000 10111110)2
A to uˇz se do charu vejde. ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
33 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC C++ # include < iostream > using namespace std ; int main () { unsigned int input =2930753194; // 10101110 10101111 10111110 10101010 unsigned int mask =65280; // 00000000 00000000 11111111 00000000 unsigned int output =0; unsigned char outputc =0; output = mask & input ; cout << output << endl ; // 48640 output > >=8; cout << output << endl ; // 190 outputc |= output ; cout << ( unsigned int ) outputc << endl ; // 190 return 0; }
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
34 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC
Pˇresnˇe takhle m˚ uˇzete vymaskovat ˇc´ısla z velk´ych ˇc´ısel a mal´a ˇc´ısla d´avat zase do velk´ych ˇc´ısel Bin´arn´ı operace vˇetˇsinou pˇrekladaˇc vyhodnot´ı do rychlejˇs´ıch instrukc´ı neˇz jin´e operace Maska nen´ı jen spojit´e ˇc´ıslo dlouh´e maxim´alnˇe 32 bit˚ u, ale moˇznost, jak z ˇc´ısla z´ıskat ˇc´ıslo
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
35 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC
Pro ˇsifrov´an´ı, jak jsme vidˇeli u exponenci´aln´ıch ˇsifer, je nutn´e m´ıt vˇsechny operace ., :, +, − To ale nemus´ı vˇzdy platit, proto se pouˇz´ıvaj´ı soustavy z modulem prvoˇc´ısel Pro operace dˇelen´ı je potˇreba inverzn´ı ˇc´ıslo a.X ≡ b (mod m) X ≡ b. 1a (mod m) Pokud je ale gcd(a, m) = 1. Pokud tomu tak nen´ı, v´ysledk˚ u m˚ uˇze b´yt v´ıc. Pokud m´a ˇc´ıslo jednoznaˇcnou inverzi, plat´ı jednoduˇse: |a.b| ≡ 1 (mod m) kde a je ˇc´ıslo a b je inverzn´ı ˇc´ıslo. GCD = greatest common divisor
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
36 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC Pˇr´ıklad pokud gcd=1 neplat´ı: 8x ≡ 4 (mod 12) Urˇc´ıme gcd pomoc´ı rozˇs´ıˇren´eho Euklidova algoritmu: zbytek 12 8 1 0 12 8 0 1 1 4 1 -1 2 0 Z toho vytvoˇr´ıme Diofantickou rovnici 8u + 12v = 4, coˇz podle naˇseho v´ypoˇctu d´av´a u = −1; v = 1, gcd je rovno 4. Postup funguje tak, ˇze si nejdˇr´ıve vytvoˇr´ım dva sloupce. Prvn´ı sloupec je pro pod´ıly dˇelen´ı a druh´y pro zbytky. Zbytek pˇred ˇr´adkem, kde je 0, je naˇse gcd. pod´ıl
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
37 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC
Dva dalˇs´ı sloupce jsou rozˇs´ıˇren´ı Euklidova algoritmu, kde vˇzdy sloˇzen´ı 1*12+0*8=12, tedy sloupeˇcku zbytk˚ u. Jak sloˇzit dalˇs´ı ˇr´adek je trochu sloˇzitˇejˇs´ı.
se sloˇz´ı pomoc´ı vztahu <prvn´ı ˇr´adek, tˇret´ı sloupec>-1*, tedy 1 se sloˇz´ı pomoc´ı vztahu <prvn´ı ˇr´adek, ˇctvrt´y sloupec>-1*, tedy -1 To se d´a ovˇeˇrit pomoc´ı posledn´ıho vztahu 4 = 12 + (−1) ∗ 8, coˇz plat´ı
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
38 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC −1.4 u.4 = gcd(12,8) = −1 a protoˇze jsme v modulu, pro Ted’ urˇc´ıme x0 = gcd(12,8) -1 plat´ı, ˇze je rovno 11 12 Ted’ stanov´ıme x = x0 ∗ (mod gcd(12,4) ) = 11 (mod 3) = 2 (mod 3) Ted’ uˇz v´ıme, ˇze poˇcet ˇreˇsen´ı bude 4, protoˇze gcd je rovno 4. Bude v mod 12, jako p˚ uvodn´ı zad´an´ı a mus´ı se ”odkrokovat”od 1 do 4, coˇz je poˇr´ad naˇse gcd. Dalˇs´ım poznatkem je, ˇze kaˇzd´y ˇclen bude seˇcten s x0 a n´asobkem modula u x, tedy pro tento pˇr´ıklad: 12 12 12 12 , x0 − 2 ∗ gcd(12,4) , x0 − 3 ∗ gcd(12,4) , x0 − 4 ∗ gcd(12,4) }| |{x0 − 1 ∗ gcd(12,4) (mod 12) = = |{−1 + 1.3, −1 + 2.3, −1 + 3.3, −1 + 4.3}| (mod 12) = = |{2, 5, 8, 11}| (mod 12)
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
39 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC
Jenomˇze nˇeco takov´eho se rozhodnˇe ned´a pouˇz´ıt v exponenci´aln´ı ˇsifˇre, kde hled´ame vˇse jednoznaˇcn´e Jak by jinak bylo moˇzn´e text znovu rozluˇstit Proto se pouˇz´ıv´a takov´e soustavy, kdy gcd je rovno 1 a inverzn´ı ˇc´ıslo je vˇzdy jednoznaˇcnˇe dohledateln´e a je jen jedno
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
40 / 105
Prvoˇc´ıseln´a modul´arn´ı soustava a ˇcast´a modula v PC Pˇr´ıklad pokud gcd=1 plat´ı: 3x ≡ 4 (mod 5) x ≡ 4 ∗ 13 (mod 5) Urˇc´ıme gcd pomoc´ı rozˇs´ıˇren´eho Euklidova algoritmu: pod´ıl
zbytek 5 3 5 1 0 3 0 1 1 2 1 -1 1 1 -1 2 2 0 Potom m˚ uˇzeme napsat x ≡ 4 ∗ 2 (mod 5) tedy x ≡ 8 (mod 5) a po uplatnˇen´ı modula x ≡ 3 (mod 5)
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
41 / 105
Prvoˇc´ıslo Prvoˇc´ıslo je pˇrirozen´e ˇc´ıslo dˇeliteln´e jedniˇckou a sebou sam´ym Jenˇze jak na to pˇrij´ıt pokud je ˇc´ıslo vetˇs´ı neˇz 10n , kde n je jak´ekoliv pˇrirozen´e ˇc´ıslo A jak nˇejak´e vysok´e ˇc´ıslo vygenerovat? Hloup´y test v Pythonu: # !/ usr / bin / python from math import sqrt def isPrimeDul ( input =0) : for i in range (2 , int ( sqrt ( input ) +1) ) : if ( input % i ) == 0: return False return True print isPrimeDul (3571) # True print isPrimeDul (3570) # False
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
42 / 105
Prvoˇc´ıslo
Jenˇze, co kdyˇz prvoˇc´ıslo bude tak ohromn´e, ˇze poˇcet iterac´ı, kter´e se budou muset proj´ıt, bude rovno samotn´em´e odmocninˇe ˇc´ısla? √ M˚ uˇzeme tedy odvodit sloˇzitost O( n) pro nejtˇeˇzˇs´ı pˇr´ıpad, kdy ˇc´ıslo je doopravdy prvoˇc´ıslo Ω(1) pro nejlehˇc´ı pˇr´ıpad, kdy je ˇc´ıslo hned dˇeliteln´e dvˇema √ Θ( n) pro jak´ekoliv ˇc´ıslo, coˇz je pomˇernˇe dost Dalˇs´ı algoritmus, kter´y se d´a pouˇz´ıt pro hled´an´ı prvoˇc´ısel na podobn´em z´akladˇe, ale je nepouˇziteln´y, je Eratosthenovo s´ıto
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
43 / 105
Eratosthenovo s´ıto C++ Jak by asi vypadala tabulka pro ˇc´ıslo 257885161 − 1? Jak velkou pamˇet’ bychom museli pouˇz´ıt? # include < iostream > using namespace std ; unsigned int * giveMe ErPrime s ( const unsigned int & sizeIn ) { unsigned int * retField = new unsigned int [ sizeIn ]; for ( unsigned int i =0; i < sizeIn ; i ++) retField [ i ]=1; // o vsech cislech predpokladam , ze jsou prvocisla for ( unsigned int i =2; i < sizeIn ; i ++) { if ( retField [ i ]) { // cislo je prvocislo , tak jeho nasobky uz ale prvocislo rozhodne nebudou for ( unsigned int j =2; j *i < sizeIn ; j ++) { // vsechny nasobky oznacime , ze jsou neprvocisla retField [ j * i ]=0; } } } return retField ; } ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
44 / 105
Rabin-Miller˚ uv test
Co kdyˇz budeme m´ıt funkci, kter´a n´am s nˇejakou pravdˇepodobnost´ı d´a prvoˇc´ıslo? A co kdyˇz budeme m´ıt funkci, kter´a n´am s jistou pravdˇepodobnost´ı vr´at´ı, zdali je ˇc´ıslo prvoˇc´ıslo? Takov´ym testem je Rabin-Miller˚ uv test, kter´y vr´at´ı se sloˇzitost´ı p´ar krok˚ u, zdali je naˇse ˇc´ıslo prvoˇc´ıslo Test v˚ ubec nemluv´ı o tom, jac´ı dˇelitel´e dˇel´ı ˇc´ıslo, pokud nen´ı prvoˇc´ıslo, ale ˇr´ık´a, ˇze existuj´ı, coˇz staˇc´ı
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
45 / 105
Rabin-Miller˚ uv test Pˇr´ıklad: uˇze b´yt svˇedkem, lh´aˇrem ˇci siln´ym lh´aˇrem, Otestujte ˇc´ıslo 13 s b´az´ı 5 - 5 m˚ ˇze ˇc´ıslo 13 je, ˇci nen´ı prvoˇc´ıslo. Volba b´aze je velice d˚ uleˇzit´a. Pokud test udˇel´ate pro ˇc´ısla 18 b´az´ı 25, test vr´at´ı, ˇze 18 je prvoˇc´ıslo a 25 je potom lh´aˇrem. Uprav´ıme p − 1 = 12 = 22 .3 ⇒ m = 3, b = 2 (512 − 1) ≡ 0 (mod 13) (56 − 1)(56 + 1) ≡ 0 (mod 13) (53 − 1)(53 + 1)(56 + 1) ≡ 0 (mod 13) ˇ ısla uˇz d´al nem˚ C´ uˇzem dˇelit na dalˇs´ı koˇreny (v R), proto rozdˇel´ıme v´ypoˇcet na tˇri ˇc´asti. Jak´akoliv z nich m˚ uˇze b´yt rovna nule, pokud ano, test vyˇsel: (53 − 1) tedy |53 |13 = 8 6≡ 1 (mod 13) (53 + 1) tedy 8 6≡ −1 (mod 13) (56 + 1) tedy |56 |13 = |82 |13 = 12 ≡ −1 (mod 13) Test vyˇsel, 13 je prvoˇc´ıslo a 5 je jeho svˇedkem. Pokud chcete vyzkouˇset, jak se to programuje, pod´ıvejte se na http://rosettacode.org/wiki/Miller-Rabin_primality_test ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
46 / 105
Homer a Velk´a Fermatova vˇeta
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
47 / 105
Mal´a Fermatova vˇeta Vˇeta tvrd´ı, ˇze pro prvoˇc´ıslo p a pˇrirozen´e ˇc´ıslo a, kde gcd(a,p)=1 plat´ı: ap−1 ≡ 1 (mod p) K ˇcemu n´am ale vˇeta je? |x| Mˇejme |ax |p (p-prvoˇc´ıslo, gcd(p,a)=1), potom plat´ı ||a|p p−1 |p . Uk´aˇzeme si na pˇr´ıkladu: |100012345 |19 hned vid´ıme, ˇze se vˇeta d´a pouˇz´ıt |12345|18 ||1000|19 |19 ≡ |1215 |19 dokonce si m˚ uˇzeme dovolit ˇc´ısla otoˇcit ve sv´e 15 modul´arn´ı soustavˇe | − 7 |19 ≡ |(11.11.11.11.11.11.11.(−7))|19 ≡ |7.7.7.11.(−7)|19 ≡ |11.7.11.(−7)|19 ≡ |7.7.(−7)|19 ≡ | − 1|19 ≡ |18|19
Fermat byl velk´y matematik a jeho nejvˇetˇs´ı pˇr´ınos budoucnosti byla Velk´a Fermatova vˇeta, kter´a se stala symbolem snahy cel´e generace matematik˚ u. R´ad bych ji zde napsal, ale uˇz nem´am m´ısto na slidu.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
48 / 105
Eulerova funkce Jenˇze to plat´ı pro p prvoˇc´ıslo, coˇz je velice m´alo pˇr´ıpad˚ u M˚ uˇzeme ale pouˇz´ıt Eulerovu funkci Eulerovu funkce: Znaˇc´ı se jako Φ(n) Vrac´ı poˇcet nesoudˇeln´ych ˇc´ısel s n Pˇr´ıklad: √ √ 12 23 1 √ 2 13 24 √ √ 3 14 25 √ 4 15 26 √ √ 5 16 27 √ 17 28 = 16 Φ(32) = 6 √ √ 18 29 7 √ 8 19 30 √ √ 9 20 31 √ 10 21 32 √ 11 22 ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
49 / 105
Eulerova funkce
Funkce m´a zajimav´e vlastnosti popsan´e spr´avnˇe na Wikipedii Jedna z nich je, ˇze pro Φ(p) = p − 1, kdy p je prvoˇc´ıslo |b|Φ(c)
Uk´azka aplikace z pˇr´ıkladu: Mˇejme |ab |c , potom plat´ı ||a|c |122| ||47|32 Φ(32) |32
|c .
|122| ||47|32 16 |32
|47122 |32 = = = ||15|10 |32 = |225.225.255.255.255|32 = |1.1.1.1.1|32 = 1
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
50 / 105
ˇ ınsk´a vˇeta o zbytc´ıch Velk´a C´
ˇ ık´a se, ˇze na n´ı pˇriˇsel Sun Tzu pˇri poˇc´ıt´an´ı voj´ak˚ R´ u Nechal je seˇradit podle nˇekolika krit´eri´ı a spoˇc´ıtal zbytky Pak ˇrekl kolik jich je V IT se vˇeta pouˇz´ıv´a k v´ypoˇctu velk´ych ˇc´ısel, kv˚ uli postupu se cel´y v´ypoˇcet rozloˇz´ı na menˇs´ı ˇc´asti a t´ım se d´a znaˇcnˇe urychlit
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
51 / 105
Terakotova arm´ada
V´ypoˇcet byl testov´an na hlinˇen´ych voj´ac´ıch - testy na lidech jsou zak´azan´e!
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
52 / 105
ˇ ınsk´a vˇeta o zbytc´ıch C´ Pˇr´ıklad: Mˇejme |x|3 = 1, |x|5 = 2, |x|7 = 3 soustava modul je nesoudˇeln´a, vypoˇcteme si M: M = 3.5.7 = 105, potom mal´a M: M3 = 7.5 = 35, M5 = 3.7 = 21, M7 = 3.5 = 15 potom se d´a sestavit cel´y vztah n´asledovnˇe: x = ||x|3 M3 y3 + |x|5 M5 y5 + |x|7 M7 y7 |M yn jsou inverz´ı ˇc´ısla k mal´ym M, tedy: 35y3 ≡ 1 (mod 3), 21y5 ≡ 1 (mod 5), 15y7 ≡ 1 (mod 7) Modula jsou prvoˇc´ısla, proto m˚ uˇzeme uplatnit postup pomoc´ı rozˇs´ıˇren´eho Euklidova algoritmu a dostaneme: y3 ≡ 2 (mod 3), y5 ≡ 1 (mod 5), y7 ≡ 1 (mod 7) Ted’ m˚ uˇzeme uˇz dopsat cel´y vztah: = |1.35.2 + 2.21.1 + 3.15.1|105 = |157|105 = 52
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
53 / 105
ˇ ınsk´a vˇeta o zbytc´ıch C´ Vˇeta m´a i svou obecnou verzi, pˇri kter´e opakovanˇe dosazujeme. Uk´aˇzeme si to na pˇr´ıkladu: Voj´aci nastoup´ı pˇred kas´arna a je jim pˇrik´az´ano, aby se ˇradili na povel. Prvn´ı povel byl seˇradit se po dvou, v posledn´ı ˇradˇe zbyl jeden voj´ak. Pˇri seˇrazen´ı po tˇrech zbyly dva, pˇri ˇctyˇrech tˇri, pˇri pˇeti ˇctyˇri, pˇri ˇsesti pˇet a pˇri sedmi nezbyl ˇz´adn´y. Ted’ uˇz m˚ uˇzem sestavit podle zad´an´ı syst´em kongurencn´ı: x ≡ 1 (mod 2), x ≡ 2 (mod 3), x ≡ 3 (mod 4), x ≡ 4 (mod 5), x ≡ 5 (mod 6), x ≡ 0 (mod 7) Oproti minul´emu pˇr´ıkladu vid´ıme, ˇze modula kongurencn´ı jsou soudˇeln´a, proto nem˚ uˇzeme pouˇz´ıt pˇr´ımo prvn´ı metodu. Jenomˇze, co je v´ysledek kongurence neˇz zbytek po dˇelen´ı. M˚ uˇzeme tedy s klidem napsat, ˇze x ≡ 1 (mod 2) se rovn´a x = 1 + 2.t. V´ıme totiˇz, ˇze dˇelen´ım dvˇema vyˇsel zbytek jedna, ale nev´ıme kolik t jsme museli m´ıt pro takov´y v´ysledek. Ted’ uˇz jen zb´yv´a postup opakovat a dosazovat. ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
54 / 105
ˇ ınsk´a vˇeta o zbytc´ıch C´ Dosad´ıme n´aˇs poznatek do dalˇs´ı kongurence, protoˇze hled´ame jedno x. 1 + 2t = 2 (mod 3) zde se odeˇcten´ım dostaneme k t = 12 (mod 3) a ˇreˇsen´ı prvn´ıho dosazen´ı je t = 2 (mod 3), to zase m˚ uˇzeme pˇrepsat na t = 2 + 3s a zase dosadit. 2 + 3s = 3 (mod 4) vypoˇcteme na s = 3 (mod 4) a znovu sestavit s = 3 + 4u. To dosad´ıme do 3 + 4u = 4 (mod 5) vypoˇcteme u = 4 (mod 5) a sestav´ıme u = 4 + 5z. Znovu dosad´ıme 4 + 5z = 5 (mod 6) vypoˇcteme z = 5 (mod 6) a sestav´ıme z = 5 + 6y . To dosad´ıme do posledn´ı kongurence: 5 + 6y = 0 (mod 7) kde z´ısk´ame y = 5 (mod 7) a proto y = 5 + 7p. Ted’ vˇse dosad´ıme zp´atky do sebe, abychom mohli vyj´adˇrit x. x = 1 + 2(2 + 3(3 + 4(4 + 5(5 + 6(5 + 7p))))) jenomˇze ted’ n´am st´ale zb´yv´a vyj´adˇrit p, coˇz ale p˚ ujde aˇz uvid´ıme, co vznikne po rozn´asoben´ı a posˇc´ıt´an´ı. x = 4319 + 2.3.4.5.6.7p ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
55 / 105
ˇ ınsk´a vˇeta o zbytc´ıch C´
Ted’ ze vztahu x = 4319 + 2.3.4.5.6.7p vyj´adˇr´ıme lcm(2, 3, 4, 5, 6, 7), kde a.b vztah pro lcm(a.b) = gcd(a.b) , pokud bychom si to rozepsali, pˇrijdeme na v´ysledek 420. No a ted’ tento v´ysledek pouˇzijem jako naˇse modulo: x = 4319 (mod 420) z toho plyne, ˇze naˇsich voj´ak˚ u bylo x = 119 (mod 420). Pˇr´ıklad je ilustraˇcn´ı, pˇredstavte si z´astup voj´ak˚ u, kdyˇz se ˇradili po dvou.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
56 / 105
RSA Nejsd´ılenˇejˇs´ı software planety Inici´aly autor˚ u Rivest, Shamir, Adleman 1
Zvol´ı se dvˇe r˚ uzn´a velk´a prvoˇc´ısla p a q
2
Spoˇc´ıt´a se jejich souˇcin n = p · q
3
Spoˇcit´a se Eulerova funkce Φ(n) = (p − 1) · (q − 1)
4
Zvol´ıme cel´e ˇc´ıslo 1 < e < Φ(n) , kter´e je s Φ(n) nesoudˇeln´e
5
Nalezneme ˇc´ıslo d tak, aby platilo d · e = 1 mod Φ(n) Dvojice VK = (n, e) budeme ˇr´ıkat veˇrejn´e kl´ıˇce, dvojice SK = (n, d) budeme ˇr´ıkat soukrom´e kl´ıˇce.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
57 / 105
RSA
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
58 / 105
RSA
ˇ Sifrov´ an´ı prov´ad´ıme takto: c = EVK (m) = |me |n , kde m je zpr´ava a e s n jsou naˇse veˇrejn´e kl´ıˇce. Takto ˇsifruje pouze ten, kter´y m´a veˇrejn´e kl´ıˇce, tedy nˇekdo venku. Deˇsifrov´an´ı prov´ad´ıme takto: m = DSK (c) = |c d |n , kde c je ˇsifrov´y text a d s n jsou naˇse priv´atn´ı kl´ıˇce. Takto deˇsifruje pouze ten, kter´y m´a soukrom´e kl´ıˇce, tedy my. Exponenci´aln´ı rovnice jsou ale velice sloˇzit´e, nedalo by se udˇelat rychleji? Zkusme na to pouˇz´ıt mocnou ˇc´ınskou s´ılu!
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
59 / 105
RSA-CRT
Urychlen´ı aˇz 4x oproti p˚ uvodn´ımu deˇsifrov´an´ı 1
Zvol´ı se dvˇe r˚ uzn´a velk´a prvoˇc´ıla p a q
2
Spoˇc´ıt´a se jejich souˇcin n = p · q a Φ(n) = (p − 1) · (q − 1)
3
Zvol´ıme cel´e ˇc´ıslo 1 < e < Φ(n) , kter´e je s Φ(n) nesoudˇeln´e
4
Dopoˇcteme d · e = 1 mod Φ(n)
A od t´eto chv´ıle pˇrid´ame dalˇs´ı krok: 6
Vypoˇcteme dp = |d|p−1 , dq = |d|q−1 , qinv = |q −1 |p
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
60 / 105
RSA-CRT ˇ Sifrov´ an´ı prov´ad´ıme takto: c = EVK (m) = |me |n , kde m je zpr´ava a e s n jsou naˇse veˇrejn´e kl´ıˇce. Takto ˇsifruje pouze ten, kter´y m´a veˇrejn´e kl´ıˇce, tedy nˇekdo venku. ˇ Sifrov´ an´ı nelze zrychlit! Deˇsifrov´an´ı u toho, kdo m´a priv´atn´ı kl´ıˇce, prob´ıh´a podle tˇechto vzorc˚ u: Vypoˇcteme: m1 = |c dp |p m2 = |c dq |q h = |(m1 − m2 ) · qinv |p m = m2 + hq ˇ ınsk´e vˇety o zbytc´ıch. Vˇeˇrte tomu nebo ne, toto vych´az´ı z C´
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
61 / 105
RSA-CRT pˇr´ıklad Pˇr.: Mˇejme: p = 7, q = 11, n = 77, Φ(n) = 6 · 10 = 60 e = 13 veˇrejn´y kl´ıˇc je tedy VK = (77, 13) d = |e −1 |Φ(n) = |13−1 |60 = 37 Dopoˇcteme: dp = |d|p−1 = |37|6 = 1 dq = |d|q−1 = |37|10 = 7 qi nv = |q −1 |p = |11−1 |7 = 2 N´aˇs soukrom´y kl´ıˇc je tedy SK = (p, q, dp , dq , qinv ) = (7, 11, 1, 7, 2) Nˇekdo z venku n´am zaˇsifruje zpr´avu: m = 15 do t´eto podoby: c = EVK (15) = |1513 )|77 = 64. My j´ı pˇrijmeme a vypoˇctem: m1 = |641 |7 = 1 m2 = |647 |11 = 4 h = |(1 − 4) · 2|7 = 1 m = 4 + 1 · 11 = 15 Pokud bychom pouˇzili norm´aln´ı deˇsifrov´an´ı, probl´em by byl daleko vˇetˇs´ı: m = DSK (64) = |6437 |77 = 15 - u tohoto v´ypoˇctu n´am nepom˚ uˇze ani Mal´a fermatova vˇeta ani Eulerova funkce ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
62 / 105
Feistel˚ uv kryptosyst´em
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
63 / 105
Feistel˚ uv kryptosyst´em a DES
Z´aklad blokov´ych ˇsifer DES z tohoto syst´emu vych´az´ı - 3DES jej provede tˇrikr´at U DES jsou 4 iterace pro ˇsifrov´an´ı + poˇc´ateˇcn´ı permutace a koneˇcn´a inverzn´ı permutace Triple DES prov´ad´ı pro ˇsifrov´an´ı (d˚ uvodem je rozˇs´ıˇren´ı kl´ıˇce) I
ˇsifrov´an´ı ⇒ deˇsifrov´an´ı ⇒ ˇsifrov´an´ı
Triple DES prov´ad´ı pro deˇsifrov´an´ı I
deˇsifrov´an´ı ⇒ ˇsifrov´an´ı ⇒ deˇsifrov´an´ı
D˚ uvodem je rozˇs´ıˇren´ı kl´ıˇce z 56 na 168 bit˚ u
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
64 / 105
AES Podporuje nˇekolik d´elek kl´ıˇce, podle toho mˇen´ı poˇcet rund 128, 192 a 256 bit˚ u (s poˇcty rund 10, 12 a 14) Nem´a slab´e kl´ıˇce, je odoln´y diferencovateln´ym a line´arn´ım metod´am kryptoanal´yzy Je vhodn´y i pro paraleln´ı zpracov´an´ı 1
SubBytes – substituce bajt˚ u matice dle pevnˇe dan´e tabulky.
2
ShiftRows – ˇr´adky matice se posunou postupnˇe o 0-3 bajty doleva (1. ˇr´adek o 0, 2. o 1 atd.).
3
MixColumns – line´arn´ı substituce 32 bit˚ u za 32 bit˚ u.
4
AddRoundKey – na sloupce matice se zleva doprava naxoruj´ı 4 odpov´ıdaj´ıc´ı rundovn´ı kl´ıˇce.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
65 / 105
AES diagram
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
66 / 105
Operaˇcn´ı m´ody blokov´ych ˇsifer
Operaˇcn´ı m´ody jsou zp˚ usoby nasazen´ı blokov´ych ˇsifer v dan´em kryptosyst´emu OT nen´ı jen jeden blok ale symbol abecedy, coˇz jsou v podstatˇe jednotliv´e byty OT Maj´ı r˚ uzn´e vyuˇzit´ı a vhodn´e zp˚ usoby, kdy je dobr´e je pouˇz´ıt
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
67 / 105
ECB Electronic Codebook
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
68 / 105
ECB v´yhoda i nev´yhoda Pojd’me vz´ıt AES a ECB a zakryptujme si tˇreba Homera
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
69 / 105
ECB v´yhoda i nev´yhoda
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
70 / 105
CBC Cipher Block Chaining
No a ted’ po ne´ uspˇechu s ECB, zkusme Homera zakryptovat pomoc´ı CBC. ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
71 / 105
CBC Homer
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
72 / 105
CFB Cipher Feedback - samosynchronn´ı, blokov´a ˇsifra na proudovou
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
73 / 105
OFB Output Feedback - synchronn´ı prudov´a ˇsifra
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
74 / 105
RC4
Proudov´a ˇsifra Jednoduch´a, mal´a, rychl´a Prolomen´a a snadno deˇsifrovateln´a Uˇz´ıv´a se tam, kde je potˇreba rychlost a mal´y v´ykon Stejnˇe tak tam, kde nevad´ı, ˇze budou data rozluˇstˇena I I I
Pˇrenos jednor´azov´e informace Pˇrenos multim´edi´ı Torrent (pouze datov´y stream)
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
75 / 105
RC4
Nejdˇr´ıve se vytvoˇr´ı pole kl´ıˇce pomoc´ı algoritmu KSA (Key-scheduling algoritm) Potom se vezme pole kl´ıˇce a projde se pˇres Pseudon´ahodn´y gener´ator V´ysledek se zaˇs´ıfruje pˇres XOR (inverzn´ı operace ke XOR je zase XOR)
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
76 / 105
RC4
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
77 / 105
Hash Jednocestn´a funkce, kter´a vrac´ı pro stejn´y vstup st´ale stejn´y hash Je velice rychl´a, v´ystupn´ı hash m´a konstantn´ı velikost Kv˚ uli jednocestnosti se z n´ı ned´a nic zp´atky dostat Jeden z probl´em˚ u je, ˇze do mal´e mnoˇziny (B) se snaˇz´ıme rozbrazit ohromn´e mnoˇzstv´ı dat (A).
Co kdyˇz pro dva r˚ uzn´e vstupy najdeme jeden stejn´y hash? ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
78 / 105
Hash Velikost mnoˇziny B: MD5 m´a 128bit˚ u SHA-224, SHA-256, SHA-384 a SHA-512 - ˇc´ıslo verze oznaˇcuje poˇcet bit˚ u ... To je doopravdy m´alo. Pˇredstavte si to tak, jako kdyby jste se snaˇzili udˇelat seznam lid´ı a jejich id by bylo jejich hashem. Do funkce by se vkl´adal cel´y ˇclovˇek, takˇze by data byla dost n´ahodn´a. Na svˇetˇe je zhruba 7 277 686 259 lid´ı (ˇcerp´ano z http://www.worldometers.info/), MD5 m´a 340282366920938463463374607431768211456 moˇznost´ı. Uf, to by se mohlo vej´ıt, ale co kdyˇz funkce pro dva lidi vytvoˇr´ı stejn´y hash? Co kdyˇz bychom chtˇeli udˇelat seznam vˇsech zrnek p´ısku?
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
79 / 105
Narozeninov´y paradox Jak´a je pravdˇepodobnost, ˇze ve fotbalov´em druˇzstvu, kter´e m´a 11 ˇclen˚ u, maj´ı dva lidi narozeniny ve stejn´y den? 10%? 0.1%? 50%? Na to se snaˇz´ı odpovˇedˇet narozeninov´y paradox Jde o to, ˇze se pt´ame, zdali nˇekdo jin´y m´a narozeniny ve stejn´y den jako nˇekdo konkr´etn´ı a netuˇs´ıme, kdo jin´y to vlastnˇe je 11 coˇz jsou asi 3%. To je ale velk´a chyba, Naivnˇe by ˇclovˇek ˇrekl, ˇze p = 365 protoˇze uvaˇzujeme vˇzdy jednoho urˇcit´eho ˇclovˇeka. Jak je to doopravdy? Vztah se poˇc´ıt´a opaˇcnˇe, nejdˇr´ıve se pt´ame, jak´a je pravdˇepodobnost, ˇze je nˇekdo, kdo nem´a narozeniny ve stejn´y den, co jeden konkr´etn´ı ˇclovˇek (z Wiki): 365·364···(365−n+1) 1 2 p¯(n) = 1 · 1 − 365 · 1 − 365 · · · 1 − n−1 = 365 = 365n 365! 365n (365−n)!
p(n) = 1 − p¯(n) ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
80 / 105
Narozeninov´y paradox
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
81 / 105
Narozeninov´y paradox
Dosad´ıme do vztahu: 365! = 0.85885862...(85%) ted’ vztah otoˇc´ıme 36511 (365−11)! 1 − 0.85885862... = 0.14114137...(14%) Pravdˇepodobnost je tedy nˇekde okolo 14%, coˇz je pomˇernˇe vysoko. Pokud uvaˇzujem tˇreba 50 lid´ı, pravdˇepodobnost uˇz je na 97%. Pokud budem takhle uvaˇzovat poˇcet lid´ı vˇetˇs´ı, neˇz 365, pravdˇepodobnost je uˇz 100%. Nezapom´ınejme na to, ˇze pravdˇepodobnost nen´ı exaktn´ı, nic nedokazuje. Pokud v´am nˇekdo ˇrekne, ˇze 100% lid´ı by volilo Vaniˇz, skrvn a ˇsp´ıny se zbav´ıˇs, neznamen´a to, ˇze jej zvol´ıte i vy, ale je tu 100% pravdˇepodobnost, ˇze jej asi zvol´ıte. (Pˇr´ıklad byl ilustraˇcn´ı, no harm na lidi preferuj´ıc´ı Asurit).
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
82 / 105
Kolize
Kolize ˇr´ık´a, ˇze jsme schopni nal´ezt dvˇe zpr´avy, pro kter´e plat´ı h(A1 ) = h(A2 ) Pokud tedy vezmeme dva vzory, je moˇzn´e pro nˇe nal´ezt jeden hash Modern´ı hashovac´ı algoritmy s t´ımto poˇc´ıtaj´ı a v z´asadˇe nejsou proti kolizi odoln´e, ale jen je vysoce pravdˇepodobn´e, ˇze k n´ı nedojde Proto jsme poˇc´ıtali Narozeninov´y paradox, abychom si uk´azali, jak je problematika oˇsemetn´a
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
83 / 105
Kolize
Kolize prvn´ıho ˇr´adu Nalezen´ı dvou r˚ uzn´ych zpr´av se stejnou hash´ı (a zde pˇrich´az´ı na ˇradu Narozeninov´y paradox). To znamen´a, ˇze tˇreba pro SHA-1 staˇc´ı zhruba 50% velikosti mnoˇziny hashu, tedy 280 z p˚ uvodn´ıch 2160 . Kolize druh´eho ˇr´adu Nalezen´ı stejn´eho hashe k pˇredem dan´e prvn´ı zpr´avˇe. V tomto pˇr´ıpadˇe je probl´em daleko vˇetˇs´ı a ˇcasto se mus´ı prohledat cel´y prostor hashe.
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
84 / 105
HMAC
Keyed-hash Message Authentication Code Moˇznost autentifikace zpr´avy pomoc´ı HASH funkce ˇ Casto jedin´a moˇznost ovˇeˇrit si podpis dat Pˇresn´y popis naleznete na Wiki Pokud mu nerozum´ıte, m˚ uˇzeme se jej pokusit rozebrat My si vyzkouˇs´ıme zjednoduˇsen´y princip funkce
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
85 / 105
MAC
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
86 / 105
MAC
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
87 / 105
HMAC Kdybychom pouˇzili nˇeco takov´eho, vystavujeme se hned nˇekolika nebezpeˇc´ım Jak je to tedy na Wikipedii?
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
88 / 105
Veˇrejn´e kl´ıˇce Jak pˇredat veˇrejn´y kl´ıˇc bez toho, aby jej nˇekdo zachytil? Samozˇrejmˇe m˚ uˇzeme pouˇz´ıt DH nebo El Gammala. To ale nˇekdy nejde. ´ cn´ık odchytne kl´ıˇc, zaˇsifruje vˇse sv´ym kl´ıˇcem a d´al poˇsle veˇrejn´y. Utoˇ Smˇerem zp´atky poˇsle podstrˇcen´y kl´ıˇc. Techniky zvˇeˇrejnˇen´ı: 1
Zvˇeˇrejnit – vˇsem a vˇsemi kan´aly, to ale moc neˇreˇs´ı podvrˇzen´ı
2
Veˇrejn´y adres´aˇr – spr´avce v´ı, jak´e kl´ıˇce se do adres´aˇre pˇrid´avaj´ı, je pouˇzit bezpeˇcn´y kan´al. Co kdyˇz ale nˇekdo ukradne SK kl´ıˇc spr´avce?
3
Autorita pro VK – kaˇzd´y kl´ıˇc je podeps´an SK autoritou, kaˇzd´y zn´a VK autority a kaˇzd´y jej mus´ı z´ıskat bezpeˇcnou cestou.
4
Certifikace veˇrejn´ych kl´ıˇc˚ u – distribuce VK bez tˇret´ıch stran
. . . v´ıte, kde m´ate vaˇse VK autority? ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
89 / 105
A co tak v certifik´atu najdem?
VK drˇzitele Datum vyd´an´ı a datum ukonˇcen´ı platnosti ID ...
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
90 / 105
Strom
Kaˇzd´y (dobr´y) certifik´at je podepsan´y vyˇsˇs´ı autoritou Ta tvoˇr´ı strom Koˇreny se podep´ıˇs´ı kˇr´ıˇzovˇe Vˇse je pod PKI (public key infrastructure)
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
91 / 105
Digit´aln´ı podpis
RSA se d´a pouˇz´ıt jinak SK bude slouˇzit k podpisu, VK pro ovˇeˇren´ı 1
Nezfalˇsovatelnost, autenticita – jeden podpis, nikdo jin´y jej nem´a
2
Ovˇeˇren´ı – pˇr´ıjemce m˚ uˇze ovˇeˇrit, zdali je autor autorem
3
Integrita – pokud zpr´avu zmˇen´ıme, podpis uˇz nesed´ı
4
Nepopiratelnost – podepisuj´ıc´ı nem˚ uˇze popˇr´ıt, ˇze zpr´avu nepodepsal
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
92 / 105
DSA
Standard americk´e vl´ady pro digit´aln´ı podpis (1991) - Digital Signature Algorithm Podpis 1
Vstupem jsou veˇrejn´e parametry (p, q, g ), priv´atn´ı kl´ıˇc x, zpr´ava m
2
Vygenerujeme tajn´e n´ahodn´e ˇc´ıslo k (0 < k < q)
3
r = (g k mod p) mod q
4
s = k −1 (h(m) + xr ) mod q, kde k · k −1 = 1( mod q)
5
r i s nesm´ı b´yt rovno nule, jinak se v´ypoˇcet opakuje
6
Podpis je nakonec (r , s)
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
93 / 105
DSA
Ovˇeˇren´ı podpisu 1
Vstupem jsou veˇrejn´e parametry (p, q, g ), veˇrejn´y kl´ıˇc y, ovˇeˇrovac´ı podpis (r , s)
2
Ovˇeˇr´ıme, ˇze (0 < r < q) a (0 < s < q)
3
w = s −1 mod q
4
u1 = wh(m) mod q a u2 = wr mod q
5
v = (q u1 y u2 mod p) mod q
6
Podpis je platn´y, pokud v = r
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
94 / 105
Informaˇcn´ı bezpeˇcnost
Zamˇeˇruje se na IS. Aneb, jak to nikdo nem´a ˇcas dˇelat . . . 1
D˚ uvˇernost, integritu a dostupnost informac´ı
2 3
Autentizaci uˇzivatel˚ u a zdroj˚ u ´ ctovatelnost operac´ı Uˇ
4
Ochranu proti neautorizovan´e manipulaci, modifikaci nebo zniˇcen´ı D˚ uvˇernost – informace nepadne do rukou neautorizovan´e osoby Integrita – informace je pˇrenesen´a bez u ´prav a poˇskozen´ı Dostupnost – informace patˇr´ı jen autorizovan´ym
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
95 / 105
Assets
Hmotn´e – fyzick´e prostˇredky Nehmotn´e – SW, informace, data, . . . Zdroje – perzon´al IS Poˇskozen´ı je u ´mysln´e i ne´ umysln´e (IS je trouba a m´a bugy) ...
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
96 / 105
Model OSI
Doporuˇcen´ı X.800 v´azan´e na model OSI 1
Sluˇzby bezpeˇcnosti – zabezpeˇcen´ı pomoc´ı sluˇzeb, kter´e chr´an´ı IS
2
Mechanismy bezpeˇcnosti – postupy na detekci a prevenci u ´tok˚ ua odstranˇen´ı n´asledk˚ u ´ Utoky na bezpeˇcnost – pˇr´ım´e u ´toky na IS
3
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
97 / 105
Sluˇzby bezpeˇcnosti
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
98 / 105
Sluˇzby bezpeˇcnosti
Bezpeˇcnost podle OSI vrstev 1
2
Autentizace – ovˇeˇruje, zdaji je zdroj informace zdrojem, neˇreˇs´ı modifikaci ani duplicitu ˇ ızen´ı pˇr´ıstupu – podle autentifikace je moˇzn´e ˇr´ıdit pˇr´ıstup uˇzivatele R´ do IS
3
Zabezpeˇcen´ı d˚ uvˇernosti dat – k dat˚ um se nesm´ı nikdo ciz´ı dostat
4
Zabezpeˇcen´ı integrity dat – poˇskozen´a data nejsou pouˇziteln´a data, stejnˇe tak duplikovan´a a uˇz v˚ ubec ne modifikovan´a
5
Ochrana proti odm´ıtnut´ı p˚ uvodu zpr´avy – zabezpeˇcuje d˚ ukaz o p˚ uvodu vyslan´ych dat, zabraˇ nuje popˇren´ı odpovˇednosti za data
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
99 / 105
Mechanismy bezpeˇcnosti Definice specifick´e ˇcinnosti pro ochranu IS ˇ 1 Sifrov´ an´ı – pˇrenos je ˇsifrovan´y 3
Digit´aln´ı podpisy – data jsou autentifik´any a integrita je zabezpeˇcena ˇ ızen´ı pˇr´ıstupu – k pˇr´ıstupu jsou potˇreba pˇr´ıstupov´a pr´ava R´
4
Integrita dat – kontrola integrity pˇrenosu dat
5
V´ymˇena autentizaˇcn´ıch informac´ı – mezi uˇzivatelem a IS
6
Vyplˇ nov´an´ı mezer – pˇrid´avat data do mezer k znesnadnˇen´ı anal´yzy toku dat ˇ ızen´ı smˇerov´an´ı – smˇer pˇrenosu dat mus´ı b´yt zabezpeˇcen´y R´
2
7 8
Osvˇedˇcen´ı tˇret´ım subjektem – pˇridejte tˇret´ı stranu, kter´a pˇrid´a dalˇs´ı bezpeˇcnost, co si tˇreba nem˚ uˇzete dovolit
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
100 / 105
´ Utoky na bezpeˇcnost
Pasivn´ı – zamˇeˇren´e na z´ısk´av´an´ı dat a jejich n´asledn´e vyuˇzit´ı: Odkr´yv´an´ı obsahu zpr´av – sledov´an´ı a monitorov´an´ı Anal´yza toku dat – zachycen´ı toku a n´asledn´e anal´yza Aktivn´ı – na z´akladˇe z´asahu do IS: Pˇredst´ır´an´ı identity – v´ymˇena autentizace je zachycena a zneuˇzita ´ Utok opakov´an´ım – zachycen´a data jsou pos´ıl´ana zp´atky a vyvol´avaj´ı neˇz´adouc´ı efekt Modifikace zpr´avy – ˇc´ast zpr´avy je zmˇenˇena nebo odesl´ana opoˇzdˇenˇe Odm´ıtnut´ı sluˇzby – aktivn´ı u ´toky zabraˇ nuj´ıc´ı uˇzivateli pˇristupovat k IS
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
101 / 105
Jean-Luc v´as vid´ı!
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
102 / 105
Pouˇcen´ı
MD5 je slab´ e? No tak pouˇziji tˇreba md5(md5(”heslo”)+md5(”heslo”)). NEEEEE!!! RC4 je tak jednoduch´ e, ˇze si ho nap´ıˇsi s´ am. NEEEEE!!! SHA/DES/AES je nuda, nap´ıˇsu si nˇ eco sv´ eho. NEEEEE!!! Udˇ el´ am si datab´ azi hesel, s˚ ul nepotˇrebuji, stejnˇ e nevim, co to doopravdy dˇ el´ a. I A co kdyˇz budou dva uˇzivatel´ e m´ıt stjen´ e heslo? Bez soli budou m´ıt i stejn´ y hash. I Ukr´ ast DB a odhalit p´ ar hesel znamen´ a odhalit velk´ y kus DB. ”Tak to zak´ oduj pˇres DES a je to.”No to asi tˇ eˇzko, zak´ odovat m˚ uˇzu nˇ eco pomoc´ı BASE64, DESem vˇ eci zaˇsifruji. PC nadˇr´ızen´ yho um´ı jen DES, tak jsem to tam nastavil na WiFi a ˇsel jsem pryˇ c. NEEEEEEEEEEEEEE! Na ten disk stejnˇ e nikdo z netu nevid´ı, tak ty data ˇsifrovat nebudem. NE Ne Ne Ne nE NEEE nE NEEE! gmail.google.com certifik´ at nen´ı podeps´ at, nevad´ı, klikni, ˇze je ti to jedno a neˇreˇs to. NEEEEE! Nikdy nikdy nikdy! Poˇsli mi heslo mailem. Joomla to tak dˇ el´ a a je to v pohodˇ e. Nope! Nen´ı to v pohodˇ e. Bezpeˇ cn´ e heslo je $$@@tt@@5nskeHeslo666. Aha... NEEEEEEE!
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
103 / 105
Jean-Luc facepalm
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
104 / 105
Zbytek
Snaˇzil jsem se vybrat uk´azkov´e pas´aˇze Vˇse je dohledateln´e na Wiki a Doodle Pokud nˇeˇcemu nerozum´ıte, zeptejte se a napiˇste Zdrojov´e soubory jsou pˇriloˇzeny k prezentaci Dˇekuji vˇsem, kteˇr´ı se doˇcetli do konce a neusnuli Pouˇzil jsem Wikipedii, materi´aly z edux.fit.cvut.cz, ...
ˇ Martin Ber´ anek (SSPS)
Drobn´ yu ´vod do matematiky bezpeˇ cnosti
17. ledna 2015
105 / 105