1 / 34

Blo kovske šifre

Blo kovske šifre. (Iter acione ) Blo kovske šifre. Otvoreni tekst i šifrat se sastoje od blokova fiksne dužine Šifrat se dobija na osnovu otvorenog teksta iterativnom primenom fun kcije runde Ulaz u funkciju runde je ključ i izlaz prethodne runde Po pravilu, implementacija je softverska.

liana
Download Presentation

Blo kovske šifre

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Blokovske šifre

  2. (Iteracione) Blokovske šifre • Otvoreni tekst i šifrat se sastoje od blokova fiksne dužine • Šifrat se dobija na osnovu otvorenog teksta iterativnom primenom funkcije runde • Ulaz u funkciju runde je ključ i izlaz prethodne runde • Po pravilu, implementacija je softverska

  3. Feistel šifra • Feistel šifrase odnosi na vrstu dizajna blokovskih šifrara, a ne na neku specifičnu šifru • Podeliti otvoreni tekst na levu i desnu polovinu: O.tekst = (L0,R0) • Za svaku rundu i=1,2,...,n, izračunati Li= Ri1 Ri= Li1 F(Ri1,Ki) gde je F funkcija rundea Kijepodključ • Šifrat = (Ln,Rn)

  4. Feistel šifra • Dešifrovanje: Šifrat = (Ln,Rn) • Za svaku rundu i=n,n1,…,1, izračunati Ri1 = Li Li1 = Ri F(Ri1,Ki) gde je F funkcija rundea Kijepodključ • O.tekst = (L0,R0) • Formula “radi” za bilo koju funkciju F • Ali sigurno samo za neke funkcije F

  5. Data Encryption Standard • DES je razvijen 1970 tih godina • Zasniva se na IBM Lucifer šifri • Predstavlja standard Američke vlade • Razvoj DES-a su pratile kontraverze • NSA je bila tajno umešana u posao oko DES • Proces dizajniranja ove šifre nije bio javan • Dužina ključa je redukovana • Sadrži suptilne promene u odnosu na Lucifer algoritam

  6. DES Numerologija • DES je Feistel šifra • 64 bita dužina blokova • 56 bita dužina ključa • 16 roundi • 48 bita ključa se koristi u svakoj rundi (podključ) • Svaka runda je jednostavna (za blokovske šifre) • Snaga šifre zavisi primarno od “S-boksova” • Svaki S-boks preslikava 6 bita u 4 bita

  7. key L R 32 28 28 expand shift shift 48 28 28 32 Ki Jedna runda DES-a  compress 48 48 S-boxes 28 28 32 P box 32 32  32 key L R

  8. DES Ekspanziona permutacija • Ulaz 32 bita 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 • Izlaz 48 bita 31 0 1 2 3 4 3 4 5 6 7 8 7 8 9 10 11 12 11 12 13 14 15 16 15 16 17 18 19 20 19 20 21 22 23 24 23 24 25 26 27 28 27 28 29 30 31 0

  9. DES S-boks • 8 “supstitucionih boksova” ili S-boksova • Svaki S-bokspreslikava 6 bitau 4 bita • S-boks broj 1 ulazni biti (0,5) ulazni biti (1,2,3,4) | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ------------------------------------------------------------------------------------ 00 | 1110 0100 1101 0001 0010 1111 1011 1000 0011 1010 0110 1100 0101 1001 0000 0111 01 | 0000 1111 0111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 1000 10 | 0100 0001 1110 1000 1101 0110 0010 1011 1111 1100 1001 0111 0011 1010 0101 0000 11 | 1111 1100 1000 0010 0100 1001 0001 0111 0101 1011 0011 1110 1010 0000 0110 1101

  10. DES P-boks • Ulaz 32 bita 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 • Izlaz 32 bita 15 6 19 20 28 11 27 16 0 14 22 25 4 17 30 9 1 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24

  11. DES podključ • 56 bitni DES ključ, numerisan sa 0,1,2,…,55 • Leva polovina bita ključa, LK 49 42 35 28 21 14 7 0 50 43 36 29 22 15 8 1 51 44 37 30 23 16 9 2 52 45 38 31 • Desna polovina bita ključa, RK 55 48 41 34 27 20 13 6 54 47 40 33 26 19 12 5 53 46 39 32 25 18 11 4 24 17 10 3

  12. DES podključ • Za runde i=1,2,...,16 • Neka je LK = (LK circularnišift u levo za ri) • Neka je RK = (RK circularnišift u levo za ri) • Leva polovina podključa Kije LK bita 13 16 10 23 0 4 2 27 14 5 20 9 22 18 11 3 25 7 15 6 26 19 12 1 • Desna polovina podključa Kije RK bita 12 23 2 8 18 26 1 11 22 16 4 19 15 20 10 27 5 24 17 13 21 7 0 3

  13. DES podključ • Za runde 1, 2, 9 i 16 šift rije 1, a za sve ostale runde rije 2 • Bitovi 8,17,21,24 iz LK se izostavljaju u svakoj rundi • Bitovi 6,9,14,25 iz RK se izostavljaju u svakoj rundi • Kompresiona permutacijadaje 48 bitapodključa Kiiz 56 bita LK i RK • Key schedulegenerišepodključ

  14. DES završne napomene • Inicijalna permutacija P pre prve runde • Polovina zamenjuje mesta nakon poslednje runde • Finalna permutacija (inverzna u odnosu na P) se primenjuje na (R16,L16) dajući šifrat • Ništa od ovih operacija ne doprinosi jačini šifre

  15. Bezbednost DES • Jačina DES zavisi dominantno od S-boksova • Sve ostalo u DES je linearno • Trideset godina intezivne kriptoanalize nije otkrilo nikakve propuste tipa “back door” • Savremeni napadi na DES koriste potpunu pretragu ključeva • Nezaobilazan zaključak • Dizajneri DES su znali šta rade • Dizajneri DES su bili ispred svog vremena

  16. Notacija u blok šiframa • P = blok otvorenog teksta • C = blok šifrata • Šifrovanje P sa ključem K u cilju dobijanja šifrata C • C = E(P, K) • Dešifrovanje C sa ključem K u cilju dobijanja otvorenog teksta P • P = D(C, K) • Primetimo da je • P = D(E(P, K), K) i C = E(D(C, K), K)

  17. Trostruki DES • Danas je DES sa ključem od 56 bita isuviše slab • Ali DES je sveprisutan: Šta da se radi? • Trostruki DESili3DES (112 bita ključa) • C = E(D(E(P,K1),K2),K1) • P = D(E(D(C,K1),K2),K1) • Zašto se koristi Šifrovanje-Dešifrovanje-Šifrovanje (EDE) sa 2 ključa? • Kompatibilnost unazad: E(D(E(P,K),K),K) = E(P,K) • Ključ od 112 bita je dovoljno jak

  18. 3DES • Zašto ne C = E(E(P,K),K) ? • Još uvek je ključ 56 bita • Zašto ne C = E(E(P,K1),K2) ? • (semi-praktičan) napad na osnovu poznatog otvorenog teksta • Iyračunati tabelu E(P,K1) za svaki mogući K1 (resultujuća tabla ima 256 elemenata) • Zatim se za svaki mogući ključ K2izrsčuns D(C,K2) sve dok se ne desi poklapanje u tabeli • Kada se detektuje poklapanje, važi E(P,K1) = D(C,K2) • Resultat je ključ: C = E(E(P,K1),K2)

  19. Advanced Encryption Standard • Zamena za DES • AES takmičenje (krajem 90 tih godina) • NSA je javno bila umešana u ovu stvar • Proces izbora je bio transparentan • Predložen je veliki broj jakih algoritama • Na kraju je izabran Rijndael algoritam • izgovara se slično kao i “Rain Doll” or “Rhine Doll” • Iterativna blokovska šifra (kao i DES) • Nije Feistel šifra (za razliku od DES)

  20. AES osnovni podaci • Dužina blokova: 128, 192 or 256 bits • Dužina ključa: 128, 192 or 256 bits (nezavisno od dužine ključa) • 10 do14 rundi (u zavisnosti od dužine ključa) • Svaka runda koristi 4 funkcije (u 3 “sloja”) • ByteSub (nelinearni sloj) • ShiftRow (sloj linearnog mešanja) • MixColumn (nelinearan sloj) • AddRoundKey (dodstni sloj ključa)

  21. AES ByteSub • ByteSub je AES’s “S-boks” • Može se posmatrati kao nelinearna (ali invertibilna) kompozicija dve matematičke operacije • Predpostavlja se da je dužina bloka 192, 4x6 bytova

  22. AES “S-boks” Poslednja 4 bita ulaza Prva 4 bitaulaza

  23. AES ShiftRow • Ciklično pomeranje kolona

  24. AES MixColumn • Implementira se kao velika tabela • Nonlinearna, invertibilna operacija koja se primenjuje na svaku kolonu

  25. AES dodavanje ključa runde • RoundKey (podključ) je odredjen sakey schedule algorimom • XOR podključa sa blokom Blok Podključ

  26. AES dešifrovanje • Da bi dšifrovanje bilo moguće, proces mora biti invertibilan • Inverzija MixAddRoundKey je laka, budući da je istovremeno sopstvena inverzija • MixColumn je invertibina (inverzija se implementira kao tabela) • Inverzija ShiftRow je ciklični šift u suprotnom pravcu • ByteSub je invertibilan i implementira se kao tabela

  27. JOŠ NEKE BLOKOVSKE ŠIFRE • … • IDEA • Blowfish • RC6 • … • TEA

  28. IDEA • Invented by James Massey • One of the giants of modern crypto • IDEA has 64-bit block, 128-bit key • IDEA uses mixed-mode arithmetic • Combine different math operations • IDEA the first to use this approach • Frequently used today

  29. Blowfish • Blowfish encrypts 64-bit blocks • Key is variable length, up to 448 bits • Invented by Bruce Schneier • Almost a Feistel cipher Ri = Li1 Ki Li = Ri1 F(Li1 Ki) • The round function F uses 4 S-boxes • Each S-box maps 8 bits to 32 bits • Key-dependent S-boxes • S-boxes determined by the key

  30. RC6 • Invented by Ron Rivest • Variables • Block size • Key size • Number of rounds • An AES finalist • Uses data dependent rotations • Unusual to rely on data as part of algorithm

  31. Tiny Encryption Algorithm • 64 bit block, 128 bit key • Assumes 32-bit arithmetic • Number of rounds is variable (32 is considered secure) • Uses “weak” round function, so large number rounds required

  32. TEA Encryption Assuming 32 rounds: (K[0],K[1],K[2],K[3]) = 128 bit key (L,R) = plaintext (64-bit block) delta = 0x9e3779b9 sum = 0 for i = 1 to 32 sum += delta L += ((R<<4)+K[0])^(R+sum)^((R>>5)+K[1]) R += ((L<<4)+K[2])^(L+sum)^((L>>5)+K[3]) next i ciphertext = (L,R)

  33. TEA Decryption Assuming 32 rounds: (K[0],K[1],K[2],K[3]) = 128 bit key (L,R) = ciphertext (64-bit block) delta = 0x9e3779b9 sum = delta << 5 for i = 1 to 32 R = ((L<<4)+K[2])^(L+sum)^((L>>5)+K[3]) L = ((R<<4)+K[0])^(R+sum)^((R>>5)+K[1]) sum = delta next i plaintext = (L,R)

  34. TEA comments • Almost a Feistel cipher • Uses + and - instead of  (XOR) • Simple, easy to implement, fast, low memory requirement, etc. • Possibly a related key attack • eXtended TEA (XTEA) eliminates related key attack (slightly more complex) • Simplified TEA (STEA)  insecure version used as an example for cryptanalysis

More Related