A Good Hash Function is Hard to Find, and Vice Versa Secure hash functions are the unsung heroes of modern cryptography. Introductory courses in cryptography often leave them out --- since they don't have a secret key, it is difficult to use hash functions by themselves for cryptography. In addition, most theoretical discussions of cryptographic systems can get by without mentioning them. However, for secure practical implementations of public-key ciphers, digital signatures, and many other systems they are indispensable. In this talk I will discuss the requirements for a secure hash function and relate my attempts to come up with a "toy" system which both reasonably secure and also suitable for students to work with by hand in a classroom setting.