The what, how, and why of digital signatures
When we covered hashing in Chapter 3, File and Password Hashing with Node.js, we mentioned that we were going to be leveraging hashing functions in virtually every part of this book, and as we're looking at the last class of operations – digital signatures – we're certainly staying true to our word once again. In a sense, we could even say that digital signatures are an extension of hashes!
Hashes and digital signatures
Let's start with an example: you are sending a message to your bank, asking them "Please wire $100 to Alice." You want to be sure that the message doesn't get corrupted in transit (the difference between "$100" and "$500" is just one flipped bit!), so you attach a hash of the message. As we saw in Chapter 3, File and Password Hashing with Node.js, one of the main purposes of hashes is to guarantee the integrity of a message: a change in even a single bit...