1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia...

25
1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato

Transcript of 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia...

Page 1: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

1

Crittografia

MITTENTE DESTINATARIO

messaggio

chiave-1

crittografia

messaggio

decrittografia

chiave-2

messaggio cifrato

Page 2: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

2

Crittografia a chiave privata

Page 3: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

3

Crittoanalisi• 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

Page 4: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

4

Lunghezza delle chiavi private

• se l’algoritmo è ben progettato l’unico attacco possibile è quello esaustivo– numero medio di tentativi richiesti: 2N-1 con

N=lunghezza 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 ore128 2127 s ~ 1024 anni ~ 1018 anni168 2167 s ~ 1036 anni ~ 1030 anni

Page 5: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

5

Cipher 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

Page 6: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

6

DES (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

Page 7: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

7

DES: schema complessivo

Page 8: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

8

DES: schema dell'i-ma iterazione

Page 9: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

9

Triplo 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

Page 10: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

10

AES (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

Page 11: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

11

Altri 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 = Ron’s 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

Page 12: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

12

Distribuzione delle chiavi• OOB (Out Of Band)

• key distribution center

Page 13: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

13

Crittografia a chiave pubblica• proposta nel 1976 da Diffie e Hellman• usata per distribuire chiavi segrete e per la firma

digitale

Bob Alice

Page 14: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

14

Requirements• 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

Page 15: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

15

RSA (Rivest - Shamir - Adleman)• sviluppato nel 1977 da Rivest, Shamir, Adleman

• algoritmo a chiave pubblica più diffuso

EncryptionPlaintext: M<nCiphertext: C = Memodn

DecryptionCiphertext: CPlaintext: M = Cdmodn

Key GenerationSelect p, q p and q both primeCalculate n = p x qCalculate (n) = (p-1)(q-1)Select integer e gcd((n),e)=1; 1<e< (n)Calculate d de mod(n) = 1Public key KU = [e, n]Private key KR = [d, n]

Page 16: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

16

RSA: un esempio• Si scelgono due numeri primi p=7, q=17• si calcola n = pq = 7 x 17 = 119• si calcola (n) = (p-1)(q-1) = 6x16 =96• si sceglie e < (n), relativamente primo con (n),

e = 5• si determina d tale che de mod 96 = 1 e d<96,

d = 77 (infatti 77x5 = 385 = 96x4+1)

Page 17: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

17

Sicurezza 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

Page 18: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

Diffie - 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 Elementsq prime number <q and primitive root of q

User A Key GenerationSelect private XA XA<qCalculate public YA YA = XAmodq

User B Key GenerationSelect private XB XB<qCalculate public YB YB = XBmodq

Generation of secret key by AK = (YB)XAmodq

Generation of secret key by BK = (YA)XBmodq

Page 19: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

19

Diffie - Hellman: un esempio• Si scelgono un numero primo q=71 e una sua radice

primitiva =7

• A sceglie la chiave privata XA=5 e calcola la chiave pubblica YA = 75mod71 = 51

• B sceglie la chiave privata XB=12 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

Page 20: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

20

Diffie - Hellman: aspetti critici

• non protegge da attacchi di tipo replay

• possibile attacco man-in-the-middle

A M BYA

YM

YM

YB

• richiede pre-autenticazione

A BYA, firma A(YA)

YB, firma B(YB)

Page 21: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

21

Uso della crittografia a chiave pubblica per l'autenticazione

Bob Alice

Page 22: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

22

Firma digitale

• Garantisce che:– il messaggio è autentico– il messaggio è integro– il mittente non può disconoscere il messaggio

Page 23: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

23

Funzione 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

Page 24: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

24

Esempi 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

Page 25: 1 Crittografia MITTENTE DESTINATARIO messaggio chiave-1 crittografia messaggio decrittografia chiave-2 messaggio cifrato.

25

Uso 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