Download presentation
Presentation is loading. Please wait.
Published byPasi Virtanen Modified over 6 years ago
1
Kriptografija zasnovana na simetričnom ključu (eng
Kriptografija zasnovana na simetričnom ključu (eng. symmetric key cryptography) Mario Čagalj FESB
2
Kriptografski sustav Plaintext Encryption Ciphertext Decryption
Message Channel Key Channel ke kd Key Generation
3
Kriptografski sustav: definicija
4
Kerckhoffsov aksiom (princip)*
Auguste Kerckhoffs, 19. st. Kriptografski sustav mora biti siguran cak iako su svi elementi koji cine sustav, osim tajnih kljuceva, poznati (javna informacija) Security through obscurity je vrlo nepopularan i nepreporucljiv, ali čest, pristup dizajnu kripografskih sustava Primjer: Nesiguran A5/1 simetrični kriposustav koji se inicijalno koristio u GSM mrežama: “A Reference Implementation of the Alleged A5/1 Stream Cipher.” Briceno, M., Goldberg, I., and Wagner, D. “Real-Time Cryptanalysis of the A5/1 Stream Cipher.” Shamir, A., Biryukov, B., and Wagner, D. In Proceedings of Fast Software Encryption (FSE), 2000. *Nema veze sa Kirchoffovim zakonom.
5
Klasični kriptografski sustavi
Kriptografija simetričnog (tajnog) ključa Klasični kriptografski sustavi
6
Klasični (simetrični) kriposustavi
Koriste se dvije vrste tehnika Supstitucijske: enkripcijski algoritam Eke(p) zamjenjuje svaku poruku (plaintext) p P odgovarajucim ciphertextom c C. Permutacijske: simboli (npr., slova) plaintext poruke se permutiraju, bez mijenjanja identiteta tih elemenata. Neke klasične supstitucijske sifre Cezarova sifra Playfair sifra Hillova sifra Vigenère sifra Vernam sifra, One-Time Pad sifra
7
Cezarova (shift) sifra
Zamjena svakog slova abecede sa slovom koji je udaljen za tri mjesta (udesno) plaintext p = kriptografija i mrezna sigurnost ciphertext c = NULSWRJUDILMD L PUHCQD VLJXUQRVW Matematicki opis Cezarove (shift) sifre (modularna aritmetika) Q: Napravite kriptoanalizu Cezarove sifre. plaintext 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 D E F G H I J K L M N O P Q R S T U V W X Y Z A B z C ciphertext
8
Monoalphabetic Ciphers
Cezarova sifra ima samo 26 kljuceva (moguc je brute-force napad) Broj kljuceva moze se znacajno povecati na nacin da za ključ koristimo bilo koju permutaciju slova alfabeta Broj kljuceva raste na 26! > 280 (brute-force napad eliminiran), ali... ..., poznavajuci prirodu plaintext-a (npr. engleski tekst), moguce je napraviti kriptoanalizu ciphertexta na osnovu relativne frekvencije pojavljivanja slova (npr. u engleskom tekstu). Q. Zašto i kako? Svojstvo monoalphabetic chipers: elementi/slova ciphertexta ne mijenjaju relativnu frekvenciju odgovarajucih slova iz plaintexta. plaintext 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 I K F G H W L M N O S C A P U T V J X Y Z R B z Q ciphertext
9
Monoalphabetic Ciphers: kriptoanaliza
Zelimo desifrirati sljedeci ciphertext UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZH MDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWP FUPZHMDJUDTMOHMQ Racunamo relativnu frekvenciju pojavaljivanja slova P – 13.33%, Z – 11.67%, S – 8.33%, U – 8.33%, O – 7.5%, M – 6.67%, ..., C = 0%, K = 0%, L = 0%, N = 0%, R = 0% Relativna frekvencija prosjecnog engleskog teksta
10
Monoalphabetic Ciphers: kriptoanaliza
Slova ciphertext-a P i Z najvjerojatnije odgovaraju slovima e,t ili a Slova ciphertext-a S, U, O, M i H imaju visoku frekvenciju pojavljivanja i najvjerojatnije odgovaraju slovima iz skupa {a, t, i, n, o, r, s} Slova ciphertext-a A, B, G, Y, I te J imaju najmanju frekvenciju pojavljivanja te najvjerojatnije odgovaraju slovima iz skupa {b, j, k, q, v, x, z} Na osnovu prethodnih znanja, te koristeci metodu pogreske i pokusaja desifriramo ciphertext kao: it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the viet cong in moscow
11
Polyalphabetic Ciphers
Jedan element plaintexta moze se mapirati u vise razlicitih elemenata iz skupa ciphertext elemenata Kriptoanaliza teza nego kod monoalfabetskih sifri Poravnava distribuciju frekvencije pojavljivanja pojedinih elemenata/slova Primjer: Vigenère sifra Alfabet: a = 0, b = 1, c = 2, ..., z = 25 Enkripcijski kljuc: “gold” = (6, 14, 11, 3) Plaintext: “proceed meeting as agreed” = (15, 17, 14, 2, 4, 4, 3, 12, 4, 4, 19, 8, 13, 6, 0, 18, 0, 6, 17, 4, 4, 3) Ciphertext je rezultat zbrajanja plaintexta i kljuca (slovo po slovo) modulo 26 Chipertext: “VFZFKSO PKSELTU LV GUCHKR” Q1. Dajte matematički opis Vigenère-ove sifre. Q2. Opisite bar jedan napad na Vigenère-ove sifru. 15 17 14 2 4 3 12 19 8 13 6 18 11 21 5 25 10 20 7
12
Vernam i “One-Time Pad” sifre
Vernam sifra Plaintext poruka p je binarni string: p = p1 p2 ... pn {0,1}n Enkripcijski kljuc k je binarni string: k = k1 k2 ... kn {0,1}n Isti kljuc se koristi za enkripciju vise plaintext poruka Enkripcija: c = p k = c1 c2 ... cn {0,1}n ci = pi ki, i=1,2,...,n ( je zbrajanje po modulu 2) Dekripcija: p = c k pi = ci ki, i=1,2,...,n One-Time Pad Sličan Vernamovom kriptosustavu s važnom razlikom da se enkripcijski ključ koristi se samo jednom (one-time-key); za svaku poruku m koristi se novi slucajno generiran kljuc Idealan kriptografski sustav, no nepraktican (Q: Zasto?)
13
Permutacijske sifre Plaintext poruka se transformira na nacin da se permutiraju elementi (slova, simboli) poruke, bez mijenjanja identiteta tih elemenata Primjer 1: “Rail-fence” tehnika (dubina 2) p = meet me after the class m e m a t r t e l s e t e f e t h c a s c = MEMATRTELSETEFETHCAS Primjer 2: Key: Plaintext: m e e t m e a f t e r t h e c l a s s x Ciphertext: EATATTESMERLMECXEFHS
14
Moderni kriptografski sustavi
Kriptografija simetričnog (tajnog) ključa Moderni kriptografski sustavi
15
Block vs. Stream Cipher Stream cipher procesira poruku bit (byte) po bit (byte) Block cipher procesira (enkriptira i dekriptira) plaintext u blokovima pseudo-random bit stream generator seed/key plaintext ciphertext ... ... plaintext ciphertext block cipher padding key
16
Data Encryption Standard (DES)
Prvi moderni simetricni kriptografski sustav Razvio ga je IBM a standardizirao National Bureau of Standards, 1977. Primarno osigurava/o privatnost poruka (confidentiality) Blok-sifra i radi s 64 bitnim plaintext i ciphertext blokovima Koristi 56-bitne enkripcijske kljuceve Originalan dizajn koristio 128 bitova, no US NSA inzistirala na 56 bitova Prekratki kljucevi prema danasnjim mjerilima (ranjiv na brute-force napad) 56-bitni DES nesiguran, ali 3DES nešto sigurniji i jos uvijek u uporabi Matematickim rjecnikom P = C = {0,1}64 i K = {0,1}56 DES enkripcijski (E) algoritam uzima kao ulaznu vrijednost 64-bitni plaintext i 56-bitni kljuc, te daje 64-bitni ciphertext DES dekripcijski (D) algoritam uzima kao ulaznu vrijednost 64-bitni ciphertext i 56-bitni kljuc, te daje 64-bitni plaintext
17
Data Encryption Standard (DES)
(64) Initial Permutation (32) (32) f (48) k1 f (48) k2 Key Scheduler (56) f k (48) k3 … f (48) k16 Initial Permutation-1 C (64)
18
Data Encryption Standard (DES)
Inicijalna Permutacija (IP) ulaznog 64-bitnog bloka L0 i R0 su lijevi i desni polublok (half-block), svaki je “dug” 32 bita Sljedeca operacija ponavlja se 16 puta, za i = 1,...,16 ki – 48-bitni kljuc i-te iteracije, izveden od ulaznog 56-bitnog kljuca k f(.) - slozena supstitucijsko/permutacijska funkcija Konačno, inverzna permutacija primjenjuje se na (L16, R16) (32) Li-1 Ri-1 f k i =g i(k) Li Ri
19
Data Encryption Standard (DES)
Dekripcija je identičana postupku enkripcije Jedina razlika je u kljucevima ki (kljuc i-te iteracije) Raspored iteracijskih ključeva kod enkripcije: k1, k2, ..., k16 Raspored iteracijskih ključeva kod dekripcije: k16, k15, ..., k1 Q: Dokazite da za DES vrijedi m = DK(EK(m)). Osnovna uloga slozene supstitucijsko/permutacijske funkcije f(.) Nelinearno mapiranje plaintext poruka u skup ciphertext poruka (eliminira npr. napad koristenjem relativne frekvencije plaintext-a i neke druge napredne kriptoanalitičke napade – diferencijalnu i linearnu kriptoanalizu) Vazno je naglasiti da funkcija f(.) ne mora biti reverzibilna Q: Pokazite da DES funkcionira cak i u slucaju da f(.) nije reverzibilna funkcija.
20
Data Encryption Standard (DES)
Supstitucijsko/permutacijska funkcija f(.) (32) Ri-1 E Expanded Ri-1 k i (48) S1 S2 S3 S8 (6) (4) P Expansion function (32) Li-1 Ri-1 f k i =g i(k) Li Ri Substitution (S) boxes Permutation
21
Data Encryption Standard (DES)
Expansion function E Source: Wikipedia
22
Data Encryption Standard (DES)
Substitution S-boxes (prikazana samo S5) Pažljivo dizajnirane da spriječe diferencijalnu kriptoanalizu 011011 S5 0110 Source: Wikipedia
23
Data Encryption Standard (DES)
Permutation P: helps spreading bits from the given S-box so that they affect inputs into at least two S-boxes in the following round – the avalanche effect Source: Wikipedia
24
Toy example: DES encryption (2 rounds)
(64) Initial Permutation (32) (32) L0 R0 plaintext p f k 1 =g 1(k) p L1 R1 DES (2 rounds) secret key k E k c = Ek(p) f k 2 =g 2(k) c ciphertext c L2 R2 R2 L2 Initial Permutation-1 c (64)
25
Toy example: DES encryption (2 rounds)
(64) Initially: (L0, R0) <-- IP(p) L1 = R0 R1 = L f(k1, R0) L2 = R1 = L f(k1, R0) R2 = L f(k2, R1) = R0 f(k2, R1) = R0 f(k2, L f(k1, R0)) End: c <-- IP-1(R2, L2) c <-- IP-1(R0 f(k2, L f(k1, R0)), L f(k1, R0)) R2 L2 Initial Permutation (32) (32) L0 R0 f k 1 =g 1(k) L1 R1 f k 2 =g 2(k) L2 R2 R2 L2 Initial Permutation-1 c (64)
26
Toy example: DES decryption (2 rounds)
(64) Initial Permutation (32) (32) L0 R0 ciphertext c f k 2 =g 2(k) c L1 R1 DES-1 (2 rounds) secret key k D k p = Dk(c) f k 1 =g 1(k) p plaintext p L2 R2 R2 L2 Initial Permutation-1 p (64)
27
Toy example: DES decryption (2 rounds)
(64) Initially: (L0, R0) <-- IP(c) (L0, R0) <-- IP(IP-1(R2, L2))=(R2, L2) L1 = R0 = L2 = R1 R1 = L f(k2, R0) = R f(k2, L2) = L f(k2, R1) f(k2, L2) = L f(k2, R1) f(k2, R1) = L1 L2 = R1 = L1 = R0 R2 = L f(k1, R1) = R f(k1, L1) = L f(k1, R0) f(k1, L1) = L0 End: p <-- IP-1(R2, L2) p <-- IP-1(L0, R0)=IP-1(IP(p))=p DES satisfies: DK(EK(p))=p Initial Permutation (32) (32) L0 R0 f k 2 =g 2(k) L1 R1 f k 1 =g 1(k) L2 R2 R2 L2 Initial Permutation-1 p (64)
28
Sigurnost DES-a DES je otporan na nekoliko znacajnih kriptoanalitickih napada Linear cryptanalysis Differential cryptanalysis Zahvaljujuci nelinearnosti funkcije f(.) Najveca kritika DES-a vezana je uz duzinu enkripcijskog kljuca 1993. – DES key search machine ($1,000,000) pronalazi kljuc za 36h (theory) 1998. – DES Cracker ($250,000) pronasao DES kljuc nakon 56h! Jedan od nacina za rjesavanje problema (pre)kratkog kljuca je tzv. encryption-decryption-encryption-triple DES Enkripcija: Dekripcija: Povecava se prostor kljuceva K Kompatibilnost sa single key DES-om (k1=k2) Mogucnost koristenja tri razlicita kljuca (npr. PGP)
29
Advanced Encryption Standard (AES)
1997. US National Institute of Standards and Tehnology objavio je natjecaj za novi enkripcijski standard koji bi zamjenio DES Novi algoritam bi se zvao AES odabrana grupa od 15 algoritama kandidata za AES 2001. NIST objavljuje da je izabrao Rijndael za AES Rijndael su dizajnirala dva belgijska kriptografera: Daemen i Rijmen Rijndael (izgovor: [reinda:l]) Blok sifra koja podrzava kljuceve od 128, 192 i 256 bitova Podržava i različite veličine blokova ali AES koristi samo 128 bitne blokove U praksi bi trebali koristiti AES
30
Advanced Encryption Standard (AES)
Blok-sifra i radi s 128 bitnim plaintext i ciphertext blokovima Koristi 128, 196, 256-bitne enkripcijske kljuceve Broj internih rundi/iteracija ovisi o veličini ključa (10 iteracija za 128, 12 za 192, te 14 iteracija za 256-bitne ključeve) Matematickim rjecnikom P = C = {0,1}128 i K = {0,1}128, 192, ili 256 AES enkripcijski (E) algoritam uzima kao ulaznu vrijednost 128-bitni plaintext i {128, 192, ili 256}-bitni kljuc, te daje 128-bitni ciphertext AES dekripcijski (D) algoritam uzima kao ulaznu vrijednost 128-bitni ciphertext i {128, 192, ili 256}-bitni kljuc, te daje 128-bitni plaintext
31
Advanced Encryption Standard (AES)
(16 bytes = 128 bits) Encryption direction Plaintext (4) Input state (4) (4) (4) (16) AddRoundKey k0 Round 1 (4 transformations) (16) k1 SubBytes ShiftRows MixColumns AddRoundKey ... (4) Round N-1 (4 transformations) (4) (16) K kN-1 Key Schedule (16, 24, or 32 bytes) (4) (4) SubBytes ShiftRows AddRoundKey (4) Round N (3 transformations) (4) (16) kN N = 10, 12, or 14 (4) Final state (4) Ciphertext (16 bytes = 128 bits)
32
Advanced Encryption Standard (AES)
Pseudo-code: encryption (NIST FIPS Publication 197, 2001)
33
Advanced Encryption Standard (AES)
(16 bytes = 128 bits) Decryption direction Ciphertext (4) Input state (4) (4) (4) (16) AddRoundKey kN Round 1 (4 transformations) (16) kN-1 Inverse ShiftRows Inverse SubBytes AddRoundKey Inverse MixColumns ... (4) Round N-1 (4 transformations) (4) (16) Key Schedule (16, 24, or 32 bytes) K k1 (4) (4) Inverse ShiftRows Inverse SubBytes AddRoundKey (4) Round N (3 transformations) (4) (16) k0 N = 10, 12, or 14 (4) Final state (4) Plaintext (16 bytes = 128 bits)
34
Advanced Encryption Standard (AES)
Pseudo-code: decryption (NIST FIPS Publication 197, 2001)
35
Advanced Encryption Standard (AES)
SubBytes Uses non-linear S-boxes to perform byte-by-byte substitution ShiftRows A simple permutation MixColumns A substitution that makes use of artihmetic over Galois field GF(28) AddRoundKey A bitwise XOR of the current state with the round key
36
Advanced Encryption Standard (AES)
Single round SubBytes (same S-box) (16 bytes) S Input state State ShiftRows (permutation) (1) Mix MixCoumns (subs GF(28)) k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13 k14 k15 AddRoundKey Output state
37
Advanced Encryption Standard (AES)
Example (from William Stallings): first round P: abcdeffedcba K: 0f1571c947d9e8590cb7add6af7f6798 After AddRoundKey After SubBytes 01 89 fe 76 23 ab dc 54 45 cd ba 32 67 ef 98 10 0f 47 0c af 15 d9 b7 7f 71 e8 ad 67 c9 59 d6 98 0e ce f2 d9 b 2b ae b6 4e 88 = Input state 0e ce f2 d9 b 2b ae b6 4e 88 ab 8b 89 35 f f1 18 3f f0 fc e4 4e 2f c4 S-box
38
Advanced Encryption Standard (AES)
S-box 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 63 7c 77 7b f2 6b 6f c5 30 67 2b fe d7 ab 76 10 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 20 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 c7 23 c3 18 96 9a 12 80 e2 eb 27 b2 75 40 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 50 53 d1 ed fc b1 5b 6a cb be 39 4a 4c 58 cf 60 d0 ef aa fb 43 4d 33 85 45 f9 7f 3c 9f a8 70 51 a3 8f 92 9d 38 f5 bc b6 da 21 ff f3 d2 cd 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 90 81 4f dc 22 2a 88 46 ee b8 14 de 5e db e0 32 3a 49 24 5c c2 d3 ac 62 91 95 e4 79 b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a 3e b5 66 48 f6 61 35 57 b9 86 c1 1d 9e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df 8c a1 89 bf e6 42 68 41 99 2d 54 bb 16
39
Advanced Encryption Standard (AES)
Example (from William Stallings): first round P: abcdeffedcba K: 0f1571c947d9e8590cb7add6af7f6798 After ShiftRows After MixColumns (multiplication and additions done in GF(28)) ab 8b 89 35 05 40 7f f1 18 3f f0 fc e4 4e 2f c4 ab 8b 89 35 40 7f f1 05 f0 fc 18 3f c4 e4 4e 2f Shift rows <<< 1 <<< 2 <<< 3 ab 8b 89 35 40 7f f1 05 f0 fc 18 3f c4 e4 4e 2f b e4 8e 16 51 a 3f c5 d6 f5 3b = Output state
40
Advanced Encryption Standard (AES)
Please note that AES with 7 rounds is not secure So, the security margin at the moment is only 3 rounds
41
Comparison of DES, 3DES and AES
Plaintext block size (bits) 64 128 Ciphertext block size (bits) Key size (bits) 56 112 or 168 (true security around 80 bits) 128, 192, or 256 Ciphertext c=Ek(p) Plaintext p=Ek(c) Plaintext p Encryption algorithm Decryption algorithm Secret key k Secret key k
42
Time Required at 1 Decryption/μs Time Required at 106 Decryption/μs
Brute-Force Attack Candidate keys Bins and urn model Average time to break (computational security) Sought secret key Secret key space Key Size (bits) Key Space Time Required at 1 Decryption/μs Time Required at 106 Decryption/μs 32 232 = 4.3 x 109 231 μs = 35.8 min 2.15 miliseconds 56 256 =7.2 x 1016 255 μs = 1142 years 10 hours 128 2128 =3.4 x 1038 2127 μs = 5.4 x 1024 years 5.4 x 1018 years 168 2168 =3.7 x 1050 2167 μs = 5.9 x 1036 years 5.9 x 1030 years
43
Osnovni modovi rada blok sifri
Kriptografija simetričnog (tajnog) ključa Osnovni modovi rada blok sifri
44
Osnovni modovi rada blok sifri
Blok sifra procesira plaintext u blokovima fiksne duzine U praksi je plaintext puno duza od dužine bloka dane šifre (AES bitni blok, 3DES – 64 bitni blok) Blok sifra dijeli ulaznu poruku u seriju sekvencijalnih blokova odgovarajuce duzine (npr. 128 bita), te procesira ove blokove po principu “jedan po jedan” Ovisno o tome kako blok sifra procesira sekvencu blokova, razlikujemo sljedece osnovne modove rada blok sifri: Electronic Codebook (ECB) Cipher Block Chaining (CBC) Cipher Feedback (CFB) Output Feedback (OFB) Counter (CTR) mode GCM, CCM - authenticated-encryption (AE) modes Stream ciphers built on top of a block cipher
45
Electronic Codebook (ECB) Mode
Notacija: P1 P2 ... Pm: m uzastopnih ulaznih segmenata/blokova plaintext poruke Velicina svakog segmenta poruke Pi je n, gdje je n duzina bloka koristene sifre (npr. za DES n=64, za AES n=128) C1 C2 ... Cm: m odgovarajucih izlaznih ciphertext blokova EK(.) i DK(.) enkripcijski i dekripcijski algoritmi dane blok sifre (npr. DES, AES) ECB enkripcija i dekripcija Enkripcija: Ci EK (Pi), i = 1,2,...,m Dekripcija: Pi DK (Ci), i = 1,2,...,m P1 P2 Pm … E E E K K K C1 C2 Cm
46
Svojstva ECB moda Isti plaintext blok rezultira istim ciphertext blokom (koristeci isti enkripcijski kljuc) Poruke koje se enkriptiraju obicno imaju regularan i poznat format Specijalna zaglavlja, string , itd. Segmenti poruke su enkriptirani neovisno o drugim segmentima Zamjenom ciphertext blokova, narusava se integritet plaintext-a Ciphertext blokovi razlicitih poruka mogu se jednostavno “mijesati” Propagacija greske: greska u jednom bitu ciphertext bloka ne utjece na ostale ciphertext blokove Generalno: ne preporuca se za poruke koje su duze od jednog bloka, ili ako se enkripcijski kljucevi koriste za enkripciju vise od jednog bloka (vidi primjer u nastavku) Upozorenje: vrlo nesiguran način enkripcije
47
Nedostaci ECB moda Isti plaintext blok rezultira istim ciphertext blokom (ako se koristi isti enkripcijski kljuc) Primjer: AES sa 128 bitnim enkripcijskim kljucem u ECB modu. Q: Objasnite zasto se ovo dogodilo. Je li AES nesigurna šifra?
48
Cipher Block Chaining (CBC) Mode
Često korišten enkripcijski mod
49
Cipher Block Chaining (CBC) Mode
Enkripcija Dekripcija P1 P2 P3 Pm IV Cm-1 … E E E E K K K K C1 C2 C3 Cm C1 C2 C3 Cm D D D D K K K … K IV Cm-1 P1 P2 P3 Pm
50
Cipher Block Chaining (CBC) Mode
Enkripcija P1 P2 P3 Pm IV Cm-1 … E E E E K K K K C1 C2 C3 Cm
51
Cipher Block Chaining (CBC) Mode
Dekripcija C1 C2 C3 Cm D D D D K K K … K IV Cm-1 P1 P2 P3 Pm
52
Svojstva CBC moda Enkripcija dva ista plaintexta istim kljucem ali s razlicitim vrijednostima inicijalizacijskog vektora (IV) daje razlicite ciphertextove Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext blokovima Zamjena ciphertext blokova će utjecati na dekripciju Ovisnost o prethodnim plaintext blokovima je isljucivo preko prethodnog ciphertext bloka Cj-1 Stoga za ispravnu dekripciju ciphertext bloka potreban je samo ispravan prethodni ciphertext blok Propagacija greske (npr. zbog smetnji na kanalu) Greska u jednom bitu u bloku Cj ima utjecaj samo na blokove Pj i Pj+1 Napadac moze izazvati kontorliranu promjenu bitova u Pj+1 plaintext bloku (ali ne moze kontrolirati prethodni plaintext blok Pj) Self-synchronizing (brz oporavak od greski)
53
Svojstva CBC moda Isti plaintext blok rezultira razlicitim ciphertext blokom (cak i ako se koristi isti enkripcijski kljuc)
54
Integritet IV u CBC modu
Inicijalizacijski vektor (IV) ne mora biti tajan, ali mora biti nepredvitiv, te njegov integritet mora biti zasticen Maliciozne promjene IV-a dozvoljavaju napadacu da uzrokuje kontrolirane promjene u prvom plaintext bloku Postoje napadi na CBC mod ukoliko je IV predvidiv (LAB) Koristiti slucajno generiran IV za svaku enkriptiranu poruku Q: Padding oracle attack (CBC izbačen iz TLS 1.3 standarda) Q: Vaznost velicine bloka enkripcijskog algoritma. Razmislite o potencijalnim posljedicama situacije u kojoj bilo koja dva ciphertext bloka imaju iste vrijednosti, ako su rezultat enkripcije istim enkripcijskim kljucem (ali proizvoljnih poruka) Procjenite vjerojatnost takvog dogadjaja za DES i AES
55
Cipher Feedback (CFB) Mode
Enkripcija: Dekripcija initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E E K K (n) (n) select s bits select s bits (s) (s) (s) (s) Ci (s) (s) Pi Ci Pi
56
Cipher Feedback (CFB) Mode
(s) (s) initialized with IV I1 shift register (n) I2 shift register (n) I3 shift register (n) (n) (n) (n) E E E K K K (n) (n) (n) select s bits select s bits select s bits (s) (s) (s) (s) (s) P1 P2 P3 (s) (s) (s) (s) C1 C2 C3
57
Svojstva CFB moda Enkripcijom istih plaintext-ova istim kljucem, ali razlicitim IV-ovima daje razlicite ciphertext-ove IV moze biti poslan neenkriptiran (kao plaintext) Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext blokovima Stoga, zamjena ciphertext blokova utjece na dekripciju Ispravna dekripcija ciphertext bloka zahtjeva da su svi prethodni n/s ciphertext blokovi ispravni Propagacija greske: Greska u jednom bitu ciphertext bloka Cj utjece na dekripciju tog bloka kao i sljedecih n/s ciphertext blokova Pj ce imati greske gdje i Cj, dok ce svi ostali plaintext-ovi biti random Napadac moze uzrokovati kontrolirane promjene u j-tom plaintext bloku Self-synchronizing Ali zahtjeva n/s blokova ciphertexta da ispravi greske u bitovima
58
Output Feedback (OFB) Mode
Enkripcija: Dekripcija initialized with IV initialized with IV (s) (s) shift register (n) shift register (n) (n) (n) E E K K (n) (n) select s bits select s bits (s) (s) Pi (s) (s) Ci (s) (s) Ci Pi
59
Output Feedback (OFB) Mode
(s) (s) initialized with IV I1 shift register (n) I2 shift register (n) I3 shift register (n) (n) (n) (n) E E E K K K (n) (n) (n) select s bits select s bits select s bits (s) (s) (s) (s) (s) P1 P2 P3 (s) (s) (s) (s) C1 C2 C3
60
Svojstva OFB moda Enkripcijom istih plaintext-ova istim kljucem, ali razlicitim IV-ovima daje razlicite ciphertext-ove IV moze biti poslan neenkriptiran (kao plaintext) Medjutim, ako napadac promijeni IV, sifra se ne moze oporaviti (CFB mod moze!) Ciphertext blok Cj ovisi samo o Pj Ali za raziliku od ECB, zamjena ciphertext blokova ima utjecaj na dekripciju Propagacija greske: Greska u jednom bitu ciphertext bloka Cj utjece samo na dekripciju bloka Cj Pj ima greske gdje i Cj Napadac moze uzrokovati kontrolirane promjene u j-tom plaintext bloku Oporavak od greski: Moze se oporaviti od greski na bitovima Ali ne moze ako je IV modificiran
61
Counter (CTR) mode Enkripcija: Dekripcija E E Counter + i Counter + i
Pi Ci Pi
62
Svojstva CTR moda Counter vrijednost mora biti razlicita za svaki blok (Q: Zasto?) j-ti blok moze biti dekriptiran neovisno o drugim blokovima Moze se paralelizirati Random access (dekriptiramo bilo koji blok) Vrijednosti koje se XOR-aju sa plaintext-om mogu biti izracunate unaprijed (preprocessing) Jako efikasan za implementaciju (software-sku i hardware-sku) Primjer primjene: WiFi mreze: Counter Mode CBC–MAC (CCM) Protocol TLS: Galois/Counter Mode (GCM)
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.