I am looking for an encryption protocol with the following properties.
- Alice has a private key $x$. Using this private key, she chooses public key $p$ corresponding to this private key. She let's Bob know about this public key. Bob then uses this public key to encrypt a message to Alice.
- Later Alice wants to receive a message again. She creates public key $q$ using the same private key $x$. Bob then uses this public key to encrypt a message for Alice.
- Bob should not be able to deduce from $p$ & $q$ that the two public keys $p$ and $q$ were generated using the same private key $x$.
- Alice should not need to have more than 1 private key.
- The protocol should enable Alice to produce arbitrarily many public keys, if they are allowed to be arbitrarily long.
Does such a protocol exists?