A basic explanation of hash functions
Hash functions are widely used in cryptography for many applications. As we have already seen in Chapter 3, Asymmetric Encryption Algorithms, one of these applications is blinding an exchanged message when it is digitally signed. What does this mean? When Alice and Bob exchange a message using any asymmetric algorithm, in order to identify the sender, a signature is commonly required. Generally, we can say that the signature is performed on the message [M]. For reasons we will learn later, it’s discouraged to sign the secret message directly, so the sender has to first transform the message [M] into a function (M’), which everyone can see. This function is called the hash of M, and it will be represented in this chapter with these notations: f(H) or h[M].
We will focus more on the relations between hashes and digital signatures later on in this chapter. However, I have inserted hash functions in this chapter alongside digital...