54
RETI DI CALCOLATORI RETI DI CALCOLATORI Crittografia Crittografia

Reti di Calcolatori - Crittografia

Embed Size (px)

DESCRIPTION

La crittografia nelle reti di calcolatori

Citation preview

Page 1: Reti di Calcolatori - Crittografia

RETI DI CALCOLATORIRETI DI CALCOLATORI

CrittografiaCrittografia

Page 2: Reti di Calcolatori - Crittografia

22

La crittografiaLa crittografia

La La crittografiacrittografia è la scienza che è la scienza che studia la scrittura e la lettura di studia la scrittura e la lettura di messaggi in codice ed è il messaggi in codice ed è il fondamento su cui si basano i fondamento su cui si basano i meccanismi di autenticazione, meccanismi di autenticazione, integrità e segretezza.integrità e segretezza.

Page 3: Reti di Calcolatori - Crittografia

33

La crittografiaLa crittografia

L’L’autenticazioneautenticazione stabilisce al tempo stabilisce al tempo stesso l’identità del mittente e del stesso l’identità del mittente e del destinatario delle informazioni. destinatario delle informazioni. L’L’integritàintegrità garantisce che i dati garantisce che i dati non siano stati alterati e la non siano stati alterati e la segretezzasegretezza che nessuno, al di che nessuno, al di fuori di mittente e destinatario, fuori di mittente e destinatario, sia in grado di interpretarli.sia in grado di interpretarli.

Page 4: Reti di Calcolatori - Crittografia

44

La crittografiaLa crittografia

Solitamente, i meccanismi Solitamente, i meccanismi crittografici utilizzano sia un crittografici utilizzano sia un algoritmoalgoritmo sia un valore segreto, sia un valore segreto, detto detto chiavechiave. In genere, la . In genere, la struttura degli algoritmi è struttura degli algoritmi è pubblica; le chiavi, invece, pubblica; le chiavi, invece, vengono mantenute segrete per vengono mantenute segrete per ottenere la sicurezza richiesta.ottenere la sicurezza richiesta.

Page 5: Reti di Calcolatori - Crittografia

55

La crittografiaLa crittografia

Il numero di bit necessari per Il numero di bit necessari per garantire la sicurezza crittografica garantire la sicurezza crittografica non è facile da determinare. Più è non è facile da determinare. Più è lungo lo lungo lo spazio di chiavespazio di chiave (l’intervallo di possibili valori), più (l’intervallo di possibili valori), più diventa difficile forzare la chiave diventa difficile forzare la chiave con un attacco di forza bruta.con un attacco di forza bruta.

Page 6: Reti di Calcolatori - Crittografia

66

La crittografiaLa crittografia

Un Un attacco di forza brutaattacco di forza bruta è un è un tentativo di arrivare alla chiave tentativo di arrivare alla chiave nel quale si applicano nel quale si applicano all’algoritmo tutte le possibili all’algoritmo tutte le possibili combinazioni di valori, finché non combinazioni di valori, finché non si riesce a decifrare il messaggio.si riesce a decifrare il messaggio.

Page 7: Reti di Calcolatori - Crittografia

77

La crittografiaLa crittografia

Possibili combinazioni per gli attacchi di forza bruta

Lunghezza chiave (in bit) Numero combinazioni possibili

40 240 = 1.099.511.627.776

56 256 = 7,205759403793 x 1016

64 264 = 1,844674407371 x 1019

112 2112 = 5,192296858535 x 1033

128 2128 = 3,402823669209 x 1038

Page 8: Reti di Calcolatori - Crittografia

88

La crittografiaLa crittografia

In generale, si tendono a utilizzare In generale, si tendono a utilizzare chiavi più lunghe possibile, per chiavi più lunghe possibile, per ridurre le probabilità di forzatura. È ridurre le probabilità di forzatura. È comunque necessario tener comunque necessario tener presente che più lunga è la chiave, presente che più lunga è la chiave, maggiori sono i costi in termini di maggiori sono i costi in termini di potenza di calcolo dei processi di potenza di calcolo dei processi di crittografia e decifrazione. crittografia e decifrazione. L’obiettivo è che la forzatura sia “più L’obiettivo è che la forzatura sia “più costosa” del valore intrinseco delle costosa” del valore intrinseco delle informazioni protette.informazioni protette.

Page 9: Reti di Calcolatori - Crittografia

99

La crittografiaLa crittografia

Le funzioni crittografiche per Le funzioni crittografiche per l’autenticazione, l’integrità e la l’autenticazione, l’integrità e la segretezza dei dati sono tre:segretezza dei dati sono tre:

• chiavi simmetriche;chiavi simmetriche;• chiavi asimmetriche;chiavi asimmetriche;• funzioni hash non invertibili.funzioni hash non invertibili.

Page 10: Reti di Calcolatori - Crittografia

1010

Crittografia a chiave Crittografia a chiave simmetricasimmetrica

La La crittografia simmetricacrittografia simmetrica, altrimenti , altrimenti detta detta crittografia a chiave segretacrittografia a chiave segreta, , utilizza una chiave comune e il utilizza una chiave comune e il medesimo algoritmo crittografico medesimo algoritmo crittografico per la codifica e la decodifica dei per la codifica e la decodifica dei messaggi. In sostanza, due utenti messaggi. In sostanza, due utenti che desiderano comunicare devono che desiderano comunicare devono accordarsi su di un algoritmo e su accordarsi su di un algoritmo e su di una chiave comuni.di una chiave comuni.

Page 11: Reti di Calcolatori - Crittografia

1111

Crittografia a chiave Crittografia a chiave simmetricasimmetrica

Codifica DecodificaInternet

ChiaveSegreta

ChiaveSegreta

Msg Msg

A B

Page 12: Reti di Calcolatori - Crittografia

1212

Crittografia a chiave Crittografia a chiave simmetricasimmetrica

Uno degli algoritmi più semplici è il Uno degli algoritmi più semplici è il cifrario di Cesarecifrario di Cesare, che sostituisce , che sostituisce ognuna delle lettere del ognuna delle lettere del messaggio originale con la lettera messaggio originale con la lettera dell’alfabeto che si trova dell’alfabeto che si trova nn posti posti più avanti nell’alfabeto stesso.più avanti nell’alfabeto stesso.

Es. n=3Es. n=3SCANO SCANO VFDQR VFDQR

Page 13: Reti di Calcolatori - Crittografia

1313

Crittografia a chiave Crittografia a chiave simmetricasimmetrica

Gli algoritmi di uso comune più Gli algoritmi di uso comune più difficili da decifrare utilizzano uno difficili da decifrare utilizzano uno sei seguenti sistemi:sei seguenti sistemi:

• DES (Data Encryption Standard);DES (Data Encryption Standard);• 3DES (Triple DES);3DES (Triple DES);• RC-4 (Rivest Cipher 4);RC-4 (Rivest Cipher 4);• IDEA (International Data IDEA (International Data

Encryption Algorithm).Encryption Algorithm).

Page 14: Reti di Calcolatori - Crittografia

1414

DESDES

Il Il DESDES è uno schema crittografico è uno schema crittografico operante su blocchi di 64 bit e operante su blocchi di 64 bit e utilizza una serie di fasi per utilizza una serie di fasi per trasformare 64 bit di input in 64 bit trasformare 64 bit di input in 64 bit di output. Nella sua forma di output. Nella sua forma standard, l’algoritmo utilizza chiavi standard, l’algoritmo utilizza chiavi a 64 bit, 56 dei quali scelti a caso. a 64 bit, 56 dei quali scelti a caso. Gli altri 8 bit sono bit di parità.Gli altri 8 bit sono bit di parità.

Page 15: Reti di Calcolatori - Crittografia

1515

3DES3DES

3DES3DES è una versione alternativa di è una versione alternativa di DES. Tale sistema, che può DES. Tale sistema, che può utilizzare una, due o tre chiavi utilizzare una, due o tre chiavi diverse, prende un blocco di 64 diverse, prende un blocco di 64 bit e vi applica operazioni di bit e vi applica operazioni di codifica, decodifica e ricodifica.codifica, decodifica e ricodifica.

Page 16: Reti di Calcolatori - Crittografia

1616

RC-4RC-4

RC-4RC-4 è un algoritmo privato, è un algoritmo privato, inventato da Ron Rivest e inventato da Ron Rivest e commercializzato da RSA Data commercializzato da RSA Data Security. Viene solitamente Security. Viene solitamente utilizzato con una chiave a 128 utilizzato con una chiave a 128 bit, ma le dimensioni della chiave bit, ma le dimensioni della chiave sono variabili.sono variabili.

Page 17: Reti di Calcolatori - Crittografia

1717

IDEAIDEA

Il sistema Il sistema IDEAIDEA, realizzato come , realizzato come alternativa a DES, opera sempre alternativa a DES, opera sempre su blocchi di 64 bit, ma utilizza su blocchi di 64 bit, ma utilizza una chiave di 128 bit. Si tratta di una chiave di 128 bit. Si tratta di un algoritmo brevettato ed è un algoritmo brevettato ed è utilizzabile per usi commerciali utilizzabile per usi commerciali solo su licenza.solo su licenza.

Page 18: Reti di Calcolatori - Crittografia

1818

Crittografia a chiave Crittografia a chiave simmetricasimmetrica

La crittografia a chiave segreta La crittografia a chiave segreta viene sostanzialmente utilizzata viene sostanzialmente utilizzata per garantire la segretezza dei per garantire la segretezza dei dati, in quanto gran parte degli dati, in quanto gran parte degli algoritmi simmetrici sono stati algoritmi simmetrici sono stati progettati per essere applicati progettati per essere applicati all’hardware e sono stati all’hardware e sono stati ottimizzati per la codifica di ottimizzati per la codifica di grandi masse di dati.grandi masse di dati.

Page 19: Reti di Calcolatori - Crittografia

1919

Crittografia a chiave Crittografia a chiave simmetricasimmetrica

I punti critici dei sistemi a chiave I punti critici dei sistemi a chiave segreta sono i seguenti:segreta sono i seguenti:

• necessità di cambiare necessità di cambiare frequentemente le chiavi segrete frequentemente le chiavi segrete per evitare il rischio che vengano per evitare il rischio che vengano scoperte;scoperte;

• sicurezza nella generazione delle sicurezza nella generazione delle chiavi segrete;chiavi segrete;

• sicurezza nella distribuzione delle sicurezza nella distribuzione delle chiavi segrete.chiavi segrete.

Page 20: Reti di Calcolatori - Crittografia

2020

Crittografia Crittografia asimmetricaasimmetrica

La crittografia La crittografia asimmetricaasimmetrica viene viene spesso definita come spesso definita come crittografia a crittografia a chiave pubblicachiave pubblica e può utilizzare lo e può utilizzare lo stesso algoritmo, oppure algoritmi stesso algoritmo, oppure algoritmi diversi ma complementari, per diversi ma complementari, per codificare e decodificare i dati. codificare e decodificare i dati. Sono necessari due valori diversi, Sono necessari due valori diversi, ma correlati, per la chiave: una ma correlati, per la chiave: una chiave pubblica e una privata.chiave pubblica e una privata.

Page 21: Reti di Calcolatori - Crittografia

2121

Crittografia Crittografia asimmetricaasimmetrica

Per comunicare utilizzando la Per comunicare utilizzando la crittografia a chiave pubblica, crittografia a chiave pubblica, AA e e BB necessitano di una coppia necessitano di una coppia chiave chiave pubblica – chiave privatapubblica – chiave privata. Ognuno . Ognuno dei due deve creare la propria dei due deve creare la propria coppia di chiavi. Nelle coppia di chiavi. Nelle comunicazioni fra loro, A e B comunicazioni fra loro, A e B utilizzano chiavi diverse per utilizzano chiavi diverse per codificare e decodificare i dati.codificare e decodificare i dati.

Page 22: Reti di Calcolatori - Crittografia

2222

Crittografia Crittografia asimmetricaasimmetrica

A B

Pub

Pri

Pub

Pri

Pub

Pub

2

1

1 1

2

Crea una coppia chiave privata - chiave pubblicaScambia solo chiavi pubbliche

Page 23: Reti di Calcolatori - Crittografia

2323

Crittografia Crittografia asimmetricaasimmetrica

Alcuni degli utilizzi più comuni per gli Alcuni degli utilizzi più comuni per gli algoritmi a chiave pubblica algoritmi a chiave pubblica comprendono:comprendono:

• l’integrità dei dati;l’integrità dei dati;• la segretezza dei dati;la segretezza dei dati;• l’accettazione del mittente;l’accettazione del mittente;• l’autenticazione del mittente.l’autenticazione del mittente.

Page 24: Reti di Calcolatori - Crittografia

2424

Crittografia Crittografia asimmetricaasimmetrica

Perché avvenga uno Perché avvenga uno scambio di dati scambio di dati segretosegreto, debbono verificarsi le , debbono verificarsi le seguenti condizioni:seguenti condizioni:

1.1. A e B creano le proprie coppie di A e B creano le proprie coppie di chiavi pubbliche e private;chiavi pubbliche e private;

2.2. A e B si scambiano le chiavi A e B si scambiano le chiavi pubbliche;pubbliche;

3.3. A scrive a B e codifica il messaggio A scrive a B e codifica il messaggio utilizzando la chiave pubblica di B utilizzando la chiave pubblica di B prima di trasmetterlo via Internet;prima di trasmetterlo via Internet;

Page 25: Reti di Calcolatori - Crittografia

2525

Crittografia Crittografia asimmetricaasimmetrica

4.4. B utilizza la propria chiave privata B utilizza la propria chiave privata per decifrare il messaggio;per decifrare il messaggio;

5.5. B risponde, codifica il messaggio B risponde, codifica il messaggio utilizzando la chiave pubblica di A utilizzando la chiave pubblica di A e lo trasmette via Internet;e lo trasmette via Internet;

6.6. A utilizza la propria chiave privata A utilizza la propria chiave privata per decifrare il messaggio.per decifrare il messaggio.

Page 26: Reti di Calcolatori - Crittografia

2626

Crittografia Crittografia asimmetricaasimmetrica

Come garantire l’integrità e la segretezza dei dati con la crittografia a chiave Come garantire l’integrità e la segretezza dei dati con la crittografia a chiave pubblicapubblica

1

2

Codifica Decodifica

Decodifica Codifica

3 4

6 5

1 Coppia chiave pub. – chiave priv.

Coppia chiave pub. – chiave priv.

A BChiave pub. di A

Chiave pub. di B

Chiave priv. di B

Chiave pub. di B

Messaggiooriginale

Messaggiooriginale

Chiave pub. di A

Chiave priv. di A

Messaggiocodificato

Risposta diAlessandro

Risposta diAlessandro

Internet

Messaggiocodificato

Pub Pub

Pri Pri

Page 27: Reti di Calcolatori - Crittografia

2727

Crittografia Crittografia asimmetricaasimmetrica

La segretezza è garantita nel momento La segretezza è garantita nel momento che A trasmette il messaggio che A trasmette il messaggio originale, in quanto solo B può originale, in quanto solo B può decodificarlo con la propria chiave decodificarlo con la propria chiave privata. Allo stesso tempo, viene privata. Allo stesso tempo, viene assicurata anche l’integrità dei dati, assicurata anche l’integrità dei dati, perché il messaggio non può essere perché il messaggio non può essere modificato se non con la chiave modificato se non con la chiave privata di B. Lo stesso vale per la privata di B. Lo stesso vale per la risposta, in quanto solo A ha accesso risposta, in quanto solo A ha accesso alla propria chiave privata.alla propria chiave privata.

Page 28: Reti di Calcolatori - Crittografia

2828

Crittografia Crittografia asimmetricaasimmetrica

Il punto debole di questo Il punto debole di questo meccanismo sta nel fatto che meccanismo sta nel fatto che chiunque può far finta di essere A chiunque può far finta di essere A e trasmettere a B un messaggio e trasmettere a B un messaggio in codice, utilizzando la chiave in codice, utilizzando la chiave pubblica di B, la quale, in effetti, pubblica di B, la quale, in effetti, è pubblicamente disponibile.è pubblicamente disponibile.

Page 29: Reti di Calcolatori - Crittografia

2929

Crittografia Crittografia asimmetricaasimmetrica

Perché lo scambio sia Perché lo scambio sia autenticatoautenticato, , debbono verificarsi le seguenti debbono verificarsi le seguenti condizioni:condizioni:

1.1. A e B creano le proprie coppie chiave A e B creano le proprie coppie chiave pubblica – chiave privata;pubblica – chiave privata;

2.2. A e B si scambiano le chiavi A e B si scambiano le chiavi pubbliche;pubbliche;

3.3. A scrive a B, codificando il messaggio A scrive a B, codificando il messaggio con la propria chiave privata, e con la propria chiave privata, e trasmette i dati in codice via Internet;trasmette i dati in codice via Internet;

Page 30: Reti di Calcolatori - Crittografia

3030

Crittografia Crittografia asimmetricaasimmetrica

4.4. B utilizza la chiave pubblica di A B utilizza la chiave pubblica di A per decifrare il messaggio;per decifrare il messaggio;

5.5. B risponde, codifica il messaggio B risponde, codifica il messaggio con la propria chiave privata e con la propria chiave privata e trasmette i dati in codice ad A via trasmette i dati in codice ad A via Internet;Internet;

6.6. A decifra il messaggio con la A decifra il messaggio con la chiave pubblica di B.chiave pubblica di B.

Page 31: Reti di Calcolatori - Crittografia

3131

Crittografia Crittografia asimmetricaasimmetrica

Per garantire, con il sistema della chiave Per garantire, con il sistema della chiave pubblica, l’autenticità degli scambi, oltre pubblica, l’autenticità degli scambi, oltre all’integrità e alla segretezza dei dati, è all’integrità e alla segretezza dei dati, è necessario introdurre la doppia necessario introdurre la doppia crittografia. Per prima cosa, A codifica il crittografia. Per prima cosa, A codifica il messaggio a B con la chiave pubblica di messaggio a B con la chiave pubblica di B; quindi ricodifica il messaggio con la B; quindi ricodifica il messaggio con la propria chiave privata. Il messaggio propria chiave privata. Il messaggio potrebbe essere decodificato da potrebbe essere decodificato da chiunque, ma solo B può decodificare il chiunque, ma solo B può decodificare il secondo con la propria chiave privata.secondo con la propria chiave privata.

Page 32: Reti di Calcolatori - Crittografia

3232

Crittografia Crittografia asimmetricaasimmetrica

Per i loro limiti di prestazioni, gli algoritmi Per i loro limiti di prestazioni, gli algoritmi crittografici a chiave pubblica non sono crittografici a chiave pubblica non sono solitamente utilizzati per garantire la solitamente utilizzati per garantire la segretezza, ma si rivelano segretezza, ma si rivelano particolarmente utili per le applicazioni particolarmente utili per le applicazioni che richiedono una forma di che richiedono una forma di autenticazione attraverso firme digitali autenticazione attraverso firme digitali e gestione delle chiavi. Tra i più e gestione delle chiavi. Tra i più comuni, si segnalano gli algoritmi di comuni, si segnalano gli algoritmi di Ron Rivest, di Adi Shamir e di Leonard Ron Rivest, di Adi Shamir e di Leonard Adleman (RSA) e quello di El Gamal.Adleman (RSA) e quello di El Gamal.

Page 33: Reti di Calcolatori - Crittografia

3333

Funzioni hashFunzioni hash

Una Una funzione hashfunzione hash trasforma un trasforma un messaggio di lunghezza arbitraria messaggio di lunghezza arbitraria in output di lunghezza fissa in output di lunghezza fissa (chiamato (chiamato hashhash o o digest digest del del messaggio originale).messaggio originale).

Page 34: Reti di Calcolatori - Crittografia

3434

Funzioni hashFunzioni hash

Per soddisfare le condizioni di Per soddisfare le condizioni di sicurezza stabilite per le funzioni sicurezza stabilite per le funzioni hash, gli algoritmi devono avere le hash, gli algoritmi devono avere le seguenti proprietà:seguenti proprietà:

• devono essere coerenti (a input devono essere coerenti (a input uguali corrispondono output uguali);uguali corrispondono output uguali);

• devono essere casuali, o apparire devono essere casuali, o apparire tali, per impedire l’interpretazione tali, per impedire l’interpretazione accidentale del messaggio accidentale del messaggio originale;originale;

Page 35: Reti di Calcolatori - Crittografia

3535

Funzioni hashFunzioni hash

• devono essere univoci (la devono essere univoci (la probabilità che due messaggi probabilità che due messaggi generino il medesimo hash deve generino il medesimo hash deve essere virtualmente nulla);essere virtualmente nulla);

• devono essere non invertibili devono essere non invertibili (risalire al messaggio originale (risalire al messaggio originale dall’output deve essere dall’output deve essere impossibile).impossibile).

Page 36: Reti di Calcolatori - Crittografia

3636

Funzioni hashFunzioni hash

Le funzioni hash non invertibili Le funzioni hash non invertibili vengono normalmente utilizzate vengono normalmente utilizzate per assegnare un’per assegnare un’impronta impronta digitale digitale a un messaggio o a un a un messaggio o a un file. Come le impronte dei file. Come le impronte dei polpastrelli, un’impronta hash è polpastrelli, un’impronta hash è univoca e costituisce una prova univoca e costituisce una prova dell’integrità e dell’autenticità del dell’integrità e dell’autenticità del messaggio.messaggio.

Page 37: Reti di Calcolatori - Crittografia

3737

Funzioni hashFunzioni hash

Esemplificando, se Esemplificando, se AA e e BB vogliono vogliono accertarsi che nessuno sia accertarsi che nessuno sia intervenuto sul contenuto del intervenuto sul contenuto del messaggio in fase di transizione messaggio in fase di transizione utilizzano proprio una funzione utilizzano proprio una funzione hash non invertibile.hash non invertibile.

Page 38: Reti di Calcolatori - Crittografia

3838

Funzioni hashFunzioni hash

Per garantire l’integrità dei dati Per garantire l’integrità dei dati trasferiti fra A e B, devono trasferiti fra A e B, devono verificarsi le seguenti condizioni:verificarsi le seguenti condizioni:

1.1. A scrive un messaggio e ne A scrive un messaggio e ne utilizza il testo come input di una utilizza il testo come input di una funzione hash non invertibile;funzione hash non invertibile;

2.2. il risultato della funzione hash il risultato della funzione hash viene accodato al messaggio e ne viene accodato al messaggio e ne costituisce l’impronta digitale;costituisce l’impronta digitale;

Page 39: Reti di Calcolatori - Crittografia

3939

Funzioni hashFunzioni hash

3.3. B separa il messaggio B separa il messaggio dall’impronta e utilizza il testo del dall’impronta e utilizza il testo del messaggio come input della messaggio come input della medesima funzione hash medesima funzione hash utilizzata da A;utilizzata da A;

4.4. se i due hash corrispondono, B è se i due hash corrispondono, B è certo che nessun altro sia certo che nessun altro sia intervenuto sul messaggio.intervenuto sul messaggio.

Page 40: Reti di Calcolatori - Crittografia

4040

Funzioni hashFunzioni hash

A B

Impronta

Impronta

Impronta

Impronta

1

2

3

4

Msg

Page 41: Reti di Calcolatori - Crittografia

4141

Funzioni hashFunzioni hash

Il problema, in questo caso, è che non Il problema, in questo caso, è che non c’è modo di proteggere l’impronta c’è modo di proteggere l’impronta da eventuali intrusi. È possibile da eventuali intrusi. È possibile infatti che qualcuno interferisca, infatti che qualcuno interferisca, impersonando il mittente o il impersonando il mittente o il destinatario delle comunicazioni destinatario delle comunicazioni sicure. Pertanto, per essere sicure. Pertanto, per essere utilizzate in maniera sicura, le utilizzate in maniera sicura, le funzioni hash vanno combinate con funzioni hash vanno combinate con sistemi a chiave pubblica per sistemi a chiave pubblica per l’assegnazione di firme digitali.l’assegnazione di firme digitali.

Page 42: Reti di Calcolatori - Crittografia

4242

Funzioni hashFunzioni hash

Tra le funzioni hash più comuni, si Tra le funzioni hash più comuni, si segnalano:segnalano:

• l’algoritmo MD4 (Message Digest l’algoritmo MD4 (Message Digest 4);4);

• l’algoritmo MD5 (Message Digest l’algoritmo MD5 (Message Digest 5);5);

• l’algoritmo SHA (Secure Hash l’algoritmo SHA (Secure Hash Algorithm).Algorithm).

Page 43: Reti di Calcolatori - Crittografia

4343

Funzioni hashFunzioni hash

Gli algoritmi Gli algoritmi MD4MD4 e e MD5MD5 sono stati sono stati elaborati da Ron Rivest per il MIT elaborati da Ron Rivest per il MIT (Massachusetts Institute of (Massachusetts Institute of Technology), mentre l’algoritmo Technology), mentre l’algoritmo SHASHA è stato sviluppato dal NIST è stato sviluppato dal NIST (National Institute of Standards (National Institute of Standards and Technology).and Technology).

Page 44: Reti di Calcolatori - Crittografia

4444

Funzioni hashFunzioni hash

Gli attuali prodotti per la sicurezza Gli attuali prodotti per la sicurezza utilizzano principalmente algoritmi utilizzano principalmente algoritmi MD5 e SHA, entrambi basati sul MD5 e SHA, entrambi basati sul sistema MD4. MD5 elabora l’input sistema MD4. MD5 elabora l’input a blocchi di 512 bit e produce un a blocchi di 512 bit e produce un digest di 128 bit. SHA elabora digest di 128 bit. SHA elabora blocchi di 512 bit e produce un blocchi di 512 bit e produce un digest di 160 bit. SHA richiede un digest di 160 bit. SHA richiede un maggiore lavoro da parte del maggiore lavoro da parte del processore ed è leggermente più processore ed è leggermente più lento di MD5.lento di MD5.

Page 45: Reti di Calcolatori - Crittografia

4545

Firme digitaliFirme digitali

Una Una firma digitalefirma digitale è un digest in è un digest in codice che viene utilizzato per codice che viene utilizzato per comprovare l’identità del comprovare l’identità del mittente e l’integrità del mittente e l’integrità del documento. Le firme digitali si documento. Le firme digitali si basano su di una combinazione di basano su di una combinazione di tecniche crittografiche a chiave tecniche crittografiche a chiave pubblica e funzioni hash non pubblica e funzioni hash non invertibili.invertibili.

Page 46: Reti di Calcolatori - Crittografia

4646

Firme digitaliFirme digitali

Perché B possa creare una firma Perché B possa creare una firma digitale, si devono verificare le digitale, si devono verificare le seguenti condizioni:seguenti condizioni:

1.1. B crea una coppia chiave privata B crea una coppia chiave privata – chiave pubblica;– chiave pubblica;

2.2. B dà ad A la propria chiave B dà ad A la propria chiave pubblica;pubblica;

Page 47: Reti di Calcolatori - Crittografia

4747

Firme digitaliFirme digitaliCreazione di una firma digitale 1Creazione di una firma digitale 1

Pub

Pri

2

1

1

2

Il mittente crea una coppia chiave privata - chiave pubblicaIl mittente invia la chiave pubblica al ricevente

Pub

AB

Page 48: Reti di Calcolatori - Crittografia

4848

Firme digitaliFirme digitali

3.3. B scrive un messaggio, che utilizza B scrive un messaggio, che utilizza come input per una funzione hash come input per una funzione hash non invertibile;non invertibile;

4.4. B codifica l’output dell’algoritmo B codifica l’output dell’algoritmo hash, il digest del messaggio, con hash, il digest del messaggio, con la propria chiave privata, la propria chiave privata, ottenendo così la firma digitale.ottenendo così la firma digitale.

Il messaggio che B trasmette ad A è Il messaggio che B trasmette ad A è l’insieme del documento e della l’insieme del documento e della firma digitale.firma digitale.

Page 49: Reti di Calcolatori - Crittografia

4949

Firme digitaliFirme digitaliCreazione di una firma digitale 2Creazione di una firma digitale 2

Msg

006FBBC95

Codifica

FIRMA

Il messaggio originale è l’input diuna funzione hash non invertibile

L’output è l’hash del messaggio

L’hash viene codificato con la chiaveprivata del mittente

La firma digitaleè l’hash crittografato

Page 50: Reti di Calcolatori - Crittografia

5050

Firme digitaliFirme digitali

Per il destinatario, le operazioni da Per il destinatario, le operazioni da svolgere per verificare il messaggio e svolgere per verificare il messaggio e la firma digitale sono le seguenti:la firma digitale sono le seguenti:

1.1. A separa il messaggio ricevuto in A separa il messaggio ricevuto in documento originale e firma digitale;documento originale e firma digitale;

2.2. A utilizza la chiave pubblica di B per A utilizza la chiave pubblica di B per decifrare la firma digitale e ottenere il decifrare la firma digitale e ottenere il sunto del messaggio originale;sunto del messaggio originale;

Page 51: Reti di Calcolatori - Crittografia

5151

Firme digitaliFirme digitali

3.3. A utilizza il documento originale A utilizza il documento originale come input della medesima come input della medesima funzione hash utilizzata da B per funzione hash utilizzata da B per ottenere il digest del messaggio;ottenere il digest del messaggio;

4.4. A controlla che i digest del A controlla che i digest del messaggio siano uguali.messaggio siano uguali.

Se tutto quadra, sono comprovate Se tutto quadra, sono comprovate sia l’integrità del documento, sia sia l’integrità del documento, sia l’autenticità del mittente.l’autenticità del mittente.

Page 52: Reti di Calcolatori - Crittografia

5252

Firme digitaliFirme digitali

Msg

006FBBC95

Decodifica

FIRMAIl ricevente separamessaggio e firma

MsgFIRMA

006FBBC95

Decodifica firma conchiave pubblica mittente

Il risultato èl’hash crittografato

Il messaggiooriginale è l’inputdi una funzionehash noninvertibile

Il risultato è l’hashdel messaggio

Page 53: Reti di Calcolatori - Crittografia

5353

Firme digitaliFirme digitali

Lo scambio iniziale di chiavi deve Lo scambio iniziale di chiavi deve avvenire in modo tale da avvenire in modo tale da garantire la sicurezza. È questa la garantire la sicurezza. È questa la ragione fondamentale ragione fondamentale dell’esistenza di certificati digitali.dell’esistenza di certificati digitali.

Page 54: Reti di Calcolatori - Crittografia

5454

Firme digitaliFirme digitali

Un Un certificato digitalecertificato digitale è un messaggio è un messaggio con firma digitale che contiene la con firma digitale che contiene la chiave privata di un terzo di fiducia, chiave privata di un terzo di fiducia, il quale dichiara che una determinata il quale dichiara che una determinata chiave pubblica appartiene a una chiave pubblica appartiene a una certa persona o entità e ne certa persona o entità e ne garantisce nome e caratteristiche. Se garantisce nome e caratteristiche. Se lo scambio iniziale non avviene lo scambio iniziale non avviene nell’ambito di una relazione di nell’ambito di una relazione di fiducia, chiunque può simulare di fiducia, chiunque può simulare di essere una determinata entità.essere una determinata entità.