Cryptographic hash functions play a fundamental role in modern cryptography. While related to conventional hash functions commonly used in non-cryptographic computer applications – in both cases, larger domains are mapped to smaller ranges – they differ in several important aspects. Our focus is restricted to cryptographic hash functions (hereafter, simply hash functions), and in particular to their use for data integrity and message authentication. | This is a Chapter from the Handbook of Applied Cryptography by A. Menezes P. van Oorschot and S. Vanstone CRC Press 1996. For further information see hac CRC Press has granted the following specihc permissions for the electronic version of this book Permission is granted to retrieve print and store a single copy of this chapter for personal use. This permission does not extend to binding multiple chapters of the book photocopying or producing copies for other than personal use of the person creating the copy or making electronic copies available for retrieval by others without prior permission in writing from CRC Press. Except where over-ridden by the specihc permission above the standard copyright notice from CRC Press applies to this electronic version Neither this book nor any part may be reproduced or transmitted in any form or by any means electronic or mechanical including photocopying microhlming and recording or by any information storage or retrieval system without prior permission in writing from the publisher. The consent of CRC Press does not extend to copying for general distribution for promotion for creating new works or for resale. Specihc permission must be obtained in writing from CRC Press for such copying. @1997 by CRC Press Inc. Chapter Hash Functions and Data Integrity Contents in Brief Classification and Basic constructions and general Unkeyed hash functions MDCs .338 Keyed hash functions MACs .352 Data integrity and message Advanced attacks on hash Notes and further Introduction Cryptographic hash functions play a fundamental role in modern cryptography. While related to conventional hash functions commonly used in non-cryptographic computer applications - in both cases larger domains are mapped to smaller ranges - they differ in several important aspects. Our focus is restricted to .