Digital signatures provide a solution to the problem of message authentication, and let Bob accurately identify the author of messages he receives. For example, with digital signatures, Bob can differentiate between messages sent by Alice and messages forged by Eve. In this chapter, we explain what digital signatures are, how they work, and how you use them. We also extend the .NET Framework by adding support for digital signatures to the implementation of the ElGamal algorithm that we introduced in Chapter 15.