Obsah
Dalsˇ´ı Seznam obra´zku˚
Obsah
´ vod do problematiky bezpecˇnosti informacˇnı´ch technologiı´ 1 U ´ vodnı´ motivace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 U
7 8
1.2 Prˇehled neˇktery´ch pojmu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.1 Zranitelne´ mı´sto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.2 Hrozba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ´ tok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2.3 U 1.2.4 Riziko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3 Bezpecˇnostnı´ funkce, mechanismy a cı´le . . . . . . . . . . . . . . . . . . . . 17 1.3.1 Bezpecˇnostnı´ funkce, mechanismy . . . . . . . . . . . . . . . . . . . . 17 1.3.2 Bezpecˇnostnı´ cı´le (pozˇadavky) . . . . . . . . . . . . . . . . . . . . . . 18 2 Matematicky´ background
21
2.1 Za´kladnı´ pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 Modula´rnı´ aritmetika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.1 Eukleidu˚v algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3 Du˚lezˇite´ veˇty a proble´my . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.1 Mala´ Fermatova veˇta . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.2 Eulerova veˇta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ˇ ´ınska´ veˇta o zbytcı´ch . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3.3 C 2.3.4 Proble´m diskre´tnı´ho logaritmu . . . . . . . . . . . . . . . . . . . . . . 30 ´ vod do kryptografie 3 U
33
3.1 Za´kladnı´ kryptograficke´ pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 Bezpecˇnost kryptograficke´ho syste´mu . . . . . . . . . . . . . . . . . . . . . . 37 3.3 Vy´let do historie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.1 Substitucˇnı´ algoritmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.3.2 Permutacˇnı´ algoritmy . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1
3.3.3 Rotacˇnı´ prˇ´ıstroje - Enigma . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.4 Maly´ u´vod do kryptoanaly´zy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.4.1 Lusˇteˇnı´ jednoduche´ substituce . . . . . . . . . . . . . . . . . . . . . . 47 3.4.2 Lusˇteˇnı´ jednoduche´ permutace . . . . . . . . . . . . . . . . . . . . . . 49 4 Symetricka´ kryptografie
53
4.1 Blokove´ a proudove´ sˇifry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.1.1 Blokove´ sˇifry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1.2 Proudove´ sˇifry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2 Rezˇimy cˇinnosti symetricky´ch sˇifer . . . . . . . . . . . . . . . . . . . . . . . . 59 4.2.1 Electronic Codebook Mode (ECB) . . . . . . . . . . . . . . . . . . . . 59 4.2.2 Cipher Block Chaining (CBC) . . . . . . . . . . . . . . . . . . . . . . . 60 4.2.3 Cipher-Feedback Mode (CFB) . . . . . . . . . . . . . . . . . . . . . . 62 4.2.4 Output-Feedback Mode (OFB) . . . . . . . . . . . . . . . . . . . . . . 62 4.2.5 Counter mode (CRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.3 Algoritmus DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.3.1 TripleDES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.4 Algoritmus AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5 Asymetricka´ kryptografie
87
´ vod do asymetricke´ kryptografie . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.1 U 5.2 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.3 Diffie - Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.4 ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6 Kryptograficke´ hashovacı´ funkce
99
´ vod do problematiky kryptograficky´ch hashovacı´ch funkcı´ . . . . . . . . . . 100 6.1 U 6.1.1 Message Authentication Code . . . . . . . . . . . . . . . . . . . . . . 103 6.2 SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7 Kryptografie na ba´zi elipticky´ch krˇivek
107
´ vod do teorie elipticky´ch krˇivek . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.1 U 7.1.1 Procˇ se zacˇaly pouzˇ´ıvat elipticke´ kryptosyste´my? . . . . . . . . . . . . 108 7.1.2 Pojem elipticke´ krˇivky . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.1.3 Elipticke´ krˇivky nad Fp . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.2 ECDSA - Elliptic Curve Digital Signature Algorithm . . . . . . . . . . . . . . . 117 7.2.1 ECDSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.2.2 Shrnutı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
2
8 Na´hodne´ a pseudona´hodne´ genera´tory
122
9 Autentizace
127
9.1 Autentizacˇnı´ techniky
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9.1.1 Autentizace znalostı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.1.2 Autentizace vlastnictvı´m . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.1.3 Autentizacˇnı´ protokol
. . . . . . . . . . . . . . . . . . . . . . . . . . . 130
´ tok Man-in-the-Middle . . . . . . . . . . . . . . . . . . . . . . . . . . 132 9.1.4 U 9.2 Biometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 9.2.1 Otisky prstu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.2.2 Hlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.2.3 Za´peˇstnı´ zˇ´ıly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.2.4 Duhovka a sı´tnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 10 Digita´lnı´ podpis a certifikaty
139
10.1 Digita´lnı´ podpis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 10.2 Digital Signature Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 10.3 Certifika´ty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.3.1 Certifika´t X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 10.3.2 Vy´znacˇne´ jme´no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 10.3.3 Hierarchie certifika´tu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 ˇ eteˇzec certifika´tu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.3.4 R 10.3.5 Oveˇrˇenı´ rˇeteˇzce certifika´tu˚ . . . . . . . . . . . . . . . . . . . . . . . . . 150 Literatura
152
Rejstrˇ´ık
153
Obsah Nahoru
3
Dalsˇ´ı Seznam obra´zku˚
Prˇedcha´zejı´cı´ Obsah
Obsah
Dalsˇ´ı ´ Uvod do problematiky bezpecˇnosti informacˇnı´ch technologiı´
Seznam obra´zku˚ ´ toky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.1 U 1.2 Model zabezpecˇenı´ dat prˇi sı´t’ove´m prˇenosu. . . . . . . . . . . . . . . . . . . 19 3.1 Kryptograficky´ syste´m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2 Jednoduchy´ kryptograficky´ syste´m. . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 Playfair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4 Polyboisu˚v cˇtverec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.5 Scytale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.6 Enigma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.1 Symetricky´ kryptosyste´m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.2 Blokova´ sˇifra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3 Proudova´ sˇifra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.4 Rezˇim ECB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.5 Rezˇim CBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.6 Rezˇim CFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.7 Rezˇim OFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.8 Sche´ma Feistelovy sˇifry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.9 Obecny´ model DESu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ˇ ifrovacı´ algoritmus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.10 DES - S 4.11 Sche´ma funkce f. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 ´ vodnı´ permutace schematicky. . . . . . . . . . . . . . . . . . . . . . . . 71 4.12 IP - U 4.13 Za´veˇrecˇna´ permutace IP −1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.14 Sche´ma generova´nı´ podklı´cˇu˚ (pro sˇifrova´nı´). . . . . . . . . . . . . . . . . . . 72 4.15 Sche´ma generova´nı´ podklı´cˇu˚ (pro desˇifrova´nı´). . . . . . . . . . . . . . . . . . 73 4.16 DES - Desˇifrovacı´ algoritmus. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4
4.17 Rijndael - sˇifrovacı´ algoritmus. . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.18 Transformace SubBytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.19 Afinnı´ transformace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.20 Transformace ShiftRow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.21 Transformace MixColumns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.22 Transformace MixColumns - na´sobenı´ maticı´. . . . . . . . . . . . . . . . . . . 83 4.23 Transformace AddRoundKeys - na´sobenı´ maticı´. . . . . . . . . . . . . . . . . 83 4.24 Rijndael - desˇifrovacı´ algoritmus. . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.1 Asymetricky´ kryptosyste´m - model pro utajova´nı´. . . . . . . . . . . . . . . . . 89 5.2 Asymetricky´ kryptosyste´m - model pro autentizaci. . . . . . . . . . . . . . . . 89 6.1 DES v CBC rezˇimu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6.2 Hashovacı´ funkce SHA-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.1 Scˇı´ta´nı´ bodu˚ P + Q = R krˇivky E : y 2 = x3 − 7 ∗ x. . . . . . . . . . . . . . . . 111
7.2 Scˇı´ta´nı´ opacˇny´ch bodu˚ P + (−P ) = O krˇivky E : y 2 = x3 − 6 ∗ x + 6. . . . . . 112 7.3 Prˇicˇı´ta´nı´ bodu k sobeˇ same´mu P + P = 2P , krˇivka E : y 2 = x3 − 3 ∗ x + 5.
. 112
7.4 Prˇicˇı´ta´nı´ bodu k sobeˇ same´mu P + P = 2P = O, . . . . . . . . . . . . . . . . 113 7.5 Body krˇivky E : y 2 = x3 + x + 4 nad F23 . . . . . . . . . . . . . . . . . . . . . . 116 8.1 Cyklicke´ sˇifrova´nı´. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 8.2 ANSI X9.17 PRNG.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3 LFSR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 9.1 Vzory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.2 Identifikacˇnı´ body. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.3 Porovna´nı´ dvou otisku˚. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.4 Za´peˇstnı´ zˇ´ıly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 10.1 Digita´lnı´ podpis v dodatku zpra´vy.
. . . . . . . . . . . . . . . . . . . . . . . . 141
10.2 Algoritmus DSA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 10.3 Struktura certifika´tu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 10.4 Struktura certifika´tu˚ X.509v1,2,3. . . . . . . . . . . . . . . . . . . . . . . . . . 148 10.5 Reprezentace DN v X.500. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 10.6 Hierarchie certifikacˇnı´ch autorit. . . . . . . . . . . . . . . . . . . . . . . . . . . 149
5
Prˇedcha´zejı´cı´ Obsah
Obsah Nahoru
6
Dalsˇ´ı ´ vod do problematiky U bezpecˇnosti informacˇnı´ch technologiı´
Prˇedcha´zejı´cı´ Seznam obra´zku˚
Obsah
Dalsˇ´ı ´ Uvodnı´ motivace
Kapitola 1
´ vod do problematiky bezpecˇnosti U informacˇnı´ch technologiı´ Obsah ´ vodnı´ motivace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 U 1.2 Prˇehled neˇktery´ch pojmu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Zranitelne´ mı´sto . . . 1.2.2 Hrozba . . . . . . . . ´ tok . . . . . . . . . . 1.2.3 U 1.2.4 Riziko . . . . . . . . .
8 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12 13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 16
1.3 Bezpecˇnostnı´ funkce, mechanismy a cı´le . . . . . . . . . . . . . . . . . 1.3.1 Bezpecˇnostnı´ funkce, mechanismy . . . . . . . . . . . . . . . . . . 1.3.2 Bezpecˇnostnı´ cı´le (pozˇadavky) . . . . . . . . . . . . . . . . . . . .
17 17 18
Tato kapitola je u´vodem do problematiky bezpecˇnosti infromacˇnı´ch technologiı´. Vy´borny´m zdrojem informacı´ k tomuto u´vodu jsou [5], [7], ze ktery´ch bylo cˇerpa´no i prˇi jeho tvorbeˇ.
Prˇedcha´zejı´cı´ Seznam obra´zku˚
Obsah Nahoru
7
Dalsˇ´ı ´ vodnı´ motivace U
Prˇedcha´zejı´cı´ ´ vod do problematiky U bezpecˇnosti informacˇnı´ch technologiı´
1.1
Obsah
Dalsˇ´ı Prˇehled neˇktery´ch pojmu˚
´ vodnı´ motivace U ˇ asova´ na´rocˇnost kapitoly: 30 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt vysveˇtlit pojem bezpecˇnost IT a da´le budete schopni definovat, cˇı´m je bezpecˇnost IT zajisˇteˇna. Da´le budete umeˇt definovat aktiva informacˇnı´ho syste´mu.
Pod pojmem bezpecˇnost informacˇnı´ch technologiı´ obvykle rozumı´me ochranu odpovı´dajı´cı´ch informacˇnı´ch syste´mu˚ a informacı´, ktere´ jsou v nich uchova´va´ny, zpracova´va´ny a prˇena´sˇeny. Soucˇa´stı´ takto obecneˇ cha´pane´ bezpecˇnosti informacˇnı´ch technologiı´ (da´le jen IT) je i komunikacˇnı´ bezpecˇnost, tj. ochrana informace prˇena´sˇene´ mezi pocˇı´tacˇi, fyzicka´ bezpecˇnost, tj. ochrana prˇed prˇ´ırodnı´mi hrozbami a fyzicky´mi u´tocˇnı´ky a persona´lnı´ bezpecˇnost, tj. ochrana prˇed vnitrˇnı´mi u´tocˇnı´ky. Pojem bezpecˇnost IT v sobeˇ tedy zahrnuje i takove´ pojmy, jaky´mi jsou bezpecˇnost informacˇnı´ch syste´mu˚, ochrana informacˇnı´ch syste´mu˚, ochrana informacı´, ochrana informacˇnı´ch technologiı´, pocˇı´tacˇova´ bezpecˇnost, telekomunikacˇnı´ bezpecˇnost apod. Tyto pojmy mohou mı´t pro mnohe´ odlisˇny´ vy´znam, ale pojem bezpecˇnost IT ale bude da´l pouzˇ´ıva´n jako obecny´ pojem, ktery´ mu˚zˇe reprezentovat ktery´koli z ostatnı´ch uvedeny´ch pojmu˚. V soucˇasne´ dobeˇ je prostrˇednictvı´m informacˇnı´ch technologiı´ zpracova´va´no sta´le veˇtsˇ´ı mnozˇstvı´ informacı´, ktere´ majı´ velkou hodnotu (naprˇ. danˇova´ prˇizna´nı´, elektronicke´ platebnı´ na´stroje, vy´sledky vy´voje nebo vy´zkumu). Zpracova´nı´m informacı´ se v tomto kontextu rozumı´ pouzˇitı´ informacˇnı´ch technologiı´ k uchova´va´nı´, prˇenosu, vyhodnocova´nı´ a prezentaci informacı´. Informace musejı´ by´t chra´neˇny takovy´m zpu˚sobem: • aby k nim meˇly prˇ´ıstup pouze opra´vneˇne´ osoby, • aby se zpracova´valy nefalsˇovane´ informace, • aby se dalo zjistit, kdo je vytvorˇil, zmeˇnil nebo odstranil, • aby nebyly nekontrolovany´m zpu˚sobem vyzrazeny, • aby byly dostupne´ tehdy, kdyzˇ jsou potrˇebne´. Bezpecˇnost IT lze definovat jako zajisˇteˇnost proti nebezpecˇı´m, minimalizaci rizik a jako komplex administrativnı´ch, logicky´ch, technicky´ch a fyzicky´ch opatrˇenı´ pro prevenci, detekci a opravu nespra´vne´ho pouzˇitı´ informacˇnı´ho syste´mu (da´le jen IS). Informacˇnı´ syste´m je syste´m, kde jsou zpracova´va´na a uchova´va´na data, ktera´ jsou nositeli informacı´. Obsahuje na´sledujı´cı´ tzv. aktiva:
8
• hardware - procesor, pameˇti, termina´ly, telekomunikace atd., • software - aplikacˇnı´ programy, operacˇnı´ syste´m atd., • data - data ulozˇena´ v databa´zi, vy´sledky, vy´stupnı´ sestavy, vstupnı´ data atd. Bezpecˇny´ IS je takovy´ IS, ktery´ je zajisˇteˇn fyzicky, administrativneˇ, logicky i technicky. V soudobe´m cha´pa´nı´ bezpecˇnosti IT je bezpecˇnost da´na zajisˇteˇnı´m na´sledujı´cı´ch vlastnostı´ bezpecˇne´ho IS: • du˚veˇrnosti (confidentiality) - k aktivu˚m (k u´daju˚m) majı´ prˇ´ıstup pouze autorizovane´ subjekty, • integrity (Integrity) a autenticity - aktiva smı´ modifikovat jen autorizovane´ subjekty a pu˚vod informacı´ je oveˇrˇitelny´, • dostupnosti (accessibility) - aktiva (data nebo sluzˇby) jsou autorizovany´m subjektu˚m do urcˇite´ doby dostupna´, nedojde tedy k odmı´tnutı´ sluzˇby, kdy subjekt nedostane to na co ma´ pra´vo, • prokazatelnosti odpoveˇdnosti (accountability) - za´ruka, zˇe lze ucˇinit subjekty zodpoveˇdne´ za sve´ aktivity, ozn. take´ u´cˇtovatelnost, • nepopiratelnosti odpoveˇdnosti (non-repudiation) - nelze poprˇ´ıt u´cˇast na transakci, • spolehlivosti (reliability) - konzistence zamy´sˇlene´ho a vy´sledne´ho chova´nı´. Prˇ´ıklad 1.1 Narusˇenı´ bezpecˇnosti zpracova´va´nı´ informacı´ lze prove´st naprˇ´ıklad: • vyda´va´nı´m se za jinou opra´vneˇnou osobu a zneuzˇ´ıva´nı´m jejı´ch privilegiı´, • distancova´nı´m se od odpoveˇdnosti nebo od za´vazku˚ plynoucı´ch z manipulace s informacemi, • tvrzenı´m, zˇe se neˇjaka´ informace neˇkam poslala a toto se nikdy nestalo, • tvrzenı´m, zˇe se informace zı´skala od neˇjake´ho podvodnı´ka, • neopra´vneˇny´m zvy´sˇenı´m svy´ch privilegiı´ prˇ´ıstupu k informacı´m, • modifikacı´ privilegiı´ ostatnı´ch osob, • zatajenı´m vy´skytu du˚veˇrne´ informace v jiny´ch informacı´ch, • zjisˇt’ova´nı´m, kdo a kdy si zprˇ´ıstupnˇuje ktere´ informace, • zarˇazenı´m se jako skryty´ mezicˇla´nek v konverzaci jiny´ch subjektu˚, • pokazˇenı´m funkcionality softwaru doplneˇnı´m skryty´ch funkcı´, • narusˇenı´m protokolu cˇinnostı´ jiny´ch subjektu˚ (zavedenı´m nespra´vny´ch, nekorektnı´ch informacı´), • podkopa´nı´m du˚veˇryhodnosti protokolu zpu˚sobeny´m zjevny´mi, byt’ mozˇna´ jen zda´nlivy´mi poruchami, • bra´neˇnı´m jiny´m uzˇivatelu˚m legitimneˇ komunikovat.
9
2 V soucˇasne´ dobeˇ organizace pouzˇ´ıvajı´ informacˇnı´ a komunikacˇnı´ syste´my budovane´ na ba´zi informacˇnı´ch technologiı´ jak uvnitrˇ organizace („intranet“, vnitrˇnı´ sı´t’), tak pro komunikaci s ostatnı´mi organizacemi („extranet“ / Internet). Tı´m se cˇinnosti organizace sta´vajı´ silneˇ za´visle´ na informacı´ch a sluzˇba´ch IT. Organizace musı´ sve´ informacˇnı´ syste´my zabezpecˇovat stejneˇ jako jine´ investice do sve´ cˇinnosti: • hardwarove´ komponenty IT lze znicˇit (teroristy nebo i nespokojeny´mi cˇi pomateny´mi zameˇstnanci) nebo ukra´st (a levneˇ prodat nebo pouzˇ´ıvat pro vlastnı´ potrˇebu), • „ukra´st“ lze i software, ktery´ mnohdy prˇedstavuje enormnı´ a prˇitom sˇpatneˇ vycˇı´slitelne´ hodnoty. Konkurent tak mu˚zˇe usˇetrˇit na´klady na vy´voj a/nebo na porˇ´ızenı´ softwaru, • neopra´vneˇne´ uzˇ´ıva´nı´ softwaru zameˇstnanci pro osobnı´ potrˇebu nebo pro jejich druhe´ zameˇstna´nı´ je zdrojem jejich nelega´lnı´ch zisku˚, • provozovateli kradene´ho softwaru mohou vzniknout sˇkody plynoucı´ z trestnı´ odpoveˇdnosti za porusˇenı´ licence, • informacˇnı´ syste´m lze pouzˇ´ıvat neautorizovaneˇ, a tı´m zpu˚sobit naprˇ. znicˇenı´ syste´mu nebo porusˇenı´ soukromı´ jiny´ch osob („kra´dezˇ´ı “ prˇ´ıstupove´ho hesla, prˇekona´nı´m mechanismu rˇ´ıdicı´ho prˇ´ıstup k IS), • IS lze vyuzˇ´ıvat i autorizovany´mi zameˇstnanci k nepracovnı´ cˇinnosti, at’ jizˇ osobnı´, nebo vy´deˇlecˇne´. Existujı´ pra´vnı´, mora´lnı´ a eticka´ pravidla pro pouzˇ´ıva´nı´ informacı´, existujı´ za´konne´ u´pravy pro ochranu dat, a ty je zˇa´doucı´, resp. nutne´, dodrzˇovat, viz publikace [6]. Bezpecˇnostnı´ politika v oblasti IT je soucˇa´stı´ vsˇeobecne´ bezpecˇnostnı´ politiky organizace, ktera´ prˇedstavuje souhrn bezpecˇnostnı´ch za´sad a prˇedpisu˚ definujı´cı´ch zpu˚sob zabezpecˇenı´ organizace od fyzicke´ ostrahy, prˇes ochranu profesnı´ch za´jmu˚ azˇ po ochranu soukromı´ a lidsky´ch pra´v. Bezpecˇnostnı´ politika IT organizace se zaby´va´ vy´beˇrem bezpecˇnostnı´ch za´sad a prˇedpisu˚, ktere´ splnˇujı´ bezpecˇnostnı´ politiku organizace a obecneˇ definujı´ bezpecˇne´ pouzˇ´ıva´nı´ informacˇnı´ch zdroju˚ v ra´mci organizace neza´visle na konkre´tneˇ pouzˇity´ch informacˇnı´ch technologiı´ch (urcˇuje, ktera´ data jsou pro organizaci citliva´, kdo je za neˇ odpoveˇdny´, prˇedpisuje infrastrukturu zaby´vajı´cı´ se v ra´mci organizacˇnı´ struktury organizace bezpecˇnostı´, vymezuje za´kladnı´ omezenı´, ktera´ se musı´ respektovat apod.). Syste´mova´ bezpecˇnostnı´ politika IT urcˇuje detaily konkre´tnı´ch norem, pravidel a prˇedpisu˚, ktere´ definujı´ zpu˚sob spra´vy, ochrany a distribuce informacı´ v ra´mci organizace. Da´le specifikuje bezpecˇnostnı´ opatrˇenı´ a zpu˚sob jejich implementace a urcˇuje zpu˚sob pouzˇitı´ teˇchto opatrˇenı´, prˇicˇemzˇ jsou respektova´ny pouzˇite´ IT. Provoznı´ prosazova´nı´ syste´move´ bezpecˇnostnı´ politiky se cˇasto oznacˇuje pojmem bezpecˇnostnı´ program. Bez explicitnı´ definice a ohodnocenı´ aktiv nelze implementovat a udrzˇovat zˇa´dny´ bezpecˇnostnı´ program. Je trˇeba si uveˇdomit, zˇe kazˇdy´ IS je zranitelny´, bezpecˇnostnı´ politika IS pouze snizˇuje pravdeˇpodobnost u´speˇchu u´toku proti IS nebo nutı´ u´tocˇnı´ka vynakla´dat vı´ce peneˇz nebo cˇasu. Absolutneˇ bezpecˇny´ syste´m neexistuje. Kdyzˇ analyzujeme IS z hlediska potrˇeb jeho zabezpecˇenı´, rozpozna´va´me:
10
• objekt IS - pasivnı´ entita, ktera´ obsahuje/prˇijı´ma´ informace a je prˇ´ıstupna´ autorizovany´m subjektu˚m IS, • subjekt IS - aktivnı´ entita (osoba, proces nebo zarˇ´ızenı´ cˇinne´ na za´kladeˇ prˇ´ıkazu uzˇivatele) autorizovatelna´ pro zı´ska´nı´ informace z objektu, vyda´va´nı´ prˇ´ıkazu˚ ovlivnˇujı´cı´ch udeˇlenı´ pra´v prˇ´ıstupu k objektu, zmeˇnu stavu objektu apod. Pojmem autorizace (authorization) subjektu pro jistou cˇinnost rozumı´me urcˇenı´, zˇe dany´ subjekt je z hlediska te´to cˇinnosti du˚veˇryhodny´. Udeˇlenı´ autorizace subjektu si vynucuje, aby se pracovalo s autenticky´mi subjekty. Autentizacı´ (authentication) se rozumı´ proces oveˇrˇova´nı´ pravosti identity entity (subjektu, objektu, tj. uzˇivatele, procesu, syste´mu˚, informacˇnı´ch struktur apod.). Du˚veˇryhodny´ (trustworthy) IS (subjekt nebo objekt) je takova´ entita, o ktere´ se veˇrˇ´ı (je o tom poda´n du˚kaz), zˇe je implementovana´ tak, zˇe splnˇuje svoji specifikaci vypracovanou v souladu s bezpecˇnostnı´ politikou. Na du˚veˇryhodnou entitu se mu˚zˇeme spolehnout, chova´li se tak, jak ocˇeka´va´me, zˇe se bude chovat.
Shrnutı´ kapitoly 1.1 V te´to podkapitole jsme si ozrˇejmili pojem zpracova´nı´ informacı´ a sezna´mili se pojmem bezpecˇnost informacˇnı´ch technologiı´. Da´le jsme si rˇekli co je informacˇnı´ syste´m a jaka´ jsou jeho aktiva. Zı´skali jsme prˇedstavu o tom, jake´ jsou bezpecˇnostnı´ politiky organizace. Nejdu˚lezˇiteˇjsˇ´ımi pojmy, se ktery´mi da´le budeme pracovat jsou: autentizace, autorizace, du˚veˇrnost a du˚veˇryhodnost, integrita, nepopiratelnost a prokazatelnost odpoveˇdnosti, spolehlivost a dostupnost.
?
Ota´zky ke kapitole 1.1 1. Proti ktere´ vlastnosti bezpecˇne´ho IS u´tocˇı´te, pokud neopra´vneˇneˇ zvy´sˇ´ıte sva´ privilegia (pro prˇ´ıstup k informacı´m)? 2. Proti ktere´ vlastnosti bezpecˇne´ho IS u´tocˇı´te, pokud se zarˇadı´te skryty´ mezicˇla´nek v konverzaci jiny´ch subjektu˚? 3. Proti ktere´ vlastnosti bezpecˇne´ho IS u´tocˇı´te, pokud omezı´te funkcˇnost softwaru? 4. Proti ktere´ vlastnosti bezpecˇne´ho IS u´tocˇı´te, pokud bra´neˇnı´te jiny´m uzˇivatelu˚m v legitimnı´ komunikaci?
Prˇedcha´zejı´cı´ ´ vod do problematiky U bezpecˇnosti informacˇnı´ch technologiı´
Obsah Nahoru
11
Dalsˇ´ı Prˇehled neˇktery´ch pojmu˚
Prˇedcha´zejı´cı´ ´ vodnı´ motivace U
1.2
Obsah
Dalsˇ´ı Bezpecˇnostnı´ funkce, mechanismy a cı´le
Prˇehled neˇktery´ch pojmu˚ ˇ asova´ na´rocˇnost kapitoly: 30 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt definovat pojmy zranitelne´ mı´sto, hrozba, u´tok a riziko a charakterizovat jednotlive´ typy u´toku˚.
1.2.1
Zranitelne´ mı´sto
Slabinu IS vyuzˇitelnou ke zpu˚sobenı´ sˇkod nebo ztra´t u´tokem na IS nazy´va´me zranitelne´ mı´sto. Existence zranitelny´ch mı´st je du˚sledek chyb, selha´nı´ v analy´ze, v na´vrhu a/nebo v implementaci IS, du˚sledek vysoke´ hustoty ulozˇeny´ch informacı´, slozˇitosti softwaru, existence skryty´ch kana´lu˚ pro prˇenos informace jinou nezˇ zamy´sˇlenou cestou apod. Podstata zranitelne´ho mı´sta mu˚zˇe by´t: • fyzicka´ - naprˇ. umı´steˇnı´ IS v mı´steˇ, ktere´ je snadno dostupne´ sabota´zˇi a/nebo vandalismu, vy´padek napeˇtı´, • prˇ´ırodnı´ - objektivnı´ faktory typu za´plava, pozˇa´r, zemeˇtrˇesenı´, blesk, • v hardwaru nebo v softwaru, • fyzika´lnı´ - vyzarˇova´nı´, u´toky prˇi komunikaci na vy´meˇnu zpra´vy, na spoje, • v lidske´m faktoru - nejveˇtsˇ´ı zranitelnost ze vsˇech mozˇny´ch variant. Prˇ´ıklad 1.2 Jako prˇ´ıklady typicky´ch zranitelny´ch mı´st naprˇ. v operacˇnı´ch syste´mech lze uve´st: • okamzˇik identifikace a autentizace - podvrzˇeny´ login program (trojsky´ ku˚nˇ) umı´ ukra´st heslo, • chybny´ prˇedpoklad du˚veˇryhodnosti - prˇedpokla´da´ se spra´vnost jine´ho programu, mı´sto toho, aby se pecˇliveˇ testovala spra´vnost jı´m doda´vany´ch parametru˚, • skryte´ sdı´lenı´ - syste´m mu˚zˇe ukla´dat kriticke´ informace do adresovy´ch prostoru˚ procesu˚, anizˇ by to bylo definova´no v jeho manua´lu (tajne´ usnadneˇnı´ implementace, chyba na´vrhu...), • komunikace mezi procesy - testova´nı´ zası´la´nı´m a cˇtenı´m zpra´v azˇ do zı´ska´nı´ spra´vne´ho vy´sledku, • prˇerusˇenı´ komunikacˇnı´ho spojenı´ - u´tocˇnı´k nahradı´ pu˚vodnı´ spoj svy´m spojem, 12
• rezidua (neznicˇena´ informace v uvolneˇny´ch prostrˇedcı´ch, skryte´ pameˇt’ove´ kana´ly), • nekontrolova´nı´ pocˇtu˚ neu´speˇsˇny´ch pokusu˚ prˇihla´sˇenı´ se apod. 2
1.2.2
Hrozba
Pojmem hrozba oznacˇujeme mozˇnost zuzˇitkovat zranitelne´ mı´sto IS k u´toku na neˇj - ke zpu˚sobenı´ sˇkody na aktivech. Hrozby lze kategorizovat na: • objektivnı´ : - prˇ´ırodnı´, naprˇ. fyzicke´ pozˇa´r, povodenˇ, vy´padek napeˇtı´, poruchy..., u ktery´ch je prevence obtı´zˇna´, a u ktery´ch je trˇeba rˇesˇit spı´sˇe minimalizaci dopadu˚ vhodny´m pla´nem obnovy, - fyzika´lnı´, naprˇ. elektromagneticke´ vyzarˇova´nı´, - technicke´ nebo logicke´, naprˇ porucha pameˇti, softwarova´ „zadnı´ vra´tka“, sˇpatne´ propojenı´ jinak bezpecˇny´ch komponent, kra´dezˇ, resp. znicˇenı´ pameˇt’ove´ho me´dia, nebo nedokonale´ zrusˇenı´ informace na neˇm, • subjektivnı´, tj. hrozby plynoucı´ z lidske´ho faktoru: - neu´myslne´, naprˇ. pu˚sobenı´ nesˇkolene´ho uzˇivatele / spra´vce, - u´myslne´, prˇedstavovane´ potencia´lnı´ existencı´ vneˇjsˇ´ıch u´tocˇnı´ku˚ (sˇpioni, teroristi, krimina´lnı´ zˇivly, konkurenti, hackerˇi) i vnitrˇnı´ch u´tocˇnı´ku˚ (naprˇ. by´t propusˇteˇny´, rozzlobeny´, vydı´rany´, chamtivy´ zameˇstnanec). Charakteristikou hrozby je jejı´ zdroj (naprˇ. vneˇjsˇ´ı nebo vnitrˇnı´), motivace potencia´lnı´ho u´tocˇnı´ka (financˇnı´ zisk, zı´ska´nı´ konkurencˇnı´ prˇevahy), frekvence a kriticˇnost uplatneˇnı´ hrozby. Prˇ´ıklad 1.3 Jako prˇ´ıklady typicky´ch hrozeb pro IT lze uve´st: • neautorizovane´ modifikace informacı´, informacˇnı´ch zdroju˚ a sluzˇeb, tj. porusˇenı´ integrity odchyta´va´nı´m a modifikacı´ zpra´v, vkla´da´nı´m a replikacemi zpra´v, • neautorizovane´ zprˇ´ıstupneˇnı´ informace odposlechem na prˇenosove´m me´diu, • analy´zu toku vymeˇnˇovany´ch zpra´v nebo jejich de´lek, resp. frekvencı´ zası´la´nı´, analy´za adres zdroju˚ a cı´lu˚ zpra´v, • neopra´vneˇne´ kopı´rova´nı´ z docˇasny´ch pameˇt’ovy´ch mı´st (vyrovna´vacı´ pameˇti), • agregaci citlivy´ch informacı´ z me´neˇ citlivy´ch dı´lcˇı´ch informacı´, • dedukci ze znalosti, zˇe jista´ informace je ulozˇena v databa´zi, dedukce z informacı´ neopra´vneˇneˇ dostupny´ch na verˇejny´ch zdrojı´ch (naprˇ. z mnohy´ch nedostatecˇneˇ chra´neˇny´ch syste´movy´ch tabulek), • neautorizovane´ pouzˇitı´ zdroju˚ (kra´dezˇe hardwarovy´ch a softwarovy´ch komponent, vcˇetneˇ pouzˇ´ıva´nı´ jejich neopra´vneˇny´ch kopiı´), neautorizovane´ pouzˇ´ıva´nı´ informacˇnı´ch syste´mu˚ a sluzˇeb jimi poskytovany´ch, • zneprˇ´ıstupneˇnı´ sluzˇeb, tj. akce a uda´losti, ktere´ bra´nı´ autorizovany´m subjektu˚m vyuzˇ´ıvat syste´m IT na dohodnute´ u´rovni poskytovany´ch sluzˇeb,
13
´ toky. Obra´zek 1.1: U
• popı´ra´nı´ odpoveˇdnosti za akce citlive´ z hlediska bezpecˇnosti, naprˇ. popı´ra´nı´ aktu zasla´nı´ nebo prˇijetı´ zpra´vy, popı´ra´nı´ autorstvı´ dane´ zpra´vy. 2
1.2.3
´ tok U
U´tokem rozumı´me bud’to u´myslne´ vyuzˇitı´ zranitelne´ho mı´sta ke zpu˚sobenı´ sˇkod/ztra´t na aktivech IS, nebo neu´myslne´ uskutecˇneˇnı´ akce, jejı´mzˇ vy´sledkem je sˇkoda na aktivech. Prˇi analy´ze mozˇny´ch forem u´toku˚ na IT je trˇeba typicky rˇesˇit proble´my typu: jak se projevuje pocˇı´tacˇova´ kriminalita, jake´ jsou mozˇne´ formy u´toku˚, kdo u´tocˇı´, jaka´ rizika souvisı´ s pouzˇ´ıva´nı´m informacˇnı´ch technologiı´, jak se chra´nit prˇed u´toky apod. Na´sledneˇ rˇesˇeny´mi ´ tocˇit lze: proble´my jsou pak rozhodnutı´ typu: jak detekovat u´tok, jak reagovat na u´tok. U • prˇerusˇenı´m (interruption) (viz obra´zek 1.1 b)) - aktivnı´ u´tok na dostupnost, naprˇ. ztra´ta, zneprˇ´ıstupneˇnı´, posˇkozenı´ aktiva, porucha perife´rie, vymaza´nı´ programu, vymaza´nı´ dat, porucha v operacˇnı´m syste´mu, • odposlechem (interception) (viz obra´zek 1.1 c)) - pasivnı´ u´tok na du˚veˇrnost, kdy neautorizovany´ subjekt si neopra´vneˇneˇ zprˇ´ıstupnı´ aktiva, jde naprˇ. o okopı´rova´nı´ programu nebo o okopı´rova´nı´ dat, odposlech prova´deˇny´ prˇi datovy´ch prˇenosech po sı´ti, • zmeˇnou (modification) (viz obra´zek 1.1 d)) - aktivnı´ u´tok na integritu, neautorizovany´ subjekt zasa´hne do aktiva, provede se naprˇ. zmeˇna ulozˇeny´ch a/nebo prˇena´sˇeny´ch dat, prˇida´nı´ funkce do programu, • prˇida´nı´m hodnoty (fabrication) (viz obra´zek 1.1 e)) - aktivnı´ u´tok na integritu nebo u´tok na autenticitu, tj. prˇ´ıpad, kdy neautorizovana´ strana neˇco vytvorˇ´ı (podvrzˇenı´ transakce, doda´nı´ falesˇny´ch dat). ´ toky lze da´le rozdeˇlit na: U
14
• pasivnı´ u´toky jsou u´toky odposlechem - zverˇejneˇnı´ obsahu zpra´vy a sledova´nı´ provozu (u´tocˇnı´k mu˚zˇe sledovat polohu a identitu komunikujı´cı´ch subjektu˚, frekvenci a de´lku vymeˇnˇovany´ch zpra´v, cozˇ umozˇnı´ odhadnout povahu komunikace), • aktivnı´ u´toky (prˇerusˇenı´m, zmeˇnou a prˇida´nı´m hodnoty): - masˇkara´da (masquerade) (entita se vyda´va´ za jinou), - zachycenı´ (replay), - modifikace zpra´vy, - odeprˇenı´ sluzˇby (denial of service) (zabra´neˇnı´, blokova´nı´ norma´lnı´ho uzˇitı´ komunikacˇnı´ch prostrˇedku˚). Vhodnou formou ochrany prˇed pasivnı´mi u´toky odposlechem je prevence, poneˇvadzˇ detekce odposlechu je velmi obtı´zˇna´. Absolutnı´ prevence u´toku˚ ovsˇem zajistitelna´ nenı´, proto typicka´ ochrana (hlavneˇ prˇed aktivnı´mi formami u´toku˚) je zalozˇena na detekci u´toku˚ a na na´sledne´ obnoveˇ cˇinnosti. Da´le rozpozna´va´me: • u´toky na hardware, ktere´ lze ve´st: - prˇerusˇenı´m - prˇ´ırodnı´ hava´rie, neu´myslne´ u´toky zpu˚sobene´ kourˇenı´m, u´dery, u´myslne´ u´toky kra´dezˇ´ı, destrukcı´, - odposlechem - kra´dezˇ cˇasu procesoru, mı´sta v pameˇti, - prˇida´nı´m hodnoty - zmeˇnou rezˇimu cˇinnosti, • u´toky na software, ktere´ lze ve´st: - prˇerusˇenı´m - mezi neu´myslne´ u´toky mu˚zˇe patrˇit vymaza´nı´ softwaru zpu˚sobene´ sˇpatny´m konfiguracˇnı´m syste´mem nebo archivacˇnı´m syste´mem, pouzˇitı´ neotestovany´ch programu˚, chyby opera´tora; mezi u´myslne´ u´toky patrˇ´ı naprˇ. u´myslne´ vymaza´nı´ programu, - odposlechem - provedenı´ neopra´vneˇne´ kopie programu, pira´tstvı´, - zmeˇnou - naprˇ. vyuzˇitı´m „zadnı´ch vra´tek“ (neverˇejny´ch spousˇteˇcı´ch postupu˚ z doby tvorby softwaru), - prˇida´nı´m hodnoty - zabudova´va´nı´m trojsky´ch konˇu˚, viry, cˇervi, logicke´ bomby, • u´toky na data - zatı´mco u´tok na hardware lze vyrˇesˇit bezpecˇnostnı´mi syste´my, stra´zˇemi apod. a u´tok na software vedou obvykle profesiona´lneˇ zdatnı´ jedinci, tak u´tok ´ toky na data lze opeˇt ve´st: na data je mnohem nebezpecˇneˇjsˇ´ı. U - prˇerusˇenı´m - mezi neu´myslne´ u´toky lze zarˇazovat jejich neu´myslne´ vymaza´nı´, mezi u´myslne´ u´toky pak u´myslne´ vymaza´nı´, sabota´zˇ, - odposlechem - porusˇenı´ du˚veˇrnosti, kra´dezˇ kopiı´, - zmeˇnou - porusˇenı´ integrity, neautorizovane´ modifikace dat, - prˇida´nı´m hodnoty - opakovany´mi neautorizovany´mi dı´lcˇı´mi odbeˇry z peneˇzˇnı´ho konta (sala´movy´ u´tok), generova´nı´ transakcı´ atd. Prˇ´ıklad 1.4 Jako prˇ´ıklady u´toku˚ naprˇ. na operacˇnı´ syste´m lze uve´st: • prohlı´zˇenı´ pameˇtı´, syste´mu souboru˚, • vyuzˇitı´ neodstraneˇny´ch ladı´cı´ch vstupnı´ch bodu˚, • zamezenı´ poskytova´nı´ sluzˇeb autorizovany´m uzˇivatelu˚m (zahlcenı´m pocˇı´tacˇe elektronickou posˇtou, monopolizacı´ pocˇı´tacˇe nadmeˇrny´m generova´nı´m procesu˚), • vystupova´nı´m v identiteˇ jine´ho autorizovane´ho uzˇivatele, 15
• podplacenı´/podvedenı´ opera´tora/obsluhy. 2
1.2.4
Riziko
Existence hrozby prˇedstavuje riziko. Rizikem rozumı´me pravdeˇpodobnost vyuzˇitı´ zranitelˇ ´ıka´me, zˇe se hrozba uplatnı´ s takovou a takovou pravdeˇpodobnostı´. Rizika ne´ho mı´sta IS. R lze charakterizovat vedle pravdeˇpodobnosti vy´skytu bezpecˇnostnı´ho incidentu i potencia´lneˇ zpu˚sobenou sˇkodou.
Shrnutı´ kapitoly 1.2 V te´to podkapitole jsme si vysveˇtlili za´kladnı´ pojmy zranitelne´ mı´sto, hrozba, u´tok a riziko. Nejdu˚lezˇiteˇjsˇ´ı dovednostı´ zı´skanou prˇi studiu te´to podkapitoly je schopnost urcˇit typy u´toku˚ (prˇerusˇenı´m, odposlechem, zmeˇnou a prˇida´nı´m hodnoty) a uve´st jejich prˇ´ıklady.
?
Ota´zky ke kapitole 1.2 1. Uved’te prˇ´ıklady zranitelny´ch mı´st v hardwaru, softwaru a zranitelny´ch mı´st s za´visly´ch na lidske´m faktoru. 2. Uved’te prˇ´ıklady technicky´ch a logicky´ch hrozeb. 3. Uved’te prˇ´ıklady u´toku prˇerusˇenı´m. 4. Uved’te prˇ´ıklady u´toku zmeˇnou. 5. Uved’te prˇ´ıklady u´toku odposlechem. 6. Uved’te prˇ´ıklady u´toku prˇida´nı´m hodnoty.
Prˇedcha´zejı´cı´ ´ vodnı´ motivace U
Obsah Nahoru
16
Dalsˇ´ı Bezpecˇnostnı´ funkce, mechanismy a cı´le
Prˇedcha´zejı´cı´ Prˇehled neˇktery´ch pojmu˚
1.3
Obsah
Dalsˇ´ı Matematicky´ background
Bezpecˇnostnı´ funkce, mechanismy a cı´le ˇ asova´ na´rocˇnost kapitoly: 25 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt charakterizovat bezpecˇnostnı´ cı´le, bezpecˇnostnı´ funkce a bezpecˇnostnı´ mechanismy, ktery´mi implementujeme bezp. funkce.
1.3.1
Bezpecˇnostnı´ funkce, mechanismy
Zabezpecˇujeme-li IS, je trˇeba nejprve stanovit bezpecˇnostnı´ cı´le a zpu˚sob jejich dosazˇenı´. Bezpecˇnostnı´ cı´le jsou dı´lcˇı´ prˇ´ınosy k bezpecˇnosti, kterou dosahuje IS z hlediska udrzˇenı´ du˚veˇrnosti, integrity a dostupnosti. Prostrˇedkem pouzˇity´m pro dosazˇenı´ stanoveny´ch bezpecˇnostnı´ch cı´lu˚ IS jsou bezpecˇnostnı´ funkce IS (bezpecˇnostnı´ opatrˇenı´). Bezpecˇnostnı´ funkce (sluzˇby) mu˚zˇeme kategorizovat podle okamzˇiku uplatneˇnı´ na: • preventivnı´ (naprˇ. odstranˇujı´cı´ zranitelna´ mı´sta nebo aktivity zvysˇujı´cı´ bezpecˇnostnı´ uveˇdomeˇnı´), • heuristicke´ (snizˇujı´cı´ riziko dane´ neˇjakou hrozbou), • detekcˇnı´ a opravne´ (minimalizujı´cı´ u´cˇinek u´toku podle sche´matu „detekce-opravazotavenı´“). Bezpecˇnostnı´ funkce mu˚zˇeme kategorizovat rovneˇzˇ podle zpu˚sobu implementace. Implementujı´cı´ bezpecˇnostnı´ mechanismus mu˚zˇe mı´t charakter fyzicke´ho opatrˇenı´, administrativnı´ akce, mu˚zˇe jı´m by´t technicke´ zarˇ´ızenı´ nebo logicky´ na´stroj (procedura, algoritmus). Podle zpu˚sobu implementace pak rozezna´va´me bezpecˇnostnı´ funkce: • softwarove´ho charakteru (mnohdy oznacˇovane´ jako logicke´ bezpecˇnostnı´ funkce) naprˇ. softwarove´ rˇ´ızenı´ prˇ´ıstupu, funkce zalozˇene´ na pouzˇitı´ kryptografie, digita´lnı´ podepisova´nı´, antivirove´ prostrˇedky, zrˇizova´nı´ u´cˇtu˚, standardy pro na´vrh, ko´dova´nı´, testova´nı´, u´drzˇbu programu˚, ochranne´ na´stroje v operacˇnı´ch syste´mech (ochrana pameˇti, ochrana souboru˚ rˇ´ızenı´m prˇ´ıstupu, prˇ´ıstupove´ matice, prˇ´ıstupove´ seznamy, hesla, autentizace prˇ´ıstupu k termina´lu), ochranne´ na´stroje v aplikacˇnı´ch syste´mech pro autentizaci prˇ´ıstupu, pro autentizaci zpra´v atd., • administrativnı´ho a spra´vnı´ho charakteru - ochrana proti hrozba´m souvisejı´cı´m s nedokonalostı´ odpoveˇdnosti a rˇ´ızenı´ syste´mu IT; vy´beˇr a sˇkolenı´ du˚veˇryhodny´ch osob, hesla, autorizacˇnı´ postupy, prˇijı´macı´ a vy´poveˇdnı´ postupy, pra´vnı´ normy, za´kony, vyhla´sˇky, prˇedpisy, eticke´ normy, licencˇnı´ politika, na´stroje provoznı´ho rˇ´ızenı´, zpravodajstvı´ o uda´lostech a stavech vy´znamny´ch z hlediska bezpecˇnosti, sbeˇru a analy´zy statistik, konfigurace syste´mu apod.,
17
• hardwarove´ho charakteru (mnohdy oznacˇovane´ jako technicke´ bezpecˇnostnı´ funkce) - autentizace na ba´zi identifikacˇnı´ch karet, autentizacˇnı´ kalkula´tory, firewally, archivnı´ pa´sky - za´lozˇnı´ kopie dat a programu˚, • fyzicke´ho charakteru - stı´neˇnı´, trezory, za´mky, stra´zˇnı´, jmenovky, protipozˇa´rnı´ ochrana, za´lozˇnı´ genera´tory energie, chra´neˇna´ mı´sta pro za´lozˇnı´ kopie dat a programu˚. Prˇ´ıklad 1.5 Jako prˇ´ıklady bezpecˇnostnı´ch funkcı´ lze uve´st funkce (bez na´roku na u´plnost vy´cˇtu): • identifikace a autentizace, • autorizace a rˇ´ızenı´ prˇ´ıstupu, • rˇ´ızenı´ opakovane´ho uzˇ´ıva´nı´ objektu˚, • u´cˇtovatelnost, resp. prokazatelnost odpoveˇdnosti zı´ska´nı´ za´ruky, zˇe lze ucˇinit subjekty zodpoveˇdne´ za sve´ aktivity, • audit manua´lnı´ nebo automaticke´ zkouma´nı´ protokolu o relevantnı´ch uda´lostech v IS z hlediska bezpecˇnosti, • zajisˇteˇnı´ nepopiratelnosti - nepopiratelnost vykona´nı´ akce cˇi dorucˇenı´ zpra´vy (naprˇ. digita´lnı´m podepisova´nı´m), • zajisˇteˇnı´ integrity, • zajisˇteˇnı´ du˚veˇrnosti, • zajisˇteˇnı´ pohotovosti bezpecˇnostnı´ funkce zalozˇene´ na strategiı´ch prevence, detekce, duplikace a redundance, obnovy a na´vratu; patrˇ´ı mezi neˇ procedury obnovy a na´vratu po porusˇe (po u´toku, po bezpecˇnostnı´m incidentu), ktere´ po obnoveˇ bezpecˇne´ho provoznı´ho stavu syste´mu IT (sluzˇby) vracı´ syste´m IT nebo sluzˇbu do beˇzˇne´ho pouzˇ´ıva´nı´. 2 Bezpecˇnostnı´ funkce musı´ by´t implementovana´ dostatecˇneˇ du˚veˇryhodneˇ, tj. musı´ by´t adekva´tnı´m zpu˚sobem proka´za´no, zˇe jejı´ implementace vyhovuje jejı´ zˇa´dane´, resp. zadane´ specifikaci.
1.3.2
Bezpecˇnostnı´ cı´le (pozˇadavky)
Jake´ jsou typicke´ cı´le bezpecˇnostnı´ politiky IT? V rea´lne´m prostrˇedı´ se nevyhneme tlaku na zajisˇteˇnı´ potrˇebne´ u´rovneˇ du˚veˇrnosti, autentizace, integrity dat a prevence prˇed viry a jiny´mi sˇkodlivy´mi programy, nepopiratelnosti odpoveˇdnosti a potrˇebne´ velikosti vy´pocˇetnı´ho a pameˇt’ove´ho vy´konu. V distribuovane´m prostrˇedı´, jaky´m je naprˇ. sı´t’ Internet, se k uvedeny´m cı´lu˚m prˇida´va´ pozˇadavek bezpecˇnosti transakcı´, naprˇ. mezi webovy´mi klienty a servery. Na webovy´ch serverech se uchova´vajı´ jak verˇejneˇ dostupne´ soubory, tak soubory citlive´ a du˚veˇrne´, a ty je trˇeba ochra´nit. Na webovske´m klientu je trˇeba prˇijmout opatrˇenı´ proti virove´ na´kaze, prohlı´zˇecˇ by nemeˇl spousˇteˇt zˇa´dne´ nedu˚veˇryhodne´ aplikace. Legitimnı´ javovske´ applety by nemeˇly pu˚sobit proble´my, ale applety zı´skane´ z nezna´my´ch zdroju˚ mohou obsahovat cokoli. K provedenı´ programu, „stazˇene´ho“ do klientske´ stanice z WWW, by meˇl uzˇivatel da´t explicitnı´ souhlas po zva´zˇenı´ potrˇeby proveˇrˇenı´ certifikace takove´ho objektu.
18
Obra´zek 1.2: Model zabezpecˇenı´ dat prˇi sı´t’ove´m prˇenosu.
Za´kladnı´ prˇedstava zabezpecˇenı´ dat v sı´t’ovy´ch prˇenosech je zobrazena na obr. 1.2. V kontextu bezpecˇnosti IT je termı´nem principal oznacˇova´n koncovy´ subjekt u´cˇastnı´cı´ se pru˚beˇhu prˇenosu informace. Mu˚zˇe to by´t osoba (uzˇivatel, klient) nebo syste´mova´ entita (syste´movy´ proces), u ktere´ se prˇedpokla´da´ mozˇnost prˇ´ıstupu k informaci bud’ na straneˇ vysı´lajı´cı´ informaci do prˇenosove´ho syste´mu, nebo na straneˇ cı´love´. Du˚veˇryhodna´ trˇetı´ strana (trusted third party, da´le jen TTP) poskytuje neza´vislou podporu zabezpecˇovacı´mu procesu. Zabezpecˇovacı´ proces (Security Transformation) je opatrˇenı´ proti ohrozˇenı´ dat vyvolane´mu v prˇenosove´m syste´mu protivnı´kem. Prˇenosovy´ syste´m (Information Chanel) je nezabezpecˇene´ komunikacˇnı´ prostrˇedı´ (verˇejna´ sı´t’, Internet). Urcˇiteˇ je takovy´m bezpecˇnostnı´m pozˇadavkem poskytnutı´ potrˇebne´ho rozsahu du˚veˇrnosti. Du˚veˇrnost ma´ za´sadnı´ vy´znam z hlediska ochrany soukromy´ch dat, a to jak z hlediska zachova´nı´ soukromı´, tak i z hlediska mozˇnosti zneuzˇitı´ informacˇnı´ch sluzˇeb. Du˚veˇrnost IS lze zabezpecˇit pomocı´ sˇifrova´nı´, skry´va´nı´m identit pocˇı´tacˇu˚ organizace za firewally nebo rˇ´ızenı´m prˇ´ıstupu k souboru˚m, naprˇ. na WWW serverech. Dalsˇ´ım mozˇny´m bezpecˇnostnı´m pozˇadavkem mu˚zˇe by´t uplatneˇnı´ rˇ´ızenı´ prˇ´ıstupu. Mu˚zˇe by´t zˇa´doucı´, aby byla neviditelna´ pouze cˇa´st neˇjake´ transakce, zatı´mco jejı´ zbytek mu˚zˇe by´t verˇejneˇ dostupny´. Takove´ vy´beˇrove´ rˇ´ızenı´ prˇ´ıstupu k transakcı´m, naprˇ. prˇi elektronicke´m obchodova´nı´, umozˇnı´ za´kaznı´kovi „zabalit“ svoje identifikacˇnı´ informace o platebnı´ karteˇ do elektronicke´ oba´lky, kterou mu˚zˇe otevrˇ´ıt pouze jeho banka, tuto prˇilozˇit k objedna´vce a zaslat obchodnı´kovi. Obchodnı´k oba´lku prˇeda´ bance, ktera´ obchodnı´kovi potvrdı´ solventnost za´kaznı´ka, a tento mu˚zˇe pokracˇovat v prodeji, anizˇ by mu za´kaznı´k svoje soukroma´ data zprˇ´ıstupnˇoval. Dalsˇ´ım prˇirozeny´m pozˇadavkem je pozˇadavek zajisˇteˇnı´ integrity. Integrita musı´ zajisˇt’ovat, aby aktiva, dostupna´ autorizovany´m uzˇivatelu˚m, byla u´plna´ a veˇrna´, tj. odpovı´dajı´cı´ sve´ specifikaci. Data prˇi prˇenosu nemohou by´t neautorizovaneˇ meˇneˇna. Data nelze modifikovat ani v mı´steˇ jejich dlouhodobe´ho ulozˇenı´ v neˇjake´ pameˇti. Pro zajisˇteˇnı´ integrity dat lze pouzˇ´ıt naprˇ. mechanismu˚ kryptograficky´ch hashovacı´ch funkcı´, digita´lnı´ho podpisu a certifika´tu˚ na ba´zi asymetricke´ kryptografie. Pro zajisˇteˇnı´ integrity softwaru je prˇirozeneˇ nutne´ pouzˇ´ıvat take´ adekva´tnı´ aktua´lnı´ antivirove´ na´stroje Zajisˇteˇnı´ autenticˇnosti je dalsˇ´ım pozˇadavkem bezpecˇnosti IT. Komunikujı´cı´ strany by meˇly du˚veˇrˇovat tomu, zˇe komunikujı´ s tı´m partnerem, se ktery´m komunikovat chteˇly. K silne´ autentizaci je trˇeba obvykle pouzˇ´ıt mechanismu˚ digita´lnı´ho podpisu a certifika´tu˚. Dostatecˇneˇ du˚veˇryhodne´ proka´za´nı´ identity lze (podle vy´sledku˚ analy´zy rizik) take´ dosa´hnout naprˇ. jednoduchy´m pouzˇ´ıva´nı´m hesel.
19
Pozˇaduje-li se zajisˇteˇnı´ nepopiratelnosti, pak zˇa´dna´ ze spolupracujı´cı´ch stran nesmı´ mı´t mozˇnost svoji u´cˇast v transakci poprˇ´ıt, a to i po jejı´m ukoncˇenı´. Aby bylo mozˇne´ pouzˇ´ıt neˇjaky´ mechanismus pro implementaci funkce nepopiratelnosti, je trˇeba ho vybavit vlastnostı´ prokazatelnosti autorstvı´. Takovy´m mechanismem je naprˇ. certifikovany´ digita´lnı´ podpis. Nedı´lnou soucˇa´stı´ bezpecˇnostnı´ politiky on-line provozovany´ch IS musı´ by´t opatrˇenı´ zajisˇt’ujı´cı´ trvalou dostupnost jeho informaticky´ch sluzˇeb, tj. zamezujı´cı´ neopra´vneˇne´mu vycˇerpa´nı´ zdroju˚ vneˇjsˇ´ım u´tocˇnı´kem nebo nedokonale vysˇkoleny´m vlastnı´m zameˇstnancem organizace. Tato opatrˇenı´ se realizujı´ naprˇ. definicı´ mezı´ dostupne´ho pameˇt’ove´ho prostoru, omezenı´m de´lek elektronicky vymeˇnˇovany´ch zpra´v nebo dı´lu dostupne´ho procesorove´ho vy´konu.
Shrnutı´ kapitoly 1.3 V te´to podkapitole jsme vymezili pojem bezpecˇnostnı´ funkce, bezpecˇnostnı´ mechanismus a bezpecˇnostnı´ pozˇadavek (cı´l) a uvedli si jejich prˇ´ıklady. Za´veˇrem cele´ u´vodnı´ kapitoly zby´va´ uve´st na´sledujı´cı´: Perfektnı´ bezpecˇnost je sice teoreticky mozˇna´, nenı´ vsˇak prakticky vyuzˇitelna´. Na kazˇdy´ „nejlepsˇ´ı “ bezpecˇnostnı´ mechanismus (algoritmus) lze u´tocˇit „hrubou silou“. Kazˇdy´ pouzˇity´ zabezpecˇujı´cı´ na´stroj musı´ by´t akceptovatelny´ uzˇivatelskou komunitou. Syste´m je tak bezpecˇny´, jak je bezpecˇny´ jeho nejslabsˇ´ı cˇla´nek.
?
Ota´zky ke kapitole 1.3 1. Uved’te prˇ´ıklady bezpecˇnostnı´ch funkcı´. 2. Uved’te prˇ´ıklady bezpecˇnostnı´ch mechanismu˚. 3. Jak zabezpecˇı´me du˚veˇrnost IS? 4. Pokud chcete zabra´nit modifikaci naprˇ. dat ulozˇeny´ch na pevne´m disku vasˇeho pocˇı´tacˇe, o jaky´ bezpecˇnostnı´ pozˇadavek se jedna´?
Prˇedcha´zejı´cı´ Prˇehled neˇktery´ch pojmu˚
Obsah Nahoru
20
Dalsˇ´ı Matematicky´ background
Prˇedcha´zejı´cı´ Bezpecˇnostnı´ funkce, mechanismy a cı´le
Obsah
Dalsˇ´ı Za´kladnı´ pojmy
Kapitola 2
Matematicky´ background Obsah 2.1 Za´kladnı´ pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.2 Modula´rnı´ aritmetika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Eukleidu˚v algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Du˚lezˇite´ veˇty a proble´my . . . . . . . . . . . . . . . . . . . . . . . . . . .
24 26 28
2.3.1 Mala´ Fermatova veˇta . . . . . 2.3.2 Eulerova veˇta . . . . . . . . . . ˇ ´ınska´ veˇta o zbytcı´ch . . . . . 2.3.3 C 2.3.4 Proble´m diskre´tnı´ho logaritmu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28 29
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 30
Teorie cˇı´sel je ta cˇa´st matematiky, jejı´mzˇ za´kladnı´m objektem zkouma´nı´ jsou vlastnosti prˇirozeny´ch a cely´ch cˇı´sel. V te´to kapitole je uveden pomocny´ matematicky´ apara´t, ktery´ souvisı´ s kryptografiı´, ktere´ se budeme veˇnovat v dalsˇ´ıch kapitola´ch. Bez u´jmy na obecnosti bude veˇtsˇina pojmu˚ objasnˇova´na na mnozˇineˇ prˇirozeny´ch cˇı´sel, nenı´ vsˇak proble´m uvedene´ vy´sledky zave´st pro mnozˇinu cely´ch cˇı´sel, cozˇ cˇtena´rˇ jisteˇ zvla´dne sa´m.
Prˇedcha´zejı´cı´ Bezpecˇnostnı´ funkce, mechanismy a cı´le
Obsah Nahoru
21
Dalsˇ´ı Za´kladnı´ pojmy
Prˇedcha´zejı´cı´ Matematicky´ background
2.1
Obsah
Dalsˇ´ı Modula´rnı´ aritmetika
Za´kladnı´ pojmy ˇ asova´ na´rocˇnost kapitoly: 10 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete schopni vysveˇtlit neˇktere´ za´kladnı´ pojmy z teorie cˇı´sel.
Definice 2.1 Prˇirozene´ cˇı´slo n deˇlı´ prˇirozene´ cˇı´slo m pra´veˇ tehdy kdyzˇ existuje prˇirozene´ cˇı´slo c takove´, zˇe m = n ∗ c. Mezi dalsˇ´ı zna´me´ pojmy patrˇ´ı: • Jako trivia´lnı´ deˇlitele prˇirozene´ho cˇ. m oznacˇujeme cˇı´sla 1 a m. • Prvocˇı´slo je cˇı´slo, ktere´ nema´ jine´ deˇlitele nezˇ trivia´lnı´. ˇ ´ıslo, ktere´ nenı´ prvocˇı´slem nazy´va´me cˇı´slem slozˇeny´m. • C • Kazˇde´ prˇirozene´ cˇı´slo m > 1 je bud’ prvocˇı´slo, nebo se da´ zapsat jako soucˇin prvocˇı´sel. Definice 2.2 Kazˇde´ prˇirozene´ cˇı´slo m > 1 se da´ zapsat jednoznacˇneˇ (azˇ na porˇadı´) v kanonicke´m tvaru m = p1 a1 ∗ p2 a2 ∗ ... ∗ pk ak , kde p1 , p2 , ..., pk jsou navza´jem ru˚zna´ prvocˇı´sla a a1 , a2 , ..., ak jsou prˇirozena´ cˇı´sla (naprˇ. 3600 = 24 ∗ 32 ∗ 52 ).
´ loha zjistit, zda je dane´ prˇirozene´ cˇı´slo prvocˇı´slem nebo cˇı´slem slozˇeny´m nenı´ trivia´lnı´. U Pro mala´ cˇı´sla se pouzˇ´ıvajı´ zna´me´ algoritmy jako naprˇ Eratosthenovo sı´to, algoritmus Trial Division a dalsˇ´ı. Vy´klad jejich principu a vy´klad principu algoritmu˚ urcˇeny´ch pro veˇtsˇ´ı prˇirozena´ cˇı´sla (viz take´ podkapitola 2.3) prˇesahuje ra´mec tohoto kurzu. Zvı´davy´ cˇtena´rˇ necht’ se podı´va´ naprˇ. na:
WWW: Algoritmy pro nalezenı´ maly´ch prvocˇı´sel
Definice 2.3 Prˇirozene´ cˇı´slo d je nejveˇtsˇ´ım spolecˇny´m deˇlitelem (da´le jen NSD) dvou c.cˇ. a, b kdyzˇ platı´ • d deˇlı´ obeˇ cˇı´sla a, b, • jestlizˇe neˇjake´ cˇı´slo c.cˇ. d1 deˇlı´ obeˇ cˇı´sla a, b, pak d1 deˇlı´ take´ d. Prˇ´ıklad 2.1 N SD(60, 24)) = 12; N SD(35, 13) = 1. 2 Nejzna´meˇjsˇ´ım algoritmem pro nalezenı´ NSD je Eukleidu˚v algoritmus, jehozˇ princip si ozrˇejmı´me v na´sledujı´cı´ podkapitole 2.2.
22
Prˇ´ıklad 2.2 Je snadne´ nale´zt NSD dvou prˇir. cˇı´sel, pokud je vyja´drˇ´ıme v kanonicke´m tvaru. 300 = 22 ∗ 31 ∗ 52 , 18 = 21 ∗ 32 , N SD(300, 18) = 21 ∗ 31 ∗ 50 = 6. 2 Definice 2.4 Dveˇ prˇirozena´ cˇı´sla jsou nesoudeˇlna´, kdyzˇ jejich NSD je 1. Jinak rˇecˇeno dveˇ cˇı´sla a, b jsou nesoudeˇlna´ pokud nemajı´ spolecˇne´ho prvocˇı´selne´ho deˇlitele. Prˇ´ıklad 2.3 Cˇ´ısla 8 a 15 jsou nesoudeˇlna´, protozˇe 8 ma´ deˇlitele 1, 2, 4 a 15 ma´ deˇlitele 1, 3, 5. Tedy jediny´m spolecˇny´m deˇlitelem je 1. 2 Definice 2.5 Eulerovo cˇı´slo φ : N − > N uda´va´ pocˇet teˇch prˇirozeny´ch cˇı´sel neprˇesahujı´cı´ch prˇ.cˇ. m, ktera´ jsou nesoudeˇlna´ s m. Veˇta 2.1 Jestlizˇe m je prvocˇı´slo, pak platı´, zˇe φ(m) = m − 1.
Shrnutı´ kapitoly 2.1 V te´to podkapitole jsme si osveˇzˇili pojmy, ktery´m jisteˇ vsˇichni intuitivneˇ rozumı´te. Nejdu˚lezˇiteˇjsˇ´ımi pojmy, ktere´ si zapamatujte, jsou cˇı´slo slozˇene´, prvocˇı´slo, nesoudeˇlnost, Eulerovo cˇı´slo.
?
Ota´zky ke kapitole 2.1 1. Jacı´ jsou deˇlitele´ cˇı´sla 24? 2. Nalezneˇte na Internetu tabulku prvnı´ch 1000 prvocˇı´sel. 3. Urcˇete φ(35) a φ(13). 4. Nalezneˇte NSD(270,36) (pomocı´ vyja´drˇenı´ dany´ch cˇı´sel v kanonicke´m tvaru).
Prˇedcha´zejı´cı´ Matematicky´ kground
bac-
Obsah Nahoru
23
Dalsˇ´ı Modula´rnı´ aritmetika
Prˇedcha´zejı´cı´ Za´kladnı´ pojmy
2.2
Obsah
Dalsˇ´ı Du˚lezˇite´ veˇty a proble´my
Modula´rnı´ aritmetika ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt definovat pojem kongruence, budete umeˇt definovat vlastnosti algebraicke´ struktury teˇleso a porozumı´te za´kladu˚m modula´rnı´ aritmetiky.
Mnozˇina cely´ch cˇı´sel nenı´ uzavrˇena´ vzhledem k deˇlenı´ nenulovy´mi cely´mi cˇı´sly. Pro dalsˇ´ı vy´klad musı´me proto zave´st tzv. celocˇı´selny´ podı´l. Definice 2.6 Necht’ x je rea´lne´ cˇı´slo. Potom bxc je nejveˇtsˇ´ı cele´ cˇı´slo mensˇ´ı nebo rovno x (tzv. dolnı´ cela´ cˇa´st cˇı´sla x). Definice 2.7 Jestlizˇe a je cele´ cˇı´slo a N je kladne´ cele´ cˇı´slo, pak definujeme a mod N jako zbytek po deˇlenı´ cˇı´sla a cˇı´slem N (ktere´ se nazy´va´ modul (nebo take´ modulus)). Pro kazˇde´ a mu˚zˇeme psa´t a = ba/nc ∗ n + a mod N . Definice 2.8 Cele´ cˇı´slo a je kongruentnı´ modulo N s c.cˇ. b tehdy, kdyzˇ je rozdı´l a − b deˇlitelny´ cˇı´slem N . Pı´sˇeme a ≡ b mod N (tj. platı´ a mod N = b mod N ). 2
Prˇ´ıklad 2.4 13 ≡ −9 mod 11, 13 6≡ −9 mod 7.
Platı´: • a ≡ 0 mod N , • a ≡ a mod N pro ∀a ∈ N , • a ≡ b mod N =⇒ b ≡ a mod N , • a ≡ b mod N ∧ b ≡ c mod N =⇒ a ≡ c mod N . Necht’ m je prˇirozene´ cˇı´slo, oznacˇme mnozˇinu Zm = {0, 1, 2, .., m − 1} a definujme dveˇ operace + a ∗ takto: • Vy´sledkem a + b bude cˇı´slo c ∈ Zm pro ktere´ platı´ a + b ≡ c mod m. • Vy´sledkem a ∗ b bude cˇı´slo c ∈ Zm pro ktere´ platı´ a ∗ b ≡ c mod m. Prˇ´ıklad 2.5 N = 9, ZN = {0, 1, 2, 3, 4, 5, 6, 7, 8}, 6 + 8 = 14 ≡ 5 mod 9, 6 ∗ 8 = 48 ≡ 3 mod 9. 2 Nynı´ na´sledujı´ vlastnosti, ze ktery´ch vyply´va´, zˇe vzhledem k operacı´m +, ∗ mnozˇina Zm tvorˇ´ı komutativnı´ teˇleso pro kazˇde´ prˇirozene´ m > 1:
24
• Aditivnı´ jednotkovy´ prvek 0: (a + 0) mod m = a mod m pro kazˇde´ a ∈ Zm . • Aditivnı´ opacˇny´ prvek k prvku a je −a: a + (−a) ≡ 0 mod m, tj. −a = m − a pro kazˇde´ a ∈ Zm . • Scˇı´ta´nı´ je uzavrˇene´, tj. pro kazˇde´ a, b ∈ Zm platı´ (a + b) mod m ∈ Zm . • Scˇı´ta´nı´ je komutativnı´, tj. pro kazˇde´ a, b ∈ Zm platı´ (a + b) mod m = (b + a) mod m. • Scˇı´ta´nı´ je asociativnı´, tj. pro kazˇde´ a, b, c ∈ Zm platı´ [(a + b) + c] mod m = [a + (b + c)] mod m. • Multiplikativnı´ jednotkovy´ prvek 1: a ∗ 1 = a mod m pro kazˇde´ a ∈ Zm . • Multiplikativnı´ inverznı´ prvek k prvku a je a−1 : a ∗ a−1 ≡ 1 mod m. Takovy´to inverznı´ prvek existuje tehdy a jen tehdy kdyzˇ N SD(a, m) = 1. • Na´sobenı´ je uzavrˇene´, tj. pro kazˇde´ a, b ∈ Zm platı´ (a ∗ b) mod m ∈ Zm . • Na´sobenı´ je komutativnı´, tj. pro kazˇde´ a, b ∈ Zm platı´ (a ∗ b) mod m = (b ∗ a) mod m. • Na´sobenı´ je asociativnı´, tj. pro kazˇde´ a, b, c ∈ Zm platı´ [(a ∗ b) ∗ c] mod m = [a ∗ (b ∗ c)] mod m. Pozna´mka: • Jestlizˇe (a ∗ b) mod m ≡ (b ∗ c) mod m pak b ≡ c mod m platı´ jen tehdy kdyzˇ a je nesoudeˇlne´ s m. Naprˇ.: 6 ∗ 3 = 18 ≡ 2 mod 8 6 ∗ 7 = 42 ≡ 2 mod 8 ale 3 6≡ 7 mod 8. • Jestlizˇe cˇı´sla a a m majı´ spolecˇne´ deˇlitele, pak po na´sobenı´ cˇı´sel z mnozˇiny {0, 1, ..., m − 1} cˇı´slem a nedostaneme kompletnı´ mnozˇinu zbytku˚ (naprˇ. pro a = 6, m = 8 ne (cˇtena´rˇ necht’ se prˇesveˇdcˇı´ sa´m), ale pro a = 5, m = 8 celou mnozˇinu zbytku˚ dostaneme). Tj. pokud se vı´ce nezˇ jedno cˇı´slo z mnozˇiny Zm = {0, 1, 2, .., m − 1} mapuje na stejny´ zbytek, neexistuje unika´tnı´ inverznı´ prvek vzhledem k na´sobenı´. • Pokud tedy a a m jsou nesoudeˇlna´, pak ((a−1 ) ∗ a ∗ b) mod m ≡ ((a−1 ) ∗ a ∗ c) mod m pak b ≡ c mod m. • Platı´: (a + b) mod m = [(a mod m) + (b mod m)] mod m (naprˇ.: [(11 mod 8) + (15 mod 8)] mod 8 = 10 mod 8 = 2, (11 + 15) mod 8 = 26 mod 8 = 2). • Platı´: (a − b) mod m = [(a mod m) − (b mod m)] mod m. • Platı´: (a ∗ b) mod m = [(a mod m) ∗ (b mod m)] mod m. • Na 117 112 114 117
umocnˇova´nı´ se mu˚zˇeme dı´vat jako na opakovane´ na´sobenı´. Chceme-li urcˇit mod 13, postupujeme takto: = 121 ≡ 4 mod 13 ≡ 42 ≡ 3 mod 13 ≡ 11 ∗ 4 ∗ 3 ≡ 132 ≡ 2 mod 13.
Prˇ´ıklad 2.6 Kolik je 38 mod 7? 1. 38 = 34 ∗ 34 = (81 mod 7) ∗ (81 mod 7) ≡ 4 ∗ 4 = 16 ≡ 2 mod 7, 25
2. 38 = 6561 ≡ 2 mod 7, protozˇe 6561 = 937 ∗ 7 + 2, je vhodne´ se vyhnout na´sobenı´ velky´ch cˇı´sel a prove´st redukci modulo co nejdrˇ´ıve. 2
2.2.1
Eukleidu˚v algoritmus
Eukleidu˚v algoritmus je postup, jak zjistit nejveˇtsˇ´ıho spolecˇne´ho deˇlitele dvou prˇirozeny´ch cˇı´sel pomocı´ zbytku˚ po celocˇı´selne´m deˇlenı´. Klasicka´ forma Eukleidova algoritmu pouzˇ´ıva´ pouhe´ odcˇı´ta´nı´, a tu mu˚zˇeme zkra´tit uzˇitı´m pocˇı´ta´nı´ modulo. Pro kazˇde´ neza´porne´ cele´ cˇı´slo a a kladne´ cele´ cˇı´slo b totizˇ platı´, zˇe N SD(a, b) = N SD(b, a mod b) Prˇ´ıklad 2.7 N SD(55, 22) = N SD(22, 55 mod 22) = N SD(22, 11) = 11. 2 Prˇedpokla´dejme, zˇe d = N SD(a, b), pro kazˇde´ kladne´ b mu˚zˇeme a vyja´drˇit jako a = k ∗ b + r ≡ r mod b a mod b = r. Proto a mod b = a − k ∗ b pro neˇjake´ c.cˇ. k. Eukleidu˚v algoritmus tedy vytva´rˇ´ı ze dvou zadany´ch cˇı´sel a0 > a1 (ostrˇe) klesajı´cı´ posloupnost (ai , i = 0, 1, ..., n + 1) jejı´zˇ poslednı´ cˇlen an+1 = 0 a prˇedposlednı´ an = N SD(a0 , a1 ). Prˇitom i + 2-hy´ cˇlen je pra´veˇ zbytek po deˇlenı´ i-te´ho cˇlenu i + 1-nı´m cˇlenem. Tedy pro vhodne´ cele´ xi+1 : ai+2 = (ai ) mod ai+1 = ai − xi+1 ∗ ai+1 . Eukleidu˚v algoritmus na´m postupny´m dosazova´nı´m prˇedchozı´ch dvou cˇlenu˚ posloupnosti za i+2-hy´ cˇlen za´rovenˇ umozˇnˇuje vyja´drˇit prˇedposlednı´ cˇlen jako celocˇı´selnou linea´rnı´ kombinaci prvnı´ch dvou cˇlenu˚. Tak naprˇ´ıklad a3 = a1 − x2 ∗ a2 = a1 − x2 ∗ (a0 − x1 ∗ a1 ) = (x1 + 1) ∗ a1 − x2 ∗ a0 a4 = a2 −x3 ∗a3 = a0 −x1 ∗a1 −x3 ∗((x1 +1)∗a1 −x2 ∗a0 ) = (x2 ∗x3 +1)∗a1 −(x1 +x1 ∗x3 )∗a0 atd. Toto pozorova´nı´ mu˚zˇeme vyja´drˇit tvrzenı´m: Pro kazˇda´ dveˇ ru˚zna´ prˇirozena´ cˇı´sla a, b (mu˚zˇeme se omezit na prˇirozena´ cˇı´sla, protozˇe N SD(a, b) = N SD(|a|, |b|)) existujı´ cela´ cˇı´sla x, y tak, zˇe N SD(a, b) = x ∗ a + y ∗ b. Pokud m = b je prvocˇı´slo, 0 < a < m, pak zrˇejmeˇ N SD(a, m) = 1. Tedy podle prˇedchozı´ u´vahy existuje cele´ cˇı´slo x tak, zˇe 1 = N SD(a, m) = (x ∗ a) mod m, toto x mu˚zˇeme volit z intervalu 0, 1, ..., m − 1. Prvek inverznı´ k nenulove´mu cˇı´slu ze Zm budeme znacˇit a−1 (tj. takove´ x = a−1 , zˇe a ∗ a−1 = 1 (mod m)). Pokud platı´, zˇe N SD(a, m) = 1, mu˚zˇeme Eukleidu˚v algoritmus pouzˇ´ıt pro nalezenı´ tohoto inverznı´ho prvku - tato varianta se nazy´va´ rozsˇ´ırˇeny´ Eukleidu˚v algoritmus (viz [3]).
26
Prˇ´ıklad 2.8 Pomocı´ Eukleidova algoritmu urcˇete hodnotu 13−1 , v Z31 (tedy modulo 31). Aplikujme na dvojici cˇı´sel 31 a 13 Eukleidu˚v algoritmus: 31, 13, 5 = 31 − 2 ∗ 13, 3 = 13 − 2 ∗ 5 = −2 ∗ 31 + 5 ∗ 13, 2 = 5 − 3 = 3 ∗ 31 − 7 ∗ 13, 1 = 3 − 2 = −5 ∗ 31 + 12 ∗ 1. Zjistili jsme, zˇe 13−1 = 12 (mod 31). 2 Dalsˇ´ı podrobnosti k modula´rnı´ aritmetice a Eukleidovu algoritmu naleznete v [2], [3].
Shrnutı´ kapitoly 2.2 Nejdu˚lezˇiteˇjsˇ´ımi poznatky te´to podkapitoly, jsou pojmy kongruence modulo, vlastnosti algebraicke´ struktury teˇleso a princip Eukleidova a rozsˇ´ırˇene´ho Eukleidova algoritmu. Pro pochopenı´ jednotlivy´ch pojmu˚ byly uvedeny prˇ´ıklady, cˇtena´ˇri se doporucˇuje oveˇrˇenı´ znalostı´ na dalsˇ´ıch prˇ´ıkladech.
?
Ota´zky ke kapitole 2.2 1. Existuje multiplikativnı´ inverznı´ prvek k prvku 15, m = 26, tj. 15 mod 26? 2. Existuje multiplikativnı´ inverznı´ prvek k prvku 14, m = 26, tj. 14 mod 26? 3. Spocˇı´tejte 39 mod 4. 4. Spocˇı´tejte 382 mod 8. 5. Spocˇı´tejte 3−1 , 22−1 v Z31 (modulo 31). 6. Na Internetu nalezneˇte neˇjaky´ program (Java applet) pro Eukleidu˚v algoritmus a rozsˇ´ırˇeny´ Eukleidu˚v algoritmus.
Prˇedcha´zejı´cı´ Za´kladnı´ pojmy
Obsah Nahoru
27
Dalsˇ´ı Du˚lezˇite´ veˇty a proble´my
Prˇedcha´zejı´cı´ Modula´rnı´ aritmetika
2.3
Obsah
Dalsˇ´ı ´ Uvod do kryptografie
Du˚lezˇite´ veˇty a proble´my ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt definovat malou Fermatovu ˇ ´ınske´ veˇty o zbytcı´ch a porozuveˇtu a Eulerovu veˇtu, pochopı´te princip C mı´te tomu, co je to proble´m diskre´tnı´ho logaritmu.
2.3.1
Mala´ Fermatova veˇta
Veˇta 2.2 Mala´ Fermatova veˇta (MFV): Pro kazˇde´ prvocˇı´slo p a kazˇde´ kladne´ cele´ cˇı´slo a nesoudeˇlne´ s p platı´ ap−1 ≡ 1 mod p. Du˚kaz.Z prˇedchozı´ podkapitoly vı´me na´sledujı´cı´: • Platı´ a ∗ 0 ≡ 0 mod p. • Da´le platı´ zˇe p − 1 cˇı´sel {a mod p, 2a mod p, ..., (p − 1)a mod p}. jsou cˇı´sla z mnozˇiny Zp v neˇjake´m porˇadı´. Vyna´sobı´me spolu tato cˇı´sla: a ∗ 2a ∗ ...((p − 1)a) ≡ [(a mod p) ∗ (2a mod p) ∗ ... ∗ ((p − 1)a mod p)] mod p ≡ (p − 1)! mod p. Ale a ∗ 2a ∗ ...((p − 1)a) = (p − 1)!ap−1 . Proto (p − 1)!ap−1 ≡ (p − 1)! mod p. Vykra´tı´me (p − 1)! a dostaneme ap−1 ≡ 1 mod p. Prˇ´ıklad 2.9 a = 7, p = 19, 72 = 49 ≡ 11 mod 19, 74 ≡ 121 ≡ 7 mod 19, 78 ≡ 49 ≡ 11 mod 19, 716 ≡ 121 ≡ 7 mod 19, ap−1 = 718 = 716 ∗ 72 ≡ 7 ∗ 11 ≡ 1 mod 19. 2 Veˇta 2.3 Jina´ formulace MFV: Je-li p prvocˇı´slo, tak pro kazˇde´ prˇirozene´ cˇı´slo a platı´ ap ≡ a mod p. .
28
Prˇ´ıklad 2.10 p = 5, a = 3, 35 = 243 ≡ 3 mod 5, p = 5, a = 10, 105 = 100000 ≡ 10 mod 5 ≡ 0 mod 5. 2 MFV mu˚zˇeme vyuzˇ´ıt k urcˇenı´, zda dane´ cele´ cˇı´slo n je slozˇene´ cˇı´slo nebo prvocˇı´slo, mu˚zˇeme prove´st tzv. Fermatu˚v test prvocˇı´selnosti: najdeme-li cˇı´slo a z dane´ho intervalu 1 < a < n−1 takove´, zˇe ekvivalence an−1 ≡ 1( mod n) neplatı´, pak n je cˇı´slo slozˇene´, pokud ale tato ekvivalence platı´, pak jesˇteˇ nenı´ rˇecˇeno, zˇe n je prvocˇı´slo (cely´ test provedeme znovu s jiny´m a). Necht’ n je liche´ slozˇene´ cˇı´slo, a je cele´ cˇı´slo, 1 < a < n − 1. Potom n se nazy´va´ pseudoprvocˇı´slo prˇi za´kladu a jestlizˇe an−1 ≡ 1( mod n), cˇı´slo a se nazy´va´ Fermatu˚v lha´rˇ vzhledem k n. Naprˇ.: n = 341(= 11 ∗ 31) je pseudoprvocˇı´slo. Slozˇena´ cˇı´sla, pro ktere´ toto platı´ prˇi libovolne´m za´kladu, se nazy´vajı´ Carmichaelova cˇı´sla a je jich nekonecˇneˇ mnoho (naprˇ. 561, 1105, 1729, 2465, 2821...). Dalsˇ´ımi testy prvocˇı´selnosti jsou testy pravdeˇpodobnostnı´ (Solovay-Strassenu˚v test, Miller-Rabinu˚v test), jejichzˇ popis lze nale´zt v [2], [3].
2.3.2
Eulerova veˇta
Pokud p a q jsou dveˇ prvocˇı´sla a n je c.cˇ. platı´ n = p ∗ q, φ(n) = φ(p ∗ q) = φ(p) ∗ φ(q) = (p − 1) ∗ (q − 1). Prˇedpokla´dejme zˇe mnozˇina zbytku˚ v Zn je {0, 1, ..., (p ∗ q − 1)}. Zbytky, ktere´ nejsou nesoudeˇlne´ s n jsou mnozˇiny {p, 2p, ..., (q − 1)p}, {q, 2q, ..., (p − 1)q}, 0. Tedy je-li n = p ∗ q, pak φ(n) = p ∗ q − [(q − 1) + (p − 1) + 1] = p ∗ q − (p + q) + 1 = (p − 1) ∗ (q − 1) = φ(p) ∗ φ(q). Veˇta 2.4 Eulerova veˇta: Pro kazˇde´ prˇirozene´ cˇı´slo N a kazˇde´ prˇirozene´ cˇı´slo a, ktere´ je nesoudeˇlne´ s N platı´ aφ(N ) ≡ 1 mod N . Prˇ´ıklad 2.11 N = 10, a = 3, φ(N ) = 4, 34 = 81 ≡ 1 mod 10, N = 11, a = 2, φ(N ) = 10, 210 = 1024 ≡ 1 mod 11. 2
2.3.3
ˇ ´ınska´ veˇta o zbytcı´ch C
Veˇta 2.5 Cˇ´ınska´ veˇta o zbytcı´ch (Chinese reminder theorem): Necht’ m1 , ..., mk jsou po dvou nesoudeˇlna´ prˇirozena´ cˇı´sla, tj. ∀i, j, (1 ≤ i < j ≤ k) : N SD(mi , mj ) = 1. Necht’ a1 , ..., ak ∈ Z. Potom soustava kongruencı´ x ≡ a1 (mod m1 ) x ≡ a2 (mod m2 ) ............. x ≡ ak (mod mk )
29
ma´ rˇesˇenı´. Navı´c vsˇechna rˇesˇenı´ te´to soustavy kongruencı´ jsou navza´jem kongruentnı´ modulo M = m1 ∗ m2 ∗ ... ∗ mk . Prˇ´ıklad 2.12 Uvazˇujme soustavu kongruencı´ x ≡ 3 (mod 6), x ≡ 2 (mod 7). Rˇesˇenı´m je x = 3 ∗ 7 ∗ 1 + 2 ∗ 6 ∗ 6 = 93. Nejmensˇ´ı prˇirozene´ cˇı´slo, ktere´ je rˇesˇenı´m soustavy je 93 = mod (6 ∗ 7) = 9. 2 ˇ ´ınska´ veˇta rˇ´ıka´, zˇe libovolne´ cˇı´slo z mnozˇiny {0, 1, ..., M } (tj. zbytkovou trˇ´ıdu modulo C M ) lze jednoznacˇny´m zpu˚sobem reprezentovat pomocı´ zbytkovy´ch trˇ´ıd modulo m1 , ..., mk . Odtud vyply´va´ na´sledujı´cı´ tvrzenı´. Veˇta 2.6 Necht’ p, q jsou navza´jem nesoudeˇlna´ prˇirozena´ cˇı´sla. Potom pro libovolne´ x ∈ Z platı´: x ≡ a (mod p ∗ q) ⇔ x ≡ a( mod p), x ≡ a (mod q). Pozna´mka: Prˇedchozı´ tvrzenı´ mu˚zˇeme snadno zevsˇeobecnit pro veˇtsˇ´ı pocˇet navza´jem po dvou neˇ ´ınska´ veˇta o zbytcı´ch se pouzˇ´ıva´ pro efektivnı´ prova´deˇnı´ soudeˇlny´ch cˇı´sel (modulu˚). C algebraicky´ch operacı´ u algoritmu RSA.
2.3.4
Proble´m diskre´tnı´ho logaritmu
Necht’ am ≡ 1 mod p. Jestlizˇe jsou cˇı´sla a a p nesoudeˇlna´, potom existuje alesponˇ jeden exponent m, takovy´, zˇe vyhovuje tomuto vztahu, a to m = φ(p). Nejmensˇ´ı kladne´ m, pro ktere´ platı´ toto platı´, se oznacˇuje jako: • rˇa´d cˇı´sla a (mod p), • de´lka periody, kterou generuje a, • exponent, ktere´mu a na´lezˇ´ı (mod p). Prˇ´ıklad 2.13 Uved’me si prˇ´ıklad pojmu de´lka periody z prˇedchozı´ho odstavce, prˇedpokla´dejme mocniny cˇ. 7(mod 19). 71 = 7 mod 19, 72 = 49 = 2 ∗ 19 + 11 = 11 mod 19, 73 = 343 = 18 ∗ 19 + 1 = 1 mod 19 74 = 2401 = 126 ∗ 19 + 7 = 7 mod 19, 75 = 16807 = 884 + 19 + 11 = 11 mod 19. Nema´ smysl da´le pokracˇovat, nebot’ posloupnost je periodicka´ a de´lka periody je nejmensˇ´ı exponent m takovy´, zˇe 7m = 1 (mod 19). V tabulce 2.1 vidı´me mocniny a < 19 modulo 19. Vsˇechny posloupnosti koncˇı´ jednicˇkou, de´lka posloupnostı´ deˇlı´ φ(19) = 18. Neˇktere´ z posloupnostı´ majı´ de´lku 18, rˇ´ıka´me, zˇe c.cˇ. a generuje mnozˇinu vsˇech c.cˇ. modulo 19. Takove´ c.cˇ. a se nazy´va´ primitivnı´ odmocnina modulo 19. 2
30
a 1 2 3 4 5 6 7 . . 18
a2 1 4 9 16 6 17 11 . . 1
a3 1 8 8 7 11 7 1 . . 18
a4 1 16 5 9 17 4 7 . . 1
a5 1 13 15 17 9 5 11 . . 18
a6 1 7 7 11 7 11 1 . . 1
a7 1 14 2 6 16 9 7 . . 18
a8 1 9 6 5 4 16 11 . . 1
a9 1 18 18 1 1 1 1 . . 18
a10 1 17 16 4 5 6 7 . . 1
a11 1 15 10 16 6 17 11 . . 18
a12 1 11 11 7 11 7 1 . . 1
a13 1 3 14 9 17 4 7 . . 18
a14 1 6 4 17 9 5 11 . . 1
a15 1 12 12 11 7 11 1 . . 18
a16 1 5 17 6 16 9 7 . . 1
a17 1 10 13 5 4 16 11 . . 18
a18 1 1 1 1 1 1 1 . . 1
Tabulka 2.1: Mocniny modulo 19. b i (a = 2) b i (a = 3)
1 18 1 18
2 1 2 7
3 13 3 1
4 2 4 14
5 16 5 4
6 14 6 8
7 6 7 6
8 3 8 3
9 8 9 2
10 17 10 11
11 12 11 12
12 15 12 15
13 5 13 17
14 7 14 13
15 11 15 5
16 4 16 10
17 10 17 16
Tabulka 2.2: Tabulka neˇktery´ch diskre´tnı´ch logaritmu˚ modulo 19.
Definice 2.9 Necht’ a, p jsou nesoudeˇlna´ c.cˇ. (p je prvocˇı´slo), primitivnı´ odmocnina prvocˇı´sla p je to cˇı´slo a, jehozˇ mocniny generujı´ vsˇechna c.cˇ. od 1 do p − 1, tj. cˇı´sla a mod p, a2 mod p, ..., ap−1 mod p (vsˇechna c.cˇ. od 1 do p − 1 v neˇjake´ permutaci). Definice 2.10 Pro c.cˇ. b a primitivnı´ odmocninu a prvocˇı´sla p mu˚zˇeme najı´t exponent i takovy´, zˇe b ≡ ai mod p, kde 0 ≤ i ≤ (p − 1). Exponent i se nazy´va´ diskre´tnı´ logaritmus (index) cˇı´sla b o za´kladu a (mod p) (viz tab. 2.2). Prˇedpokla´dejme vy´sˇe uvedeny´ vztah b ≡ ai mod p. Je-li da´no i, a, p, nenı´ obtı´zˇne´ vypocˇı´tat b. Ovsˇem je-li da´no b, a, p, je teˇzˇke´ nale´zt i, tedy vyrˇesˇit tzv. proble´m diskre´tnı´ho logaritmu (DLP) . Jeden z nejrychlejsˇ´ıch algoritmu˚ (viz [3]) ma´ asymptotickou slozˇitost 1/3 2/3 e((ln p) ln(ln p)) , cozˇ nenı´ pro velka´ p rˇesˇitelne´. Du˚kaz Eulerovy veˇty, cˇı´nske´ veˇty o zbytcı´ch a dalsˇ´ı podrobnosti ke podkapitole lze nale´zt v [2], [3].
Shrnutı´ kapitoly 2.3 V te´to podkapitole byly uvedeny velmi du˚lezˇite´ veˇty, Mala´ Fermatova veˇta, Eulerova veˇta ˇ ´ınska´ veˇta o zbytcı´ch a byl definova´n proble´m diskre´tnı´ho logaritmu. Jejich znalosti vyaC uzˇijeme da´le v podkapitole 5.1.
?
Ota´zky ke kapitole 2.3 1. Nalezneˇte 3201 mod 11, pouzˇijte Fermatovu veˇtu. 2. Nalezneˇte dalsˇ´ı pseudoprvocˇı´sla. 3. Na Internetu vyhledejte dalsˇ´ı Carmichaelova cˇı´sla.
31
18 9 18 9
4. Nalezneˇte primitivnı´ mocniny a modulo 17 a diskre´tnı´ logaritmy modulo 17. ´ kol navı´c (pro zvı´dave´ cˇtena´rˇe): seznamte se s Velkou Fermatovou veˇtou. 5. U
Prˇedcha´zejı´cı´ Modula´rnı´ aritmetika
Obsah Nahoru
32
Dalsˇ´ı ´ vod do kryptografie U
Prˇedcha´zejı´cı´ Du˚lezˇite´ veˇty a proble´my
Obsah
Dalsˇ´ı Za´kladnı´ kryptograficke´ pojmy
Kapitola 3
´ vod do kryptografie U Obsah 3.1 Za´kladnı´ kryptograficke´ pojmy . . . . . . . . . . . . . . . . . . . . . . . 3.2 Bezpecˇnost kryptograficke´ho syste´mu . . . . . . . . . . . . . . . . . .
34 37
3.3 Vy´let do historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Substitucˇnı´ algoritmy . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Permutacˇnı´ algoritmy . . . . . . . . . . . . . . . . . . . . . . . . .
41 41 44
3.3.3 Rotacˇnı´ prˇ´ıstroje - Enigma . . . . . . . . . . . . . . . . . . . . . . . 3.4 Maly´ u´vod do kryptoanaly´zy . . . . . . . . . . . . . . . . . . . . . . . .
45 47
3.4.1 Lusˇteˇnı´ jednoduche´ substituce . . . . . . . . . . . . . . . . . . . . 3.4.2 Lusˇteˇnı´ jednoduche´ permutace . . . . . . . . . . . . . . . . . . . .
47 49
V te´to kapitole se sezna´mı´me se za´kladnı´mi kryptograficky´mi pojmy a udeˇla´me si maly´ vy´let do kryptograficke´ historie.
Prˇedcha´zejı´cı´ Du˚lezˇite´ veˇty a proble´my
Obsah Nahoru
33
Dalsˇ´ı Za´kladnı´ kryptograficke´ pojmy
Prˇedcha´zejı´cı´ ´ vod do kryptografie U
3.1
Obsah
Dalsˇ´ı Bezpecˇnost kryptograficke´ho syste´mu
Za´kladnı´ kryptograficke´ pojmy ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Tato podkapitola seznamuje s za´kladnı´mi pojmy z oblasti kryptografie. Cı´lem podkapitoly je osvojenı´ si za´kladnı´ch kryptograficky´ch pojmu˚, zı´ska´nı´ schopnosti je vyjmenovat a definovat. Po nastudova´nı´ podkapitoly budete umeˇt rozlisˇit dva za´kladnı´ typy kryptograficky´ch algoritmu˚.
Kryptologie je veˇda o utajova´nı´ informace, stojı´cı´ na pomezı´ matematiky a informatiky, s veˇtsˇ´ım prˇesahem do matematiky, zejme´na v oblasti teorie cˇı´sel a algebry. Soucˇa´stı´ kryptologie je kryptografie a kryptoanaly´za. Kryptografie je umeˇnı´ a veˇda o prˇevedenı´ informace do podoby, ve ktere´ je obsah informace skryty´ (a to i tehdy, pokud je tato necˇitelna´ informace prozrazena trˇetı´ straneˇ). Je to tedy veˇda o sˇifrova´nı´ dat za pomoci matematicky´ch metod. Kryptoanaly´za je umeˇnı´ a veˇda o prolomenı´ skryte´ informace (sˇifry nebo klı´cˇe), zaby´va´ se odolnostı´ kryptograficke´ho syste´mu a metodami vedoucı´mi k jeho rozbitı´. Neˇkdy se v souvislosti s kryptologiı´ hovorˇ´ı take´ o tzv. steganografii. Steganografie je veˇda o utajenı´ existence zpra´vy (ne jejı´ho obsahu). Nicme´neˇ se nejedna´ o kryptografii a my se jı´ budeme zaby´vat jen okrajoveˇ. Procˇ pouzˇ´ıvat kryptograficke´ na´stroje? Abychom zajistili: du˚veˇrnost obsahu zpra´v, autenticitu zpra´vy, integritu zpra´vy a nepopiratelnost prˇ´ıjmu/dorucˇenı´ zpra´vy. Kryptograficky´ syste´m (viz obr. 3.1 a 3.2) je peˇtice M, C, K, E, D, kde • symbolem M oznacˇujeme tzv. prostor textu˚, cozˇ je konecˇna´ mnozˇina prvku˚, ktery´m se rˇ´ıka´ otevrˇeny´ (srozumitelny´) text (zpra´va) (angl. plaintext), • symbolem C oznacˇujeme tzv. prostor sˇifrovy´vh textu˚. C je konecˇna´ mnozˇina prvku˚ nazy´vany´ch sˇifrovy´ text (ciphertext), • K je konecˇna´ mnozˇina mozˇny´ch klı´cˇu˚, tzv. prostor klı´cˇu˚, jejı´mzˇ prvkem je klı´cˇ (key), • E je mnozˇina sˇifrovacı´ch funkcı´ (algoritmu˚, pravidel). Sˇifrova´nı´m (encryption) nazy´va´me proces, ktery´m z otevrˇene´ho textu zı´ska´me jeho sˇifovy´ text, • D je mnozˇina desˇifrovacı´ch funkcı´ (algoritmu˚, pravidel). Desˇifrova´nı´m (decryption) nazy´va´me proces, ktery´m z sˇifove´ho textu zı´ska´me otevrˇeny´ text. Pro kryptograficky´ syste´m (da´le take´ KS) platı´: • pro ∀k ∈ K existuje sˇifrovacı´ funkce ek ∈ E a jı´ odpovı´dajı´cı´ desˇifrovacı´ funkce dk ∈ D, 34
E
A
m
Algoritmus e
c
Algoritmus d
Tajemstvı´ k
m
B
Tajemstvı´ k’ Zdroj k, k’
Obra´zek 3.1: Kryptograficky´ syste´m.
• kazˇda´ ek : m → c a dk : c → m jsou funkce, pro ktere´ platı´ ek (m) = c, dk (c) = m, dk (ek (m)) = m, pro ∀m ∈ M , • ek je bijektivnı´ funkce (1 : 1), • pokud M = C, pak je kazˇda´ sˇifrovacı´ funkce permutacı´, • klı´cˇ pro sˇifrova´nı´ nemusı´ by´t totozˇny´ s klı´cˇem pro desˇifrova´nı´, pak hovorˇ´ıme o dvojici klı´cˇu˚ a znacˇı´me ji (ek , dk ). Symbolem Z budeme znacˇit tzv. prˇ´ıpustnou abecedu, cozˇ je konecˇna´ mnozˇina prvku˚, ze ktery´ch se mu˚zˇe skla´dat zpra´va (i sˇifrovy´ text). Prˇ´ıpustna´ abeceda se mu˚zˇe pro otevrˇeny´ text a sˇifrovy´ text lisˇit. Nada´le budeme uvazˇovat tyto typy u´cˇastnı´ku˚ dvojstranne´ho komunikacˇnı´ho procesu: • odesı´latel (sender) je entita (neˇkdo nebo neˇco), ktera´ legitimneˇ zası´la´ zpra´vu (budeme je oznacˇovat Alice (nebo jen A)), • prˇ´ıjemce (reciever) je entita (neˇkdo nebo neˇco), ktera´ zpra´vu legitimneˇ prˇijı´ma´ (budeme je oznacˇovat Bob (nebo jen B)), • u´tocˇnı´k (intruder, eavesdropper, adversary, opponent atd.) je entita, ktera´ nenı´ ani odesı´latelem ani prˇ´ıjemcem zpra´vy, a ktera´ se pokousˇ´ı prorazit bezpecˇnostnı´ mechanismus zabezpecˇujı´cı´ komunikaci mezi A a B (budeme ji oznacˇovat E (jako eavesdropper)). Kryptografie se cˇlenı´ na symetrickou a asymetrickou kryptografii. Symetricka´ kryptografie (ktera´ je take´ oznacˇova´na jako kryptografie s tajny´m klı´cˇem (secret key)) pouzˇ´ıva´ pro sˇifrova´nı´ a desˇifrova´nı´ tenty´zˇ klı´cˇ, k = k 0 . Symetricke´ (kryptograficke´) algoritmy se deˇlı´ na • blokove´ sˇifry (algoritmy), ktere´ operujı´ nad n-bitovy´m blokem dat (otevrˇeny´m textem), typicky n = 64, • proudove´ sˇifry (algoritmy), kdy se otevrˇeny´ text zpracova´va´ bit po bitu nebo bajt po bajtu.
35
Na´hodny´ bitovy´ proud k
XOR
Stejny´ proud
+
Na´hodny´ bitovy´ proud k
+
Proud bitu˚ zpra´vy
XOR Proud bitu˚ zpra´vy
Proud bitu˚ sˇifry
Obra´zek 3.2: Jednoduchy´ kryptograficky´ syste´m.
Asymetricka´ kryptografie (nazy´vana´ take´ kryptografie s verˇejny´m klı´cˇem) pouzˇ´ıva´ dvojici klı´cˇu˚ (k 6= k 0 ), tzv. soukromy´ (private key) a verˇejny´ klı´cˇ (public key). Kazˇdy´ odesı´latel i prˇ´ıjemce vlastnı´ tuto dvojicı´ klı´cˇu˚ a jejı´ pouzˇitı´ se lisˇ´ı podle toho, zda chceme zpra´vu sˇifrovat (k zasˇifrova´nı´ se pouzˇije verˇejny´ klı´cˇ prˇ´ıjemce, pro desˇifrova´nı´ se pouzˇije soukromy´ klı´cˇ prˇ´ıjemce, viz kapitola 5) nebo k podepsa´nı´ (digita´lnı´ podpis viz podkapitola 10.1) zpra´vy (odesı´latel se podepisuje svy´m soukromy´ klı´cˇem a prˇ´ıjemce podpis oveˇrˇuje odesı´latelovy´m verˇejny´m klı´cˇem).
Shrnutı´ kapitoly 3.1 Hlavnı´mi poznatky zı´skany´mi po prostudova´nı´ podkapitoly jsou pojmy kryptograficky´ syste´m, otevrˇeny´ text, sˇifrovy´ text, klı´cˇ, sˇifrova´nı´, desˇifrova´nı´, symetricka´ kryptografie, asymetricka´ kryptografie.
?
Ota´zky ke kapitole 3.1 1. Jak se nazy´vajı´ kryptograficke´ algoritmy, ktere´ pro sˇifrova´nı´ a desˇifrova´nı´ pouzˇ´ıvajı´ stejny´ klı´cˇ? 2. Co to je kryptologie? 3. Jak se nazy´vajı´ klı´cˇe pouzˇ´ıvane´ v asymetricke´ kryptografii? 4. Jak se lisˇ´ı steganografie od kryptografie?
Prˇedcha´zejı´cı´ ´ vod do kryptografie U
Obsah Nahoru
36
Dalsˇ´ı Bezpecˇnost kryptograficke´ho syste´mu
Prˇedcha´zejı´cı´ Za´kladnı´ kryptograficke´ pojmy
3.2
Obsah
Dalsˇ´ı Vy´let do historie
Bezpecˇnost kryptograficke´ho syste´mu ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Tato podkapitola seznamuje s za´kladnı´mi pojmy z oblasti bezpecˇnosti kryptograficke´ho syste´mu. Po nastudova´nı´ podkapitoly budete umeˇt vyjmenovat a definovat za´kladnı´ch pojmy bezpecˇnosti KS a roztrˇ´ıdit jednotlive´ typy u´toku˚ na kryptograficky´ syste´m.
V minulosti se pouzˇ´ıvaly tzv. proprieta´rnı´ algoritmy, kdy se utajoval princip algoritmu. Nevy´hod proprieta´rnı´ch algoritmu˚ je rˇada, zejme´na na´sledujı´cı´: kazˇda´ skupina, ktera´ si chce prˇeda´vat informace, musı´ mı´t svu˚j vlastnı´ algoritmus; prozrazenı´ algoritmu mu˚zˇe zkompromitovat vsˇechny zpra´vy jı´m zasˇifrovane´. Jelikozˇ algoritmy musejı´ zu˚stat tajne´, nenı´ mozˇne´, aby mezina´rodnı´ kryptologicka´ komunita oveˇrˇila jejich odolnost proti kryptoanaly´ze a utajenı´ rovneˇzˇ neumozˇnı´ proces jejich standardizace. Steganografie - spocˇı´va´ v ukrytı´ otevrˇene´ zpra´vy prˇed nepovolany´mi osobami tak, aby si nepovsˇimly jeho existence. Do te´to kategorie patrˇily v historii tajne´ inkousty, oznacˇova´nı´ pı´smen v textu tecˇkama, v soucˇasne´ dobeˇ za´pis vhodny´ch bitu˚ do souboru˚ s obra´zky. Nevy´hodou steganografie je, zˇe ji nelze aplikovat u velky´ch skupin uzˇivatelu˚, zejme´na pak navza´jem se neznajı´cı´ch. Pro male´ skupiny mu˚zˇe vsˇak by´t znacˇneˇ u´cˇinna´. Jako steganografii lze ohodnotit i „zatemnˇova´nı´ “ dokumentu˚, pouzˇ´ıvane´ obcˇas prˇi komunikaci prˇes Internet. Existujı´ programy, ktery´mi lze upravit naprˇ´ıklad soubor *.exe tak, aby jeho statisticke´ vlastnosti odpovı´daly spı´sˇe souboru *.jpg. Tento trik je ma´lo u´cˇinny´ proti odposloucha´vajı´cı´mu cˇloveˇku, mu˚zˇe vsˇak zma´st odposloucha´vacı´ software, ktery´ vzhledem k objemu elektronicke´ komunikace vykona´va´ naprostou veˇtsˇinu kontroly zpra´v - naprˇ´ıklad sı´t’ Echelon viz:
WWW: Echelon Modernı´ kryptografie pouzˇ´ıva´ algoritmy za´visle´ na klı´cˇi (tzv. Kerckhoffu˚v princip). Kryptograficke´ algoritmy (tj. sˇifrovacı´ a desˇifrovacı´ algoritmy) jsou verˇejneˇ publikova´ny a jejich znalost nesmı´ kryptoanalytikovi pomoci ve snaze prˇekonat utajenı´ - to musı´ by´t plneˇ za´visle´ na klı´cˇi (ktery´ tedy kryptoanalytik nezna´). Jak uzˇ jsme se zmı´nili v u´vodu podkapitoly, kryptoanaly´za je umeˇnı´ a veˇda o prolomenı´ skryte´ informace a jejı´m cı´lem je odkrytı´ zpra´vy m bez znalosti sˇifrovacı´ho klı´cˇe k (ktery´ mu˚zˇe by´t ale take´ odkryt). Rozezna´va´me (viz take´ podkapitola 1.2): • u´toky kryptoanalyticke´, zalozˇene´ na matematicke´ analy´ze sˇifry a snazˇ´ıcı´ se odhalit jejı´ slabosti a vyuzˇ´ıt jich; rˇ´ıka´me jim u´toky proti algoritmu˚m, • u´toky jine´ povahy, sahajı´cı´ od pokusu˚ vyuzˇ´ıt nedostatku˚ v implementaci (hacking/cracking) azˇ po pouzˇitı´ na´silı´ proti prˇ´ıslusˇny´m osoba´m; v u´vahu prˇipadajı´ za beˇzˇne´ho pouzˇitı´ zejme´na u´toky proti protokolu˚m a u´toky proti implementacı´m.
37
Existujı´ tyto za´kladnı´ typy u´toku˚ proti algoritmu˚m, u ktery´ch zna´ u´tocˇnı´k zpravidla sˇifrovacı´ algoritmus e a sˇifrovy´ text c: • Ciphertext only attack (u´tok ze zna´my´ch sˇifer) - u´tocˇnı´k E zna´ c1 = ek (m1 ), c2 = ek (m2 )..., chce zjistit m1 , m2 ,...,k. V prˇ´ıpadeˇ kryptografie pro prakticke´ pouzˇitı´ neprˇedstavuje obvykle zı´ska´nı´ sˇifrove´ho textu pro u´tocˇnı´ka neprˇekonatelny´ proble´m. Zejme´na odesı´la´me-li soubory Internetem, cestujı´ prˇitom prˇes neˇkolik vzda´leny´ch ´ tok mu˚zˇe by´t veden naprˇ. na serveru˚ a jsou prˇ´ımo vystaveny odposloucha´va´nı´. U za´kladeˇ znalosti statisticky´ch za´vislostı´ jazyka - tzv. frekvencˇnı´ analy´za znaku˚, dvojic (digramu˚), trojic (trigramu˚) znaku˚. • Known-plaintext attack (u´tok ze zna´me´ho otevrˇene´ho textu) - u´tocˇnı´k E zna´ sˇifrovacı´ algoritmus, sˇifrovy´ text a jednu nebo vı´ce dvojic m1 , c1 = ek (m1 ), m2 , c2 = ˇ asto docha´zı´ k rozesı´la´nı´ prˇeek (m2 )..., chce zjistit k. Tato situace nenı´ vza´cna´. C dem zna´my´ch zpra´v, standardizovane´ jsou naprˇ. hlavicˇky jisty´ch typu˚ souboru˚ (naprˇ. Postscriptove´ soubory zacˇı´najı´ stejny´m textovy´m rˇeteˇzcem) atd. • Chosen-plaintext attack (u´tok z vybrane´ho zna´me´ho otevrˇene´ho textu) - u´tocˇnı´k E zna´ c1 = ek (m1 ), c2 = ek (m2 )..., a ma´ navı´c mozˇnost si vybrat neˇktere´ mi k za ´ tocˇnı´k ma´ sˇifrova´nı´ do ci za pouzˇitı´ stejne´ho klı´cˇe, cozˇ mu mu˚zˇe pomoci k odkrytı´ k. U dokonce mozˇnost vkla´dat do sˇifrovacı´ho zarˇ´ızenı´ zvolene´ otevrˇene´ texty (same´ nuly, same´ jednicˇky atd.) a zjisˇt’ovat, na jaky´ sˇifrovy´ text je sˇifrovacı´ algoritmus prˇevede. Tato situace nenı´ pravdeˇpodobna´ u lidı´, ale je mozˇna´ u pocˇı´tacˇe, generujı´cı´ho zasˇifrovane´ texty v odpoveˇd’ na pozˇadavek zvencˇı´. Algoritmus RSA je zranitelny´ vu˚cˇi tomuto algoritmu. • Chosen-ciphertext attack (u´tok z vybrany´ch zna´my´ch sˇifer) - u´tocˇnı´k E zna´ c1 = ek (m1 ), c2 = ek (m2 )... a ma´ navı´c mozˇnost si vybrat neˇktere´ ci k desˇifrova´nı´, cozˇ mu mu˚zˇe pomoci k odkrytı´ k. • Dalsˇ´ım typem u´toku je naprˇ. Chosen-key attack - u´tocˇnı´k mu˚zˇe vyuzˇ´ıt znalostı´ o vztazı´ch mezi ru˚zny´mi klı´cˇi, da´le Adaptive chosen-plaintext attack, kdy ma´ u´tocˇnı´k mozˇnost modifikovat vkla´dane´ otevrˇene´ texty podle vy´sledku prˇedesˇly´ch zasˇifrova´nı´. Brute-force attack (u´tok hrubou silou, exhaustive search) je u´tok, kdy u´tocˇnı´k postupneˇ vyzkousˇ´ı vsˇechny mozˇne´ klı´cˇe. Zkousˇ´ı, zda prˇi jejich aplikaci na zna´mou sˇifru c nedostaneme smysluplnou zpra´vu m (i v prˇ´ıpadeˇ, zˇe zna´me k tomuto c i pu˚vodnı´ m, take´ cˇeka´me na klı´cˇ k, ktery´ vygeneruje prˇ´ıslusˇny´ m). Du˚lezˇita´ je velikost klı´cˇe, a tedy velikost prostoru klı´cˇu˚. Naprˇ. algoritmus DES pouzˇ´ıva´ klı´cˇ velikosti 56 bitu˚, vsˇech mozˇny´ch klı´cˇu˚ je tedy „jen“ 256 . Kazˇdy´ kryptograficky´ syste´m je zlomitelny´ tı´mto u´tokem, ale za jak dlouho? To je jen ota´zka peneˇz, protozˇe je tento u´tok zpravidla spojeny´ s vyuzˇitı´m pocˇı´tacˇe. Tento u´tok je mozˇny´ proti velke´ veˇtsˇineˇ algoritmu˚ a doba jeho trva´nı´ veˇtsˇinou za´visı´ pra´veˇ na de´lce pouzˇite´ho klı´cˇe. Se zveˇtsˇova´nı´m de´lky klı´cˇe roste cˇasova´ na´rocˇnost u´toku exponencia´lneˇ a rychle prˇekracˇuje fyzika´lneˇ mozˇne´ meze. Brute-force attack se nejcˇasteˇji pouzˇ´ıva´ proti algoritmu˚m s kra´tky´m klı´cˇem, jako je naprˇ´ıklad zminˇovany´ algoritmus DES. V neˇktery´ch dalsˇ´ıch kapitola´ch se sezna´mı´me i s dalsˇ´ımi typy u´toku˚. Bezpecˇnost KS cha´peme jako odolnost KS proti odhalenı´ otevrˇene´ho textu neautorizovany´m subjektem: • Kryptosyste´m je bezpodmı´necˇneˇ bezpecˇny´ (absolutneˇ bezpecˇny´, perfektnı´, idea´lnı´ KS) tehdy, kdyzˇ nemu˚zˇe by´t prolomen ani prostrˇednictvı´m neomezeny´ch vy´pocˇetnı´ch prostrˇedku˚ (idea´l). Jediny´m takovy´m syste´mem je syste´m One-Time Pad.
38
Klı´cˇ Vel. abecedy De´lka klı´cˇe Vel.stavove´ho prostoru Doba u´toku PIN 10 4 104 0.01 s Velka´ pı´smena 26 6 3.01 ∗ 108 301 s 11 Alfanumericke´ zn. 62 6 5.7 ∗ 10 15 hod. Heslo (Unix) 96 8 7.21 ∗ 1015 229 let 16 DES 2 56 7.21 ∗ 10 2285 let Klı´cˇ 128b 2 128 3.4 ∗ 1038 1016 ess Klı´cˇ 512b 2 512 1.34 ∗ 10154 4 ∗ 10129 ess 9 ess - doba existence slunecˇnı´ soustavy, cca 10 let, 1016 ess = 1025 let. Tabulka 3.1: Porovna´nı´ doby potrˇebne´ k prolomenı´ KS u´tokem Brute-force prˇi rychlosti 1 operace za µs.
• KS je vy´pocˇetneˇ bezpecˇny´ tehdy, kdyzˇ nejlepsˇ´ı mozˇny´ algoritmus potrˇebuje k jeho prolomenı´ N operacı´, kde N je velmi velke´ cˇı´slo a je zna´me´. Vy´pocˇetneˇ bezpecˇny´ KS lze charakterizovat jako syste´m, kdy nelze zı´skat otevrˇeny´ text na za´kladeˇ znalosti odpovı´dajı´cı´ sˇifry v rea´lne´m cˇase dostupny´mi ani ocˇeka´vany´mi prostrˇedky. • Bezpecˇnost kryptograficke´ho syste´mu za´visı´ na slozˇitosti dat (kolik dat potrˇebujeme jako vstup pro u´tok), slozˇitosti zpracova´nı´ (jak dlouho bude u´tok trvat) a pameˇt’ovy´ch na´rocı´ch (velikost pameˇti potrˇebne´ pro u´tok). „Dobry´“ kryptograficky´ algoritmus mu˚zˇeme charakterizovat takto: • mnozˇstvı´ pra´ce vynalozˇene´ na sˇifrova´nı´ a desˇifrova´nı´ by meˇlo by´t u´meˇrne´ pozˇadovane´mu stupni utajenı´, • sˇifrovacı´ algoritmus by nemeˇl obsahovat zbytecˇna´ omezenı´, • implementace algoritmu by meˇla by´t co nejjednodusˇsˇ´ı, • chyby prˇi sˇifrova´nı´ by se nemeˇly prˇ´ılisˇ sˇ´ırˇit a ovlivnˇovat na´sledujı´cı´ komunikaci, • zpra´vy by se nemeˇly zasˇifrova´nı´m prˇ´ılisˇ zveˇtsˇovat.
Shrnutı´ kapitoly 3.2 V te´to podkapitole jsme se sezna´mili se za´kladnı´m cˇleneˇnı´m kryptoanalyticky´ch u´toku˚ na algoritmus, definovali jsme u´tok hrubou silou. Da´le jsme zavedli strucˇne´ deˇlenı´ kategoriı´ bezpecˇnosti kryptograficke´ho syste´mu.
?
Ota´zky ke kapitole 3.2 1. Pokud kryptograficky´ algoritmus pracuje se 128-bitovy´m klı´cˇem, jaky´ je prostor klı´cˇu˚ (kolik ru˚zny´ch klı´cˇu˚ musı´m zkontrolovat prˇi u´toku hrubou silou)? 2. Popisˇte princip u´toku ze zna´my´ch sˇifer. 3. Co rˇ´ıka´ tzv. Kerckhoffu˚v princip?
39
Prˇedcha´zejı´cı´ Za´kladnı´ kryptograficke´ pojmy
Obsah Nahoru
40
Dalsˇ´ı Vy´let do historie
Prˇedcha´zejı´cı´ Bezpecˇnost kryptograficke´ho syste´mu
3.3
Obsah
Dalsˇ´ı Maly´ u´vod do kryptoanaly´zy
Vy´let do historie ˇ asova´ na´rocˇnost kapitoly: 60 minut C Cı´l kapitoly: Tato podkapitola seznamuje s jednoduchy´mi kryptograficky´mi algoritmy. Cı´lem podkapitoly je osvojenı´ si principu˚ historicky´ch algoritmu˚. Po nastudova´nı´ podkapitoly budete umeˇt definovat dveˇ za´kladnı´ techniky konstrukce sˇifrovacı´ch algoritmu˚ (permutaci a substituci).
V minulosti se uplatnˇovaly dva za´kladnı´ principy konstrukce sˇifrovacı´ch algoritmu˚: substituce a permutace. Substitucˇnı´ algoritmy nahrazujı´ znaky otevrˇene´ho textu jiny´mi znaky. Permutacˇnı´ (transpozicˇnı´) algoritmy nemeˇnı´ znaky otevrˇene´ho textu, ale meˇnı´ jejich porˇadı´. V teorii informace se pouzˇ´ıva´ pojem redundance jazyka. My se spokojı´me konstatova´nı´m, zˇe redundance je mı´rou relativnı´ nadbytecˇnosti informace. V kryptografii se snazˇ´ıme o minimalizace redundance, tedy o ukrytı´ „vsˇeho nadbytecˇne´ho“, co existuje v m v sˇifrove´m textu c (naprˇ.: dotaznı´k - zada´va´te rodne´ cˇı´slo a datum narozenı´ - redundantnı´ informace). Existujı´ dveˇ za´kladnı´ techniky pro ukrytı´ redundance otevrˇene´ho textu: • konfuse (za´meˇna - confusion) - ukrytı´ vztahu˚ mezi m, c, k, odrazuje u´tocˇnı´ka od hleda´nı´ redundance a statisticky´ch vzorku˚ v c - je realizova´no substitucı´, • difuse (rozptyl - diffusion) - rozpty´lenı´ redundance m po cele´ c, statisticke´ za´vislosti se rozpty´lı´ po sˇifrˇe - je realizova´no permutacı´ (transpozicı´). V soucˇasnosti se „cˇisteˇ“ substitucˇnı´ nebo permutacˇnı´ algoritmy nepouzˇ´ıvajı´. Pouzˇ´ıvajı´ se algoritmy (symetricke´), ktere´ kombinujı´ obeˇ techniky, rˇ´ıka´ se jim slozˇene´ sˇifry.
3.3.1
Substitucˇnı´ algoritmy
Mezi jednoduche´ substitucˇnı´ algoritmy (monoalfabeticke´ algoritmy - jeden znak m je nahrazen jednı´m znakem c) patrˇ´ı na´sledujı´cı´: • Shift Cipher - M = C = Z26 , prvky Z jsou pı´smena anglicke´ abecedy (bez mezery), ktera´ lze po rˇadeˇ ocˇı´slovat (tj. A = 0, ..., Z = 25), m ∈ M , k ∈ {0, 1, ..., 25}, - sˇifrova´nı´ c = e(m) = (m + k) mod 26, - desˇifrova´nı´ m = d(c) = (c − k) mod 26, - algoritmus nenı´ odolny´ proti u´toku pomocı´ tzv. frekvencˇnı´ analy´zy ani proti u´toku hrubou silou (ten je u´speˇsˇny´ pru˚meˇrneˇ po 26/2 = 13 pokusech), - pro k = 3 dostaneme tzv. Caesarovu sˇifru, pro k = 13 dostaneme sˇifru ROT13.
41
P A F M V
O B G N W
K C H Q X
U D I/J R Y
S E L T Z
Obra´zek 3.3: Playfair.
A B C D E
A A F L Q V
B B G M R W
C C H N S X
D D I O T Y
E E K P U Z
Obra´zek 3.4: Polyboisu˚v cˇtverec.
Prˇ´ıklad 3.1 m = T OT OJEP RIKLADCAESAROV Y SIF RY , c = W RW RM HSU LN ODGF DHV DU RY BV LIU B . 2 • Affine Cipher - M = C = Z26 , m ∈ M , k = (a, b), kde a, b ∈ {0, 1, ..., 25}, - sˇifrova´nı´ c = e(m) = (a ∗ m + b) mod 26, - desˇifrova´nı´ m = d(c) = ((c − b) ∗ a−1 ) mod 26, - pozn.: a−1 existuje tehdy a jen tehdy, kdyzˇ N SD(a, 26) = 1, kde NSD je nejveˇtsˇ´ı spolecˇny´ deˇlitel. Prˇ´ıklad 3.2 k = (a, b) = (3, 5), m = T OT OJEP RIKLADAF F IN ECIP HER, c = KV KV GRY EDJM F OF U U DSRLDY ARE. 2 Mezi tzv. polygramove´ substitucˇnı´ algoritmy (skupina znaku˚ otevrˇene´ho textu je v sˇifrˇe nahrazena opeˇt skupinou znaku˚) patrˇ´ı na´sledujı´cı´: • Playfair (viz obr. 3.3) - pracuje s digramy (dvojicemi znaku˚) pomocı´ tabulky znaku˚ velikosti 5 ∗ 5, - do tabulky se nejprve zapı´sˇe klı´cˇ (klı´cˇ v prˇ´ıkladu k = P OKU S), a pote´ se bunˇky tabulky doplnı´ zby´vajı´cı´mi znaky abecedy (I/J se umı´stı´ do jedne´ bunˇky), - kazˇdy´ znak digramu se nahradı´ znakem, ktery´ lezˇ´ı na pru˚secˇı´ku rˇa´dku tohoto znaku a sloupce druhe´ho znaku z digramu, - naprˇ. P L se sˇifruje na SF , - pomeˇrneˇ dobrˇe eliminuje frekvencˇnı´ za´vislosti. • Polyboisu˚v cˇtverec (viz obr. 3.4) - substituce 25 znakove´ abecedy (anglicke´ bez pı´smene J) abecedou 25 dvojic AA, AB, ..., EE, - klı´cˇem je tabulka s tajny´m obsahem, - naprˇ. znak P se sˇifruje na CE, zpra´va m = P RIKLAD se sˇifruje na c = CEDBBDBECAAAAD. • Hillu˚v algoritmus viz [2].
42
a b c d e f g . .
a A B C D E F G . .
b B C D E F G H . .
c C D E F G H I . .
d D E F G H I J . .
e E F G H I J K . .
f F G H I J K L . .
g G H I J K L M . .
h H I J K L M N . .
i I J K L M N O . .
j J K L M N O P . .
k K L M N O P Q . .
l L M N O P Q R . .
m M N O P Q R S . .
n N O P Q R S T . .
o O P Q R S T U . .
p P Q R S T U V . .
q Q R S T U V W . .
r R S T U V W X . .
s S T U V W X Y . .
t T U V W X Y Z . .
u U V W X Y Z A . .
v V W X Y Z A B . .
w W X Y Z A B C . .
x X Y Z A B C D . .
y Y Z A B C D E . .
z Z A B C D E F . .
ˇ a´st Vigene´rovy tabulky. Tabulka 3.2: C
Polyalfabeticke´ substitucˇnı´ algoritmy jsou zalozˇeny na pouzˇitı´ neˇkolika ru˚zny´ch monoalfabeticky´ch algoritmu˚. Pro kazˇdy´ znak otevrˇene´ho textu se pouzˇije konkre´tnı´ monoalf. algoritmus. Prˇesne´ urcˇenı´ vhodny´ch algoritmu˚ urcˇuje hodnota klı´cˇe. Pokud je de´lka klı´cˇe (tj pocˇet ru˚zny´ch monoalf. algoritmu˚) = n a je kratsˇ´ı nezˇ je pocˇet znaku˚ otevrˇene´ho textu, musı´ se klı´cˇ pouzˇ´ıt opakovaneˇ - tomuto jevu se rˇ´ıka´ perioda. Doporucˇuje se pouzˇ´ıvat klı´cˇ, ktery´ je stejneˇ dlouhy´ jako otevrˇeny´ text nebot’ periodicke´ pouzˇitı´ kratsˇ´ıho klı´cˇe ulehcˇuje kryptoanaly´zu (nebot’ nedocha´zı´ ke skry´va´nı´ frekvencˇnı´ch za´vislostı´). Kryptoanaly´za na za´kladeˇ frekvencˇnı´ analy´zu je u polyalfabeticky´ch algoritmu˚ obtı´zˇneˇjsˇ´ı nezˇ u algoritmu˚ monoalfabeticky´ch. Obecny´ princip lze demonstrovat na Shift Cipher: - M = C = K = (Z26 )n , - zpra´va m se sˇifruje po blocı´ch o n prvcı´ch, - klı´cˇem je rˇeteˇz n znaku˚, k = (k1 , k2 , ..., kn ), - ek (m1 , m2 , ..., mn ) = (m1 + k1 ) mod 26, ..., (mn + kn ) mod 26, - dK (c1 , c2 , ..., cn ) = (c1 − k1 ) mod 26, ..., (cn − kn ) mod 26. Pocˇet vsˇech ru˚zny´ch klı´cˇu˚ je 26n , cozˇ nenı´ dostatecˇny´ pocˇet pro u´tok hrubou silou za pouzˇitı´ pocˇı´tacˇe, ale pro manua´lnı´ u´tok mu˚zˇe by´t tento pocˇet dostacˇujı´cı´. Prˇ´ıklad 3.3 m = P RIKLADP OLY ALF ABET ICKESIF RY , k = T OT OJEKLICT OT OJEKLICT OT OJEKLICT OT , c1 = P + T mod 26, c2 = R + O mod 26..., tj. c1 = 15 + 19 mod 26, c2 = 17 + 14 mod 26... 2 Mezi polyalfabeticke´ algoritmy patrˇ´ı na´sledujı´cı´: • Vigene´ru˚v algoritmus - kazˇdy´ z n znaku˚ klı´cˇe k urcˇuje jinou tabulku (viz tab. 3.2) ˇ ifrova´nı´ probı´ha´ tak, zˇe je-li naprˇ. da´n znak obecne´ho monoalfabeticke´ho algoritmu. S klı´cˇe c a znak otevrˇene´ho textu d, znak sˇifrove´ho textu lezˇ´ı na pru˚secˇı´ku rˇady oznacˇene´ znakem c a sloupce oznacˇene´ho znakem d. V nasˇem prˇ´ıpadeˇ je vy´sledny´m znakem sˇifrove´ho textu znak F . Desˇifrova´nı´ probı´ha´ analogicky, tj. zˇe je-li naprˇ. da´n znak klı´cˇe c a znak sˇifrove´ho textu f , vy´sledny´ znak otevrˇene´ho textu lezˇ´ı na pru˚secˇı´ku rˇady oznacˇene´ znakem c a sloupce oznacˇene´ho znakem f . V nasˇem prˇ´ıpadeˇ je vy´sledny´m znakem otevrˇene´ho textu znak D.
43
Obra´zek 3.5: Scytale.
• One-Time Pad (Vernamu˚v algoritmus (alg. s jednora´zovy´m klı´cˇem)) je nerozlusˇtitelny´ syste´m, kdy se pro kazˇde´ pouzˇitı´ generuje novy´ klı´cˇ (jednora´zovy´). - M = C = K = (Z2 )n , - ek (m1 , m2 , ..., mn ) = (m1 + k1 , ..., mn + kn ) mod 2 = (m1 ⊕ k1 , ..., mn ⊕ kn ) - jedna´ se o XOR bitove´ho obrazu otevrˇene´ho textu s na´hodny´m bitovy´m klı´cˇem, - dk (c1 , c2 , ..., cn ) = (c1 + k1 , ..., cn + kn ) mod 2 = (c1 ⊕ k1 , ..., cn ⊕ kn ) - jedna´ se o XOR bitove´ho obrazu sˇifrove´ho textu se stejny´m klı´cˇem. Vernamu˚v algoritmus je jediny´m absolutneˇ bezpecˇny´m syste´mem. Klı´cˇe z mnozˇiny K jsou voleny na´hodneˇ a se stejnou pravdeˇpodobnostı´ a prˇi sˇifrova´nı´ kazˇde´ho nove´ho otevrˇene´ho textu se volı´ novy´ klı´cˇ, ktery´ by meˇl by´t stejneˇ dlouhy´ jako otevrˇeny´ text. Pokud bychom pouzˇili k zasˇifrova´nı´ dvou zpra´v m1 a m2 stejny´ klı´cˇ k, tak mu˚zˇeme dı´ky scˇı´ta´nı´ (XORu) eliminovat vliv klı´cˇe a pokud by obeˇ zpra´vy byly totozˇne´, mu˚zˇeme je obeˇ urcˇit ((m1 ⊕ k) ⊕ (m2 ⊕ k) = m1 ⊕ m2 ). Proble´mem u tohoto syste´mu je ale generova´nı´ a distribuce klı´cˇu˚.
3.3.2
Permutacˇnı´ algoritmy
Znaky sˇifrove´ho textu jsou stejne´ jako znaky otevrˇene´ho textu, jen je jejich porˇadı´ zmeˇneˇno. Neskry´va´ se statisticka´ za´vislost vy´skytu˚ znaku˚ otevrˇene´ho textu. Prˇ´ıklady permutacˇnı´ch algoritmu˚: • Je da´no je prˇirozene´ cˇı´slo n > 1, necht’ M = C = Z n , mnozˇina klı´cˇu˚ K je mnozˇina ˇ ifrovacı´ a desˇifrovacı´ funkce jsou definova´ny takto: permutacı´ mnozˇiny {1, 2, ..., n}. S e(m1 m2 ...mn ; k) = mk(1) mk(2) ...mk(n) , d(c1 c. ..cm ; k) = ck−1 (1) ck−1 (2) ...ck−1 (n) . Delsˇ´ı text (nezˇ n znaku˚) doplnı´me (vhodneˇ zvoleny´mi znaky) na na´sobek n a rozdeˇlı´me na n-tice, ktere´ sˇifrujeme zvla´sˇt’. Prˇ´ıklad 3.4 M = C = (Z26 )n , - sˇifrovacı´ klı´cˇ: permutace {1, 2, ..., n} naprˇ.: n = 6, permutace 1/3, 2/5, 3/1, 4/6, 5/4, 6/2, - desˇifrovacı´ klı´cˇ: inverznı´ permutace, 1/3, 2/6, 3/1, 4/5, 5/2, 6/4, m = CAESAR, c = ERCAAS. 2 ˇ ifrova´nı´ probı´• Starorˇecky´ syste´m Scytale pouzˇ´ıval jako klı´cˇ tycˇ urcˇite´ho pru˚meˇru. S ˇ ifrovy´m textem halo tak, zˇe se na tycˇ namotal pa´s la´tky a na tu se napsala zpra´va. S se pak stal pa´s la´tky (odmotany´) s napsanou zpra´vou. K desˇifrova´nı´ se musela pouzˇ´ıt klı´cˇ (tycˇ stejne´ho pru˚meˇru jako pro sˇifrova´nı´) a sˇifrovy´ text (pa´s la´tky) se musel namotat na tuto tycˇ.
44
Obra´zek 3.6: Enigma.
3.3.3
Rotacˇnı´ prˇ´ıstroje - Enigma
Jizˇ v polovineˇ 30 let patrˇila Enigma ke standardnı´mu vybavenı´ vsˇech slozˇek neˇmecky´ch ozbrojeny´ch sil. Prˇ´ıstroj Enigma (viz obr. 3.6) se podobal psacı´mu stroji. Byl vsˇak napa´jen z baterie a nepouzˇ´ıval papı´r. Zasˇifrovane´ depesˇe se vysı´laly morseovkou a musely by´t u prˇ´ıjemce deko´dova´ny druhy´m prˇ´ıstrojem Enigma. Ja´dro Enigmy tvorˇila kla´vesnice, programovacı´ deska zvana´ sˇtekr, a 3 rotacˇnı´ kotoucˇe s dvaceti sˇesti pı´smeny abecedy, Kazˇdy´m stiskem kla´vesy vysı´lala obsluha do u´trob Enigmy elektricky´ impuls. Impuls procha´zel programovacı´ deskou, ktera´ ho nasmeˇrovala do prvnı´ho rotacˇnı´ho kotoucˇe s pı´smeny abecedy. Pomocı´ teˇchto kotoucˇu˚ sestavovala obsluha soubory ko´du pro Enigmu. Za va´lky se meˇnily kazˇdy´ch osm hodin. V oke´nka´ch se objevovala pı´smena z kotoucˇu˚ v porˇadı´ podle mı´sta v abecedeˇ. Kazˇdy´m stiskem kla´vesy opera´tor uvedl do chodu kotoucˇ vpravo, ktery´ se posunul o jedno pı´smeno. Pak prostrˇednı´ kotoucˇ a nakonec levy´. Impuls procha´zel zprava doleva vedeny´ v kazˇde´m ze trˇ´ı kotoucˇu˚. Vlevo ho odra´zˇecˇ obra´til zpeˇt. Na zpa´tecˇnı´ cesteˇ procha´zel impuls znovu programovacı´ deskou (sˇtekrem), kde byl podruhe´ prˇesmeˇrova´n. Jeho konecˇny´m mı´stem urcˇenı´ byl sveˇtelny´ panel nad kla´vesami, kde se rozsveˇcovalo prˇevedene´ pı´smeno. Pı´smeno, ktere´ se na neˇm rozsvı´tilo bylo vy´sledkem kombinacı´ kotoucˇu˚, jichzˇ byl neuveˇrˇitelny´ pocˇet. Zako´dovana´ depesˇe se pak morseovkou vysı´lala prˇ´ıjemci, kde se deko´dovala na prˇijı´macı´m prˇ´ıstroji Enigma nastavene´m na stejny´ dennı´ klı´cˇ. O fascinujı´cı´ historii prolomenı´ Enigmy za 2. sveˇtove´ va´lky mu˚zˇe cˇtena´rˇ naprˇ. na Internetu nale´zt mnoho informacı´, naprˇ.:
WWW: Enigma
Shrnutı´ kapitoly 3.3
45
V te´to cˇa´sti textu jsme se nejenom sezna´mili s neˇktery´mi jednoduchy´mi kryptograficky´mi algoritmy, ale zejme´na jsme si objasnili za´kladnı´ principy konstrukce algoritmu˚, a to princip substituce a permutace. Nejdu˚lezˇiteˇjsˇ´ımi uvedeny´mi algoritmy jsou Shift Cipher, Affine Cipher a One-Time Pad.
?
Ota´zky ke kapitole 3.3 1. Jaky´ je prostor klı´cˇu˚ u Afinne Cipher, pokud prˇ´ıpustna´ abeceda Z obsahuje 52 znaku˚? 2. Transpozicˇnı´ sˇifra: Otevrˇeny´ text je: M = CRYPTOGRAPHY, sˇifrujeme pomocı´ transpozice, ktera´ je da´na klı´cˇem k = (312715910611482). Jaky´ dostaneme zasˇifrovany´ text? Jaky´m zpu˚sobem zı´ska´me z sˇifrove´ho textu pu˚vodnı´ otevrˇeny´ text? Jak lze vhodneˇ reprezentovat zadanou transpozici? 3. Jednoduchy´ symetricky´ algoritmus: Je da´na vstupnı´ abeceda Z = 0, 1, otevrˇeny´ text m je xor-ova´n pomocı´ klı´cˇe k na sˇifrovy´ text c. Jak probeˇhne desˇifrova´nı´? 4. Prˇedpokla´dejme substitucˇnı´ polyalfabetickou Vigene´rovu sˇifru (blokovou), kde M = C = Z, tj. pracujeme s abecedou o 26 znacı´ch (bez mezery), de´lka bloku je n = 3 (tedy ˇ ifrova´nı´ i de´lka klı´cˇe). Otevrˇeny´ text m=THISCIPHERISCERTAINLYNOTSECURE. S probı´ha´ na´sledovneˇ e = (p1 , p2 , p3 ), kde p1 posune znak o 3 znaky v abecedeˇ da´le (doprava), p2 o 7 znaku˚ a p3 o 10 znaku˚ doprava. Jaky´ je sˇifrovy´ text c?
Prˇedcha´zejı´cı´ Bezpecˇnost kryptograficke´ho syste´mu
Obsah Nahoru
46
Dalsˇ´ı Maly´ u´vod do kryptoanaly´zy
Prˇedcha´zejı´cı´ Vy´let do historie
3.4
Obsah
Dalsˇ´ı Symetricka´ kryptografie
Maly´ u´vod do kryptoanaly´zy ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Tato podkapitola se veˇnuje dveˇma nejjednodusˇsˇ´ım postupu˚m prˇi lusˇteˇnı´ sˇifer. Cı´lem podkapitoly je osvojit si postup prˇi lusˇteˇnı´ jednoduche´ monoalfabeticke´ substituce a jednoduche´ permutace. Po prostudova´nı´ podkapitoly budete umeˇt tyto postupy pouzˇ´ıt.
3.4.1
Lusˇteˇnı´ jednoduche´ substituce
Monoalfabeticke´ algoritmy nejsou bezpecˇne´, nebot’ veˇrneˇ reprodukujı´ vlastnosti otevrˇene´ho textu, a to zejme´na opakova´nı´ skupin znaku˚ a souhla´skove´ vztahy. Pokud tedy prˇedpokla´da´me, zˇe sˇifrovy´ text vznikl jednoduchou substitucı´ (frekvence znaku˚ odpovı´da´ frekvenci znaku˚ prˇedpokla´dane´ho jazyka, vyskytujı´ se delsˇ´ı opakova´nı´...) mu˚zˇeme pouzˇ´ıt tzv. frekvencˇnı´ analy´zu: 1. Spocˇı´ta´me frekvenci jednotlivy´ch pı´smen v sˇifrove´m textu. 2. Pokusı´me se identifikovat pı´smeno, ktere´ prˇ´ıpadneˇ nahrazuje mezeru mezi jednotlivy´mi slovy. Pokud nenı´ sˇifrovy´ text prˇ´ılisˇ kra´tky´, tak se na´m podarˇ´ı zjistit, jestli takove´ pı´smeno existuje, a ktere´ to v tom prˇ´ıpadeˇ je. Pru˚meˇrna´ de´lka slov v prˇirozeny´ch jazycı´ch je obvykle neˇco mezi 5 a 6 pı´smeny. Pokud tedy neˇjake´ pı´smeno nahrazuje mezeru mezi slovy, musı´ tvorˇit neˇco mezi 16% a 20% textu. Da´le, je-li spra´vny´ na´sˇ prˇedpoklad, zˇe neˇjake´ pı´smeno zastupuje mezeru, objevı´ se v sˇifrove´m textu vzˇdy po neˇkolika jiny´ch pı´smenech, nemu˚zˇe se take´ objevit dvakra´t po sobeˇ. 3. Pokud se na´m podarˇilo mezeru identifikovat, mu˚zˇeme si sˇifrovy´ text rozdeˇlit na slova. Pokud by v pu˚vodnı´m otevrˇene´m textu mezera byla vynecha´na, nic rozdeˇlovat nebudeme. 4. Pokusı´me se identifikovat pı´smena, ktera´ v sˇifrove´m textu nahrazujı´ neˇktera´ z nejcˇasteˇji pouzˇ´ıvany´ch pı´smen v prˇirozene´m jazyce, jako naprˇ´ıklad pı´smena E, A, T, P atd. Neˇkolik teˇchto nejcˇasteˇji pouzˇ´ıvany´ch pı´smen vzˇdy tvorˇ´ı azˇ 40% obvykle´ho textu, ve veˇtsˇineˇ jazyku˚ a prˇ´ıpadu˚ je pı´smeno E zdaleka nejcˇasteˇjsˇ´ı. Tabulka 3.3 ukazuje frekvence jednotlivy´ch pı´smen v neˇktery´ch jazycı´ch. Tuto tabulku je trˇeba cha´pat pouze jako pomu˚cku. Nejcˇasteˇji pouzˇ´ıvana´ pı´smena se objevujı´ pravidelneˇ jako nejcˇasteˇjsˇ´ı pı´smena v ru˚zny´ch textech. Zato ma´lo frekventovana´ pı´smena zˇa´dnou velkou cenu pro lusˇteˇnı´ nemajı´, v neˇktere´m textu se mohou objevit cˇasteˇji nezˇ v jine´m. Frekvence jednotlivy´ch pı´smen take´ za´visı´ na tom, o jaky´ text jde. Odborny´ text obsahujı´cı´ mnoho specia´lnı´ch termı´nu˚ mu˚zˇe mı´t frekvence jednotlivy´ch pı´smen velmi posunute´. Text o stavbeˇ atomu cˇasto uzˇ´ıvajı´cı´ termı´ny PROTON, ELEKTRON, NEUTRON bude mı´t patrneˇ o dost vysˇsˇ´ı frekvenci O, nezˇ je obvykle´.
47
Pı´smeno A 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
Angl. 7,96 1,60 2,84 4,01 12,86 2,62 1,99 5,39 7,77 0,16 0,41 3,51 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. 7,68 0,80 3,32 3,60 17,76 1,06 1,10 0,64 7,23 0,19 0,00 5,89 2,72 7,61 5,34 3,24 1,34 6,81 8,23 7,30 6,05 1,27 0,00 0,54 0,21 0,07
Neˇm. 5,52 1,56 2,94 4,91 19,18 1,96 3,60 5,02 8,21 0,16 1,33 3,48 1,69 10,20 2,14 0,54 0,01 7,01 7,07 5,86 4,22 0,84 1,38 0,00 0,00 1,17
ˇ esˇ. C 8,99 1,86 3,04 4,14 10,13 0,33 0,48 2,06 6,92 2,10 3,44 4,20 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. 9,49 1,90 3,45 4,09 9,16 0,31 0,40 2,35 6,81 2,12 3,80 4,56 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
Tabulka 3.3: Frekvence vy´skytu˚ jednotlivy´ch znaku˚ v neˇktery´ch jazycı´ch.
48
5. Take´ je dobre´ veˇdeˇt, ktera´ pı´smena se nejcˇasteˇji vyskytujı´ na zacˇa´tku a na konci jednotlivy´ch slov. Porˇadı´ hla´sek v cˇesˇtineˇ je tedy: E,O,A,I,N,S,T,R,V,U,L,Z,D,K,P,M,C,Y,H,J,B,G,F,X,W,Q. Porˇadı´ hla´sek v cˇesˇtineˇ na zacˇa´tku slov: P,S,V,Z,N,T,O,J,K,D,A,B,M,R,U,C,I,H,E,L,F,G,W,Y,Q,X. Porˇadı´ hla´sek v cˇesˇtineˇ na konci slov: E,I,A,O,U,Y,M,T,H,V,L,K,S,Z,D,N,R,C,J,B,P,G,F,W,X,Q. 6. Pokud jsme odhalili neˇktere´ hla´sky, mu˚zˇeme pokracˇovat v lusˇteˇnı´ s vyuzˇitı´m dalsˇ´ıch vlastnostı´ prˇirozene´ho jazyka. Nejcˇasteˇjsˇ´ımi souhla´skovy´mi bigramy (dvojicemi znaku˚) v cˇesˇtineˇ jsou ST, PR, SK, CH, DN, TR. Tyto bigramy majı´ sve´ zvla´sˇtnosti: - ST: S a T ma´ prˇiblizˇneˇ stejnou frekvenci (existuje i bigram TS), je soucˇa´stı´ velke´ho pocˇtu souhla´skovy´ch trigramu˚ (STR, STN, STL, STV) a vyskytuje se uprostrˇed i na konci slova. - PR: P ma´ asi polovicˇnı´ frekvenci nezˇ R, obra´ceny´ bigram RP se te´meˇrˇ nevyskytuje (chrpa), zpravidla jej nelze rozsˇ´ırˇit „dozadu“ na souhla´skovy´ trigram (PRV), lze jej ale rozsˇ´ırˇit doprˇedu na trigram (SPR, ZPR, ...), zpravidla stojı´ na pocˇa´tku slov. - CH: H ma´ jen o neˇco mensˇ´ı frekvenci nezˇ C (u kratsˇ´ıch textu˚ nemusı´ platit), by´va´ zpravidla na konci slov spolu se samohla´skami Y,I,A,E (YCH, ICH, ACH, ECH), veˇtsˇinou platı´, zˇe prˇedcha´zı´-li CH souhla´ska, pak je po neˇm samohla´ska a naopak (OBCHOD, NECHTˇ). 7. Trigramy: PRO, UNI, OST, STA, ANI, OVA, YCH, STI, PRI, PRE, OJE, REN, IST, STR (nejbeˇzˇneˇjsˇ´ı souhla´skovy´ trigram!), EHO, TER, RED, ICH, .. 8. Nakonec dokoncˇı´me lusˇteˇnı´ s vyuzˇitı´m gramaticky´ch pravidel a informacı´ vyply´vajı´cı´ch z kontextu.
3.4.2
Lusˇteˇnı´ jednoduche´ permutace
Lusˇteˇnı´ jednoduche´ permutace (transpozice) rovneˇzˇ nenı´ obtı´zˇne´. prˇipomenˇme si, zˇe permutace (transpozice) je „prˇeskupenı´ “ otevrˇene´ho textu podle neˇjaky´ch pravidel (tato pravidla se nazy´vajı´ klı´cˇem). Vy´sledny´ sˇifrovy´ text zachova´va´ frekvenci hla´sek prˇ´ıslusˇne´ho jazyka. Zprˇetrha´ny jsou pouze bigramove´, trigramove´ vazby, a tı´m je ukryt vy´znam pu˚vodnı´ho textu. V takove´mto textu se tedy nevyskytujı´ dlouha´ opakova´nı´, je zachova´na frekvence hla´sek prˇ´ıslusˇne´ho jazyka, neodpovı´dajı´ bigramove´, trigramove´ frekvence, nelze prove´st deˇlbu na samohla´sky a souhla´sky. Pomeˇr samohla´sek a souhla´sek je v textu zachova´n a je prˇiblizˇneˇ v pomeˇru 40 : 60. 1. Zı´skany´ sˇifrovy´ text rozepisˇme do naprˇ. peˇtimı´stny´ch skupin. Urcˇı´me frekvenci znaku˚ a zjistı´me, zda odpovı´da´ frekvenci jazyka. V sˇifrˇe nejsou velka´ opakova´nı´ a jsou zde skupiny samohla´sek a souhla´sek. To by mohlo naznacˇovat, zˇe se jedna´ o transpozici. Uvedeme postup kryptoanaly´zy sˇifrove´ho textu vytvorˇene´ho jednoduchou transpozicı´ s tzv. u´plnou tabulkou (otevrˇeny´ text je vepsa´n do tabulky urcˇite´ho rozmeˇru a sloupce jsou podle urcˇite´ho klı´cˇe prˇeskupeny).
49
2. Urcˇı´me rozmeˇr tabulky - spocˇteme de´lku sˇifrove´ho textu a snazˇ´ıme se urcˇit pravdeˇpodobny´ rozmeˇr tabulky. Ten zjistı´me tak, zˇe de´lku sˇifrove´ho textu rozlozˇ´ıme na soucˇin prvocˇı´sel a z nich kombinujeme pravdeˇpodobnou velikost tabulky. Ma´me-li naprˇ. sˇifrovy´ text de´lky 120 = 2 ∗ 2 ∗ 2 ∗ 3 ∗ 5, pak jsou mozˇne´ na´sledujı´cı´ velikosti tabulek (pocˇet sloupcu˚ * pocˇet rˇa´dku˚): – ma´lo pravdeˇpodobne´ (bylo by prˇ´ılisˇ lehke´ k rˇesˇenı´) jsou tabulky o rozmeˇrech 1 ∗ 120, 2 ∗ 60, 3 ∗ 40, 4 ∗ 30, 6 ∗ 20, – naopak slozˇite´ jsou tabulky o rozmeˇrech 120 ∗ 1, 60 ∗ 2, 60 ∗ 2, – pouzˇitelne´ tabulky: 8 ∗ 15, 15 ∗ 8, 12 ∗ 10, 10 ∗ 12, 20 ∗ 6, 30 ∗ 4, 40 ∗ 3. ˇ ifrovy´ text se vepı´sˇe do „podezrˇely´ch“ tabulek po sloupcı´ch. Drˇ´ıve, nezˇ prˇejdeme 3. S k vlastnı´mu lusˇteˇnı´, mu˚zˇeme si do znacˇne´ mı´ry oveˇrˇit, zda na´mi zvolena´ tabulka je spra´vna´. Zjistı´me to na pomeˇru souhla´sek a samohla´sek v jednotlivy´ch rˇa´dcı´ch tabulky. I zde by meˇl by´t prˇiblizˇneˇ zachova´n pomeˇr samohla´sky : souhla´sky - 40 : 60. Ktera´ z tabulek splnˇuje tento pomeˇr pro veˇtsˇinu svy´ch rˇa´dku˚, ta je nejpravdeˇpodobneˇjsˇ´ı tabulkou a zde zacˇneme s pokusem o vylusˇteˇnı´ pu˚vodnı´ho textu. 4. Pokud nema´me k dispozici vhodny´ program, nezby´va´ nezˇ sloupce tabulky rozstrˇ´ıhat a prˇeskupovat tak, abychom se snazˇili zohlednit bigramove´ cˇetnosti (naprˇ. PR, ST) a samohla´skove´ a souhla´skove´ vazby, a to ve vsˇech rˇa´dcı´ch najednou. Postupneˇ tedy k sobeˇ prˇikla´da´me vhodne´ sloupky, azˇ dostaneme cele´ bloky otevrˇene´ho textu (cˇte se po rˇa´dcı´ch). Bloky pak jen prˇeskupı´me a ma´me hledany´ vy´sledek. 5. Pokud hovorˇ´ıme o u´plne´ tabulce, myslı´me tı´m doplneˇnı´ poslednı´ho rˇa´dku tabulky vhodny´mi znaky tak, aby byl u´plny´. V na´sledujı´cı´m prˇ´ıkladu byl otevrˇeny´ text na konci doplneˇn znaky XX. Prˇ´ıklad 3.5 Je da´n sˇifrovy´ text o 60 znacı´ch OTSEC NCNUX ATONO TOUTO KXUJU AILBX UVPTD HSEOL KYREN EPSUK ZELID RZPAU - urcˇı´me velikosti tabulky, mozˇne´ tabulky : 15 ∗ 4, 20 ∗ 3, 10 ∗ 6, 6 ∗ 10 a vyzkousˇ´ıme jednotlive´ tabulky: – rozmeˇr 20 ∗ 3, ocˇeka´vany´ pomeˇr 8/12 OECXOTTXULUTSLREUEDP 8/12 TCNANOOUABVDEKEPKLRA 8/12 SNUTOUKJIXPHOYNSZIZU 8/12 – rozmeˇr 15 ∗ 4, ocˇeka´vany´ pomeˇr 6/9 OCUOOKUBPSKNULZ 6/9 TNXNUXAXTEYEKIP 6/9 SCAOTUIUDORPZDA 7/8 ENTTOJLVHLESERU 5/10 – rozmeˇr 10 ∗ 6, ocˇeka´vany´ pomeˇr 4/6 OCOTUUSRUD 5/5 TNNOAVEEKR 4/6 SUOKIPONZZ 4/6 EXTXLTLEEP 3/7 CAOUBDKPLA 4/6 NTUJXHYSIU 4/6
50
– rozmeˇr 6 ∗ 10, ocˇeka´vany´ pomeˇr 2, 4/3, 6 OAKUKZ 3/3 TTXVYE 2/4 SOUPRL 2/4 ENJTEI 3/3 COUDND 2/4 NTAHER 2/4 COISPZ 2/4 NULESP 2/4 UTBOUA 4/2 XOXLKU 2/4 Nejpravdeˇpodobneˇjsˇ´ımi tabulkami jsou tabulky s rozmeˇry 20 ∗ 3 a 6 ∗ 10, na´sledujı´ rozmeˇry 10 ∗ 6 a nejhu˚rˇe z testu vysˇel rozmeˇr 15 ∗ 4. Spra´vny´ rozmeˇr je 6 ∗ 10. Vzhledem k male´mu pocˇtu sloupcu˚ jizˇ nenı´ proble´m je spra´vneˇ serˇadit UKAZKO VYTEXT PROLUS TENIJE DNODUC HETRAN SPOZIC ESUPLN OUTABU LKOUXX a dostaneme hledany´ otevrˇeny´ text: UKAZKOVY TEXT PRO LUSTENI JEDNODUCHE TRANSPOZICE S UPLNOU TABULKOU XX . 2 Dalsˇ´ımi jednoduchy´mi kryptoanalyticky´mi postupy se nebudeme zaby´vat, jejich popis lze nale´zt naprˇ. v [3], [9].
Shrnutı´ kapitoly 3.4 V te´to podkapitole jsme si uka´zali princip lusˇteˇnı´ jednoduche´substituce a permutace.
?
Ota´zky ke kapitole 3.4 1. Vylusˇteˇte tento sˇifrovy´ text (jedna´ se o jednoduchou transpozici), nalezneˇte klı´cˇ (permutace). Je pouzˇita mezina´rodnı´ abeceda o 26 znacı´ch A, ..., Z bez mezery. IRJYE VDIPI AVIVZ NTUKM EORZN EOTYE KKLPI TTNNC EIPAE COSMN EOPRL KEPEP LAPTE NNEDO SOTNK ENOPT LBOAO TROVR OEEIN REEEK UTSHX EOORM YIJAJ PZOED DEDOD UCSTS ONZOA IKSCU JPPES NISBV FEIIK AEUVU EJOOO DNMKS EORKB YMOAU ELPNO DKOOO JUNST ZIUOU EEJVG EEDZA ACEDM KKEEI RNETV
51
2. Vylusˇteˇte tento sˇifrovy´ text (jedna´ se o jednoduchou substituci), nalezneˇte klı´cˇ (prˇevodova´ tabulka). Je pouzˇita mezina´rodnı´ abeceda o 26 znacı´ch A, ..., Z bez mezery. UFTAL OTCSF CILDO TGLUL JHSFN PZIHF NBGZU FTALP ZRZOB NCHSF NQBZA ZFZGX ZWOZG OLPZX AHBHU FTALP ZXIHJ OTWZJ HFAZD NDTOS BZLFN WCHPR ZPHCI TUXHI ZCITD ZSAWT BCHSF NDNFT ALPZG ZGZPZ WZIZD NQAHS WZOTP TCOZJ RZHWT UBTPZ HJOZW TUBHB LHJUB ALOTP ZWLUB TOLXL JZOZI LADLP TCPNG SGDNU ZOLOL ULQIT DHUBX IHJOT WZDHJ HSRZG OLPQH SGZXI HJOTW ZRZXA ZUBLA ILOZD CHJOL QZUFZ ASXAT AHGQI LJONW CXAHW ZUZWC PHCHS DGOTQ LBTOZ FZGXZ WOZIL BQNRL QHOLX ARZJO ZSATO BLQUZ PHCHS UBLBT BGDRZ JIZCH SFNJA SCHBO ZRZJH DLBNP TDNRP SBZXI HJOTW ZSQIL JLPZJ HHBZD AZONW CJNWC LRTWT WCHFL ISOZF HBDSG LDAZO NWCOZ XAHXS UBONW CHFLI ZWCUZ XIHJO TWZBG DGLXL ATGDI LUBZO ZDCHJ OZRZS IHGZO TDXHI NZBNI ZOHDN WCULW WTWCO ZRDCH JOZRU TPTHF LINGS UBLDL RTBAL JTWOZ XIZBZ OZQHU TWQNO ZRXHG JZRTJ ASCNJ ZOXHU FZASP LRTFN BCHSF NGXAL WHDLO NEEEE
Prˇedcha´zejı´cı´ Vy´let do historie
Obsah Nahoru
52
Dalsˇ´ı Symetricka´ kryptografie
Prˇedcha´zejı´cı´ Maly´ u´vod do kryptoanaly´zy
Obsah
Dalsˇ´ı Blokove´ a proudove´ sˇifry
Kapitola 4
Symetricka´ kryptografie Obsah 4.1 Blokove´ a proudove´ sˇifry . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Blokove´ sˇifry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54 55
4.1.2 Proudove´ sˇifry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Rezˇimy cˇinnosti symetricky´ch sˇifer . . . . . . . . . . . . . . . . . . . . 4.2.1 Electronic Codebook Mode (ECB) . . . . . . . . . . . . . . . . . .
56 59 59
4.2.2 Cipher Block Chaining (CBC) . . . . . . . . . . . . . . . . . . . . . 4.2.3 Cipher-Feedback Mode (CFB) . . . . . . . . . . . . . . . . . . . .
60 62
4.2.4 Output-Feedback Mode (OFB) . . . . . . . . . . . . . . . . . . . . 4.2.5 Counter mode (CRT) . . . . . . . . . . . . . . . . . . . . . . . . . .
62 64
4.3 Algoritmus DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 TripleDES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67 76
4.4 Algoritmus AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
V te´to kapitole se sezna´mı´me s principem symetricky´ch algoritmu˚, s rezˇimy, ve ktery´ch tyto algoritmy mohou pracovat. Blı´zˇe se sezna´mı´me se dveˇma nejvy´znamneˇjsˇ´ımi symetricky´mi algoritmy DES a AES.
Prˇedcha´zejı´cı´ Maly´ u´vod do kryptoanaly´zy
Obsah Nahoru
53
Dalsˇ´ı Blokove´ a proudove´ sˇifry
Prˇedcha´zejı´cı´ Symetricka´ kryptografie
4.1
Obsah
Dalsˇ´ı Rezˇimy cˇinnosti symetricky´ch sˇifer
Blokove´ a proudove´ sˇifry ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt definovat za´kladnı´ vlastnosti blokovy´ch a proudovy´ch sˇifer a vyjmenovat jejich vy´hody a nevy´hody.
Symetricke´ sˇifrovacı´ algoritmy pouzˇ´ıvajı´ k sˇifrova´nı´ a desˇifrova´nı´ (decryption) jeden a tenty´zˇ tajny´ klı´cˇ pevne´ de´lky. Existujı´ symetricke´ algoritmy dvou typu˚: proudove´, ktere´ zpracova´vajı´ otevrˇeny´ text bit po bitu nebo bajt po bajtu, a blokove´ algoritmy, ktere´ zpracova´vajı´ otevrˇeny´ text po n-bitovy´ch blocı´ch. Na obr. 4.1 je schematicky zna´zorneˇn symetricky´ kryptosyste´m. Vy´hody symetricke´ kryptografie (da´le take´ SK) jsou na´sledujı´cı´: • symetricke´ algoritmy jsou rychlejsˇ´ı nezˇ asymetricke´ (da´le take´ ASK), • rychla´ hardwarova´ implementace (v prˇ´ıpadeˇ blokovy´ch algoritmu˚ i softwarova´) • relativneˇ „kra´tke´“ klı´cˇe (viz tabulka 4.1), • mohou by´t vyuzˇity jako za´kladnı´ prvek pro konstrukci ru˚zny´ch kryptograficky´ch mechanismu˚ (pseudona´hodne´ genra´tory, digita´lnı´ podpisy, MAC...). Nevy´hody symetricke´ kryptografie: • na tajne´m klı´cˇi se musı´ obeˇ strany dohodnout a klı´cˇ musı´ by´t obeˇma stranami udrzˇova´n v tajnosti, • management klı´cˇu˚ je velmi na´rocˇny´ (generova´nı´, distribuce, uchova´va´nı´), • klı´cˇ by meˇl by´t cˇasto meˇneˇn, • velky´ pocˇet klı´cˇu˚ (mezi N u´cˇastnı´ky, kdy chce komunikovat kazˇdy´ u´cˇastnı´k s kazˇdy´m utajeneˇ pomocı´ symetricke´ho algoritmu, je pocˇet tajny´ch klı´cˇu˚ roven (N ∗ (N − 1))/2), • digita´lnı´ podpis zalozˇeny´ na SK vyzˇaduje velky´ „klı´cˇ“ nebo du˚veˇryhodnou trˇetı´ stranu.
54
E
A
m
Algoritmus e
c = ek (m)
´ tocˇnı´k u´tocˇı´ proti m, k U
Algoritmus d
Tajemstvı´ k
m = dk (c)
B
Tajemstvı´ k Zdroj k
Obra´zek 4.1: Symetricky´ kryptosyste´m.
4.1.1
Blokove´ sˇifry
Prˇi na´vrhu blokovy´ch sˇifer je potrˇebne´ splnit soucˇasneˇ neˇkolik, cˇastokra´t protichu˚dny´ch, pozˇadavku˚. Mezi za´kladnı´ patrˇ´ı: – bezpecˇnost - nejdu˚lezˇiteˇjsˇ´ı pozˇadavek, sˇifrovacı´ syste´m ma´ by´t odolny´ vu˚cˇi vsˇem zna´my´m u´toku˚m, – vy´kon - potrˇeba sˇifrovat a desˇifrovat data zpomaluje jejich zpracova´nı´. Proto ma´ by´t sˇifrovacı´ syste´m co nejefektivneˇjsˇ´ı. ˇ astokra´t mu˚zˇeme odolnost sˇifrovacı´ho algoritmu vu˚cˇi kryptoanaly´ze zvysˇovat prˇida´C va´nı´m dodatecˇny´ch vrstev zpracova´nı´ otevrˇene´ho textu. Tı´m ale algoritmus zpomalujeme. Na druhe´ straneˇ me´neˇ transformacı´ otevrˇene´ho textu sice urychlı´ sˇifrova´nı´, avsˇak mu˚zˇe vytvorˇit v sˇifrovacı´m syste´mu bezpecˇnostnı´ slabinu. Dalsˇ´ımi pozˇadavky na sˇifrovacı´ syste´m jsou pameˇt’ove´ na´roky, omezenı´ vyply´vajı´cı´ z cı´love´ platformy atd. Uvedene´ pozˇadavky se nety´kajı´ jen blokovy´ch sˇifer, ale jsou platne´ take´ pro proudove´ sˇifry (algoritmy) (a neˇktere´ dalsˇ´ı kryptograficke´ konstrukce). • Blokove´ sˇifry sˇifrujı´ soucˇasneˇ cely´ blok dat (obvykle 64 bitu˚), stejneˇ veliky´ je i vy´stupnı´ blok sˇifrove´ho textu. ˇ ifrovy´ text ma´ stejnou de´lku jako otevrˇeny´ text (zpra´va). • S • Velikost vstupnı´ho bloku blokove´ho algoritmu ma´ za´kladnı´ vy´znam pro bezpecˇnost cele´ho algoritmu. Pokud by velikost tohoto bloku byla mala´, pak by bylo mozˇne´ aplikovat tzv. slovnı´kovy´ u´tok, tj. sestavit kompletnı´ seznam (prˇi urcˇite´m klı´cˇi) vstupnı´ch a jim odpovı´dajı´cı´ch vy´stupnı´ch hodnot algoritmu (tj dvojic m, c). Proto je nezbytne´ volit velikost vstupnı´ho bloku takovou, aby vytvorˇenı´ takove´hoto slovnı´ku bylo nerea´lne´. V soucˇasnosti jsou pouzˇ´ıva´ny prˇeva´zˇneˇ blokove´ sˇifry zpracova´vajı´cı´ bloky o de´lce 64 bitu˚ (odpovı´dajı´cı´ slovnı´k by meˇl velikost 264 ) a vı´ce. • Klı´cˇe je trˇeba cˇasto meˇnit. • Mohou by´t pouzˇity ve vsˇech rezˇimech (viz 4.2). • By´vajı´ implementova´ny hardwaroveˇ i softwaroveˇ (softwarova´ implementace snazsˇ´ı nezˇ u proudovy´ch sˇifer).
55
De´lka klı´cˇe SK 56 64 80 112 128
De´lka klı´cˇe ASK 384 512 768 1792 2304
Tabulka 4.1: Porovna´nı´ de´lky klı´cˇu˚ (v bitech) se stejnou odolnostı´ vu˚cˇi u´toku hrubou silou. c = c1 c2 ... = = ek (m1 )ek (m2 )...
m = m1 m2 ... e
A
m = dk (c) = = dk (c1 )dk (c2 )... d
Tajemstvı´ k
B Tajemstvı´ k
Zdroj k Obra´zek 4.2: Blokova´ sˇifra.
• Blokove´ sˇifry je mozˇno vyuzˇit nejenom na zabezpecˇenı´ du˚veˇrnosti dat sˇifrova´nı´m, ale take´ pro konstrukci jiny´ch kryptograficky´ch mechanismu˚: hashovacı´ch funkcı´, MAC (Message Authentication Code) atd. (viz kap. 6). • Podrobneˇji se budeme veˇnovat dveˇma blokovy´m algoritmu˚m, algoritmu˚m DES (4.3) a AES (4.4), dalsˇ´ımi blokovy´mi sˇiframi jsou naprˇ.: Lucifer, FEAL, LOKI, GOST, CAST, Blowfish, IDEA, RC5 a SKIPJACK se zaby´vat nebudeme.
4.1.2
Proudove´ sˇifry
Proudove´ sˇifry (algoritmy) jsou sˇifrovacı´ algoritmy, ktere´ mohou zpracova´vat zpra´vu libovolne´ de´lky tak, zˇe sˇifrujı´ jejı´ jednotlive´ prvky tj. bity cˇi byty. Nemusı´ tedy shroma´zˇdit prˇed sˇifrova´nı´m nejprve cely´ blok dat. Konstrukce proudovy´ch sˇifer je v za´sadeˇ jednoducha´. Sesta´va´ z na´hodne´ho genera´toru (viz obr. 4.3), jehozˇ vy´stupnı´ hodnoty za´visı´ na hodnota´ch tajne´ho klı´cˇe k. Vy´stupnı´ posloupnost tohoto genera´toru je pak neˇjaky´m jednoduchy´m zpu˚sobem kombinova´na s otevrˇeny´m textem. Obvykle je k tomu vyuzˇ´ıva´n soucˇet modulo dva (XOR - exclusive OR). Desˇifrova´nı´ pak probı´ha´ analogicky´m zpu˚sobem. „Na´hodny´m“ genera´torem (v za´vislosti na hodnoteˇ tajne´ho startovacı´ho klı´cˇe) je opeˇt generova´na pseudona´hodna´ posloupnost (rˇ´ıkejme jı´ heslo) a secˇtenı´m modulo dva te´to posloupnosti a sˇifrove´ho textu dostaneme zpeˇt otevrˇeny´ text. Prˇi konstrukci prˇ´ıslusˇne´ho genera´toru hesla je samozrˇejmeˇ trˇeba vycha´zet z podmı´nek definujı´cı´ch kryptologickou odolnost cele´ho syste´mu. Naprˇ´ıklad je zcela rea´lne´ prˇedpokla´dat, zˇe v urcˇity´ch situacı´ch zna´ potencia´lnı´ protivnı´k jak sˇifrovy´ text, tak i jemu prˇ´ıslusˇejı´cı´ otevrˇeny´ text (tzv. known-plaintext attack). Potom jednoduchy´m zpu˚sobem zı´ska´ „cˇiste´“ heslo a stojı´ prˇed u´lohou, jak zı´skat k tomuto heslu prˇ´ıslusˇejı´cı´ tajny´ klı´cˇ. Pokud by tuto u´lohu vyrˇesˇil, mohl by si pak vygenerovat prˇ´ıslusˇne´ heslo i pro u´sek, kde adekva´tnı´ otevrˇeny´ text jemu zna´m nenı´. Samozrˇejmeˇ kvalitneˇ navrzˇeny´ algoritmus musı´ by´t schopen tomuto u´toku odolat.
56
Genera´tor bitu˚ ki
Strartovacı´ klı´cˇ K
XOR
Stejny´ proud
Genera´tor bitu˚ ki
+
Bity zpra´vy m = m1 m2 ...
+ Bity sˇifry c = ek1 (m1 )ek2 (m2 )...
Klı´cˇ K
XOR
Bity zpra´vy m = dk1 (c1 )ek2 (c2 )... = m1 m2 ...
Obra´zek 4.3: Proudova´ sˇifra.
• Proudove´ sˇifry jsou rychle´ a snadno se implementujı´. • Hodı´ se pro hardwarovou implementaci (VLSI). • Nesˇ´ırˇ´ı se chyby - 1 chyba v c zpu˚sobı´ 1 chybu v m. • Nenı´ ochrana proti manipulaci se sˇifrovy´m textem. • Opakovane´ pouzˇitı´ stejne´ho startovacı´ho klı´cˇe K ma´ za na´sledek generova´nı´ stejne´ho proudu klı´cˇu˚ ki . • Matematicky je lze analyzovat snadneˇji nezˇ blokove´. • Existujı´ asynchronnı´ a synchronnı´ proudove´ sˇifry, nejzna´meˇjsˇ´ı sˇifrou je sˇifra RC4, viz:
WWW: RC4
Shrnutı´ kapitoly 4.1 V te´to podkapitole byly uvedeny za´kladnı´ principy, na ktery´ch fungujı´ blokove´ a proudove´ algoritmy. Byl popsa´n princip konstrukce proudovy´ch sˇifer. Da´le podkapitola obsahuje strucˇny´ vy´cˇet vy´hod a nevy´hod obou typu˚ symetricky´ch algoritmu˚.
?
Ota´zky ke kapitole 4.1 1. Jaky´ je za´kladnı´ rozdı´l mezi blokovy´mi a proudovy´mi sˇiframi? 2. K jake´mu u´cˇelu se prˇedevsˇ´ım symetricke´ algoritmy pouzˇ´ıvajı´? 3. Popisˇte princip slovnı´kove´ho u´toku. 4. Zjisteˇte jak velky´ blok dat zpracova´vajı´ neˇktere´ blokove´ algoritmy (naprˇ. Blowfish, IDEA).
57
Prˇedcha´zejı´cı´ Symetricka´ kryptografie
Obsah Nahoru
58
Dalsˇ´ı Rezˇimy cˇinnosti symetricky´ch sˇifer
Prˇedcha´zejı´cı´ Blokove´ a proudove´ sˇifry
4.2
Obsah
Dalsˇ´ı Algoritmus DES
Rezˇimy cˇinnosti symetricky´ch sˇifer ˇ asova´ na´rocˇnost kapitoly: 60 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt vyjmenovat rezˇimy cˇinnosti symetricky´ch algoritmu˚, popsat jejich princip, definovat jejich vy´hody a nevy´hody.
Existujı´ dalsˇ´ı pozˇadavky na kryptosyste´m, nezˇ jen ty, ktere´ jsme jizˇ uvedli. Pozˇadujeme, aby se opakujı´cı´ se vzorky otevrˇene´ho textu v sˇifrove´m textu skry´valy, aby byl vstup pro algoritmus na´hodny´ (naprˇ. na´hodne´ generova´nı´ klı´cˇe), aby byla manipulace s otevrˇeny´m textem prostrˇednictvı´m chyb v sˇifrove´m textu obtı´zˇna´, aby bylo mozˇno opakovaneˇ pouzˇ´ıt tenty´zˇ tajny´ klı´cˇ pro sˇifrova´nı´ vı´ce nezˇ jedne´ zpra´vy. Proto jsou za´kladnı´ symetricke´ algoritmy doplnˇova´ny neˇjaky´m druhem zpeˇtne´ vazby a jednoduchy´mi pomocny´mi operacemi. Tyto doplnˇky zˇa´dny´m zpu˚sobem neovlivnˇujı´ saˇ ´ıka´me, zˇe algoritmus pracuje v neˇktere´m z kryptograficky´ch rezˇimu˚ . motny´ algoritmus. R
4.2.1
Electronic Codebook Mode (ECB)
Electronic Codebook Mode je za´kladnı´m, nejjednodusˇsˇ´ım a nejrychlejsˇ´ım rezˇimem (viz obr. 4.4), jedna´ se o prˇ´ımocˇare´ pouzˇitı´ blokove´ sˇifry, kdy je blok otevrˇene´ho textu sˇifrova´n do bloku sˇifrove´ho textu, analogicky to platı´ pro desˇifrova´nı´. Tento postup se da´ vyja´drˇit takto: necht’ i ≥ 1, ci = ek (mi ), mi = dk (ci ). Vlastnosti rezˇimu ECB: • Nevy´hodou rezˇimu je to, zˇe opakovany´ blok je sˇifrova´n shodneˇ - lze budovat tzv. ko´dovou knihu (ulozˇ´ıme otevrˇeny´ text a jemu odpovı´dajı´cı´ sˇifru) odposlechem bez znalosti klı´cˇe (opakovane´ bloky nejsou vza´cne´ - naprˇ. stereotypnı´ zacˇa´tky a konce zpra´vy). Navı´c lze nahrazovat bloky sˇifrove´ho textu jiny´mi bloky (tzv. u´tok replikacı´ ), nebo je mu˚zˇe u´tocˇnı´k vynechat atd. Nezasˇifrovany´ text v tomto rezˇimu nenı´ skryt. • Vy´hodou rezˇimu na druhe´ straneˇ je to, zˇe vzhledem k tomu, zˇe je kazˇdy´ blok sˇifrova´n a desˇifrova´n neza´visle, cely´ proces mu˚zˇe by´t paralelizova´n. Tento rezˇim je hodny´ pro poruchova´ spojenı´ (zmeˇna nebo ztra´ta jednoho bloku neovlivnı´ sˇifrova´nı´ ostatnı´ch bloku˚, zmeˇna jednoho bitu sˇifrove´ho textu ovlivnı´ po desˇifrova´nı´ jen prˇ´ıslusˇny´ blok otevrˇene´ho textu).
59
M1 K
K
E
M2 K
Mn ....
E
K
E
C1
C2
Cn
C1
C2
Cn
D
K
....
D
M1
K
M2
D Mn
Obra´zek 4.4: Rezˇim ECB.
• U tohoto rezˇimu je trˇeba rˇesˇit tzv. padding - doplneˇnı´ poslednı´ho bloku zpra´vy m, ktery´ mu˚zˇe by´t kratsˇ´ı nezˇ je de´lka bloku. Naprˇ. je-li velikost bloku otevrˇene´ho textu n = 64 a poslednı´ blok ma´ velikost jen 24 bitu˚, doplnı´me poslednı´ch 5 bytu˚ takto: 4 byty doplnı´me nulama a poslednı´ pa´ty´ cˇı´slem 5, ktere´ reprezentuje pocˇet doplneˇny´ch bytu˚. Doporucˇuje se ale prˇida´vat vzˇdy jesˇteˇ jeden blok, i kdyzˇ je velikost poslednı´ho 64 bitu˚. Tento prˇidany´ blok mu˚zˇe slouzˇit naprˇ. k ulozˇenı´ prˇ´ıznaku konce otevrˇene´ho textu. • Protozˇe u´tocˇnı´k mu˚zˇe modifikovat, odstranit nebo zopakovat libovolny´ blok sˇifrove´ho textu znalosti klı´cˇe nebo algoritmu, doporucˇuje se tento rezˇim pouzˇ´ıvat pro sˇifrova´nı´ kra´tky´ch zpra´v (rozesı´la´nı´ klı´cˇu˚ atd.).
4.2.2
Cipher Block Chaining (CBC)
ˇ esˇenı´m uvedeny´ch nevy´hod rezˇimu ECB je Cipher Block Chaining Mode, ktery´ pouzˇ´ıva´ R tzv. chaining (zrˇeteˇzenı´). Zrˇeteˇzenı´ je v podstateˇ mechanismus zpeˇtne´ vazby, kdy je kazˇdy´ blok sˇifrove´ho textu pouzˇit pro zasˇifrova´nı´ dalsˇ´ıho bloku otevrˇene´ho textu (sˇifrovy´ text bloku je kontextoveˇ za´visly´). To znamena´, zˇe je kazˇdy´ blok sˇifrove´ho textu za´visly´ na vsˇech prˇedesˇly´ch blocı´ch otevrˇene´ho textu. Blok mi je XORova´n se sˇifrovy´m textem bloku mi−1 prˇed sˇifrova´nı´m, analogicky pro desˇifrova´nı´: ci = ek (mi ⊕ ci−1 ), mi = ci−1 ⊕ dk (ci ), pro i > 1. Pro sˇifrova´nı´/ desˇifrova´nı´ prvnı´ho bloku se pouzˇ´ıva´ inicializacˇnı´ vektor IV (pseudona´hodna´ data): c1 = ek (m1 ⊕ IV ), m1 = IV ⊕ dk (c1 ). Vlastnosti rezˇimu CBC: • Opakovany´ blok je sˇifrova´n odlisˇneˇ, pouze kdyzˇ je odlisˇny´ neˇktery´ z prˇedchozı´ch bloku˚ m. Nesˇifrovany´ text je skry´va´n (je XORova´n).
60
M1
M2
Mn
IV Cn-1 K
K
E
K
....
E
K
E
C1
C2
Cn
C1
C2
Cn
D
K
....
D
K
D
IV Cn-1 M1
M2
Mn
Obra´zek 4.5: Rezˇim CBC.
• Chyba v jednom bitu m tolik nevadı´, po desˇifrova´nı´ se v m objevı´ zase jen tato chyba. Chyba v c je obvyklejsˇ´ı (poruchovy´ spoj, chyba na pameˇt’ove´m me´diu) chyba v jednom bitu c ovlivnı´ jeden blok a jeden odpovı´dajı´cı´ bit na´sledujı´cı´ho bloku otevrˇene´ho textu. Tento jev nazy´va´ se error extension (error propagation). Z te´to chyby se syste´m zotavı´ - CBC je samoopravny´ rezˇim. Pokud vsˇak je bit do sˇifrove´ho textu c prˇida´n cˇi z nı´ ztracen, z te´to chyby se syste´m nezotavı´. • Inicializacˇnı´ vektor nemusı´ by´t skry´va´n, prˇesto se doporucˇuje jej zabezpecˇit stejneˇ jako klı´cˇ. By´va´ prˇena´sˇen jako nulty´ blok sˇifrove´ho textu, mu˚zˇeme jej zasˇifrovat naprˇ. v ECB rezˇimu. Je du˚lezˇite´ zapbezpecˇit jeho integritu, protozˇe zmeˇny bitu˚ v IV zpu˚sobı´ po desˇifrova´nı´ zmeˇny v m1 . Shodne´ zpra´vy jsou zmeˇnou sˇifrova´ny odlisˇneˇ. ˇ ifrova´nı´ je neparalelizovatelne´, desˇifro• Je snadno softwaroveˇ implementovatelny´. S va´nı´ ano. • Vhodny´ pro sˇifrova´nı´ souboru˚ (vzhledem k zrˇeteˇzenı´ se hodı´ pro sˇifrova´nı´ zpra´v delsˇ´ıch nezˇ 64 bitu˚). • Bezpecˇneˇjsˇ´ı nezˇ ECB.
61
4.2.3
Cipher-Feedback Mode (CFB)
U rezˇimu Cipher-Feedback Mode se se (na rozdı´l od dvou prˇedchozı´ch rezˇimu˚) nemusı´ zpra´va rozdeˇlovat na bloky o velikosti odpovı´dajı´cı´ velikosti bloku blokove´ sˇifry. Mı´sto toho se se zpra´vou pracuje jako s plynuly´m proudem dat o libovolne´ velikosti. V obecne´m prˇ´ıpadeˇ musı´ by´t pro rezˇim CFB stanoveny dva parametry j a n, kde j odpovı´da´ de´lce u´seku˚, na ktere´ je zpra´va rozdeˇlena (cˇasto j = 8 nebo se j = k), n reprezentuje velikost bloku blokove´ sˇifry. To na´m umozˇnˇuje, aby blokove´ sˇifry pracovaly jako proudove´. Blokova´ sˇifra v tomto rezˇimu slouzˇ´ı jako genera´tor pseudona´hodne´ posloupnosti, ktera´ je pouzˇita pro zasˇifrova´nı´ otevrˇene´ho textu operacı´ XOR. Tento genera´tor je ovlivnˇova´n zpeˇtnou vazbou zı´skanou ze sˇifrove´ho textu. Vlastnosti rezˇimu CFB: • Pro sˇifrova´nı´ a desˇifrova´nı´ se pouzˇ´ıva´ stejny´ algoritmus (na obr. 4.6 je oznacˇen E). • Bity klı´cˇe jsou funkcı´ prˇedchozı´ch bitu˚ sˇifrove´ho textu. • Opakovane´ vzorky otevrˇene´ho textu neda´vajı´ opakovane´ vzorky v textu sˇifrove´m. • Vstupem algoritmu je na´hodny´ text - jedinecˇny´ IV , ktery´ je nutno generovat novy´ pro kazˇdou novou zpra´vu. ˇ ifrova´nı´ je neparalelizovatele´, desˇifrova´nı´ ano. • S • Pouzˇ´ıva´ se pro prˇenosy proudove´ povahy, naprˇ. pro sˇifrova´nı´ znakovy´ch termina´lu˚ (8-bitovy´ CFB), da´le naprˇ. pro autentizaci. • Vı´ce nezˇ jedna zpra´va mu˚zˇe by´t sˇifrova´na stejny´m klı´cˇem. • Zmeˇna porˇadı´ bloku˚ sˇifrove´ho textu ovlivnı´ desˇifrova´nı´. Korektnı´ desˇifrova´nı´ bloku vyzˇaduje korektnı´ prˇedcha´zejı´cı´ blok sˇifrove´ho textu. • Chyba v bitu sˇifrove´ho textu ovlivnı´ odpovı´dajı´cı´ bit otevrˇene´ho textu a na´sledujı´cı´ cely´ blok. • Vneˇjsˇ´ı zpeˇtna´ vazba algoritmu v rezˇimu CFB zvysˇuje jeho na´chylnost na chybovost zpu˚sobovanou poruchami spoje. • Podobneˇ jako CBC ma´ i CFB „samosynchronizujı´cı´“ vlastnost, protozˇe ztra´ta cele´ho bloku sˇifrove´ho textu zaprˇ´ıcˇinı´ chybne´ desˇifrova´nı´ na´sledujı´cı´ho bloku, ale dalsˇ´ı bloky jsou uzˇ desˇifrova´ny spra´vneˇ.
4.2.4
Output-Feedback Mode (OFB)
Dalsˇ´ım rezˇimem, ktery´ umozˇnˇuje pouzˇ´ıvat blokovy´ algoritmus jako proudovy´ je rezˇim Output-Feedback Mode. Vlastnosti rezˇimu OFB: • Bity klı´cˇe jsou funkcı´ prˇedchozı´ch bitu˚ sˇifrove´ho textu. • Opakovane´ vzorky otevrˇene´ho textu neda´vajı´ opakovane´ vzorky v textu sˇifrove´m. • Genera´tor nenı´ ovlivnˇova´n sˇifrovy´m textem, ale pouze vy´stupem samotne´ho genera´toru.
62
IV Zpetna vazba 64-j bitu|j bitu+
Cn-1
Zpetna vazba 64-j bitu|j bitu
Zpetna vazba 64-j bitu|j bitu
64
K
K
E
K
E
E
64 Vyber|vymaz j bitu|64-j bitu
Vyber|vymaz j bitu|64-j bitu
.... j Vyber|vymaz bitu|64-j bitu
j j j
C2
C1
M1
M2
Mn
IV Zpetna vazba 64-j bitu|j bitu
Cn
Zpetna vazba 64-j bitu|j bitu
Cn-1
Zpetna vazba 64-j bitu|j bitu
64
K
K
E
K
E
E
64 Vyber|vymaz j bitu|64-j bitu
Vyber|vymaz j bitu|64-j bitu
.... j Vyber|vymaz bitu|64-j bitu
j j j
M1
C2
C1 M2
Cn Mn
Obra´zek 4.6: Rezˇim CFB.
63
• Vnitrˇnı´ zpeˇtna´ vazba - jejı´ mechanismus je neza´visly´ na m i c. • Stav Si je neza´visly´ na M , C. • Vstupem algoritmu je na´hodny´ text - jedinecˇny´ IV . • Vı´ce nezˇ jedna zpra´va mu˚zˇe by´t sˇifrova´na se stejny´m klı´cˇem ˇ ifrova´nı´ je neparalelizovatele´, desˇifrova´nı´ take´. • S • Je vhodny´ pro vysokorychlostnı´ syste´my s neprˇ´ıpustny´m sˇirˇenı´m chyb (satelitnı´ syste´my). • Zmeˇna bitu sˇifrove´ho textu ovlivnı´ prˇ´ımo otevrˇeny´ text. • Chyba v bitu sˇifrove´ho textu ovlivnı´ pouze odpovı´dajı´cı´ bit otevrˇene´ho textu, ale ztra´ta bloku (bitu) sˇifrove´ho textu vede k chybne´mu desˇifrova´nı´a tedy ke ztra´teˇ synchronizace prˇenosu . • Vneˇjsˇ´ı zpeˇtna´ vazba algoritmu v rezˇimu OFB nezvysˇuje jeho na´chylnost na chybovost zpu˚sobovanou poruchami spoje, ale je na´chylneˇjsˇ´ı k manipulaci se zpra´vou (pokud u´tocˇnı´k zna´ otevrˇeny´ text, umı´ vypocˇı´tat proud bloku˚ a zkonstruovat sˇifrovy´ text k otevrˇene´mu textu, ktery´ si zvolı´ (stejne´ de´lky).
4.2.5
Counter mode (CRT)
Rezˇim Counter mode pouzˇ´ıva´ posloupnost tzv. cˇı´tacˇu˚ T1 , T2 , ..., Tn , pro ktere´ platı´, zˇe kazˇdy´ blok Ti je jiny´ nezˇ vsˇechny ostatnı´. Rezˇim CRT mu˚zˇe by´t definova´n takto: Oi = ek (Ti ) pro i = 1, .., n − 1, ci = mi ⊕ Oi pro i = 1, .., n − 1, cn = mn ⊕ msbu (On ), Oi = ek (Ti ) pro i = 1, .., n − 1, mi = ci ⊕ Oi pro i = 1, .., n − 1, mn = cn ⊕ msbu (On ). Pro poslednı´ blok dat, ktery´ mu˚zˇe mı´t jen u bitu˚ (msb - most significant bits - nejvy´znamneˇjsˇ´ı bity (nejpraveˇjsˇ´ı)), se neprova´dı´ padding. Operace XOR se provede jen pro teˇchto u platny´ch bitu˚.
Shrnutı´ kapitoly 4.2 Tato podkapitola obsahuje popis za´kladnı´ kryptograficky´ch rezˇimu˚, ve ktery´ch pracujı´ symetricke´ algoritmy. Teˇmito rezˇimy jsou rezˇimy ECB, CBC, CFB, OFB a Counter rezˇim.
?
Ota´zky ke kapitole 4.2 1. Procˇ se mohou rezˇimy CFB a OFB pouzˇ´ıvat pro blokove´ algoritmy? 2. Procˇ se nepovazˇuje rezˇim ECB za bezpecˇny´, jake´ jsou jeho hlavnı´ nedostatky? 3. Jaky´ je za´kladnı´ rozdı´l mezi rezˇimy CFB a OFB? 4. CBC rezˇim ma´ vlastnost zvanou error extension. Pokud je porusˇen prˇena´sˇeny´ blok c1 , obvykle to ma´ po desˇifrova´nı´ vliv na bloky otevrˇene´ho textu m1 , m2 . Jsou postizˇeny i jine´ bloky za blokem m2 ? Prˇedpokla´dejme, zˇe existuje chyba v jednom bitu origina´lnı´ho otevrˇene´ho textu v bloku m1 . Na kolik bloku˚ sˇifrove´ho textu ma´ tato chyba vliv? Jaky´ efekt tato chyba prˇinese prˇ´ıjemci sˇifrove´ho textu?
64
IV Zpetna vazba 64-j bitu|j bitu+
Zpetna vazba 64-j bitu|j bitu
On-1
Zpetna vazba 64-j bitu|j bitu
64
K
K
E
K
E
E
64 Vyber|vymaz j bitu|64-j bitu
Vyber|vymaz j bitu|64-j bitu
.... j Vyber|vymaz bitu|64-j bitu
j j j
C1
C2
M1
Cn
M2
Mn
IV Zpetna vazba 64-j bitu|j bitu
Zpetna vazba 64-j bitu|j bitu
On-1
Zpetna vazba 64-j bitu|j bitu
64
K
K
E
K
E
E
64 Vyber|vymaz j bitu|64-j bitu
Vyber|vymaz j bitu|64-j bitu
.... j Vyber|vymaz bitu|64-j bitu
C2
Cn
j j j
M1
C1 M2
Mn
Obra´zek 4.7: Rezˇim OFB.
65
Prˇedcha´zejı´cı´ Blokove´ a proudove´ sˇifry
Obsah Nahoru
66
Dalsˇ´ı Algoritmus DES
Prˇedcha´zejı´cı´ Rezˇimy cˇinnosti symetricky´ch sˇifer
4.3
Obsah
Dalsˇ´ı Algoritmus AES
Algoritmus DES ˇ asova´ na´rocˇnost kapitoly: 60 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt popsat princip Feistelovy´ch algoritmu˚. Da´le budete umeˇt popsat princip algoritmu DES, jeho jednotlivy´ch kroku˚. Da´le budete umeˇt vysveˇtlit princip algoritmu TripleDES.
Jak uzˇ bylo zmı´neˇno drˇ´ıve, v soucˇasnosti se pouzˇ´ıvajı´ algoritmy, ktere´ pouzˇ´ıvajı´ za´rovenˇ jak substituci tak permutaci a rˇ´ıka´ se jim slozˇene´ sˇifry nebo take´ substitution-permutation network. Nejveˇtsˇ´ı skupinu blokovy´ch algoritmu˚ tvorˇ´ı tzv. iterovane´ algoritmy. Jejich princip spocˇı´va´ v tom, zˇe definujeme za´kladnı´ transformaci, kterou potom opakujeme. Tomuto opakova´nı´ se rˇ´ıka´ kolo, iterace nebo take´ neprˇ´ılisˇ cˇesky runda. V jednotlivy´ch kolech obvykle vstupujı´ do vy´pocˇtu podklı´cˇe sˇifrovacı´ho klı´cˇe - v prvnı´m kole podklı´cˇ k1 , v druhe´m k2 atd. Podklı´cˇe jsou rˇeteˇzce bitu˚ deterministicky odvozene´ z pu˚vodnı´ho klı´cˇe. Proces odvozenı´ podklı´cˇu˚ se nazy´va´ pla´nova´nı´ klı´cˇe (key-scheduling). Mnoho symetricky´ch blokovy´ch algoritmu˚ patrˇ´ı mezi tzv. Feistelovy algoritmy, ktere´ jsou charakteristicke´ tı´m, zˇe struktura sˇifrovacı´ho a desˇifrovacı´ho algoritmu je stejna´, jen podklı´cˇe se prˇi desˇifrova´nı´ pouzˇ´ıvajı´ v opacˇne´m porˇadı´ nezˇ prˇi sˇifrova´nı´1 . Tyto Feistelovy sˇifry majı´ tyto vlastnosti (obr. 4.8): • prova´dı´ se celkem n kol, vsˇechny jsou identicke´. • blok zpra´vy mi se deˇlı´ na dveˇ poloviny Li , Ri . • Klı´cˇ k se deˇlı´ na podklı´cˇe ki . • Ja´drem algoritmu je funkce f (libovolneˇ slozˇita´), ktera´ se aplikuje na Ri pomocı´ ki takto: Li = Ri−1 , Ri = Li−1 ⊕ f (Ri−1 , ki ). • Kryptograficke´ vlastnosti algoritmu jsou urcˇeny funkcı´ f , ve ktere´ se uplatnˇujı´ tzv. S-boxy (substituce) a P-boxy (permutace). Data Encryption Standard je nejrozsˇ´ırˇeneˇjsˇ´ım symetricky´m algoritmem. Poprve´ byl publikova´n v roce 1975, standardizova´n byl Na´rodnı´m standardizacˇnı´m u´rˇadem USA (NBS) v roce 1977. Po poslednı´ certifikaci v r.1993 jeho certifika´t vyprsˇel v r. 1998 a v soucˇasnosti je jako standard pro symetrickou kryptografii vybra´n algoritmus Rijndael. Na´zev DES je podle normy ANSI, DEA-1 (Data Encryption Algorithm) podle normy ISO. 1
Existujı´ algoritmy s touto vlastnostı´, ktere´ ale nejsou Feistelovy sˇifry (naprˇ. IDEA viz [3])
67
Obra´zek 4.8: Sche´ma Feistelovy sˇifry.
M
uvodni permutace
Ek1
.....
k1
Ek16
zaverecna permutace
C
k16 k
Obra´zek 4.9: Obecny´ model DESu.
DES je blokova´ Feistelova sˇifra o velikosti bloku n = 64 bitu˚. De´lka klı´cˇe 56 bitu˚ (de´lka je 64 bitu˚, ale kazˇdy´ 8. bit je paritnı´, testuje se licha´ parita). Algoritmus ma´ celkem 16 kol (iteracı´) viz obr. 4.9. Algoritmus je zalozˇen na kombinaci substitucˇnı´ch a permutacˇnı´ch operacı´, pouzˇ´ıva´ jen standardnı´ aritmeticke´ a logicke´ operace. Bezpecˇnost algoritmu tkvı´ v klı´cˇi, ten by meˇl by´t nejle´pe pro kazˇde´ pouzˇitı´ jiny´. DES ma´ vlastnost nazy´vanou lavinovy´ efekt (avalanche effect), kterou by meˇl mı´t kazˇdy´ sˇifrovacı´ algoritmus - mala´ zmeˇna v otevrˇene´m textu nebo klı´cˇi (naprˇ. v jednom bitu otevrˇene´ho textu nebo klı´cˇe) ma´ vliv na mnoho bitu˚ sˇifrove´ho textu. Popis algoritmu: • Prˇi sˇifrova´nı´ musı´ zpra´va m nejprve projı´t u´vodnı´ permutacı´ IP (4.2). Vy´stup 64 bitu˚ z u´vodnı´ permutace je rozdeˇlen na dveˇ 32-bitove´ cˇa´sti L0 a R0 , ktere´ jsou vstupem pro prvnı´ kolo. Prava´ cˇa´st R0 se kopı´ruje prˇ´ımo do leve´ cˇa´sti L1 druhe´ho kola. Leva´ cˇa´st L0 vstupuje spolu s vy´stupem funkce f do exkluzivnı´ho logicke´ho soucˇtu, jehozˇ vy´stup tvorˇ´ı pravou cˇa´st R1 druhe´ho kola. Funkce f je transformacˇnı´ funkce Feistelova kryptosyste´mu. Ma´ dva vstupy a v prvnı´m kole vstupuje do funkce f prava´ cˇast’ R0 a podklı´cˇ k1 . Analogicky se prˇejde prˇes zby´vajı´cı´ch 15 kol. V za´veˇrecˇne´m kole se vy´stupy L16 a R16 bitoveˇ spojı´ a vstupujı´ do za´veˇrecˇne´ permutace IP −1 (4.12, 4.13). Vy´stup te´to permutace za´rovenˇ tvorˇ´ı vy´stup algoritmu DES, sˇifru c. ´ vodnı´ permutace IP a za´veˇrecˇna´ permutace IP −1 nemajı´ vliv na bezpecˇnost DESu, • U jsou snadno implementovatelne´ hardwaroveˇ, me´neˇ snadno softwaroveˇ, proto je neˇktere´ implementace vypousˇteˇjı´.
68
ˇ ifrovacı´ algoritmus. Obra´zek 4.10: DES - S
69
Obra´zek 4.11: Sche´ma funkce f.
58 60 62 64 57 59 61 63
50 52 54 56 49 51 53 55
42 44 46 48 41 43 45 47
IP 34 36 38 40 33 35 37 39
26 28 30 32 25 27 29 31
18 20 22 24 17 19 21 23
10 12 14 16 9 11 13 15
2 4 6 8 1 3 5 7
´ vodnı´ permutace. Tabulka 4.2: IP - U
70
´ vodnı´ permutace schematicky. Obra´zek 4.12: IP - U
Obra´zek 4.13: Za´veˇrecˇna´ permutace IP −1 .
• Kazˇde´ kolo si tvorˇ´ı tzv. podklı´cˇ ki . Tvorba podklı´cˇu˚ ki je realizovana´ tak, aby se prˇi desˇifrova´nı´ (viz obr. 4.15) tvorˇily stejne´ podklı´cˇe jako prˇi sˇifrova´nı´ (viz obr. 4.14), ale v prˇesneˇ v opacˇne´m porˇadı´. Klı´cˇ k prˇejde prˇes permutaci klı´cˇe P C − 1 viz tab. 4.3 a tvorˇ´ı tak vstup pro tvorbu podklı´cˇe k1 pro prvnı´ kolo. V kazˇde´m kole jsou bity klı´cˇe posunuty. Prˇi sˇifrova´nı´ takto: – bity jsou posouva´ny cyklicky o jeden nebo dva bity: pro LSi = 1, 2, 9, 16 se posouva´ o jeden bit doleva, pro LSi 6= 1, 2, 9, 16 se posouva´ o dva bity doleva. Prˇi desˇifrova´nı´ takto: – pro RSi se posouva´ cyklicky o 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 bitu˚ doprava. Pro kazˇdy´ podklı´cˇ ki je vybra´no 48 bitu˚ pomocı´ tzv. kompresnı´ premutace (Compression Permutation, viz tab. 4.4). • Vstupem do funkce f je polovina Ri , jejı´zˇ 32 bitu˚ je pomocı´ tzv. expanznı´ permutace (Expansion Permutation, 4.5) expandova´no na 48 bitu˚. Teˇchto 48 bitu˚ je secˇteno (XOR) se 48 bity prˇ´ıslusˇne´ho podklı´cˇe ki . Ja´drem funkce f (viz obr. 4.11) je substituce reprezentovana´ tzv. S-BOXy a permutacı´ P (tab. 4.7). • Princip S-boxu, nebo-li substitucˇnı´ho boxu si uka´zˇeme na prˇ´ıkladu, prvnı´ S-box reprezentuje tab. 4.6, dalsˇ´ı S-boxy mu˚zˇete najı´t naprˇ. na
WWW: S-boxu Vstupem do S-boxu je 6 bitu˚, vy´stupem jsou 4 bity naprˇ.: S1(100101)2 = (37)10 . Nejleveˇjsˇ´ı a nejpraveˇjsˇ´ı bit jsou indexem rˇa´dku (indexova´no od 0), tj. (11)2 = (3)10 . Vnitrˇnı´ 4 bity jsou indexem sloupce (indexova´no od 0), tj. (0010)2 = (2)1 0, S1ij = S132 = (8)10 = (1000)2 - vy´stup.
71
Obra´zek 4.14: Sche´ma generova´nı´ podklı´cˇu˚ (pro sˇifrova´nı´).
Tabulka 4.3: Permutace PC-1.
72
Tabulka 4.4: Permutace PC-2 (kompresnı´ permutace).
Obra´zek 4.15: Sche´ma generova´nı´ podklı´cˇu˚ (pro desˇifrova´nı´).
73
Tabulka 4.5: Expanznı´ permutace.
Tabulka 4.6: S-box 1.
Tabulka 4.7: Permutace P.
74
Obra´zek 4.16: DES - Desˇifrovacı´ algoritmus.
75
Slabe´ klı´cˇe 0000000 0000000 0000000 FFFFFFF FFFFFFF 0000000 FFFFFFF FFFFFFF Tabulka 4.8: Slabe´ klı´cˇe. Dvojice slaby´ch klı´cˇu˚ - semiweak keys 01FE01FE01FE01FE and FE01FE01FE01FE01 1FE01FE00EF10EF1 and E01FE01FF10EF10E 01E001E001F101F1 and E001E001F101F101 1FFE1FFE0EFE0EFE and FE1FFE1FFE0EFE0E 011F011F010E010E and 1F011F010E010E01 E0FEE0FEF1FEF1FE and FEE0FEE0FEF1FEF1 Tabulka 4.9: Slabe´ klı´cˇe (dvojice klı´cˇu˚) - semiweak keys.
Bezpecˇnost DESu - algoritmus DES byl kritizova´n z mnoha du˚vodu˚: • Maly´ klı´cˇ, u´tok hrubou silou vyzˇaduje testova´nı´ „pouhy´ch“ 256 mozˇny´ch klı´cˇu˚. V roce 1998 byl sestrojen prˇ´ıstroj DES-Cracker, jehozˇ cena byla 210000, byl schopen zkontrolovat 90 MLD klı´cˇu˚/sec, uva´deˇla se maxima´lnı´ doba lusˇteˇnı´ 9 dnı´. • Autorˇi DESu byli obvineˇni, zˇe v S-boxech ukryli neˇjaka´ tajna´ zadnı´ vra´tka pro sve´ pozdeˇjsˇ´ı nekale´ u´mysly (nebylo doka´za´no), na za´kladeˇ te´to kritiky byly S-boxy pozmeˇneˇny. • Existujı´ tzv. slabe´ klı´cˇe (Weak keys) - neˇktere´ klı´cˇe se po jedne´ iteraci (prˇi generaci podklı´cˇu˚) nemeˇnı´ a jsou stejne´ pro vsˇechny cykly algoritmu (hexadecima´lneˇ v tab. 4.8). • Semiweak Keys - neˇktere´ dvojice klı´cˇu˚ zpu˚sobı´, zˇe otevrˇeny´ text m je sˇifrova´n do identicke´ sˇifry c = m. Negeneruje se 16 ru˚zny´ch podklı´cˇu˚, ale jen 2 ru˚zne´ podklı´cˇe (hexadecima´lneˇ v tab. 4.9). • Pocˇet cyklu˚ algoritmu - kritika procˇ pra´veˇ 16 cyklu˚ algoritmu, ale bylo doka´za´no, zˇe vı´ce cyklu˚ nema´ zˇa´dny´ bezpecˇnostnı´ efekt a me´neˇ cyklu˚ zase zpu˚sobı´ snadneˇjsˇ´ı prolomenı´ sˇifry. • Kromeˇ u´toku hrubou silou se proti DESu pouzˇily noveˇjsˇ´ı a „chytrˇejsˇ´ı“ u´toky: diferencˇnı´ kryptoanaly´za (prova´dı´ rozbor zmeˇn ktere´ nasta´vajı´ ve vy´sledne´ sˇifrˇe a jejich za´vislosti na (maly´ch) zmeˇna´ch sˇifrovane´ho otevrˇene´ho textu) a linea´rnı´ kryptoanaly´za. Jejich vy´klad vsˇak prˇesahuje ra´mec tohoto materia´lu.
4.3.1
TripleDES
Popula´rnı´ prˇ´ıstup ke zvy´sˇenı´ bezpecˇnosti symetricky´ch algoritmu˚ je takovy´, zˇe se stejny´ algoritmus aplikuje dvakra´t takto: c = ek2 (ek1 (m)), m = dk1 (dk2 (m)).
76
Ale, jak uzˇ to v kryptografii by´va´, vy´sledky jsou cˇasto jine´ nezˇ jsou nasˇe ocˇeka´va´nı´. Takto aplikovany´ algoritmus nenı´ odolny´ proti u´toku meet-in-the-middle, jehozˇ princip si vysveˇtlı´me. Oznacˇme X = ek1 (m) = dk2 (c). Meˇjme zna´mou dvojici (m1 , c1 ). Nejprve zasˇifrujme otevrˇeny´ text m1 vsˇemi 256 hodnotami klı´cˇe k1 (resp. 264 ). Zı´skane´ sˇifrove´ texty ulozˇme do tabulky a setrˇid’me podle hodnoty X. Potom desˇifrujme na´m zna´my´ sˇifrovy´ text c1 vsˇemi 256 hodnotami klı´cˇe k2 . Kazˇdou zı´skanou hodnotu ihned hledejme v tabulce. Pokud ji nalezneme, pouzˇijme prˇ´ıslusˇne´ klı´cˇe k1 , k2 na jinou dvojici (m2 , c2 ). Pokud zı´ska´me korektnı´ c2 , nasˇli jsme korektnı´ dvojici klı´cˇu˚. Pokud pouzˇijeme toto dvojite´ sˇifrova´nı´ na DES, klı´cˇ ma´ sice velikost 2112 (resp. 2124 ). Tento u´tok ale potrˇebuje jen 256 pokusu˚, aby byl u´speˇsˇny´. Proto nenı´ dvojite´ sˇifrova´nı´ bezpecˇnou alternativou k sˇifrova´nı´ s jednı´m klı´cˇem. Bezpecˇneˇjsˇ´ı je jizˇ tzv. trojite´ sˇifrova´nı´. Algoritmus TripleDES, se pouzˇ´ıva´ ve dvou varianta´ch: • se dveˇma ru˚zny´mi klı´cˇi (de´lka klı´cˇe je 112 bitu˚, cozˇ je de´lka bezpecˇna´: c = ek1 (dk2 (ek1 (m))), m = dk1 (ek2 (dk1 (m))), • se trˇemi ru˚zny´mi klı´cˇi (Merklova varianta, de´lka klı´cˇe je 168 bitu˚, cozˇ je de´lka bezpecˇna´): c = ek3 (dk2 (ek1 (m))), m = dk1 (ek2 (dk3 (m))). Nevy´hodou TripleDESu je, zˇe je 3x pomalejsˇ´ı nezˇ DES, ale jeho vy´hodou je, zˇe mu˚zˇe jednodusˇe nahradit dnes jizˇ nevyhovujı´cı´ DES, vsˇude tam, kde se DES pouzˇ´ıva´.
Shrnutı´ kapitoly 4.3 V podkapitole byla charakterizova´na tzv. Feistelova sˇifra. Jednı´m z Feistelovy´ch algoritmu˚ je algoritmus DES, jenzˇ byl podrobneˇ popsa´n v te´to podkapitole. Da´le byl popsa´n u´tok na dvojite´ sˇifrova´nı´ meet-in-the-middle a na algoritmu TripleDES byl vysveˇtlen princip trojite´ho sˇifrova´nı´.
?
Ota´zky ke kapitole 4.3 1. Jaky´ je vy´stup po prvnı´ iteraci algoritmu DES, jestlizˇe otevrˇeny´ text a klı´cˇ oba obsahujı´ jen 0? 2. Prˇedpokla´dejme, zˇe dvojkovy´ doplneˇk cˇı´sla A je cˇı´slo A0 (za´meˇna nul za jednicˇky L a naopak). Necht’ je bitovy´ XOR. Chceme doka´zat, l’e jestlizˇe c = DESk (m), pak 0 0 0 c = DESk (m ). Tedy jestlizˇe existuje dvojkovy´ doplneˇk m0 k m a k 0 ke k, pak dokazˇte, zˇe existuje dvojkovy´ doplneˇk c0 k c. 3. Prˇedpokla´dejme, zˇe existujı´ dveˇ Affine Cipher (da´le jen AC) takove´, zˇe: ek1 = (a1 ∗ m + b1 ) mod 26 a ek2 = (a2 ∗ m + b2 ) mod 26. Dokazˇte, zˇe existuje jednoducha´ Affine Cipher ek3 = (a3 ∗ m + b3 ) mod 26, jejı´zˇ vy´sledek je stejny´ jako kombinace c = ek2 (ek1 (m)). Tj. najdeˇte hodnotu pro a3 , b3 , kdyzˇ a1 = 3, b1 = 5 a a2 = 11, b2 = 7. Zkuste popsat co se stane, kdyzˇ u´tocˇnı´k zau´tocˇı´ pomocı´ u´toku hrubou silou na dvojity´ algoritmus (tj. c = ek2 (ek1 (m))). Zveˇtsˇ´ı se prostor klı´cˇu˚ (prˇi tomto dvojite´m sˇifrova´nı´)?
77
4. Porovnejte incializacˇnı´ permutaci IP s permutacı´ PC-1. Jsou si podobne´? Pokud ano, tuto podobnost popisˇte. Co z toho vyply´va´?
Prˇedcha´zejı´cı´ Rezˇimy cˇinnosti symetricky´ch sˇifer
Obsah Nahoru
78
Dalsˇ´ı Algoritmus AES
Prˇedcha´zejı´cı´ Algoritmus DES
4.4
Obsah
Dalsˇ´ı Asymetricka´ kryptografie
Algoritmus AES ˇ asova´ na´rocˇnost kapitoly: 60 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt popsat princip algoritmu Rijndael a jeho jednotlivy´ch kroku˚.
Na zacˇa´tku r. 1997 byla vyhla´sˇena souteˇzˇ na novy´ symetricky´ standard. V srpnu 2000 bylo vybra´no 5 finalistu˚, sˇifry Mars, RC6, Rijndael, Serpent, Twofish. Po te´meˇrˇ cˇtyrˇech letech vy´beˇrove´ho rˇ´ızenı´ zvı´teˇzil algortimus Rijndael, ktrery´ se stal v listopadu 2001 standardem pod oznacˇenı´m AES - Advanced Encryption Standard (National Institute of Standards and Technology (NIST) - FIPS PUB 197). Ten se na dalsˇ´ıch 20 azˇ 30 let stane nejpouzˇ´ıvaneˇjsˇ´ım algoritmem na sveˇteˇ a ovlivnı´ bezpecˇnostnı´ praxi v mnoha ohledech. Jeho u´loha v nove´m tisı´ciletı´ je zejme´na v zvy´sˇenı´ du˚veˇryhodnosti elektronicke´ho obchodu, bankovnictvı´ a elektronicke´ho zˇivota vu˚bec. Blokovou sˇifru Rijndael prˇihla´sili souteˇzˇe zna´mı´ kryptologove´ J. Daemen a V. Rijmen. Pro AES (tedy ve standardu) je de´lka vstupnı´ho a vy´stupnı´ho bloku definova´na jako 128 bitu˚, ale algoritmus podporuje i veˇtsˇ´ı bloky. De´lka klı´cˇe je volitelna´ - 128, 192, 256 bitu˚, cozˇ je N k (4, 6, 8) 32-bitovy´ch slov. Uvedeny´m de´lka´m klı´cˇe odpovı´da´ N r = 10, 12, 14 kol algoritmu (viz tab. 4.10). Rijndael je velmi flexibilnı´. Na´vrh je prˇ´ımocˇary´ a za za´klad jsou pouzˇity operace s prvky Galoisova teˇlesa GF(28 ). Prˇ´ıslusˇne´ operace s nimi lze prova´deˇt bud’ tabulkoveˇ, nebo vy´pocˇtem prˇ´ımo, cozˇ je v prvnı´m prˇ´ıpadeˇ vy´hodne´ pro implementaci softwarovou a v druhe´m prˇ´ıpadeˇ pro hardwarovou. Bajtoveˇ orientovany´ na´vrh take´ umozˇnˇje optimalizovat programovy´ ko´d pro ru˚zne´ mikroprocesory. AES nenı´ Feistelova sˇifra. Nezˇ prˇistoupı´me k za´kladnı´m operacı´m, vysveˇtlı´me si nejnutneˇjsˇ´ı pojmy. Prvky v Galoisoveˇ teˇlese GF(28 ) majı´ osm bitu˚ (b7 , ..., b0 , bi ∈ {0, 1}), nereprezentujı´ vsˇak bajty, ale polynomy (b7 ∗ x7 + ... + b1 ∗ x1 + b0 ). Na´sobenı´ teˇchto prvku˚ je proto zavedeno nikoli jako na´sobenı´ bajtu˚, ale jako na´sobenı´ jim odpovı´dajı´cı´ch polynomu˚, a to modulo polynom m(x) = x8 + x4 + x3 + x1 + 1. Naprˇ´ıklad 0 570 ∗0 830 =0 C10 , nebot’ (x6 + x4 + x2 + x1 + 1) ∗ (x7 + x1 + 1) = (x7 + x6 + 1) (mod m(x)) (v apostrofech pı´sˇeme hexadecima´lnı´ vyja´drˇenı´ bitu˚ b7 , ..., b0 ). Dalsˇ´ımi operacemi (scˇı´ta´nı´ polynomu˚...) s prvky (polynomy) konecˇne´ho teˇlesa GF(28 ) se nebudeme zaby´vat, jejich popis lze nale´zt prˇ´ımo v propozicı´ch sˇifry Rijndael na:
WWW: Rijndael
79
Tabulka 4.10: Pocˇet kol N r jako funkce de´lky bloku a de´lky klı´cˇe.
Tabulka 4.11: Prˇ´ıklad stavove´ matice (N b = 6) a sˇifrovacı´ho klı´cˇe (N k = 4).
Obra´zek 4.17: Rijndael - sˇifrovacı´ algoritmus.
80
Obra´zek 4.18: Transformace SubBytes.
Obra´zek 4.19: Afinnı´ transformace.
Pro grafickou jednoduchost vyja´drˇenı´ sche´matu zapisujeme vstup jako naprˇ. 16 bajtu˚ (elementu˚ teˇlesa GF(28 )) do stavove´ matice 4x4, a to sloupcı´ch shora dolu˚ a sloupce vyplnˇujeme zleva doprava. Vy´stup ze stavove´ matice probı´ha´ stejny´m zpu˚sobem jako vstup do nı´. Jednotlive´ operace se prova´dı´ na prvcı´ch stavove´ matice A (viz tab. 4.11). Prˇedpokla´da´me, zˇe pro sche´ma N r kola je uzˇ prˇipraveno celkem 4 + 4 ∗ N r klı´cˇu˚ kola (32-bitovy´ch slov) pro sˇifrova´nı´ a stejny´ pocˇet klı´cˇu˚ kola pro desˇifrova´nı´. Popı´sˇeme sche´ma pro zasˇifrova´nı´, viz obr. 4.17. Na pocˇa´tku se ke vstupu AES naxorujı´ (bajt po bajtu, slovo po slovu) prvnı´ 4 klı´cˇe kola. Pote´ probeˇhne N r shodny´ch kol azˇ na poslednı´, kde se neprova´dı´ operace MixColumns. Kazˇde´ z regula´rnı´ch kol se skla´da´ z transformacı´: SubBytes, ShiftRows, MixColumns, AddRoundKeys a poslednı´ kolo se skla´da´ z transformacı´: SubBytes, ShiftRows, AddRoundKeys.
81
x
0 1 2 3 4 5 6 7 8 9 a b c d e f
0 63 ca b7 04 09 53 d0 51 cd 60 e0 e7 ba 70 e1 8c
1 7c 82 fd c7 83 d1 ef a3 0c 81 32 c8 78 3e f8 a1
2 77 c9 93 23 2c 00 aa 40 13 4f 3a 37 25 b5 98 89
3 7b 7d 26 c3 1a ed fb 8f ec dc 0a 6d 2e 66 11 0d
4 f2 fa 36 18 1b 20 43 92 5f 22 49 8d 1c 48 69 bf
5 6b 59 3f 96 6e fc 4d 9d 97 2a 06 d5 a6 03 d9 e6
6 6f 47 f7 05 5a b1 33 38 44 90 24 4e b4 f6 8e 42
y 7 c5 f0 cc 9a a0 5b 85 f5 17 88 5c a9 c6 0e 94 68
8 30 ad 34 07 52 6a 45 bc c4 46 c2 6c e8 61 9b 41
9 01 d4 a5 12 3b cb f9 b6 a7 ee d3 56 dd 35 1e 99
a 67 a2 e5 80 d6 be 02 da 7e b8 ac f4 74 57 87 2d
b 2b af f1 e2 b3 39 7f 21 3d 14 62 ea 1f b9 e9 0f
c fe 9c 71 eb 29 4a 50 10 64 de 91 65 4b 86 ce b0
d d7 a4 d8 27 e3 4c 3c ff 5d 5e 95 7a bd c1 55 54
e ab 72 31 b2 2f 58 9f f3 19 0b e4 ae 8b 1d 28 bb
f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16
Tabulka 4.12: Substitucˇnı´ tabulka AES (S-box), naprˇ´ıklad 53 → ed. SubBytes (viz obr. 4.18) je pevneˇ definovana´ substituce bajtu za bajt, kterou lze realizovat bud’ vy´pocˇtem nebo tabulkou, a ktera´ se aplikuje na kazˇdy´ bajt vstupnı´ matice. Skla´da´ se ze dvou operacı´. Vstupnı´ bajt je nejprve invertova´n (jako polynom modulo m(x)) a pote´ jsou jeho bity transformova´ny afinnı´ funkcı´ viz 4.19. Poznamenejme pro u´plnost, zˇe bit y7 oznacˇuje nejvy´znamneˇjsˇ´ı bit. V kazˇde´m prˇ´ıpadeˇ je cela´ substituce konstantnı´ a je mozˇne´ ji definovat na´sledujı´cı´ tabulkou 4.12. Prostrˇednictvı´m tabulky transformujeme kazˇdy´ bajt stavove´ matice. V prˇ´ıpadeˇ, kdy sche´ma programujeme s cı´lem dosazˇenı´ co nejveˇtsˇ´ı rychlosti (i na u´kor pameˇti), je pru˚chod prˇes tabulku pochopitelneˇ rychlejsˇ´ı. ShiftRow vykona´ v matici A cyklickou rotaci jejı´ch prvku˚ v jednotlivy´ch rˇa´dcı´ch doleva, a to tak, zˇe prvnı´ rˇa´dek ponecha´ beze zmeˇny, druhy´ rotuje o jednu pozici, trˇetı´ o dveˇ a cˇtvrty´ o trˇi pozice, jak ukazuje obr. 4.20. MixColumns zeslozˇitı´ prvky v ra´mci kazˇde´ho sloupce matice A. Vstupem te´to transformace jsou vsˇechny prvky dane´ho sloupce (na obra´zku oznacˇen a) a vy´stupem jsou jejich nove´ hodnoty (b). Kazˇdy´ sloupec je transformova´n zvla´sˇt’, ale stejny´m zpu˚sobem, viz obr. 4.21. Transformaci MixColumns je mozˇne´ zapsat jako na´sobenı´ (ve smyslu na´sobenı´ prvku˚ v teˇlese GF(28 )) maticı´, ktera´ je uvedena na obra´zku 4.22. Naprˇ´ıklad b0 = 02 ∗ a0 ⊕ 03 ∗ a1 ⊕ 01 ∗ a2 ⊕ 01 ∗ a3 .
Nakonec se v ra´mci operace AddRoundKeys na prvky stavove´ matice (opeˇt zleva doprava a shora dolu˚ po sloupcı´ch) naxorujı´ po rˇadeˇ jednotlive´ bajty 4 klı´cˇu˚ kola, ktere´ jsou na rˇadeˇ, viz obr. 4.23.
Jednotlive´ kroky sˇifrovacı´ho algoritmu realizujı´ proste´ zobrazenı´ vstupnı´ stavove´ matice na vy´stupnı´ stavovou matici. To znamena´, zˇe ke vsˇem operacı´m sˇifrovacı´ho algoritmu existujı´ inverznı´ operace. Desˇifrovacı´ algoritmus je potom posloupnostı´ odpovı´dajı´cı´ch inverznı´ch operacı´ usporˇa´dany´ch v opacˇne´m porˇadı´ nezˇ prˇi sˇifrova´nı´. Tj. prˇi desˇifrova´nı´ se vy´hodneˇ vyuzˇ´ıva´ vlastnosti linearity neˇktery´ch operacı´ tak, zˇe nakonec lze sestavit ze stejny´ch stavebnı´ch prvku˚, naplneˇny´ch jiny´mi konstantami (parametry). Konkre´tneˇ naprˇ´ıklad operace InvMixColumns, ktera´ je inverznı´ k MixColumns, lze vyja´drˇit jako operaci MixColumns s tı´m, zˇe na´sobı´cı´ matice obsahuje jine´ konstanty. 82
Obra´zek 4.20: Transformace ShiftRow.
Obra´zek 4.21: Transformace MixColumns.
Obra´zek 4.22: Transformace MixColumns - na´sobenı´ maticı´.
Obra´zek 4.23: Transformace AddRoundKeys - na´sobenı´ maticı´.
83
Za´pis desˇifrovacı´ho algoritmu je uveden na obr. 4.24. Tento desˇifrovacı´ algoritmus vznikne inverznı´m serˇazenı´m inverznı´ch operacı´. Pro hardwarovou implementaci je vy´hodne´, aby sˇifrovacı´ i desˇifrovacı´ algoritmus meˇly stejnou strukturu. Pak se vyuzˇ´ıva´ faktu, zˇe u neˇktery´ch operacı´ lze zameˇnit porˇadı´, blı´zˇe viz naprˇ.:
WWW: fips-197 Ze za´pisu sˇifrovacı´ho algoritmu je zrˇejme´, zˇe se (r + 1)-kra´t prova´dı´ procedura prˇicˇtenı´ klı´cˇe (AddRoundKey). K tomu je zapotrˇebı´ (r +1) klı´cˇu˚ kola ve formeˇ matice klı´cˇe kola, ktera´ ma´ forma´t 4 ∗ 4 bajty. V prve´m kroku algoritmu se proto prova´dı´ expanze klı´cˇe (KeyExpanˇ ifrovacı´ klı´cˇ key N k 32-bitovy´ch slovech (4, 6, 8) se zapı´sˇe na pocˇa´tek pomocne´ho sion). S pole 32-bitovy´ch slov W [0...N k − 1]. Toto pole se pote´ expanduje tak, zˇe kazˇde´ nove´ W je vypocˇı´ta´no jako W [i] = W [i − N k] ⊕ temp, kde temp je W [i − 1] nebo jeho modifikace n. Prˇi modifikaci se vyuzˇ´ıva´ operace cyklicke´ho posuvu bajtu˚ slova temp o jeden doprava (RotByte), da´le substituce bajtu˚ SubByte, a to aplikovanE na kazˇdy´ bajt promeˇnne´ temp a pole konstant Const[], viz na´sledujı´cı´ ko´d v jayce C. pro N k ≤ 6: for(i = Nk; i˜< Nb * (Nr + 1);i++) { temp = W[i - 1]; if (i % Nk == 0) temp = SubByte(RotByte(temp)) ˆ const[i / Nk]; W[i] = W[i - Nk] ˆ temp; } Z doposud uvedene´ho popisu lze celkoveˇ konstatovat, zˇe AES je iterovana´ blokova´ sˇifra. Transformace AddKey zajisˇt’uje za´vislost sˇifrove´ho textu na klı´cˇi a transformace ShiftRows a MixColumns zajisˇt’ujı´ rozpty´lenı´ redundance zpra´vy (tzv. difuse). Transformace SubBytes zabezpecˇuje zakrytı´ za´vislostı´ mezi zpra´vou a otevrˇeny´m textem (tzv. konfusi). Prˇ´ınosem AES pro vy´voj blokovy´ch sˇifer je du˚sledna´ bajtova´ architektura, ktera´ dovoluje jednoduchou implementaci sˇifry na nejru˚zneˇjsˇ´ıch hardwarovy´ch a softwarovy´ch platforma´ch. Algoritmus je vhodny´ k implementaci na ru˚zny´ch typech procesoru˚ (od procesoru˚ na cˇipovy´ch karta´ch azˇ po digita´lnı´ signa´love´ procesory), na programovatelny´ch hradlovy´ch polı´ch, na specializovany´ch integrovany´ch obvodech atd. Dalsˇ´ım prˇ´ınosem AES je maticova´ forma bloku˚ zpracova´vany´ch dat, ktera´ zajisˇt’uje rychlejsˇ´ı difu´zi. Tı´m se snizˇuje potrˇebny´ pocˇet kol a zvysˇuje se tak rychlost sˇifrova´nı´. Nevy´hodou AES mu˚zˇe by´t pomalejsˇ´ı desˇifrova´nı´ oproti sˇifrova´nı´.
Shrnutı´ kapitoly 4.4 V te´to podkapitole jsme se sezna´mili s algoritmem AES, jeho principem a jeho jednotlivy´mi kroky. Pro porozumeˇnı´ algoritmu je cˇtena´rˇi doporucˇeno se sezna´mit s operacemi s prvky (polynomy) Galoisova teˇlesa.
?
Ota´zky ke kapitole 4.4 1. Necht’ G(25 ) je Galoisovo pole s polynomem f (x) = x5 + x2 + 1. Vypocˇteˇte (x4 + x2 ) ∗ (x3 + x + 1). 2. Necht’ G(25 ) je Galoisovo pole s polynomem f (x) = x5 + x2 + 1. Vypocˇteˇte x25 . Vyuzˇijte faktu, zˇe x5 = (x2 + 1).
84
Obra´zek 4.24: Rijndael - desˇifrovacı´ algoritmus.
85
3. Kolik S-boxu˚ je pouzˇito pro kazˇdy´ bajt v transformaci SubBytes? 4. Jak velky´ klı´cˇ a jak velky´ blok dat je standardem doporucˇeno pouzˇ´ıvat?
Prˇedcha´zejı´cı´ Algoritmus DES
Obsah Nahoru
86
Dalsˇ´ı Asymetricka´ kryptografie
Prˇedcha´zejı´cı´ Algoritmus AES
Obsah
Dalsˇ´ı ´ Uvod do asymetricke´ kryptografie
Kapitola 5
Asymetricka´ kryptografie Obsah ´ vod do asymetricke´ kryptografie . . . . . . . . . . . . . . . . . . . . . 5.1 U 5.2 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88 91
5.3 Diffie - Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95 97
V te´to kapitole se sezna´mı´me s principy asymetricke´ kryptografie a s neˇktery´mi nejpouzˇ´ıvaneˇjsˇ´ımi asymetricky´mi algoritmy, jako jsou algoritmus RSA, Diffie - Hellman a ElGamal.
Prˇedcha´zejı´cı´ Algoritmus AES
Obsah Nahoru
87
Dalsˇ´ı ´ vod do asymetricke´ U kryptografie
Prˇedcha´zejı´cı´ Asymetricka´ kryptografie
5.1
Obsah
Dalsˇ´ı RSA
´ vod do asymetricke´ kryptografie U ˇ asova´ na´rocˇnost kapitoly: 20 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt vysveˇtlit za´kladnı´ principy fungova´nı´ asymetricke´ kryptografie, vysveˇtlit pouzˇitı´ dvojice klı´cˇu˚ pro sˇifrova´nı´ a podepisova´nı´.
Asymetricka´ kryptografie (da´le take´ ASK) vznikla jako reakce na obtı´zˇnou spra´vu klı´cˇu˚ symetricke´ kryptografie. U ASK je spra´va klı´cˇu˚ jednodusˇsˇ´ı, acˇkoliv ne jednoducha´ (viz podkapitola o certifika´tech 10.3). Algoritmy ASK se pouzˇ´ıvajı´ pro zajisˇteˇnı´ du˚veˇrnosti (confidentiality), integrity (integrity), autenticity a nepopiratelnosti. Asymetricka´ kryptografie (nazy´vana´ take´ kryptografie s verˇejny´m klı´cˇem) pouzˇ´ıva´ dvojici klı´cˇu˚, tzv. soukromy´ (private key) a verˇejny´ klı´cˇ (public key). Kazˇdy´ odesı´latel i prˇ´ıjemce vlastnı´ tuto dvojicı´ klı´cˇu˚ a jejı´ pouzˇitı´ se lisˇ´ı podle toho, zda chceme zpra´vu sˇifrovat (k zasˇifrova´nı´ se pouzˇije verˇejny´ klı´cˇ prˇ´ıjemce, pro desˇifrova´nı´ se pouzˇije soukromy´ klı´cˇ prˇ´ıjemce) nebo k podepsa´nı´ (digita´lnı´ podpis) zpra´vy (odesı´latel se podepisuje svy´m soukromy´m klı´cˇem a prˇ´ıjemce podpis oveˇrˇuje odesı´latelovy´m verˇejny´m klı´cˇem). ˇ ifrova´nı´ (viz obr. 5.1) v prˇ´ıpadeˇ asymetricke´ kryptografie mezi subjekty A (Alice) a B S (Bob) probı´ha´ takto: A ma´ dvojici klı´cˇu˚ KSA (soukromy´ klı´cˇ), KV A (verˇejny´ klı´cˇ), B ma´ k dispozici obdobneˇ klı´cˇe KSB a KV B . Klı´cˇe KV A , KV B jsou zverˇejneˇny a jsou tedy A i B zna´my. Subjekt A prˇipravı´ text, ktery´ chce utajit, zasˇifruje jej klı´cˇem KV B . Prˇ´ıjemce B potom desˇifruje prˇijatou zpra´vu pomocı´ sve´ho soukrome´ho klı´cˇe KSB . Podepisova´nı´ = sˇifrova´nı´ soukromy´m klı´cˇem (viz obr. 5.2). Subjekt A prˇipravı´ text, ktery´ chce podepsat, zasˇifruje (podepı´sˇe) jej klı´cˇem KSA . Prˇ´ıjemce B potom desˇifruje (oveˇrˇ´ı podpis) prˇijatou zpra´vu pomocı´ verˇejne´ho klı´cˇe KV A . V podkapitole 6.1 jsou zavedeny pojmy jednocestna´ funkce a jednocestna´ funkce se zadnı´mi vra´tky. Prˇedpokla´dejme, zˇe neˇjaka´ funkce fk je spojena s urcˇity´m konkre´tnı´m subjektem - uzˇivatelem XY, fk je jeho verˇejny´ klı´cˇ. Informace o zadnı´ch vra´tka´ch k je zna´ma pouze subjektu XY, a je to jeho soukromy´ klı´cˇ. Z vlastnostı´ jednocestne´ funkce se zadnı´mi vra´tky fk plyne, zˇe z pouhe´ znalosti fk nelze najı´t vy´pocˇetneˇ schu˚dnou inverznı´ funkci fk −1 , cˇili specia´lneˇ: ze znalosti verˇejne´ho klı´cˇe nelze nale´zt klı´cˇ soukromy´. Tedy nakonec prakticky: ten, kdo zna´ pouze verˇejny´ klı´cˇ, doka´zˇe zasˇifrovat libovolnou zpra´vu, ale nedoka´zˇe na´hodneˇ vybrany´ sˇifrovy´ text sa´m odsˇifrovat (analogicky platı´ pro podepisova´nı´). Algoritmy asymetricke´ kryptografie se pouzˇ´ıvajı´ jak jizˇ bylo naznacˇeno pro sˇifrova´nı´, podepisova´nı´, a take´ pro vy´meˇnu tajny´ch klı´cˇu˚. My si uvedeme tyto algoritmy: RSA (pouzˇ´ıva´ se pro sˇifrova´nı´, podepisova´nı´ i vy´meˇnu klı´cˇu˚), Diffie - Hellman (pouzˇ´ıva´ se pro vy´meˇnu klı´cˇu˚), ElGamal (pouzˇ´ıva´ se pro sˇifrova´nı´, podepisova´nı´ i vy´meˇnu klı´cˇu˚). Velkou nevy´hodou asymetricky´ch algoritmu˚ je velikost klı´cˇu˚ a z nı´ vy´ply´vajı´cı´ veˇtsˇ´ı cˇasova´ na´rocˇnost prova´deˇny´ch operacı´, nezˇ je tomu v prˇ´ıpadeˇ symetricky´ch algoritmu˚ (viz tab. ˇ asto se proto asymetricky´ algoritmus pouzˇ´ıva´ v tzv. hybridnı´ch kryptosyste´mech 4.1). C pro bezpecˇne´ dorucˇenı´ (zasˇifrova´nı´) tajne´ho relacˇnı´ho klı´cˇe pro symetricky´ algoritmus.
88
E
Algoritmus e
A m
´ tocˇnı´k u´tocˇı´ proti m, KSB U
Algoritmus d
c = eKV B (m)
Verˇejny´ klı´cˇ KV B
B m = dKSB (c)
Soukromy´ klı´cˇ KSB
Obra´zek 5.1: Asymetricky´ kryptosyste´m - model pro utajova´nı´.
E
Algoritmus e
A m
´ tocˇnı´k u´tocˇı´ proti KSA U
Algoritmus d
c = eKSA (m)
Soukromy´ klı´cˇ KSA
B m = dKV A (c)
Verˇejny´ klı´cˇ KV A
Obra´zek 5.2: Asymetricky´ kryptosyste´m - model pro autentizaci.
89
Shrnutı´ kapitoly 5.1 Tato podkapitola obsahuje vy´klad principu˚ asymetricke´ kryptografie, jsou zde vysveˇtleny mechanismy pouzˇ´ıvanı´ dvojice klı´cˇu˚ asymetricke´ kryptografie pro sˇifrova´nı´ a pro podepisova´nı´.
?
Ota´zky ke kapitole 5.1 1. Ktery´ klı´cˇ se pouzˇ´ıva´ na straneˇ odesı´latele zpra´vy v prˇ´ıpadeˇ, zˇe chce podporˇit utajenı´ (du˚veˇrnost) zpra´vy? 2. Ktery´ klı´cˇ se pouzˇ´ıva´ na straneˇ prˇ´ıjemce zpra´vy v prˇ´ıpadeˇ, zˇe chce oveˇrˇit autenticitu zpra´vy (odesı´latele)?
Prˇedcha´zejı´cı´ Asymetricka´ kryptografie
Obsah Nahoru
90
Dalsˇ´ı RSA
Prˇedcha´zejı´cı´ ´ vod do asymetricke´ kryptografie U
5.2
Obsah
Dalsˇ´ı Diffie - Hellman
RSA ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt vysveˇtlit princip algoritmu RSA, definovat jeho pouzˇitı´ pro sˇifrova´nı´ a pro podepisova´nı´.
Algoritmus RSA vymysleli pa´nove´ Rivest, Shamir a Adleman z MIT (Massachusetts Institute of Technology) v roce 1977 a ten se stal nejrozsˇ´ırˇeneˇjsˇ´ım asymetricky´m algoritmem. Na´zev algoritmu, jak lze snadno vysledovat, se skla´da´ se zacˇa´tecˇnı´ch pı´smen prˇ´ıjmenı´ autoru˚. Jedna´ se o blokovou sˇifru, kdy je otevrˇeny´ text rozdeˇlen do bloku˚, ktere´ kazˇdy´ majı´ bina´rnı´ hodnotu mensˇ´ı nezˇ neˇjake´ cˇı´slo n. ˇ ifrova´nı´ a desˇifrova´nı´ probı´ha´ podle na´sledujı´cı´ch prˇedpisu˚: S c = me mod n, m = cd mod n. Prˇ´ıjemce i odesı´latel musejı´ zna´t hodnotu n. Odesı´latel A zna´ hodnotu e a pouze prˇ´ıjemce B zna´ hodnotu d. Z toho vyply´va´, zˇe KV B = [e, n] a KSB = [d, n]. Pro tento algortimus platı´: • je mozˇne´ nale´zt hodnoty e, d, n tak aby M ed = M mod n pro vsˇechna M < n, • je relativneˇ snadne´ vypocˇı´tat M e a C d pro M < n, • je nemozˇne´ urcˇit d, je-li zna´mo e a n. Popis algoritmu RSA: Postup prˇi vytva´rˇenı´ dvojice verˇejny´ a soukromy´ klı´cˇ pro RSA je na´sledujı´cı´: • Nejprve na´hodneˇ (a nepredikovatelneˇ) vygenerujeme dveˇ dostatecˇneˇ (zhruba stejneˇ) velka´ prvocˇı´sla p a q. • Vypocˇteme n = p ∗ q a Φ(n) = (p − 1) ∗ (q − 1) (Φ(n) je Eulerovo cˇı´slo urcˇujı´cı´ pocˇet prˇirozeny´ch cˇı´sel nesoudeˇlny´ch s n a mensˇ´ıch nezˇ n. V praxi lze cˇı´slo Φ(n) nahradit cˇı´slem L = N SN (p − 1, q − 1) (tj. nejmensˇ´ım spolecˇny´m na´sobkem cˇı´sel p − 1 a q − 1). • Zvolı´me na´hodne´ cˇı´slo e, kde 1 < e < Φ(n) tak, zˇe N SD(e, Φ(n)) = 1 (tj. e a Φ(n) jsou nesoudeˇlna´). Zde NSD znacˇı´ nejveˇtsˇ´ıho spolecˇne´ho deˇlitele. • Pouzˇitı´m rozsˇ´ırˇene´ho Eukleidova algoritmu vypocˇteme jednoznacˇneˇ definovane´ cˇı´slo d takove´, zˇe 1 < d < Φ(n) a e ∗ d ≡ 1 mod Φ(n) (tj. d = e−1 (mod Φ(n))). Verˇejny´m klı´cˇem je potom dvojice (e, n), soukromy´m klı´cˇem uzˇivatele je dvojice (d, n).
91
Popis sˇifrova´nı´ a desˇifrova´nı´: Strana A vyja´drˇ´ı zpra´vu M jako cˇı´slo m, 0 < m < n − 1 (resp. posloupnost takovy´ch cˇı´sel). Da´le strana A vypocˇte c = me mod n (pouzˇije verˇejny´ klı´cˇ prˇ´ıjemce) a zasˇle tuto sˇifru straneˇ B. Strana B nynı´ prˇi desˇifrova´nı´ vypocˇte pomocı´ sve´ho soukrome´ho klı´cˇe m = cd mod n, 0 < c < n − 1. Popis podepisova´nı´ a oveˇrˇova´nı´ podpisu: Strana A vyja´drˇ´ı zpra´vu M jako cˇı´slo m, 0 < m < n − 1 (resp. posloupnost takovy´ch cˇı´sel). Da´le strana A vypocˇte c = md mod n (pouzˇije tedy k podpisu svu˚j soukromy´ klı´cˇ) a zasˇle tuto sˇifru straneˇ B. Strana B nynı´ prˇi desˇifrova´nı´ vypocˇte pomocı´ verˇejne´ho klı´cˇe odesı´latele m = ce mod n, 0 < c < n − 1 (tj. oveˇrˇ´ı podpis). Prˇ´ıklad 5.1 Prˇ´ıklad 1. Zvolı´me prvocˇı´sla: p = 47, q = 71. Spocˇteme modul: n = p ∗ q = 47 ∗ 71 = 3337 a da´le: Φ(n) = (p − 1) ∗ (q − 1) = 46 ∗ 70 = 3220. Zvolı´me verˇejny´ exponent e (nesmı´ mı´t spolecˇne´ deˇlitele s 3220), volı´me naprˇ. 79. Spocˇteme soukromy´ exponent d: 79 ∗ d = 1 mod 3220, d =79−1 mod 3220, d = 1019 (k vy´pocˇtu pouzˇijeme rozsˇ´ırˇeny´ Eukleidu˚v algoritmus). Zı´skali jsme verˇejny´ klı´cˇ (79, 3337), soukromy´ klı´cˇ (1019, 3337). 2. Nynı´ si na prˇ´ıkladeˇ prˇedvedeme, jak se v tomto syste´mu sˇifruje a desˇifruje. Vezmeme naprˇ´ıklad otevrˇeny´ text VESELE VANOCE ! Otevrˇeny´ text prˇevedeme „neˇjaky´m“ vhodny´m zpu˚sobem do „neˇjake´“ cˇı´selne´ soustavy. K tomu naprˇ. pouzˇijeme nap59klad uvedenou prˇevodovou tabulku doplneˇnou o znak ’!’. 6 7 8 9
0
1
2
3
4
f P Z
G Q .
H R !
I S
J T
5 A K U
6 B L V
7 C M W
8 D N X
9 E O Y
Zı´ska´me tak : M = 86 69 83 69 76 69 86 65 78 79 67 69 92. 3. Da´le stanovı´me urcˇita´ pravidla forma´tova´nı´. V praxi se pouzˇ´ıvajı´ pomeˇrneˇ slozˇita´ pravidla. Za´jemcu˚m doporucˇuji prostudovat standardy PKCS, viz
WWW: PKCS My si vsˇak zavedeme na´sledujı´cı´ jednoducha´ pravidla. Nazveˇme je nadneseneˇ standard forma´tova´nı´ Crypto1.0: • Ma´-li modul de´lku k, budeme zpra´vu v dekadicke´m tvaru deˇlit na skupiny de´lky k − 1 (pravidlo Crypto1.0, 1). • Vsˇechny skupiny musı´ mı´t de´lku k − 1, nema´-li poslednı´ skupina tuto de´lku, doplnı´me ji zprava prˇ´ıslusˇny´m pocˇtem nul (pravidla Crypto1.0, 2). • Vy´sledek po sˇifrova´nı´ ma´ de´lku rovnou k, nema´-li ji doplnı´me vy´sledek zleva nulami (pravidla Crypto1.0, 3). 4. Vezmeˇme zpra´vu M = 86 69 83 69 76 69 86 65 78 79 67 69 92. zpra´vu M rozdeˇlı´me podle pravidla Crypto1.0, 1 - na na bloky m1 m2 m3 .... Tedy M = m1 m2 m3 .... = 866 983 697 669 866 578 796 769 920. Poslednı´ skupina vznikla doplneˇnı´m 92 o 0 (pravidlo Crypto1.0, 2). 5. Pro pochopenı´ stacˇı´ prˇedve´st konkre´tnı´ vy´pocˇet naprˇ. jen pro prvnı´ skupinu: Sˇifrova´nı´: blok m1 = 866, c1 = (m1 )e mod n, c1 = 86679 mod 3337 = 492 (Pozn. tj. 86679 prˇi deˇlenı´ 3337 da´va´ zbytek 492) Vy´sledek zapı´sˇeme jako 0492 (doplnı´me 0 zleva), protozˇe sˇifrove´ texty ci neˇktery´ch bloku˚ mi mohou by´t o jednu dekadickou cˇı´slici veˇtsˇ´ı (pravidlo Crypto1.0, 3).
92
6. Desˇifrova´nı´: m1 = (c1 )d mod n, 04921019 mod 3337 = 866. (Pozn. tj. 4921019 prˇi deˇlenı´ 3337 da´va´ zbytek 866). Blok m1 je tedy m1 = 866. Provedeme tento postup s cely´m textem a dostaneme: M = 866 983 697 669 866 578 796 769 920, C = 0492 1075 2833 0616 0492 0855 2474 1015 2469. 2 Bezpecˇnost RSA: Na algoritmus RSA lze u´tocˇit: • hrubou silou, • matematicky´mi u´toky, • u´tokem Timing attack - je to u´cˇinny´ u´tok proti mnoha implementacı´m RSA. Spocˇı´va´ v meˇrˇenı´ odezvy druhe´ strany. V za´vislosti na pouzˇite´m klı´cˇi se totizˇ mu˚zˇe meˇnit cˇas potrˇebny´ na zasˇifrova´nı´ zpra´vy. Z doby odezvy tak lze odhadovat, jak klı´cˇ vypada´. Co se ty´ka´ matematicky´ch u´toku˚ na RSA, v za´sadeˇ se rozlisˇujı´ trˇi zpu˚soby: • Faktorizace modulu n na dva jeho prvocˇı´selne´ deˇlitele. To umozˇnı´ urcˇit Φ(n) = (p − 1) ∗ (q − 1), cozˇ na´m pomu˚zˇe urcˇit d = e−1 (mod Φ(n)). • Urcˇenı´ Φ(n) prˇ´ımo, bez prˇedchozı´ho urcˇova´nı´ prvocˇı´sel p, q (opeˇt na´m to pomu˚zˇe urcˇit d = e−1 (mod Φ(n))). • Urcˇenı´ d prˇ´ımo bez prˇedchozı´ho urcˇova´nı´ Φ(n). Zjednodusˇeneˇ se da´ rˇ´ıci, zˇe je obtı´zˇnost vsˇech trˇ´ı matematicky´ch u´toku˚ ekvivalentnı´ obtı´zˇnosti proble´mu faktorizace (rozlozˇenı´ na soucˇin prvocˇı´selny´ch deˇlitelu˚) velke´ho cele´ho cˇı´sla. V soucˇasne´ dobeˇ je nejveˇtsˇ´ım faktorizovany´m cˇislem 512-ti bitove´ cˇı´slo, k jeho faktorizaci byl pouzˇit v soucˇasnosti nejuzˇ´ıvaneˇjsˇ´ı algoritmus General Number Field Sieve (GNFS, viz [3]).
Shrnutı´ kapitoly 5.2 V te´to podkapitole byl vysveˇtlen princip algoritmu RSA, da´le jsme se sezna´mili s jeho pouzˇitı´m sˇifrova´nı´ a pro podepisova´nı´.
?
Ota´zky ke kapitole 5.2 1. Je da´no podpisove´ RSA sche´ma s verˇejny´m klı´cˇem (n = 9797; e = 131). Ktery´ z na´sledujı´cı´ch podpisu˚ platı´ (zdu˚vodneˇte)? (a) M = 123; C = sig(M ) = 6292, (b) M = 4333; C = sig(M ) = 4768, (c) M = 4333; C = sig(M ) = 1424,
93
2. Je da´n klı´cˇ pro sˇifrova´nı´ (e, modul) = (101, 2479) a sˇifra C= 0385 1927 1713 1134 1519 0521 0142 0899 0544 2098 0920 1354 1502 1387 0927. Vasˇ´ım u´kolem je nale´zt klı´cˇ pro desˇifrova´nı´ (tj. tajny´ exponent d) - (d, modul)=(?, 2479) a da´le zı´skat pu˚vodnı´ otevrˇeny´ text. Na´poveˇda: – Prˇevodova´ ko´dova´ tabulka je shodna´ s tabulkou v prˇedchozı´m cvicˇne´m prˇ´ıpadeˇ. – Forma´tova´nı´ je podle na´mi zavedene´ho standardu Crypto1.0. – Mozˇna´ bude trˇeba implementovat nebo nale´zt implementaci naprˇ. na´sledujı´cı´ch algoritmu˚: rozsˇ´ırˇene´ho Eukleidova algoritmu ([3] strana 67, alg.2.107) a nalezenı´ inverznı´ho prvku mod N (strana 71, alg.2.142), algoritmus pro modula´rnı´ vy´pocˇty (na´sobenı´ a umocnˇova´nı´ mod N ) (strana 71, alg.2.143). Neˇktere´ algoritmy lze vynechat a vy´sledek, ktery´ byste jimi zı´skali, urcˇit jinak. 3. Verˇejny´ klı´cˇ pro algoritmus RSA je e = 31, n = 3599. Jaky´ je soukromy´ klı´cˇ tohoto uzˇivatele? 4. Simulujte sˇifrova´nı´ a desˇifrova´nı´ pomocı´ RSA pokud jsou da´ny na´sledujı´cı´ hodnoty: (a) p = 3, q = 11, d = 7, m = 5, (b) p = 7, q = 11, e = 17, m = 8.
Prˇedcha´zejı´cı´ ´ vod do asymetricke´ U kryptografie
Obsah Nahoru
94
Dalsˇ´ı Diffie - Hellman
Prˇedcha´zejı´cı´ RSA
5.3
Obsah
Dalsˇ´ı ElGamal
Diffie - Hellman ˇ asova´ na´rocˇnost kapitoly: 20 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt vysveˇtlit princip algoritmu Diffie - Hellman pro vy´meˇnu tajne´ho klı´cˇe.
Algoritmus Diffie - Hellman se pouzˇ´ıva´ pro vy´meˇnu tajny´ch klı´cˇu˚ pro symetrickou kryptografii. Poprve´ jej prˇedstavili pa´nove´ Diffie a Hellman v roce 1976. Jeho bezpecˇnost spocˇı´va´ v obtı´zˇnosti rˇesˇenı´ proble´mu diskre´tnı´ho logaritmu. Princip vy´meˇny klı´cˇu˚ (key exchange) je zalozˇen na mysˇlence, zˇe si Alice a Bob vymeˇnı´ tajny´ klı´cˇ vy´meˇnou verˇejny´ch zpra´v. Verˇejny´mi hodnotami v tomto algoritmu jsou prvocˇı´slo p, primitivnı´ odmocnina g, g < p. Oba u´cˇastnı´ci komunikace Alice i Bob si vygenerujı´ dvojici klı´cˇu˚, klı´cˇ soukromy´ a verˇejny´: – Generova´nı´ klı´cˇu˚ uzˇivatelem A: vyber soukromy´ KSA , KSA < p, spocˇı´tej verˇejny´ KV A , KV A = ((g)KSA ) mod p. – Generova´nı´ klı´cˇu˚ uzˇivatelem B: vyber soukromy´ KSB , KSB < p, spocˇı´tej verˇejny´ KV B , KV B = ((g)KSB ) mod p. Pak Alice posˇle Bobovi svu˚j verˇejny´ klı´cˇ KV A a Bob zasˇle Alici svu˚j verˇejny´ klı´cˇ KV B . Na´sleduje vy´pocˇet tajne´ho klı´cˇe KAB : – Generova´nı´ tajne´ho klı´cˇe KAB uzˇivatelem A (po vy´meˇneˇ klı´cˇu˚): KAB = ((KV B )KSA ) mod p. – Generova´nı´ tajne´ho klı´cˇe KAB uzˇivatelem B: KAB = ((KV A )KSB ) mod p. Prˇ´ıklad 5.2 p = 97, g = 5, KSA = 36, KSB = 58, KV A = 536 = 50 mod 97, KV B = 558 = 44 mod 97. Generova´nı´ tajne´ho klı´cˇe uzˇivatelem A: KAB = ((KV B )KSA ) mod 97 = 4436 = 75 mod 97. Generova´nı´ tajne´ho klı´cˇe uzˇivatelem B (po vy´meˇneˇ klı´cˇu˚): KAB = ((KV A )KSB ) mod 97 = 5058 = 75 mod 97. U´tocˇnı´k nemu˚zˇe z {44, 50} snadno spocˇı´tat 75. 2
Shrnutı´ kapitoly 5.3 V te´to podkapitole jsme se sezna´mili s principem algoritmu Diffie - Hellman , asymetricke´ho algoritmu, ktery´ je pouzˇ´ıva´n pro vy´meˇnu tajny´ch klı´cˇu˚ symetricke´ kryptografie.
?
Ota´zky ke kapitole 5.3 1. Necht’ je da´n algoritmus Diffie - Hellman s teˇmito parametry: p = 11, g = 2. (a) Jestlizˇe uzˇivatel A ma´ verˇejny´ klı´cˇ KV A = 9, jaky´ je jeho soukromy´ klı´cˇ KSA ?
95
(b) Jestlizˇe uzˇivatel B ma´ verˇejny´ klı´cˇ KV B = 3, jaky´ je sdı´leny´ tajny´ klı´cˇ KAB ?
Prˇedcha´zejı´cı´ RSA
Obsah Nahoru
96
Dalsˇ´ı ElGamal
Prˇedcha´zejı´cı´ Diffie - Hellman
5.4
Obsah
Dalsˇ´ı Kryptograficke´ hashovacı´ funkce
ElGamal ˇ asova´ na´rocˇnost kapitoly: 35 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt vysveˇtlit princip algoritmu ElGamal pro sˇifrova´nı´ a podepisova´nı´.
Algoritmus ElGamal se pouzˇ´ıva´ jak pro sˇifrova´nı´, tak pro podepisova´nı´. Vycha´zı´ z algoritmu Diffie - Hellman a prˇedstavil je ElGamal v roce 1984. Jeho bezpecˇnost opeˇt spocˇı´va´ v obtı´zˇnosti rˇesˇenı´ proble´mu diskre´tnı´ho logaritmu. Generova´nı´ dvojice klı´cˇu˚: Zvol prvocˇı´slo p, na´hodna´ cˇı´sla g, x takova´, zˇe jsou obeˇ mensˇ´ı nezˇ p. Pote´ spocˇı´tej y = g x mod p. Verˇejny´mi hodnotami v tomto algoritmu jsou prvocˇı´slo p, primitivnı´ odmocnina g a hodnota y. Soukromy´m klı´cˇem je hodnota x. Sche´ma pro sˇifrova´nı´: Nalezni cˇı´slo k, ktere´ je nesoudeˇlne´ s p − 1. Spocˇı´tej a = g k mod p, b = y k ∗ m mod p. ˇ ifrovy´m textem je pak dvojice c = [a, b], jeho velikost je dvojna´sobna´ proti velikosti S otevrˇene´ho textu m. Pro desˇifrova´nı´ je trˇeba vypocˇı´tat m = b/ax mod p. Sche´ma pro podepisova´nı´: Nalezni cˇı´slo k, ktere´ je nesoudeˇlne´ s p − 1. Spocˇı´tej a = g k mod p. Pouzˇij rozsˇ´ırˇeny´ Eukleidova algoritmu pro urcˇenı´ b ze vztahu m = (x ∗ a + k ∗ b) mod (p − 1). Podpisem je pak dvojice [a, b], na´hodna´ hodnota k musı´ by´t uchova´na v tajnosti. Pro oveˇrˇenı´ podpisu je trˇeba zjistit, zda y a ∗ ab mod p = g m mod p. Kazˇde´ pouzˇitı´ algoritmu ElGamal, at’ pro sˇifrova´nı´ nebo pro podepisova´nı´, vyzˇaduje novou hodnotu k, ktera´ musı´ by´t vybra´na na´hodneˇ. Pokud u´tocˇnı´k zna´ hodnotu k, mu˚zˇe odhalit soukromy´ klı´cˇ odesı´latele x. Prˇ´ıklad 5.3 Postup:
97
• Vybereme p = 11, g = 2, x = 8. Vypocˇı´tejme y = g x mod p = 28 mod 11 = 3. Verˇejny´ klı´cˇ je y = 3, g = 2, p = 11. • Pro podepsa´nı´ zpra´vy m = 5 nejprve vyberme k = 9. Oveˇrˇ´ıme, zˇe N SD(9, 10) = 1. Vypocˇteme a = g k mod p = 29 mod 11 = 6 a pouzˇijeme rozsˇ´ırˇeny´ EA pro nalezenı´ b: m = (x ∗ a + k ∗ b) mod (p − 1), 5 = (8 ∗ 6 + 9 ∗ b) mod 10. Rˇesˇenı´m je b = 3 a podpis je a = 6, b = 3. • Oveˇrˇenı´ podpisu: y a ∗ ab mod p = g m mod p, 36 ∗ 63 mod 11 = 25 mod 11. 2
Shrnutı´ kapitoly 5.4 V te´to podkapitole jsme se sezna´mili s principem algoritmu ElGamal, asymetricke´ho algoritmu, ktery´ je pouzˇ´ıva´n pro vy´meˇnu sˇifrova´nı´ a podepisova´nı´.
?
Ota´zky ke kapitole 5.4 1. Necht’ je da´n algoritmus ElGamal s teˇmito parametry: p = 71, g = 7. (a) Jestlizˇe uzˇivatel B ma´ verˇejny´ klı´cˇ KV B = 3 a uzˇivatel A vybere na´hodne´ cˇı´slo k = 2, jaky´ je sˇifrovy´ text c otevrˇene´ho textu m = 30? (b) Uzˇivatel A vybere jinou hodnotu k takovou, zˇe pokud zasˇifrujeme m = 30, zı´ska´me c = (59, b). Jaka´ je potom hodnota b?
Prˇedcha´zejı´cı´ Diffie - Hellman
Obsah Nahoru
98
Dalsˇ´ı Kryptograficke´ hashovacı´ funkce
Prˇedcha´zejı´cı´ ElGamal
Obsah
Dalsˇ´ı ´ Uvod do problematiky kryptograficky´ch hashovacı´ch funkcı´
Kapitola 6
Kryptograficke´ hashovacı´ funkce Obsah ´ vod do problematiky kryptograficky´ch hashovacı´ch funkcı´ . . . . . 100 6.1 U 6.1.1 Message Authentication Code . . . . . . . . . . . . . . . . . . . . 103 6.2 SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
V te´to podkapitole se sezna´mı´me s vlastnostmi kryptograficky´ch hashovacı´ch funkcı´, s jejich pouzˇitı´m a pro lepsˇ´ı prˇedstavu si uvedeme, jak je navrzˇena jedna z nich, SHA-1.
Prˇedcha´zejı´cı´ ElGamal
Obsah Nahoru
99
Dalsˇ´ı ´ vod do problematiky U kryptograficky´ch hashovacı´ch funkcı´
Prˇedcha´zejı´cı´ Kryptograficke´ hashovacı´ funkce
6.1
Obsah
Dalsˇ´ı SHA-1
´ vod do problematiky kryptograficky´ch hashovacı´ch U funkcı´ ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete schopni vysveˇtlit co je to jednosmeˇrna´ funkce, jaka´ je to kryptograficka´ heashovacı´ funkce, jake´ ma´ vlastnosti. Da´le budete umeˇt popsat iteracˇnı´ postup, ktery´ kryptograficke´ hashovacı´ funkce pouzˇ´ıvajı´. Da´le porozumı´te dalsˇ´ımu typu u´toku, ktery´ se nazy´va´ birthday attack.
Hashovacı´ funkce jsou matematicke´ funkce, ktere´ se v informacˇnı´ch technologiı´ch pouzˇ´ıvajı´ velice cˇasto. Jsou to funkce, ktere´ mapujı´ vstup promeˇnne´ de´lky na vy´stup pevne´ de´lky. Jako prˇ´ıklad lze uve´st databa´zove´ zpracova´nı´, kdy technika hashova´nı´ umozˇnˇuje na za´kladeˇ hodnoty vyhleda´vacı´ho klı´cˇe urcˇit umı´steˇnı´ odpovı´dajı´cı´ho za´znamu. Kryptograficke´ hashovacı´ funkce jsou du˚lezˇity´mi na´stroji pro kryptograficke´ aplikace jaky´mi jsou naprˇ´ıklad digita´lnı´ podpis (viz 10), klı´cˇovane´ hashovacı´ funkce (MAC - Message Authentication Code). Pouzˇ´ıvajı´ se k zajisˇteˇnı´ du˚lezˇity´ch bezpecˇnostnı´ch aspektu˚ soucˇasny´ch informacˇnı´ch technologiı´ jaky´mi jsou zejme´na integrita, autentizace a nepopiratelnost. Kryptograficke´ hashovacı´ funkce jsou veˇtsˇinou iteracˇnı´ procesy, ktere´ hashujı´ vstup promeˇnne´ de´lky (t-bitove´ bloky) na vy´stup pevne´ de´lky (r-bitove´ bloky). Vstup M je nejprve zarovna´n na na´sobek de´lky bloku a pote´ je rozdeˇlen na t-bitove´ bloky Mi . Hashovacı´ funkce H mu˚zˇe by´t popsa´na takto: M D0 = IV, M Di = f (M Di−1 , Mi ), 1 ≤ i ≤ n, H(M ) = M Dn , kde IV je inicializacˇnı´ hodnota, f je kompresnı´ funkce (ale jednocestna´ funkce, M Di jsou r-bitove´ buffery. Vy´stupu hashovacı´ funkce se rˇ´ıka´ vy´tah zpra´vy (message digest), otisk (fingerprint) vzorek nebo naprˇ. charakteristika. Hashovacı´ funkce pouzˇ´ıvane´ v kryptografii musı´ splnˇovat urcˇite´ vlastnosti, ktere´ jsou uvedeny v na´sledujı´cı´ch definicı´ch. Definice 6.1 Funkce H() se nazy´va´ jednocestnou funkcı´ (JF), jestlizˇe splnˇuje na´sledujı´cı´ vlastnost: Pro dany´ vstup M a danou funkci H je snadne´ vypocˇı´tat H(M ), ale pro danou H(M ) je nesnadne´ vypocˇı´tat M . Definice 6.2 Jednocestna´ funkce H() se nazy´va´ jednocestnou funkcı´ se zadnı´mi vra´tky (JFZV), jestlizˇe navı´c splnˇuje na´sledujı´cı´ vlastnost: Pro danou HK (M ) lze snadno spocˇı´tat M tehdy, kdyzˇ je zna´ma hodnota tajemstvı´ K.
100
Definice 6.3 Funkce H() se nazy´va´ jednocestnou hashovacı´ funkcı´ (JHF), jestlizˇe splnˇuje na´sledujı´cı´ vlastnosti: 1. Argument (zpra´va) M mu˚zˇe mı´t libovolnou de´lku. 2. Vy´sledek H(M ) ma´ pevnou de´lku (charakteristika). 3. Funkci H(M ) lze relativneˇ snadno realizovat jak hardwaroveˇ, tak softwaroveˇ. 4. Funkce H(M ) je jednocestna´, tj. pro dany´ vstup M a danou funkci H je snadne´ vypocˇı´tat H(M ), ale pro danou H(M ) je nesnadne´ vypocˇı´tat M . Definice 6.4 Jednocestna´ hashovacı´ funkce H() se nazy´va´ jednocestnou hashovacı´ funkcı´ odolnou kolizı´m (JHFOK), jestlizˇe splnˇuje na´sledujı´cı´ vlastnosti: 1. Funkce H(M ) je odolna´ proti kolizı´m, tj. pro dany´ vstup M a danou hodnotu H(M ) je teˇzˇke´ (nemozˇne´) najı´t takove´ M 0 (M 6= M 0 ), aby platilo H(M ) = H(M 0 ). 2. Funkce H(M ) je silneˇ odolna´ proti kolizı´m, je-li teˇzˇke´ (nemozˇne´) najı´t jaky´koliv pa´r M, M 0 (pro M 6= M 0 ) takovy´, aby platilo H(M ) = H(M 0 ). Definice 6.5 Necht’ je da´n klı´cˇ K pevne´ de´lky a vstup (zpra´va) M promeˇnlive´ de´lky. Jednocestna´ hashovacı´ funkce H() se nazy´va´ klı´cˇovanou (jednocestnou) hashovacı´ funkcı´ (odolnou kolizı´m) (KJHFOK), jestlizˇe splnˇuje na´sledujı´cı´ vlastnosti: 1. Pro dane´ H, KaM je snadne´ vypocˇı´tat H(K, M ). 2. Bez znalosti K je teˇzˇke´ najı´t M pro dane´ H(K, M ). 3. Bez znalosti K je teˇzˇke´ najı´t M, M 0 (M 6= M 0 ) takove´, aby platilo H(K, M ) = H(K, M 0 ). 4. K (mnoha) dany´m pa´ru˚m [Mi , H(K, Mi )] je teˇzˇke´ nale´zt tajny´ klı´cˇ K. 5. Bez znalosti K je teˇzˇke´ najı´t H(K, M ) pro jake´koliv M , a to i tehdy, jestlizˇe je da´no mnoho pa´ru˚ [M i, H(K, M i)], kde M 6= Mi , pro kazˇde´ Mi . Na´sleduje strucˇny´ vy´cˇet ru˚zny´ch typu˚ hashovacı´ch funkcı´: 1. hashovacı´ funkce zalozˇene´ na blokovy´ch sˇifra´ch (naprˇ. algoritmus DES v CBC rezˇimu - viz obr. 6.1), 2. hashovacı´ funkce zalozˇene´ na modula´rnı´ aritmetice: bezpecˇnost kryptosyste´mu˚ zalozˇeny´ch na modula´rnı´ aritmetice plyne z vy´pocˇetnı´ slozˇitosti teˇzˇky´ch proble´mu˚ proble´mu faktorizace a proble´m diskre´tnı´ho logaritmu, 3. hashovacı´ funkce zalozˇene´ na automatech (nenı´ soucˇa´stı´ vy´kladu), 4. hashovacı´ funkce zalozˇene´ na proble´mu batohu (nenı´ soucˇa´stı´ vy´kladu), 5. specia´lnı´ hashovacı´ funkce - mezi nejzna´meˇjsˇ´ı a nejpouzˇ´ıvaneˇjsˇ´ı patrˇ´ı naprˇ. MD5 (ta nenı´ vzhledem k velikosti charakteristiky 64 bitu˚ povazˇova´na za bezpecˇnou), SHA-1, RIPEMD-x. Tyto hashovacı´ funkce zpravidla vstupnı´ zpra´vu M deˇlı´ na bloky velikosti 512 bitu˚ a poskytujı´ vy´stup (charakteristiku) H(M ) velikosti bud’ 128 nebo 160 bitu˚ (naprˇ. v prˇ´ıpadeˇ RIPEMD-160 se je mozˇnost zı´skat charakteristiku dvojna´sobne´ velikosti 320 bitu˚). Ja´drem kompresnı´ funkce f jsou obvykle bitove´ operace jako XOR, bitova´ negace, b. soucˇin, b. soucˇet, b. posuv a b. rotace.
101
M
M1
.....
Mn
IV K
K
E
E C K(M)
Obra´zek 6.1: DES v CBC rezˇimu.
´ toky se deˇlı´ na dveˇ skupiny Da´le jsou uvedeny neˇktere´ typy u´toku˚ na hashovacı´ funkce. U - na u´toky za´visı´cı´ na algoritmu a na u´toky na algoritmu neza´visı´cı´. ´ tok hrubou silou - hleda´nı´ zpra´v se stejnou hodnotu n-bitove´ charakteristiky H, tj. 1. U naprˇ. Pro n = 128 to znamena´ 2128 pokusu˚ nale´zt zpra´vu M se stejnou charakteristikou H. 2. Birthday attack (narozeninovy´ u´tok) je u´tok vycha´zejı´cı´ z tzv. narozeninove´ho paradoxu (jaka´ je pravdeˇpodobnost, zˇe se v mı´stnosti mezi n lidmi najde alesponˇ jedna dvojice osob se stejny´m datem narozenı´ (den, meˇsı´c), pro n = 23 je tato pravdeˇpodobnost p = 0.507, pro n = 30 je p = 0.706). Pro naprˇ. n = 128 u´tok spocˇı´va´ v generova´nı´ zpra´v M1 a podvrzˇeny´ch zpra´v M2 a vyhleda´nı´ takove´ M2 , zˇe H(M1 ) = H(M2 ). Pa´r podvrzˇena´ zpra´va/pu˚vodnı´ zpra´va, ktere´ majı´ stejnou hodnotu hashovacı´ funkce se na´m podarˇ´ı nale´zt po nikoli 2128 , ale po vygenerova´nı´ pouze 264 zpra´v (s pravdeˇpodobnostı´ cca 50%). 3. Na´hodny´ u´tok (Random attack) - u´tocˇnı´k vybere na´hodnou zpra´vu a doufa´, zˇe jejı´ charakteristika je stejna´ jako ta prava´. 4. Pseudo attack - u´tocˇnı´k se snazˇ´ı u´tocˇit na klı´cˇovanou hashovacı´ funkcı´ pomocı´ podvrzˇene´ho klı´cˇe K 0 . 5. Specia´lnı´ u´toky (diferencˇnı´ kryptoanaly´za, linea´rnı´ kryptoanaly´za, Meet-in-the-Middle attack, Fixed point attack) - prˇesahujı´ vy´klad. Na´sledujı´ prˇ´ıklady pouzˇitı´ kryptograficky´ch hashovacı´ch funkcı´: A −→ B : EK [M k H(M )] poskytuje autentizaci a utajenı´, A −→ B : M k EK [H(M )] poskytuje autentizaci, A −→ B : M k EKSA [H(M )] poskytuje autentizaci a digita´lnı´ podpis, A −→ B : EK [M k EKSA [H(M )]] poskytuje autentizaci, utajenı´ a digita´lnı´ podpis, A −→ B : M k H(M k S) poskytuje autentizaci, A −→ B : EK [M k H(M ) k S] poskytuje autentizaci a utajenı´. Symbol S zde znacˇı´ neˇjakou hodnotu, kterou zna´ jen Alice a Bob, K je tajny´ klı´cˇ, ktery´ zna´ jen Alice a Bob, KSA je soukromy´ klı´cˇ Alice.
102
6.1.1
Message Authentication Code
Klı´cˇovane´ hashovacı´ funkce vystupujı´ pod ru˚zny´mi na´zvy, ale majı´ jedno spolecˇne´: s daty zpracujı´ do vy´stupnı´ charakteristiky take´ tajny´ klı´cˇ (M AC = Ck (m)). Ta pak detekuje jakoukoliv u´myslnou i neu´myslnou zmeˇnu ve zpra´veˇ, cˇı´mzˇ zajisˇt’uje integritu zpra´vy, soucˇasneˇ ale take´ autentizuje jejı´ho pu˚vodce, nebot’ musel zna´t tajny´ klı´cˇ. Proto se tento hashovacı´ ko´d nazy´va´ autentizacˇnı´ ko´d zpra´vy (MAC, Message Authentication Code). Prˇed vznikem hashovacı´ch funkcı´ se k vy´pocˇtu MAC pouzˇ´ıvaly blokove´ sˇifry, viz obr. 6.1. V roce 1995 byla navrzˇena rodina autentizacˇnı´ch ko´du˚ MDx-MAC. Pouzˇ´ıvajı´ haoshovacı´ funkce typu MDx (tedy hashovacı´ funkce rodin MD, RIPEMD a SHA) jako za´klad, ale zeslozˇit’ujı´ je. Zeslozˇiteˇnı´ spocˇı´va´ ve vstupu klı´cˇe do inicializacˇnı´ hodnoty IV i konstant kompresnı´ funkce a v doplneˇnı´ nove´ho datove´ho bloku (za´visle´ho na klı´cˇi) na konec zpra´vy. Dalsˇ´ı klı´cˇovanou hashovacı´ funkcı´ je HMAC. Na´sledujı´ prˇ´ıklady pouzˇitı´ klı´cˇovany´ch kryptograficky´ch hashovacı´ch funkcı´: A −→ B : M k CK (M ) poskytuje autentizaci, A −→ B : EK2 (M k CK1 (M )) poskytuje utajenı´ (K2), autentizaci (K1), A −→ B : EK2 (M ) k CK1 (EK2 (M )) poskytuje utajenı´ (K2), autentizaci (K1).
Shrnutı´ kapitoly 6.1 V te´to podkapitole jsme se sezna´mili s pojmem kryptograficka´ hashovacı´ funkce. Je to funkce jednosmeˇrna´ a navı´c odolna´ kolizı´m, ma´ kompresnı´ charakter. Modernı´ hashovacı´ funkce jsou iteracˇnı´ procesy. Klı´cˇovane´ hashovacı´ funkce se pouzˇ´ıvajı´ jako tzv. MAC.
?
Ota´zky ke kapitole 6.1 1. Jaky´m zpu˚sobem zı´ska´te z charakteristiky zpeˇt pu˚vodnı´ otevrˇeny´ text? 2. Jaka´ je to hashovacı´ funkce odolna´ kolizı´m? 3. Popisˇte prˇesneˇ, jak budete postupovat prˇi hleda´nı´ dvojice M1 , M2 takove´, aby platilo, zˇe h(M1 ) = h(M2 ) pro danou hashovacı´ funkci h. Jake´ jsou na´roky na pameˇt’ pro takovy´to postup hleda´nı´, pokud hashovacı´ funkce ma´ vy´stup o velikosti n bitu˚? 4. Je hashovacı´ funkce, ktera´ ma´ charakteristiku de´lky 64 bitu˚ bezpecˇna´? Zdu˚vodneˇte.
Prˇedcha´zejı´cı´ Kryptograficke´ hashovacı´ funkce
Obsah Nahoru
103
Dalsˇ´ı SHA-1
Prˇedcha´zejı´cı´ ´ vod do problematiky U kryptograficky´ch hashovacı´ch funkcı´
6.2
Obsah
Dalsˇ´ı Kryptografie na ba´zi elipticky´ch krˇivek
SHA-1 ˇ asova´ na´rocˇnost kapitoly: 30 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt strucˇneˇ popsat hashovacı´ funkci SHA-1.
V te´to podkapitole bude uveden popis alesponˇ jedne´ kryptograficke´ hashovacı´ funkce. Hashovacı´ funkce SHA-1 je na´stupcem hashovacı´ funkce SHA-0. Hashovacı´ funkce SHA-1 byla vytvorˇena NSA a americky´m u´rˇadem pro normalizaci NIST byla vyhla´sˇena jako standard v oficia´lnı´m dokumentu Federal Information Processing Standards Publication 180-1 (FIPS PUB 180-1). Tato funkce ma´ vsˇechny pozˇadovane´ bezpecˇnostnı´ vlastnosti zabranˇujı´cı´ jejı´mu zneuzˇitı´. Je urcˇena pro vsˇechny aplikace, kde je pozˇadova´na bezpecˇna´ hashovacı´ funkce. Vstupem hashovacı´ funkce SHA-1 je datovy´ soubor M o de´lce azˇ 264 −1 bitu˚. Vy´stupem hashovacı´ funkce je hashovacı´ hodnota H(M ) pevne´ a relativneˇ velmi male´ de´lky, u SHA-1 je vy´stup 160 bitovy´. Algoritmus SHA-1 se skla´da´ z neˇkolika kroku˚: 1. Prvnı´m krokem je doplneˇnı´ zpra´vy. Prˇedpokla´dejme, zˇe ma´me zpra´vu M , ktera´ ma´ m bitu˚. SHA-1 zpracova´va´ vstupnı´ data po 512 bitech, proto nejprve dojde k doplneˇnı´ zpra´vy M na de´lku, ktere´ je celocˇı´selny´m na´sobkem 512 bitu˚. Doplneˇnı´ je definova´no tak, zˇe M se nejprve doplnı´ jednicˇkovy´m bitem a pote´ nulovy´mi bity tak, aby de´lka zpra´vy byla rovna 512 ∗ (n − 1) + 448, kde n je vhodne´ prˇirozene´ cˇı´slo. Zby´vajı´cı´ch 64 bitu˚ bude doplneˇno 64 bitovy´m cˇı´slem, ktere´ vyjadrˇuje pocˇet bitu˚ pu˚vodnı´ zpra´vy, tedy m . Takto na´m vzˇdy vznikne n 512 bitovy´ch bloku˚ dat, ktere´ oznacˇı´me M1 , ..., Mn . 2. Da´le oznacˇme W <<< s cyklickou rotaci slova W o s bitu˚ doleva.
104
3. V samotne´m algoritmu budeme pouzˇ´ıvat na´sledujı´cı´ logicke´ funkce a konstanty: – 32 bitova´ slova A − E a T EM P , – konstanty K0 azˇ K79, ktere´ jsou v hexadecima´lnı´m za´pisu rovny: Kt = 5A827999 (0 ≤ t ≤ 19), Kt = 6ED9EBA1 (20 ≤ t ≤ 39), Kt = 8F 1BBCDC (40 ≤ t ≤ 59), Kt = CA62C1D6 (60 ≤ t ≤ 79), – konstanty H0 azˇ H4, ktere´ jsou prˇed zpracova´nı´m prvnı´ho bloku M1 nastaveny na inicializacˇnı´ hodnoty: H0 = 67452301, H1 = EF CDAB89, H2 = 98BADCF E, H3 = 10325476, H4 = C3D2E1F 0, – funkce f 0 azˇ f 79, kde vy´stupem kazˇde´ funkce jsou slova B, C, D definovana´ na´sledujı´cı´m zpu˚sobem: f t(B, C, D) = (B ∧ C) ∨ ((N OT B) ∧ D) (0 <= t <= 19), f t(B, C, D) = B ⊕ C ⊕ D (20 <= t <= 39), f t(B, C, D) = (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) (40 <= t <= 59), f t(B, C, D) = B ⊕ C ⊕ D (60 <= t <= 79). 4. Vy´pocˇet hashovacı´ hodnoty se prova´dı´ postupny´m zpracova´nı´m bloku˚ M1 azˇ Mn . Cele´ zpracova´nı´ probı´ha´ v na´sledujı´cı´ hlavnı´ smycˇce: (a) Rozdeˇlı´me Mi (pro i = 1, ..., n) na 16 slov W (0) azˇ W (15). (b) Provedeme expanzi na slova W (16) azˇ W (79) podle vztahu: W (t) = (W (t − 3) ⊕ W (t − 8) ⊕ W (t − 14) ⊕ W (t − 16) <<< 1. (c) Do A azˇ E zkopı´rujeme poslednı´ hodnoty slov H0 azˇ H4: A = H0, B = H1, C = H2, D = H3, E = H4. (d) V na´sledujı´cı´ch 80 kolech (t = 0, ..., 79) ke slovu˚m A azˇ E prˇimı´cha´va´me slova W podle symbolicke´ho za´pisu: T EM P = (A <<< 5)+f t(B, C, D)+E +W (t)+Kt, E = D, D = C, C = B <<< 30, B = A, A = T EM P . (e) Aktualizujeme hodnoty H0 azˇ H4 podle vztahu˚: H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E. 5. Po zpracova´nı´ poslednı´ho bloku Mn je hashovacı´ hodnota definova´na jako 160 bitovy´ rˇeteˇzec tvorˇeny´ slovy H0 azˇ H4. 6. Schematicky je algoritmus zna´zorneˇn na obra´zku 6.2 .
Shrnutı´ kapitoly 6.2 V te´to podkapitole byla pro ilustraci toho, jak vypadajı´ soucˇasne´ bezpecˇne´ kryptograficke´ hashovacı´ funkce, popsa´na hashovacı´ funkce SHA-1.
?
Ota´zky ke kapitole 6.2 1. Jake´ bitove´ operace jsou v algoritmu SHA-1 pouzˇity?
105
Obra´zek 6.2: Hashovacı´ funkce SHA-1.
2. Nalezneˇte na Internetu implementace SHA-1 v ru˚zny´ch programovacı´ch jazycı´ch.
Prˇedcha´zejı´cı´ ´ vod do problemaU tiky kryptograficky´ch hashovacı´ch funkcı´
Obsah Nahoru
106
Dalsˇ´ı Kryptografie na ba´zi elipticky´ch krˇivek
Prˇedcha´zejı´cı´ SHA-1
Obsah
Dalsˇ´ı ´ Uvod do teorie elipticky´ch krˇivek
Kapitola 7
Kryptografie na ba´zi elipticky´ch krˇivek Obsah ´ vod do teorie elipticky´ch krˇivek . . . . . . . . . . . . . . . . . . . . . . 108 7.1 U 7.1.1 Procˇ se zacˇaly pouzˇ´ıvat elipticke´ kryptosyste´my? . . . . . . . . . . 108 7.1.2 Pojem elipticke´ krˇivky . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.1.3 Elipticke´ krˇivky nad Fp . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.2 ECDSA - Elliptic Curve Digital Signature Algorithm . . . . . . . . . . . 117 7.2.1 ECDSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.2.2 Shrnutı´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
V te´to kapitole se sezna´mı´me s pojmem elipticka´ krˇivka, s operacemi na nı´, s kryptografiı´ na ba´zi elipticky´ch krˇivek a s algorimem pro digta´lnı´ podpis na ba´zi elipticky´ch krˇivek.
Prˇedcha´zejı´cı´ SHA-1
Obsah Nahoru
107
Dalsˇ´ı ´ vod do teorie U elipticky´ch krˇivek
Prˇedcha´zejı´cı´ Kryptografie na ba´zi elipticky´ch krˇivek
Obsah
Dalsˇ´ı ECDSA - Elliptic Curve Digital Signature Algorithm
´ vod do teorie elipticky´ch krˇivek U
7.1
ˇ asova´ na´rocˇnost kapitoly: 90 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete rozumeˇt pojmu elipticka´ krˇivka, budete umeˇt popsat operace s body elipticke´ krˇivky nad prvocˇı´selny´mi teˇlesy. Da´le porozumı´te pojmu rˇa´d elipticke´ krˇivky a rˇa´d bodu elipticke´ krˇivky.
7.1.1
Procˇ se zacˇaly pouzˇ´ıvat elipticke´ kryptosyste´my?
Dnesˇnı´ syste´my s verˇejny´m klı´cˇem vznikly proto, aby byl s jejich pomocı´ vyrˇesˇen proble´m klı´cˇove´ho hospoda´rˇstvı´ pro symetricke´ algoritmy. Mezi N u´cˇastnı´ky, kdy chce komunikovat kazˇdy´ u´cˇastnı´k s kazˇdy´m utajeneˇ pomocı´ symetricke´ho algoritmu, je pocˇet tajny´ch klı´cˇu˚ roven (N ∗ (N − 1))/2 a tyto tajne´ klı´cˇe je trˇeba distribuovat pouze prˇ´ıslusˇny´m dveˇma u´cˇastnı´ku˚m. Pokud vsˇak u´cˇastnı´ci pouzˇ´ıvajı´ asymetricky´ algoritmus, je cela´ situace jednodusˇsˇ´ı. Kazˇdy´ u´cˇastnı´k vlastnı´ dvojicı´ klı´cˇu˚ - verˇejny´ a soukromy´. Mnoho soucˇasny´ch asymetricky´ch kryptosyste´mu˚ je zalozˇeno na vyuzˇitı´ operacı´ nad velky´mi konecˇny´mi matematicky´mi grupami. Kryptograficka´ sı´la teˇchto syste´mu˚ je odvozena ze slozˇitosti rˇesˇenı´ u´lohy diskre´tnı´ho logaritmu nad multiplikativnı´ grupou teˇlesa Fp , kde p je velke´ prvocˇı´slo, naprˇ. algoritmus ElGamal. Bezpecˇnost teˇchto syste´mu˚ za´visı´ na velikosti prvocˇı´sla a rˇa´du vybrane´ho prvku grupy. Typicky´m prˇedstavitelem asymetricky´ch kryptosyste´mu˚ je da´le algoritmus RSA, jehozˇ sı´la spocˇı´va´ v rˇesˇenı´ u´lohy faktorizace velke´ho prˇirozene´ho cˇı´sla (na soucˇin dvou prvocˇı´sel). K provedenı´ rozkladu dostatecˇneˇ velke´ho cˇı´sla vsˇak potrˇebujeme vy´razneˇ efektivnı´ algoritmy. Takove´ algoritmy existujı´, ale majı´ sve´ vy´pocˇetnı´ meze (v soucˇasnosti algoritmus Number field sieve viz [3]). K tomu, aby pouzˇ´ıvany´ kryptosyste´m meˇl z hlediska takovy´chto u´toku˚ dostatecˇnou za´ruku bezpecˇnosti, je trˇeba stanovit dostatecˇnou de´lku klı´cˇe, kterou je dnes > 1024b.
108
Blokove´ sˇifry 56 64 80 86 ... 109
RSA/DL 417 682 1464 1881 ... 4047
Elipticke´ krˇivky 105 120 149 161 ... 206
Tabulka 7.1: Srovnatelna´ bezpecˇnost ru˚zny´ch kryptosyste´mu˚ prˇi ru˚zny´ch de´lka´ch klı´cˇu˚.
Nevy´hodou asymetricky´ch kryptosyste´mu˚ je, zˇe bezpecˇna´ velikost klı´cˇe je podstatneˇ veˇtsˇ´ı nezˇ u symetricky´ch kryptosyste´mu˚ a asymetricke´ algoritmy jsou znacˇneˇ pomalejsˇ´ı. V tabulce 7.1 je uvedena srovnatelna´ bezpecˇnost ru˚zny´ch kryptosyste´mu˚ prˇi ru˚zny´ch de´lka´ch klı´cˇu˚. Matematici proto hledali jine´ cesty, nove´ algoritmy pro asymetricke´ kryptosyste´my. Kryptografie na ba´zi elipticky´ch krˇivek (Elliptic Curve Cryptography, da´le jen ECC) je modernı´ smeˇr, ktery´ v rˇadeˇ ukazatelu˚ prˇina´sˇ´ı lepsˇ´ı vy´sledky nezˇ nejrozsˇ´ırˇeneˇjsˇ´ı pouzˇ´ıvane´ kryptosyste´my. Uzˇitı´ elipticky´ch krˇivek pro na´vrh asymetricky´ch kryptosyste´mu˚ poprve´ navrhli v r. 1985 neza´visle pa´nove´ Victor Miller a Neal Koblitz. Jedna´ se vlastneˇ o analogii jizˇ existujı´cı´ch syste´mu˚ s verˇejny´m klı´cˇem, kdy je modula´rnı´ aritmetika nahrazena aritmetikou budovanou na za´kladeˇ operacı´ s body na elipticke´ krˇivce. U asymetricky´ch kryptosyste´mu˚ definovany´ch nad eliptickou krˇivkou (ECC) se hierarchicky volı´ dva typy algebraicky´ch struktur: konecˇne´ teˇleso a elipticka´ krˇivka reprezentujı´cı´ grupu bodu˚, nad nı´zˇ je vlastnı´ asymetricky´ algoritmus definova´n. Volba obou teˇchto algebraicky´ch struktur vy´znamneˇ ovlivnˇuje bezpecˇnost a efektivitu kryptosyste´mu. Pozˇadavky kladene´ na tyto dveˇ struktury spolu vza´jemneˇ souvisı´. Bezpecˇnost elipticky´ch kryptosyste´mu˚ spocˇı´va´ v obtı´zˇnosti rˇesˇenı´ u´lohy diskre´tnı´ho logaritmu pro elipticke´ krˇivky. V soucˇasne´ dobeˇ je tato u´loha podstatneˇ obtı´zˇneˇji rˇesˇitelna´ nezˇ je u´loha klasicke´ho diskre´tnı´ho logaritmu. Dokonce nejsou pro tyto algoritmy zna´my zˇa´dne´ subexponencia´lnı´ algoritmy (jako pro klasicky´ diskre´tnı´ logaritmus, resp. u´lohu faktorizace), nejlepsˇ´ı algoritmy majı´ plneˇ exponencia´lnı´ charakter (cozˇ platı´ pro obecne´ krˇivky, nikoliv vsˇak pro neˇktere´ specia´lnı´ podtrˇ´ıdy elipticky´ch krˇivek). V du˚sledku toho lze konstruovat bezpecˇne´ kryptosyste´my s vy´razneˇ kratsˇ´ı de´lkou klı´cˇe (viz tabulka 7.1). To vede mimo jine´ k implementacı´m s mensˇ´ımi na´roky na pameˇt’, ktere´ jsou soucˇasneˇ i vy´razneˇ rychlejsˇ´ı ve srovna´nı´ naprˇ. s kryptosyste´my na ba´zi diskre´tnı´ho logaritmu. Teoreticka´ konstrukce prˇitom umozˇnˇuje vytvorˇit syste´my zcela analogicke´ klasicky´m modelu˚m.
7.1.2
Pojem elipticke´ krˇivky
Pod pojmem rovinna´ krˇivka rozumı´me mnozˇinu bodu˚, ktere´ splnˇujı´ rovnici F (x, y) = 0. Nejjednodusˇsˇ´ı rovinnou krˇivkou je prˇ´ımka. Rovnici prˇ´ımky lze zapsat jako polynom s promeˇnny´mi x a y, prˇitom tyto promeˇnne´ se v teˇchto rovnicı´ch objevujı´ v podobeˇ linea´rnı´ za´vislosti. Kuzˇelosecˇky (parabola, hyperbola, elipsa) lze popsat rovnicemi, kde za´vislost promeˇnny´ch je popsa´na kvadratickou rovnicı´ (v x a y). Logicky navazujı´ kubicke´ krˇivky, za´vislost promeˇnny´ch je popsa´na rovnicı´ trˇetı´ho stupneˇ. Jejich specia´lnı´ podtrˇ´ıdou jsou elipticke´ krˇivky. Elipticka´ krˇivka je algebraicka´ struktura konstruovana´ obecneˇ nad teˇlesem. V kryptografii se pouzˇ´ıvajı´ elipticke´ krˇivky nad konecˇny´mi teˇlesy, ktera´ lze algebraicky klasifikovat a kazˇde´ konecˇne´ teˇleso je pak jednoznacˇneˇ urcˇeno rˇa´dem (pocˇtem svy´ch prvku˚).
109
Definice vlastnostı´ konecˇny´ch teˇles lze nale´zt v podkapitole 2.2. Definice 7.1 Na bina´rnı´ teˇleso1 F2m se mu˚zˇeme dı´vat jako na vektorovy´ prostor dimenze m nad teˇlesem F2 , ktere´ se skla´da´ z prvku˚ 0, 1. Tj. v teˇlese F2m existuje m prvku˚ α0 , α1 , ..., αm−1 takovy´ch, zˇe kazˇdy´ prvek α ∈ F2m se da´ jednoznacˇneˇ zapsat ve tvaru: α = a0 ∗ α0 + a1 ∗ α1 + ... + am−1 ∗ αm−1 , kde ai ∈ {0, 1}. Definice 7.2 Mnozˇina prvku˚ {α0 , α1 , ..., αm−1 } se nazy´va´ ba´ze F2m nad F2 . Existuje mnoho ru˚zny´ch ba´zı´, norma ANSI X9.62 se omezuje na dveˇ ba´ze: polynomia´lnı´ a norma´lnı´ ba´zi. Pokud se omezı´me na polynomia´lnı´ ba´zi, pak prvky teˇlesa F2m jsou vsˇechny polynomy stupneˇ ≤ m s koeficienty z {0, 1}. Vsˇechny operace (scˇı´ta´nı´ polynomu˚, na´sobenı´ polynomu˚ a nalezenı´ inverznı´ho plynomu k dane´mu polynomu jsou prova´deˇny modulo ireducibilnı´ polynom stupneˇ m s koeficienty z {0, 1}. Operace nad bina´rnı´m teˇlesem F2m s polynomia´lnı´ ba´zı´ se staly take´ za´kladem nove´ho symetricke´ho standardu, algoritmu AES (viz 4.4). Proto pro specifikaci konkre´tnı´ho konecˇne´ho teˇlesa stacˇı´ pouzˇ´ıt oznacˇenı´ Fq , kde q = pm je pocˇet prvku˚, p prvocˇı´slo a m prˇirozene´ cˇı´slo. Velmi zjednodusˇeneˇ lze definovat eliptickou krˇivku nad konecˇny´m teˇlesem Fq jako mnozˇinu E = {[x, y] ∈ Fq2 \ {[0, 0]}, F (x, y) = 0} ∪ {O}, kde O je dodefinovany´ neutra´lnı´ prvek elipticke´ krˇivky (tzv. bod v nekonecˇnu) a F (x, y) = y 2 + a1 ∗ x ∗ y + a2 ∗ y − x3 − a3 ∗ x2 − a4 ∗ x − a5 je polynom nad Fq . Na takto vytvorˇene´ mnozˇineˇ je mozˇno definovat bina´rnı´ operaci tak, zˇe elipticka´ krˇivka opatrˇena´ touto operacı´ ma´ strukturu komutativnı´ grupy. Vztah F (x, y) = 0 je obecnou Weierstrassovou rovnicı´ elipticke´ krˇivky. Tu lze zjednodusˇit pro jednotlive´ tvary teˇles a doplnit podmı´nky pro hodnoty koeficientu˚ rovnic tak, aby elipticka´ krˇivka nebyla singula´rnı´ (aby neexistoval tzv. bod singularity): 1. Pro q = pm , kde p > 3, m ≥ 1 a koeficienty a, b ∈ Fq , 4 ∗ a3 + 27 ∗ b2 6≡ 0, splnˇuje bod elipticke´ krˇivky [x, y] ∈ E \ {O} na´sledujı´cı´ rovnici nad Fq : y 2 = x3 + a ∗ x + b, kde a, b jsou cela´ cˇı´sla mod p. 2. Pro q = 2m , m ≥ 1 a koeficienty a, b ∈ Fq , b 6= 0, splnˇuje bod elipticke´ krˇivky [x, y] ∈ E \ {O} na´sledujı´cı´ rovnici nad Fq : y 2 + x ∗ y = x3 + a ∗ x2 + b, kde a, b jsou cela´ cˇı´sla mod q. 3. Pro q = 3m , m ≥ 1 a koeficienty a, b ∈ Fq , b 6= 0, splnˇuje bod elipticke´ krˇivky [x, y] ∈ E \ {O} na´sledujı´cı´ rovnici nad Fq : y 2 = x3 + a ∗ x2 + b, kde a, b jsou cela´ cˇı´sla mod q.
7.1.3
Elipticke´ krˇivky nad Fp
Scˇı´ta´nı´: jak na to? Nejprve prˇiblizˇme graficky operaci scˇı´ta´nı´ na rea´lne´ krˇivce (v rovineˇ). Na obra´zku 7.1 je zna´zorneˇna konkre´tnı´ elipticka´ krˇivka E dana´ rovnicı´ y 2 = x3 − 7 ∗ x. • Vy´sledkem soucˇtu P + Q dvou ru˚zny´ch bodu˚ P, Q, ktere´ lezˇ´ı na krˇivce, bude opeˇt bod R krˇivky E a vznikne takto (viz obr. 7.1): Spojı´me body P = (xP , yP ) a Q = (xQ , yQ ) prˇ´ımkou, ta protne krˇivku v dalsˇ´ım bodeˇ, ktery´ oznacˇı´me −R, a vy´sledkem scˇı´ta´nı´ je bod R, symetricky´ k −R podle osy x. Body symetricke´ podle osy x se nazy´vajı´ opacˇne´. 1
Konecˇny´m teˇlesu˚m se rˇ´ıka´ take´ Galoisova pole (Galoisova teˇlesa) a znacˇı´ se GFp resp. GF2m .
110
Obra´zek 7.1: Scˇı´ta´nı´ bodu˚ P + Q = R krˇivky E : y 2 = x3 − 7 ∗ x. • Algebraicky je smeˇrnice prˇ´ımky, ktera´ spojuje body P, Q (prˇedpokla´dejme, zˇe jsou ru˚zne´ a nikoli opacˇne´), rovna s = (yQ −yP )/(xQ −xP ) a sourˇadnice bodu R = (xR , yR ) lze pak odvodit z rovnice krˇivky jako xR = s2 − xP − xQ a yR = s ∗ (xP − xR ) − yP . • V prˇ´ıpadeˇ P = Q prˇecha´zı´ jejich spojnice v tecˇnu ke krˇivce E a jejı´ smeˇrnice je rovna s = (3 ∗ x2P + a)/(2 ∗ yP ). • Kdyzˇ scˇı´ta´me body opacˇne´ P + (−P ), jejich spojnice (rovnobeˇzˇka s osou y) eliptickou krˇivku E protne jakoby v nekonecˇnu. Proto matematici definitoricky prˇidali ke krˇivce E bod v nekonecˇnu O a scˇı´ta´nı´ dodefinovali i pro body opacˇne´: P + (−P ) = O, viz obr. 7.2. • Pro bod v nekonecˇnu O nadefinujeme pravidla pro scˇı´ta´nı´ takto: pro kazˇdy´ bod P na krˇivce E definujeme P + O = P a take´ O + O = O, prˇicˇemzˇ −O = O. • Pro prˇicˇtenı´ bodu k sobeˇ same´mu, tj. P + P , je vedena tecˇna ke krˇivce E z bodu P . Jestlizˇe yP 6= 0, protne tecˇna krˇivku v bodeˇ −R. Vy´sledkem scˇı´ta´nı´ P + P = 2P = R je bod R, symetricky´ k −R podle osy x, viz obr. 7.3. Scˇı´ta´nı´: elipticka´ krˇivka nad Fp . Elipticka´ krˇivka E nad teˇlesem Fp je tedy definova´na jako bod v nekonecˇnu O spolecˇneˇ s mnozˇinou bodu˚ P = (x, y), kde x a y jsou z teˇlesa Fp a splnˇujı´ rovnici y 2 = x3 + ax + b v Fp , tj. y 2 ≡ x3 + a ∗ x + b (mod p). Vı´me, zˇe koeficienty a, b jsou take´ prvky teˇlesa Fp a musı´ splnˇovat podmı´nku 4 ∗ a3 + 27 ∗ b2 6≡ 0 mod p, ktera´ zarucˇuje, zˇe takto definovana´ mnozˇina bodu˚ tvorˇ´ı grupu (jinak koeficienty a ab mu˚zˇeme volit libovolneˇ ‚ budou to pozdeˇji verˇejne´ parametry prˇ´ıslusˇne´ho kryptosyste´mu). • V te´to grupeˇ definujeme opacˇny´ bod k O jako −O = O a pro ostatnı´ nenulove´ P = (xP , yP ) ∈ E definujeme −P = (xP , −yP mod p), da´le pro vsˇechny body P ∈ E definujeme P + −P = O a P + O = P . Bod O nazy´va´me take´ nulovy´ bod, vzhledem k jeho roli prˇi scˇı´ta´nı´ v grupeˇ E.
111
Obra´zek 7.2: Scˇı´ta´nı´ opacˇny´ch bodu˚ P + (−P ) = O krˇivky E : y 2 = x3 − 6 ∗ x + 6.
Obra´zek 7.3: Prˇicˇı´ta´nı´ bodu k sobeˇ same´mu P + P = 2P , krˇivka E : y 2 = x3 − 3 ∗ x + 5.
112
Obra´zek 7.4: Prˇicˇı´ta´nı´ bodu k sobeˇ same´mu P + P = 2P = O,
pokud je yP = 0, krˇivka E : y 2 = x3 + 5 ∗ x − 7.
• Scˇı´ta´nı´ ru˚zny´ch nenulovy´ch a ne vza´jemneˇ opacˇny´ch bodu˚ P = (xP , yP ) a Q = (xQ , yQ ): jestlizˇe P a Q jsou ru˚zne´ body takove´, zˇe P 6= −Q, pak P + Q = R, kde s = (yP − yQ )/(xP − xQ ) mod p2 , xR = s2 − xP − xQ mod p, yR = −yP + s ∗ (xP − xR ) mod p. • Zdvojenı´ bodu P : pokud yP 6= 0, pak 2P = R, kde s = (3 ∗ x2P + a)/(2 ∗ yP ) mod p, xR = s2 − 2 ∗ xP mod p, yR = −yP + s ∗ (xP − xR ) mod p. Prˇ´ıklad 7.1 (Elipticka´ krˇivka nad Fp .) Necht’ p = 23 a prˇedpokla´dejme krˇivku E : y 2 = x3 + x + 4 nad F23 , tj. a = 1, b = 4. Platı´ 4 ∗ a3 + 27 ∗ b2 = 4 + 432 = 436 ≡ 22 (mod 23). 1. Body (viz obr. ) te´to krˇivky jsou O a (0, 2), (0, 21), (1, 11), (1, 12), (4, 7), (4, 16), (7, 3), (7, 20), (8, 8), (8, 15), (9, 11), (9, 12), (10, 5), (10, 18), (11, 9), (11, 14), (13, 11), (13, 12), (14, 5), (14, 18), (15, 6), (15, 17), (17, 9), (17, 14), (18, 9), (18, 14), (22, 5), (22, 19). 2. Necht’ P = (4, 7) a Q = (13, 11), potom P + Q = R se vypocˇte takto: xR = ((11 − 7)/(13 − 4))2 − 4 − 13 = 32 − 4 − 13 = −8 ≡ 15 mod 23 a y3 = 3 ∗ (4 − 15) − 7 = −40 ≡ 6 mod 23. Tedy P + Q = (15, 6). 3. Necht’ P = (4, 7) potom 2P = P +P = R se vypocˇte takto: xR = ((3∗42 +1)/14)2 −8 = 152 − 8 = 217 ≡ 10 mod 23 a y3 = 15 ∗ (4 − 10) − 7 = −97 ≡ 18 mod 23. Tedy 2P = (10, 18).
113
2 Podobneˇ jako 2P vypocˇı´ta´me 3P = (P + P ) + P = 2P + P, 4P, 5P.... Zı´ska´me obecneˇ ru˚zne´ body xP na krˇivce #E. Protozˇe ma´ krˇivka konecˇny´ pocˇet bodu˚, musı´ se po urcˇite´m pocˇtu (l) kroku˚ tato posloupnost zacyklit. V bodeˇ zacyklenı´ (lP ) tak platı´ lP = mP , kde mP je neˇjaky´ drˇ´ıveˇjsˇ´ı bod. Odtud ale dosta´va´me lP − mP = (l − m)P = O, cˇili existuje neˇjake´ n = l−m, n < l) takove´, zˇe nP = O. Je tedy jasne´, zˇe v posloupnosti P, 2P, 3P, 4P... se vzˇdy nakonec dostaneme do bodu O a pote´ cyklus zacˇı´na´ znovu od bodu P , nebot’ (n + 1)P = nP + P = O + P = P . Ru˚zne´ body na krˇivce E mohou mı´t ru˚zny´ rˇa´d. V kryptograficke´ praxi vybı´ra´me takovy´ bod, jehozˇ rˇa´d je roven nejveˇtsˇ´ımu prvocˇı´slu v rozkladu cˇı´sla #E (pokud je n velke´, naprˇ´ıklad rˇa´doveˇ 2256 , dostaneme velmi dlouhou posloupnost, nezˇ se zacyklı´ ) nebo jeho na´sobku (tzv. kofaktoru, kofaktor h = #E/n). Definice 7.3 Rˇa´dem elipticke´ krˇivky E rozumı´me celkovy´ pocˇet bodu˚ te´to krˇivky a ozn. jej jako #E. Definice 7.4 Necht’ n je prˇirozene´ cˇı´slo, bod P ∈ E. Nejmensˇ´ı takove´ n, pro neˇzˇ je nP = O, nazy´va´me rˇa´d bodu P .
Lze doka´zat, zˇe rˇa´d bodu deˇlı´ rˇa´d krˇivky. Prˇ´ıklad 7.2 (Fp , p = 23, E : y 2 = x3 + x + 4, P = (0, 2)) Rˇa´d krˇivky je #E = 29, 1P = (0, 2), 2P = (13, 12), 3P = (11, 9), 4P = (1, 12), 5P = (7, 20), 6P = (9, 11), 7P (15, 6), 8P = (14, 5), 9P = (4, 7), 10P = (22, 5), 11P = (10, 5), 12P = (17, 9), 13P (8, 15), 14P = (18, 9), 15P = (18, 14), 16P = (8, 8), 17P = (17, 14), 18P = (10, 18), 19P (22, 18), 20P = (4, 16), 21P = (14, 18), 22P = (15, 17), 23P = (9, 12), 24P = (7, 3), 25P (1, 11), 26P = (11, 14), 27P = (13, 11), 28P = (0, 21), 29P = O. 2
= = = =
Shrnutı´ kapitoly 7.1 V te´to podkapitole byly nejprve uvedeny du˚vody, ktere´ vedly k rozmachu ECC. Da´le byl definova´n pojem elipticka´ krˇivka a bylo uvedeno, ktere´ elipticke´ krˇivky se v ECC pouzˇ´ıvajı´. Da´le byly vysveˇtleny operace s body elipticke´ krˇivky nad prvocˇı´selny´m teˇlesem.
?
Ota´zky ke kapitole 7.1 1. Co je to rˇa´d elipticke´ krˇivky? 2. Co je to rˇa´d bodu elipticke´ krˇivky? 3. Je da´na krˇivka E : y 2 = x3 + x + 1,Fp , p = 23. Nalezneˇte vsˇechny body te´to krˇivky. Urcˇete rˇa´d te´to krˇivky. Zvolte si jeden z bodu˚ te´to krˇivky a urcˇete jeho rˇa´d. 4. V textu byl pouzˇit pojem bod singularity, jeky´ to je bod? 5. Co je to bod v nekonecˇnu? Procˇ se pouzˇ´ıva´?
2
Operaci deˇlenı´ definujeme jako na´sobenı´ inverznı´m prvkem, naprˇ´ıklad x/y je x ∗ y −1 a prˇirozeneˇ y −1 je ten prvek teˇlesa Fp , ktery´ vyna´soben y da´va´ jednicˇku: y ∗ y −1 = 1.
114
Prˇedcha´zejı´cı´ Kryptografie na ba´zi elipticky´ch krˇivek
Obsah Nahoru
115
Dalsˇ´ı ECDSA - Elliptic Curve Digital Signature Algorithm
21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22
Obra´zek 7.5: Body krˇivky E : y 2 = x3 + x + 4 nad F23 .
116
Prˇedcha´zejı´cı´ ´ vod do teorie elipticky´ch krˇivek U
7.2
Obsah
Dalsˇ´ı Na´hodne´ a pseudona´hodne´ genera´tory
ECDSA - Elliptic Curve Digital Signature Algorithm ˇ asova´ na´rocˇnost kapitoly: 60 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt popsat princip algoritmu ECDSA. Porozumı´te tomu, jake´ parametry ma´ mı´t elipticky´ kryptosyste´m.
7.2.1
ECDSA
Proble´mem diskre´tnı´ho logaritmu nad eliptickou krˇivkou (ECDLP, eliptic curve discrete logarithm problem) je tato u´loha: je da´na elipticka´ krˇivka E nad konecˇny´m teˇlesem Fq , bod P ∈ E, bod Q = dP , kde 1 ≤ d ≤ n − 1. Urcˇete cˇı´slo d tak, zˇe Q = dP . Sche´ma diskre´tnı´ho logaritmu) (multiplikativnı´ grupa) se transformuje na eliptickou krˇivku (aditivnı´ grupa) tak, zˇe operace na´sobenı´ prvku˚ g ∗ g ∗ g ∗ g ∗ ....(tj. g k ) se prˇevede na scˇı´ta´nı´ bodu˚ na krˇivce P + P + P + P + .... (tj. kP ). Na´sleduje popis sche´matu pro digita´lnı´ podpis na ba´zi elipticky´ch krˇivek - ECDSA - Elliptic Curve Digital Signature Algorithm. Parametry elipticke´ho kryptosyste´mu pokud q = p je prvocˇı´slo: • prvocˇı´slo p definujı´cı´ velikost prˇ´ıslusˇne´ho teˇlesa Fp , p > 3, • (nepovinneˇ) bitovy´ rˇeteˇzec SEED de´lky alesponˇ 160 bitu˚, pokud elipticka´ krˇivka byla na´hodneˇ generova´na, • a, b ∈ Fp , ktere´ definujı´ rovnici elipticke´ krˇivky E : y 2 = x3 + a ∗ x + b, • x, y ∈ Fp dva prvky teˇlesa, ktere´ definujı´ bod P = (x, y), tento bod ma´ prvocˇı´selny´ rˇa´d a P 6= O, √ • rˇa´d n bodu P (musı´ platit n > 2160 , n > 4 q), tento rˇa´d bodu P je deˇlitelem rˇa´du krˇivky E, • (nepovinneˇ) kofaktor h = #E/n. Parametry elipticke´ho kryptosyste´mu pokud q je rovno 2m : • cˇı´slo q = 2m definujı´cı´ velikost prˇ´ıslusˇne´ho teˇlesa Fq , da´le jaka´ ba´ze je pouzˇita k vyja´drˇenı´ jednotlivy´ch prvku˚ tohoto teˇlesa a prˇ´ıslusˇny´ redukcˇnı´ polynom rˇa´du m, • (nepovinneˇ) bitovy´ rˇeteˇzec SEED de´lky alesponˇ 160 bitu˚, pokud elipticka´ krˇivka byla na´hodneˇ generova´na,
117
• a, b ∈ Fp , ktere´ definujı´ rovnici elipticke´ krˇivky E : y 2 + x ∗ y = x3 + a ∗ x2 + b, • x, y ∈ Fp dva prvky teˇlesa, ktere´ definujı´ bod P = (x, y), tento bod ma´ prvocˇı´selny´ rˇa´d a P 6= O, √ • rˇa´d n bodu P (musı´ platit n > 2160 , n > 4 q), tento rˇa´d bodu P je deˇlitelem rˇa´du krˇivky E, • (nepovinneˇ) kofaktor h = #E/n. Generova´nı´ dvojice klı´cˇu˚ pro elipticke´ kryptosyste´my. Dana´ mnozˇina parametru˚ elipticke´ho kryptosyste´mu je asociova´na s dvojicı´ klı´cˇu˚, ktera´ je vytva´rˇena na´sledovneˇ: soukromy´ klı´cˇ d je cele´ cˇı´slo na´hodneˇ vygenerovane´ v intervalu 1 < d < n − 1 . Verˇejny´ klı´cˇ je bod Q na elipticke´ krˇivce vypocˇteny´ jako Q = dP . Bod Q (i P ) mu˚zˇeme nynı´ zverˇejnit ‚ budou soucˇa´stı´ verˇejne´ho klı´cˇe, ktery´m je cˇtverˇice (E, P, n, Q).
Vytvorˇenı´ podpisu pomocı´ sche´matu ECDSA. Meˇjme zpra´vu M : • vybereme jedinecˇne´ a nepredikovatelne´ cˇı´slo 1 ≤ k ≤ n − 1, • vypocˇteme bod kP = (x1 , y1 ) a cˇı´slo r = x1 mod n, • je-li r = 0, pak postup opakujeme od generova´nı´ cˇı´sla k (to je nutne´ proto, aby v hodnoteˇ s byl obsazˇen priva´tnı´ klı´cˇ, viz da´le), • vypocˇteme k −1 mod n, • vypocˇteme s = k −1 (h(M ) + dr) mod n, kde h je hashovacı´ funkce SHA-1 (viz literatura), • je-li s = 0, pak opeˇt jdeme na prvnı´ bod ‚ generova´nı´ nove´ho k (neexistovalo by s−1 mod n, viz da´le proces oveˇrˇenı´), • podpisem zpra´vy M je dvojice cˇı´sel (r, s). Oveˇrˇenı´ podpisu ECDSA. Meˇjme zpra´vu M a jejı´ podpis (r, s): • du˚veˇryhodny´m zpu˚sobem zı´ska´me verˇejny´ klı´cˇ podepisujı´cı´ho (E, P, n, Q), • oveˇrˇ´ıme, zˇe r, s ∈ h1, n − 1i, • vypocˇteme w = s−1 mod n a h(M ), • vypocˇteme u1 = h(M )w mod n a u2 = rw mod n, • vypocˇteme u1 P + u2 Q = (x0 , y0 ) a v = x0 mod n, • podpis je platny´ pra´veˇ tehdy, kdyzˇ v = r.
118
De´lka symetricke´ho klı´cˇe 80 112 128 192 256
Prˇ´ıklad algoritmu Skipjack 3-DES AES 128 AES 192 AES 256
De´lka p pro Fp 192 224 256 384 521
Velikost m pro F2m 163 233 283 409 571
Tabulka 7.2: Doporucˇena´ velikost teˇles podle FIPS 186-2.
7.2.2
Shrnutı´
V pu˚vodnı´m na´vrhu vyuzˇitı´ elipticky´ch krˇivek pro kryptografii se uzˇ´ıvalo vy´hradneˇ elipticky´ch krˇivek nad Fp . Z du˚vodu snadne´ hardwarove´ implementace (naprˇ. cˇipove´ karty bez nutnosti vnitrˇnı´ho specia´lnı´ho koprocesoru) byly zavedeny i elipticke´ krˇivky nad teˇlesem F2m . Pro tyto dveˇ kategorie byla zverˇejneˇna krite´ria pro vy´beˇr vhodny´ch teˇles a elipticky´ch krˇivek nad nimi. Pro implementaci asymetricke´ho kryptosyste´mu je nutno zvolit bod elipticke´ krˇivky s maxima´lnı´m mozˇny´m rˇa´dem, tj. uvedeny´ prvek generuje pracovnı´ podgrupu maxima´lnı´ho rˇa´du. Jelikozˇ rˇa´d podgrupy vzˇdy deˇlı´ rˇa´d grupy, je podı´l obou hodnot celocˇı´selny´ (kofaktor). Snahou je volit parametry syste´mu tak, aby kofaktor byl co nejnizˇsˇ´ı. ˇ esˇenı´ proble´mu diskre´tnı´ho logaritmu nad eliptickou krˇivkou ma´ obecneˇ exponencia´lnı´ R slozˇitost na rozdı´l od hleda´nı´ prˇirozene´ho diskre´tnı´ho logaritmu, pro ktery´ byly nalezeny vy´pocˇetnı´ metody se subexponencia´lnı´ slozˇitostı´. Pro neˇktere´ specia´lnı´ typy elipticky´ch krˇivek vsˇak existujı´ metody rˇesˇenı´ diskre´tnı´ho logaritmu s mensˇ´ı vy´pocˇetnı´ slozˇitostı´ nezˇ v obecne´m prˇ´ıpadeˇ. Volba bezpecˇny´ch parametru˚ elipticke´ho kryptosyste´mu prˇesahuje svou obtı´zˇnostı´ vy´klad, proto se jı´ nebudeme zaby´vat, stejneˇ tak se nebudeme zaby´vat krite´rii vy´beˇru teˇles. Tato problematika je vsˇak popsa´na v mnoha jiny´ch publikacı´ch.
Doporucˇena´ konecˇna´ teˇlesa (NIST): 1. prvocˇı´selna´ teˇlesa: Fp pro p = 2192 − 264 − 1, p = 2224 − 296 + 1, p = 2256 − 2224 + 2192 + 296 − 1, p = 2384 − 2128 − 296 + 232 − 1, p = 2521 − 1, 2. bina´rnı´ teˇlesa: F2163 , F2233 , F2283 , F2409 , F2571 . Dosud neju´cˇinneˇjsˇ´ı metodou na rˇesˇenı´ u´lohy ECDLP je Pollardova rho metoda, jejı´zˇ slozˇitost je rˇa´doveˇ (π ∗ n/2)1/2 kroku˚. Pokud je n = 2256 , dosta´va´me cca 2128 kroku˚, cozˇ je zhruba na u´rovni lusˇtitelnosti symetricke´ blokove´ sˇifry (viz tab. 7.2) se 128-bitovy´m klı´cˇem a z vy´pocˇetnı´ho hlediska nerˇesˇitelne´. Proto rˇ´ıka´me, zˇe prˇ´ıslusˇna´ sˇifra je vy´pocˇetneˇ ´ lohu lze sice paralelizovat, takzˇe pokud pouzˇijeme N procesoru˚, dosta´va´me bezpecˇna´. U slozˇitost (π ∗ n/2)1/2 /N , ale pro velka´ n je to sta´le vy´pocˇetneˇ nerˇesˇitelna´ u´loha. Doporucˇene´ krˇivky: 1. Na´hodne´ elipticke´ krˇivky nad Fp . 2. Koblitzovy krˇivky nad F2m .
119
3. Na´hodne´ elipticke´ krˇivky nad F2m . Prˇ´ıklad 7.3 Krˇivka P-192, E : y 2 = x3 − 3 ∗ x + b (mod p) • prvocˇı´selny´ modul p = 2192 − 264 − 1 = = 6277101735386680763835789423207666416083908700390324961279, • prvocˇı´selny´ rˇa´d krˇivky #E = = 6277101735386680763835789423176059013767194773182842284081, • kofaktor = 1, protozˇe rˇa´d krˇivky je prvocˇı´slo, • a = −3, • b = 64210519e59c80e70f a7e9ab72243049f eb8deecc146b9b1(hex.), • (generujı´cı´) bod P : xP = 188da80eb03090f 67cbf 20eb43a18800f 4f f 0af d82f f 1012 (hex.), • yP = 07192b95f f c8da78631011ed6b24cdd573f 977a11e794811 (hex.), • n = 627710173538668076383578942317605901376059013767194773182842284081. 2 Doporucˇenı´ pro vy´beˇr parametru˚ kryptograficky´ch syste´mu˚ obsahuje cela´ rˇada stanˇ asto citovanou normou pro digita´lnı´ poddardu˚, vza´jemneˇ jsou vsˇak mezi nimi odchylky. C pis je FIPS 186-2, ktera´ zrovnopra´vnˇuje podpis na ba´zi RSA, DSA i ECDSA. ECDSA, vycha´zı´ z normy ANSI X9.62. Ta, stejneˇ jako FIPS 186-2, pak teˇzˇ´ı z pra´ce skupiny P1363 organizace IEEE, ktera´ definuje rˇadu asymetricky´ch algoritmu˚, vcˇetneˇ teˇch na ba´zi elipticky´ch krˇivek. ECC se zaby´va´ i ANSI norma X9.63. Dalsˇ´ı skupinu tvorˇ´ı ru˚zne´ normy ISO pouzˇ´ıvajı´cı´ ECC: naprˇ´ıklad ISO 14888-3 definuje digita´lnı´ podpis, ISO/IEC 15946 definuje podpisy, sˇifrova´nı´ a vy´meˇnu klı´cˇe, ISO/IEC 9798-3 autentizaci a ISO/IEC 11770-3 spra´vu klı´cˇu˚. Da´le jsou k dispozici ru˚zne´ internetove´ standardy IETF, vyuzˇ´ıvajı´cı´ elipticke´ krˇivky pro internetove´ pouzˇitı´ [?], standardy WAP fo´ra pro bezdra´tove´ komunikace, zejme´na mobilnı´ telefony (naprˇ´ıklad Wireless Transport Layer Security). V soucˇasnosti se staly elipticke´ kryptosyste´my alternativou ke klasicky´m asymetricky´m kryptosyste´mu˚m. Majı´ sve´ vy´hody zejme´na v rychlosti a mensˇ´ı na´rocˇnosti na hardware i software. Nasazenı´ elipticky´ch kryptosyste´mu˚ se zda´ by´t pomale´. Prˇ´ıcˇinou mu˚zˇe by´t to, zˇe klasicke´ asymetricke´ kryptosyste´my jsou pouzˇ´ıva´ny, studova´ny a zna´my de´le. Avsˇak vy´hodou kryptosyste´mu˚ na ba´zi elipticky´ch krˇivek je jejich velka´ kryptograficka´ bezpecˇnost vzhledem k dane´ velikosti klı´cˇe. Vy´znacˇneˇ kratsˇ´ı de´lka klı´cˇu˚ oproti klasicky´m kryptosyste´mu˚m vede k mensˇ´ım parametru˚m syste´mu, a tedy i k veˇtsˇ´ı vy´pocˇetnı´ efektivnosti algoritmu˚. Dalsˇ´ı vy´hodou je, zˇe fakticky vsˇechna jizˇ zna´ma´ pouzˇitı´ v syste´mech na ba´zi diskre´tnı´ho logaritmu (naprˇ. ElGamal) lze prˇeve´st do syste´mu˚ na ba´zi elipticky´ch krˇivek, cozˇ se podarˇilo zejme´na prˇi prˇevodu DSA na ECDSA.
Shrnutı´ kapitoly 7.2 V te´to podkapitole byl popsa´n algoritmus ECDSA. Da´le byly uvedeny parametry elipticke´ho kryptosyste´mu. Na za´veˇr byly uvedeny neˇktera´ doporucˇenı´ podle NIST.
?
Ota´zky ke kapitole 7.2
120
1. Porovnejte algoritmus ECDSA s algoritmem DSA. 2. Navrhneˇte algoritmus pro vy´meˇnu klı´cˇu˚ pro ECC (analogii algoritmu Diffie-Hellman).
Prˇedcha´zejı´cı´ ´ vod do teorie elipticU ky´ch krˇivek
Obsah Nahoru
121
Dalsˇ´ı Na´hodne´ a pseudona´hodne´ genera´tory
Prˇedcha´zejı´cı´ ECDSA - Elliptic Curve Digital Signature Algorithm
Obsah
Dalsˇ´ı Autentizace
Kapitola 8
Na´hodne´ a pseudona´hodne´ genera´tory ˇ asova´ na´rocˇnost kapitoly: 60 minut C Cı´l kapitoly: Po prostudova´nı´ te´to podkapitoly budete umeˇt vyjmenovat neˇktere´ z genera´toru˚ na´hodny´ch cˇı´sel pouzˇ´ıvany´ch v kryptografii a vysveˇtlit neˇktere´ prˇ´ıstupy ke generova´nı´ na´hodny´ch cˇı´sel. Kvalitnı´ zdroj na´hodny´ch cˇı´sel je v bezpecˇnosti IT stejneˇ cenny´ jako klı´cˇe, hesla apod. Na´hodna´ cˇı´sla se pouzˇ´ıvajı´ naprˇ. jako sˇifrovacı´ klı´cˇe v protokolu SSL, viz
WWW: SSL a pro tvorbu klı´cˇu˚ pro digita´lnı´ podpis (10.1) atd. One-Time Pad je jediny´m syste´mem, ktery´ pouzˇ´ıva´ jednora´zove´ heslo (ktere´ se nikdy nezopakuje), toto heslo je opravdu na´hodna´ sekvence (true random sequence) - idea´l. Proble´mem je vsˇak jejı´ generova´nı´. Za na´hodnou posloupnost bitu˚ povazˇujeme naprˇ´ıklad vy´sledek ha´zenı´ zcela soumeˇrnou mincı´: panna = 0, orel = 1. Prˇitom vy´sledek tohoto ha´zenı´ je zcela urcˇeny´ deterministicky´mi za´kony klasicke´ mechaniky. Tak kde je pak na´hodnost? Na´hodnost je du˚sledkem toho, zˇe vy´sledek panna nebo orel za´visı´ na pocˇa´tecˇnı´ch podmı´nka´ch (tj. vy´sˇce hodu a rotaci, kterou minci udeˇlı´me v okamzˇiku, kdy opousˇtı´ nasˇi ruku, tj. sı´le, kterou na minci pu˚sobı´me) tak jemneˇ, zˇe nenı´ v mozˇnostech nejmoderneˇjsˇ´ı techniky tuto sı´lu zmeˇrˇit s takovou prˇesnostı´, aby rˇesˇenı´ prˇ´ıslusˇne´ soustavy diferencia´lnı´ch rovnic umozˇnilo jakkoliv prˇedpoveˇdeˇt vy´sledek hodu. Stejneˇ tak bychom mohli tahat ze dvou cˇı´sel v klobouku. Zde vstupuje do hry jesˇteˇ nasˇe vu˚le, ani v tomto prˇ´ıpadeˇ ale neexistuje zˇa´dna´ shoda v tom, nakolik je nasˇe vu˚le skutecˇneˇ svobodna´ a nakolik je deterministicka´ v du˚sledku pu˚sobenı´ fyzika´lnı´ch za´konu˚ v nasˇem mozku a beˇhem jeho cele´ho vy´voje.
122
Dalsˇ´ım beˇzˇneˇ pouzˇ´ıvany´m genera´torem na´hodny´ch cˇı´sel je meˇrˇenı´ cˇasove´ho u´seku mezi dveˇma u´hozy do kla´vesnice pocˇı´tacˇe s prˇesnostı´ na tisı´ciny vterˇiny. Pokud je desetinna´ cˇa´st te´to doby licha´, tak jsme generovali 1, pokud je suda´, tak jsme generovali 0. Zdroje skutecˇneˇ na´hodny´ch cˇı´sel (posloupnostı´) (true random numbers) se hledajı´ teˇzˇko, na´sleduje vy´cˇet neˇktery´ch z na´hodny´ch genera´toru˚ : • genera´tory na ba´zi radioaktivnı´ho rozpadu, • hardwarovy´ genera´tor na cˇipsetech 8xx firmy Intel pouzˇ´ıva´ k tvorbeˇ nedeterministicke´ho proudu bitu˚ tepelny´ sˇum prˇipojene´ho rezistoru, • la´vove´ lampy,
WWW: La´vove´ lampy • kosmicke´ za´rˇenı´, • kolekce na´hodny´ch cˇı´sel (je jich jen omezeny´ pocˇet), • beˇzˇne´ periferie (mikrofon, zvukova´ karta...), • syste´move´ zdroje (syste´move´ datum a cˇas, statistika I/O operacı´...), • cˇinnost uzˇivatele (jizˇ zmı´neˇne´ u´hozy prˇi psanı´ na kla´vesnici, pohyby mysˇ´ı...). Zˇa´dna´ posloupnost cˇı´sel (bitu˚) vznikla´ na za´kladeˇ vy´pocˇtu (deterministicke´ho postupu) nemu˚zˇe by´t skutecˇneˇ na´hodna´. Tedy zˇa´dny´ software nedoka´zˇe generovat na´hodna´ cˇı´sla, mı´sto toho vytva´rˇ´ı pseudona´hodna´ cˇı´sla, ktera´ jsou odvozena od prvnı´ho, skutecˇneˇ na´hodne´ho. Genera´toru˚m generujı´cı´m pseudona´hodne´ sekvence se rˇ´ıka´ pseudorandom number generators (PRNG) - jsou to algoritmy, ktere´ ze vstupnı´ch dat v podobeˇ neˇjake´ kra´tke´ posloupnosti na´hodny´ch bitu˚ vyprodukujı´ dlouhou posloupnost bitu˚, ktera´ vypada´ na´hodneˇ. Tı´m se myslı´ to, zˇe neexistuje zˇa´dny´ „rychly´“ algoritmus, ktery´ by tuto posloupnost doka´zal odlisˇit od skutecˇneˇ na´hodne´ posloupnosti. „Rychly´m“ algoritmem se obvykle rozumı´ algoritmus, ktery´ vyzˇaduje dobu polynomia´lneˇ za´visejı´cı´ na de´lce posloupnosti n. Po sekvencı´ch vygenerovany´ch genera´tory na´hodny´ch resp. pseudona´hodny´ch sekvencı´ pro kryptograficke´ u´cˇely pozˇadujeme, aby meˇly na´sledujı´cı´ vlastnosti: • uniformnı´ distribuce - frekvence vy´skytu kazˇde´ cˇı´slice je prˇiblizˇneˇ stejna´, • neza´vislost - zˇa´dna´ hodnota v sekvenci nemu˚zˇe by´t odvozena z ostatnı´ch, • neprˇedvı´datelnost (unpredictability) - na´sledujı´cı´ hodnoty v sekvenci jsou neprˇedvı´datelne´. Jak uzˇ bylo rˇecˇeno, algoritmicke´ techniky pro generova´nı´ na´hodny´ch cˇı´sel jsou deterministicke´, proto generujı´ cˇı´sla, ktera´ nejsou ze statisticke´ho hlediska na´hodna´. Pokud je algoritmus dobry´, vy´sledna´ sekvence vsˇak mu˚zˇe u´speˇsˇneˇ projı´t testy na´hodnosti. Tyto statisticke´ testy (test frekvencı´ bitu 1, poker testy (testy vy´skytu n-tic bitu˚), testy se´riı´) se sdruzˇujı´ do tzv. testovacı´ch bateriı´ (NIST 800, FIPS 140...). Prˇ´ıklady genera´toru˚: 1. Linea´rnı´ kongruencˇnı´ genera´tor je pseudona´hodny´ genera´tor (nenı´ povazˇova´n za bezpecˇny´), kde je posloupnost na´hodny´ch cˇı´sel Xn generova´na takto:
123
Counter s periodou N C C+1
Km
E
Xi= EKm(C+1)
Obra´zek 8.1: Cyklicke´ sˇifrova´nı´.
Xn+1 = (a ∗ Xn + b) mod m, m > 0, 0 ≤ a, b < m, 0 ≤ X0 < m. De´lka periody (de´lka vy´stupnı´ sekvence v bitech, nezˇ se zacˇne opakovat) prˇi vhodneˇ zvoleny´ch a, b, m (naprˇ. b = 0, m je prvocˇı´slo) mu˚zˇe by´t sekvence dlouha´ m−1, typicky pro 32 bitovou aritmetiku m = 232 − 1. Na´hodneˇ je trˇeba vybrat pocˇa´tecˇnı´ heslo X0 . Prˇ´ıklad 8.1 a = 5, b = 0, m = 32, X0 = 1, vy´sledna´ posloupnost je {1, 5, 25, 29, 17, 21, 9, 13, 1, ..}, de´lka periody je tedy 8. 2 2. Kryptograficky generovana´ na´hodna´ cˇı´sla: – Cyklicke´ sˇifrova´nı´ zobrazene´ na obr. 8.1 se pouzˇ´ıva´ pro generova´nı´ relacˇnı´ho klı´cˇe z tzv. hlavnı´ho klı´cˇe (master key Km, ktery´ je chra´neˇny´). Vstupem je cˇı´tacˇ (counter) s periodou N , naprˇ. pro algoritmus DES (56-ti bitovy´ klı´cˇ) ma´ counter periodu 256 , po vygenerova´nı´ kazˇde´ho klı´cˇe se counter zvy´sˇ´ı o 1. Kazˇdy´ z vy´stupu˚ X0 , ..., XN −1 je zalozˇen na jine´ hodnoteˇ cˇı´tacˇe, vy´stupy jsou tedy navza´jem ru˚zne´. Protozˇe je hlavnı´ klı´cˇ Km chra´neˇny´, nenı´ vy´pocˇetneˇ mozˇne´ vydedukovat tajny´ klı´cˇ s jednoho nebo vı´ce drˇ´ıveˇjsˇ´ıch tajny´ch klı´cˇu˚ generovany´ch tı´mto zpu˚sobem. – Jednı´m z kryptograficky nejsilneˇjsˇ´ıch PRNG je ten, ktery´ je specifikova´n v ANSI X9.17 (viz obr. 8.2). Mnoho aplikacı´ pouzˇ´ıva´ tento genera´tor, mezi nejzna´meˇjsˇ´ı patrˇ´ı PGP (Pretty Good Privacy).
WWW: PGP Zde je vstupem DT i - 64-ti bitovy´ cˇas a datum, ktere´ se aktualizuje pro generova´nı´ kazˇde´ho nove´ho cˇı´sla a V i - pocˇa´tecˇnı´ hodnota (64b.), jina´ pro kazˇdou iteraci i, K1 , K2 jsou dva 56-ti bitove´ tajne´ klı´cˇe. Vy´stupem pak je Ri (pseudona´hodne´ cˇı´slo (64b.) generovane´ i-tou iteracı´ Ri = EDEK1,K2 [V i ⊕ EDEK1,K2 [DT i]]) a hodnota V i + 1 = EDEK1,K2 [Ri ⊕ EDEK1,K2 [DT i]]. Da´le EDE prˇedstavuje algoritmus TripleDES s dveˇma klı´cˇi. – DES v rezˇimu OFB. 3. Linear Feedback Shift Register (LFSR) se skla´da´ z n bitove´ho posuvne´ho registru a zpeˇtnovazebnı´ funkce (viz obr. 8.3). Pokazˇde´, kdyzˇ je pozˇadova´n bit vy´stupnı´ sekvence (vy´stupem je vzˇdy nejpraveˇjsˇ´ı bit), posunou se bity v registru o jeden bit doprava. Novy´ nejleveˇjsˇ´ı bit registru je funkcı´ teˇch bitu˚ registru (bity se Xorujı´), ktere´ jsou urcˇeny tzv. vypousˇteˇcı´m (inicializacˇnı´m) polynomem. Pocˇa´tecˇnı´m heslem je tzv. vypousˇteˇcı´ (inicializacˇnı´) sekvence.
124
K1,K2 DTi
EDE EDE Vi+1
Vi EDE Ri
Obra´zek 8.2: ANSI X9.17 PRNG. bn bn-1 bn-2
b2 b1
Obra´zek 8.3: LFSR.
LFSR generuje sekvenci dlouhou 2n − 1 bitu˚, ale jen neˇktere´ vypousˇteˇcı´ sekvence generujı´ posloupnost s maxima´lnı´ de´lkou. Jsou to polynomy formovane´ vypousˇteˇcı´ sekvencı´ +1 (to jsou ireducibilnı´ (primitivnı´) polynomy mod 2, naprˇ. polynom x32 + x7 + x5 + x3 + x2 + x + 1). Stupenˇ polynomu prˇedstavuje de´lku posuvne´ho registru. LFSR pouzˇ´ıvajı´ naprˇ. algoritmy A5, Gifford, ale nepouzˇ´ıvajı´ naprˇ. RC4, SEAL.
Shrnutı´ kapitoly 8 V te´to podkapitole jsme zavedli pojmy na´hodne´ a pseudona´hodne´ sekvence a jejich genera´tory. Blı´zˇe jsme se sezna´mili s linea´rnı´m kongruencˇnı´m genera´torem, genera´torem LFSR a dalsˇ´ımi genera´tory pouzˇ´ıvany´mi pro kryptograficke´ u´cˇely.
?
Ota´zky ke kapitole 8 1. Meˇjme linea´rnı´ kongruencˇnı´ genera´tor. Vy´beˇr parametru˚ genera´toru tak, aby generoval sekvenci s maxima´lnı´ periodou, nemusı´ nutneˇ mı´t za na´sledek sekvenci s „doboru na´hodnostı´ “. Prˇedpokla´dejme naprˇ. dva genera´tory Xn+1 = (6 ∗ Xn ) mod 13, Xn+1 = (7 ∗ Xn ) mod 13. Napisˇte obeˇ sekvence, ktere´ majı´ obeˇ maxima´lnı´ periodu. Ktera´ z teˇchto dvou sekvencı´ va´m prˇipada´ „vı´ce na´hodna´“? 2. Jaka´ je pseudona´hodna´ sekvence generovana´ LFSR, ktery´ je charakterizova´n b3 = 1, b2 = 0, b1 = 1 a inicializacˇnı´ hodnota vypousˇteˇcı´ sekvence je 100? Jaka´ bude pseudona´hodna´ sekvence inicializovana´ 011? Jaka´ je se relace mezi obeˇma sekvencemi? 3. Nakreslete dva LFSR, jejichzˇ vypousˇteˇcı´mi polynomy jsou polynomy:
125
(a) x4 + x2 , (b) x4 + x3 + x2 + x.
Prˇedcha´zejı´cı´ ECDSA - Elliptic Curve Digital Signature Algorithm
Obsah Nahoru
126
Dalsˇ´ı Autentizace
Prˇedcha´zejı´cı´ Na´hodne´ a pseudona´hodne´ genera´tory
Obsah
Dalsˇ´ı Autentizacˇnı´ techniky
Kapitola 9
Autentizace Obsah 9.1 Autentizacˇnı´ techniky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.1.1 Autentizace znalostı´ . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.1.2 Autentizace vlastnictvı´m . . . 9.1.3 Autentizacˇnı´ protokol . . . . ´ tok Man-in-the-Middle . . . 9.1.4 U 9.2 Biometrie . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 130 . . . . . . . . . . . . . . . . . . . . . 130 . . . . . . . . . . . . . . . . . . . . . 132 . . . . . . . . . . . . . . . . . . . . . 134
9.2.1 Otisky prstu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.2.2 Hlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.2.3 Za´peˇstnı´ zˇ´ıly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.2.4 Duhovka a sı´tnice . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
V te´to kapitole si blı´zˇe prˇiblı´zˇ´ıme pojem autentizace, uvedeme si trˇi za´kladnı´ zpu˚soby autentizace, sezna´mı´me se s u´tokem Man-in-the-Middle. Da´le si strucˇneˇ prˇiblı´zˇ´ıme neˇktere´ biometricke´ techniky.
Prˇedcha´zejı´cı´ Na´hodne´ a pseudona´hodne´ genera´tory
Obsah Nahoru
127
Dalsˇ´ı Autentizacˇnı´ techniky
Prˇedcha´zejı´cı´ Autentizace
9.1
Obsah
Dalsˇ´ı Biometrie
Autentizacˇnı´ techniky ˇ asova´ na´rocˇnost kapitoly: 45 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt vysveˇtlit u´cˇel autentizace, da´le budete umeˇt popsat princip autentizace znalostı´, autentizace vlastnictvı´m. Rovneˇzˇ umeˇt definovat pojem autentizacˇnı´ protokol a popsat u´tok Manin-the-Middle.
Ve sveˇteˇ informacı´ se na uzˇivateli pozˇaduje proka´za´nı´ jeho identity, drˇ´ıve nezˇ zı´ska´ prˇ´ıstup do syste´mu, k informacı´m cˇi sluzˇba´m. Syste´m musı´ mı´t du˚veˇru v uzˇivatele nebo uzˇivatele´ si musı´ du˚veˇrˇovat vza´jemneˇ. Aby byla tato du˚veˇra nastolena, musı´ uzˇivatel by´t schopen proka´zat, zˇe je tı´m, za koho se vyda´va´. Musı´ se tedy, jak rˇ´ıka´me, autentizovat. Autentizace je pojem, ktery´ je v obecne´ verˇejnosti pouzˇ´ıva´n ve velmi sˇiroke´m smyslu. Ve sve´ podstateˇ ma´ vsˇak znacˇit tu skutecˇnost, zˇe urcˇity´mi prostrˇedky se prokazuje garance, zˇe entita je tı´m, za koho se vyda´va´, nebo zˇe informace nebyla zneuzˇita neopra´vneˇny´mi stranami. Vztahuje se zejme´na k takovy´m specificky´m cˇinnostem, jako jsou: kontrola prˇ´ıstupu, autentizace entity, autentizace zpra´vy, kontrola integrity dat, uzna´nı´ neˇjake´ skutecˇnosti a autentizace (kryptograficky´ch) klı´cˇu˚. Prˇ´ıklad 9.1 Dvoustranna´ komunikace mezi A a B, kterˇ´ı jsou v ru˚zny´ch zemı´ch, jedna (cˇi obeˇ) z teˇchto zemı´ chce monitorovat vsˇechny jejich komunikace. A a B chteˇjı´ vsˇak by´t si ubezpecˇeni identitou kazˇde´ho z nich a integritou i pu˚vodem informacı´, ktere´ vysı´lajı´ a prˇijı´majı´. 2 Objektem autentizace (pro potrˇeby syste´mu˚ na zpracova´nı´ informacı´ a rozhodovacı´ch syste´mu˚) mohou by´t lidsˇtı´ uzˇivatele´, pocˇı´tacˇove´ syste´my, ale i procesy probı´hajı´cı´ v teˇchto syste´mech. Z hlediska autentizace se pojem uzˇivatel vztahuje ke vsˇem teˇmto objektu˚m. Vlastnı´ autentizacˇnı´ techniky se opı´rajı´ o: • znalost utajovane´ informace (heslo, PIN, kryptograficky´ klı´cˇ) - autentizace znalostı´ , • vlastnictvı´ unika´tnı´ho fyzicke´ho znaku - tokenu (naprˇ. magneticke´ a cˇipove´ karty) autentizace vlastnictvı´m, • biometrickou autentizaci (ma´ smysl pouze pro lidske´ uzˇivatele - rukou psany´ podpis, otisky prstu˚, hlas) - autentizace vlastnostı´ . Je trˇeba rozlisˇovat: • autentizaci entity (identifikaci - osoby, pocˇı´tacˇove´ho termina´lu, kreditnı´ karty atd.), • autentizaci zpra´vy (pu˚vodu a integrity dat).
128
Identifikacı´ cˇi autentizacı´ entity rozumı´me techniku, pomocı´ nı´zˇ se jednak jedna strana ubezpecˇı´ o totozˇnosti druhe´ strany a jednak druha´ strana se aktivneˇ u´cˇastnı´ jejı´ho pru˚beˇhu. Tedy takova´ technika, pomocı´ nı´zˇ jedna strana (oveˇrˇovatel) zı´ska´va´ ujisˇteˇnı´, zˇe identita druhe´ strany (zˇadatel, prokazujı´cı´ strana) je ta, jaka´ je deklarova´na. Cı´lem je zabra´nit za´meˇneˇ stran. Nejcˇasteˇjsˇ´ı technikou je, zˇe oveˇrˇujı´cı´ strana proveˇrˇ´ı spra´vnost zpra´vy, ktera´ demonstruje, zˇe zˇadatel vlastnı´ tajemstvı´, ktere´ je asociova´no se spra´vnou stranou. Prˇ´ıklad 9.2 Osoba vstupujı´cı´ do budovy urcˇite´ instituce musı´ prˇi vstupu proka´zat svoji totozˇnost. Provede to zasunutı´m chipove´ karty do cˇtecı´ho zarˇ´ızenı´ ve vchodu budovy. 2 Prˇ´ıklad 9.3 Oveˇrˇova´nı´ pravosti sˇeku je v bance prova´deˇno na za´kladeˇ porovna´nı´ podpisu na sˇeku s podpisem ulozˇeny´m v bance. 2 Autentizace integrity dat znacˇı´ techniku zabezpecˇujı´cı´ nenarusˇitelnost pu˚vodnı´ho obsahu zpra´vy. Autentizace pu˚vodu dat je zase technika umozˇnˇujı´cı´ da´t straneˇ prˇijı´majı´cı´ zpra´vu ubezpecˇenı´ o identiteˇ strany, ktera´ je pu˚vodcem zpra´vy. Prˇ´ıklad 9.4 Klasickou metodou zarucˇenı´ nenarusˇenı´ dat (i proka´za´nı´ jejich pu˚vodu) je vyuzˇ´ıva´nı´ pecˇeti. Nenarusˇenı´ pecˇeti dokumentuje integritu zpra´vy, pouzˇitı´ origina´lnı´ho pecˇetidla zase garantuje pu˚vod osoby zası´lajı´cı´ zpra´vu. 2 Autentizace zpra´vy je spojena: s ochranou integrity zpra´vy, s vyhodnocenı´m identity pu˚vodce, s nepopiratelnostı´ pu˚vodu zpra´vy, s elektronicky´m ekvivalentem podpisu zpra´vy. Spolu se zpra´vou je zası´la´n autentiza´tor, podpis cˇi autentizacˇnı´ ko´d zpra´vy (message authentication code - (MAC) - je nutne´ zva´zˇit problematiku znovuzasla´nı´ (replay) zpra´vy a MAC - je pozˇadova´no porˇadove´ cˇı´slo zpra´vy, cˇasova´ znacˇka cˇi odsouhlasene´ na´hodne´ hodnoty. Rozdı´l mezi autentizacı´ entity a autentizacı´ zpra´vy je na´sledujı´cı´. Autentizace zpra´vy sama o sobeˇ na´m neproka´zˇe, kdo je pu˚vodcem zpra´vy. Autentizace entity vede k potvrzenı´ totozˇnosti autentizujı´cı´ se strany. Autentizace entity obvykle tedy nema´ jiny´ smysl nezˇ tvrzenı´, zˇe jsem urcˇita´ entita, zatı´mco autentizace zpra´vy potvrzuje nenarusˇenost obsahu zpra´vy. Na za´veˇr te´to cˇa´sti se zmı´nı´me, zˇe zatı´mco neˇkdy je vyzˇadova´na pouze jednostranna´ autentizace (naprˇ. prˇi vstupu do budovy), jindy je nezbytna´ vza´jemna´ autentizace dvou nebo i vı´ce stran soucˇasneˇ (financˇnı´ transakce).
9.1.1
Autentizace znalostı´
V sˇedesa´ty´ch letech se s na´stupem pocˇı´tacˇu˚ rozsˇ´ırˇil zpu˚sob prˇihla´sˇenı´ se do syste´mu pomocı´ hesla. Heslo (password) je rˇeteˇzec znaku˚, obvykle v de´lce 6 − 10. Aby uzˇivatel zı´skal prˇ´ıstup, pouzˇije dvojici vstupu˚. Prvnı´m je jeho prohla´sˇenı´, kde sdeˇluje, za koho se vyda´va´ (obvykle uzˇivatelovo jme´no), druhy´m je pak vlastnı´ heslo. Syste´m oveˇrˇ´ı, zda heslo odpovı´da´ datu˚m, ktere´ ma´ ulozˇeny v databa´zi spolu s identitou uzˇivatele. Heslo je tedy urcˇite´ tajemstvı´ a demonstrace znalosti tohoto tajemstvı´ slouzˇ´ı pocˇı´tacˇi jako potvrzenı´ identity uzˇivatele. Tato metoda ma´ neˇkolik slabin. Jelikozˇ jedno a tote´zˇ heslo je pouzˇ´ıva´no vı´cekra´t, existuje pro neˇktere´ potencia´lnı´ narusˇitele mozˇnost zı´skat toto heslo prosty´m odpozorova´nı´m, naprˇ. v dobeˇ, kdy opra´vneˇny´ uzˇivatel vkla´da´ heslo pomocı´ kla´vesnice.
129
S rozvojem pocˇı´tacˇovy´ch sı´tı´ vsˇak naru˚sta´ i pravdeˇpodobnost uzˇitı´ dalsˇ´ıho zpu˚sobu vedoucı´ho k neopra´vneˇny´m prˇ´ıstupu˚m (k datu˚m, procesu˚m). Prˇi prˇilogova´nı´ se k sı´ti termina´lem umı´steˇny´m u´zemneˇ mimo za´kladnı´ syste´m existujı´ rea´lne´ mozˇnosti odchycenı´ autentizacˇnı´ch dat beˇhem prˇenosu v sı´ti - pokud je heslo prˇena´sˇeno v otevrˇene´ podobeˇ, stacˇı´, zˇe narusˇitel monitoruje pru˚beˇh prˇenosu. Dokonce neˇktere´ druhy programu˚, ktere´ jsou vyuzˇ´ıva´ny k monitorova´nı´ sı´t’ove´ho provozu, provedou tuto pra´ci pro narusˇitele samy. Ani jednoduche´ zasˇifrova´nı´ hesla v tomto prˇ´ıpadeˇ nepomu˚zˇe. Narusˇitel si prosteˇ nahraje zasˇifrovane´ heslo a takto ho pouzˇije. Pocˇı´tacˇovy´ syste´m nenı´ pak schopen odlisˇit narusˇitele a opra´vneˇne´ho uzˇivatele a povolı´ prˇ´ıstup. Trˇetı´ cestou, ktera´ ma´ sˇanci na u´speˇch, pokud je heslo kra´tke´ a potencia´lnı´ narusˇitel ma´ neomezenou mozˇnost vkla´da´nı´ ru˚zny´ch hodnot hesla, je vyzkousˇenı´ vsˇech mozˇny´ch variant. Lze vyuzˇ´ıt i toho, zˇe uzˇivatele´ majı´ tendenci pouzˇ´ıvat jako hesla snadno zapamovatelne´ vy´razy. Narusˇitel ze vsˇech potencia´lnı´ch hesel zkousˇ´ı hesla, ktera´ jsou pravdeˇpodobneˇjsˇ´ı. Pouzˇije k tomu trˇeba slovnı´k. Potom i prˇi probra´nı´ jen male´ho podı´lu vsˇech potencia´lnı´ch hesel zı´ska´ narusˇitel s vysokou pravdeˇpodobnostı´ nakonec spra´vne´ heslo. Syste´m nemusı´ mı´t ulozˇena vsˇechna kompletnı´ hesla. Stacˇı´ aby byl schopen rozlisˇit, zda je heslo platne´ cˇi nikoliv. K tomu jsou vyuzˇ´ıva´ny tzv. hashovacı´ funkce, ktere´ v modernı´ kryptografii hrajı´ podstatnou u´lohu (viz kap. 6).
9.1.2
Autentizace vlastnictvı´m
Autentizace vlastnictvı´m je zalozˇena na vlastnictvı´ unika´tnı´ho fyzicke´ho znaku (magneticke´ a cˇipove´ karty, autentizacˇnı´ho kalkula´toru). Pojem cˇipova´ karta by´va´ spojova´n s oznacˇenı´m neˇjake´ karty, jako naprˇ´ıklad karty s magneticky´m pruhem, opticke´, pameˇt’ove´ a mikroprocesorove´ karty. Vy´raz cˇipova´ karta (smart card) se vsˇak spı´sˇe vztahuje k pameˇt’ovy´m a mikroprocesorovy´m karta´m. Karta s magneticky´m pruhem obsahuje magneticky´ prouzˇek, ktery´ je na povrch karty. Jedna´ se o standardnı´ technologii pro bankovnı´ karty. Opticke´ karty jsou stejneˇ velke´ jako bankovnı´ karty. Jedna´ se o specia´lnı´ plastove´ karty, na ktere´ je zapisujı´ a cˇtou data pomocı´ laseru. Pameˇt’ove´ karty mohou uchova´vat ru˚zna´ data vcˇetneˇ financˇnı´ch, zdravotnı´ch, osobnı´ch a specia´lnı´ch informacı´. Karta ale nemu˚zˇe s daty prova´deˇt zˇa´dne´ informace. Mikroprocesorove´ karty se na prvnı´ pohled jevı´ jako standardnı´ plastove´ karty, ale jsou vybaveny integrovany´m obvodem (Integrated Circuit IC chip). Mikroprocesorove´ karty mohou uchova´vat informace, mohou prova´deˇt operace s daty. Karty jsou vybaveny kontakty, pomocı´ nichzˇ lze data cˇı´st prˇes specia´lnı´ zarˇ´ızenı´ na cˇtenı´ a za´pis dat (kontaktnı´). Existujı´ take´ i bezkontaktnı´ karty, ktere´ jizˇ nemajı´ kontakty, ale integrujı´ uvnitrˇ karty ante´nu. K datu˚m na karteˇ se prˇistupuje pomoci ra´diove´ho signa´lu. Naprˇ. v souvislosti s asymetrickou kryptografiı´ mu˚zˇeme pouzˇ´ıvat tzv. hardwarovy´ klı´cˇ (cˇipova´ karta, USB zarˇ´ızenı´), ktery´ uchova´va´ soukromy´ tak, zˇe ten nikdy tento hardwarovy´ klı´cˇ neopousˇtı´, generuje dvojici soukromy´ a verˇejny´ klı´cˇ, generuje podklady pro zˇa´dost o certifika´t, vydany´ certifika´t lze ulozˇit do tohoto hardwarove´ho klı´cˇe.
9.1.3
Autentizacˇnı´ protokol
Slovo protokol je obvykle cha´pa´no jako urcˇity´ postup vcˇetneˇ souvisejı´cı´ch na´lezˇitostı´ (naprˇ´ıklad diplomaticky´ protokol).
130
Kryptograficky´ protokol je sdı´leny´ algoritmus definovany´ posloupnostı´ kroku˚, ktere´ precizujı´ aktivity vyzˇadovane´ na dvou cˇi vı´ce entita´ch s cı´lem dosa´hnout urcˇite´ho bezpecˇnostnı´ho cı´le. Tento algoritmus vyuzˇ´ıva´ kryptograficke´ transformace. Cı´lem kryptograficky´ch protokolu˚ by´va´ autentizace u´cˇastnı´ku˚ protokolu, utvorˇenı´ dohody o kryptograficke´m klı´cˇi, vy´meˇna teˇchto klı´cˇu˚ apod. Neˇkdy se v literaturˇe pouzˇ´ıva´ i pojem autentizacˇnı´ (identifikacˇnı´) protokol cˇi protokol typu vy´zva-odpoveˇd’ . Prˇ´ıklad 9.5 Strany A a B si potrˇebujı´ mezi sebou vymeˇnit tajne´ klı´cˇe pro symetrickou sˇifru. Pouzˇijı´ naprˇ´ıklad pomeˇrneˇ jednoduchy´ Needham-Schroederu˚v protokol (viz [4]) s verˇejny´m klı´cˇem. To znamena´, zˇe strany A a B se prˇedem dohodly na syste´mu asymetricke´ho algoritmu a majı´ vza´jemneˇ k dispozici verˇejne´ klı´cˇ zmı´neˇne´ho algoritmu. Pouzˇijme na´sledujı´cı´ znacˇenı´: KV A je verˇejny´ klı´cˇ strany A, KV B je verˇejny´ klı´cˇ strany B, KA je tajny´ klı´cˇ pro symetrickou sˇifru vygenerovany´ stranou A (prˇedmeˇt vy´meˇny), KB je tajny´ klı´cˇ pro symetrickou sˇifru vygenerovany´ stranou B (prˇedmeˇt vy´meˇny). Zpra´vy protokolu probı´hajı´ na´sledovneˇ: A −→ B : KV B (KA , A) (Z1), B −→ A : KV A (KA , KB ) (Z2), A −→ B : KV B (KB ) (Z3) Tedy slovneˇ: 1. A nejprve zasˇle straneˇ B zpra´vu (Z1), 2. B zı´ska´ desˇifrova´nı´m klı´cˇ KA a posˇle A zpra´vu (Z2), 3. strana A po desˇifrova´nı´ zpra´vy (Z2) oveˇrˇ´ı, zda zı´skany´ klı´cˇ KA souhlası´ s tı´m, ktery´ zaslala straneˇ B ve zpra´veˇ (Z1) - tı´m strana A ma´ provedenu jak autentizaci strany B, tak i ujisˇteˇnı´, zˇe strana B zna´ KA , 4. A posˇle B zpra´vu (Z3), 5. strana B po desˇifrova´nı´ zpra´vy (Z3) oveˇrˇ´ı, zda zı´skany´ klı´cˇ KB souhlası´ s tı´m, ktery´ zaslala ve zpra´veˇ (Z2). Vy´sledkem pru˚beˇhu tohoto autentizacˇnı´ho protokolu je vza´jemna´ autentizace obou entit, jimi vygenerovany´ch klı´cˇu˚ a prˇenos utajovane´ho klı´cˇe. Obeˇ strany jsou si tedy po provedenı´ protokolu jisty identitou sve´ho proteˇjsˇku. Veˇdı´, zˇe klı´cˇ KA (resp. KB ) mohla vygenerovat pouze strana A (resp. strana B). Vzhledem ke klı´cˇi, ktery´ spocˇtou jako f (KA , KB ) (jejich funkcˇnı´ hodnotu pomocı´ prˇedem dohodnute´ funkce f ) majı´ za´ruku, zˇe ho znajı´ pouze strany A a B. 2 Vy´hodou tohoto, a samozrˇejmeˇ dalsˇ´ıch autentizacˇnı´ch protokolu˚, je reciprocita autentizace (obeˇ strany majı´ stejnou mozˇnost oveˇrˇenı´ sve´ identity) stejneˇ jako nı´zky´ pocˇet pozˇadovany´ch vy´pocˇetnı´ch operacı´ a vza´jemneˇ zası´lany´ch zpra´v. Shrnˇme nynı´ cı´le autentizacˇnı´ch protokolu˚. Z hlediska oveˇrˇujı´cı´ strany vy´sledkem protokolu autentizujı´cı´ho entitu je bud’ prˇijetı´ identity zˇadatele, nebo ukoncˇenı´ pozˇadavku jeho zamı´tnutı´m. Navı´c strana B nenı´ schopna zneuzˇ´ıt identifikacˇnı´ vy´meˇnu s A tak, aby provedla za´meˇnu totozˇnosti strany A s trˇetı´ stranou C (tj. strana B naprˇ. nemu˚zˇe pozdeˇji tvrdit, zˇe komunikovala se stranou C). Pravdeˇpodobnost, zˇe trˇetı´ strana C (odlisˇna´ od A) projde protokolem a podarˇ´ı se jı´ hra´t roli strany A, je zanedbatelneˇ nı´zka´. Strana B tudı´zˇ mu˚zˇe prˇijmout totozˇnost strany A.
131
Prˇ´ıkladem autentizacˇnı´ch protokolu˚ na ba´zi symetricky´ch sˇifer jsou naprˇ. NeedhamSchroederu˚v protokol, protokol syste´mu Kerberos, atd. Z protokolu˚ na ba´zi syste´mu˚ s verˇejny´m klı´cˇem uvedeme naprˇ. modifikovany´ Needham-Schroederu˚v protokol a protokol X-509 (vsˇe viz [2], [3], [4]). Problematika autentizacˇnı´ch protokolu˚ je velmi sˇiroka´, my se jı´ da´le nebudeme zaby´vat.
9.1.4
´ tok Man-in-the-Middle U
Pro neˇktere´ typy autentizacˇnı´ch protokolu˚, zejme´na teˇch, ktere´ ustavujı´ klı´cˇe (key establishment protocols), je du˚lezˇity´m pojmem du˚veˇryhodna´ trˇetı´ strana (trusted third party). V sı´ti, kde vı´ce entit spolu komunikuje a ma´ potrˇebu spolu navazovat ru˚zne´ typy autentizovany´ch spojenı´, je cˇasto uzˇitecˇne´ vydeˇlit jednu entitu a sveˇrˇit jı´ urcˇite´ bezpecˇnostnı´ funkce. Tato entita, ktere´ budeme rˇ´ıkat du˚veˇryhodna´ trˇetı´ strana (trusted third party, TTP), hraje potom v autentizacˇnı´ch protokolech roli urcˇite´ho prostrˇednı´ka, zprostrˇedkovatele. Naprˇ. mu˚zˇe slouzˇit jako bezpecˇna´ schra´nka pro tajne´ kryptograficke´ klı´cˇe, vede databa´zi uzˇivatelu˚ atd. Princip du˚veˇryhodne´ trˇetı´ strany je zavedeny´ i v „beˇzˇne´m“ zˇivoteˇ. Jsou to nejen nota´rˇi, ale svy´m zpu˚sobem i soudci a „podobnı´ “. Musı´ prˇitom prˇedevsˇ´ım v komercˇnı´ pocˇı´tacˇove´ oblasti platit, zˇe trˇetı´ strana ma´ co mozˇna´ nejveˇtsˇ´ı mı´ru za´jmu by´t skutecˇneˇ du˚veˇryhodna´ jak jen to jde, protozˇe kredit ztraceny´ v prˇ´ıpadeˇ porusˇenı´ du˚veˇryhodnosti by se velmi teˇzˇko zı´ska´val zpeˇt. Jak du˚lezˇita´ mu˚zˇe by´t role TTP si uka´zˇeme nynı´. Meˇjme naprˇ. takovy´to zna´my´ proble´m: Alice a Bob spolu chteˇjı´ bezpecˇneˇ komunikovat a jelikozˇ znajı´ principy asymetricke´ kryptografie tak veˇdı´, zˇe je to mozˇne´, anizˇ by si museli prˇedem dohodnout symetricky´ sˇifrovacı´ klı´cˇ. Typicka´ uka´zka toho, jak to fungovat nebude : • Alice posˇle Bobovi svu˚j verˇejny´ klı´cˇ. • Bob posˇle Alici svu˚j verˇejny´ klı´cˇ. Tı´m majı´ navza´jem svoje klı´cˇe a mu˚zˇou bezpecˇneˇ komunikovat. Prˇ´ıpadny´ u´tocˇnı´k M (Mallory) uprostrˇed oblafne obeˇ strany velmi jednodusˇe: • Alice posˇle svu˚j verˇejny´ klı´cˇ. • Mallory ho zachytı´ a nahradı´ ho svy´m verˇejny´m klı´cˇem. • Bob posˇle svu˚j verˇejny´ klı´cˇ. • Mallory ho zachytı´ a nahradı´ ho svy´m verˇejny´m klı´cˇem. Nynı´ si stejneˇ jako v prvnı´ uka´zce obeˇ strany myslı´, zˇe majı´ verˇejny´ klı´cˇ toho druhe´ho. Mı´sto toho ale obeˇ majı´ klı´cˇ Mallory. Kdykoliv tak neˇco sˇifrovane´ho posˇlou, Mallory to zachytı´, desˇifruje svy´m soukromy´m klı´cˇem, prˇecˇte si to (poprˇ. zameˇnı´), zasˇifruje verˇejny´m klı´cˇem druhe´ strany a odesˇle. Prˇ´ıjemce (Bob) nic nepozna´, dokonce ani v prˇ´ıpadeˇ, zˇe by zpra´va byla Alicı´ digita´lneˇ podepsa´na. Mallory to mu˚zˇe udeˇlat totizˇ stejneˇ tak. Mallory aplikoval u´tok Man-in-the-Middle, cˇesky by se dalo rˇ´ıci „osoba uprostrˇed“, cozˇ je jeden z nejzna´meˇjsˇ´ıch proble´mu˚ v informacˇnı´ bezpecˇnosti.
132
Du˚veˇryhodna´ trˇetı´ strana je v tomto prˇ´ıpadeˇ certifikacˇnı´ autorita. Jejı´ podpis na Alicine´m klı´cˇi potvrzuje Bobovi, zˇe je skutecˇneˇ Alicin. Bob nema´ nejmensˇ´ı du˚vod veˇrˇit nepodepsane´mu podvrhnute´mu klı´cˇi, ve skutecˇnosti od Mallory. Je zde videˇt, zˇe pra´veˇ na du˚veˇryhodnosti trˇetı´ strany cely´ syste´m stojı´. Pokud bude certifikacˇnı´ autorita podplatitelna´ nebo jejı´ data, technologie, servery apod. budou nedostatecˇneˇ zabezpecˇene´, Mallory bude ve skutecˇnosti jesˇteˇ v lepsˇ´ı situaci, protozˇe (falesˇny´) podpis klı´cˇe bude tı´m vı´c Boba klamneˇ ujisˇt’ovat o jeho pravosti.
Shrnutı´ kapitoly 9.1 V te´to podkapitole jsme se blı´zˇe sezna´mili s pojmem autentizace, prˇiblı´zˇili jsme si principy a proble´my autentizace znalostı´a autentizace vlastnictvı´m. Dalsˇ´ım novy´m pojmem te´to podkapitoly je pojem autentizacˇnı´ protokol a u´tok Man-in-the-Middle.
?
Ota´zky ke kapitole 9.1 1. K cˇemu slouzˇ´ı autentizace? 2. Existujı´ neˇjake´ dalsˇ´ı proble´my kromeˇ uvedeny´ch prˇi autentizaci znalostı´ (heslem)? 3. Jaka´ je u´loha du˚veˇryhodne´ trˇetı´ strany?
Prˇedcha´zejı´cı´ Autentizace
Obsah Nahoru
133
Dalsˇ´ı Biometrie
Prˇedcha´zejı´cı´ Autentizacˇnı´ techniky
9.2
Obsah
Dalsˇ´ı Digita´lnı´ podpis a certifikaty
Biometrie ˇ asova´ na´rocˇnost kapitoly: 20 minut C Cı´l kapitoly: Po prostudova´nı´ te´to prˇehledove´ podkapitoly budete umeˇt vyjmenovat jednotlive´ typy biometricky´ch technologiı´.
Biometricke´ technologie jsou prostrˇedkem k dosazˇenı´ rychle´ a uzˇivatelsky prˇ´ıjemne´ autentizace (autentizace vlastnostı´) s vysoky´m stupneˇm prˇesnosti. Biometrie poskytuje automatizovane´ metody rozpozna´va´nı´ osob zalozˇene´ na fyziologicky´ch charakteristika´ch nebo rysech chova´nı´. Prˇ´ıkladem lidsky´ch charakteristik slouzˇ´ıcı´ch pro biometricke´ rozpozna´va´nı´ jsou: otisky prstu˚, DNA, hlas, geometrie ruky, za´peˇstnı´ zˇ´ıly, oblicˇej, duhovka, sı´tnice, vlastnorucˇnı´ podpis, lu˚zˇko nehtu, dynamika stisku kla´vesy. V te´to cˇa´sti textu se zmı´nı´me strucˇneˇ jen o neˇktery´ch, jejich u´plny´ vy´cˇet prˇesahuje rozsah textu vymezeny´ te´to problematice. Pro vsˇechny biometricke´ technologie platı´, zˇe pokud chceme autentizovat urcˇitou osobu pomocı´ biometricke´ vlastnosti, musı´me mı´t k dipozici jizˇ drˇ´ıve porˇ´ızeny´ srovna´vacı´ vzor (naprˇ. sejmuty´ otisk prstu˚ dane´ osoby), se ktery´m budeme porovna´vat novy´ vzor. Za´kladnı´ pozˇadavky kladene´ na syste´m: • uzˇivatelska´ prˇ´ıveˇtivost syste´mu, • cena syste´mu - cenu takove´ho syste´mu tvorˇ´ı za´kladnı´ cena senzoru˚, ale take´ srovna´vacı´ a rozpozna´vacı´ software, • prˇesnost: u biometricky´ch syste´mu˚ se hovorˇ´ı o: – FAR (false-acceptance rate), cozˇ je procento prˇijaty´ch podvodnı´ku˚, – FRR (false-rejection rate), procento odmı´tnuty´ch autorizovany´ch uzˇivatelu˚, – ERR (equal-error rate), jestlizˇe FAR je rovna FRR. V prˇ´ıpadeˇ biometricky´ch syste´mu˚ je vhodne´ uvazˇovat equal-error nebo prˇinejmensˇ´ım false-acceptance a false-rejection rate dohromady. Pokud uvedene´ pozˇadavky shrneme zjistı´me, zˇe dobry´ biometricky´ syste´m je takovy´, ktery´ je levny´, rychly´, prˇesny´ a jednodusˇe pouzˇitelny´. Du˚lezˇite´ atributy biometricky´ch syste´mu˚: • prˇesnost (uda´va´ FAR a FRR), • na´chylnost k chyba´m (jaka´ je sˇance vyrobenı´ duplika´tu biometricky´ch dat?), • jednoduchost pouzˇitı´ (je trˇeba zvla´sˇtnı´ manua´l nebo sˇkolenı´?), • aplikovatelnost (je skupina uzˇivatelu˚ neˇjaky´m zpu˚sobem uzavrˇena´?),
134
Obra´zek 9.1: Vzory.
• rychlost verifikace (jak dlouho je trˇeba cˇekat na vy´sledek biometricke´ metody?), • velikost pameˇti pro identifikacˇnı´ zna´mky (vejde se biometricka´ informace naprˇ . na cˇa´rovy´ ko´d, pameˇt’ovou kartu nebo cˇip?), • dlouhodoba´ stabilita (jak stabilnı´ jsou meˇrˇene´ biometricke´ vlastnosti, lze metodu pouzˇ´ıvat pro stejne´ uzˇivatele bez upgrade i za neˇkolik let?), • oveˇrˇena´ technologie (jak cˇasto se syste´m pouzˇ´ıva´ a jak funguje?), • nemalou roli hraje take´ cena prˇ´ıstroje (tj. hardware + software).
9.2.1
Otisky prstu˚
Pokud chceme autentizovat urcˇitou osobu pomocı´ otisku prstu˚ , sejmeme jı´ novy´ otisk prstu, a ten porovna´me s otiskem pu˚vodnı´m (se zrovna´vacı´m vzorem). Tento prˇ´ıpad se nejcˇasteˇji vyskytuje v informacˇnı´ch technologiı´ch, kdy pomocı´ elektronicke´ho snı´macı´ho zarˇ´ızenı´ sejmeme a na´sledneˇ oveˇrˇ´ıme totozˇnost urcˇite´ osoby. Narozdı´l od jiny´ch fyziologicky´ch charakteristik se otisky prstu˚ nemeˇnı´ a zu˚sta´vajı´ stejne´ po cely´ zˇivot. Vzory na ku˚zˇi nejsou deˇdicˇne´ a cˇloveˇku se vyvı´jı´ jizˇ ve stavu embrya. Beˇhem zˇivota se tyto vzory na ku˚zˇi mohou zmeˇnit jen dı´ky nehody, prˇ´ıcˇinou zraneˇnı´, popa´lenı´ cˇi jine´ho neobvykle´ho du˚vodu. Spolehliveˇ bylo doka´za´no, zˇe zˇa´dnı´ dva jednotlivci nemajı´ tyto vzory na ku˚zˇi stejne´, dokonce ani u jednovajecˇny´ch dvojcˇat se od doby, kdy vznikla veˇda zaby´vajı´cı´ se studiem otisku prstu˚, nenasˇel prˇ´ıpad dvou stejny´ch otisku˚ prstu˚. Podı´va´te-li se na vnitrˇnı´ povrch svy´ch prstu˚, dlanı´ a na sva´ chodidla, zpozorujete vyvy´sˇene´, drobne´, bra´zdovite´ u´tvary, ktere´ vytva´rˇejı´ ru˚zne´ vzory. Tyto vzory se deˇlı´ do trˇ´ı hlavnı´ch kategoriı´. Jsou to smycˇky (loop), spira´ly (whorl) a oblouky (arch) (obr. 9.1). Identifikace otisku˚ je soucˇasne´ porovna´va´nı´ jednoho otisku s druhy´m pomocı´ identifikacˇnı´ch bodu˚. Tyto identifikacˇnı´ body se nacha´zejı´ v ry´ha´ch vzoru, anglicky se jim rˇ´ıka´ minutie (drobny´ detail). V souvislosti s identifikacˇnı´mi body u otisku prstu˚ mluvı´me o ru˚zny´ch zbu˚sobech, jak je dana´ kontura otisku prˇerusˇena´. Jedna´ se o anatomicke´ rysy kazˇde´ho cˇloveˇka. Nejbeˇzˇneˇjsˇ´ımi druhy identifikacˇnı´ch bodu˚ jsou naprˇ. rozdvojenı´ (bifurcation), rozveˇtvenı´ - kdyzˇ se konce dvou ry´h spojı´ ve vidlicˇku, kra´tka´ ry´ha, ukoncˇovacı´ ry´ha, ohrazenı´ (enclosure) - kde se setkajı´ dveˇ ry´hy a vytvorˇ´ı vidlicˇky na obou koncı´ch (obr. 9.2). I jeden neobjasneˇny´ rozdı´l identifikacˇnı´ch bodu˚ mezi dveˇmi otisky (obr. 9.3) je dostatecˇny´, aby zarucˇil, zˇe tyto pocha´zejı´ z ru˚zny´ch zdroju˚. Kolik identifikacˇnı´ch bodu˚ se tedy musı´ shodovat, aby bylo prokazatelne´, zˇe dva otisky jsou totozˇne´? Ve veˇtsˇineˇ evropsky´ch zemı´ je soudem pozˇadova´no 16 shodny´ch identifikacˇnı´ch bodu˚, aby byly otisky prohla´sˇeny za identicke´.
135
Obra´zek 9.2: Identifikacˇnı´ body.
Obra´zek 9.3: Porovna´nı´ dvou otisku˚.
136
Obra´zek 9.4: Za´peˇstnı´ zˇ´ıly.
9.2.2
Hlas
Tvar a rezonance voka´lnı´ho traktu (hlasivek, u´stnı´ dutiny, jazyka, zubu˚) je dostatecˇneˇ odlisˇny´ u ru˚zny´ch osob. Prˇi rozpozna´va´nı´ hlasu mluvcˇı´ vyslovı´ slovo a syste´m urcˇı´, ktere´ slovo v databa´zi odpovı´da´ te´to vy´slovnosti. Toto urcˇenı´ syste´m provede na za´kladeˇ porovna´nı´ vyrˇcˇene´ vy´slovnosti s mnozˇinou vy´slovnostı´ ulozˇenou v databa´zi a vy´beˇrem te´, ktera´ vzhledem k ostatnı´m slovu˚m v te´to mnozˇineˇ vyhovuje vyrˇcˇene´mu nejle´pe. Rozpozna´va´nı´ vybı´ra´ nejveˇtsˇ´ı shodu. Prˇi oveˇrˇova´nı´ hlasu je vy´slovnost mluvcˇı´ho porovna´na s drˇ´ıve porˇ´ızeny´m za´znamem („otiskem hlasu“) a syste´m musı´ urcˇit, do jake´ mı´ry se s nı´m shoduje. Tato shoda je absolutnı´, nikoliv relativnı´. Oveˇrˇova´nı´ je zalozˇeno na shodeˇ u´plne´.
9.2.3
Za´peˇstnı´ zˇ´ıly
Jedna´ se o biometrickou metodu pouzˇ´ıvajı´cı´ za´znamy podkozˇnı´ch zˇil jako vzorku˚ pro jednoznacˇnou identifikaci urcˇite´ osoby. Technologie zejme´na umozˇnˇuje vytvorˇit z takovy´chto vzorku˚ cˇa´rovy´ ko´d pro jedince. Zˇ´ıly prˇedstavujı´ velke´, robustnı´, stabilnı´ a opakovatelne´ vzorky. Mohou by´t snadno zobrazeny v ra´mci za´peˇstı´, dlaneˇ a dorsa´lnı´ cˇa´sti ruky. IR obra´zky (cˇernobı´le´) zˇil jsou prˇevedeny do bina´rnı´ho tvaru, zkomprimova´ny a ulozˇeny ve srovna´vacı´ databa´zi 2D obra´zku˚ zˇil. Osoby jsou identifikova´ny oveˇrˇenı´m vu˚cˇi odpovı´dajı´cı´mu vzorku v te´to srovna´vacı´ databa´zi v cˇase kratsˇ´ım nezˇ 200 milisekund, Uvedene´ obra´zky (obr. 9.4) ukazujı´ postup od cˇernobı´ly´ch IR obra´zku˚ zˇil, prˇes bina´rnı´ vzorek, po XOR dvou automaticky orˇezany´ch obra´zku˚ zˇil jedne´ a te´ same´ osoby. Struktura lidsky´ch ce´v je jednoznacˇnou charakteristikou osoby. Identicka´ dvojcˇata majı´ odlisˇne´ vzory zˇil. Vzory zˇil se jen velmi obtı´zˇneˇ dajı´ znicˇit, skry´t cˇi zmeˇnit. Je nutna´ jen mala´ rozlisˇovacı´ schopnost, proto se pouzˇ´ıva´ jednoducha´ metoda IR obra´zku˚. Struktura zˇil take´ da´va´ prˇ´ılezˇitost levny´m kapesnı´m identifikacˇnı´m biometricky´m klı´cˇu˚m. Ty se generujı´ ze za´peˇstnı´ch nebo dorsa´lnı´ch zˇil.
9.2.4
Duhovka a sı´tnice
Metoda je zalozˇena na snı´ma´nı´ lidske´ duhovky a sı´tnice.
137
Duhovka. Stejneˇ jako naprˇ´ıklad otisky prstu˚, i duhovku oka ma´ kazˇdy´ cˇloveˇk jedinecˇnou. Proto se tohoto faktu vyuzˇ´ıva´ pro identifikaci osob, zvla´sˇteˇ v prˇ´ıpadeˇ opra´vneˇnı´ k prˇ´ıstupu do informacˇnı´ho syste´mu. Je tu vzhledem k otisku˚m prstu˚ vy´znamny´ rozdı´l. Zatı´mco existuje asi 60 odlisˇny´ch forem otisku˚, ktere´ mohou by´t ru˚zneˇ kombinova´ny na jednom otisku, v prˇ´ıpadeˇ duhovky je toto cˇı´slo (pocˇet ru˚zny´ch vzoru˚-forem duhovky) mnohem vysˇsˇ´ı, a sice vı´ce nezˇ 400. Duhovky dvou identicky´ch dvojcˇat jsou samozrˇejmeˇ rozdı´lne´ a jedinecˇne´. Ve skutecˇnosti dokonce i obeˇ duhovky jednoho cˇloveˇka jsou rozdı´lne´ a jedinecˇne´. Z tohoto pohledu neexistuje jina´ externı´ biometricka´ charakteristika cˇloveˇka, ktera´ by byla vı´ce rozlisˇovacı´ nezˇ pra´veˇ duhovka. Prˇ´ıstroje pro cˇtenı´ duhovky Co se ty´cˇe automaticke´ identifikace, tak ta se povazˇuje za idea´lnı´ za´klad pokrocˇile´ho identifikacˇnı´ho syste´mu. Duhovka je externeˇ viditelna´. Porˇ´ızenı´ biometricky´ch dat se prova´dı´ standardnı´ videokamerou. Je nemozˇne´ duhovku chirurgicky modifikovat. Charakteristicke´ rysy duhovky se stabilizujı´ brzy po narozenı´ a zu˚sta´vajı´ beze zmeˇny po cely´ zˇivot cˇloveˇka. Duhovka dokonce poskytuje prˇirozenou obranu vu˚cˇi podvodu nebo padeˇlku˚m. Fotografie oka, dokonce ani skleneˇne´ oko nemohou prˇelstı´t takovy´to syste´m. Sı´tnice. Snı´macˇe sı´tnice lidske´ho oka se jevı´ jako nejbezpecˇneˇjsˇ´ı biometricka´ identifikacˇnı´ metoda. Neexistujı´ chybna´ prˇijetı´ a chyba se take´ jevı´ by´t nemozˇnou. Bohuzˇel FRR je vysoka´, a proto tato metoda nemu˚zˇe by´t jednodusˇe obecneˇ prˇijatelna´. Takzˇe pouzˇitı´ te´to metody se redukuje jen na velmi bezpecˇne´ kontrolnı´ syste´my jako jsou jaderne´ reaktory nebo vojenska´ zarˇ´ızenı´. Procento odmı´tnuty´ch autorizovany´ch uzˇivatelu˚ je 12.4% (jednopokusove´), 0.4% (trojpokusove´). Procento chybny´ch prˇijetı´ je nulove´. Nelze vyra´beˇt padeˇlky, falesˇne´ ocˇi, kontaktnı´ cˇocˇky nebo ocˇnı´ implanta´ty syste´m okamzˇiteˇ odhalı´. Rychlost identifikace je do dvou sekund. Velikost pameˇti nutne´ pro uchova´nı´ identifikacˇnı´ch zna´mek je 40 bytu˚. Vzorek ce´v sı´tnice je dlouhodobeˇ velmi stabilnı´.
Shrnutı´ kapitoly 9.2 V te´to prˇehledove´ podkapitole jsme se sezna´mili s pojmem Biometrie, uvedli jsme si pozˇadavky kladene´ na biometricke´ technologie a strucˇneˇ jsme si popsali principy neˇktery´ch z nich.
?
Ota´zky ke kapitole 9.2 1. O jaky´ typ autentizace se v prˇ´ıpadeˇ biometricky´ch technik jedna´? 2. Seznamte se blı´zˇe s biometricky´mi technikami, ktere´ v te´to podkapitole nebyly blı´zˇe popsa´ny.
Prˇedcha´zejı´cı´ Autentizacˇnı´ techniky
Obsah Nahoru
138
Dalsˇ´ı Digita´lnı´ podpis a certifikaty
Prˇedcha´zejı´cı´ Biometrie
Obsah
Dalsˇ´ı Digita´lnı´ podpis
Kapitola 10
Digita´lnı´ podpis a certifikaty Obsah 10.1 Digita´lnı´ podpis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 10.2 Digital Signature Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . 143 10.3 Certifika´ty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.3.1 Certifika´t X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 10.3.2 Vy´znacˇne´ jme´no . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 10.3.3 Hierarchie certifika´tu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . 149 ˇ eteˇzec certifika´tu˚ . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.3.4 R 10.3.5 Oveˇrˇenı´ rˇeteˇzce certifika´tu˚ . . . . . . . . . . . . . . . . . . . . . . . 150
V te´to kapitole se sezna´mı´me s digita´lnı´m podpisem, se standardem pro digita´lnı´ podpis, algoritmem DSA. Da´le si prˇiblı´zˇ´ıme problematiku certifika´tu˚ a certifikacˇnı´ch autorit.
Prˇedcha´zejı´cı´ Biometrie
Obsah Nahoru
139
Dalsˇ´ı Digita´lnı´ podpis
Prˇedcha´zejı´cı´ Digita´lnı´ podpis a certifikaty
10.1
Obsah
Dalsˇ´ı Digital Signature Algorithm
Digita´lnı´ podpis
ˇ asova´ na´rocˇnost kapitoly: 20 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt vysveˇtlit, co je to digita´lnı´ podpis a porozumı´te dveˇma typu˚m digita´lnı´ho podpisu - digita´lnı´mu podpisu s obnovou zpra´vy a digita´lnı´mu podpisu v dodatku zpra´vy. Nejprve se podı´vejme na klasicky´ podpis a trochu si ho rozeberme. K samotne´mu podpisu vzˇdy patrˇ´ı neˇjaky´ urcˇity´ dokument, ktery´ jsme podepsali, nebo ktery´ pra´veˇ podepisujeme. V za´sadeˇ lze rˇ´ıci, zˇe podpis na dokumentu vytva´rˇ´ı urcˇitou situaci, ktera´ je da´le jizˇ nevratna´. Podpisem je obvykle jednoznacˇneˇ oznacˇena osoba, ktera´ dany´ dokument podepsala. Da´le pak z vlastnı´ povahy podepsane´ho dokumentu vyply´va´ konkre´tnı´ smysl (u´cˇel) samotne´ho podpisu. Prˇ´ıklad 10.1 Podepisujı´cı´ osoba podpisem dokumentu naprˇ.: • poskytuje du˚kaz, zˇe se cı´tı´ by´t obsahem dokumentu (smlouvy) va´za´na, • podepsany´ dokument mu˚zˇe slouzˇit jine´ straneˇ jako veˇrohodna´ za´ruka pro splneˇnı´ urcˇity´ch za´vazku˚ (peneˇzˇnı´ch, hmotny´ch, cˇasovy´ch atd.), prˇitom vy´znam teˇchto za´vazku˚ je v dokumentu popsa´n, • stvrzuje autorstvı´ textu dokumentu, jestlizˇe podepsany´ dokument sepsal neˇkdo jiny´, pak podepisujı´cı´ osoba potvrzuje svu˚j u´mysl ztotozˇnit se s obsahem dane´ho dokumentu, • prokazuje skutecˇnost, zˇe tato osoba byla prˇ´ıtomna na stanovene´m mı´steˇ (a naprˇ. v danou dobu), podepisujı´cı´ se strana pak mu˚zˇe tento podpis vyuzˇ´ıt k proka´za´nı´ te´to prˇ´ıtomnosti. 2 V soucˇasne´ dobeˇ se vsˇak dı´ky modernı´m technologiı´m vy´znam tohoto klasicke´ho podpisu zacˇı´na´ zmensˇovat. Dokumenty cestujı´ v elektronicke´ podobeˇ, sta´le jich prˇiby´va´ a uzˇivatele´ si uveˇdomujı´ vy´hodnost takove´ho pohybu dokumentu˚. Je vsˇak trˇeba najı´t jiny´ postup k podepisova´nı´ takovy´chto dokumentu˚, ktery´ zarucˇı´ urcˇite´ vlastnosti, ktere´ podepsany´ dokument zı´ska´. Strana, ktera´ zı´ska´ podepsany´ dokument bude samozrˇejmeˇ chtı´t by´t ubezpecˇena, zˇe autorem dokumentu je oznacˇena´ osoba, zˇe se seznamuje s prˇesny´m obsahem dokumentu, zˇe mu˚zˇe na za´kladeˇ takto zı´skane´ho dokumentu konat a mı´t prˇitom urcˇite´ za´ruky od autora dokumentu. Jiny´mi slovy je trˇeba zajistit u teˇchto dokumentu˚ jejich autenticˇnost, jejich integritu, ale i tzv. nepopiratelnost. Jesˇteˇ je trˇeba poznamenat, zˇe za neˇktery´ch okolnostı´ k tomu prˇistupujı´ i na´roky na du˚veˇrnost (utajenı´) obsahu dokumentu prˇed nepovolanou osobou. Takovy´to postup se nazy´va´ digita´lnı´ho podpisu. Rozlisˇujı´ se dva typy digita´lnı´ho podpisu:
140
||
M
....
H(M)
H
H
M
E
Porovnej
D KVA
KSA Obra´zek 10.1: Digita´lnı´ podpis v dodatku zpra´vy.
1. Digita´lnı´ podpis s obnovou zpra´vy - podepisujı´cı´ strana A prˇ´ıslusˇny´ dokument (zpra´vu) v elektronicke´ podobeˇ zasˇifruje (eKSA (M )) svy´m soukromy´m klı´cˇem (podepı´sˇe). Vhodnou cestou (viz kap. 10.3) prˇitom zverˇejnı´ (nebo jizˇ ma´ zverˇejneˇn) odpovı´dajı´cı´ verˇejny´ klı´cˇ. Kdokoliv, kdo ma´ prˇ´ıstup k tomuto verˇejne´mu klı´cˇi (a oveˇrˇ´ı si, kdo je jeho skutecˇny´m majitelem), mu˚zˇe nynı´ pomocı´ tohoto verˇejne´ho klı´cˇe desˇifrovat (dK V A (eKSA (M ))) podepsany´ dokument (oveˇrˇit tak prˇ´ıslusˇny´ podpis tohoto dokumentu). Schematicky je tento postup zna´zorneˇn obra´zkem 5.2. Dalsˇ´ı podprobnosti k algoritmu˚m pouzˇ´ıvany´m pro tento typ digita´lnı´ho podpisu naleznete v kapitole 5. Du˚kaz, zˇe eKSA (M ) je zpra´va podepsana´ Alicı´ lze prove´st na´sledujı´cı´m zpu˚sobem: • podpis je nepadeˇlatelny´, pouze A zna´ KSA ,
• pravost podpisu nelze poprˇ´ıt, B nepotrˇebuje A pro oveˇrˇenı´ podpisu A,
• je autenticky´, B vı´, zˇe M je podepsa´no A zı´ska´-li M = dKV A (eKSA (M )),
• nelze jej pouzˇ´ıt vı´cekra´t pro vı´ce dokumentu˚, podpis je funkcˇnı´ hodnotou konkre´tnı´ho dokumentu, • podepsany´ dokument je nezameˇnitelny´, po zmeˇneˇ M na M 0 se podpis M lisˇ´ı od podpisu M 0 .
2. Digita´lnı´ podpis v dodatku zpra´vy - obvykle je vsˇak volen slozˇiteˇjsˇ´ı prˇ´ıstup. Je to proto, zˇe kryptosyste´my s verˇejny´m klı´cˇem jsou oproti symetricky´m kryptosyste´mu˚m znacˇneˇ pomalejsˇ´ı, a nejsou proto moc vhodne´ pro sˇifrova´nı´ dlouhy´ch zpra´v. Abychom vsˇak mohli podepisovat i takove´to delsˇ´ı zpra´vy, vyuzˇ´ıva´me hashovacı´ funkce. Nejprve je pomocı´ hashovacı´ funkce z pu˚vodnı´ zpra´vy M vyrobena jejı´ charakteristika H(M ). Teprve ta je pak sˇifrova´na (podepisova´na) prˇ´ıslusˇny´m soukromy´m klı´cˇem (eKSA (H(M ))). Podpis te´to charakteristiky je pak prˇipojen k vlastnı´ podepisovane´ zpra´veˇ (M ||eKSA (H(M )), proto se take´ tomuto postupu prˇi podepisova´nı´ rˇ´ıka´ digita´lnı´ podpis v dodatku zpra´vy). Oveˇrˇenı´ takove´ho podpisu probı´ha´ v za´sadeˇ analogicky jako v prvnı´m prˇ´ıpadeˇ. Nejprve se prˇijata´ charakteristika desˇifruje (H(M ) = dKV A (eKSA (H(M ))),) verˇejny´m klı´cˇem odesı´latele (oveˇrˇ´ı se podpis), pak je trˇeba nejprve opeˇt spocˇı´st k prˇijate´ zpra´veˇ jejı´ charakteristiku a porovnat s desˇifrovanou charakteristikou. Schematicky je tento postup zna´zorneˇn obra´zkem 10.1. Acˇkoliv lze pro podepisova´nı´ zpra´vy pouzˇ´ıvat urcˇity´m zpu˚sobem take´ symetrickou kryptografii, nebudeme se touto mozˇnostı´ zaby´vat.
Shrnutı´ kapitoly 10.1 V te´to podkapitole jsme se sezna´mili s pojmem digita´lnı´ podpis, jeho vztahem k podpisu rucˇnı´mu. Da´le byly vysveˇtleny pojmy digita´lnı´ podpis s obnovou zpra´vy a v dodatku zpra´vy.
141
?
Ota´zky ke kapitole 10.1 1. Co je to digita´lnı´ podpis? 2. Jaky´ je hlavnı´ rozdı´l mezi digita´lnı´m podpisem s obnovou zpra´vy a digita´lnı´m podpisem v dodatku zpra´vy? 3. Jaka´ je vy´hoda digita´lnı´ho podpisu v dodatku zpra´vy oproti digita´lnı´mu podpisu s obnovou zpra´vy? 4. Ktere´ algoritmy asymetricke´ kryptografie lze pouzˇ´ıt pro digita´lnı´ podpis?
Prˇedcha´zejı´cı´ Digita´lnı´ podpis a certifikaty
Obsah Nahoru
142
Dalsˇ´ı Digital Signature Algorithm
Prˇedcha´zejı´cı´ Digita´lnı´ podpis
10.2
Obsah
Dalsˇ´ı Certifika´ty
Digital Signature Algorithm
ˇ asova´ na´rocˇnost kapitoly: 30 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly porozumı´te principu algoritmu Digital Signature Algorithm pro digita´lnı´ podepisova´nı´. Zkratka DSS znacˇı´ Digital Signature Standard, ktery´ specifikuje algoritmus DSA (da´le DSA). Byl vybra´n NIST (ve spolupra´ci s NSA) jako vla´dnı´ norma pro digita´lnı´ autentizaci. Tato norma (FIPS 186, viz [12]) pu˚vodneˇ obsahovala jediny´ algoritmus, ktery´ je zalozˇen na proble´mu diskre´tnı´ho logaritmu a je odvozen ze syste´mu, ktery´ pu˚vodneˇ navrhli Schnorr a ElGamal, viz [3]. Parametry algoritmu: • p je prvocˇı´slo, kde 2L−1 < p < 2L pro 512 ≤ L ≤ 1024 a L je na´sobek 64, • q je prvocˇı´slo, deˇlitel p − 1, kde 2159 < q < 2160 , • g = h(p−1)/q mod p, kde h je libovolne´. prˇirozene´ cˇı´slo, pro ktere´ 1 < h < p − 1 a takove´, zˇe h(p−1)/q mod p > 1 (g je rˇa´du q mod p), • x je na´hodneˇ resp. pseudona´hodneˇ generovane´ cele´ cˇı´slo 0 < x < q, • y = g x mod p, • k je na´hodneˇ resp. pseudona´hodneˇ generovane´ cele´ cˇı´slo 0 < k < q. Prˇirozena´ cˇı´sla p, q, g mohou by´t zverˇejneˇna a mohou by´t spolecˇna´ pro skupinu uzˇivatelu˚ (na obr. 10.2 jsou oznacˇeny jako KG ). Soukromy´m klı´cˇem resp. verˇejny´m klı´cˇem uzˇivatele jsou x resp. y. Tato cˇı´sla jsou obvykle nemeˇnna´ pro urcˇite´ cˇasove´ obdobı´. Parametry x a k jsou pouzˇ´ıva´ny pouze pro generova´nı´ podpisu a musı´ by´t utajova´ny. Parametr k navı´c musı´ by´t pro kazˇdy´ podpis generova´n novy´. Generova´nı´ podpisu. Podpis zpra´vy M tvorˇ´ı dvojice cˇı´sel r a s, ktera´ je spocˇtena na´sledovneˇ: r = (g k mod p) mod q, s = (k −1 (H(M ) + xr)) mod q. Jako hashovacı´ funkce H(M) je v algoritmu DSA zvolena funkce SHA-1. Oveˇrˇenı´ podpisu. Zde M 0 , r0 , a s0 jsou obdrzˇene´ verze M, r, s, a y je verˇejny´ klı´cˇ podepisujı´cı´ strany. Nejprve oveˇrˇujı´cı´ strana zjistı´ zda platı´ 0 < r0 < q a 0 < s0 < q. Potom spocˇı´ta´
143
||
M
....
M s r
k H
E KSA KG
H D
Porovnej
KVA KG
Obra´zek 10.2: Algoritmus DSA.
w = (s0 )−1 mod q, u1 = ((H(M 0 ))w) mod q, u2 = ((r0 )w) mod q, v = ((g u1 y u2 ) mod p) mod q. Jestlizˇe v = r0 , je podpis oveˇrˇen. Po sve´m zverˇejneˇnı´ byl algoritmus pomeˇrneˇ znacˇneˇ kritizova´n, zejme´na z hlediska jeho bezpecˇnosti. Pu˚vodnı´ na´vrh obsahoval de´lku pouzˇite´ho prvocˇı´sla 512 bitu˚. Po sˇiroke´ kritice provedl NIST revizi na´vrhu a prodlouzˇil tuto de´lku na 1024 bitu˚. S na´stupem kryptografie na ba´zi elipticky´ch krˇivek (viz podkapitola 7) se ocˇeka´valo prodlouzˇenı´ te´to de´lky azˇ na 2048 bitu˚, ale dosud se tak nestalo.
Shrnutı´ kapitoly 10.2 V te´to podkapitole byl popsa´n postup ktery´ se pouzˇ´ıva´ pro podepisova´nı´ a oveˇrˇova´nı´ podpisu prˇi pouzˇitı´ algoritmu DSA.
?
Ota´zky ke kapitole 10.2 1. Co je to proble´m diskre´tnı´ho logaritmu? 2. Porovnejte algoritmus DSA s algoritmem ECDSA. Co majı´ spolecˇne´ho, v cˇem se lisˇ´ı?
Prˇedcha´zejı´cı´ Digita´lnı´ podpis
Obsah Nahoru
144
Dalsˇ´ı Certifika´ty
Prˇedcha´zejı´cı´ Digital Signature Algorithm
10.3
Obsah
Dalsˇ´ı Literatura
Certifika´ty
ˇ asova´ na´rocˇnost kapitoly: 50 minut C Cı´l kapitoly: Po prostudova´nı´ podkapitoly budete umeˇt definovat pojem certifika´t, certifikacˇnı´ autorita, a vy´znacˇne´ jme´no. Budete umeˇt vysveˇtlit hiearchii certifika´tu˚ a jejich rˇeteˇzenı´. Problematika certifikace z hlediska kryptgraficky´ch protokolu˚ se zacˇala rozvı´jet teprve v poslednı´ch letech. Jestlizˇe se vra´tı´me k Needham-Schroederovu protokolu s verˇejny´m klı´cˇem, pak si nynı´ vsˇimneˇme prˇedpokladu, zˇe obeˇ strany majı´ k dispozici autenticky´ verˇejny´ klı´cˇ opacˇne´ strany. Toto umozˇnˇujı´ certifika´ty verˇejny´ch klı´cˇu˚. Certifika´t (anglicky certificate) je elektronicky´ dokument slouzˇ´ıcı´ k identifikaci jednotlivce, serveru, spolecˇnosti nebo jine´ entity a spojuje tuto entitu s verˇejny´m klı´cˇem. Certifika´t je digita´lneˇ podepsana´ struktura dat, spojujı´cı´ identitu vlastnı´ka certifika´tu (subjektu) s verˇejny´m klı´cˇem. Digita´lnı´ certifika´ty potvrzujı´ vlastnı´ctvı´ verˇejne´ho klı´cˇe urcˇity´m jednotlivcem cˇi jinou entitou. Dovolujı´ oveˇrˇit tvrzenı´, zˇe dany´ verˇejny´ klı´cˇ patrˇ´ı skutecˇneˇ urcˇite´mu zadane´mu jednotlivci. Certifika´ty na´m poma´hajı´ chra´nit se prˇed neˇky´m, kdo se vyda´va´ za neˇkoho jine´ho naprˇ. prostrˇednictvı´m telefonu a sdeˇlı´ na´m takto urcˇity´ verˇejny´ klı´cˇ. Tento verˇejny´ klı´cˇ pak mylneˇ pokla´da´me za klı´cˇ neˇkoho jine´ho. Certifika´t je jako rˇidicˇsky´ pru˚kaz, pas nebo jiny´ doklad dokazujı´cı´ identitu majitele. Kdyzˇ zˇa´da´te o vyda´nı´ studijnı´ho pru˚kazu, prˇedlozˇ´ıte zˇa´dost prˇ´ıslusˇne´mu oddeˇlenı´ univerzity. Drˇ´ıve, nezˇ dojde k vyda´nı´ pru˚kazu, oveˇrˇ´ı oddeˇlenı´ zˇa´dost spolu s dalsˇ´ımi skutecˇnosti, ktere´ musı´te jako zˇadatel splnˇovat. Pokud je vsˇechno v porˇa´dku, dojde k vystavenı´ pru˚kazu. Obdobna´ situace je v prˇ´ıpadeˇ vyda´va´nı´ certifika´tu. Organizace, ktera´ se zaby´va´ vyda´va´nı´m certifika´tu˚ se nazy´va´ certifikacˇnı´ autorita (anglicky certificate authority), da´le jen CA. Je to entita, ktera´ potvrzuje identitu entit, jı´mzˇ vyda´va´ certifika´ty. Metody pouzˇite´ k potvrzova´nı´ identity se ru˚znı´ a za´visı´ na za´sada´ch jednotlivy´ch CA. CA musı´ prˇed vyda´nı´m certifika´tu zverˇejnit postupy, ktery´mi oveˇrˇuje, zˇe entita zˇa´dajı´cı´ o vyda´nı´ certifika´tu je skutecˇneˇ tı´m, za koho se vyda´va´. Je zodpoveˇdna´ za ustavenı´ a oveˇrˇenı´ autenticˇnosti verˇejny´ch klı´cˇu˚. Spojuje pevneˇ verˇejny´ klı´cˇ s vyznacˇeny´m jme´nem pomocı´ podpisu certifika´tu˚, udeˇluje certifika´tu˚m porˇadova´ cˇı´sla a odvola´va´ certifika´ty. CA generuje, odvola´va´ , publikuje a archivuje certifika´ty. Ty jsou ulozˇeny v u´schovneˇ (na serveru), aby byly dostupne´ vsˇem uzˇivatelu˚m certifikacı´. CA autentizuje identitu subjektu certifikace odlisˇneˇ v za´vislosti na typu pozˇadavku. Certifika´t obsahuje verˇejny´ klı´cˇ vlastnı´ka, na´zev vlastnı´ka, dobu platnosti, na´zev CA, ktera´ certifika´t vydala, se´riove´ cˇı´slo, prˇ´ıpadneˇ dalsˇ´ı informace. Jednou z nejdu˚lezˇiteˇjsˇ´ıch informacı´, kterou certifika´t obsahuje, je digita´lnı´ podpis CA, ktera´ certifika´t vystavila. Tento digita´lnı´ podpis umozˇnˇuje, aby certifika´t plnil roli pru˚vodnı´ho dopisu, ktery´ vlastnı´k certifika´tu˚ prˇedkla´da´ entita´m, ktere´ znajı´ a du˚veˇrˇujı´ CA, ale neznajı´ entitu identifikovanou certifika´tem. Struktura typicke´ho certifika´tu je zna´zorneˇna na obra´zku 10.3.
145
verˇejny´ klı´cˇ vlastnı´ka se´riove´ cˇı´slo doba platnosti na´zev vlastnı´ka na´zev CA digita´lnı´ podpis CA Obra´zek 10.3: Struktura certifika´tu.
10.3.1
Certifika´t X.509
V dalsˇ´ım textu se budeme zaby´vat certifika´ty typu X.509, protozˇe jsou v dnesˇnı´ dobeˇ pouzˇ´ıvane´ nejcˇasteˇji. Neobejdou se bez nich technologie jako naprˇ´ıklad S/MIME, SSL a IP Security. V soucˇasne´ dobeˇ existujı´ trˇi verze certifika´tu X.509, oznacˇovane´ X.509v1, X.509v2 a X.509v3. Struktury jednotlivy´ch verzı´ jsou zobrazeny na obra´zku 10.4. Nejcˇasteˇji se setka´me s certifika´tem X.509v3, ktery´ se skla´da´ z teˇchto cˇa´stı´: • Verze - urcˇuje verzi pouzˇite´ho certifika´tu. • Se´riove´ cˇı´slo - cele´ cˇı´slo, pomocı´ ktere´ho mu˚zˇe certifikacˇnı´ autorita jednoznacˇneˇ identifikovat dany´ certifika´t. • Identifika´tor podpisu - obsahuje dveˇ cˇa´stı´: na´zev pouzˇite´ho algoritmu a souvisejı´cı´ parametry. Vy´znam te´to polozˇky je zanedbatelny´, protozˇe stejne´ informace jsou soucˇa´sti podpisu. • Jme´no vydavatele - reprezentace jme´na CA, ktera´ vytvorˇila a podepsala dany´ certifika´t. • Doba platnosti - skla´da´ se ze dvou cˇasovy´ch u´daju˚ urcˇujı´cı´ch od kdy do kdy je certifika´t platny´. • Jme´no vlastnı´ka - urcˇuje pro koho byl certifika´t vystaven. Certifika´t potvrzuje, zˇe entita identifikova´na´ tı´mto jme´nem je vlastnı´kem odpovı´dajı´cı´ho soukrome´ho klı´cˇe. • Identifika´tor verˇejne´ho klı´cˇe - obsahuje verˇejny´ klı´cˇ vcˇetneˇ informacı´ o algoritmu a parametrech pouzˇity´ch k jeho vytvorˇenı´. • Identifika´tor vydavatele - nepovinny´ u´daj pouzˇity´ k jednoznacˇne´ identifikaci vydavatele pro prˇ´ıpad, zˇe by jme´no vydavatele bylo pouzˇito k identifikaci jine´ entity. • Identifika´tor vlastnı´ka - je nepovinny´ u´daj pouzˇity´ k jednoznacˇne´ identifikaci vlastnı´ka pro prˇ´ıpad, zˇe by jme´no vlastnı´ka bylo pouzˇito k identifikaci jine´ entity.
146
Atribut cn c l o ou email
Vy´znam Jme´no, pro neˇzˇ je certifika´t vystaven. Zemeˇ, kde jme´no lezˇ´ı. Jde o ko´d zemeˇ podle ISO[3166], naprˇ´ıklad CZ, US, FI a podobneˇ. Umı´steˇnı´ (sı´dlo) jme´na. Veˇtsˇinou jde o jme´no meˇsta, kde je jme´no oficia´lneˇ registrova´no nebo kde se nejcˇasteˇji zdrzˇuje. Organizace Organizacˇnı´ jednotka v ra´mci organizace. Naprˇ´ıklad fakulta, katedra a podobneˇ. E-mail je adresa elektronicke´ posˇty, pomocı´ ktere´ lze se jme´nem komunikovat. Tabulka 10.1: Nejpouzˇ´ıvaneˇjsˇ´ı atributy DN.
• Rozsˇ´ırˇenı´ - obsahuje nejcˇasteˇji ru˚zne´ dodatecˇne´ informace o prˇedmeˇtu certifika´tu. Mu˚zˇe se jednat naprˇ´ıklad o jeho detailnı´ jme´no, posˇtovnı´ adresu, fotografii cˇi dalsˇ´ı uprˇesnˇujı´cı´ informace. Rozsˇ´ırˇenı´ mu˚zˇe take´ obsahovat informace vztahujı´cı´ se k CA. Tato polozˇka byla prˇida´na ve verzi 3. • Podpis - elektronicky´ podpis vsˇech ostatnı´ch polozˇek certifika´tu. Kromeˇ samotne´ho zasˇifrovane´ho hash ko´du, obsahuje informace o algoritmu a parametrech pouzˇity´ch k vytvorˇenı´ jeho vytvorˇenı´.
10.3.2
Vy´znacˇne´ jme´no
Certifika´t spojuje certifika´t entitu s jejı´m verˇejny´m klı´cˇem. K identifikaci entity se pouzˇ´ıva´ tak zvane´ vy´znacˇne´ jme´no (anglicky distinguished name), da´le jen DN. DN je rˇeteˇzec reprezentujı´cı´ jme´no entity a ma´ podobu posloupnosti na´zvu atributu a hodnot. DN vycha´zı´ ze stromove´ struktury, definovane´ standardem X.500. Zpu˚sob jeho reprezentace v X.500 je zna´zorneˇn na obra´zku 10.5. Adresa´rˇova´ sluzˇba X.500 definuje, mimo jine´, hierarchicke´ usporˇa´da´nı´ informace ve formeˇ ˇ a´st vy´sˇe uvedene´ho DN je zna´zorneˇna na obra´zku 10.5. Velmi strucˇneˇ lze uspostromu. C rˇa´da´nı´ informace charakterizovat takto: Uzly majı´ libovolny´ pocˇet na´sledovnı´ku˚, ale pouze jedine´ho prˇedchu˚dce, prˇicˇemzˇ existujı´ takzvane´ listove´ uzly, ktere´ nemohou mı´t na´sledovnı´ky. Kazˇdy´ uzel obsahuje alesponˇ jeden pa´r atribut–hodnota, pomocı´ ktere´ho lze uzel identifikovat, naprˇ´ıklad c=CZ. Uzel je jednoznacˇneˇ identifikovatelny´ pomocı´ cesty vedoucı´ od korˇene k tomuto uzlu, naprˇ´ıklad c=CZ, l=Ostrava, o=VSB. Da´le mu˚zˇe uzel obsahovat dodatecˇne´ atributy, ktere´ nesou dodatecˇnou informaci souvisejı´cı´ s dany´m uzlem. Na´zvy atributu˚ se mohou u jednotlivy´ch certifika´tu˚ do jiste´ mı´ry lisˇit. Zpu˚sob volby jejich pocˇtu, na´zvu˚ a mozˇny´ch hodnot je da´n hlavneˇ CA. Jejı´m u´kolem je zajistit, aby DN bylo unika´tnı´. Detaily ty´kajı´cı´ se DN a jeho atributu˚ mu˚zˇete najı´t v RFC[2256]. Nejcˇasteˇji pouzˇ´ıvany´mi atributy jsou c, l, o, ou, cn a email. Jejich vy´znam je uveden v tabulce 10.1.
147
podpisu verˇejne´ho klı´cˇe verze se´riove´ cˇı´slo
doba platnosti
od do jme´no vlastnı´ka
identifika´tor
algoritmus parametry verˇejny´ klı´cˇ
X.509v3
jme´no vydavatele
X.509v2
algoritmus parametry X.509v1
identifika´tor
identifika´tor vydavatele identifika´tor vlastnı´ka X.509v1
podpis
algoritmus parametry zasˇifrovany´ hash
X.509v2
rozsˇ´ırˇenı´
Obra´zek 10.4: Struktura certifika´tu˚ X.509v1,2,3.
c: CZ
l: Ostrava
o: VSB
ou: Computer Center
l: Opava
o: OSU
ou: Department of Computer Science
cn: CA VSB
cn: CA Internet Technologies
email:
[email protected]
email:
[email protected]
Obra´zek 10.5: Reprezentace DN v X.500.
148
ca−vsb
ca−cs−vsb
katis.cs.vsb.cz
ca−it−0
ca−it−1
it0.cs.vsb.cz
ca−it−2
it1.cs.vsb.cz
Obra´zek 10.6: Hierarchie certifikacˇnı´ch autorit.
10.3.3
Hierarchie certifika´tu˚
V ra´mci velky´ch organizacı´, ktere´ vyda´vajı´ velka´ mnozˇstvı´ certifika´tu˚, je vy´hodne´ rozdeˇlit centra´lnı´ certifikacˇnı´ autoritu do neˇkolika autorit. Toto rozdeˇlenı´ je vy´hodne´ naprˇ´ıklad v prˇ´ıpadech, kdy jednotlive´ cˇa´sti organizace kladou na vyda´va´nı´ certifika´tu˚ ru˚zne´ pozˇadavky nebo je trˇeba zajistit aby byly certifika´ty vyda´va´ny v geograficke´ lokaliteˇ, ve ktere´ se dana´ cˇa´st organizace nacha´zı´. Rozdeˇlenı´ je take´ vy´hodne´ z hlediska spra´vy. Skutecˇnost, zˇe pozˇadavky na spra´vu certifika´tu˚ nejsou centralizova´ny, vede ke zvy´sˇenı´ pruzˇnosti cele´ spra´vy. Je zrˇejme´, zˇe rozdeˇlenı´ centra´lnı´ certifikacˇnı´ autority do neˇkolika neza´visly´ch certifikacˇnı´ch autorit by nebylo zcela idea´lnı´, protozˇe tyto certifikacˇnı´ autority spadajı´ pod jedinou organizaci, a tato skutecˇnost by meˇla by´t neˇjaky´m zpu˚sobem zohledneˇna. Proto jsou certifikacˇnı´ autority usporˇa´da´ny do hierarchie, v ra´mci ktere´ lze vu˚cˇi vybrane´ certifikacˇnı´ autoriteˇ identifikovat nadrˇazene´ a podrˇ´ızene´ certifikacˇnı´ autority. Tato hierarchie ma´ stromovou strukturu a uka´zka mozˇne´ho hierarchicke´ho cˇleneˇnı´ je zobrazena na obra´zku 10.6. Korˇen stromu certifikacˇnı´ch autorit tvorˇ´ı certifikacˇnı´ autorita vlastnı´cı´ certifika´t podepsany´ sa´m sebou. Certifika´ty reprezentujı´cı´ mezilehle´ uzly, jsou vyda´ny nadrˇazenou certifikacˇnı´ autoritou. Prˇ´ıklad 10.2 Naprˇ´ıklad na obr. 10.6 byl certifika´t certifikacˇnı´ autority CA Internet Technologies vyda´n certifikacˇnı´ autoritou CA Department of Computer Science, a ten byl vyda´n autoritou CA VSB. 2
10.3.4
ˇ eteˇzec certifika´tu˚ R
Hierarchicke´ usporˇa´da´nı´ certifikacˇnı´ch autorit usnadnˇuje spra´vu certifika´tu˚ a umozˇnˇuje dynamicky vytva´rˇet nove´, podrˇ´ızene´ certifikacˇnı´ autority, ktere´ mohou existovat naprˇ´ıklad pouze kra´tkodobeˇ, podle potrˇeby organizace. Jak ale zajistit, aby na´sˇ certifika´t, vydany´ neˇkterou z noveˇ zrˇ´ızeny´ch podrˇ´ızeny´ch certifikacˇnı´ch autorit, byl povazˇova´n existujı´cı´m syste´mem za du˚veˇryhodny´? Tento syste´m ve sve´m seznamu du˚veˇryhodny´ch certifikacˇnı´ch autorit noveˇ zrˇ´ızenou certifikacˇnı´ autoritu urcˇiteˇ nema´ a na´sˇ certifika´t bude proto povazˇova´n za nedu˚veˇryhodny´.
149
Samozrˇejmeˇ, mu˚zˇeme se pokusit o zacˇleneˇnı´ podrˇ´ızene´ certifikacˇnı´ autority do seznamu du˚veˇryhodny´ch certifikacˇnı´ch autorit. To ale bude cˇasoveˇ pomeˇrneˇ na´rocˇna´ cˇinnost, protozˇe budeme muset kontaktovat prˇ´ıslusˇne´ho spra´vce a pozˇa´dat ho o zavedenı´ te´to noveˇ zrˇ´ızene´ autority do odpovı´dajı´cı´ho seznamu du˚veˇryhodny´ch autorit. Proto se prova´dı´ zrˇeteˇzenı´ certifika´tu˚. Jde o to, zˇe mı´sto samotne´ho certifika´tu entity, kterou chceme autentizovat, posı´la´me rˇeteˇzec, obsahujı´cı´ certifika´t te´to entity vcˇetneˇ certifika´tu˚ nadrˇazeny´ch certifikacˇnı´ch autorit. Z hlediska stromove´ struktury certifika´tu˚ obsahuje rˇeteˇzec certifika´tu˚ certifika´ty Ci , lezˇ´ıcı´ na cesteˇ od listu Cn ke korˇeni C0 . Pro certifika´ty Cn , . . . , C1 , rˇeteˇzec certifika´tu˚ hCn , Cn−1 , . . . , C1 , C0 i platı´, zˇe Ci−1 je certifika´tem vydavatele certifika´tu Ci . Z toho vyply´va´, zˇe 1. jme´no (DN) vydavalele certifika´tu Ci−1 je shodne´ se jme´nem subjektu certifika´tu Ci , 2. certifika´t Ci−1 je podepsa´n soukromy´m klı´cˇem subjektu certifika´tu Ci . Podpis lze tedy oveˇrˇit pomocı´ verˇejne´ho klı´cˇe, ktery´ je soucˇa´stı´ certifika´tu Ci . Prˇ´ıklad 10.3 Rˇeteˇzec certifika´tu˚ pro certifika´t it0.cs.vsb.cz, z obra´zku 10.6, je tvorˇen certifika´ty h it0.cs.vsb.cz, CA Internet Technologies (level 0), CA Department of Computer Science, CA VSB i. Graficky je tento rˇeteˇzec, na obra´zku 10.6, zna´zorneˇn tmavy´mi certifika´ty. 2
10.3.5
Oveˇrˇenı´ rˇeteˇzce certifika´tu˚
Oveˇrˇova´nı´ rˇeteˇzce certifika´tu˚ hCn , Cn−1 , . . . , C1 , C0 i vycha´zı´ z prˇ´ıme´ho oveˇrˇova´nı´ certifika´tu a lze jej popsat na´sledujı´cı´m algoritmem. Oveˇrˇova´nı´ zacˇı´na´ certifika´tem Cn , tedy certifika´tem entity, ktera´ ma´ by´t autentizova´na a koncˇı´ rozhodnutı´m zda je certifika´t du˚veˇryhodny´ nebo nedu˚veˇryhodny´. 1. i ← n. 2. Spada´ aktua´lnı´ cˇas do obdobı´ platnosti certifika´tu Ci ? Pokud ano, pokracˇuj krokem 3., jinak je certifika´t Ci nedu˚veˇryhodny´. 3. Lze v seznamu du˚veˇryhodny´ch certifika´tu˚ najı´t certifika´t Cx , ktery´ je certifika´tem vydavatele certifika´tu Ci ? Pokud ano, pokracˇuj krokem 4. Je-li i > 0 pak Cx ← Ci−1 , jinak je certifika´t Cn nedu˚veˇryhodny´. 4. Lze pomocı´ verˇejne´ho klı´cˇe certifika´tu Cx oveˇrˇit podpis certifika´tu Ci ? Pokud ne, je certifika´t Ci nedu˚veˇryhodny´. Pokud ano a za´rovenˇ Cx je soucˇa´stı´ seznamu du˚veˇryhodny´ch certifika´tu˚, lze certifika´t Cn povazˇovat za „du˚veˇryhodny´“. 5. Je-li i > 0 pak i ← (i − 1) a pokracˇuj krokem 2. Jinak je certifika´t Cn nedu˚veˇryhodny´. Informace ke podkapitole o certifika´tech pocha´zejı´ z [13].
Shrnutı´ kapitoly 10.3 V te´to podkapitole jsme se sezna´mili s pojmem Certifika´t, certifikacˇnı´ autorita, vy´znacˇne´ jme´no. Da´le podkapitola obsahuje popis hiearchicke´ struktury certifika´tu˚ a jejich zrˇeteˇzenı´.
150
?
Ota´zky ke kapitole 10.3 1. Vysveˇtlete pojmy certifika´t a certifikacˇnı´ autorita. Jaky´ majı´ vza´jemny´ vztah? 2. Vyjmenujte a popisˇte vy´znam jednotlivy´ch cˇa´stı´ certifika´tu. 3. Co je to certifika´t typu X.509? Jake´ ma´ uplatneˇnı´? 4. Procˇ musı´ existovat certifika´ty podepsane´ same´ sebou? Pro koho a ky´m jsou takove´to certifika´ty vystavovane´? 5. Co je to hierarchicke´ cˇleneˇnı´ certifikacˇnı´ch autorit? Procˇ se pouzˇ´ıva´? 6. Popisˇte princip zrˇeteˇzenı´ certifika´tu˚. Kdy ho pouzˇ´ıva´me?
Prˇedcha´zejı´cı´ Digital Signature Algorithm
Obsah Nahoru
151
Dalsˇ´ı Literatura
Prˇedcha´zejı´cı´ Certifika´ty
Obsah
Dalsˇ´ı Rejstrˇ´ık
Literatura [1] Dosta´lek L. Velky´ pru˚vodce protokoly TCP/IP. Bepecˇnost. Computer Press, 2001. Praha. ISBN 80-7226-513-X. [2] Stallings W. Cryptography and Network Security. Prentice Hall, 1999, New Jersey. ISBN 0-13-869017-0. [3] Menezes A., van Oorschot P. Vanstone S. Handbook of Applied Cryptography. http://cacr.math.uwaterloo.ca/hac/. [4] Schneier B. Applied Cryptography. J. Willey, 1996, New York. ISBN 0-471-12845-7. ´ rˇad pro sta´tnı´ informacˇnı´ [5] Hana´cˇek P., Staudek J. Bezpecˇnost informacˇnı´ch syste´mu˚. U syste´m, 2000, Praha. ISBN 80-238-5400-3. [6] Smejkal V. a kol. Pra´vo informacˇnı´ch a telekomunikacˇnı´ch syste´mu˚. C.H.Beck, 2001, Praha. ISBN 80-7179-552-6. [7] Kovacich G.L. Pru˚vodce bezpecˇnostnı´ho pracovnı´ka informacˇnı´ch syste´mu˚. Unis Publishinh, 2000, Brno. ISBN 80-86097-42-0. [8] http://csrc.nist.gov/CryptoToolkit/aes/rijndael/ ˇ . Sˇifrovanie - Algoritmy, meto´dy, prax. GRADA, 1992. [9] Grosˇek O., Porubsky´ S [10] Jalu˚vka J. Modernı´ pocˇı´tacˇove´ viry. Computer Press, 1997. Praha. [11] http://www.viry.cz. [12] FIPS 186-2: Digital Signature Standard (DSS), Federal Information Processing Standard Publication 186-2. 2000. http://csrc.nist.gov. ˇ B-TU OStrava. 2002. [13] Szturc R. Sylaby k prˇedmeˇtu Internetove´ technologie, VS http://www.cs.vsb.cz. [14] Macha´cˇek M., Pojsl J. Firewally - u´vod do problematiky. Softwarove´ noviny. 1999, revize 2001. http://www.tns.cz/clanky/clanky.html. [15] Peterka J. Principy firewallu˚. http://earchiv.isdn.cz/ascii/b01/b0100020.php3. Prˇedcha´zejı´cı´ Certifika´ty
Obsah Nahoru
152
Softwarove´
noviny.
2001.
Dalsˇ´ı Rejstrˇ´ık
Prˇedcha´zejı´cı´ Literatura
Obsah
Rejstrˇ´ık
Advanced Encryption Standard, 79 Affine Cipher, 42, 46, 77
certifikacˇnı´ autorita, 133, 145–147, 149, 150
aktiva, 8, 11
certifika´t, 19, 130, 145, 146, 149, 150
asymetricka´ kryptografie, 19, 36, 54, 88, 90, 108, 130
charakteristika, 100
autenticita, 9, 88
chosen-plaintext attack, 38
Autentizace, 128
Cipher Block Chaining, 60, 62, 64, 101
autentizace, 11, 18, 19, 34, 62, 100, 103, 129, 140, 145
Cipher-Feedback Mode, 62, 64
autentizace vlastnictvı´m, 128, 133
Counter mode, 64
autentizace vlastnostı´, 128, 134
cyklicke´ sˇifrova´nı´, 124
chosen-ciphertext attack, 38
ciphertext only attack, 38
autentizace znalostı´, 128, 133 autentizacˇnı´ protokol, 131, 133
data, 9
autorizace, 10, 11, 18, 38
Data Encryption Standard, 38, 67, 101, 124
bezpecˇnost IT, 8
desˇifrova´nı´, 34, 36, 43, 44, 54, 55, 59, 60, 62, 64, 67, 82
bezpecˇnostnı´ funkce, 17, 20 bezpecˇnostnı´ mechanismus, 17, 20
Diffie - Hellman, 88, 95, 97
bezpecˇnostnı´ politika IT, 10
Diffie-Hellman, 121
bezpecˇnostnı´ politika organizace, 10
difuse, 41, 84
bezpecˇnostnı´ program, 10 bezpecˇny´ IS, 9
Digital Signature Algorithm, 121, 143, 144
biometrie, 128, 134, 138
digita´lnı´ podpis, 18, 19, 88, 140, 141, 145
birthday attack, 102
digita´lnı´ podpis s obnovou zpra´vy, 141
blokova´ sˇifra, 35, 54, 55, 57, 59, 62, 67, 79
digita´lnı´ podpis v dodatku zpra´vy, 141
bod elipticke´ krˇivky, 110
diskre´tnı´ logaritmus, 31, 117, 143 dolnı´ cela´ cˇa´st, 24
bod v nekonecˇnu, 110
dostupnost, 9, 11, 20
brute-force attack, 38, 39, 41, 43, 76, 93, 102
De´lka periody, 124
Carmichaelova cˇı´sla, 29
du˚veˇrnost, 9, 11, 18, 19, 34, 56, 88, 140
153
deˇlitel, 22
du˚veˇryhodnost, 11, 149
Kerckhoffu˚v princip, 37
du˚veˇryhodna´ trˇetı´ strana, 19, 54, 132
key-scheduling, 67 klı´cˇ, 34, 36–38, 43, 44, 122
ECDSA, 117, 120, 144
known-plaintext attack, 38, 56
Electronic Codebook Mode, 59–61, 64
kofaktor, 114
ElGamal, 88, 97, 143
kolo, 67, 68
elipticka´ krˇivka, 110
konfuse, 41, 84
Enigma, 45
kongruence, 24, 27
Eratosthenovo sı´to, 22
kryptoanaly´za, 34, 37, 55
ERR, 134 error extension, 61
kryptograficke´ hashovacı´ funkce, 19, 100, 103, 141
Eukleidu˚v algoritmus, 22, 26, 27
kryptograficky´ protokol, 131
Eulerova veˇta, 29, 31
kryptograficky´ rezˇim, 59
Eulerovo cˇı´slo, 23, 91
kryptograficky´ syste´m, 34, 36 kryptografie, 34
faktorizace, 93, 101
kryptologie, 34
FAR, 134 Feistelovy algoritmy, 67, 68, 77, 79
lavinovy´ efekt, 68
Fermatu˚v test prvocˇı´selnosti, 29
Linear Feedback Shift Register, 124, 125
firewall, 19
linea´rnı´ kongruencˇnı´ genera´tor, 123, 125
frekvencˇnı´ analy´za, 38, 41, 47 frekvencˇnı´ analy´zy, 43
MAC, 56, 100, 103, 129
FRR, 134
mala´ Fermatova veˇta, 28, 31 Man-in-the-Middle, 132, 133
hardware, 9
meet-in-the-middle u´tok, 77
Heslo, 19, 129
modul, 24, 92
heslo, 122
monoalfabeticke´ algoritmy, 41
hrozba, 13, 16 hybridnı´ kryptosyste´m, 88
Needham-Schroederu˚v protokol, 131, 145
identifikacˇnı´ body, 135
nejveˇtsˇ´ı spolecˇny´ deˇlitel, 22, 42, 91
informacˇnı´ syste´m, 8, 10, 11
nepopiratelnost odpoveˇdnosti, 9, 11, 18, 20, 34, 88, 100, 129, 140
integrita, 9, 11, 18, 19, 34, 61, 88, 100, 103, 128, 129, 140 iterovane´ algoritmy, 67
nesoudeˇlnost, 23 na´hodna´ cˇı´sla, 62, 64, 97, 123, 125
jednocestna´ funkce, 88, 100 jednocestna´ funkce se zadnı´mi vra´tky, 88, 100 jednocestna´ hashovacı´ funkce odolna´ kolizı´m, 101 jednocestna´ hashovacı´ funkca´, 101 jednocestna´ klı´cˇovana´ funkce, 101, 103
neprˇedvı´datelnost, 123
hashovacı´
na´hodny´ genera´tor, 56, 123, 143 objekt IS, 11 odesı´latel, 35 odposlech, 14, 16 One-Time Pad, 38, 44, 46, 122 opacˇny´ bod, 111 otevrˇeny´ text, 34, 36, 38, 43, 44, 47, 49, 55, 56, 59, 61, 62, 68, 77, 97
kanonicky´ tvar, 22
154
otisku prstu˚, 135
slovnı´kovy´ u´tok, 55
Output-Feedback Mode, 62, 64
slozˇena´ sˇifra, 41, 67
oveˇrˇenı´ podpisu, 88
software, 9
oveˇrˇova´nı´ hlasu, 137
soukromy´ klı´cˇ, 36, 88, 91, 95, 97, 130, 132, 141
Padding, 60, 64
spolehlivost, 9, 11
perioda, 43
steganografie, 34, 37
permutace, 35, 41, 44, 46, 49, 51, 68
subjekt IS, 11
Playfair, 42
substituce, 41, 46, 47, 51, 68
Podepisova´nı´, 88, 90, 93, 97
Substitution-PermutationNetwork, 67
polyalfabeticke´ substitucˇnı´ algoritmy, 43 Polyboisu˚v cˇtverec, 42
symetricka´ kryptografie, 35, 36, 67, 95, 108
polygramove´ substitucˇnı´ algoritmy, 42
syste´mova´ bezpecˇnostnı´ politika IT, 10
primitivnı´ odmocnina, 31, 95, 97
scˇı´ta´nı´ bodu˚, 113
proble´m diskre´tnı´ho logaritmu, 31, 95, 97 Proble´mem diskre´tnı´ho logaritmu nad eliptickou krˇivkou, 109, 117
tajny´ klı´cˇ, 35, 54, 56, 59, 60, 62, 67, 77, 79, 88, 132
proble´mu diskre´tnı´ho logaritmu, 101
timing attack, 93
prokazatelnost odpoveˇdnosti, 9, 11, 18
Trial Division, 22
proprieta´rnı´ algoritmus, 37
TripleDES, 77, 124
proudova´ sˇifra, 35, 54, 56, 57
trivia´lnı´ deˇlitel, 22
proudove´ sˇifra, 55
teˇleso, 24, 27
prvocˇı´slo, 22, 23, 29, 50, 91, 95, 97, 124, 143 pseudona´hodna´ cˇı´sla, 56, 60, 62, 123, 125
verˇejny´ klı´cˇ, 36, 88, 91, 95, 131, 132, 141, 145 Vigene´ru˚v algoritmus, 43
pseudoprvocˇı´slo, 29
vy´meˇna klı´cˇu˚, 88
pseudorandom number generators, 123, 143
vy´meˇna tajny´ch klı´cˇu˚, 95
prˇerusˇenı´, 14, 16
vy´znacˇne´ jme´no, 147, 150 vy´zva-odpoveˇd’, 131
prˇida´nı´ hodnoty, 14, 16 prˇ´ıjemce, 35
zbytek po deˇlenı´, 24, 25
prˇ´ıpustna´ abeceda, 35
zdvojenı´ bodu, 113 zmeˇna, 14, 16
Rijndael, 67
zpracova´nı´ informacı´, 8, 11
riziko, 16
zpeˇtna´ vazba, 60, 62, 64
rozpozna´va´nı´ hlasu, 137
zranitelne´ mı´sto, 12, 16
rozsˇ´ırˇeny´ Eukleidu˚v algoritmus, 26, 91, 97
Zrˇeteˇzenı´, 60
RSA, 30, 38, 88, 91, 93
sˇifra, 34, 36, 38, 41, 43, 44, 47, 49, 50, 56, 59, 61, 62, 68, 77, 97
samoopravny´ rezˇim, 61
sˇifrova´nı´, 34, 36, 39, 43, 44, 54, 55, 59, 60, 62, 64, 67, 77, 82, 88, 90, 93, 97
Scytale, 44 SHA-1, 101, 104, 105, 143
ˇ ´ınska´ veˇta o zbytcı´ch, 29, 31 C
Shift Cipher, 41, 43, 46
155
ˇ a´dem elipticke´ krˇivky, 114 R
rˇ´ızenı´ prˇ´ıstupu, 19
cˇipova´ karta, 130
u´tok, 14, 16
cˇı´slo slozˇene´, 22, 23, 29
u´tok replikacı´, 59
rˇa´d bodu, 114
Prˇedcha´zejı´cı´ Literatura
u´tocˇnı´k, 35
Obsah Nahoru
156