next up previous
Next: RSA Up: PGP Previous: PGP

Public/Private Key Cryptography

This is a system for communicating accross a channel that ensures that only the intended recipient can read the message. We start by generating a public key and a private or secret key. We will consider a communication between two people. It is traditional to call these two people ``Alice'' and ``Bob''. It doesn't take a great deal of thought to realise that this is so we can call their public keys $ P_A$ and $ P_A$ and their secret keys $ S_A$ and $ S_B$.

Now assume that all permissable messages form a set (prehaps the set of all finite-length bit sequences). We now define 4 one-one functions on this set (i.e. permutations). The function corresponding to Alice's public key $ P_A$ we will call $ P_A()$ and the one corresponding to her secret key $ S_A$ we will call $ S_A()$. These functions are also inverses of each other. So given a message M:

$\displaystyle M = S_A(P_A(M)) $

(The functions relating to Bob's keys are predictably named $ P_B()$ and $ S_B()$ and are also inverses).

It is now clear to see how the system can work. Suppose Bob has message $ M$ and he wants to pass it securely to Alice. Since he (along with the rest of the world) knows Alice's public key $ P_A$ he is able to calculate $ C = P_A(M)$. He can now safely pass C to Alice across the insecure channel. Once she has got $ C$ Alice can calculate $ M = S_A(C)$ without any difficulty since she knows $ S_A$ (the inverse function to $ P_A$). No-one else (Bob included) can do this calculation since they don't possess $ S_A$.

Of course there is still the problem of choosing suitable functions. Remember we must be able to happily reveal $ P_A$ and this $ P_A()$ while being more than happy that it is sufficiently impractical to calculate it's inverse function $ S_A()$ (or equally $ S_A$) from it.


next up previous
Next: RSA Up: PGP Previous: PGP
Stephen White
2000-03-28