Uploaded by Omar Pasculli

corso-6-2

advertisement
•Stelvio Cimato
•23/03/2015
Cifratura simmetrica
DES
Stelvio Cimato
Dipartimento di Informatica
Università degli studi di Milano
Stelvio.cimato@unimi.it
http://www.di.unimi.it/cimato
Cifrari a blocchi
testo in chiaro
N bit
cifrario
testo cifrato
N bit
chiave
Cifrari a chiave simmetrica
Il testo in chiaro è diviso in blocchi di lunghezza fissa
Viene cifrato un blocco alla volta
Data Encryption Standard (DES)
DES triplo
Advanced Encryption Standard (AES)
Stelvio Cimato
DI – Università degli studi di Milano, Sede di Crema
•Corso di Crittografia
1
•1
•Stelvio Cimato
•23/03/2015
Cifratura di flussi
Esegue la crittografia di un flusso digitale di dati
un bit o un byte per volta.
Esiste un flusso di chiavi
Esempi classici:
Vigenere
Vernam
Utilizzando alcune modalità di funzionamento si
può utilizzare la cifratura a blocchi per cifrare
flussi.
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
2
Cifrari a blocchi
Opera su blocchi di n bit di input per produrre
blocchi di n bit di output
Con blocchi n bit di testo in chiaro ho
possibili input.
2n
Trasformazione reversibile o non singolare:
Ogni blocco di testo in chiaro deve produrre
un blocco cifrato univoco
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
3
•2
•Stelvio Cimato
•23/03/2015
Mappaggi
Testo chiaro
00
01
10
11
cifrato
11
10
00
01
Testo chiaro
00
01
10
11
cifrato
11
10
01
01
n=2
Per mappaggi reversibili il numero di
trasformazioni possibili è 2n!
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
4
Cifratura generale
n=4 bit di testo in chiaro implicano 16 possibili stati di input
mappati in 16 possibili output = 4 bit di testo cifrato
Decoder 4-16
0 1 2 3 4 5 6 7 8 9 1 0 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 1 0 11 12 13 14 15
Encoder 4-16
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
5
•3
•Stelvio Cimato
•23/03/2015
Cifrario per n=4
Crittografia
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1110
0100
1101
0001
0010
1111
1011
1000
0011
1010
0110
1100
0101
1001
0000
0111
Decrittografia
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1110
0011
0100
1000
0001
1100
1010
1111
0111
1101
1001
0110
1011
0010
0000
0101
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
6
Cifratura a blocchi
Per blocchi di piccola dimensione equivalente a cifratura a
sostituzione
!! vulnerabile alla analisi statistica
Per blocchi grandi
Si mascherano le caratteristiche statistiche
ma…
Problemi pratici per la dimensione della chiave
In generale per n bit, la dimensione della chiave è n*2n
Es. n=4 la chiave è la seconda colonna della tabella
Per n=64, la chiave 64*264=270 circa 1021
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
bit
7
•4
•Stelvio Cimato
•23/03/2015
Cifratura di Feistel
Molti dei cifrari a blocchi in uso si basano
sulla proposta di Feistel del 1973
approssimazione al sistema ideale di cifratura
Idea: uso di cifrature in sequenza
Per ottenere cifrature più complesse di ogni
singola componente
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
8
Principi di Shannon
Feistel alterna permutazioni e sostituzioni
Esse applicano i principi di Shannon per contrastare l’analisi
statistica
Diffusione: espansione della struttura statistica del testo.
Ogni cifra del testo cifrato è prodotta da più cifre del testo in chiaro
Σ
Yn=
m n+i (mod 26) i=1,..,k
Per blocchi binari si utilizza la trasposizione
Confusione: complicazione delle relazioni statistiche fra testo
cifrato e valore della chiave
Si utilizza un meccanismo di sostituzione complesso (non lineare)
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
9
•5
•Stelvio Cimato
•23/03/2015
Cifrari di Feistel: Caratteristiche
Dimensioni del blocco
Blocchi grandi migliorano la sicurezza ma riducono la velocità
Dimensioni della chiave
Chiavi grandi migliorano la sicurezza ma riducono la velocità
Numero di fasi
Tutte le fasi hanno la stessa struttura
Algoritmo di schedulazione della chiave
A partire dalla chiave iniziale vengono prodotte tante sottochiavi
quanti sono i round
Funzione round
Più è complessa più resiste alla crittoanalisi
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
10
Strutture di Feistel
Li-1
Ri-1
Blocco di testo
sottochiave
f
Li
Ri
ki
Blocco di testo
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
11
•6
•Stelvio Cimato
•23/03/2015
Proprietà della funzione F
Li-1
Ri-1
sottochiave
f
Li
Ri
ki
Indipentemente
da f, la
funzione è
invertibile
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
12
Cifrari di Feistel
Cifratura:
Basta implementare un solo round
Lo stesso codice può essere usato per ogni round
Decifratura
Usa lo stesso algoritmo per la cifratura
Usa le sottochiavi in ordine inverso
Esempi di cifrari di Feistel
DES
Blowfish
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
13
•7
•Stelvio Cimato
•23/03/2015
Data Encryption Standard (DES)
15 maggio 1973: richiesta pubblica per uno standard della NBS, oggi
NIST
27 agosto 1974: seconda richiesta
1975: Modifica di Lucifer, sviluppato da IBM nel ‘71
(chiave da 128 a 56 bit)
1976: due workshop
Standard pubblicato 15 gennaio 1977
Riaffermato per successivi 5 anni nel 1983, 1987, 1992
Nel 1999, nuova versione triple-DES
Advanced Encryption Standard (AES)
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
14
Data Encryption Standard
testo in chiaro
64 bit
DES
testo cifrato
64 bit
56 bit
chiave
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
15
•8
•Stelvio Cimato
•23/03/2015
Lunghezza della Chiave
Nello standard DES la chiave è lunga 64 bit
8 byte di cui l’ottavo bit è di parità
1 2 3 4 5 6 7 8
...
57 58 59 60 61 62 63 64
Precedenti 7 bit
precedenti 7 bit
bit di parità
è lo xor dei precedenti 7 bit
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
16
Struttura del DES
testo in chiaro
chiave
IP
56 bit
48 bit
iterazione 1
...
iterazione 16
48 bit
schedulazione
chiave
scambio
IP -1
testo cifrato
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
17
•9
•Stelvio Cimato
•23/03/2015
Permutazione Iniziale IP
58
60
62
64
57
59
61
63
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
4
6
8
1
3
5
7
50
58
bit iniziali
bit permutati
...
1 2
64
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
18
Permutazione Inversa IP-1
40
39
38
37
36
35
34
33
8
7
6
5
4
3
2
1
48
47
46
45
44
43
42
41
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
32
31
30
29
28
27
26
25
40
8
bit iniziali
bit permutati
1 2
...
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
64
19
•10
•Stelvio Cimato
•23/03/2015
Singola Iterazione
parte sinistra
parte destra
32 bit
32 bit
Li-1
Ri-1
sottochiave
48 bit
f
Li
ki
Ri
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
20
La funzione f
A
32 bit
E
E(A)
J
48 bit
48 bit
B1 B2 B3 B4 B5 B6 B7 B8
S1 S2 S3 S4 S5 S6 S7 S8
C1 C2 C3 C4 C5 C6 C7 C8
P
32 bit
f(A,J)
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
21
•11
•Stelvio Cimato
•23/03/2015
Espansione E
32
4
8
12
16
20
24
28
1
5
9
13
17
21
25
29
2
6
10
14
18
22
26
30
3
7
11
15
19
23
27
31
4
8
12
16
20
24
28
32
5
9
13
17
21
25
29
1
16 bit sono duplicati
32
12
bit iniziali
bit dopo espansione
1 2 3
...
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
48
22
S-box
00
01
10
11
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 0110 0111 1111
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
4
1
7
8
13
6
2
11
15
12
9
7
3
10
5
0
15
12
10
2
4
9
1
7
5
11
3
14
10
0
6
13
Box S1
6 bit in input specificano un elemento
della tabella la cui conversione binaria dà i
4 bit output
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
23
•12
•Stelvio Cimato
•23/03/2015
Funzionamento delle S-box
primo ed ultimo bit
input 101110
10
00
01
10
11
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 0110 0111 1111
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
4
1
7
8
13
6
2
15
12
9
7
3
10
5
0
11
15
12
10
2
4
9
1
7
5
11
3
14
10
0
6
13
Box S1
output 11 in binario = 1011
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
24
Proprietà delle S-box
[NBS, 1976]
Ogni riga è una permutazione degli interi 0,..,15
Nessuna S-box è una funzione affine o lineare dei suoi
input
Cambiando un solo bit di input ad una S-box variano
almeno due bit nell'output
Per ogni S-box S e per ogni input x a 6 bit:
S(x) e S(x⊕001100) differiscono in almeno due bit
Per ogni S-box, per ogni input x e per ogni bit d,g,
S(x) ≠ S(x⊕11dg00)
Per ogni S-box, il numero degli input per i quali il bit di
output è 0 è circa uguale al numero degli input per i
quali tale bit è 1
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
25
•13
•Stelvio Cimato
•23/03/2015
Schedulazione delle chiavi
chiave k
PC1
48 bit
k1
..
.
48 bit
k16
PC2
PC2
C0
D0
LS1
LS1
56 bit
C1
..
.
56 bit
..
.
D1
LS16
LS16
C16
D16
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
26
Permutazione PC-1
57 49 41 33 25
10 2 59 51 43
63 55 47 39 31
14 6 61 53 45
17 9 1
35 27 19
23 15 7
37 29 21
58 50 42 34 26 18
11 3 60 52 44 36
62 54 46 38 30 22
13 5 28 20 12 4
i bit in posizione 8, 16, 24, 32, 40, 48, 56, 64
sono di parità e non compaiono
1
57
64
bit iniziali
bit dopo permutazione
1 2 3
...
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
56
27
•14
•Stelvio Cimato
•23/03/2015
Compressione-permutazione PC-2
14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4
26 8 16 7 27 20 13 26 41 52 31 37 47 55 30 40
51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
8 bit soppressi in posizione
9, 18, 22, 25, 35, 38, 43 e 54
1
14
56
bit iniziali
bit dopo compressione
1 2 3
...
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
48
28
Schedulazione shift a sinistra
iterazione
shift
1
1
2
1
3
2
4
2
5
2
6
2
7
2
8
2
9 10 11 12 13 14 15 16
1 2 2 2 2 2 2 1
Totale shift nelle 16 iterazioni = 28 posizioni
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
29
•15
•Stelvio Cimato
•23/03/2015
Decifratura DES
testo cifrato
chiave
IP
iterazione 1
k16
schedulazione
chiave
...
iterazione 16
scambio
IP
k1
stesso algoritmo
sottochiavi in ordine inverso
-1
StelvioinCimato
DI – Università degli studi di Milano,
testo
chiaro
30
Sede di Crema
Decifratura DES
Consideriamo l’ultima operazione di
cifratura (a meno della permutazione IP-1)
L15
R15
R16 = L15⊕f(R15, K16)
f
k16
L16 =R15
R15 =L16
L16
R16
L15 = R16⊕f(L16, K16)
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
31
•16
•Stelvio Cimato
•23/03/2015
Decifratura DES
Il primo round dell’operazione di decifratura:
R16
L16
f
k16
R15 =L16
R15
L15
L15 = R16⊕f(L16, K16)
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
32
Prestazioni
Hardware: chip della Digital, 1 Gbit/secondo
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
33
•17
•Stelvio Cimato
•23/03/2015
Chiavi deboli
k è una chiave debole se per ogni x
x
x
DES
DES
k
Le sottochiavi
schedulate sono
tutte uguali
(sempre la stessa,
usata 16 volte)
k
Ci sono 4 chiavi deboli
chiave debole
Rappresentazione
esadecimale
0101
FEFE
1F1F
E0E0
0101 0101
FEFE FEFE
1F1F OEOE
E0E0 F1F1
0101
FEFE
OEOE
F1F1
C0
D0
28
028
128
128
028
0
128
028
128
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
34
Chiavi semideboli
k,k´ è una coppia di chiavi semideboli se per ogni x
x
DES
x
DES
k
k´
Ci sono 6 coppie di chiavi semideboli
C0
D0
{01}14
{01}14
{01}14
{01}14
028
128
{01}14
{10}14
028
128
{01}14
{01}14
k
01FE
1FE0
01E0
1FFE
011F
E0FE
01FE
1FE0
01E0
1FFE
011F
E0FE
01FE
0EF1
01F1
0EFE
010E
F1FE
k'
01FE
0EF1
01F1
0EFE
010E
F1FE
FE01
E01F
E001
FE1F
1F01
FEE0
FE01
E01F
E001
FE1F
1F01
FEE0
FE01
F10E
F101
FE0E
OE01
FEF1
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
FE01
F10E
F101
FE0E
0E01
FEF1
Le sottochiavi
schedulate sono
solo due, ognuna
usata 8 volte
C0
D0
{10}14
{10}14
{10}14
{10}14
028
128
{10}14
{01}14
028
128
{10}14
{10}14
35
•18
•Stelvio Cimato
•23/03/2015
Proprietà del
complemento
x
Se
y
DES
k
allora
x
DES
· è il
complemento
bit per bit
y
k
con un attacco chosen plaintext si
esaminano 255 chiavi invece che 256
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
36
Ricerca esaustiva
Numero chiavi DES = 256 ≈ 7,2056 ·1016
Considerando un computer che svolge:
1 crittografia DES al microsecondo ci vogliono circa 1142 anni per
provare la metà dello spazio delle chiavi 255 ≈ 3,6 ·1016 chiavi
Ma se considero 1 milione di crittografie DES al microsecondo ci
vogliono solo circa 10,01 ore.
Altre stime: con un computer a 500 Mhz che testa una chiave per ciclo
di clock ci vogliono
144.115.188 secondi ≈ 834 giorni ≈ 2 anni e 3 mesi
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
37
•19
•Stelvio Cimato
•23/03/2015
DES challenges
10.000 dollari al primo che rompe la challenge se rotta entro il 25% del
miglior tempo precedente
Giugno 1997: 39 giorni, testato 24% delle 256 chiavi, DESCHALL
Rocke Verser scrisse e distribuì un client di ricerca,
70.000 computer,
trovata da Michael K. Sanders (Pentium 90 MHz, 16M)
messaggio: Strong cryptography makes the world a safer place
Luglio 1998: 56 ore, Deep Crack, EFF, 250.000 dollari
Gennaio 1999: 22 ore 15 minuti testando 245 miliardi di chiavi al
secondo, Distributed.Net 100.000 computer e EFF
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
38
Deep Crack: Unità di ricerca
chiave
blocco
DES
-1
chiave ← chiave+1
no
Interessante?
si
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
Invia al
software
39
•20
•Stelvio Cimato
•23/03/2015
Deep Crack: Unità di ricerca
Clock di 40Mhz
Una decifratura in 16 cicli di clock
Numero chiavi provate al secondo
40.000.000
= 2.500.000
16
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
40
Chip
24 unità di ricerca
Prova 24 ⋅ 2.500.000 =
60.000.000 chiavi al
sec.
Prova tutte le chiavi in
13.900 giorni
(≈38 anni)
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
41
•21
•Stelvio Cimato
•23/03/2015
Board
64 processori
32 per faccia
40 cm X 40 cm
Prova 64⋅60.000.000 =
3.840.000.000 chiavi al
sec.
Prova tutte le chiavi in
≈218 giorni
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
42
Chassis
12 schede
Prova 12 ⋅
3.840.000.000 =
46.080.000.000
chiavi al sec.
Prova tutte le
chiavi in ≈18
giorni
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
43
•22
•Stelvio Cimato
•23/03/2015
EFF DES Cracker
1998: ricavata la chiave in sole 56 ore
costo: $ 250000
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
44
Caratteristiche di DES
Effetto valanga
Due testi che differiscono di un solo bit, cifrati con la stessa
chiave differiscono per 34 bit
Due testi uguali cifrati con chiavi diverse per un solo bit
differiscono per 35 bit
Criteri progettuali per la F e le S-Box:
Strict Avalanche
Per ogni bit input i invertito, il bit j di output cambia con p=1/2
Bit Independence
Due bit j e k di output cambiano indipendentemente se cambia il bit
di input i
Guaranteed Avalanche
Se cambia un bit di input, almeno g bit output cambiano, 1<g<6
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
45
•23
•Stelvio Cimato
•23/03/2015
Critiche al DES
Utilizzo di chiavi a 56 bit
Voluta dalla NSA per controllare la sicurezza?
S-Box
Esistenza di trapdoor?
Numero di fasi
Con 8 iterazioni DES realizza funzione
random
Conoscenza della crittoanalisi differenziale?
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
46
Attacchi sofisticati al DES
Crittoanalisi differenziale
Biham e Shamir, 1990
Recupera la chiave a partire da 247 coppie
(plaintext, ciphertext) di testi scelti
Solo teorico, come trovare 247 testi scelti?
Crittoanalisi lineare
Matsui, 1993
Recupera la chiave a partire da 243 coppie
(plaintext, ciphertext) testi in chiaro noti
Stelvio Cimato DI – Università degli studi di Milano,
Sede di Crema
•Corso di Crittografia
47
•24
Related documents
Download