Download presentation
Presentation is loading. Please wait.
1
Kriptografija simetričnog (tajnog) ključa
Mario Čagalj Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 20/3/2012.
2
Kriptografski sustav Plaintext Encryption Ciphertext Decryption Plaintext Message Channel Key Channel Ke Kd Key Generation Kriptografija simetricnog (tajnog) kljuca: Ke = Kd Kriptografija javnog (asimetricnog) kljuca: Ke != Kd
3
Kriptografski sustav: definicija
Definicija: Kripografski sustav sastoji se od slijedecih elemenata: Prostor “cistih” (plaintext) poruka M Prostor kriptiranih (ciphertext) poruka C Prostor enkripcijskih kljuceva K i dekripcijskih kljuceva K’ Algoritam za generiranje kljuceva G : N K x K’ G generira par kljuceva (Ke, Kd) e K x K’ Enkripcijski algoritam E : M x K C Dekripcijski algoritam D : C x K’ M Oznaka enkripcijske transformacije: c = EKe(m), za Ke e K i m e M Oznaka dekripcijske transformacije: m = DKd (c), za Kd e K’ i c e C Za svaku poruku m e M i sve kljuceve Ke e K, postoji Kd e K’ takav da DKd (EKe(m)) = m.
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 pristup dizajnu kripografskih sustava Primjer: Probijanje A5/1 simetricnog kriposustava koji se inicijalno koristio u GSM uredjajima: “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
Klasični sustavi koriste dvije vrste tehnika Supstitucijske (substitution) Kod supstitucijske tehnike, enkripcijski algoritam EKe(m) zamjenjuje svaku “čistu” poruku (plaintext) m e M sa odgovarajucim “ciphertextom” c e C . Permutacijske (transposition) “Čista” poruka se transformira na način da se permutiraju elementi (slova, simboli) poruke, bez mijenjanja identiteta tih elemenata. Klasične supstitucijske sifre: Cezarova sifra, Playfair sifra, Hillova sifra, Vigenère sifra, Vernam sifra, One-Time Pad sifra
7
Cezarova sifra Zamjena svakog slova abecede sa slovom koji je udaljen za tri mjesta (prema kraju abecede) Primjer: za poruku m = sigurnost racunalnih sustava, odgovarajuci ciphertext glasi c = VLJXUQRVW UDFXQDOQLK VXVWDYD Matematicki opis Cezarovg kriposustava a = 0, b = 1, ..., z = 25 Enkripcija: svako slovo p “cistog” teksta (plaintext-a) zamjeni slovom C “ciphertext”-a, gdje C = E(3,p) = (p+3) mod 26. Dekripcija: p = D(3,C) = (C-3) mod 26. Generalno: C = E(K,p) = (p+K) mod 26 i p = D(K,C) = (C-K) mod 26 Dakle, K predstavlja enkripcijski kljuc Q: Je li Cezarova sifra sigurna? Zasto? 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 sifra
8
Monoalphabetic Ciphers
Cezarova sifra ima samo 26 kljuceva Podlozna “brute-force” napadu Broj kljuceva se moze znacajno povecati na nacin da za sifru koristimo bilo koju permutaciju slova abecede Broj kljuceva raste na 26! > 280 (brute-force napad potencijalno eliminiran) Na zalost, poznavajuci prirodu plaintext-a (npr. engleski tekst), moguce je napraviti kriptoanalizu ciphertext-a na osnovu relativne frekvencije slova (npr. u engleskom tekstu) Slova ciphertext-a ne mijenjaju relativnu frekvenciju odgovarajucih slova iz plaintext-a -> posljedica koristenja “monoalphabetic chipers” “Monoalphabetic chipers”: za dani enkripcijski kljuc, svaki element plaintext-a ce biti zamjenjen sa jedinstvenim elementom iz prostora ciphertext-a 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 sifra
9
Monoalphabetic Ciphers: kriptoanaliza
Zelimo desifrirati slijedeci ciphertext UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ 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 i t Slova ciphertext-a S, U, O, M i H imaju visoku frekvenciju pojavljivanja i najvjerojatnije odgovaraju slovima iz skupa {a, h, 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
Poboljsava sigurnost na nacin da koristi vise alfabeta za sifru Na ovaj nacin jedan element plaintext-a moze biti zamjenjen sa vise razlicitih elemenata iz prostora chipertext poruka (C) Kriptoanaliza je teza nego kod “monoalphabetic” sifri “Poravnava” distribuciju frekvencija pojavljivanja slova Primjer: Vigenère sifra Pretpostavimo slijedece kodiranje slova: a = 0, b = 1, c = 2, ..., z = 25 Neka enkripcijski kljuc bude: gold = (6, 14, 11, 3) Plaintext: m=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) Vigenère-ova enkripcija se moze definirati kao sumiranje slova plaintext-a i slova kljuca (slovo po slovo) modulo 26 Dobiveni chipertext: VFZFKSO PKSELTU LV GUCHKR Matematicki: C = E(K,p) = (p+K) mod 26 i p = D(K,C) = (C-K) mod 26 Za K=g=6, p=0=13 -> C = E(6,13) = 19 mod 26 = 19 i p=D(6,19)=13 mod 26 = 13 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 Jedna od najjednostavnijih kriptografskih sustava Plaintext poruka m je binarni string “dug” n bitova m = b1 b2 ... bn e {0,1}n Enkripcijski kljuc je takodjer n-bitni string k = k1 k2 ... kn e {0,1}n (k se bira na random nacin prema uniformnoj distribuciji) Enkripcija: ciphertext string c = c1 c2 ... cn se dobiva na slijedeci nacin ci = bi ki, za sve i=1,...,n, je zbrajanje modulo 2 (XOR) Dekripcija je identicna enkripciji bi = ci ki = bi ki ki = bi, za sve i=1,...,n One-Time Pad Enkripcijski kljuc k u Vernamovom kriptosustavu koristi se samo jednom (“one-time-key”); za svaku poruku m koristi se iznova generiran kljuc Idealan kriptografski sustav, no nepraktican (Q: Zasto?)
13
Permutacijske (Transposition) sifre
“Cista” poruka (plaintext) se transformira na nacin da se permutiraju elementi (slova, simboli) poruke, bez mijenjanja identiteta tih elemenata. Primjer 1: “Rail-fence” tehnika (dubina 2) m = 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 Moze se jednostavno ’’probiti’’ 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 Kriptoanaliza na osnovu relativne frekvencije slova jos uvijek moguca
14
Moderni kriptografski sustavi
Kriptografija simetričnog (tajnog) ključa Moderni kriptografski sustavi
15
Block vs. Stream Cipher +
“Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit (byte) “Block cipher” (blok sifra) procesira (enkriptira i dekriptira) “cistu” poruku u blokovima pseudo-random bit stream generator seed plaintext ciphertext ... + ... plaintext ciphertext block cipher padding key
16
Data Encryption Standard (DES)
Prvi i najznacajniji moderni simetricni kriptografski sustav Objavio ga je National Bureau of Standards, 1977. Izmedju ostalog, koristi se i za zastitu bankovnih transakcija U prvom redu osigurava privatnost poruka (confidentiality) DES radi sa 64 bitnim blokovima poruka (“block cipher”) “Block cipher” (blok sifra) procesira (enkriptira i dekriptira) “cistu” poruku u blokovima “Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit (byte) Poruke su enkriptirane u 64-bitne blokove koristeci 56-bitne enkripcijske kljuceve Matematickim rjecnikom M = C = {0,1}64 i K = {0,1}56 DES enkripcijski (E) i dekripcijski (D) algoritmi uzimaju kao ulaznu vrijednost 64-bitni plaintext ili ciphertext i 56-bitni kljuc, te daju 64-bitni ciphertext ili plaintext
17
Opis rada DES-a (1/3) Najprije se primjeni Inicijalna Permutacija (IP) na ulazni 64-bitni blok (L0, R0) IP(Ulazni Blok) L0 i R0 su lijevi i desni polublok (half-block), svaki je “dug” 32 bita Slijedeca operacija se iterira 16 puta, za i=1,...,16 Li Ri-1 Ri Li-1 f(Ri-1,ki) ki je kljuc i-te iteracije, dug 48 bitova, izveden od ulaznog 56-bitnog kljuca f(.) je “S-box Function”, f(.) je substitucijska sifra (S oznacava “Substitution”) Konacno, na rezultat 16. iteracije (L16, R16) primjenjuje se inverzna permutacija od inicijalne permutacije IP (da bi se ponistio efekt IP) Izlazni Blok IP-1 (R16, L16) Li-1 Ri-1 f ki Li Ri
18
Opis rada DES-a (2/3) f f f … f X K1 K2 K K3 K16 Y Initial Permutation
(64) Initial Permutation (32) (32) f (48) K1 f (48) K2 Key Scheduler (56) f K (48) K3 … f (48) K16 Initial Permutation-1 Y (64)
19
Opis rada DES-a (3/3) “Tri” prethodna koraka su ista za enkripcijski i dekripcijski algoritam Jedina razlika je u kljucevima ki (kljuc i-te iteracije) Ako su k1, k2, ..., k16 iteracijski kljucevi npr. enkripcijskog algoritma, onda su k16, k15, ..., k1 iteracijski kljucevi dekripcijskog algoritma (k16 odgovara kljucu koji se koristi u prvoj iteraciji DES dekripcijskog algoritma) Q: Dokazite da za DES vrijedi m = DK(EK(m)). Osnovne funkcije “S-box Function” f(.) Random i nelinearna distribucija plaintext poruka preko ciphertext prostora poruka (na ovaj nacin se eliminira npr. napad koristenjem relativne frekvencije plaintext-a) 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
Toy example: DES encryption (2 rounds)
(64) Initial Permutation (32) (32) L0 R0 plaintext m f K 1 =g 1(K) m L1 R1 DES (2 rounds) secret key K E K c = EK(m) f K 2 =g 2(K) c ciphertext c L2 R2 R2 L2 Initial Permutation-1 c (64)
21
Toy example: DES encryption (2 rounds)
(64) Initially: (L0, R0) <-- IP(m) 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)
22
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 m = DK(c) f K 1 =g 1(K) m plaintext m L2 R2 R2 L2 Initial Permutation-1 m (64)
23
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: m <-- IP-1(R2, L2) m <-- IP-1(L0, R0)=IP-1(IP(m))=m DES satisfies: m=DK(EK(m)) 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 m (64)
24
Sigurnost DES-a DES je otporan na nekoliko znacajnih kriptoanalitickih napada Linear cryptanalysis Differential cryptanalysis Zahvaljujuci nelinearnosti “S-box Function” f(.) Najveca kritika DES-a vezana je uz duzinu enkripcijskog kljuca (samo 56 bitova) 1993. – VLSI DES key search machine (US$1,000,000) pronalazi DES kljuc za 3.5 sata (teoretska analiza) 1998. – DES Cracker (US$250,000) pronasao DES kljuc nakon 56 sati! Jedan od nacina za rjesavanje problema (pre)kratkog kljuca je tzv. “encryption-decryption-encryption-triple DES” Enkripcija: c EK1(DK2(EK1(m))) Dekripcija: m DK1(EK2(DK1(c))) Povecava se prostor kljuca K Kompatibilnost sa single key DES-om (K1=K2) Mogucnost koristenja tri razlicita kljuca (npr. PGP)
25
Advanced Encryption Standard (AES)
1997. US National Institute of Standards and Tehnology (NIST) objavio je natjecaj za novi enkripcijski standard koji bi zamjenio DES Novi algoritam bi se zvao (se zove) AES odabrana grupa od 15 algoritama kandidata za AES 2000. NIST objavljuje da je izabrao Rijndael za AES Rijndael su dizajnirala dva belgijska kriptografera: Daemen i Rijmen Rijndael Blok sifra koja podrzava kljuceve od 128, 192 i 256 bitova Nedavno otkriven napad zasnovan na Differential Power Analyisis (DPA) AES se koristi npr. kod poboljsane zastite lokalnih bezicnih mreza (IEEE e standard)
26
Osnovni modovi rada blok sifri
Kriptografija simetričnog (tajnog) ključa Osnovni modovi rada blok sifri
27
Osnovni modovi rada blok sifri
Blok sifra procesira (enkriptira ili dekriptira) poruku u blokovima fiksne duzine U praksi je duzina skupa poruka koju treba procesirati puno duza od fiksnog bloka sa kojim radi sifra (npr., DES radi sa blokovima od 64 bita) Blok sifra “razbije” ulaznu poruku u seriju sekvencijalnih blokova odgovarajuce duzine (npr. 64 bita), te procesira ove blokove po principu “jedan po jedan” Ovisno o tome kako blok sifra procesira sekvencu blokova, razlikujemo slijedece osnovne modove rada blok sifri: Electronic Codebook (ECB) Cipher Block Chaining (CBC) Cipher Feedback (CFB) Output Feedback (OFB) Counter (CTR) mode
28
Electronic Codebook (ECB) Mode
Notacija: P1 P2 ... Pm: m uzastopnih segmenata plaintext poruke na ulazu promatranog operacijskog moda Velicina svakog segmenta poruke Pi je n, gdje je n duzina bloka sa kojim radi promatrana sifra C1 C2 ... Cm: m uzastopnih segmenata ciphertexta na izlazu promatranog operacijskog moda EK(.) i DK(.) su enkripcijski i dekripcijski algoritmi promatrane sifre ECB 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
29
Svojstva ECB moda Isti plaintext blok rezultira istim ciphertext blokom (koristeci isti enkripcijski kljuc) Poruke koje se enkriptiraju obicno imaju regularan format Specijalna zaglavlja, string , itd. Segmenti poruke su enkriptirani neovisno o drugim segmentima Zamjenom ciphertext blokova, zamjenjuju se odgovarajuci plaintext blokovi Ciphertext blokovi se mogu “korpirati” iz jedne enkriptirane poruke u drugu 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
30
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
31
Svojstva CBC moda Enkripcija dva ista plaintexta istim kljucem, ali sa razlicitim vrijednostima Inicijalizacijskog Vektora (IV) daje razlicite ciphertext-ove Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext blokovima Ako napadac pokusa zamjeniti ciphertext blokove, utjecati ce na dekripciju Medjutim, 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: Greska u jednom bitu u bloku Cj ima utjecaj samo na Pj i Pj+1 plaintext blok Napadac moze izazvati kontorliranu promjenu bitova u Pj+1 plaintext block (Pj ne moze kontrolirati) Self-synchronizing Oporavak od greski u bitovima
32
Integritet IV u CBC modu
Inicijalizacijski vektor (IV) ne mora biti tajan, ali njegov integritet mora biti zasticen Maliciozne promjene IV-a dozvoljavaju napadacu da uzrokuje kontrolirane promjene u prvom plaintext bloku Potencijalno rjesenje Enkriptirati IV (koristeci npr. ECB) i poslati gan na pocetku CBC enkriptirane poruke
33
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
34
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
35
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 svi ostali plaintext-ovi ce biti random Stoga, napadac moze uzrokovati kontrolirane promjene u j-tom plaintext bloku Self-synchronizing Ali zahtjeva n/s blokova ciphertexta da ispravi greske u bitovima
36
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) (s) (s) (s) Pi (s) Ci + Ci Pi +
37
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
38
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 Stoga, 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
39
Counter (CTR) mode Enkripcija: Dekripcija E E counter + i counter + i
Pi + Ci Pi +
40
Svojstva CTR moda “counter” mora biti razlicit za svaki blok
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.