Blind signature
A blind signature scheme is a signature scheme whose signing algorithm is an interactive protocol between a signer holding the secret key and a user holding a message: the user obtains a signature on the message, while the signer learns nothing about the message or the resulting signature — Cha82.
Syntax
A blind signature scheme is a tuple , following the two-party protocol syntax:
- , a randomized algorithm sampling a key pair,
- (the signer, on input ) and (the user, on input and a message ) are interactive algorithms with , where is a signature or ,
- , a deterministic algorithm outputting a bit .
Properties
Correctness
The scheme is perfectly correct if for all , , where and .
One-more unforgeability
The adversary plays the user in signer sessions that it may interleave arbitrarily; after completing of them it must not output valid signatures on distinct messages — PS00.
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\text{omuf}}_{\Pi,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \pk) \gets \KeyGen(1^\secpar)$ ; $\ell \gets 0$
\State $((m_1, \sigma_1), \ldots, (m_k, \sigma_k)) \gets \calA^{\calO_{S}}(1^\secpar, \pk)$
\Return $\big[k > \ell \land m_1, \ldots, m_k \text{ distinct} \land \forall_{i \in [k]}~\Vrfy(\pk, m_i, \sigma_i) = 1\big]$
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\algname{Oracle}
\caption{$\calO_{S}(j, M)$}
\begin{algorithmic}
\If{session $j$ is new}
\State start a signer $S_j(\sk)$ with fresh coins
\EndIf
\State feed $M$ to $S_j$; let $M'$ be its next message
\If{$S_j$ has sent its last message}
\State $\ell \gets \ell + 1$
\EndIf
\Return $M'$
\end{algorithmic}
\end{algorithm}
The scheme is one-more unforgeable if for all efficient ,
is negligible. Strong one-more unforgeability asks only that the pairs be distinct — standard.
Blindness
The adversary plays the signer, with a public key of its choice, in two sessions with honest users on messages it chooses, the first session on and the second on for a hidden bit ; it then gets both signatures and must guess — standard.
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\text{blind}}_{\Pi,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\pk, m_0, m_1, \stA) \gets \calA(1^\secpar)$ ; $b \getsr \bits$
\State Run $\langle \calA(\stA), U(\pk, m_b) \rangle$ and $\langle \calA(\stA), U(\pk, m_{1-b}) \rangle$, scheduled by $\calA$
\Comment{the first session yields $\sigma_b$, the second $\sigma_{1-b}$}
\If{$\sigma_0 = \bot$ or $\sigma_1 = \bot$}
\State $(\sigma_0, \sigma_1) \gets (\bot, \bot)$
\EndIf
\State $b' \gets \calA(\stA, \sigma_0, \sigma_1)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}
The scheme is blind if for all efficient ,
is negligible.
Variations
Blind Schnorr signatures
The key pair is a Schnorr key pair in a group of prime order , and a signature is an ordinary Schnorr signature. The signer sends for . The user samples , sets and , and sends . The signer replies ; the user checks and outputs , which satisfies — Sch01, FPS20. Every valid signature is consistent with every signer session under exactly one choice of , so the scheme is perfectly blind — standard. As an object, blind Schnorr signatures denote the scheme with one-more unforgeability against polynomially many concurrent sessions.
Blind Schnorr signatures are not one-more unforgeable: an adversary that opens concurrent sessions forges signatures in polynomial time, by solving the ROS problem — BLLOR21.
Blind Okamoto-Schnorr signatures
The blind version of the Fiat–Shamir transform of the Okamoto identification protocol, with public key . The signer sends . The user samples , sets and , and sends . The signer replies , and the user outputs , which satisfies — PS00. As an object, blind Okamoto–Schnorr signatures denote the scheme with one-more unforgeability against a number of signer sessions logarithmic in , which may run in parallel.
Other results
- A transformation of blind Okamoto–Schnorr signatures gives a scheme secure against polynomially many sequential signer interactions — Poi98.
- Chaum’s RSA blind signature is one-more unforgeable in the random-oracle model under the one-more RSA-inversion assumption — BNPS03.
Participates in
Produces Blind signature