330 likes | 537 Views
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
E N D
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í 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íčů
Tento text bude zasifrovan Cezarovskou sifrou s klicem k rovnym 3. Whqwr whaw exgh cdvlhurydq Fhcduryvnrx vlivrx v nofhp a uryqbp 3. Cézarovská šifraf(x)=x+k mod NKLÍČ K = 3 ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC
Multiplikativní šifraf(x)=x*k mod NKLÍČ 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
Tento text bude zasifrovan obecnou monoalfabetickou sifrou. Plbpx plvp meil nvzqdtxuvb xmlabxe kxbxvydvmlpqasxe zqdtxe Obecná monoalfabetická šifra ABCDEFGHIJKLMNOPQRSTUVWXYZ VMAIVLDRHQCSYKBXGOTZPEUVFN
Statistika výskytů jednotlivých písmenv 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,330,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ísmenv 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,170,54 0,00 0,04 0,03 Y 1,52 0,210,00 2,72 2,57 Z 0,050,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í • agoodglassinthebishopshostelinthedevilsseatfort:onedegreesandthirteen9inutesnortheastandb:north9ainbran-hse venthli9beastsideshootfro9thelefte:eofthedeathsheadabeelinefro9thetreethroughtheshotfif1t:feetout • : = y, 9 = m, - = c • agoodglassinthebishopshostelinthedevilsseatforty onedegreesandthirteen minutesnortheastandby north mainbranchseventhlimbeastsideshootfrom thelefteyeofthedeathsheadabeelinefrom thetreethroughtheshotfif1ty feetout • 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 dwefewq riwgdh, aegebjckbmn rkcobcoq bcocw sc bsc rkqhdsgc bqa q hcjw kdfswcmwc sgejkge bocwcge, tcf ai rkdrwdisqwd adfmca, qgef dn s gc fqgchuqwd bcdcacgbe 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 ddjefgn ocg. gq geh tegcud if ai s uwqsc rkqmjehmn gcfdnsqwd aebjd.