ABSTRACT

This chapter looks beyond the problem of secure communication that has occupied, and considers a cryptographic primitive with many applications: cryptographic hash functions. Collision-resistant hash functions have numerous uses, including another approach—standardized as HMAC—for domain extension for message authentication codes. Hash functions can be viewed as lying between the worlds of private- and public-key cryptography. Hash functions have become ubiquitous in cryptography, and they are often used in scenarios that require properties much stronger than collision resistance. Hash functions are simply functions that take inputs of some length and compress them into short, fixed-length outputs. Collision-resistant hash functions are similar in spirit; again, the goal is to avoid collisions. Cryptographic hash functions are designed with the explicit goal of being collision resistant. Using keyed hash functions solves this technical issue since it is impossible to hardcode a collision for every possible key using a reasonable amount of memory.