14
cifrario di Feistel Horst Feistel (IBM) ha introdotto uno schema di cifrario nei primi anni 70. il DES ` e un cifrario di Feistel molti cifrari a blocchi sono cifrari di Feistel - per esempio i due finalisti AES MARS e twofish la cifratura e la decifratura funzionano essenzialmente allo stesso modo cifrario di Feistel In un cifrario di Feistel, i blocchi hanno lunghezza m =2w : a ogni iterazione, ogni stato ` e diviso in due blocchi di lung. w ,(L i , R i ). Servono R chiavi di round (k 1 ,..., k R ).

cifrario di Feistel - ricerca.matfis.uniroma3.it

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: cifrario di Feistel - ricerca.matfis.uniroma3.it

cifrario di Feistel

• Horst Feistel (IBM) ha introdotto uno schema di cifrario neiprimi anni 70.

• il DES e un cifrario di Feistel

• molti cifrari a blocchi sono cifrari di Feistel - per esempio i duefinalisti AES MARS e twofish

• la cifratura e la decifratura funzionano essenzialmente allostesso modo

cifrario di Feistel

In un cifrario diFeistel, i blocchihanno lunghezzam = 2w : a ogniiterazione, ognistato e diviso indue blocchi dilung. w , (Li ,Ri ).Servono R chiavidi round(k1, . . . , kR).

Page 2: cifrario di Feistel - ricerca.matfis.uniroma3.it

funzione di round

la funzione di round ha la seguente forma:input: (Li−1,Ri−1, ki ), output (Li ,Ri )

dove Li = Ri−1,Ri = Li−1 ⊕ F (Ri−1, ki ).

cifrario di Feistel - decifratura

Notiamo che la F non deve necessariamente essere iniettiva: lafunzione di round e comunque invertibile.daLi = Ri−1,Ri = Li−1 ⊕ F (Ri−1, ki ),si haLi−1 = Ri ⊕ F (Li , ki )Ri−1 = Li

infatti Ri ⊕ F (Li , ki ) = Li−1 ⊕ F (Ri−1, ki )⊕ F (Li , ki ) = Li−1

Page 3: cifrario di Feistel - ricerca.matfis.uniroma3.it

Dimensione del blocco L’ aumento della grandezza del bloccoaumenta la sicurezza ma rallenta la velocita dicifratura e decifratura

Dimensione della chiave L’ aumento della lunghezza della chiaveaumenta la sicurezza e rende la ricerca esaustiva piudifficile ma rallenta l’algortimo

Numero di round L’aumento del numero di round aumenta lasicurezza ma rallenta l’algoritmo

Funzione F L’aumento di complessita rende l’analisi piu difficilema rallenta l’algoritmo

Page 4: cifrario di Feistel - ricerca.matfis.uniroma3.it

Data Encryption Standard

Storia:

• pubblicato nel 1977 dal National Bureau of Standards (oraNIST National Institute of Standards and Technology) per usocommerciale e applicazioni del governo degli USA

• 1973-75 sviluppo del DES, dal LUCIFER (70) dell’IBM creatoda Feistel e altri

• il DES sviluppato dall’IMB (Feistel, Coopersmith, Tuchman ealtri)

• testato (e modificato) dall’NSA

• 75-77 il DES va al vaglio dei crittografi

• nel 1999 il NIST ha pubblicato una nuova versione chiamatatriple DES (3DES) o TDEA – comunque il DES e stato moltopiu longevo del previsto (si credeva 10-15 anni)

Molte controversie sulla sicurezza dell’algoritmo:si e creduto che l’NSA abbia interferito con la progettazione.

La chiave e stata portata dai 128 bit del LUCIFER a 56 bit.

Si crede(va) che ci fosse una trapdoor nella progettazione delleS-box.

Page 5: cifrario di Feistel - ricerca.matfis.uniroma3.it

Il DES consiste di:

• Una permutazioneiniziale IP dei 64 bit

• 16 round identici“alla Feistel”

• Una permutazionefinale, che el’inversa di quellainiziale: FP = IP−1

permutazioni

Le due permutazioni, iniziale e finale, sono l’unica cosa che rende ilDES diverso da un cifrario di Feistel.Non servono a aumentare la sicurezza, ma sono legate al processodi caricamento del plaintext nei chip.

cioe:il primo bit in outpute il 58simo dell’input;il secondo bit inoutput e il 50simodell’input. . .58→ 1, 50→ 2 . . .

Page 6: cifrario di Feistel - ricerca.matfis.uniroma3.it

IP

chiave

La chiave: 64 bit, di cui 8 sono un controllo di parita. La chiave hasolo 56 bit.Dalla chiave k ottengo 16 chiavi di round (k1, . . . , k16) di 48 bitciascuna.

Page 7: cifrario di Feistel - ricerca.matfis.uniroma3.it

key schedule

produce le 16 chiavi diround (a 48 bit)1. permutazione inizialePC1 della chiave2. divisione dei 56 bit in 2meta a 28 bit3. a ogni round3.1. Left shift ogni meta(28bit) separatamente di 1o 2 posti (questo saral’input del prossimo round)3.2. riunione delle duemeta, epermutazione/contrazione:PC2 ha 56 bit in input,output a 48 bit

DES round

Page 8: cifrario di Feistel - ricerca.matfis.uniroma3.it

funzione F , o mangler

Dettagli della funzione F :al round iF (Ri−1,Ki ) = P(S(E (Ri−1)⊕ Ki ))

1 Prende i 48 bit della chiave ki .

2 Espande i 32 bit di destra, Ri−1, a 48 bit

3 Esegue lo XOR della chiave e dei 48 bit e invia il risultato ininput alle S-Box

4 Le S-box sono tabelle di sostituzione e contrazione predefinite.In output danno 32 bit

5 Questi 32 bit vengono permutati

Page 9: cifrario di Feistel - ricerca.matfis.uniroma3.it

espansione E

1→ 2, 1→ 322→ 3 . . .

Page 10: cifrario di Feistel - ricerca.matfis.uniroma3.it

Dato un input di 6 bit, i 4 bit di output si trovano scegliendo lariga usando i due bit esterni, la colonna usando i 4 bit interni.Esempio: in 011011, i bit esterni sono 01 e quelli interni sono 1101.Righe e colonne sono numerate partendo da 0; l’output corrispondeal valore nella seconda riga, 14sima colonna, cioe 9.Quindi 011011→ 1001

permutazione P

16→ 1, 7→ 2diffusione

Page 11: cifrario di Feistel - ricerca.matfis.uniroma3.it

progettazione delle S-box

1 6 bit in entrata, 4 in uscita (il massimo possibile per i chip del74)

2 gli output NON sono una combinazione lineare degli input (neapprossimabili da una funzione lineare)

3 le righe sono permutazioni di {0, 1, . . . , 15}4 cambiando un bit nell’input, cambiano almeno due bit in

output

5 S(x) e S(x + 001100) differiscono in almeno 2 bit

il ruolo di P, E, e PC2 e di spargere gli output delle S-box in modotale che ogni bit in output dipenda da tutti i bit in input in pochiround

Il DES ha un forte effetto valanga: una propieta deisderabile perun algoritmo di cifratura e che un cambiamento di un solo bitnell’input o nella chiave comporti una modifica di almeno meta deibit di uscita. Gia presente dopo poche iterazioni

Page 12: cifrario di Feistel - ricerca.matfis.uniroma3.it
Page 13: cifrario di Feistel - ricerca.matfis.uniroma3.it

crittoanalisi del DES

Di fatto, il modo piu efficiente di violare il DES e un attacco aforza bruta: provare ogni possibile chiave, una dopo l’altra.

Ci sono due attacchi “a livello teorico” applicabili a ogni cifrario ablocchi

crittoanalisi differenziale: “scoperta” da Biham e Shamir (ca 89).Il DES resiste molto bene alla CD: la tecnica era notaall’IBM e/o all’NSA al momento della progettazione,ed e stata tenuta segreta.Per violare il DES con la CD, servono 247 chosenplaintext.

crittoanalisi lineare: scoperta da Matsui nel 93, migliorata via via.Servono ∼ 241 known plaintext. Non ci sono proveche il DES sia stato sviluppato per resistere a questotipo di attacco.

attacchi a forza bruta

Lo spazio delle chiavi del DES ha grandezza 256. Gia al momentodell’introduzione era considerato inadeguato.Proposte per una macchina DES-cracker1977: Diffie-Hellmann propongono una macchina che puo trovarela chiave in un giorno. Costo stimato $ 20.000.0001993: Wiener, 7 ore, $ 1.000.000(Probabilmente, mai realizzate)

Page 14: cifrario di Feistel - ricerca.matfis.uniroma3.it

Nel 97 , la RSA Security ha sponsorizzato una gara, offrendo$ 10.000 ai primi a decrittare un messaggio cifrato con il DES. Lagara e stata vinta dal progetto DESCHALL, usando il calcolodistribuito.

There are many people who will not believe a truth until they cansee it with their own eyes. Showing them a physical machine thatcan crack DES in a few days is the only way to convince somepeople that they really cannot trust their security to DES.

Nel 98, la EFF (ElectronicFrontier Foundation) hacostruito una macchina alcosto di circa $ 250.000. Lamacchina ha trovato unachiave in 2 giorni circa.

COPACOBANA (2006, univ. di Bochum e Kiel) - $ 10.000