Question
I seek a quantitatively better proof of theorem 13.11 in Katz and Lindell's Introduction to Modern Cryptography (3rd edition) (or nearly equivalently, theorem 19.1 in Dan Boneh and Victor Shoup's freely available A Graduate Course in Applied Cryptography). The proof is about the Schnorr identification scheme for a generic group $\mathcal G$ of prime order $q=\lvert\mathcal G\rvert$ and generator $g\in\mathcal G$, for the claim:
If the discrete-logarithm problem is hard relative to $\mathcal G$, then the Schnorr identification scheme is secure.
The scheme goes:
- Prover (P) draws private key $x\gets\mathbb Z_q$, compute and publishes public key $y:=g^x$, with integrity assumed.
- At each identification:
- Prover (P) draws $k\gets\mathbb Z_q$, computes and sends $I:=g^k$
- Verifier (V) draws and sends $r\gets\mathbb Z_q$
- Prover (P) computes and sends $s:=r\,x+k\bmod q$
- Verifier (V) checks whether $g^s\;y^{-r}\;\overset?=\;I$
The proof given is by contraposition. We assume a PPT algorithm $\mathcal A$ that, given $y$ but not $x$, successfully identifies with non-vanishing probability. We construct the following PPT algorithm $\mathcal A'$:
- Run $\mathcal A(y)$, which is allowed to query and observe honest transcripts $(I,r,s)$, before reaching the next step.
- When $\mathcal A$ outputs $I$, choose $r_1\gets\mathbb Z_q$ and give it to $\mathcal A$, which responds with $s_1$.
- Run $\mathcal A(y)$ a second time with the same random tape and honest transcripts, and when it outputs (the same) $I$, choose $r_2\gets\mathbb Z_q$ with $r_2\ne r_1$ and give $r_2$ to $\mathcal A$.
Eventually, $\mathcal A$, responds with $s_2$.
- Compute $x:=(r_1-r_2)^{-1}(s_1-s_2)\bmod q$, solving the DLP.
Say step 2 completes with probability $\epsilon$. I get that the book's proof establishes step 3 completes with probability at least $\epsilon^2-1/q$, why step 4 solved the DLP, why the $\epsilon^2$ appears and why we need a large $q$ to approach that.
Can we reach a more quantitatively convincing reduction to the DLP ?
Unsatisfactory things are: the $\epsilon^2$, which can translate to low probability of success. We'd want a reduction where probability of success grows linearly with time spent, for low probability. Also, the probability of success is obtained averaged over all $y\in\mathcal G$, not for a particular DLP problem.
To make the first issue concrete: if $\mathcal A$ succeeds with probability $\epsilon=2^{-20}$ in $1$ second, the proof tells we can solve an average DLP with probability like $2^{-40}$ in $2$ seconds. That's not directly useful, even if we could turn it to probability $1/2$ in $2^{40}$ seconds (11 centuries). We want probability $1/2$ in $2^{21}$ seconds (25 days).
Tentative answer
This is my attempt, for criticism. I claim we can solve any particular DLP in $G$ with expected time $2t/\epsilon$ (and with probability $>4/5$ within time $3t/\epsilon$), plus time for identified tasks, assuming an algorithm $\mathcal A$ that identify for a random public key in time $t$ with non-vanishing probability $\epsilon$, and $q$ large enough we can discount hitting a particular value in a random choice in $\mathbb Z_q$.
Claimed proof:
First we build a new algorithm $\mathcal A_0$ that on input the description of the setup $(\mathcal G,g,q)$ and $h\in\mathcal G$
- uniformly randomly choose $u\gets\mathbb Z_q$
- computes $y:=h\;g^u$
- runs algorithm $\mathcal A$ with input $y$ serving as random public key
- whenever $\mathcal A$ requests an honest transcript $(I,r,s)$
- uniformly randomly choose $r\gets\mathbb Z_q$ and $s\gets\mathbb Z_q$
- compute $I:=g^s\;y^{-r}$
- supply $(I,r,s)$ to $\mathcal A$, which is distinguishable from an honest transcript for public key $y$
- if $\mathcal A$ outputs $I$ within it's allocated run time $t$, making an attempt to authenticate
- (note: we'll restart from here)
- uniformly randomly chooses $r\gets\mathbb Z_q$ and passes it to $\mathcal A$
- if $\mathcal A$ outputs $s$ within it's allocated run time $t$
- checks $g^s\;y^{-r}\;\overset?=\;I$ and if so, outputs $(u,r,s)$
- otherwise, aborts without result.
Algorithm $\mathcal A_0$ is a PPT algorithm that for any fixed input $h\in\mathcal G$ has at each run probability $\epsilon$ to outputs $(u,r,s)$, because $\mathcal A$ is run under the conditions defining $\epsilon$.
We make a new algorithm $\mathcal A_1$ that on input the setup $(\mathcal G,g,q)$ and $h\in\mathcal G$
- Repeatedly run $\mathcal A_0$ with that input until it outputs $(u,r_1,s_1)$. Each run has probability $\epsilon$ to succeed, thus this step is expected to require $t/\epsilon$ time running $\mathcal A$.
- Restart $\mathcal A_0$ from the noted restart point (equivalently: rerun it from start with the same input and random tape up to the restart point, with fresh randomness after the restart point), until it outputs $(u,r_2,s_2)$. Each run has probability at least $\epsilon$ to succeed (proof follows from that theorem on non-decreasing probability of success of an algorithm I try to ask a reference for), thus this step is expected to require no more than $t/\epsilon$ time running $\mathcal A$.
- In the (assumed overwhelmingly likely) case $r_1\ne r_2$, compute and output $z:=s_1-s_2-u\bmod q$.
In that outcome, both runs of $\mathcal A_0$ that produced $(u,r_1,s_1)$ and $(u,r_2,s_2)$ have checked $g^{s_i}\;y^{-{r_i}}=I$ with $y=h^u$ for the same $u$ and $I$ that $\mathcal A_0$ determined, and the $h$ we gave at input of $\mathcal A_1$. Therefore $\mathcal A_1$ found $z$ with $h=g^z$, thus solving the DLP for arbitrary $h$. It's expected run time spent in $\mathcal A$ is at most $2t/\epsilon$, and the rest makes $\mathcal O(\log(q))$ group operations for each run of $\mathcal A$ and each honest transcript it requires.
$\lfloor3/\epsilon\rfloor$ runs of $\mathcal A$ are enough for at least two of them to succeed with probability better than $1-4\,e^{-3}>4/5$: see this plot of $1-(1-\epsilon)^{\lfloor3/\epsilon\rfloor}-\lfloor3/\epsilon\rfloor\,\epsilon\,(1-\epsilon)^{\lfloor3/\epsilon\rfloor-1}$