34
Blokovske šifre

Blo kovske šifre

  • Upload
    liana

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Blo kovske šifre

Blokovske šifre

Page 2: Blo kovske šifre

(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

Page 3: Blo kovske šifre

Feistel šifra• Feistel šifra se 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= Ri1

Ri= Li1 F(Ri1,Ki)

gde je F funkcija runde a Ki je podključ• Šifrat = (Ln,Rn)

Page 4: Blo kovske šifre

Feistel šifra

• Dešifrovanje: Šifrat = (Ln,Rn)• Za svaku rundu i=n,n1,…,1, izračunati

Ri1 = Li

Li1 = Ri F(Ri1,Ki)

gde je F funkcija runde a Ki je podključ• O.tekst = (L0,R0)• Formula “radi” za bilo koju funkciju F• Ali sigurno samo za neke funkcije F

Page 5: Blo kovske šifre

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

Page 6: Blo kovske šifre

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

Page 7: Blo kovske šifre

L R

expand shiftshift

key

key

S-boxes

compress

L R

2828

2828

2828

48

32

48

32

32

32

32

JednarundaDES-a

48

32

Ki

P box

Page 8: Blo kovske šifre

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 bita31 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

Page 9: Blo kovske šifre

DES S-boks

• 8 “supstitucionih boksova” ili S-boksova• Svaki S-boks preslikava 6 bita u 4 bita• S-boks broj 1ulazni 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 011101 | 0000 1111 0111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 100010 | 0100 0001 1110 1000 1101 0110 0010 1011 1111 1100 1001 0111 0011 1010 0101 000011 | 1111 1100 1000 0010 0100 1001 0001 0111 0101 1011 0011 1110 1010 0000 0110 1101

Page 10: Blo kovske šifre

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 bita15 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

Page 11: Blo kovske šifre

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 2316 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 1912 5 53 46 39 32 2518 11 4 24 17 10 3

Page 12: Blo kovske šifre

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 Ki je LK bita13 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 Ki je RK bita12 23 2 8 18 26 1 11 22 16 4 19

15 20 10 27 5 24 17 13 21 7 0 3

Page 13: Blo kovske šifre

DES podključ

• Za runde 1, 2, 9 i 16 šift ri je 1, a za sve ostale runde ri je 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 permutacija daje 48 bita podključa Ki iz 56 bita LK i RK

• Key schedule generiše podključ

Page 14: Blo kovske šifre

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

Page 15: Blo kovske šifre

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

Page 16: Blo kovske šifre

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)

Page 17: Blo kovske šifre

Trostruki DES• Danas je DES sa ključem od 56 bita isuviše

slab• Ali DES je sveprisutan: Šta da se radi?• Trostruki DES ili 3DES (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

Page 18: Blo kovske šifre

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č K2 izrsč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)

Page 19: Blo kovske šifre

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)

Page 20: Blo kovske šifre

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)

Page 21: Blo kovske šifre

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

Page 22: Blo kovske šifre

AES “S-boks”

Prva 4bita ulaza

Poslednja 4 bita ulaza

Page 23: Blo kovske šifre

AES ShiftRow

• Ciklično pomeranje kolona

Page 24: Blo kovske šifre

AES MixColumn

• Implementira se kao velika tabela

• Nonlinearna, invertibilna operacija koja se primenjuje na svaku kolonu

Page 25: Blo kovske šifre

AES dodavanje ključa runde

• RoundKey (podključ) je odredjen sa key schedule algorimom

• XOR podključa sa blokom

Blok Podključ

Page 26: Blo kovske šifre

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

Page 27: Blo kovske šifre

JOŠ NEKE BLOKOVSKE ŠIFRE

• …– IDEA– Blowfish– RC6

• …– TEA

Page 28: Blo kovske šifre

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

Page 29: Blo kovske šifre

Blowfish• Blowfish encrypts 64-bit blocks• Key is variable length, up to 448 bits• Invented by Bruce Schneier• Almost a Feistel cipher

Ri = Li1 Ki

Li = Ri1 F(Li1 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

Page 30: Blo kovske šifre

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

Page 31: Blo kovske šifre

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

Page 32: Blo kovske šifre

TEA EncryptionAssuming 32 rounds:

(K[0],K[1],K[2],K[3]) = 128 bit key(L,R) = plaintext (64-bit block)delta = 0x9e3779b9sum = 0for 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 iciphertext = (L,R)

Page 33: Blo kovske šifre

TEA DecryptionAssuming 32 rounds:

(K[0],K[1],K[2],K[3]) = 128 bit key(L,R) = ciphertext (64-bit block)delta = 0x9e3779b9sum = delta << 5for 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 = deltanext iplaintext = (L,R)

Page 34: Blo kovske šifre

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