Data Authentication Algorithm

Introduzione

L'algoritmo Data Authentication Algorithm è stato pubblicato dal NIST nel 1985 [1] e fa riferimento ad un meccanismo per creare una stringa di autenticazione (MAC). L'algoritmo DAA genera una stringa di dati di tipo CMAC, ovvero un messaggio di autenticazione ottenuto tramite un algoritmo di crittografia simmetrica. In particolare, il DAA prevede l'impiego dell'algoritmo DES.

L'algoritmo genera a partire da un gruppo di dati e una chiave crittografica K un blocco di dati lungo 64 bit che può essere impiegato per l'autenticazione del gruppo di dati.

Descrizione

I dati di ingresso sono suddivisi in blocchi da 64 bit (8 byte). L'ultimo blocco, se possiede un numero di bit inferiore a 64, viene completato con bit di valore 0. Siano D1, D2, …, Dn tali blocchi di dati.

Sia M' = DES(M, K) l'operazione di cifratura di un blocco di dati M tramite l'algoritmo DES e la chiave K, con M' il blocco di dati cifrato. Sia M che M' possiedono una lunghezza di 64 bit.

Sia M'1 il blocco di dati cifrato relativo al primo blocco D1, ovvero M'1 = C(D1, K). In seguito si calcola l'operazione di xor tra M'1 e il secondo blocco D1 e si cifra il risultato per ottenere il secondo blocco di dati M'2.

In generale si ha M'i = C(Di xor M'i-1, K). Si prosegue calcolando i valori di M' successivi fino a giungere all'ultimo blocco, ovvero: M'n = C(Dn xor M'n-1, K).

Quindi:
M'1 = DES(D1, K)
M'2 = DES(M'1 xor D2, K)

M'n = DES(M'n-1 xor Dn, K)

M'n rappresenta il codice MAC. È possibile scegliere un sottoinsieme dei bit (a partire da sinistra). Il numero di bit del MAC dovrebbe essere compreso tra 16 e 64, e deve essere un multiplo di 8.

Bibliography
1. NIST, FIPS PUB 113, "Computer Data Authentication", Sito web: http://www.itl.nist.gov/fipspubs/fip113.htm
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License