I'm looking for a proof of this theorem
I will just turn @mephisto's comment into a longer answer.
The following attack will work against any public-key encryption scheme:
- The attacker has access to the public key and, say, a ciphertext encrypting some unknown message
- for every possible secret key (by enumerating the key space), the attacker does the following:
- checking whether the secret key does correspond to the known public key (for instance, by encrypting every single possible message then trying to decrypt them using this secret key)
- when a secret key was found that passed the test of the previous step, the attacker uses it to decrypt the message
Of course this attack will take a gigantic amount of resources, but it will work against any PKE. Now this goes against the idea of perfect secrecy which says that getting a ciphertext gives no information about the plaintext, even for an adversary with unbounded resources.
Note how such attack will not work against the one-time-pad: an adversary attacking a one-time-pad only gets a ciphertext, there is no public key. If the adversary picks a random key, betting that it is the key that was used for encryption, it has no way to tell whether it was right or wrong in picking this key.