23.4.1 Il MAC - Message Authentication Code
Il MAC (Message Authentication Code) è un valore, talvolta riferito anche come checksum,
che è utilizzato come codice di autenticazione di un messaggio, assieme ad una chiave privata.
A differenza delle firme digitali, i MAC sono generati e verificati con la stessa chiave
(simmetrica). Esistono 4 tipi di MAC, di seguito descritti.
-
MAC unconditionally secure
Il MAC si basa sulla cifratura del messaggio per mezzo di una chiave. Il mesasggio
cifrato si autentica per il fatto che nessun altro conosce la chiave.
-
MAC hash function-based (HMAC)
Il MAC si basa sull’utilizzo di una chiave e di una funzione hash. Il messaggio
viene dato in input ad una funzione hash che genera il message digest relativo,
quindi un algoritmo di cifratura, cifra il message digest per mezzo di una
chiave. Il valore così ottenuto viene aggiunto al messaggio stesso. Chi riceve il
messaggio può verificarne l’integrità decifrando il HMAC con l’apposita chiave
e confrontando il message digest ricevuto con quello calcolato sul momento
relativamente al messaggio in chiaro ricevuto.
-
MAC stream cipher-based
Il messaggio viene suddiviso in due sottomessaggi ed ogni sottomessaggio è
inserito in un LFSR (Linear Feedback Shift Register), ovvero un registro che ad
ogni colpo di clock sposta tutti i bit verso le cifre più significative ed alcuni degli
output (tap) sono combinati in XOR in modo da realizzare un feedback..
Il MAC è lo stato finale dei due LFSR.
-
MAC block cipher-based
Il messaggio viene cifrato con un algoritmo simmetrico a blocchi (es. DES-CBC).
Il valore dell’ultimo blocco viene aggiunto al messaggio ed utilizzato come MAC.