ABSTRACT

In the private-key systems discussed in the previous chapter, the shared private key for encryption and decryption had to be transmitted between sender and receiver, and security was an issue in transmitting the key. The Diffie-Hellman Key Exchange introduces the notion of a public-key system, in which public information enables the sender and receiver each to generate their own copy of the shared private key. This private key can then be used to encrypt and decrypt messages in any symmetric system. In this chapter we will discuss in detail two public-key systems (RSA and ElGamal) that extend the Diffie-Hellman idea so that different keys can be used for encryption and decryption; a publicly available key is used for encryption, whereas a private key is used for decryption. The RSA and ElGamal systems, and a variation of ElGamal based on elliptic curves, are all public-key asymmetric systems achieving a high level of security. These systems owe their security to their mathematical underpinnings, based on one-way functions, modular arithmetic, and prime numbers.