HMAC is the internet standard for message authentication [BCK96,KBC97]. What distinguishes HMAC from other MAC algorithms is that it provides proofs of security assuming that the underlying cryptographic hash (e.g. SHA-1) has some reasonable properties. HMAC is efficient for long messages, however, for short messages the nested constructions results in a significant inefficiency. For example to MAC a message shorter than a block, HMAC requires at least two calls to the compression function rather than one. This inefficiency may be particularly high for some applications, like message authentication of signaling messages, where the individual messages may all fit within one or two blocks. Also for TCP/IP traffic it is well known that a large number of packets (e.g. acknowledgement) have sizes around 40 bytes which fit within a block of most cryptographic hashes. We propose an enhancement that allows both short and long messages to be message authenticated more efficiently than HMAC while also providing proofs of security. In particular, for a message smaller than a block our MAC only requires one call to the compression function.
[1]
Larry Carter,et al.
New Hash Functions and Their Use in Authentication and Set Equality
,
1981,
J. Comput. Syst. Sci..
[2]
Silvio Micali,et al.
A Digital Signature Scheme Secure Against Adaptive Chosen-Message Attacks
,
1988,
SIAM J. Comput..
[3]
Ronald L. Rivest,et al.
The MD5 Message-Digest Algorithm
,
1992,
RFC.
[4]
Mihir Bellare,et al.
The Security of Cipher Block Chaining
,
1994,
CRYPTO.
[5]
Bart Preneel,et al.
MDx-MAC and Building Fast MACs from Hash Functions
,
1995,
CRYPTO.
[6]
Hugo Krawczyk,et al.
Keying Hash Functions for Message Authentication
,
1996,
CRYPTO.
[7]
Hugo Krawczyk,et al.
HMAC: Keyed-Hashing for Message Authentication
,
1997,
RFC.