This document discusses secure hashing algorithms used for authentication rather than encryption. It provides an overview of the requirements for authentication including preventing masquerading, content modification, sequence modification, and timing modification. It then describes the basic theory behind hashing including producing a message digest, ensuring it is computationally infeasible to find two messages with the same digest, and being unable to recreate a message from its digest. Finally, it details the framework of the SHA-1 hashing algorithm including preprocessing the message, initializing buffers, processing the message in blocks, and outputting the final digest.