Title: Crittografia
1Crittografia
DESTINATARIO
MITTENTE
messaggio
messaggio
chiave-1
chiave-2
crittografia
decrittografia
messaggio cifrato
2Crittografia a chiave privata
3Crittoanalisi
- Ciphertext only
- algoritmo di crittografia
- testo cifrato
- Known plaintext
- algoritmo di crittografia
- testo cifrato
- una o più coppie testo in chiaro / testo cifrato
- Chosen plaintext
- algoritmo di crittografia
- testo cifrato
- messaggi in chiaro scelti dal criptoanalista con
i corrispondenti messaggi cifrati
4Lunghezza delle chiavi private
- se lalgoritmo è ben progettato lunico attacco
possibile è quello esaustivo - numero medio di tentativi richiesti 2N-1 con
Nlunghezza della chiave - tempo medio di attacco
lungh. chiave tempo richiesto tempo
richiesto (bit) a 1 decr/?s a 106 decr/?s 56
255 ?s 1142 anni 10 ore 128 2127 ?s
1024 anni 1018 anni 168 2167 ?s 1036
anni 1030 anni
5Cipher Block Chaining Mode
- Produce un blocco di testo cifrato per ogni
blocco di testo in chiaro in input - per evitare regolarità si fa in modo che il
blocco cifrato di ogni blocco dati dipenda da
tutto il testo in chiaro precedente
6DES (Data Encryption Standard)
- sviluppato alla IBM, adottato dal NIST nel 1977
come standard per le applicazioni governative e
commerciali - chiave da 56 bit, blocco dati da 64 bit
- efficiente in hardware (implementato in VLSI)
- molto studiato, non sono note debolezze
- violato nel 1998 con attacco esaustivo su
macchina special-purpose in meno di 3 giorni
7DES schema complessivo
8DES schema dell'i-ma iterazione
9Triplo DES
- standardizzato per le applicazioni finanziarie
nel 1985, dal 1999 incorporato nello standard DES - tre esecuzioni del DES secondo uno schema EDE
- stessa resistenza del DES alla crittoanalisi
- tre chiavi da 56 bit equivalenti a una da 168 bit
10AES (Advanced Encryption Standard)
- Call for proposal emessa dal NIST nel 1997
- specifiche
- sicurezza almeno pari a quella del Triplo DES
- maggiore efficienza
- blocco dati da 128 bit, chiavi da 128/192/256 bit
- criteri di valutazione
- sicurezza, efficienza, uso di risorse,
adattabilità hw e sw, flessibilità - standard finale pubblicato nel 2001
11Altri algoritmi a chiave privata
- IDEA (International Data Encryption Algorithm)
- sviluppato nel 1991
- blocco dati da 64 bit, chiave da 128 bit
- operazioni XOR, addizione e moltiplicazione a 16
bit - efficiente in software
- finora appare altamente resistente alla
crittoanalisi - usato nel PGP e in molti prodotti commerciali
- RC5
- sviluppato da Ron Rivest (RC Rons code)
- algoritmo proprietario di RSA Data Security Inc.
- adatto sia per hw che per sw
- veloce (word oriented)
- parametrizzabile (dimensione word, numero di
round, lunghezza chiave) - adatto a smart card e dispositivi con ridotta
memoria
12Distribuzione delle chiavi
- OOB (Out Of Band)
- key distribution center
13Crittografia a chiave pubblica
- proposta nel 1976 da Diffie e Hellman
- usata per distribuire chiavi segrete e per la
firma digitale
Bob
Alice
14Requirements
- deve essere computazionalmente semplice per un
utente B generare una coppia di chiavi KUb, KRb - deve essere computazionalmente semplice per un
mittente A ottenere il testo cifrato C EKUb(M) - deve essere computazionalmente semplice per il
ricevente B recuperare il testo originale M
DKRb(C) - deve essere computazionalmente complesso per un
impostore determinare KRb da KUb - deve essere computazionalmente complesso per un
impostore ricavare M da KUb e C - le chiavi KUb e KRb devono avere funzionalità
reciproche
15RSA (Rivest - Shamir - Adleman)
- sviluppato nel 1977 da Rivest, Shamir, Adleman
- algoritmo a chiave pubblica più diffuso
Encryption Plaintext Mltn Ciphertext
C Memodn
Decryption Ciphertext C Plaintext M
Cdmodn
Key Generation Select p,
q p and q both prime Calculate n p x
q Calculate ?(n) (p-1)(q-1) Select integer
e gcd(?(n),e)1 1ltelt ?(n) Calculate d de
mod?(n) 1 Public key KU e, n Private
key KR d, n
16RSA un esempio
- Si scelgono due numeri primi p7, q17
- si calcola n pq 7 x 17 119
- si calcola ?(n) (p-1)(q-1) 6x16 96
- si sceglie e lt ?(n), relativamente primo con
?(n), e 5 - si determina d tale che de mod 96 1 e dlt96,
d 77 (infatti 77x5 385 96x41)
17Sicurezza di RSA
- Possibile attacco esaustivo nella scelta di e e
d trade-off tra sicurezza e prestazioni - Crittoanalisi fattorizzazione di n
- 1977 sfida degli inventori su un testo criptato
con una chiave pubblica n di 129 cifre decimali
(circa 428 bit) - 1994 sfida vinta su Internet con 1600
calcolatori in otto mesi di lavoro - attualmente chiavi di 1024 bit sono considerate
sufficientemente sicure
18Diffie - Hellman
- primo algoritmo a chiave pubblica proposto (76)
- tecnica per lo scambio di chiavi segrete
- si basa sulla difficoltà di calcolare il log
discreto
Global Public Elements q prime
number ? ?ltq and ? primitive root of q
User A Key Generation Select private
XA XAltq Calculate public YA YA ?XAmodq
User B Key Generation Select private
XB XBltq Calculate public YB YB ?XBmodq
Generation of secret key by A K
(YB)XAmodq Generation of secret key by B K
(YA)XBmodq
19Diffie - Hellman un esempio
- Si scelgono un numero primo q71 e una sua radice
primitiva ?7 - A sceglie la chiave privata XA5 e calcola la
chiave pubblica YA 75mod71 51 - B sceglie la chiave privata XB12 e calcola la
chiave pubblica YB 712mod71 4 - A e B si scambiano le chiavi pubbliche
- A calcola la chiave segreta K 45mod71 30
- B calcola la chiave segreta K 5112mod71 30
20Diffie - Hellman aspetti critici
- non protegge da attacchi di tipo replay
- possibile attacco man-in-the-middle
YM
YA
A
M
B
YM
YB
- richiede pre-autenticazione
YA, firma A(YA)
A
B
YB, firma B(YB)
21Uso della crittografia a chiave pubblica per
l'autenticazione
Bob
Alice
22Firma digitale
- Garantisce che
- il messaggio è autentico
- il messaggio è integro
- il mittente non può disconoscere il messaggio
23Funzione di hash
- Produce un'impronta del messaggio
- Deve possedere le seguenti proprietà
- accetta un messaggio di dimensione variabile
- produce un digest di lunghezza fissa
- è veloce da calcolare
- è difficilmente invertibile
- è estremamente improbabile che messaggi diversi
generino lo stesso digest
24Esempi di funzioni di hash
- MD5 (Message Digest 5)
- sviluppata da Ron Rivest
- digest da 128 bit
- era la più usata, ora non più considerata sicura
- SHA (Secure Hash Algorithm)
- sviluppata dal NIST nel 1993, SHA-1 revised
version nel 1995 - digest da 160 bit
- ogni bit del digest è funzione di tutto l'input
25Uso della crittografia a chiave pubblica per la
distribuzione di chiavi segrete
- Bob vuole comunicare con Alice in forma riservata
- Bob prepara il messaggio
- lo cripta usando la crittografia a chiave privata
con una chiave di sessione - cripta la chiave di sessione usando la
crittografia a chiave pubblica con la chiave
pubblica di Alice - acclude al messaggio la chiave di sessione
criptata e invia il messaggio