MAC Algorithms (Message Authentication Codes)

Links


CBC-MAC-DES-FIPS113 MAC
Description:
If EK denotes DES encryption, and the input message is split into blocks M0,... Mn-1 (using padding with zeroes for the last block), then:
References:
Key length:
64 bits as encoded; 56 bits excluding parity bits.
Output length:
Minimum 32, maximum 64, default 64 bits.
Comment:
Security comments:


CBC-MAC(cipher) MAC Construction
Description:
If EK denotes encryption with the block cipher named cipher, and the input message is split into blocks M0, ... Mn-1 (using PKCS #7-style padding for the last block), then:
References:
Parameters:
Key length:
As defined by the cipher.
Output length:
Minimum 32 bits, maximum equal to the cipher block size. The default output length is 64 bits, or half of the cipher block size rounded up to the next multiple of 8 bits, whichever is greater.
Missing information:
Test vectors.
Comment:
The input is padded to a multiple of the cipher's block length by using PKCS #7-style padding (as defined by the PKCSPadding algorithm for block ciphers).
Security comments:


XCBC-MAC(cipher) MAC Construction
Description:
The key K is split into three parts, K1 (the key for the underlying block cipher), and masking keys K2 and K3. The length of each masking key is equal to the cipher block size; that is, the length of the key for the underlying cipher will be length(K) - 2 × blocksize. Then the MAC is calculated as described in Black and Rogaway's paper.
References:
Parameters:
Key length:
As defined by the cipher, plus 2 × blocksize.
Output length:
Minimum 32 bits, maximum equal to the cipher block size. The default output length is 64 bits, or half of the cipher block size rounded up to the next multiple of 8 bits, whichever is greater.
Security comments:


HMAC(digest) MAC Construction
Designers:
Mihir Bellare, Ran Canetti, Hugo Krawczyk, Adi Shamir
Published:
June 1996
Aliases:
References:
Parameters:
Key length:
Any multiple of 8 bits that does not cause the maximum input length for the MessageDigest to be exceeeded. Default 128 bits.
Output length:
Minimum 32 bits, maximum equal to the message digest output length. The default is equal to the message digest output length.


MD5-MAC MAC
Designers:
Bart Preneel, P.C. van Oorschot
Description:
The MAC algorithm obtained by applying the MDx-MAC method to MD5 (MDx-MAC is not defined as a construction, since it involves changes to the internal structure of the message digest being used).
Published:
1995
References:
Key length:
Minimum 8, maximum 128, multiple of 8 bits; default 128 bits.
Output length:
Minimum 32, maximum 128, default 64 bits.
Security comment:
MD5-MAC is claimed to require approximately 264 operations to forge a message (increasing the Output length property from the default, 8 bytes, does not necessarily improve this).


RIPEMD-128-MAC MAC
Designers:
Bart Preneel, P.C. van Oorschot
Description:
The MAC algorithm obtained by applying the MDx-MAC method to RIPEMD-128 (MDx-MAC is not defined as a construction, since it involves changes to the internal structure of the message digest being used).
Published:
1995
References:
Key length:
Minimum 8, maximum 128, multiple of 8 bits; default 128 bits.
Output length:
Minimum 32, maximum 128, default 64 bits.
Security comment:
RIPEMD-128-MAC is claimed to require approximately 264 operations to forge a message (increasing the Output length property from the default, 8 bytes, does not necessarily improve this).


RIPEMD-160-MAC MAC
Designers:
Bart Preneel, P.C. van Oorschot
Description:
The MAC algorithm obtained by applying the MDx-MAC method to RIPEMD-160 (MDx-MAC is not defined as a construction, since it involves changes to the internal structure of the message digest being used).
Published:
1995
References:
Key length:
Minimum 8, maximum 128, multiple of 8 bits; default 128 bits.
Output length:
Minimum 32, maximum 160, default 80 bits.
Security comment:
RIPEMD-160-MAC is claimed to require approximately 280 operations to forge a message (increasing the Output length property from the default, 10 bytes, does not necessarily improve this).


? SSL3-MAC(digest) MAC Construction
Designers:
Mihir Bellare, Ran Canetti, Hugo Krawczyk
Alias:
"SSL3MAC"
References:
Parameters:
Key length:
Any multiple of 8 bits that does not cause the maximum input length for the MessageDigest to be exceeeded.
Output length:
Minimum 32 bits, maximum equal to the message digest output length. The default is equal to the message digest output length.
Comment:
This is an early version of HMAC, which should now be used in preference (except for compatibility with SSL version 3). The difference is that in SSL3-MAC, the padding strings 'ipad' and 'opad' are appended to the key, whereas in HMAC, they are exclusive-or'd with the zero-extended key.


Two-Track-MAC MAC
Designers:
Bart Van Rompay, Bert den Boer
Published:
November 2000
Alias:
"TTMAC"
References:
Key length:
160 bits.
Output length:
Minimum 64, maximum 160, multiple of 32 bits. Default 160 bits.


UMAC16[(signedFlag,preferredEndian,
l1KeyLen,outputLen,cipher)]
MAC Construction
Designers:
Theodore Krovetz, John Black, Shai Halevi, A. Hevia, Hugo Krawczyk, Phillip Rogaway
Published:
November 2000
Description:
This is the version of UMAC submitted to the NESSIE project (UMAC 2000), with the 16-bit parameter set. The default parameters are signedFlag = S, preferredEndian = LE, l1KeyLen = 1024, outputLen = 8, cipher = Rijndael.

Note that the signed default is different from UMAC32.

References:
Key length:
As block cipher.
Output length:
As given by outputLen parameter.
Parameters:


UMAC32[(signedFlag,preferredEndian,
l1KeyLen,outputLen,cipher)]
MAC Construction
Designers:
Theodore Krovetz, John Black, Shai Halevi, A. Hevia, Hugo Krawczyk, Phillip Rogaway
Published:
November 2000
Description:
This is the version of UMAC submitted to the NESSIE project (UMAC 2000), with the 32-bit parameter set. The default parameters are signedFlag = U, preferredEndian = LE, l1KeyLen = 1024, outputLen = 8, cipher = Rijndael.

Note that the unsigned default is different from UMAC16.

References:
Key length:
As block cipher.
Output length:
As given by outputLen parameter.
Parameters:


× XMACWithDigest(digest[,seedLength]) MAC Construction
Designers:
Mihir Bellare, R. Guérin, Phillip Rogaway
Description:
This algorithm covers both the XMACC and XMACR variants described in the "XOR MACs" paper, using a pseudo-random function constructed from a message digest compression function.
Published:
October 1995
References:
Key length:
Minimum 32 bits, maximum 16 bits less than the message digest output length, multiple of 8 bits. The default is 128 bits or the maximum length, whichever is shorter.
Output length:
Minimum 32 bits, maximum equal to the message digest output length, default 80 bits. This does not include the length of the seed.
Parameters:
Missing information:
Comments:
Security comment:
When using the counter variant of XMAC, it is vital to ensure that the counter never repeats for two messages with the same key. One way of doing this is to save the current value of the counter after it is finished with, and restore it when the key is re-used with a different Mac object; another is to avoid re-using keys entirely.


× PCSWithDigest(digest) MAC Construction
Designers:
Dan Bernstein [[link to home page]]
Description:
This algorithm specifies "Protected Counter Sum" with the pseudo-random function f constructed from a message digest compression function (rather than the surf function described in Bernstein's paper).
Published:
October 1995
References:
Key length:
Minimum 32 bits, maximum 16 bits less than the message digest output length, multiple of 8 bits. The default is 128 bits or the maximum length, whichever is shorter.
Output length:
Minimum 32 bits, maximum equal to the message digest output length, default 80 bits. This does not include the length of the seed.
Parameters:
Missing information:
Comments:
Security comment:
Note that the input to the PRF will be larger than in Bernstein's paper. The security proofs are not significantly affected by this.

Alleged MACs


Valid HTML 4.0 Valid CSS Copyright and trademarks