Modified Okamoto 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 Okamoto
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 scalars 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 correspond to in the demo.The two generators are derived with distinct labels; their discrete-logarithm relation must not be known.
- 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 ; are the transmitted points.
- Verification
- Both sides are in . Every pairing takes a point first and a point second. The dot between the two pairings is multiplication in the target group.
- Ordinary protocol
- Ordinary Okamoto needs no pairing and can be instantiated in a suitable prime-order group, including or . Both variants have executable grids below: the regular protocol verifies scalar responses in G₂, and the modified protocol verifies G₁ response points using pairings.
Protected computation and scope of this demonstrator
The paper explicitly protects the long-term keys behind the exponentiation interfaces . It forms each response as , without exporting the key or a scalar response from that protected component.
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.
Protocol Steps
01 Parameters
P:
Q1:
Q2:
02 Prover keys
sk1:
sk2:
pk:
03 Commitment
x1:
x2:
X:
04 Challenge
c:
05 Response
U:
s1:
S1:
s2:
S2:
06 Verification
e3:
e4:
Result:
Regular Okamoto Protocol Steps
01 Parameters
:
02 Prover keys
:
:
03 Commitment
:
:
04 Challenge
05 Response
:
06 Verification
:
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 |