Die gebräuchlichsten Verfahren der Generierung von MACs sind mittlerweile standardisiert, z. B. in [ISO02b]. Dabei handelt es sich um den CBC-MAC und den HMAC mit kryptographischen Hashfunktionen wie MD5, SHA-1 oder RIPEMD-160.
Beim CBC-MAC handelt es sich um ein schon relativ lange in Benutzung befindliches Verfahren zur
Erzeugung von MACs [ISO99]. Dabei wird eine Blockchiffre im CBC-Modus genutzt, deren
Zwischenergebnisse jedoch nicht weiterverwendet. Statt dessen wird nur das Resultat der letzten
Verschlüsselung (immer mit dem Schlüssel ) als kryptographische Prüfsumme (MAC) über die
Nachricht
interpretiert. Folgende Formel beschreibt jeden Einzelschritt:
Abbildung 4.1 stellt das gesamte Verfahren anschaulich dar. Erwähnt werden soll noch, daß
Der XCBC-MAC (Extended MAC) geht im Original auf [BR03] zurück, hat seine Popularität aber wahrscheinlich IPSec zu verdanken [FH03]. Er behebt eine Schwachstelle des CBC-MAC, die nur bei Nachrichten variabler Länge in Erscheinung tritt [MvV92, Example 9.62]. Die Bildungsvorschrift entspricht weitestgehend dem CBC-MAC, unterscheidet sich jedoch wesentlich bei der Behandlung des letzten Blocks (siehe Abbildung 4.2).
Die Einzelschritte sind:
gerechnet.
Der HMAC einer Message wird mittels einer kryptographischen
Hashfunktion46
berechnet [HK97, ISO02b, NIS07]. Dazu geht man in folgenden Schritten vor:
Abbildung 4.3 veranschaulicht das gesamte Verfahren.