Alice has a secret S
and publishes some public information P
, about S
which is insufficient to recreate S
.
Is there a way that Bob can use P
, and an arbitrary integer I
to create an (EC?) public key for which Alice can subsequently calculate the private key, given I
?
Does this requirement already have a name?
Bob was a bad name. Bob is anyone other than Alice. Alice knows nothing of specific Bobs.
The point of the question is that I want all the Bobs of the world to be able to generate public keys, for which Alice can later calculate the corresponding private key, given the identifying integer I
. (Where I
could be a random 256bit integer, if it's more secure.)
This is Alice saying to the world: 'Here's some information P
, now all of you can make different public keys, for which I can later calculate the private keys, if and when I need to'.
The requirement is to get around the issue that Alice might be offline when a Bob requests a public key from her. I do not what the world to know which public keys are owned by Alice, so she can't just publish 100 public keys for general use.
This problem would be solved if P
could be an array of 2^256 public keys (for which she has stored the 2^256 private keys that were used to generate the public keys) but this is not feasible for computational and storage reasons. I'm looking for something possible which will achieve the same ends.