Our analysis considers any generic attack on MAC schemes (rather than showing security against a
partial list of possible attacks) and shows that such an attack succeeds only if the underlying hash
function is weak. Moreover, this relation between the assumed properties of the hash function and
the security of the resultant MAC mechanism can be tightly quantified.
In summary, what this analysis says is that if significant weaknesses are ever found in the MAC
schemes proposed here, then not only does the underlying hash function need to be dropped from
these particular usages, but also it must be dropped from a wide range of other standard and
popular usages to which these functions are now subject. Moreover, our constructions require from
the hash function significantly weaker properties than standard collision-freeness. In particular,
current successful methods for finding collisions in MD5 [Do1, Do2] seem inapplicable to breaking
our schemes when the hash function in use is MD5 [Do3].
Efficiency. Our constructions use the cryptographic hash functions in a very simple way. In
particular, the performance degradation relative to the underlying hash scheme is minimal. This
is motivated by the use of these functions in basic applications like IP (Internet Protocol) security
[At1, At2] where the performance cost of such a function influences the computational and network
performance of many other applications.
Black box usage of hash functions. The constructions and analysis presented here are free
from any dependency on the peculiarities of the underlying hash function. We only exploit the
general structure of functions like MD5 and SHA-1, as being built on top of a basic compression
function which works on fixed length messages, and is then iterated multiple times in order to
process variable length inputs (see Section 2). Therefore, the underlying hash function (or the
corresponding compression function) can be seen as a module that can be easily replaced in case
serious weaknesses are found in the hash function, or when new (possibly, more secure or more
efficient) hash functions are designed. This replaceability property is fundamental given the limited
confidence earned so far by these functions.
2
Besides the security advantage, there is a practical advantage to MAC schemes that use the
underlying hash functions as a “black-box” (ie. by applying the hash function, or compression
function, “as is”, without any modifications). Namely such schemes permit the immediate use of
existing and widely available library code that implements these functions. They also permit use
of hardware-based implementations of the underlying hash scheme. Our NMAC construction uses
the compression function as a black-box; our HMAC construction, even more conveniently, uses
only calls to the iterated hash function itself.
1.4 A closer look
Before getting into the more technical aspects of the paper we further discuss our approach and
results.
Keying hash functions. The first obstacle that one faces when coming to design a MAC scheme
based on a cryptographic hash function (we limit ourselves, from now on, to “MD5-like” iterated
hash functions, as described above), is that the latter usually do not use any cryptographic key.
Rather, they are public functions that anyone can compute without the involvement of keys and
secrets. This is in sharp contrast to a MAC function, which uses a secret key as an inherent part of
its definition. Our approach to solve this problem is to key these hash functions through their initial
2
It is worth observing that in the case of message authentication, as opposed to encryption, the breaking of a
MAC does not compromise traffic authenticated in the past with the broken MAC. One can avoid the vulnerabilities
created by new attacks, by replacing the underlying hash scheme as soon as this is broken.
4