x and any encipherment y,
p(x|y)=p(x).
This implies that there must be for any message, cipher pair at least one key that connects them. Hence:
|K| >= |C| >= |P|
In the boundary case of equality we have the following theorem:
Theorem(Shannon perfect secrecy)
Suppose a cryptosystem with |K|=|C|=|P|. The
cryptosystem has perfect secrecy if and only if
1/|K|,
x and ciphertext
y there is a unique key k
such that e_k(x)=y.
Proof
Suppose perfect secrecy, i.e. p(x|y)=p(x) for all
x and y. Unless p(x)=0, there
must be enough keys so that any ciphertext can be decoded as a given
plaintext, that is, |K|>=|C|, but by supposition,
equality must hold. Hence there is a unique key for every x
y pair.
Suppose keys k_1, k_2, ... are the unique keys such that
d_k_i(y)=x_i.
Using Bayes law:
p(x_i|y) = ( p(y|x_i) p(x_i) ) / p(y)
Using the assumption of perfect secrecy, we have:
p(y|x_i) = p(y)hence each
k_i must occur with the same probability
We now assume that p(k)=1/|K| and that there is a
unique key relating any plaintext-ciphertext pair.
p(x|y) = ( p(y|x) p(x) ) / p(y)
By the uniqueness of keys, p(y|x)=1/|K|. We also
calculate
p(y) = sum_k p(k) p(d_k(y))
= 1/|K| sum_k p(d_k(y))
= 1/|K| sum_x p(x)
= 1/|K|
Cancelling the 1/|K| gives the result p(x|y) = p(x),
that is, perfect secrecy.