System Security II
Constructions, simulation, rewinding and security reductions
01 / System Security IIA construction and its proof are one object
The central question of this course is not only how to compute a signature or a session key. It is how an algorithm that breaks the construction could be used to solve a problem assumed to be hard. We study the reduction as an executable algorithm: it receives a challenge, creates the adversary's environment, answers queries and transforms a successful output into a solution.
The original lectures develop Schnorr and Okamoto identification, pairing-based modifications, signatures, encryption and authenticated key exchange. The chapters below retain that progression and make the proof obligations explicit. Complete elementary derivations are given where possible. A labelled proof outline identifies what still has to be established; it is not presented as a full theorem for a larger adversarial model.
You should be comfortable with System Security I, prime-order groups, conditional probability and algorithmic reductions. The goal is to be able to read an original cryptography paper, reproduce its scheme with correct types, and audit the interface between its construction and its proof.
The route through the course
First learn to simulate one transcript and extract from two. Then account for an adversary that succeeds only sometimes, chooses its queries adaptively and requests signatures before forging. Next compare three extraction styles: recovering a scalar by rewinding, reading a hard group element directly from a forgery, and recognising an informative random-oracle query. Finally apply the same discipline to anonymity and session-key experiments.
An elementary lemma below is proved in full. A construction-specific argument is accompanied by its model and any remaining conditions. This matters especially for the historical leakage-oriented protocols: a cancellation identity is useful, but it does not answer every oracle query in a full key-exchange experiment.
After this course you should be able to: write a reduction without secretly using its challenge solution; explain every change of distribution; identify the exact pair of transcripts needed by an extractor; and distinguish an anonymity proof from an unforgeability proof. The worked examples are classical. They do not claim security against quantum algorithms or quantum access to a random oracle.
02 / System Security IINotation, assumptions and proof contracts
Use of prime order , secret , public key , nonce , commitment , challenge and response . Scalar arithmetic is in . Unless stated otherwise, nonces and challenges are sampled uniformly from the whole field. This convention matters for exact simulation. Secret keys are nonzero. The adversary is and the reduction is .
Hash notation and output types
| Function | Output and use |
|---|---|
| A scalar, for challenges or derived exponents | |
| A point from the specified secure hash-to-group construction | |
| Bit-string keys of the length required by the symmetric algorithm | |
| An -bit digest or mask, not a scalar or a curve point | |
| A deliberately defective replacement, defined locally in an exercise |
The group subscript names the actual output group. When a derivation uses a generic group , write ; use if the output is in . This does not identify distinct source groups or change a proof's assumptions. All hash inputs are unambiguously encoded byte strings; writing a tuple or group point as an input abbreviates its specified encoding. Independent roles use separate domains, even when they share the symbol .
A public deterministic hash-to-group function must not provide a publicly computable discrete logarithm of its output relative to the generator. Merely returning a point of the right type is insufficient. In the BLS WebAssembly demo, denotes the group-hashing role implemented with MCL's hashAndMapToG1; scalar hashing has a different interface, hashToFr. The notation alone does not assert compatibility with an RFC 9380 suite or a standard BLS byte format. See RFC 9380 and MCL WebAssembly.
| Problem | Input | Required output |
|---|---|---|
| Discrete logarithm, DL | ||
| Computational Diffie–Hellman, CDH | ||
| Decisional Diffie–Hellman, DDH | Distinguish from uniform | |
| Gap CDH | A CDH input and a DDH decision oracle | Compute the CDH output despite that oracle |
The assumption must match the group family and available oracles. In a symmetric pairing group, a pairing can make DDH easy while CDH may remain hard. One cannot transport an ordinary DDH-based argument into that group without checking the assumption.
A proof contract specifies the adversary's running time, query bounds, public-key distribution, corruption rules and winning event. “Secure under DL” omits the attack model and reduction loss. Also distinguish a standard-model theorem from one that treats as a programmable random oracle. An implementation using a fixed hash is an instantiation, not a programmable oracle service.
Write the reduction's state first
List the values the reduction knows and those it must not know. In a DL reduction with input , computing to answer a training query is circular. A valid simulation must answer from available values or explicitly stop on a bounded bad event.
The direction of a reduction
Suppose an adversary breaks a signature scheme. To reduce forgery to DL, construct that receives a DL instance, runs that adversary as a subroutine and outputs the unknown logarithm. The implication is: an efficient successful forger would give an efficient successful DL solver. We do not assume a DL solver and use it to forge; that reverse implication is usually easy and proves no useful security guarantee.
Write a concrete inequality. If is the adversary's time and its success probability, the reduction might run in time about and succeed with probability , or take expected time about until success. These are different ways to state a loss. Never quote the runtime from one theorem and the success probability from another as if they described the same algorithm.
A reduction's four interfaces: challenge input, public setup, adversary queries and final output. At every stage list known scalars, known group elements and unavailable values. From one may compute for known ; one may not compute as a scalar. This distinction often makes an otherwise impossible simulation possible.
Why assumptions do not transfer automatically
A DL solver gives a CDH solver by recovering one exponent and exponentiating the other public point. A CDH solver gives a DDH distinguisher by computing the proposed product and comparing it to the fourth input. The converses do not follow. In a symmetric pairing group, tests whether , so DDH is easy even if computing that source-group point is still hard.
In Type-3 settings the pairing takes one point from each of two distinct source groups. A DDH test requiring an unavailable second-group representative cannot simply be carried out. State the supplied tuples and maps rather than using the word “pairing” as a substitute for an assumption.
Exact distribution or a small statistical difference?
Sampling a scalar from and sampling from differ by probability . That may be negligible, but it is not zero. Across samples, a union bound gives at most for encountering a zero in the full-field experiment. The historical slides sometimes use nonzero sampling where their simulator argument assumes the full field. Here nonce and challenge sampling is explicitly full-field unless rejection is part of a stated algorithm. Nonzero keys and inversion denominators remain separate requirements.
03 / System Security IIThree-move protocols: simulation and extraction
For a relation , a statement and witness satisfy . In Schnorr's case and , with . A three-move public-coin protocol exchanges a commitment, a challenge and a response. Here “Sigma protocol” refers to this proof structure; it is unrelated to the name SIGMA for authenticated key exchange.
Three properties play different roles:
- Completeness: an honest prover with a valid witness is accepted.
- Special soundness: two accepting transcripts with the same first message and different challenges allow witness extraction.
- Special honest-verifier zero knowledge: for a specified challenge, a simulator produces the corresponding accepting-transcript distribution without the witness.
For Schnorr, the verifier checks . To simulate an honest transcript, sample and set . In an honest execution, . For fixed , adding is a bijection on the field, so uniform gives uniform . The simulated and honest transcript distributions are identical under this sampling convention.
For extraction, divide two verification equations:
The inverse exists because is prime and . Verify the extracted witness by checking . This last check is useful both in a reduction and in an implementation test.
Scope. Honest-verifier zero knowledge does not by itself prove zero knowledge against arbitrary malicious verifiers, concurrent security, or a general deniability claim. A verifier may select its challenge as a function of the commitment. A simulator that chooses the challenge first has not yet simulated that interaction.
A full distribution calculation
Fix a public key and a challenge . An honest nonce has probability and determines exactly one pair . A simulator samples with probability and computes . These describe the same set of pairs with the same probabilities. With a uniformly sampled challenge, each accepting transcript has probability .
The simulator does not calculate . That equation is used only in the mathematical argument comparing distributions. Its executable computation uses . In proofs, distinguish expressions that define a distribution from values that the simulator actually knows.
The two accepting equations are enough
The extractor does not need an honest explanation of the adversary's response. It starts with the public checks and . Division cancels . Because has prime order and , the extracted scalar is the unique witness for . We need not assume the adversary internally computed or knew any nonce. This is why extraction applies to arbitrary accepting algorithms, not only to an honest prover reused as a test fixture.
Worked example. In the order- subgroup modulo , use and . Then , and . Extraction gives , whose public image is .
04 / System Security IIPassive identification and rewinding
Suppose an impersonator receives honest training transcripts for and then talks to an honest verifier. A DL reduction sets the target public key to its input , simulates the training transcripts as above, and runs the impersonation phase. After the adversary sends , the reduction saves its state, including its random tape and the transcript prefix.
It sends a challenge , obtains an accepting response, and restores the saved state. It now sends a fresh challenge . If the second run also accepts and , special soundness extracts the DL. Rewinding means restoring the same computation, not launching an independent adversary with new coins.
A fixed successful prover illustrates extraction, not the success probability of an arbitrary adversary. The group has order 23 modulo 47.
- Commitment X
- First answer
- Restore state
- Second answer
- Extract a
Why success needs a probability argument
Fix a saved state and its random tape. Let be the fraction of challenges that lead to acceptance. Two independent challenges both succeed with probability . The event that they coincide and succeed has probability . Averaging over states and writing gives
This follows from . A negative lower bound is replaced by zero. The argument assumes a bounded execution with replayable state and exact simulation. A prover that guesses one challenge in advance can have acceptance probability without giving an extractable pair. That is the knowledge-error scale, not a contradiction.
Proof exercise. Write the passive-identification reduction as pseudocode. Explain why training transcripts can be simulated and why the same simulator does not automatically answer an active verifier whose challenge depends on .
An executable reduction outline
Input: group parameters and a target public key A; do not compute log_g(A).
Training: answer each passive transcript request with the exact simulator.
Impersonation: run the adversary until its first message X is fixed.
Save: random tape, complete machine state, and transcript prefix.
Branch 1: sample c; run to the answer; record s and the acceptance result.
Restore the saved state.
Branch 2: sample an independent c'; record s' and the acceptance result.
If either branch rejects or c = c', return failure.
Otherwise extract the scalar, check its public image, and return it.
This is a black-box proof experiment. It does not assert that an attacker can rewind a remote physical user. In a practical protocol, however, a device reset that reuses a nonce can accidentally give an attacker the same pair of transcripts. The mathematics is the same; the authority to obtain the pair is different.
Why the square cannot be skipped
For a fixed state , let be its accepting challenge set, of size . Exactly ordered pairs of distinct challenges accept, out of ordered pairs. Thus the conditional probability is . Averaging first, then using nonnegative variance, gives the bound in the preceding section. Assuming every successful first branch has a successful second branch would replace a conditional probability by one without justification.
For instance, a prover may answer only one challenge per commitment. Its success is , but there are zero distinct accepting pairs. At the other extreme, a prover that answers all challenges gives a useful pair with probability . Both boundary cases agree with the formula.
An active training verifier can choose after inspecting . The passive simulator cannot simply choose that in advance. The next construction addresses this by embedding the hard problem somewhere else, so the reduction can know an actual prover witness.
05 / System Security IIOkamoto identification and active training
Okamoto's representation-based protocol uses generators of the same prime-order group. Sample the secret pair uniformly from and set , resampling if is the identity. Individual coordinates may be zero. Choose fresh uniform , send , and return
Verification checks . Substitution proves completeness. The witness is now a representation of , and a public key has such representations. Knowing one does not give the discrete logarithm between and .
Where the DL challenge is embedded
Given and with unknown , the reduction samples its own and publishes . It knows a valid witness, so it can run honest prover instances even when the training verifier chooses challenges actively. The unknown challenge is in the relation between the two generators, not in the user's secret representation.
After two accepting impersonation transcripts with the same and distinct challenges, define , and . The extracted representation is for . Combining it with the reduction's original representation yields
If the two representations differ, the denominator cannot be zero: equal second coordinates would force equal first coordinates as well. But the extractor may return the original representation, in which case this computation fails.
Why a different representation is plausible
Conditioned on , the reduction's representation is uniform among its possible representations. With full-field fresh nonces, prover transcripts do not reveal which representation was chosen: conditioned on the commitment and challenge, response pairs are uniform among the pairs satisfying the verification equation. Thus an extracted representation determined from that view hits the particular hidden representation with probability . This is the witness-hiding step that must accompany the algebra, along with the probability of obtaining a fork.
This explanation addresses the sequential active-training setting followed by impersonation, not an unrestricted concurrent relay model. See Okamoto, Provably Secure and Practical Identification Schemes and Corresponding Signature Schemes. The local modified-Okamoto demo is a different, pairing-based construction: its responses are group elements, whereas the classical protocol above returns scalars. Its leakage analysis needs its own model.
Witness independence against an active training verifier
Write . For a fixed public key , the valid representations satisfy . There are exactly pairs: choose freely and the first coordinate is determined. The prover does not need to know to use its own pair.
Fix the verifier's random tape and the transcript so far. For the next commitment , the nonce pairs satisfying form a set of size and are uniform on that set. The verifier's challenge is now fixed as a function of its view and . Translation by maps those nonce pairs bijectively onto the response pairs satisfying .
That latter set does not depend on which secret representation the prover used. Inductively, any number of sequential training sessions with fresh full-field coins has a view independent of that representation, conditioned on the public key. The extractor's output, as a function of this view and its own coins, cannot guess the reduction's particular representation with probability greater than . This is stronger and more precise than saying that the secret is “probably different”.
Finish the reduction, including failure
The impersonation fork extracts . Subtracting the two representation equations gives
If , the equality forces . Otherwise inversion gives . In this sequential, exact-simulation experiment the fork event and extracted witness depend on the public view, not on the hidden choice among representations. A lower bound on useful extraction is therefore . State this sampling/model convention before using the bound.
Exercise. Deliberately replace the full-field nonce pair by a biased distribution. Identify which sentence of the view-independence proof now fails. Completeness still holds, but the distribution proof needs to be redone. Then show why revealing both nonces from one accepting response defeats the ordinary scalar-response version when the challenge is nonzero.
06 / System Security IIFiat–Shamir and the random-oracle table
Use the teaching Schnorr signature with and . EUF-CMA allows chosen-message signatures and requires a forgery on a fresh message. The reduction is given without .
A random oracle is sampled lazily. Its table maps each exact encoded input to one output. A repeated query returns the stored output. It is not resampled. To simulate signing , the reduction chooses uniformly, computes , and installs the value at the corresponding hash input. If that input already has an incompatible answer, the simulator must abort or use a justified retry rule. It may not overwrite the old answer.
If the adversary never queried the challenge of its eventual fresh-message forgery, then, for a nonidentity public key, the accepting challenge for fixed is unique. A uniformly sampled unseen answer matches it with probability . Otherwise the reduction can identify a critical oracle query associated with the forgery. The next chapter describes how that index is used.
Let and bound hash and signing queries. A simple programming-collision estimate scales like : each signing simulation chooses a uniform commitment, and only previously occupied inputs for that context can collide. State the counting convention before quoting a concrete bound; internal signing queries also populate the table.
The oracle table is shared state
Hash(input):
if input is in Table: return Table[input]
sample a uniform scalar c
store Table[input] = c
return c
SimulatedSign(m):
sample independent uniform c and s
compute X = g^s / A^c
encode input = (signature domain, A, X, m)
if input is already in Table: abort this simulation
store Table[input] = c
return (X, s)
The simulator above uses the conservative rule of aborting at any occupied input, even one with a coincidentally compatible value. For signing query number , at most entries have already been installed, and is uniform. A union bound gives
This overcounts entries for other messages and contexts, which is safe for an upper bound. The bound assumes uniform full-field simulator coins and a fixed upper bound on the query counts. Rejecting an identity commitment or using a different signing distribution changes the exact accounting. Repeating the same hash query must never create a fresh entry.
If the real forgery probability is , the simulated success after programming aborts is at least . Requiring the forger to have asked its final challenge costs at most another . Define
This is a lower bound on a specific algorithm's success, not a renamed real-world advantage. To apply a forking theorem, include internal oracle use in its execution model, restore all relevant state, and count the random answers that the chosen theorem actually indexes.
07 / System Security IIForking lemma: what is replayed, what is changed
The Pointcheval–Stern technique turns a successful Fiat–Shamir forgery into two compatible transcripts. A useful abstraction is the general forking experiment of Bellare and Neven. Let an algorithm consume at most random answers from a space of size . On success it outputs a relevant query index and auxiliary output; index zero denotes failure. Let its success probability be .
Run it once. Restore the same input and random tape, replay answers before index , and resample answer and the suffix. The fork succeeds only if the second run selects the same index and the answers at that index differ.
The selected query is answered. The adversary continues and produces a valid forgery selecting that query.
Restore the prefix. Sample a new answer and suffix. A useful fork must succeed at the same query with a different answer.
The lower bound is
For Schnorr the two runs then have the same encoded commitment and message but different challenges, so the extraction equation applies. Here is the success probability of the actual simulated algorithm after its aborts, not automatically the raw EUF-CMA advantage. See Bellare and Neven, Lemma 1 and Pointcheval and Stern's security arguments.
Audit a proposed application
- The reset preserves the adversary's coins and all earlier oracle answers.
- The forked query really determines the forgery's challenge.
- The two signatures refer to the same statement, public key and commitment.
- Repeated queries remain consistent within each run.
- Signing simulation still works on both branches.
- Query guessing, malformed outputs and programming failures are included in the loss.
Forking is not a promise that a second run will forge. A different critical index, rejection or identical challenge is a failed attempt. Nor does this classical reset argument automatically apply to quantum random-oracle access. It relies on the particular query interface and rewinding model.
Exercise. Set , and . Evaluate the lemma's lower bound and compare it with the false claim that the fork succeeds with probability . Explain why a valid but loose reduction may still require larger parameters than a tight one.
A probability proof of the general bound
For each possible selected index , fix the random tape and the oracle answers before . Call that prefix . Let be the probability, over the remaining independent answers, that the algorithm succeeds and selects . Two independently completed branches from this prefix both select with probability .
Summing over indices and averaging over prefixes, the probability of two successful runs with the same selected index is
The first inequality is nonnegative variance. The second is Cauchy–Schwarz: the sum of the means is . We must remove the event that the second answer at the selected query repeats the first. After a successful first run that event has probability , giving an upper bound on the discarded probability. Subtraction gives .
This derivation explains the three visible terms: two successful branches cause the square, selecting the same one of possible indices causes the query loss, and distinct challenges cause the subtraction. It does not add a second independent factor for “guessing” the index; that would count a loss already present in this experiment.
From a fork to Schnorr's secret
For the Schnorr teaching profile, the selected query encodes before its answer is supplied. If both executions select that query index, the shared prefix fixes its input. The two accepting signatures therefore have the same public key, commitment and message. Their differing hash answers are precisely the differing challenges required by special soundness.
The reduction must restore the simulated environment as well as the forger. A hash entry created after the fork cannot remain copied from the first branch if the second branch is meant to resample it. Signing-oracle replies and their table updates must follow the same documented rules on both branches. This is where a mathematically correct extractor can be attached to an incorrect implementation of the proof experiment.
08 / System Security IIPointcheval–Stern: where the constants come from
The historical forking analysis of David Pointcheval and Jacques Stern has more visible constants than the compact general lemma. It constructs a replay strategy with a success threshold and then an expected-time strategy that does not need the adversary's success probability as an input. These are different algorithms. A large constant in the latter is not the cost of one modular inversion.
Let be the hash-query bound, let the challenge space have size , and write for the no-message forger's success. Under the generic-signature conditions and , their Lemma 2 gives a constant-success fork using at most executions, with success at least . Their Theorem 1 gives expected time at most . See the original paper, Section 3.1.
Reconstruct the accounting
Let be successful executions that queried their eventual challenge, and . Losing an unqueried challenge costs at most , so the threshold implies . Split into buckets by the index of that query. There are at most buckets.
Call a bucket heavy if its conditional mass within is at least . All light buckets together have mass at most . Within a heavy bucket, a splitting argument retains at least half its successful executions with a sufficiently good replay prefix. Thus a successful execution has a suitable bucket and prefix with probability at least . The fractions are deliberately conservative lower bounds, not special properties of Schnorr arithmetic.
| Stage | Accounting | Interpretation |
|---|---|---|
| First success | About trials; success at least | Find an execution in |
| Good prefix | At least of successes | Heavy query bucket, then splitting |
| Different successful replay | At least per trial | Retain the prefix, change the challenge |
| Replay batch | About trials; success at least | Amplify the conditional replay chance |
| Combined | At least | Both stages succeed |
The total trial budget is bounded by . Round repetition counts to integers in an implementation; the paper's bounds use the usual harmless rounding convention. The assumption makes the subtraction of the repeated-challenge probability small enough. Without that threshold, this particular constant-success estimate does not follow.
The expected-time multiplier
In the expected-time schedule, the replay budget grows geometrically. Using the paper's schedule parameters and tail bound , one has , so the expected sum converges. The final bound reduces to the numerical expression
Here and are geometric-sum factors. The factor bounds the schedule's overshoot relative to . The factor is a rounded upper bound after replacing by in the per-stage cost . The counts the initial run and a replay budget multiplied by . This explains the origin of the number without suggesting it is an optimal universal loss.
For chosen-message simulation, the paper's collision estimate retains at least under its stated threshold , where bounds signing queries. Substitution explains
Use the runtime convention of that theorem, including the simulated signing work. Do not combine its threshold with a different simulator's collision estimate. In the next ring-signature analysis, the same bookkeeping idea uses a much larger number of query-index patterns.
Checkpoint. A large upper bound is not an attack. A negative lower bound on extraction means that the estimate is uninformative, not that the scheme is insecure. The right security parameters depend on the best applicable analysis, not on treating every historical proof constant as a measured implementation cost.
09 / System Security IIPairings and leakage-oriented responses
A Type-3 pairing has type , where all three groups have order . With additive source groups and generators , ,
The map is efficiently computable and nondegenerate. Do not interchange its arguments or pass two points to it. A historical symmetric pairing uses one source group in both positions; its algebra is not a literal API specification for a Type-3 library.
A modified Schnorr response from the original lectures
In the symmetric multiplicative setting of the lecture derivation, replace the scalar response by a group element. Let and return . Verification is
The scalar is not sent. Therefore the ordinary division attack on a leaked nonce no longer immediately applies to the wire response. This observation alone is not a proof of security in every leakage or randomness-injection model.
If a simulator programs , it can answer with without knowing . For the extraction branch, suppose a CDH challenge contains and the simulator has obtained two compatible accepting responses using programmed points and , with nonzero known and distinct . Then
The nonce term cancels. The remaining proof must explain how these two hash points are distributed, how the target queries are selected, which oracle queries are answered, and how often the required accepting pair is obtained. That is the difference between the extraction identity and a complete CDH or gap-CDH reduction. The identification demo and research prototype have their own explicit implementation profiles; check their group types instead of silently translating this symmetric sketch.
Read the extraction in three typed steps
Set and from the challenge. With , a valid response has the uniquely determined group value . Nondegeneracy in the prime-order symmetric setting makes the pairing verification injective in the response point. Raise to to remove the known randomiser. Do the same for the other branch. Divide the resulting group elements to cancel , and raise the quotient to to obtain .
At no point does the reduction recover , or as a scalar. All inversions are of known nonzero field elements. This explains why the result is a CDH solution rather than a DL solution. A DDH oracle, if required to recognise target tuples in the full simulation, changes the claimed assumption to gap CDH.
The lecture's noninteractive variant
The signature variant uses two distinct hash functions on a context containing the message and commitment: a scalar and a group point . It returns with . The same pairing equation verifies it. This paragraph retains the lecture's symmetric algebra; a concrete protocol must specify its domain-separated encodings and any public-key binding.
For an ordinary group-hash entry, the simulator chooses secret-to-the-adversary and returns . It answers even a chosen-nonce signing request by . At a target group-hash entry it instead uses . To extract, it keeps this point fixed and forks the scalar hash, giving
Unlike the preceding interactive extraction, both branches now use the same . A complete proof must arrange a suitable order of the two hash queries, handle a signing request at the target entry, and bound target selection and forking failure. If the adversary asks the scalar hash before the group hash, the simulator cannot silently assume the reverse order. The slides' group-hash embedding and this extraction identity are instructional components, not a replacement for those missing scheduling arguments.
Critical implementation distinction. The reduction knows because it sampled the random oracle internally. The adversary does not. Replacing the real group hash by for a publicly computable scalar would let anyone compute . This would forge responses directly. A proof's trapdoor representation must not become a public representation in the implementation.
10 / System Security IICompromised randomness: the same cancellation, different interfaces
The preceding derivation explains why leakage, setting and injection belong to one research line. They concern loss of control over ephemeral randomness. A reset can also supply a repeated ephemeral. It need not disclose that ephemeral or set it to a known value. The attack chapter in System Security I gives the scalar examples.
What the reduction must simulate
Suppose a training oracle accepts an adversarial nonce before computing the protocol response. It can model honest nonce generation followed by disclosure by sampling with the prescribed distribution and then returning it with the transcript. This comparison requires identical phases, permitted values and disclosure timing. It does not identify every leakage oracle with every setting oracle. Choosing public messages is a separate permission.
For ordinary Schnorr, a leaked or chosen nonce and one nonzero challenge expose . Repetition permits two responses with the same ; subtracting eliminates even if it is unknown. An abstract form, with known coefficients , is
Eliminate by multiplying and subtracting. Define . If in the prime field, then
This is a rank condition, not a consequence of merely having two transcripts. For Schnorr, and , so distinct challenges give the needed rank. More unknown witnesses, as in a representation proof, require an appropriate extraction argument rather than silently reusing the one-key formula.
Cancellation after lifting into the exponent
Continue in the symmetric group setting of the preceding chapter. After removing the known nonzero hash masks , let the two accepting responses become
Then and raising to gives , not . If the nonce is known, one response similarly gives for . With , the result is a CDH-type target. Pairings validate group responses; they do not turn group elements back into readable exponents.
In an ordinary simulated hash entry , the reduction answers a chosen-nonce query as . It knows , but not . At a target entry containing the hard instance, this method may no longer answer every query. The proof must handle that case, preserve oracle consistency and bound aborts. The published Salin dissertation, Sections 3.4.3–3.4.4 develops this simulation and cancellation pattern. Its symmetric and asymmetric challenge tuples must not be conflated.
Three checks before claiming security
- Interface: who chooses or learns which value, and at what phase? What does reset restore? An ephemeral seed, a derived scalar and a public commitment are not interchangeable.
- Algebra: are the responses scalars or group elements? What cancels, which denominator must be nonzero, and what type does extraction return?
- Probability: why can the simulator obtain the required accepting pair without forbidden access? Include target selection, oracle programming and failed forks. Physical reset and proof rewinding can share an identity without sharing an execution model.
This is the sense in which the publication catalogue uses one label, randomness leakage and setup. The label groups a methodology and threat family. A security guarantee remains the theorem for the individual construction and its stated model.
11 / System Security IIBLS and a straight-line extraction idea
BLS illustrates a different signature shape. In additive source notation take , , secret , verification key , and a proper . A signature is one point . Verify
The signature point is in , not . Validation must include the specified encoding, subgroup and nonidentity conditions. Hashing to a known scalar times is not a substitute for the required hash-to-curve construction: that shortcut changes the problem exposed by signatures.
For a proof sketch with matched public multiples, explicitly assume the following co-CDH-style problem is hard: given with random , compute . The reduction can answer ordinary hash queries with and sign them with . At a guessed fresh-message target query it programs . An accepting forgery there is already , so no Schnorr-style witness extraction is needed. Guessing and signing-query aborts still create a reduction loss.
This deliberately states the challenge tuple rather than calling every pairing assumption “CDH”. Other BLS group settings and theorem formulations must be matched to their own assumptions. The scheme originates in Boneh, Lynn and Shacham; the PBC example illustrates the pairing equation. Basic verification alone does not make naive aggregation safe against rogue public keys.
Additive and multiplicative notation describe the same source-group operation
On an elliptic curve, write and . The lecture-board shorthand writes and . The latter does not mean exponentiating the coordinates of a point. It means repeated application of the source-group law, which the library calls scalar multiplication. The target group of the pairing remains naturally multiplicative in both notations.
| Operation | Additive source notation | Multiplicative shorthand |
|---|---|---|
| Public key | ||
| Signature | ||
| Verify | ||
| Pairing correctness |
Matched public keys in both source groups
For the extended profile used in the exercises, publish as well as , using one secret scalar. Their consistency is checked by
Indeed, if and , equality implies . Nondegeneracy and prime order imply . Validate membership and exclude the all-zero key as required. The check proves equality of the represented exponents, not that the submitter knows that exponent.
Ordinary BLS verification in this orientation needs only. Publishing both keys is an explicit profile choice and is useful for the concrete reduction tuple above. It is not a universal requirement that every BLS user possess two independent secret keys. The BLS exercises and WebAssembly demonstration show this distinction operationally.
Why public scalar encoding is a deliberately broken exercise
Replace the proper by the deliberately defective function with publicly known . In the extended profile anyone computes , without a signing query. Even with only public, one signature at a nonzero gives , enabling all further signatures. Correct BLS requires a specified hash-to-curve map whose output does not reveal such a scalar relation to the generator.
This does not mean the hashed point is an independent generator selected from nowhere: in a prime-order group any nonidentity point generates the group, but its discrete logarithm relative to is not publicly provided. Use an appropriate hash-to-curve suite and domain separation, not a programmer's ad hoc encoding. RFC 9380 defines that interface.
Complete the simple target-query argument
Fix an upper bound on distinct hash-table entries, including entries created by signing and final verification. Choose uniformly from before running the adversary. At position , answer with the random challenge point ; at all other positions answer with and retain . Each answer has the same uniform distribution in the idealised group-hash model, so the target position is hidden by the answers.
Condition on being the final fresh-message forgery's position. That message was not signed, so the target signing abort never occurred. If the forgery verifies, injectivity of the pairing in gives . This elementary reduction has success under these idealised distributions and query conventions. Extra rejection rules or a concrete hash-to-curve instantiation must be accounted for separately. This is a transparent baseline argument, not a claim to reproduce every tighter BLS theorem.
12 / System Security IIRSA-FDH and Goh–Jarecki: compare extraction paths
RSA full-domain hash
Let be an RSA modulus for distinct primes , let be invertible modulo , and let . Here is an RSA exponent, not the pairing map of the preceding chapters. The distinct name denotes the full-domain hash into the RSA group, not a scalar hash into . With , sign as and check .
Given an RSA inversion challenge , a reduction chooses one fresh hash-table position as its target. At ordinary positions it samples and returns , retaining as a simulated signature. This is uniform because exponentiation by is a permutation. At the target it returns and cannot answer a signing request there. If a fresh-message forgery lands at that position, the forged signature is an RSA root of .
Count distinct table entries, including those created internally by signing and final verification. Choosing among a known upper bound of positions gives an inverse-polynomial target probability. Conditioned on targeting the final fresh message, it was not previously signed, so the target signing abort does not occur. This is a query-guessing reduction, not a use of the Schnorr forking equation. Full-domain hashing means the RSA group domain, not a short digest interpreted without the specified encoding.
Goh–Jarecki's equality-of-discrete-logs approach
In this chapter return to , . A message salt determines , and the signature contains together with a Fiat–Shamir proof that and use the same exponent. Choose , compute , , then
The verifier reconstructs and and recomputes . The original EDL signature encodes . The salt is separate from the proof nonce. Use parameters from a selected security analysis, not a historical bit length copied without review.
The structural point is that a forgery already contains . If a target hash is embedded as , the corresponding valid gives . A complete reduction must justify simulation of signatures and proofs, validity of the relation, hash programming and its success bound. The original Goh–Jarecki paper supplies that analysis; the displayed division is its teaching-level extraction idea, not the whole tightness proof.
RSA's target row must be chosen before its future is known
A slide may say “choose one of the hash-table rows”. At the start, the future number and contents of those rows are unknown. Use a known upper bound , choose a target index beforehand and create rows lazily. If fewer than rows are used, the unused choices simply count as failed target guesses. Choosing the row after seeing the forgery would not describe the same online simulation.
Sample ordinary roots from , not from an undeclared set of integers. The map is a permutation of this group, giving the exact uniform distribution used by the proof. Store the root and hash value together, so a hash query before a signing request and a signing request before a hash query remain consistent. A signing request at the challenge row aborts; filling it with a dummy root that fails verification would reveal the simulation.
The equality-of-discrete-logs proof behind EDL
An interactive version sends , receives a random challenge and returns . It proves that one exponent relates both to and to . Verification checks two equations:
To simulate a transcript for a prescribed challenge, sample and set and . If the equality statement is true, this has the honest distribution by the same translation argument as Schnorr. From two accepting transcripts with the same and distinct challenges, extraction gives a scalar satisfying both public relations. The second check is essential: a proof only of would not certify that the supplied equals .
The noninteractive proof hashes the complete equality statement and commitments. Its simulator programs that challenge only at an unoccupied input. The tight EDL signature analysis additionally uses the random message salt to arrange appropriate hash embeddings while answering signing queries. It is not the naive assertion that every hash query can be set to a CDH challenge and still be signed. Keep the proof of equality, the signing simulation and the final group-element extraction as three separate steps.
Comparison exercise. For Schnorr, RSA-FDH, BLS and EDL, write a two-column table: what the forgery contains, and what the hard-problem solver needs. Identify precisely where rewinding is needed and where an accepting output can already contain the hard value. Do not infer tightness from the absence of a final rewind alone.
13 / System Security IIGame hopping: ElGamal and hashed ElGamal
Let be the event that an adversary outputs 1 in game . The triangle inequality gives
Each hop needs a reason: exact equality of distributions, a statistical bound, or a computational reduction. If two coupled games are identical until a bad event, their output probabilities differ by at most the probability of that event under the coupling. This is a proof tool, not permission to change unrelated distributions. Shoup's sequences-of-games tutorial develops this method.
ElGamal under DDH
In the real game the challenge ciphertext is for a hidden bit . Replace by an independent uniform . A DDH distinguisher embeds , samples the challenge bit itself, and outputs one exactly when the adversary's guess equals . It must test this success event, not simply return the guessed bit. In the final game, multiplication by permutes , so is uniform regardless of . This establishes the CPA argument with the appropriate advantage convention.
Hashed ElGamal and the decisive oracle query
For bit strings of length , set with . Until the adversary queries the exact DH point, its mask is an independent random string. Thus distinguishing the message requires either querying that point or falling within the accounted simulation error.
A CDH reduction need not be able to recognise the correct query. It can record group queries and output one selected at random. If a decisive query occurs among at most queries, selection incurs a factor . A DDH oracle would allow recognition and changes the assumption to a gap setting. Do not silently grant it to a plain CDH reduction.
Neither argument proves CCA2 security. The related-ciphertext attack on ordinary ElGamal and the malleability of an unauthenticated XOR payload remain relevant. The first course states the corresponding attack interfaces.
State the events, not only the game names
For ElGamal, give a DDH distinguisher the tuple . It runs the encryption adversary with public key , obtains two group messages , samples and returns . It outputs one if the adversary guesses . When and , this is the real game. When is independent uniform, the success probability is exactly because multiplication by either message permutes the group.
Therefore the absolute difference of the distinguisher's output probabilities equals the encryption adversary's guessing bias. If a paper defines encryption advantage as twice that bias, a factor two appears when the same bound is expressed in that convention. It is a convention change, not an extra cryptographic attack.
No decryption oracle was answered by this distinguisher. Adding such an oracle would require decrypting under the unknown exponent of , which the DDH input does not supply. This is why the preceding proof is an IND-CPA proof. It does not justify the CCA1 claim that appears next to the historical warm-up example.
The hash-smoothing route in the original lecture
The hashed-ElGamal slides use a different route from the random-oracle query argument. First replace the DH mask point by a uniform using DDH. Next replace by a uniform -bit string. This second hop requires a separate smoothing or extraction condition on the hash family: its output on a uniform group element must be sufficiently close to uniform, with the public hash description included in the comparison.
If that distance is at most , then the two hops bound the guessing bias by the DDH distinguishing advantage plus . Collision resistance by itself does not establish smoothing. For example, prefixing a digest by a fixed zero can preserve collision resistance while making its output trivially distinguishable from a fully uniform string of the longer length.
One precise information-theoretic formulation uses an independent public seed selecting a universal hash family, with an output short enough relative to the input's entropy. Another formulation treats the hash as a random oracle and accounts for queries to the hidden point. These are different assumptions and proof paths. The original slide's “hash smoothing” must not be silently replaced by a generic claim that any hash output is random.
A full decisive-query experiment
In the random-oracle route, replace the challenge pad by a uniform string. All hash answers are sampled consistently and independently. Until the adversary queries the exact DH point, this game can be coupled with the real challenge distribution. Let denote that query event. The difference of success probabilities is at most by the identical-until-bad argument.
A CDH solver given can generate the uniform-pad challenge without knowing the DH point. It records each group input to the hash oracle and returns a random one from a padded list of length . Whenever the decisive query occurred, selection succeeds with probability at least . The solver need not recognise which query was correct. The argument relates the event in the coupled uniform-pad experiment to the first decisive query; it does not require computing the missing real pad in the simulator.
Exercise. Explain why replacing the random selection by “return the correct hash query” assumes an extra recognition capability. Then repeat the reasoning for a simulator with an explicit DDH oracle and identify the changed hardness assumption.
14 / System Security IIAnonymous proofs and ring signatures
For a ring , an OR proof establishes knowledge of at least one secret with without revealing which one. Fix a canonical ordered ring and bind it to the challenge. Simulate branches by choosing and setting . For the real branch choose and set .
Define , set , and return . Verification reconstructs every and checks
This is a pedagogical Fiat–Shamir OR composition of Schnorr protocols, not a claim that every ring paper uses this exact encoding. With two accepting forks on the same commitments and ring, a changed total challenge implies a changed branch challenge. For such a branch, . A ring-unforgeability theorem must still ensure that this branch supplies a useful uncorrupted target, with the required key-registration and signing-query rules.
Anonymity is a separate claim about the distribution of signatures for different eligible signers. It does not follow from unforgeability. Nor does an algebraic fork identify the signer of an ordinary publicly observed signature; the extractor has access to a special replay experiment. Compare Herranz and Sáez's ring-forking analysis, the cloud-course treatment, and the hierarchical-signature research demo.
Why the constructions must not be mixed
The OR construction uses a sum of branch challenges tied to one hash of all commitments. The Herranz–Sáez construction below uses one separate hash per commitment and one aggregate response. Their verification equations, signature sizes and fork conditions are different. An extraction argument for one cannot be pasted into a proof of the other by renaming the signature.
Ring signatures also differ from multisignatures: one ring member signs, whereas a multisignature normally attests to participation of all specified co-signers. A group-signature system may have an opening authority. The ordinary ring signature below has no such authority. None of these terms means that a public transcript identifies which member actually ran the signing algorithm.
15 / System Security IIHerranz–Sáez: the actual ring construction
This chapter follows Javier Herranz and Germán Sáez, Forking Lemmas in the Ring Signatures' Scenario, especially Sections 4.2–4.4 of the published research report. We rename the paper's secret to , its public key to , and its scalar response to , keeping the course's meanings consistent. The aggregate ring signature is denoted .
Fix a ring of public keys in the same prime-order group. Keys are nonidentity, and the ring entries are distinct. The commitment restrictions require , with realistic ring sizes much smaller than . Fix a message and a hash . For this historical fixed-ring scheme the hash input is the pair ; it is not the OR construction's hash of an entire commitment vector.
Signing with member j's secret
- For each , sample distinct nonzero scalars uniformly without replacement, and compute and .
- Sample and compute the remaining commitment
- If or it duplicates an existing , repeat step 2. Keep the previously chosen commitments fixed.
- Set and compute the scalar response
- Output . The challenge values are recoverable from the message and commitments; the paper also writes them explicitly in its generic signature tuple.
The special commitment is the adjustment that closes the verification equation. It uses other members' public keys, not their private keys. Only the final scalar computation uses the actual signer's secret. The position is not included as an output field.
Verification and correctness
Validate the parameters, ordered ring, message encoding, scalar response and group elements. Reject identity or duplicate commitments. Recompute every and accept if
Substitute the definition of . For each , the inverse public-key factor in cancels the matching factor in the verifier's product. What remains is
This proves correctness for every accepted signing attempt. It does not yet prove anonymity or prevent an outsider from creating a new valid tuple.
A two-member example with declared toy hash values
Use , with and . Let member 2 sign. Choose , so , and suppose the fixed toy hash table returns . Choose . Then , which is neither the identity nor . Suppose . The response is .
The two sides of verification are and . These fixed toy hash values support a readable arithmetic trace only. They are not a secure hash implementation or parameters for deployment.
Fixed-ring proof versus a variable-ring application
An application with variable rings must specify a canonical ring encoding, ring selection and key-registration rules. Binding a domain and the ordered ring to each hash input is a natural teaching extension, but it is a different byte-level scheme and needs a corresponding proof statement. We do not claim that the historical fixed-ring theorem automatically covers maliciously registered keys, arbitrary ring changes or adaptive corruption.
16 / System Security IIAnonymity: an exact distribution proof
Fix the public ring, message and hash function. Consider any valid signature with pairwise distinct nonidentity commitments. Let
There are ordered tuples in . We will show that each possible signer gives each one exactly the same probability. This is a pointwise statement about distributions, not an argument that “all signatures look similar”.
First, sample the other n − 1 commitments
For signer , the other commitments are uniform ordered choices without replacement from nonidentity points. The probability of their particular values in the fixed target signature is
For , this empty product is one. The public hash values for those commitments are now fixed, regardless of whether the hash is computationally ideal. The anonymity calculation does not need a random-oracle assumption.
Then, account for rejection sampling correctly
For those fixed other commitments, the map is a bijection from to . Each trial for is uniform on . The signing algorithm excludes exactly points: the identity and the existing commitments. Therefore the accepted is uniform on the remaining points.
Do not assign probability to the accepted value. Summing over any number of rejected trials gives, for one allowed point,
The expected number of trials is . For a tiny ring in a cryptographically large group this is close to one. The restriction is essential for termination and for the probability calculation.
Finally, the scalar response cannot reveal the signer
For a fixed commitment tuple the hash values are fixed. The verification equation determines a unique because exponentiation by is bijective. Thus no extra signer-dependent choice is left in the response. For every signer ,
The right side is independent of . Hence any two signers induce identical distributions on the public signature. In the usual two-candidate challenge game, even an unbounded observer guesses the hidden signer bit with probability exactly . For a uniform prior over all members the posterior remains uniform. With a nonuniform prior, the signature does not magically erase external information; it leaves that prior unchanged.
Check the same signature under another signer
In the preceding toy example, the signature was . Member 1 can also produce it: its ordinary other-branch nonce is , and its closing scalar is . Then , and . Each signer produces that same signature with probability under the specified sampler.
This explanatory reconstruction may use discrete logarithms because the toy example supplies them. The actual signing algorithm does not compute logarithms of other users' keys. A proof that a transcript could have arisen from any member is different from an algorithm that recovers another member's secret.
What this theorem does not hide
The claim is about the public transcript under the stated sampler. Timing, network addresses, browser logs, faulty randomness, an exposed signing state or a disclosed random tape can give additional evidence absent from that view. Even knowing all long-term keys does not change the pointwise transcript calculation, but knowing the actual ephemeral choices can. Correct verification by itself is never a test of anonymity.
Exercise. Enumerate the toy experiment exactly for both signers, including the conditional distribution after rejecting collisions. Compare counts for every accepted signature. Then bias the other-branch nonce distribution and determine whether the pointwise equality still holds. An experiment can catch a sampling error; the symbolic counting argument establishes the general property.
17 / System Security IIRing forking and the cost of multiple queries
For Herranz–Sáez, a useful fork must keep the message, ring and every fixed. Exactly one challenge, say , must change. Divide the two verification equations:
If two branch challenges change, the quotient generally contains two public-key powers and this one-variable extraction does not follow. If a commitment changes, it also fails to cancel. These are not cosmetic differences between forks.
Why the index pattern is larger than Q
The forger queries distinct inputs . Associate a successful forgery with the ordered vector of their query indices . There are at most
such vectors. The ring-forking argument groups successes by this entire pattern. It rewinds at the latest of those queries. Earlier signature challenges remain fixed; the latest one changes. Successful replay must return to the same index pattern. The common prefix fixes all the associated query inputs, so the commitment tuple really is the same.
This is why applying the ordinary -indexed forking bound as if it already guaranteed the required ring fork would be unjustified. For example, gives , not and not the unordered-subset count . Each commitment position is associated with its own public key, so order matters.
The historical estimates and their assumptions
Under the generic conditions in Herranz–Sáez, the no-message threshold is , with challenge alphabet parameter . The expected-time bound is . This carries over the earlier schedule argument with query-index patterns in place of single indices.
For chosen-message signing queries and signing-simulation time , the report states the threshold and bound
The collision accounting retains at least . The multiplier is the rounded-up value of . The quadratic term controls oracle/simulation collisions; it is not part of the final modular inversion. The generic statement assumes high-entropy commitments, a suitable signing simulator and the stated distinctness conditions. For a hash uniform in , one can use as a conservative bound on inverse challenge probabilities while checking those other conditions separately.
Scalability boundary. can be enormous, and need not be polynomial when the ring size grows with the security parameter. The displayed historical reduction must not be called a tight, practical bound for arbitrary large rings. A useful parameter claim needs the actual ring-size regime, query bounds and a theorem applicable there. A threshold greater than one makes this sufficient-condition statement vacuous, not automatically false or an attack on the construction.
Signing simulation and where collisions enter
One instructive simulator first chooses the other commitments and their hash values, then chooses and solves the verification equation for :
It rejects identity/duplicate commitments and programs the as-yet-unanswered value . If that input is already assigned, it must not overwrite the table. This gives the local algebra behind simulation; a global proof couples the distributions and counts all programming conflicts. The report's simulator additionally samples distinct challenge values and bounds the statistical difference from independent hash outputs. Distinct challenges are not a rule imposed by the real signing algorithm.
This distinction prevents a common mistake: adding a rejection rule to the actual signer merely because it was convenient in a simulator. The anonymity count above uses the real signer's commitment restrictions, not the simulator's auxiliary conditioning.
Embed a useful unknown in every possible extracted branch
In the report's fixed, honestly generated ring reduction, start with a DL challenge and choose distinct nonzero multipliers . Publish . When is a nonidentity generator, this produces uniformly distributed distinct nonidentity ring keys under the corresponding sampling convention. The reduction knows the multipliers, not their secret logarithms.
Whichever branch changes, the quotient of the two verification equations gives
This avoids an additional guess of which honest member supplies the extracted logarithm in that fixed-ring setup. It does not simulate an adversary that asks to corrupt arbitrary ring members: their secrets remain unknown. A stronger corruption or adversarial-key model requires another reduction, rather than a silent extension of this one.
18 / System Security IIAKE reductions and the meaning of state exposure
AKE proofs must follow multiple session instances, not just a single signature forgery. A session records its role, intended peer, sent and received messages, state, acceptance and derived key. A partnering relation says which instances belong to the same exchange. A freshness predicate excludes revealing the test key and specifies permitted combinations of static and ephemeral compromise.
The session-oracle interface
Write for session at party . A CK-style teaching experiment separates the following operations. Their precise admissibility rules belong to the selected definition; eCK and device-leakage refinements do not merely rename this interface.
| Query | Effect |
|---|---|
| Delivers message and obtains the protocol's next message or acceptance result | |
| Returns a completed session key | |
| Returns the session state specified by the model, not automatically every long-term secret | |
| Exposes the party's state according to the corruption definition | |
| Models deletion of completed session state where the definition supports it | |
| Returns the real key or a same-length random value for an eligible fresh session |
Matching sessions must agree on the appropriate roles, identities and transcript. A secure experiment also requires agreement of keys for honest matching sessions. Forward secrecy then depends on which later corruptions are permitted after completion and erasure. Declaring a session expired in a proof does not guarantee that an implementation erased every copy of its state.
SIGMA uses signatures and a MAC to bind the DH exchange to identities. A proof outline partitions failure events: a false authentication may yield a signature forgery; accepting an inconsistent identity binding may yield a MAC forgery; distinguishing a fresh honestly partnered key is related to the DH and key-derivation assumptions. The simulation must show that every signing or MAC request it uses is permitted. Merely declaring all primitives secure does not prove their composition. See the original SIGMA analysis.
Agreement is not secrecy
For honest matching sessions, substituting the two local computations should give equal keys. This is a correctness property of the protocol execution. In an adversarial network, proving that the accepted transcripts really match can require authentication assumptions. Key indistinguishability is yet another property: even if the endpoints agree, an adversary might also know their key.
Use an ordered session identifier containing roles, identities and the relevant authenticated transcript. A matching partner is not simply “another session with the same nonce”. A partner may not have completed yet when the local party accepts, depending on the protocol. State which completion and partnering conditions the test interface requires rather than copying one informal slide definition into every AKE model.
For secrecy, sample a hidden bit and return either the fresh completed session's real key or an independent key of the same length. Exclude revelation of that key and its matching partner's key. Specify what happens if a later query destroys freshness. Some lecture experiments place the test at the end; other models allow continued interaction subject to freshness. These are not interchangeable experiments.
19 / System Security IIThe lecture's modified SIGMA: construction and audit
This chapter develops the historical classroom protocol, not an unpublished construction. It is distinct from standard SIGMA and from NAXOS. Its purpose is to expose the relationship between long-term and ephemeral contributions, deniable authentication, and the precise reveal cases of a reduction.
Let the initiator have secret and public key , and the responder secret and public key . Fresh nonzero ephemeral scalars are . Their transmitted points are and . The common secret is
The lecture uses two separately labelled PRF outputs under this shared group secret: for the application key and for identity MACs. Here denotes a pseudorandom-function family whose key domain must be defined for the encoded group secret. In a concrete system one specifies extraction, encoding and domain separation rather than passing an arbitrary point representation to an unspecified PRF.
The three messages
Write for the session identifier. Let be an ordinary responder signature, a ring signature for , and a message authentication code. The lecture flow, with field boundaries made explicit, is:
where
The roles and prevent reflection of one party's authentication object as the other's. Identity-to-public-key bindings and the MAC checks must be validated before acceptance. The responder's ring must be the same ordered pair of authenticated keys that the initiator used. Nonidentity/group-membership checks apply to the received DH points.
The initiator's ring signature can also be produced by the responder, which explains the intended nontransferability of that authentication evidence to an outsider. The responder's ordinary signature remains publicly attributable. This asymmetry is intentional in the displayed three-message variant; it should not be described as making every part of the exchange equally deniable.
Which compromise combinations does the slide analyse?
After honest matching sessions have accepted, the historical refinement considers four maximal reveal patterns: , , and . It excludes revealing both for the initiator or both for the responder. If both values of one party are known, exponentiating the other received point computes immediately.
This is a post-acceptance, matching-session analysis with additional authentication restrictions. It is not a claim of unrestricted eCK security. In particular, during an active exchange, compromise of a ring member's authentication key can enable KCI as explained in System Security I. The original lecture itself distinguishes the refinement from eCK.
Reconstruct the four DDH embeddings
Give the reduction a DDH tuple with unknown . It wants , and to use as the candidate . The following table shows the algebraic setup for each reveal pattern. All scalars chosen by the reduction are nonzero so the indicated inverses exist.
| Values to reveal | Values sampled and known | Public setup and hidden factors |
|---|---|---|
| Sample | , ; hidden , | |
| Sample | , ; hidden , | |
| Sample | , ; hidden , | |
| Sample | , ; hidden , |
The hidden scalar expressions explain the distribution; the reduction does not compute them. In every row and , hence the real shared secret is . If is random, the substituted key source is independent. This makes the algebra of each case explicit, while keeping the available operations honest.
The five-game sequence and its missing obligations
Let be the real-key test experiment for an eligible target session. In , replace its shared secret by an independent group element through a DDH step. In , replace the PRF outputs at the distinct labels by independent strings. In , keep the MAC key as in that hybrid but make the test output independent of it. In , reverse the appropriate PRF and DH replacements for the rest of the public transcript, leaving only the test key random.
If each hop has a valid simulator, the triangle inequality adds their distinguishing bounds. Two DDH hops and two PRF hops can then produce a schematic bound , before authentication errors, target-session selection and reveal-pattern guessing are included. The symbols denote the actual distinguishers' advantages, not universal numbers attached to the primitives.
The DDH table alone does not finish this proof. In some rows the reduction lacks a long-term signature key. It must still generate the required ordinary or ring signatures with the correct distribution, answer other sessions, and preserve oracle consistency. A programmable-random-oracle signature simulator is one possible ingredient only for a scheme and model that justify it. It is not available merely because an arbitrary signature scheme is EUF-CMA secure.
Similarly, an adaptive adversary may decide which reveal pattern to request only after seeing messages. A reduction that selects a row in advance must justify this selection and its loss, or use a simulator that can answer every admissible continuation. Honest-key distributions, public certificates, multiple sessions and the timing of key reveals belong in that argument. These are explicit proof obligations rather than claims that the classroom sketch already provides a complete modern AKE theorem.
Authentication and agreement in the intended model
If an initiator accepts a new responder signature on a tuple the honest responder never signed, that event yields an ordinary signature forgery under the required uncompromised-key conditions. For the other direction, a fresh accepted ring signature can yield ring forgery only if the adversary lacks every allowed signing secret in that ring. A compromised verifier is a ring signer, so that argument cannot establish KCI resistance.
When the relevant authentication conditions ensure matching and the two parties use their honest local factors, the equality proves key agreement. It does not by itself prove secrecy under the reveal patterns. Keeping these statements separate makes the original lesson reusable without overstating its theorem.
20 / System Security IINAXOS and exposure-aware proof design
A seed is not the derived exponent
Here is the domain-separated scalar oracle denoted in NAXOS; denotes its independent session-key oracle , with the required bit-string output. Let Alice's static key be , Bob's be , with public keys and . Let be ephemeral seeds. Define and , then exchange and . With ordered identities included, the DH inputs agree:
The first components are both , the second both , and the third both . The security model specifies exposure of the ephemeral seeds. Revealing itself, changing the derivation function, or learning a party's static key and its seed together may be outside the freshness conditions supporting the theorem. This is why “hashing the nonce makes it leakage-resistant” is not a sufficient claim. Consult LaMacchia, Lauter and Mityagin, Stronger Security of Authenticated Key Exchange.
Exercise. For each exposure pattern, list which of the three DH components the adversary can compute. Then state whether the session is fresh under the selected model. Do not conclude insecurity merely because an excluded experiment is trivially solvable, or claim protection for a reveal interface absent from the theorem.
Expand every shared component
Alice can compute from her static key and Bob's received point, from her derived exponent and Bob's public key, and from that exponent and point. Bob computes the corresponding . Equality follows term by term, not from a vague appeal to Diffie–Hellman. The identities must occur in the same agreed order, rather than each party placing its own name first.
Now suppose the model reveals Alice's seed but not . The adversary cannot simply evaluate because one input is missing. If it instead receives Alice's derived exponent , it can compute and immediately. The remaining component may still be unavailable in a particular honest-partner case, but in an active attack the adversary may choose a peer point with known exponent. Analyse the complete session, not only a list of independent secrets.
The published NAXOS analysis splits exposure and partnering cases and uses precisely defined hash and reveal interfaces. A classroom implementation should record the seed and exponent as separate fields so tests cannot accidentally model the wrong reveal operation. It should also record which case the proof invokes. Erasing a seed in a model does not guarantee the runtime erased temporary exponent copies.
21 / System Security IIStorage soundness, extraction and private evaluation
Three cloud claims require three different arguments. Audit completeness says that an honest stored file passes. Retrievability says that sufficiently successful answers let an extractor recover the encoded file. Computation privacy says that an evaluator's view leaks only what the model permits. None is a substitute for another.
For the linear storage audit, let the unknown block vector be . A valid scalar response has the form , where contains the challenge coefficients, with zero entries outside the selected indices. Stack responses into . Recovery by linear algebra requires . Repeating the same accepting query produces the same row and does not improve rank.
This matrix argument assumes that accepted responses are the correct linear combinations. A security proof must first justify that fact against a malicious prover, or bound the probability of false acceptance using the construction's assumption. It must then establish that a sufficiently successful prover yields enough independent equations. Erasure decoding, if used, is a further explicit step. The multi-copy PDP attacks show what goes wrong when the accepted relation instead describes a smaller, lossy representation.
Privacy changes the interface again. If an unmasked public auditor can obtain a full-rank system of plaintext responses, the auditor can itself recover the blocks. A privacy-preserving audit therefore needs a different response profile and a proof compatible with extraction. “We mask the scalar” is incomplete unless verification and the extractor are both specified.
For homomorphic evaluation, separate the encryption security game from a claim about the server's answer. A server may return a valid encryption of the wrong result without distinguishing any encrypted input. Conversely, an honest correct result can reveal sensitive information if the output function permits it. Write down the function, authorised output and input/output bounds before selecting a primitive.
Proof checkpoint. For each statement, list the reduction's input, its oracle access, what it must simulate, and what its final output solves. A DL solver, a file extractor and a privacy simulator have different output types. Reusing the word “proof” does not make their compositions interchangeable.
22 / System Security IIProof laboratory
Submit an implementation, a mathematical argument and adversarial tests. Use the same variable meanings in all three. Every proof should explicitly separate setup, query simulation, extraction and probability accounting.
- Schnorr: prove transcript-distribution equality, implement a resettable prover and verify special soundness. Include rejection and equal-challenge branches.
- Okamoto: implement two-scalar responses, extract a representation, and recover the generator relation only when the extracted witness differs. Explain why the reduction can answer active training sessions.
- Fiat–Shamir: build a lazy oracle table and signing simulator. A repeated query must return the same answer. A forced programming collision must trigger the documented failure path.
- Pairings: implement BLS verification with typed , and scalar values. Include malformed-input and wrong-message tests. Keep this separate from the symmetric leakage-response derivation.
- Two signature proofs: compare RSA-FDH's target-query embedding with Schnorr's forking reduction. For Goh–Jarecki identify why the group element in the forgery changes the extraction strategy.
- Encryption: write the ElGamal DDH hybrid and the hashed-ElGamal query-selection reduction. Give a complete bound with your query-count and advantage conventions.
- Anonymity: implement the Herranz–Sáez sampler on a small test ring and enumerate its output distribution for two different signers. Preserve rejection of duplicate/identity commitments. Separately implement the OR composition and explain why its verification and fork conditions differ.
- AKE: record sessions and reveal queries for SIGMA and NAXOS. Identify the exact freshness clause used in each claimed security case.
The MCL library, existing identification demos and Okamoto demo support implementation work. Use cryptographic randomness and properly validated group encodings for realistic tests. Toy arithmetic is appropriate for tracing equations, not for making security or performance claims about deployed systems.
Required evidence for a proof implementation
For each experiment, include an honest accepting run, each documented adversarial branch and the expected failure cases. Assert that repeated oracle queries return identical answers, restored prefixes stay identical and forked suffixes do not accidentally reuse stale state. An extractor must reject equal challenges, a changed commitment or an invalid transcript rather than print a meaningless scalar.
Give the exact distribution sampled by every random choice. For the ring exercise, a histogram based on a few signatures is not an anonymity proof. For the toy group, enumerate accepted tuples and their weights. Explain why the accepted closing commitment has probability and why failed signing attempts are not separate public signatures.
For real group operations, use the existing MCL/WebAssembly demonstrations and documented library functions. Keep a scalar, a point, a point and a element as different types. Include a wrong-message BLS test and a mismatched-public-key test. None of these checks licenses replacing hash-to-curve by public scalar encoding.
23 / System Security IIProof clinic: common mistakes and repairs
“The adversary answered once, so a rewind gives a second answer.”
A successful first branch does not force a second success. Restore the correct state, define the accepting-challenge fraction and compute the joint event. For identification, this gives the square-minus-diagonal expression. For Fiat–Shamir, the selected query index adds another constraint. A rejection on the second branch is a failed extraction attempt, not evidence that special soundness is false.
“The simulator computes the unknown nonce from the response.”
It must not do so if that calculation requires the secret key in the challenge. For Schnorr simulation, sample the response and challenge, then compute the commitment from the public equation. The hidden nonce appears only in the distribution proof, where a bijection explains why the simulated transcript has the correct law.
“The ring signature is anonymous because every member can sign.”
Signing capability is insufficient. One member could use a visibly biased nonce distribution or put its index in the signature. Prove equality of output distributions for the specified sampler. The Herranz–Sáez count assigns the same probability to every fixed valid tuple for each candidate signer, including the rejection-sampling step.
“A forgery gives one ring member's key, so it solves the target problem.”
Only if the reduction connected that member to its challenge. The fixed-ring embedding puts a known nonzero multiple of the same unknown logarithm in every ring key. An adversarially registered or corrupted member changes this argument. An extractor returning a key the adversary already knew may be useless for the intended reduction.
“Every random oracle response is a fresh random value.”
Only the first response at an input is fresh. Repeated queries use the stored value. A signing simulator cannot change an answer that the adversary has already received. A rewind creates a different experiment branch with the same prefix, not a license to contradict an answer inside one branch.
“Anonymity and unforgeability use the same assumptions.”
Not necessarily. In the fixed-ring Herranz–Sáez transcript calculation, anonymity is information-theoretic and works for a fixed hash function. The unforgeability argument is computational, uses the random-oracle model and relies on a hard DL problem. Disclosing signing randomness changes the anonymity view and lies outside that transcript-only statement.
“The library supports pairings, so the symmetric proof is implemented.”
Check types. A Type-3 API pairs a point with a point. An old derivation that uses one source group in both positions cannot be copied literally. Decide which public multiples must be available in each source group, specify the challenge tuple, and verify that every simulator operation is still computable.
24 / System Security IIPublished references
- Schnorr. Efficient Signature Generation by Smart Cards. The identification and signature equations used as the starting point.
- Okamoto. Provably Secure and Practical Identification Schemes and Corresponding Signature Schemes. Representation witnesses and active identification.
- Pointcheval and Stern. Security Arguments for Digital Signatures and Blind Signatures. Sections 2.3 and 3 explain splitting, simulation and the historical forking constants.
- Bellare and Neven. Multi-Signatures in the Plain Public-Key Model and a General Forking Lemma. Lemma 1 separates the probability experiment from a particular signature scheme.
- Herranz and Sáez. Forking Lemmas in the Ring Signatures' Scenario. Section 3 develops ring forking; Section 4 specifies the Schnorr-based ring construction and its anonymity argument.
- Boneh, Lynn and Shacham. Short Signatures from the Weil Pairing. Pairing-based signatures; match the theorem's group setting to the implementation.
- Goh and Jarecki. A Signature Scheme as Secure as the Diffie–Hellman Problem. EDL signatures and the role of a tight reduction.
- Shoup. Sequences of Games: a Tool for Taming Complexity in Security Proofs. Couplings, bad events and sequences of justified transitions.
- Krawczyk. SIGMA: the SIGn-and-MAc Approach to Authenticated Diffie–Hellman and Its Use in the IKE Protocols. Authentication and identity binding in standard SIGMA, distinct from the classroom modification.
- LaMacchia, Lauter and Mityagin. Stronger Security of Authenticated Key Exchange. NAXOS and a precise treatment of ephemeral-secret exposure.
- IETF. Hashing to Elliptic Curves, RFC 9380. Hash-to-curve terminology, suites and domain separation.
The companion System Security I supplies the attack traces. Security in Cloud Computing develops applications to outsourced storage and private computation. These notes use course material and published literature only.