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