Codi d'autenticació de missatge
En criptografia, un codi d'autenticació de missatge (MAC, en anglès) és una breu informació emprada per autenticar un missatge, és a dir, per confirmar que el missatge prové de l'emissor que diu ser-ho (autenticitat) i que no ha estat modificat en trànsit (integritat).
Definició
[modifica]Els valors MAC necessiten per al seu càlcul una clau privada (o simètrica) K, que només coneguin remitent i destinatari, però no els atacants. Matemàticament, es defineix com una funció que pren dos arguments: una clau K de mida fixa i un missatge M de longitud arbitrària. El resultat és un codi MAC de longitud fixa:
- MAC = C K (M)
on:
- M és un missatge de longitud arbitrària.
- C K és la funció que transforma el missatge en un valor MAC i que utilitza una clau secreta K com a paràmetre.
- MAC és el valor MAC calculat de longitud fixa.
Si el valor MAC enviat coincideix amb el valor que el destinatari calcula, aquest pot garantir que:
- El missatge no ha estat alterat.
- El missatge prové del remitent indicat en el missatge.
- Si el missatge inclou un nombre de seqüència, que el missatge segueix la seqüència correcta.
Funció MAC ideal
[modifica]Igual que una funció hash ideal, es defineix la funció MAC ideal com un mapeig aleatori de tots els possibles valors del missatge d'entrada M en sortides de mida de n bits.
Propietat de seguretat de les funcions MAC
[modifica]Sigui n la mida del resultat de la funció MAC, i x el grau d'incertesa, mesurat en bits, que té l'atacant sobre el valor de la clau K utilitzada en la funció C K. Un atac sobre la funció MAC es defineix com una forma no trivial de distingir aquesta funció C K de la funció C K ideal en menys de 2 min (n, x) passos.
Tipus de funcions MAC
[modifica]Actualment, hi ha 3 grans grups de funcions MAC:
- CBC-MAC: La idea darrere d'aquest algorisme és la de convertir un algorisme de xifrat simètric en una funció MAC. El funcionament bàsic consisteix a xifrar el missatge utilitzant un algorisme en mode CBC i llençar tot el resultat de text xifrat a excepció de l'últim bloc.
- HMAC: Atès que una funció MAC és un mapatge aleatori, i que les funcions hash es comporten com a tals, podem explotar la idea d'utilitzar una funció hash per implementar una funció MAC. L'opció més popular avui en dia és la d'usar HMAC-SHA-256.
- UMAC: Les funcions UMAC parteixen de la premissa que l'atacant necessita interaccionar amb el sistema per comprovar si el resultat MAC que ha generat és vàlid o no. És a dir, no existeix res semblant a un atac exhaustiu off-line contra les funcions MAC. Així, argumenten que es pot reduir el resultat a només 64 bits. Tanmateix, no hi existeix cap norma ben definit de funcions MAC com passa amb les funcions hash, la qual cosa té efectes contraproduents a llarg termini des del punt de vista de la implementació.
Principi de Horton
[modifica]El principi de Horton estableix que s'ha d'autenticar el significat del missatge, i no el codi del missatge.
Vegeu també
[modifica]- Data Authentication Code, un algorisme de càlcul de valors MAC de ANSI basat en el cifrador simètric DES.
- UMAC
- HMAC
- CMAC
- Poly1305-AES
- Poly1305-AED
- Hash