470 likes | 691 Views
Kriptografija zasnovana na simetri č nom klju č u (eng. symmetric key cryptography ). Mario Č agalj mario.cagalj@fesb.hr FESB 11 / 3 /20 1 4. Kriptografski sustav. Ciphertext. Plaintext. Plaintext. Encryption. Decryption. Message Channel. Key Channel. k e. k d. Key Generation.
E N D
Kriptografija zasnovana na simetričnom ključu (eng. symmetric key cryptography) Mario Čagalj mario.cagalj@fesb.hr FESB 11/3/2014.
Kriptografski sustav Ciphertext Plaintext Plaintext Encryption Decryption Message Channel Key Channel ke kd Key Generation
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. http://www.scard.org/gsm/a51.html • “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.
Kriptografija simetričnog (tajnog) ključa Klasični kriptografski sustavi
Klasični (simetrični) kriposustavi • Koriste se dvije vrste tehnika • Supstitucijske • Kod supstitucijske tehnike, enkripcijski algoritam Eke(p) zamjenjuje svaku “cistu” poruku (plaintext) pPsa odgovarajucim “ciphertextom” c C . • Permutacijske • Plaintext poruka se transformira na način da se permutiraju elementi (slova, simboli) poruke, 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
Cezarova (shift) sifra • Zamjena svakog slova abecede sa slovom koji je udaljen za tri mjesta (udesno) • Primjer: plaintext p = sigurnost racunalnih sustava ciphertext c = VLJXUQRVW UDFXQDOQLK VXVWDYD • Matematicki opis Cezarove (shift)sifre (modularna aritmetika) • Q: Je li Cezarova sifra sigurna? Zasto? plaintext ciphertext
Monoalphabetic Ciphers • Cezarova sifra ima samo 26 kljuceva (moguc je brute-force napad) • Broj kljuceva se moze znacajno povecati na nacin da za sifru koristimo bilo koju permutaciju slova abecede/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. Q. Zašto? plaintext ciphertext
Monoalphabetic Ciphers: kriptoanaliza • ZelimodesifriratisljedeciciphertextUZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ • Racunamorelativnufrekvencijupojavaljivanjaslova • 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% • Relativnafrekvencijaprosjecnogengleskogteksta
Monoalphabetic Ciphers: kriptoanaliza • Slovaciphertext-a P i Z najvjerojatnijeodgovarajuslovima e,t ili a • Slovaciphertext-a S, U, O, M i H imajuvisokufrekvencijupojavljivanja i najvjerojatnijeodgovarajuslovimaizskupa{a, t, i, n, o, r, s} • Slovaciphertext-a A, B, G, Y, I te J imajunajmanjufrekvencijupojavljivanja te najvjerojatnijeodgovarajuslovimaizskupa{b, j, k, q, v, x, z} • Na osnovuprethodnihznanja, te koristecimetodupogreske i pokusajadesifriramociphertextkao: it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the viet cong in moscow
Polyalphabetic Ciphers • Kod polialfabetskih sifri jedan element plaintexta moze se mapirati u vise razlicitih elemenata iz skupa ciphertext elemenata • Kriptoanaliza je tezanegokodmonoalfabetskihsifri • Poravnavadistribucijufrekvencijepojavljivanjapojedinih elemenata/slova • Primjer: Vigenèresifra • Kodiranjeslova alfabeta: a = 0, b = 1, c = 2, ..., z = 25 • Enkripcijskikljuc: “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) • Vigenère-ova enkripcijamoze sedefiniratikaosumiranjeslova plaintext-a islovakljuca (slovoposlovo) 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.
Vernam i “One-Time Pad” sifre • Vernam sifra • Jedan od najjednostavnijih kriptografskih sustava • Plaintext poruka p je binarni string: p = p1 p2 ... pn {0,1}n • Enkripcijski kljuc (po uniformnoj distribuciji): k = k1 k2 ... kn {0,1}n • Isti kljuc se koristi za enkripciju vise plaintext poruka • Enkripcija:c = p k • ci =pi ki, za svaki bit i=1,2,...,n ( je zbrajanje po modulu 2) • Dekripcija je identicna enkripciji: p = c k • pi =ci ki, za svaki bit 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?)
Permutacijske sifre • Plaintext poruka se transformira na nacin da se permutirajuelementi (slova, simboli) poruke, bezmijenjanjaidentitetatihelemenata • 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: 2 4 1 5 3 Plaintext: m e e t m e a f t e r t h e c l a s s x Ciphertext: EATATTESMERLMECXEFHS • Kriptoanalizanaosnovurelativnefrekvencijeslovajosuvijekmoguca
Kriptografija simetričnog (tajnog) ključa Moderni kriptografski sustavi
Block vs. Stream Cipher • “Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit (byte) • “Block cipher” (blok sifra) procesira (enkriptira i dekriptira) plaintext poruku u blokovima pseudo-random bit stream generator seed/key plaintext ciphertext ... ... plaintext ciphertext block cipher padding key
Data Encryption Standard (DES) • Prvi/najznacajniji moderni simetricni kriptografski sustav • Razvio ga je IBM 1974. a standardizirao National Bureau of Standards, 1977. • Primarno osigurava/o privatnost poruka (confidentiality) • Blok-sifra i radi sa 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 (brute-force napad) • 56-bitni DES nesiguran, ali 3DES vrlo siguran i jos uvijek u sirokoj uporabi • Matematickim rjecnikom • P = C = {0,1}64i K = {0,1}56 • DES enkripcijski (E)/dekripcijski (D) algoritam uzima kao ulaznu vrijednost 64-bitni plaintext/ciphertext i 56-bitni kljuc, te daje 64-bitni ciphertext/ plaintext
Opis rada DES-a (1/3) • 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 • kije kljuc i-te iteracije, dug 48 bitova, izveden od ulaznog 56-bitnog kljuca k • f(.) je slozena supstitucijska funkcija • Konacno, na rezultat 16. iteracije (L16, R16) primjenjuje se inverzna permutacija od inicijalne permutacije IP (32) (32) Li-1 Ri-1 ki=gi(k) f Li+1 Ri+1
Opis rada DES-a (2/3) P (64) Initial Permutation (32) (32) f (48) k1 f (48) k2 Key Scheduler (56) k f (48) k3 … f (48) k16 Initial Permutation-1 C (64)
Opis rada DES-a (3/3) • Opisani iterativni postupak identičan je za enkripciju i dekripciju • 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 (k16 odgovara kljucu koji se koristi u prvoj iteraciji prilikom DES dekripcije) • Q: Dokazite da za DES vrijedi m = DK(EK(m)). • Osnovna uloga slozene supstitucijske funkcije f(.) • Random i nelinearna distribucija plaintext poruka preko skupa ciphertext 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.
Toy example: DES encryption (2 rounds) p (64) Initial Permutation (32) (32) L0 R0 plaintext p k 1 =g 1(k) f p L1 R1 DES (2 rounds) secret keyk E c = Ek(p) k k2=g2(k) f c ciphertext c L2 R2 R2 L2 Initial Permutation-1 (64) c
Toy example: DES encryption (2 rounds) p (64) • Initially: (L0, R0) <-- IP(p) • L1= R0R1= L0f(k1, R0) • L2= R1 = L0f(k1, R0) R2= L1 f(k2, R1) = R0 f(k2, R1) = R0 f(k2, L0f(k1, R0)) • End: c <-- IP-1(R2,L2) • c <-- IP-1(R0 f(k2, L0f(k1, R0)), L0f(k1, R0)) R2 L2 Initial Permutation (32) (32) L0 R0 k 1 =g 1(k) f L1 R1 k2=g2(k) f L2 R2 R2 L2 Initial Permutation-1 (64) c
Toy example: DES decryption (2 rounds) c (64) Initial Permutation (32) (32) L0 R0 ciphertext c k2=g2(k) f c L1 R1 DES-1 (2 rounds) secret keyk D p = Dk(c) k k1=g1(k) f p plaintext p L2 R2 R2 L2 Initial Permutation-1 (64) p
Toy example: DES decryption (2 rounds) c (64) • Initially: (L0,R0) <-- IP(c) • (L0,R0) <-- IP(IP-1(R2,L2))=(R2,L2) • L1= R0 = L2= R1R1= L0f(k2, R0) = R2f(k2, L2) = L1f(k2, R1)f(k2, L2) = L1f(k2, R1)f(k2, R1) = L1 • L2= R1 = L1 = R0 R2= L1 f(k1, R1) = R1f(k1, L1) = L0f(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 k2=g2(k) f L1 R1 k1=g1(k) f L2 R2 R2 L2 Initial Permutation-1 (64) p
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)
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 • 1998. 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 • Blok sifra koja podrzava kljuceve od 128, 192 i 256 bitova • Nedavno otkriven napad zasnovan na Differential Power Analyisis (DPA) • U praksi bi trebali koristiti AES kad god je to moguce
Comparison of DES, 3DES and AES Ciphertextc=Ek(p) Plaintext p=Ek(c) Encryption algorithm Decryption algorithm Plaintext p Secret key k Secret key k
Brute-Force Attack Candidate keys Secret key space Sought secret key Bins and urn model Average time to break (computational security)
Kriptografija simetričnog (tajnog) ključa Osnovni modovi rada blok sifri
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 blok ima 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 • Stream ciphers built • on top of a block cipher
Electronic Codebook (ECB) Mode • Notacija: • P1P2... 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) • C1C2... Cm: m odgovarajucih izlaznih ciphertext blokova • EK(.) i DK(.) enkripcijski i dekripcijski algoritmi daneblok 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
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 00...0, 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)
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 sifra?
Cipher Block Chaining (CBC) Mode • Najpoznatiji i najcesce koristeni enkripcijski mod
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
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
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
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 (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 block (ali Pj ne moze kontrolirati) • Self-synchronizing (brz oporavak od greski)
Svojstva CBC moda • Isti plaintext blok rezultira razlicitim ciphertext blokom (cak i ako se koristi isti enkripcijski kljuc)
Integritet IV u CBC modu • Inicijalizacijskivektor (IV) ne morabititajan, alinjegovintegritetmorabitizasticen • Malicioznepromjene IV-a dozvoljavajunapadacudauzrokujekontroliranepromjene u prvom plaintext bloku • Postoje napredni napadi na CBC mod ukoliko je IV predvidiv • Preporuka: koristiti slucajno generiran IV za svaku enkriptiranu poruku • Q*(za odlikase): Kako iskoristiti predvidivost IV da bi narusili privatnost enkriptirane poruke? • Q**(za odlikase): Padding oracle attack on CBC mode (Task 2.5, LAB2). • Q***(za odlikase): Vaznost velicine bloka enkripcijskog algoritma. • Razmislite o potencijalnim posljedicama situacije u kojoj bilo koja dva ciphertext bloka imaju iste vrijednosti, ako su ti ciphertext blokovi rezultat enkripcije istim enkripcijskim kljucem (ali proizvoljnih poruka) • Procjenite vjerojatnost takvog dogadjaja za DES (64 b) i AES (128 b)
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) (s) (s) Ci Pi Ci Pi
Cipher Feedback (CFB) Mode (s) (s) initialized with IV I1 I2 I3 shift register (n) shift register (n) 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) (s) P1 P2 P3 (s) (s) (s) C2 C3 C1
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
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) (s) Pi Ci Ci Pi
Output Feedback (OFB) Mode (s) (s) initialized with IV I1 I2 I3 shift register (n) shift register (n) 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) (s) P1 P2 P3 (s) (s) (s) C1 C2 C3
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
Counter (CTR) mode • Enkripcija: • Dekripcija counter+i counter + i (n) (n) E E K K (n) (n) (n) (n) (n) (n) Ci Pi Pi Ci
Svojstva CTR moda • “counter” morabitirazlicitzasvakiblok (Q: Zasto?) • j-tiblokmozebitidekriptiranneovisno o drugimblokovima • Moze se paralelizirati • Random access (dekriptiramobilokojiblok) • Vrijednostikoje se XOR-ajusa plaintext-ommogubitiizracunateunaprijed (preprocessing) • Jakoefikasanzaimplementaciju (software-skui hardware-sku) • Primjer primjene: IEEE 802.11i odnosno vase WLAN/WiFi mreze • Counter Mode CBC–MAC Protocol (CCMP)