Kódování a šifrování Tomáš Vaníček Stavební fakulta ČViT Thákurova 7, Praha-Dejvice, B407 vanicek@fsv.cvut.cz
Kódování a šifrování Monoalfabetické šifry Polyalfabetické šifry Index koincidence Kryptoanalýza Vigenérovských šifer Polygrafické šifry Šifry typu Enigma Posuvné registry Lineární kódy, váha, opravování chyb Hammingovy kódy Asymetrické šifrování McEllisova šifra RSA Elektronický podpis Hashovací funkce Systémy PGP
Šifrování (symetrické) Eva (nepřítel, Enemy) Alice šifrování dešifrování Bob klíč
Kódování Narušení zprávy Alice kódování Bob dekódování Bob Automatická oprava, nebo alespoň upozornění na chybu při přenosu
Abeceda Libovolná konečná množina znaků Například A={0,1}, Nebo A={أبدفجحئكلمنوقرستثز} Nebo A={AÁBCČDEÉĚFGHIÍJKLMNŇO ÓPQRŘSŠTŤUÚVWXYÝZŽ} Nebo A={ABCDEFGHIJKLMNOPQRSTUVWXYZ} (26 znaků) A+ - Množina všech slov (posloupností znaků z A. A* - Množina všech posloupností z A včetně prázdného slova.
Šifra Kryptografická transformace (šifra) je prosté zobrazení Φ: A*x K B*, K je množina klíčů
Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3 B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3 Tento text bude zasifrovan Cezarovskou sifrou s klicem k rovnym 3. Whqwr whaw exgh cdvlhurydq Fhcduryvnrx vlivrx v nofhp a uryqbp 3. ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC
Multiplikativní šifra f(x)=x*k mod N KLÍČ K = 3 B C D E I J S Z 1 2 3 4 8 9 18 25 6 12 24 27 54 75 23 G M Y X
Multiplikativní šifra f(x)=x*k mod N KLÍČ K = 3 ABCDEFGHIJKLMNOPQRSTUVWXYZ ADGJMPSVYBEHKNQTWZCFILORUX
Multiplikativní “šifra” klíč K=2 A 0 → 0 A B 1 → 2 C … N 13 → 26 → 0 A O 14 → 28 → 2 C Není to prosté zobrazení
Multiplikativní šifry Pro K nesoudělné s N existuje právě jedno L, takové že K*L = 1 mod N. Například pro K=3 a N=26 je to L=9. K je šifrovací klíč a L je dešifrovací klíč. Například písmeno w=22 se zašifruje na 22*3 mod 26 = 14 = O a dešifruje: 14*9 mod 26 = 126 mod 26 = 22 = w
Obecná afinní šifra f(x) = K*x + P mod N, K nesoudělné s N Šifrovacím klíčem je dvojice K,P Dešifrovacím klíčem je dvojice L,Q, kde L je jediné číslo, pro které K * L = 1 mod N a Q= 26-P mod N.
Obecná monoalfabetická šifra Šifrovacím klíčem je celá funkce (tabulka) obrazů jednotlivých písmen, například: ABCDEFGHIJKLMNOPQRSTUVWXYZ VMAIVLDRHQCSYKBXGOTZPEUVFN
Obecná monoalfabetická šifra Tento text bude zasifrovan obecnou monoalfabetickou sifrou. Plbpx plvp meil nvzqdtxuvb xmlabxe kxbxvydvmlpqasxe zqdtxe ABCDEFGHIJKLMNOPQRSTUVWXYZ VMAIVLDRHQCSYKBXGOTZPEUVFN
Statistika výskytů jednotlivých písmen v textu (v %) Písmeno Angl. Franc. Něm. Češ. Slov. A 7,96 7,68 5,52 8,99 9,49 B 1,60 0,80 1,56 1,86 1,90 C 2,84 3,32 2,94 3,04 3,45 D 4,01 3,60 4,91 4,14 4,09 E 12,86 17,76 19,18 10,13 9,16 F 2,62 1,06 1,96 0,33 0,31 G 1,99 1,10 3,60 0,48 0,40 H 5,39 0,64 5,02 2,06 2,35 I 7,77 7,23 8,21 6,92 6,81 J 0,16 0,19 0,16 2,10 2,12 K 0,41 0,00 1,33 3,44 3,80 L 3,51 5,89 3,48 4,20 4,56
Statistika výskytů jednotlivých písmen v textu (v %) Písmeno Angl. Franc. Něm. Češ. Slov. M 2,43 2,72 1,69 2,99 2,97 N 7,51 7,61 10,20 6,64 6,34 O 6,62 5,34 2,14 8,39 9,34 P 1,81 3,24 0,54 3,54 2,87 Q 0,17 1,34 0,01 0,00 0,00 R 6,83 6,81 7,01 5,33 5,12 S 6,62 8,23 7,07 5,74 5,94 T 9,72 7,30 5,86 4,98 5,06 U 2,48 6,05 4,22 3,94 3,70 V 1,15 1,27 0,84 4,50 4,85 W 1,80 0,00 1,38 0,06 0,06 X 0,17 0,54 0,00 0,04 0,03 Y 1,52 0,21 0,00 2,72 2,57 Z 0,05 0,07 1,17 3,44 2,72
Statistika Uvedené statistiky se vztahují k obecnému textu v daném jazyce. V textu odborném, nebo zaměřeném určitým směrem, může být výskyt písmen podstatně jiný. Například v knize o operačních systémech počítačů bude výskyt písmene X mnohonásobně větší, než v F.L.Věkovi.
Šifra z povídky Zlatý skarabeus 53‡‡†305))6*;4826)4‡.)4‡);806*;48†8π60))85;1‡(;:‡*8†83(88)5*†;46(;88*96*?;8)*‡(;485);5*†2:*‡(;4956*2(5*-4)8 π8*;4069285);)6†8)4‡‡;1(‡9;48081;8:8‡1;48†85;4)485†528806*81(‡9;48;(88;4(‡?34;48)4‡;161;:188;‡?;
Statistika výskytu znaků 53‡‡†305))6*;4826)4‡.)4‡);806*;48†8π60))85;1‡(;:‡*8†83(88)5*†;46(;88*96*?;8)*‡(;485);5*†2:*‡(;4956*2(5*4)8 π8*;4069285);)6†8)4‡‡;1(‡9;48081;8:8‡1;48†85;4)485†528806*81(‡9;48;(88;4(‡?34;48)4‡;161;:188;‡?; 5 12x 6 11x . 1x ? 3x 3 4x * 13x π 2x - 1x ‡ 16x ; 26x 1 6x † 8x 4 19x ( 10x 0 6x 8 33x : 4x ) 16x 2 5x 9 5x -
Postraní kanál Podle podpisu (obrázek kůzlete = kid = Kapitán Kid) určil hrdina, že text je napsán v angličtině
Nejčastější anglická písmena Nejčastější písmena v textu E 12,86% T 9,72% A 7,96% I 7,77% N 7,51% O 6,56% S 6,56% 33x ; 26x 19x ‡ 16x Hypotéza: 8 = E
Potvrzení hypotézy V angličtině se často vyskytuje bigram (dvojice písmen) EE. V textu je bigram 88 celkem 5x 53‡‡†305))6*;4826)4‡.)4‡);806*;48†8π60))85;1‡(;:‡*8†83(88)5*†;46(;88*96*?;8)*‡(;485);5*†2:*‡(;4956*2(5*-4)8 π8*;4069285);)6†8)4‡‡;1(‡9;48081;8:8‡1;48†85;4)485†528806*81(‡9;48;(88;4(‡?34;48)4‡;161;:188;‡?;
Zkusíme nahradit znak 8 znakem E 53‡‡†305))6*;4e26)4‡.)4‡);e06*;4e†eπ60))e5;1‡(;:‡*e†e3(ee)5*†;46(;ee*96*?;e)*‡(;4e5);5*†2:*‡(;4956*2(5*-4)e πe*;40692e5);)6†e)4‡‡;1(‡9;4e0e1;e:e‡1;4e†e5;4)4e5†52ee06*e1(‡9;4e;(ee;4(‡?34;4e)4‡;161;:1ee;‡?;
Pokračování V angličtině je velmi častý trigram THE V textu se 7x vyskytuje trigram ;48, tedy ;4e Navíc ; se vyskytuje jako druhé nejčastější písmeno 26x, což odpovídá písmenu t Zkusíme tedy ; = t, 4 = h 53‡‡†305))6*;4e26)4‡.)4‡);e06*;4e†eπ60))e5;1‡(;:‡*e†e3(ee)5*†;46(;ee*96*?;e)*‡(;4e5);5*†2:*‡(;4956*2(5*-4)e πe*;40692e5);)6†e)4‡‡;1(‡9;4e0e1;e:e‡1;4e†e5;4)4e5†52ee06*e1(‡9;4e;(ee;4(‡?34;4e)4‡;161;:1ee;‡?;
Teď to vypadá takto 53‡‡†305))6*the26)h‡.)h‡)te06*the†eπ60))e5t1‡(t:‡*e†e3(ee)5*†th6(tee*96*?te)*‡(the5)t5*†2:*‡(th956*2(5*-h)e πe*th0692e5)t)6†e)h‡‡t1(‡9the0e1te:e‡1the†e5th)he5†52ee06*e1(‡9thet(eeth(‡?3hthe)h‡t161t:1eet‡?t
Pokračování 53‡‡†305))6*the26)h‡.)h‡)te06*the†eπ60))e5t1‡(t:‡*e†e3(ee)5*†th6(tee*96*?te)*‡(the5)t5*†2:*‡(th956*2(5*-h)e πe*th0692e5)t)6†e)h‡‡t1(‡9the0e1te:e‡1the†e5th)he5†52ee06*e1(‡9thet(eeth(‡?3hthe)h‡t161t:1eet‡?t Další z nejčastějších znaků v textu je ‡. Přitom v textu je 2x bigram ‡‡. Tuto vlastnost splňuje písmeno o 53oo†305))6*the26)ho.)ho)te06*the†eπ60))e5t1o(t:o*e†e3(ee)5*†th6(tee*96*?te)*o(the5)t5*†2:*o(th956*2(5*-h)e πe*th0692e5)t)6†e)hoot1(o9the0e1te:eo1the†e5th)he5†52ee06*e1(o9thet(eeth(o?3hthe)hot161t:1eeto?t
Pokračování 53oo†305))6*the26)ho.)ho)te06*the†eπ60))e5t1o(t:o*e†e3(ee)5*†th6(tee*96*?te)*o(the5)t5*†2:*o(th956*2(5*-h)e πe*th0692e5)t)6†e)hoot1(o9the0e1te:eo1the†e5th)he5†52ee06*e1(o9thet(eeth(o?3hthe)hot161t:1eeto?t Na vyznačených místech lze odhadnout slova thirteen a the tree, tedy 6 = i a ( = r 53oo†305))i*the2i)ho.)ho)te0i*the†eπi0))e5t1ort:o*e†e3ree)5*†thirtee*9i*?te)*orthe5)t5*†2:*orth95i*2r5*-h)e πe*th0i92e5)t)i†e)hoot1ro9the0e1te:eo1the†e5th)he5†52ee0i*e1ro9thetreethro?3hthe)hot1i1t:1eeto?t
Pokračování 53oo†305))i*the2i)ho.)ho)te0i*the†eπi0))e5t1ort:o*e†e3ree)5*†thirtee*9i*?te)*orthe5)t5*†2:*orth95i*2r5*-h)e πe*th0i92e5)t)i†e)hoot1ro9the0e1te:eo1the†e5th)he5†52ee0i*e1ro9thetreethro?3hthe)hot1i1t:1eeto?t Další častý znak tvořící bigram je ). Odpovídá písmenu s a bigramu ss. Na vyznačeném místě lze odhadnout slovo through, tedy ? = u, 3 = g 5goo†g05ssi*the2isho.shoste0i*the†eπi0sse5t1ort:o*e†egrees5*†thirtee*9i*utes*orthe5st5*†2:*orth95i*2r5*-hse πe*th0i92e5stsi†eshoot1ro9the0e1te:eo1the†e5thshe5†52ee0i*e1ro9thetreethroughtheshot1i1t:1eetout
Pokračování 5goo†g05ssi*the2isho.shoste0i*the†eπi0sse5t1ort:o*e†egrees5*†thirtee*9i*utes*orthe5st5*†2:*orth95i*2r5*-hse πe*th0i92e5stsi†eshoot1ro9the0e1te:eo1the†e5thshe5†52ee0i*e1ro9thetreethroughtheshot1i1t:1eetout Často se vyskytuje znak 5, nikdy však netvoří bigram 55, odpovídá anglickému písmenu a Ze začátku textu je patrné 5 = a, † = d a dále 0 = l, (a good glass) agoodglassi*the2isho.shosteli*thedeπilsseat1ort:o*edegreesa*dthirtee*9i*utes*ortheasta*d2:*orth9ai*2ra*-hse πe*thli92eastsideshoot1ro9thele1te:eo1thedeathsheada2eeli*e1ro9thetreethroughtheshot1i1t:1eetout
Pokračování agoodglassi*the2isho.shosteli*thedeπilsseat1ort:o*edegreesa*dthirtee*9i*utes*ortheasta*d2:*orth9ai*2ra*-hse πe*thli92eastsideshoot1ro9thele1te:eo1thedeathsheada2eeli*e1ro9thetreethroughtheshot1i1t:1eetout Odhadem textu na vyznačených místech dále získáme: * = n, 2 = b, . = p, π = v, 1 = f agoodglassinthebishopshostelinthedevilsseatfort:onedegreesandthirteen9inutesnortheastandb:north9ainbran-hse venthli9beastsideshootfro9thelefte:eofthedeathsheadabeelinefro9thetreethroughtheshotfif1t:feetout
A dokončení A zbývá se vydat pro poklad a good glass in the bishops hostel in the devils seat fort: one degrees and thirteen 9inutes north east and b: north 9ain bran-h se venth li9b east side shoot fro9 the left e:e of the deaths head a bee line fro9 the tree through the shot fif1t: feet out : = y, 9 = m, - = c a good glass in the bishops hostel in the devils seat forty one degrees and thirteen minutes north east and by north main branch seventh limb east side shoot from the left eye of the deaths head a bee line from the tree through the shot fif1ty feet out A zbývá se vydat pro poklad
A teď si to zkuste sami Text je v češtině v abecedě s 26 znaky (bez diakritiky) Nejčastější znaky v obecném českém textu: E 10,13%; A 8,99%; O 8,39%; I 6,92%; N 6,64%; S 5,74%; R 5,33% rdaqwi bc lwefewq riwgdh, aegebjckbmn rkcobcoq bcocw sc bsc rkqhdsgc bqa q hcjw kdfswcmwc sgejkge bocwcge, tcf ai rkdrwdisqwd adfmca, qgef ln s gc fqgchuqwd bclcacgbe banbwirwgdi bjdri. hcmqw gq jcwcFdgqj rkcfeocgjq tebjc sfoqwcgc fcac, gcjkrcwesc rkcaejqw, mon jcg fqjkqhcgn huwqr mdgchgc fqsdwq, q irdkgc bc bgqfew rdjwqhej gcrketcagc sfrdaegmn gq swcmwn, igqsgn q dljefgn ocg. gq geh tegcud if ai s uwqsc rkqmjehmn gcflnsqwd aebjd.