Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lezione 26: Algoritmi HMAC e CMAC - Coggle Diagram
Lezione 26: Algoritmi HMAC e CMAC
HMAC
Funzioni hash sono più veloci nell'implementazione software, esistono molte librerie disponibili e
non si basano su una chiave segreta
La sostituzione delle funzioni hash è facile
L'analisi della sua robustezza dipende dalle caratteristiche di sicurezza proprie della funzione hash incorporata
Le proprietà di sicurezza della funzione hash utilizzata all'interno di HMAC sono trasferite anche all'algoritmo HMAC stesso
Si esegue lo XOR tra
K+
e il valore
ipad
per produrre il blocco
Si
di b bit
K+
=
K
riempita di con una serie di 0 a sinistra così da avere la lunghezza di b bit
ipad
= byte che rappresenta il numero 36 che viene ripetuto per il numero di byte dato da b/8
Il messaggio
M
viene concatenato con
Si
Si applica la funzione di hash tra
M
e
IV
(valore di input) ottenendo n bit che vengono estesi a b bit
Si esegue lo XOR tra
K+
e il valore opad per produrre il blocco
So
si b bit
opad
= byte che rappresenta il numero 5C che viene ripetuto per il numero di byte dato da b/8
Si concatena
So
con il codice hash esteso
Si applica di nuovo la funzione hash tra i due blocchi concatenati sopra e
IV
per ottenere il codice HMAC
Lo XOR fa in modo che cambino stato metà dei bit di K+
Questo perché ipad è composto da 4 bit = 1 e 4 bit = 0 ripetuti per b/8 volte
La chiave viene integrata nel messaggio che va in input alla funzione hash (la funzione hash non ha chiave)
Far passare
Si
(concatenazione tra chiave e ipad) e
So
(concatenazione tra chiave e opad) nella funzione hash equivale a generare due chiavi pseudocasuali da K
CMAC
È basato su DES o AES e esistono due diversi tipi di funzionamento a
seconda che il messaggio sia o meno multiplo intero della lunghezza b del blocco di cifratura
Dalla chiave K vengono
derivate due chiavi differenti K1 e K2
entrambe di b bit
K1
si usa se il messaggio è multiplo intero di b
K2
si usa nel caso non multiplo
L'uscita dell'operazione di cifratura viene messa in XOR con il blocco successivo
Nel passaggio finale lo XOR è triplo in quanto viene aggiunta anche la chiave K1 o K2
Dopo la crittografia finale vengono presi i
Tlen
bit più significativi che corrispondono al codice CMAC (T)
Il blocco finale, nel caso di messaggio non multiplo intero del blocco di cifratura, verrà riempito a destra con un bit 1 e tanti bit 0 per arrivare alla lunghezza del blocco b