Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH...

67
Elementi di Crittografia ___________________________________ _____ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola Fabio Felici Andrea Rosati Daniele Salvatori

Transcript of Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH...

Page 1: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Elementi di Crittografia

________________________________________

MAC e FUNZIONI HASH_______________________________

Alessandro Zeppi

Roberto Mottola

Fabio Felici

Andrea Rosati

Daniele Salvatori

Page 2: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Argomenti Trattati

Segretezza/Autenticazione Codici MAC Funzioni Hash Attacchi SHA Whirlpool

Page 3: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Due concetti importanti, ma distinti

SEGRETEZZA

AUTENTICAZIONE

La segretezza è garantita quandoi contenuti di un messaggio sonointellegibili solo a quelle persone e/o quei processi che sono in possesso della chiavecrittografica appropriata

L'autenticazione dei messaggiè una procedura che verifica che i messaggi ricevuti provengano dalla sorgente indicatae che non siano stati modificati

Page 4: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Funzioni per l'autenticazione

I protocolli di autenticazione dei messaggi sfruttano l'esistenza di funzioni che producono autenticatori, che verranno utilizzati dal destinatario per verificare l'autenticità del messaggio.

Queste funzioni sono raggruppabili in tre classi:

Crittografia dei messaggi Codice MAC ( Message Authentication Code) Funzione Hash

Page 5: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Crittografia simmetrica e autenticazione

Messaggio E

K

E(K,M) D

K

Messaggio

Il messaggio trasmesso dalla sorgente A alla destinazione B viene crittografato utilizzando una chiave segreta K condivisa da A e B.

La crittografia simmetrica garantisce segretezza e autenticazione:

– Nessun altro conosce la chiave

– Un estraneo che non conoscesse K non saprebbe come modificare il messaggio

Page 6: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Problema della crittografia simmetrica La destinazione accetterà qualsiasi messaggio

Al destinatario potrebbe essere necessario un mezzo automatico per determinare se il testo ricevuto sia un testo legittimo e se provenga da A

Altrimenti:

Page 7: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Crittografia a chiave pubblica e autenticazione

L'uso ordinario della crittografia a chiave pubblica garantisce la segretezza ma non l'autenticazione

Chiunque potrebbe usare la chiave pubblica di Bob per crittografare un messaggio qualsiasi ed inviarlo a Bob sostenendo di essere Alice

Vediamo una tecnica di autenticazione alternativa...

Page 8: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Codice MAC

L'idea alla base dei codici MAC è quella che per garantire l'autenticazione dei messaggi sia necessario creare dell'informazione aggiuntiva all'interno della comunicazione.

Questo checksum crittografico prende il nome di codice MAC e deve poter essere calcolato a partire da una chiave segreta K, condivisa da entrambe le parti (Alice & Bob)

Funzione MACChiave segreta condivisaMessaggio di input

MAC = C (K,M)

Page 9: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Contesto e requisiti È da sottolineare che il nostro obiettivo è

consentire l'autenticazione dei messaggi Ora non siamo interessati alla segretezza, quindi i

nostri messaggi stanno viaggiando in chiaro sul canale di comunicazione

È importante perciò che Alice utilizzi una nuova chiave per ogni comunicazione

In questo modo Eve non può inviare nuovamente un messaggio di Alice, in quanto Bob non lo accetterebbe (Replay Attack)

Page 10: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

MAC: garantire la segretezza Alice vuole inviare un messaggio privato a Bob e

desidera che solo lui possa leggerlo. Inoltre vuole autenticare il messaggio

La scelta migliore è quella di crittografare il messaggio M e poi aggiungere il MAC al testo cifrato

In questo modo Bob può verificare il MAC prima di decrittare il messaggio:

Se questo fosse diverso dal MAC calcolato da Bob, allora non si perderebbe tempo a decrittare il messaggio

Page 11: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Impiego del MAC

Page 12: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Data Authentication Algorithm L'algoritmo può essere definito come una modalità CBC (Cipher

Block Chaining) di DES con un vettore di inizializzazione 0 (zero)

I dati (messaggi, record, file o programmi) da autenticare sono raggruppati in blocchi di 64 bit contigui: D

1,D

2,....,D

n

Utilizzando il DES, E e una chiave segreta K, il codice di

autenticazione DAC viene calcolato così:

O1 = E(K, D

1)

O2 = E(K, D

2O

1)

O3 = E(K, D

3O

2)

........

On = E(K, D

nO

n-1)

Page 13: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Data Authentication Algorithm

Il codice DAC è costituito dall'intero blocco On o dai primi M bit

del blocco, con 16 ≤ M ≤ 64

Page 14: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

HASH

Page 15: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

La funzione hash La funzione hash monodirezionale è una variante

del codice di autenticazione del messaggio MAC La funzione hash accetta come input un messaggio

M di lunghezza variabile e produce un output di lunghezza fissa chiamato codice hash H(M)

Il codice hash non utilizza una chiave ma è funzione solo del messaggio di input

Il codice hash è anche chiamato messagge digest.

Page 16: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

La funzione hash Il codice hash è una funzione che considera tutti i

bit del messaggio e fornisce una funzionalità di rilevamento degli errori: una variazione in uno o più bit del messaggio produce una variazione nel codice hash;

La figura seguente illustra i vari modi in cui si può utilizzare un codice hash per garantire l'autenticazione del messaggio:

Page 17: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.
Page 18: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Le funzioni hash Un valore hash h viene generato da una funzione H

con la seguente forma: h=H(M); Il valore hash viene aggiunto al messaggio alla

sorgente nel momento in cui il messaggio viene considerato corretto;

Alla ricezione si autentica tale messaggio ricalcolando il valore hash. Poichè la funzione hash non è segreta, è necessario un modo per proteggere il valore hash.

Page 19: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Proprietà delle funzioni hash H può essere applicata a un blocco di dati di

qualsiasi dimensione; H produce un output di lunghezza fissa; H(x) è relativamente facile da calcolare,

consentendo un'implementazione sia HW che SW; Per un determinato valore h è computazionalmente

impossibile trovare un valore x tale che H(x)=h. Questa proprietà è detta monodirezionalità;

Page 20: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Proprietà delle funzioni hash Per un determinato blocco x è computazionalmente

impossibile trovare un valore y diverso da x tale che H(y)=H(x). Questa proprietà è chiamata resistenza debole alle collisioni;

E' computazionalmente impossibile trovare una coppia (x,y) tale che H(y)=H(x). Questa proprietà è chiamata resistenza forte alle collisioni.

Page 21: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Semplici funzioni hash L'input viene considerato come una sequenza di blocchi di n bit. L'input

viene elaborato un blocco alla volta in modo iterativo per produrre un valora hash di n bit.

Una delle funzioni hash più semplici è l'operazione di OR esclusivo bit a bit applicata a ciascun blocco. L'operazione può essere espressa così: Ci=bi1bi2 bim

Questa operazione produce un semplice bit di parità per ciascuna posizione di bit. Questo codice è noto come controllo di ridondanza longitudinale. E' efficace come controllo di integrità dei dati per dati casuali. Ogni valore hash di n bit è ugualmente probabile. Pertanto la probabilità che un errore

nei dati alteri il valore hash è pari a 2-n.

Page 22: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Semplici funzioni hash

Con dati strutturati in modo più prevedibile,la funzione è meno efficace!

Un modo semplice per migliorare le cose consiste nell'applicare uno scorrimento circolare, ovvero una rotazione, sul valore hash dopo aver elaborato ciascun blocco;

Questo ha l'effetto di “casualizzare“ l'input ovvero di eliminare ogni regolarità presente nell'input.

Page 23: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

ATTACCHI

Page 24: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Paradosso del compleanno

La probabilità che in un gruppo di k persone ne esistano almeno due che sono nate lo stesso giorno aumenta velocemente con l’aumentare di k

Con k=23 si ottiene una probabilità del 50%

Page 25: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Tipi di attacchi

Gli attacchi possono essere divisi in due categorie: forza bruta

Si effettua una ricerca esaustiva dei possibili valori fino a trovare quello desiderato. L’attacco a compleanno rientra in questa categoria

analisi crittografica

Si sfruttano certe proprietà dell’algoritmo per svolgere attacchi diretti senza effettuare una ricerca esaustiva

Page 26: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Attacco a compleanno(1/2)

Esempio di un attacco basato sul paradosso del compleanno: Alice si prepara a “firmare” un messaggio m, aggiungendo il relativo codice

hash (lungo n bit) crittografato con la propria chiave privata

Eve genera varianti di m, tutte con lo stesso significato. Prepara inoltre un uguale numero di varianti del messaggio fraudolento da sostituire al vero messaggio

Per il paradosso del compleanno Eve ha una probabilità del 50% di trovare una coppia di messaggi (variante vera, variante fraudolenta) con lo stesso codice hash

Eve offre la variante valida ad Alice per la firma. Poiché le due varianti hanno lo stesso codice hash, produrranno la stessa firma; ciò permetterà ad Eve di sostituire il messaggio firmato da Alice con uno fraudolento senza dover conoscere la chiave segreta di Alice

Page 27: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Attacco a compleanno(2/2)

Page 28: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Concatenamento a blocchi

Tecnica di hash proposta da Rabin negli anni '70:si suddivide M in n blocchi di uguale lunghezza e si utilizza un algoritmo di cifratura simmetrico (es. DES) per calcolare H(M)

H0 = Valore inizialeH

i = E(M

i,H

i-1)

G = Hn

Questa tecnica è sicura nella misura in cui è sicuro l'algoritmo di cifratura utilizzato

Il messaggio funge da chiave per DES

É vulnerabile inoltre all'attacco Meet-in-the-middle

Page 29: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Attacco Meet-in-the-middle(1/2)

Si suppone che Eve abbia intercettato un messaggio in chiaro con relativo hash crittografato (sono noti M e E(K,H(M))

1. Usando l'algoritmo visto in precedenza si calcola il codice hash non crittografato G lungo m bit

2. Si costruisce il messaggio contraffatto Q1,Q

2,...,Q

n-2

3.Si calcola Hi = E(Q

i,H

i-1) per 1 ≤ i ≤ n-2

Page 30: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Attacco Meet-in-the-middle(2/2)

Si suppone che Eve abbia intercettato un messaggio in chiaro con relativo hash crittografato (sono noti M e E(K,H(M))

4. Si generano 2m/2 blocchi casuali, per ogni blocco X calcolo E(X,H

n-2). Si generano ulteriori 2m/2 blocchi casuali, per ogni

blocco Y calcolo D(Y,G), dove D è la funzione inversa di E

5. Per il paradosso del compleanno ho una probabilità del 50% di trovare un X e un Y per cui E(X,H

n-2) = D(Y,G)

6. Si costruisce infine M' = Q1,Q

2,...,Q

n-2,X,Y e si ottiene H(M')

= H(M) = G

Page 31: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Funzioni hash sicure(1/2)

La maggior parte delle funzioni hash crittografiche adottano la struttura iterata proposta da Merkle e Damgard all'inizio degli anni '80

Page 32: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Funzioni hash sicure(2/2)

Merkle e Damgard hanno dimostrato che se la funzione di compressione f è resistente alle collisioni allora lo è anche H (non vale il contrario)

Il problema della progettazione di funzioni hash sicure si è quindi ridotto alla progettazione di funzioni di compressione resistenti alle collisioni che operano su un input di dimensioni fisse

L'analisi crittografica studia il funzionamento della funzione f per cercare di ottenere collisioni con un'unica esecuzione di f

La tecnica più utilizzata è l'analisi differenziale che cerca di individuare come le modifiche sul messaggio influiscano sul codice hash

Page 33: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

SHA

Page 34: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Un po' di storia

L'algoritmo SHA (Secure Hash Algorithm) è stato sviluppato dal NIST (National Institute of Standards and Technology) e pubblicato nel 1993 come standard. (SHA-0)

Nel 1995 è stata emessa una versione aggiornata, chiamata normalmente SHA-1

SHA-1 viene considerato poco sicuro e nel 2002 NIST ha emesso una versione aggiornata dello standard; SHA-2

SHA-224, SHA-256, SHA-384, SHA-512

Page 35: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Confronto dei parametri SHA

SHA-1 SHA-224 SHA-256 SHA-384 SHA-512

Lunghezza del codice digest 160 224 256 384 512

Lunghezza del messaggio <264 <264 <264 <2128 <2128

Dimensioni del blocco 512 512 512 1024 1024

Lunghezza della parola 32 32 32 64 64

Numero di passi 80 64 64 80 80

Sicurezza 80 112 128 192 256

Page 36: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

La logica di funzionamento di SHA-512

Passo 1: aggiunta dei bit di riempimento Passo 2: aggiunta della lunghezza Passo 3: inizializzazione del buffer hash Passo 4: elaborazione del messaggio in

blocchi di 1024 bit Passo 5: output

Page 37: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 1: aggiunta dei bit diriempimento

Il messaggio viene esteso in modo che la sua lunghezza sia congruente a 896 modulo 1024

Questi bit vengono sempre aggiunti, anche se il messaggio è della lunghezza desiderata

Il numero di bit di riempimento sarà sempre compreso fra 1 e 1024

I bit di riempimento sono costituiti da un bit a “1” seguito da una sequenza di bit a “0”

Page 38: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 2: aggiunta della lunghezza

Al messaggio viene aggiunto un blocco di 128 bit che rappresenta la lunghezza del messaggio originario (prima dell'operazione di riempimento)

Il risultato dei primi due passi consiste in un messaggio di lunghezza multipla di 1024 bit

Page 39: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 3: inizializzazione delbuffer hash

Per contenere i risultati intermedi e finale della funzione hash viene utilizzato un buffer di 512 bit

Il buffer viene rappresentato come un insieme di otto registri da 64 bit (A,B,C,D,E,F,G,H)

Page 40: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 3: inizializzazione delbuffer hash

I registri vegono inizializzati con i seguenti valori (notazione esadecimale):

A = 6A09E667F3BCC908 B = BB67AE8584CAA73B C = 3CEF372FE94F82B D = A54FF53A5F1D36F1 E = 510E527FADE682D1 F = 9B05688C2B3E6C1F G = 1F83D9ABFB41BD6B H = 5BE0CD19137E2179

Page 41: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 4: elaborazione del messaggio in blocchi di 1024 bit

Page 42: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 4: elaborazione del messaggio in blocchi di 1024 bit

Page 43: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 4: elaborazione del messaggio in blocchi di 1024 bit

Il cuore dell'algoritmo è costituito da 80 fasi

Ogni fase prende come input il valore ABCDEFGH del buffer a 512 bit e aggiorna il contenuto

Ogni fase t utilizza il valore Wt di 64 bit

derivato dal blocco di 1024 bit in elaborazione (M

i)

Ogni fase utilizza una costante additiva K

t (0t

L'output dell'ultima fase viene aggiunto all'input della prima fase (H

i-1) per

produrre Hi

Page 44: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 4: elaborazione del messaggio in blocchi di 1024 bit

Page 45: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 4: elaborazione del messaggio in blocchi di 1024 bit

Page 46: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Passo 5: output

Dopo che sono stati elaborati tutti gli N blocchi da 1024 bit, l'output dello stadio N-esimo è il codice digest di 512 bit

Page 47: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Hash di esempio

Questo è un esempio di digest generato dallo SHA-1: “Cantami o diva del pelide Achille l'ira funesta” →

1F8A690B7366A2323E2D5B045120DA7E93896F47

Anche una minima variazione del messaggio genera un hash completamente differente a causa di una reazione a catena nota come effetto valanga

“Contami o diva del pelide Achille l'ira funesta” → E5F08D98BF18385E2F26B904CAD23C734D530FFB

Page 48: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Sha-3 (in sviluppo) Nel 2007 il NIST ha aperto un concorso per

scegliere quello che diventerà SHA-3 e prenderà il posto di SHA-*

Tutti i gruppi partecipanti hanno presentato la loro ricerca entro il 31 Ottobre 2008 e in questi mesi sono stati annunciati i 5 algoritmi finalisti

Per avere un vincitore dovremo attendere fino al 2012

Sono aperte le scommesse!

Page 49: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

WHIRLPOOL

Page 50: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Whirlpool

Funzione hash

Cifratura a blocchi come funzione di compressione

Codice hash di 512 bit

La cifratura a blocchi può essere implementata sia in software che con hardware

Page 51: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

La cifratura a blocchi

Page 52: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

La logica di Whirlpool

1. Aggiunta dei bit di riempimento

2. Accodamento della lunghezza

3. Inizializzazione della matrice hash

4. Elaborazione del messaggio in blocchi di 512 bit

Page 53: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Aggiunta dei bit di riempimento

• Il messaggio viene esteso in modo che la sua lunghezza sia un multiplo dispari di 256

• Operazione effettuata anche nel caso in cui il messaggio sia della lunghezza desiderata

• Un singolo bit di valore 1 seguito dal numero necessario di bit 0

Page 54: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Accodamento della lunghezza

• Viene aggiunto in coda al messaggio un blocco di 256 bit

• Intero senza segno di 256 bit

• Indica la lunghezza in bit del messaggio originale

Page 55: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Inizializzazione della matrice hash

Per memorizzare i risultati intermedi e finale della funzione hash viene utilizzata una matrice 8 x 8 byte, inizializzata con valori nulli

Page 56: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

La logica di Whirlpool

Page 57: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Algoritmo di cifratura a blocchi

Page 58: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Rappresentazione dei blocchi

L’ordinamento dei byte nella matrice è per riga

Page 59: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Substitute Byte

Tabella di lookup

Page 60: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Shift Columns

• Rotazione circolare verso il basso di ciascuna colonna

• La prima colonna non viene ruotata

• Ogni byte viene spostato da una riga a un’altra distante un multiplo di 8 byte

• Gli 8 byte di ogni riga vengono dispersi in 8 righe differenti

Page 61: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Mix Rows

Permette di ottenere la diffusione separatamente in ciascuna rigaOgni byte di una riga viene mappato in un nuovo valore che è funzione di tutti gli 8 byte della medesima rigaLa trasformazione è definita tramite moltiplicazione tra matrici:

B=AC

Page 62: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Mix Rows

Page 63: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Add Key

Calcola lo XOR bit-a-bit fra i 512 bit di CState e i 512 bit della chiave di fase

Page 64: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Espansione della chiave

• Ottenuta utilizzando la cifratura a blocchi stessa

• Usa una costante di fase che agisce da chiave di fase per l’espansione

• La costante per la fase r è una matrice RC[r] in cui solo la prima riga non è nulla

• Ogni elemento della prima riga è un mapping che utilizza la S-box

Page 65: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Prestazioni di Whirlpool

• Usa gli stessi blocchi funzionali di AES ed ha la medesima struttura

• Prestazioni e caratteristiche di occupazione di memoria simili ad AES

• Rispetto a SHA-512 richiede più risorse hardware ma raggiunge prestazioni notevolmente superiori

Page 66: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Riferimenti

W. Stallings. Crittografia e Sicurezza delle

Reti. McGraw-Hill, 2004.

Page 67: Elementi di Crittografia ________________________________________ MAC e FUNZIONI HASH _______________________________ Alessandro Zeppi Roberto Mottola.

Grazie per l'attenzione!