As seen numerous times before, many encryption mechanisms and even some key exchange mechanisms, such as IKE rely on pre-shared symmetric secrets. Usage of symmetric keys for trust establishment introduces serious scalability problems, since it requires that each node pair in the system share a unique secret. A network consisting of n nodes, may have to potentially deal with O(n^{2}) keys. In a large network, such a large number of keys can pose a serious key management problem. On the other hand, using public-private key pairs solves many of the scalability problems related to manually distributed pairwise secrets: each node often needs to only hold one key pair, leading to n key pair for a network of n nodes. However, using public keys has its own set of issues:

When Alice sends a message to Bob, Alice uses Bob's public key to encrypt the message, so that only Bob can, with his private key, decrypt the message and get hold of its content. However, this assumes that Alice knows Bob's public key beforehand. Either, Bob must have sent his public key to Alice, or, Alice, must have downloaded it from some place. At any rate, Alice must have a way of being able to trust the fact that the public key she has received does actually belong to Bob.

When we say that Alice sends a message encrypted with Bob's public key, one important fact that is usually forgotten is that this by itself does not protect the integrity of the message. Anybody could have ...

Start Free Trial

No credit card required