If you've been around the information security world long enough, chances are you've heard talk about how digital signatures provide the technology that may drive almost all modern commerce into the digital age. Imagine a world where business people and consumers alike can quickly and easily sign documents without picking up a pen or being in any particular physical location. It's a great opportunity for businesses everywhere (except, perhaps, for FedEx!).
Digital signature technology isn't really all that complicated. It's based upon the fundamental principles of public key cryptography. (For more on the differences between public and private key cryptosystems, see the tip Encryption and Electronic Mail.)
Let's imagine a scenario where Renee wants to place an order with Matthew's company and wishes to complete the entire process digitally. Matthew needs to be assured of three things:
- The contract bears Renee's authentic signature (i.e. it wasn't forged).
- The contract has not been modified since Renee signed it.
- Matthew can prove that the signature belongs to Renee in court, if necessary.
To create the digital signature, Renee first creates a message digest using an algorithm such as the Secure Hash Algorithm (SHA) or the Message Digest 5 algorithm (MD5). This is a short, unique summary of the entire contract. Message digest algorithms are designed so that they can't be reverse-engineered and it's not possible to find two messages that have identical digests. Once Renee creates the message digest, she then signs it using her private key.
When Matthew receives the contract, he uses the same message digest function to create his own version of the message digest based upon the text of the contract that he received. He then sets that aside and turns to the digital signature purportedly sent by Renee. He uses Renee's public key to decrypt the signature and retrieve the digest that Renee originally signed. (Remember: Renee used her private key to encrypt the message, so Matthew must use the corresponding public key.) He then compares this message digest with the one he generated himself. If the two digests are identical, the message is authentic.
Returning to the three assurances that Matthew wants:
- He knows the message is authentic because he verified the digest using Renee's public key, guaranteeing that it was signed using Renee's private key (known only to her). If it were signed using any other key, the decryption would have resulted in gibberish, and the digests would not have matched.
- He knows the contract has not been modified because the two digests matched. If the contract had been modified, the digest that he generated independently would be different from the one signed by Renee.
- He can prove that Renee signed the contract in court because nobody else had access to Renee's private key (assuming she kept her key secret!) and the above two points prove that the message was signed with that key.
And that's all there is to it! Digital signature technology is becoming extremely popular. It's supported by mainstream e-mail programs like Microsoft Outlook as well as specialized freeware cryptography systems like Pretty Good Privacy (PGP) designed for use with electronic mail. As the technology becomes more widely available, demand for its use will increase. Don't be surprised if people won't accept unsigned messages a few years down the road!
About the author
Mike Chapple, CISSP, currently serves as Chief Information Officer of the Brand Institute, a Miami-based marketing consultancy. He previously worked as an information security researcher for the U.S. National Security Agency. His publishing credits include the TICSA Training Guide from Que Publishing, the CISSP Study Guide from Sybex and the upcoming SANS GSEC Prep Guide from John Wiley. He's also the About.com Guide to Databases.