Kdovn a ifrovn Tom Vanek Stavebn fakulta Vi
Kódování a šifrování Tomáš Vaníček Stavební fakulta ČVi. T Thákurova 7, Praha-Dejvice, B 407 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í Mc. Ellisova šifra RSA Elektronický podpis Hashovací funkce Systémy PGP
Šifrování (symetrické) Eva (nepřítel, Enemy) Alice šifrování dešifrování klíč Bob
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íčů
Cézarovská šifra f(x)=x+k mod N KLÍČ K = 3 A B C D E F G H I J K L M N O P Q R S T U V WX Y Z A B C
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. ABCDEFGHIJKLMNOPQRSTUVWXYZABC
Multiplikativní šifra f(x)=x*k mod N KLÍČ K = 3 A B C D E F G H I 0 1 2 3 4 5 6 7 8 0 3 6 9 12 15 18 21 24 A D G J M P S V Y
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. A 7, 96 7, 68 5, 52 B 1, 60 0, 80 1, 56 C 2, 84 3, 32 2, 94 D 4, 01 3, 60 4, 91 E 12, 86 17, 76 19, 18 F 2, 62 1, 06 1, 96 G 1, 99 1, 10 3, 60 H 5, 39 0, 64 5, 02 I 7, 77 7, 23 8, 21 J 0, 16 0, 19 0, 16 K 0, 41 0, 00 1, 33 L 3, 51 5, 89 3, 48 Češ. 8, 99 1, 86 3, 04 4, 14 10, 13 0, 33 0, 48 2, 06 6, 92 2, 10 3, 44 4, 20 Slov. 9, 49 1, 90 3, 45 4, 09 9, 16 0, 31 0, 40 2, 35 6, 81 2, 12 3, 80 4, 56
Statistika výskytů jednotlivých písmen v textu (v %) Písmeno M N O P Q R S T U V W X Y Z Angl. 2, 43 7, 51 6, 62 1, 81 0, 17 6, 83 6, 62 9, 72 2, 48 1, 15 1, 80 0, 17 1, 52 0, 05 Franc. Něm. 2, 72 1, 69 7, 61 10, 20 5, 34 2, 14 3, 24 0, 54 1, 34 0, 01 6, 81 7, 01 8, 23 7, 07 7, 30 5, 86 6, 05 4, 22 1, 27 0, 84 0, 00 1, 38 0, 54 0, 00 0, 21 0, 00 0, 07 1, 17 Češ. 2, 99 6, 64 8, 39 3, 54 0, 00 5, 33 5, 74 4, 98 3, 94 4, 50 0, 06 0, 04 2, 72 3, 44 Slov. 2, 97 6, 34 9, 34 2, 87 0, 00 5, 12 5, 94 5, 06 3, 70 4, 85 0, 06 0, 03 2, 57 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))8 5; 1‡(; : ‡*8† 83(88)5*†; 46(; 88*96*? ; 8)*‡(; 4 85); 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 12 x 6 11 x. 1 x ? 3 x 3 4 x ‡ 16 x † 8 x 0 6 x ) 16 x * ; 4 8 2 13 x 26 x 19 x 33 x 5 x π 1 ( : 9 2 x - 1 x 6 x 10 x 4 x 5 x
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 v textu E 12, 86% T 9, 72% A 7, 96% I 7, 77% N 7, 51% O 6, 56% S 6, 56% 8 33 x ; 26 x 4 19 x ‡ 16 x Hypotéza: 8=E
Potvrzení hypotézy V angličtině se často vyskytuje bigram (dvojice písmen) EE. V textu je bigram 88 celkem 5 x 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† 52 8806*81(‡ 9; 48; (88; 4(‡? 34; 48)4‡; 161; : 188; ‡? ;
Zkusíme nahradit znak 8 znakem E 53‡‡† 305))6*; 4 e 26)4‡. )4‡); e 06*; 4 e†eπ60))e 5; 1‡(; : ‡*e†e 3(ee)5*†; 46(; ee*96*? ; e)*‡(; 4 e 5); 5*† 2: *‡(; 4956*2(5*-4)e πe*; 40692 e 5); )6†e)4‡‡; 1(‡ 9; 4 e 0 e 1; e: e‡ 1; 4 e†e 5; 4)4 e 5† 52 ee 06*e 1(‡ 9; 4 e; (ee; 4(‡? 34; 4 e)4‡; 161; : 1 ee; ‡? ;
Pokračování V angličtině je velmi častý trigram THE V textu se 7 x vyskytuje trigram ; 48, tedy ; 4 e Navíc ; se vyskytuje jako druhé nejčastější písmeno 26 x, což odpovídá písmenu t Zkusíme tedy ; = t, 4 = h 53‡‡† 305))6*; 4 e 26)4‡. )4‡); e 06*; 4 e†eπ60))e 5; 1‡(; : ‡*e†e 3(ee)5 *†; 46(; ee*96*? ; e)*‡(; 4 e 5); 5*† 2: *‡(; 4956*2(5*-4)e πe*; 40692 e 5); )6†e)4‡‡; 1(‡ 9; 4 e 0 e 1; e: e‡ 1; 4 e†e 5; 4)4 e 5† 52 ee 06* e 1(‡ 9; 4 e; (ee; 4(‡? 34; 4 e)4‡; 161; : 1 ee; ‡? ;
Teď to vypadá takto 53‡‡† 305))6*the 26)h‡. )h‡)te 06*the†eπ60))e 5 t 1‡(t: ‡*e†e 3(ee)5*†th 6(tee*96*? te)*‡(th e 5)t 5*† 2: *‡(th 956*2(5*-h)e πe*th 0692 e 5)t)6†e)h‡‡t 1(‡ 9 the 0 e 1 te: e‡ 1 t he†e 5 th)he 5† 52 ee 06*e 1(‡ 9 thet(eeth(‡? 3 ht he)h‡t 161 t: 1 eet‡? t
Pokračování 53‡‡† 305))6*the 26)h‡. )h‡)te 06*the†eπ60))e 5 t 1‡(t: ‡*e†e 3(ee)5*† th 6(tee*96*? te)*‡(the 5)t 5*† 2: *‡(th 956*2(5*-h)e πe*th 0692 e 5)t)6†e)h‡‡t 1(‡ 9 the 0 e 1 te: e‡ 1 the†e 5 th)he 5† 52 ee 06 *e 1(‡ 9 thet(eeth(‡? 3 hthe)h‡t 161 t: 1 eet‡? t Další z nejčastějších znaků v textu je ‡. Přitom v textu je 2 x bigram ‡‡. Tuto vlastnost splňuje písmeno o 53 oo† 305))6*the 26)ho. )ho)te 06*the†eπ60))e 5 t 1 o(t: o*e†e 3(ee)5*† th 6(tee*96*? te)*o(the 5)t 5*† 2: *o(th 956*2(5*-h)e πe*th 0692 e 5)t)6†e)hoot 1(o 9 the 0 e 1 te: eo 1 the†e 5 th)he 5† 52 ee 06 *e 1(o 9 thet(eeth(o? 3 hthe)hot 161 t: 1 eeto? t
Pokračování 53 oo† 305))6*the 26)ho. )ho)te 06*the†eπ60))e 5 t 1 o(t: o*e†e 3(e e)5*†th 6(tee*96*? te)*o(the 5)t 5*† 2: *o(th 956*2(5*-h)e πe*th 0692 e 5)t)6†e)hoot 1(o 9 the 0 e 1 te: eo 1 the†e 5 th)he 5† 52 e e 06*e 1(o 9 thet(eeth(o? 3 hthe)hot 161 t: 1 eeto? t Na vyznačených místech lze odhadnout slova thirteen a the tree, tedy 6 = i a ( = r • 53 oo† 305))i*the 2 i)ho. )ho)te 0 i*the†eπi 0))e 5 t 1 ort: o*e†e 3 re e)5*†thirtee*9 i*? te)*orthe 5)t 5*† 2: *orth 95 i*2 r 5*-h)e πe*th 0 i 92 e 5)t)i†e)hoot 1 ro 9 the 0 e 1 te: eo 1 the†e 5 th)he 5† 52 ee 0 i*e 1 ro 9 thetreethro? 3 hthe)hot 1 i 1 t: 1 eeto? t
Pokračování • 53 oo† 305))i*the 2 i)ho. )ho)te 0 i*the†eπi 0))e 5 t 1 ort: o*e†e 3 re e)5*†thirtee*9 i*? te)*orthe 5)t 5*† 2: *orth 95 i*2 r 5*-h)e πe*th 0 i 92 e 5)t)i†e)hoot 1 ro 9 the 0 e 1 te: eo 1 the†e 5 th)he 5† 52 ee 0 i*e 1 ro 9 thetreethro? 3 hthe)hot 1 i 1 t: 1 eeto? 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 • 5 goo†g 05 ssi*the 2 isho. shoste 0 i*the†eπi 0 sse 5 t 1 ort: o*e†egr ees 5*†thirtee*9 i*utes*orthe 5 st 5*† 2: *orth 95 i*2 r 5*-hse πe*th 0 i 92 e 5 stsi†eshoot 1 ro 9 the 0 e 1 te: eo 1 the†e 5 thshe 5† 52 e e 0 i*e 1 ro 9 thetreethroughtheshot 1 i 1 t: 1 eetout
Pokračování • 5 goo†g 05 ssi*the 2 isho. shoste 0 i*the†eπi 0 sse 5 t 1 ort: o*e†egrees 5* †thirtee*9 i*utes*orthe 5 st 5*† 2: *orth 95 i*2 r 5*-hse πe*th 0 i 92 e 5 stsi†eshoot 1 ro 9 the 0 e 1 te: eo 1 the†e 5 thshe 5† 52 ee 0 i*e 1 ro 9 thetreethroughtheshot 1 i 1 t: 1 eetout • Č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*the 2 isho. shosteli*thedeπilsseat 1 ort: o*edegreesa*dt hirtee*9 i*utes*ortheasta*d 2: *orth 9 ai*2 ra*-hse πe*thli 92 eastsideshoot 1 ro 9 thele 1 te: eo 1 thedeathsheada 2 eeli*e 1 r o 9 thetreethroughtheshot 1 i 1 t: 1 eetout
Pokračování • agoodglassi*the 2 isho. shosteli*thedeπilsseat 1 ort: o*edegree sa*dthirtee*9 i*utes*ortheasta*d 2: *orth 9 ai*2 ra*-hse πe*thli 92 eastsideshoot 1 ro 9 thele 1 te: eo 1 thedeathsheada 2 eel i*e 1 ro 9 thetreethroughtheshot 1 i 1 t: 1 eetout Odhadem textu na vyznačených místech dále získáme: • * = n, 2 = b, . = p, π = v, 1 = f • agoodglassinthebishopshostelinthedevilsseatfort: onedegre esandthirteen 9 inutesnortheastandb: north 9 ainbran-hse venthli 9 beastsideshootfro 9 thelefte: eofthedeathsheadabeeli nefro 9 thetreethroughtheshotfif 1 t: feetout
A dokončení • a good glass in the bishops hostel in the devils seat fort: one degrees and thirteen 9 inutes north east and b: north 9 ain branh se venth li 9 b east side shoot fro 9 the left e: e of the deaths head a bee line fro 9 the tree through the shot fif 1 t: 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 fif 1 ty 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 jcwc. Fdgqj 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.
- Slides: 33