Identification scheme

A protocol in which a prover holding a secret key convinces a verifier holding the matching public key of its identity, canonically as a three-message commit-challenge-response sigma protocol such as Schnorr’s proof of knowledge of a discrete logarithm.

Syntax

An identification scheme is a tuple , following the two-party protocol syntax:

  • , a randomized algorithm sampling a key pair,
  • and are interactive algorithms, the prover on input and the verifier on input ; at the end outputs a bit , accepting iff .

We write . A canonical (three-move, public-coin) scheme has the prover send a commitment , the verifier reply with a uniform challenge from a challenge space , and the prover answer with a response ; accepts or rejects as a deterministic function of .

Properties

Correctness

is perfectly correct if for all , , where and .

Impersonation under passive attack

The adversary first sees transcripts of honest executions, then interacts with an honest verifier in the role of the prover.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\text{imp-pa}}_{\Pi,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \pk) \gets \KeyGen(1^\secpar)$
\State $\stA \gets \calA^{\calO_{\text{tr}}}(1^\secpar, \pk)$
\Comment{Phase 1: honest transcripts}
\State Run $\langle \calA(\stA), V(\pk) \rangle$; let $b$ be the output of $V$
\Comment{Phase 2: $\calA$ acts as the prover}
\Return $b$
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\algname{Oracle}
\caption{$\calO_{\text{tr}}()$}
\begin{algorithmic}
\State Run $\langle P(\sk), V(\pk) \rangle$ with fresh coins; let $\tau$ be its transcript
\Return $\tau$
\end{algorithmic}
\end{algorithm}

is secure against impersonation under passive attack if for all efficient ,

is negligible.

Impersonation under active and concurrent attack

In phase 1 the adversary plays the verifier, possibly dishonestly, in sessions with prover instances holding ; in phase 2 it has no prover access and must make an honest verifier accept. Under concurrent attack it may interleave the phase-1 sessions arbitrarily; under active attack it must finish each session before opening the next — BP02.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\text{imp-ca}}_{\Pi,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \pk) \gets \KeyGen(1^\secpar)$
\State $\stA \gets \calA^{\calO_{\text{prov}}}(1^\secpar, \pk)$
\Comment{Phase 1: $\calA$ plays the verifier}
\State Run $\langle \calA(\stA), V(\pk) \rangle$; let $b$ be the output of $V$
\Comment{Phase 2: no prover access}
\Return $b$
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\algname{Oracle}
\caption{$\calO_{\text{prov}}(i, M)$}
\begin{algorithmic}
\If{session $i$ is new}
\State start a prover $P_i(\sk)$ with fresh coins
\EndIf
\State feed $M$ to $P_i$; let $M'$ be its next message
\Return $M'$
\end{algorithmic}
\end{algorithm}

is secure against impersonation under concurrent attack if for all efficient ,

is negligible. Security against impersonation under active attack is the same with restricted to sequential sessions. A passive adversary can be simulated by an active one that plays the honest verifier, so concurrent security implies active security, which implies passive security — standard.

Variations

Schnorr identification protocol

For in a group of prime order , the prover sends for , receives a uniform challenge from a challenge space with negligible, and replies ; the verifier accepts iff . The protocol is special sound and perfectly honest-verifier zero-knowledge — Sch91. As an object, the Schnorr identification protocol denotes this protocol with security against impersonation under passive attack.

Schnorr identification under concurrent attack

The Schnorr identification protocol, required to be secure against impersonation under concurrent attack: an adversary that first runs arbitrarily many interleaved sessions, as verifier, with honest provers holding makes an honest verifier accept with negligible probability — BP02. Active attack is the special case of non-interleaved sessions.

Okamoto identification protocol

The public parameters are independent generators of a group of prime order . The secret key is and the public key is . The prover sends for , receives from a challenge space with negligible, and replies for ; the verifier accepts iff — Oka92. Each public key has secret keys, and the transcripts of every phase-1 session are distributed independently of which one the prover holds: the protocol is perfectly witness-indistinguishable — standard. As an object, the Okamoto identification protocol denotes this protocol with security against impersonation under active attack.

Participates in

Builds on Identification scheme

Produces Identification scheme

Barriers