I need a digital signature scheme with the following characteristics, but I don't know what it's called, so I'm having trouble searching for publications about it. It seems likely that something like it already exists. Could you please help me identify what it's called?
The scheme I need consists of four algorithms:
- $\mathsf{Gen}(1^\lambda) = (pk, sk)$ takes a security parameter and returns a pair of public key and private key;
- $\mathsf{Blind}(pk) = pk'$ takes a public key and returns an obfuscated public key;
- $\mathsf{Sign}(sk, m) = \sigma$ takes a private key and a message, and returns a signature $\sigma$;
- $\mathsf{Verify}(pk', m, \sigma)$ takes an obfuscated public key, a message, and a signature, and returns 1 iff the signature is valid, or 0 otherwise.
The required security properties are:
- Existential unforgeability under adaptive chosen-message attack, as usual for a signature scheme;
- Public key hiding: Adversary chooses $pk$; challenger chooses a random bit $b \in \{0,1\}$; challenger computes $pk_0 = \mathsf{Blind}(pk)$ and picks $pk_1$ uniformly at random; challenger returns $pk_b$ to the adversary. The (polynomially bounded) adversary should have negligible advantage over a random guess in determining $b$. In other words, the $\mathsf{Blind}$ function should not allow its output to be linked with its input.
This isn't a blind signature scheme (which is about hiding the message from the signer, whereas I want to hide the public key from the verifier). It has some similarities to threshold signatures or anonymous credentials, but is not quite the same. Anyone know whether a construction like this exists?