Codi d'autenticació de missatge

De la Viquipèdia, l'enciclopèdia lliure

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]