Modified Schnorr identification
All roles run locally in this browser. Secret scalars are displayed for explanation only; they are not protocol messages. This is a research demonstration, not a production service.
Construction and implementation
Original and modified Schnorr
The commitment and challenge keep their roles. The change is in the response: the original protocol sends a linear expression as a scalar; the modified protocol sends that expression in the exponent, under a base bound to this commitment and challenge. A pairing checks the relation without receiving the scalar.
The same comparison in the selected elliptic-curve groups
Above: the publication's multiplicative notation. Below: additive notation with public keys and commitments in G2, modified responses in G1, and pairing results in GT. In both columns, the challenge follows the commitment.
In the source figure, is the prover and the verifier. The secret key is , is the public key, is the ephemeral randomness, its commitment, and the verifier's challenge. Scalar arithmetic is modulo the prime group order .
The response equations below use multiplicative notation for the same asymmetric groups: denote the displayed , , and . Multiplication and powers in the source groups represent point addition and scalar multiplication.
Original: scalar response
The verifier checks a group equation using the received :
For a nonzero challenge, a known exposes the corresponding secret:
Modified: response in the group
The verifier now checks a pairing equation:
The response no longer gives the verifier the scalar needed for that linear extraction. This is the purpose of lifting the response into the exponent.
Source notation. The original artwork retains the publication's symmetric pairing . Its group-valued hash is denoted in the paper. Throughout our explanations and executable asymmetric profile, the hash into is written and the scalar-valued hash is written . The code's corresponds to in multiplicative notation. Concatenation always means encoded values, commitment first, challenge second.
From the paper to MCL WebAssembly
The executable example uses asymmetric pairing groups, with BLS12-381 selected initially. It writes elliptic-curve groups additively and keeps the target group multiplicative:
- Keys and commitment
- . The figure's corresponds to in the demo.The parameter shown in the parameter panel is not the response base.
- Transcript-bound base
- Here replaces . The code calls
hashAndMapToG1on the concatenated hexadecimal serializations, commitment first, challenge second. This is not a public hash-to-scalar multiplied by a fixed point. - Modified response
- Exponentiation in the figure becomes scalar multiplication in ; is the transmitted point.
- Verification
- Both sides are in . Every pairing takes a point first and a point second.
- Ordinary protocol
- Ordinary Schnorr needs no pairing and can be instantiated in a suitable prime-order group, including or . The separate Regular Schnorr grid on this page uses and checks .
Protected computation and scope of this demonstrator
The paper considers protected long-term keys alongside ephemeral randomness that may be exposed or adversarially set. Its security argument uses the stated group assumptions and random-oracle model, not merely the appearance of a group-valued response.
This browser demonstration computes and displays secret scalars for teaching. It does not implement an HSM or isolate those secrets from the browser. MCL's Fr values are scalars modulo ; the demo's random sampling has no explicit zero-rejection step, whereas the source artwork marks nonzero samples with .
The asymmetric equations above describe the actual executable arithmetic. They are not a claim that the paper's symmetric-group security reduction transfers unchanged to this implementation profile. See the publication for its security model and the MCL WebAssembly documentation for the library.
Mod-Schnorr Protocol Steps
01 Parameters
P:
Q:
02 Prover keys
sk:
pk:
03 Commitment
x:
X:
04 Challenge
c:
05 Response
s:
U:
S:
06 Verification
e1:
e2:
Result:
Regular Schnorr Protocol Steps
01 Parameters
Q:
02 Prover keys
sk:
pk:
03 Commitment
x:
X:
04 Challenge
c:
05 Response
s:
06 Verification
L:
R:
Result:
Original and modified: execution time
Mean milliseconds per run on the selected curve: 10 fresh transcripts after 3 warm-up runs. Both variants use the same pre-generated key; paired runs alternate their order. Includes fresh commitment and challenge randomness, response computation, and the complete verification equation. Modified verification recomputes from the public transcript. Parameter generation, key generation, DOM updates and network transmission are excluded. These are local browser measurements, not security estimates or production benchmarks.
| Stage | Original (ms) | Modified (ms) |
|---|---|---|
| Commitment | ||
| Challenge | ||
| Response | ||
| Verification | ||
| Total |
Benchmark
| op | msec |
|---|---|
| Fr::setByCSPRNG | 0 |
| pairing | 0 |
| millerLoop | 0 |
| finalExp | 0 |
| precomputedMillerLoop | 0 |
| G1::add | 0 |
| G1::dbl | 0 |
| G1::mul | 0 |
| G2::add | 0 |
| G2::dbl | 0 |
| G2::mul | 0 |
| hashAndMapToG1 | 0 |
| hashAndMapToG2 | 0 |
| Fr::add | 0 |
| Fr::mul | 0 |
| Fr::sqr | 0 |
| Fr::inv | 0 |
| GT::add | 0 |
| GT::mul | 0 |
| GT::sqr | 0 |
| GT::inv | 0 |