The multiplicative groups of the preceding sections harbour a structural weakness. As 7.22 recorded, the discrete logarithm in does not resist attack at the generic square-root cost: the index-calculus family of algorithms exploits the fact that residues come from ordinary integers, and integers factor into primes, to solve the problem in subexponential time. The practical consequence is severe. To push the cheapest known attack on beyond operations, the prime must run to thousands of bits, and every exponentiation drags that bulk along. What cryptography wants instead is a group of roughly elements for which no attack faster than the square-root bound is known—a group without known exploitable arithmetic behind its elements, where the generic attacks of 7.22 remain the best known. This section constructs the standard supplier of such groups.
An elliptic curve is, concretely, the solution set of a certain cubic equation in two variables, together with one extra “point at infinity”. Its notable feature is that this solution set carries the structure of an abelian group, defined by a strikingly geometric rule; and that inverting scalar multiplication in this group is hard—the discrete logarithm problem in a well-chosen elliptic-curve group appears to require exponential time. The combination of clean algebraic structure with a hard computational problem is exactly what cryptography requires.
Throughout the section we work over a field whose characteristic (4.30) is neither nor . In the applications is a finite prime field with a large prime, but the basic theory is cleaner over a general field, and we specialise when needed. The reader should keep in mind the two Pasta curves
where and are the two -bit primes
These are the primes that 6.23 and 7.18 handled as black boxes; here they finally acquire their curves. The constants are the deployed ones: the primes and the curve equations are specified in §5.4.9.6 (“Pallas and Vesta”) of the Zcash protocol specification. The curve , defined over , is called Pallas; the curve , defined over , is called Vesta. Together they form a cycle: the number of -points of Pallas equals , and the number of -points of Vesta equals —a coincidence of design, not chance, whose meaning unfolds across the section. The equation serves as the running example throughout, with a toy curve over developed in parallel for hand computation.
Let be a field of characteristic , and let . The short Weierstrass equation with coefficients is the equation
| (9) |
The elements and are the Weierstrass coefficients.
Over a field of characteristic , an invertible affine change of variables always reduces the most general cubic of this shape, , to the form (9): completing the square in (possible since ) removes the and terms but changes the quadratic coefficient to ; translating with the substitution (possible since ) removes the term. This is precisely why characteristics and are excluded: those cases require the longer Weierstrass form, and they are not relevant to the Pasta curves, which live over large prime fields.
Not every choice of gives a usable curve. We must exclude the cubics whose graph has a self-intersection or a cusp, because the group law defined below breaks down at such a singular point.
The discriminant of the short Weierstrass equation (9) is
| (10) |
The equation, and the cubic , is nonsingular (or smooth) if , equivalently . (The factor is a convention inherited from the general Weierstrass form; over our fields it is nonzero and affects nothing.)
The quantity is exactly the obstruction to having distinct roots. The following lemma makes this explicit by a computation reusable for any depressed cubic—a cubic with no square term—and is the engine of the smoothness criterion.
Let with in some field containing . Then
Expanding and comparing coefficients with gives Vieta’s relations for the depressed cubic:
Differentiating by the product rule and evaluating at a root kills every term but one: . Multiplying the three evaluations pairs each factor with :
It remains to compute . Expanding the product and collecting the elementary symmetric functions of the squares ,
Vieta’s relations evaluate each symmetric function: with , , ,
Substituting, , and the two displays together give . □
Let . The following are equivalent.
The quantity of 10.2 is nonzero.
The cubic has no repeated root in the algebraic closure —the smallest extension field of in which every nonconstant polynomial over factors into linear factors.
The polynomials and are coprime in .
There is no point satisfying the curve equation together with the two partial-derivative equations and .
Equivalence : over the monic cubic factors as , and 10.3 gives . The left side vanishes exactly when two roots coincide, so has a repeated root if and only if .
Equivalence : this is the derivative test of 5.40, applied over where splits: a repeated root of is a common root of and , hence a common factor , and conversely a nontrivial has a root in which is then a repeated root of .
Equivalence : a singular point of the affine curve is a point where both partial derivatives of vanish, namely and . Since , the first equation forces ; the curve equation then gives , which combined with says is a repeated root of (5.40(1)). Conversely a repeated root of yields the singular point . □
An elliptic curve over is a short Weierstrass equation (9) with nonzero discriminant, . For any field extension , the set of -rational affine points is
and the set of -rational points is
where is a single formal symbol called the point at infinity. When one writes simply for the curve and for its rational points.
For the Pasta curves and , so . The curve is therefore nonsingular whenever the characteristic does not divide , i.e. whenever the prime is neither nor ; the Pasta primes are enormous, so this is automatic. More generally, any curve with is nonsingular away from characteristics and .
The extra point is not decoration; it is the identity element of the group to come, and it has an honest geometric home. To see it, view the affine plane as sitting inside the projective plane. A point of the projective plane is an equivalence class of nonzero triples , where for every . The affine points embed as ; the points with form the line at infinity, the extra “directions”. Homogenising the Weierstrass equation (9) by setting , and clearing denominators gives the projective Weierstrass equation
| (11) |
Setting in (11) forces , hence , leaving the single projective point . This is the point at infinity . It lies infinitely far up in the vertical direction, and every vertical line passes through it. The reader may safely picture as one point pinned at the top (and bottom) of the -axis, where all vertical lines meet; the projective equation above is the licence for that picture.
We now describe the procedure for “adding” two points of . The construction is purely geometric, and it rests on a single fact: a line meets a cubic curve in exactly three points, counted with multiplicity. The point at infinity is engineered precisely so that the counting is always exact.
Let . Define as follows.
If , set ; if , set .
Otherwise and are affine. Draw the line through and ; if , let be the tangent line to the curve at . The line meets the curve in a third point , counted with multiplicity, where a vertical has third point . Define to be the reflection of across the -axis: if then , and if then .
The reflection step deserves a comment, because it is what converts “the three intersection points of a line sum to a fixed thing” into a genuine group law with as identity. The underlying rule is this: the three intersection points of any line with the curve add up to . (Stated here as a guiding picture; every use of it below is discharged by an explicit computation with the formulas of §10.4.) Reflection across the -axis sends an affine point to , which—as the next subsection confirms—is its additive inverse; and it sends to . To convert the geometry into formulas one must (i) find the third intersection point of a line with the cubic and (ii) handle the degenerate cases. The key algebraic device for (i) is Vieta’s relation between the roots of a cubic and its coefficients, already deployed in 10.3.
Fix an elliptic curve over , and let and denote affine points.
Define
The reflected point is again on the curve, since the curve equation depends on only through . Geometrically, the line through and is the vertical line , which meets the curve at , , and .
Suppose and . The line through and is with
Substituting the line into the curve equation, , and collecting terms gives
Both and are roots of the monic cubic : each point lies on the line and on the curve, so . Since , factoring out (5.17, applied twice) leaves a monic linear factor with : the -coordinate of the third intersection point . By Vieta, the sum of the roots equals the negative of the -coefficient—so , and the unknown root is read off with no factoring at all. Hence
| (12) |
and . The -formula already incorporates the reflection across the -axis: the third intersection point is , and reflecting gives .
Suppose with . Implicit differentiation of yields the tangent slope: from ,
With , substituting into the curve equation produces the same monic cubic as in 10.9, and here is a double root. The slogan “tangency counts the intersection twice” is a one-line check: , and
by the choice of , so is a repeated root of (5.40(1)). Factoring out of leaves a monic linear factor with , and Vieta now reads , hence
| (13) |
The remaining cases are exactly those in which the line is vertical.
If , then ; symmetrically if .
If but (so , including the subcase ), the line is vertical, the third point is , and .
Every case is covered: either an input is ; or both inputs are affine with (use (12)); or both are affine with , in which case either (result ) or (use (13)).
For all , the point computed by the case analysis above lies in . In particular is closed under .
If either input is , the result is the other input, which lies in by hypothesis; if the result is , it lies in by definition. Otherwise is produced by (12) or (13), and in both constructions was exhibited as a root of the cubic —as the third root beside in 10.9, and beside the double root in 10.10. The equation states precisely that the third intersection point satisfies the curve equation; and since the curve equation is invariant under , the reflected point is on the curve too, so . For rationality, observe that all coordinates are rational expressions in whose denominators are or , nonzero in the cases where each formula is invoked; so . □
The chord formula (12) is incomplete: it fails whenever —the doubling and inverse cases—and an implementation must branch into the case analysis above. Complete addition formulas, valid for all input pairs including and , exist for the curves used here, at the cost of more field operations per addition; 10.13 exhibits the deployed set and 10.14 proves it complete. The distinction is load-bearing in later volumes. Halo 2’s elliptic-curve gadgets provide complete addition and use incomplete gates only where their callers justify the exclusions; the Sinsemilla hash of Orchard deliberately uses the incomplete formulas nondeterministically—an exceptional case does not violate the constraints but leaves the affected output unconstrained (the prover may choose the intermediate slope freely), which the specification models by letting the hash return and weakening the proved statement accordingly; its Merkle path validity check is even permitted to pass on the resulting sentinel values. Safety rests not on the proof system but on Theorem 5.4.4 of the Zcash protocol specification: any input reaching an exceptional case of the incomplete addition immediately yields a nontrivial discrete-logarithm relation among the Sinsemilla generators, so under discrete-log hardness on Pallas (10.31) such inputs are infeasible to find, for honest and adversarial provers alike.
An implementation branches; a circuit cannot. In a proof system the group law is checked by a fixed list of polynomial identities in the input, output, and auxiliary cells of a row, evaluated on every row alike, so the case analysis of this subsection has to be folded into algebra: each branch must appear as a factor that vanishes exactly when the branch is not taken. The deployed gate achieves this with five auxiliary cells, four of them “inverse-or-zero” hints that let a polynomial test a field element for zero.
Let over with , and encode the point at infinity as the pair , so that every element of is a pair of field elements. For let be if and if . For encoded inputs and the prover fills five auxiliary cells,
and an output pair : it is if ; else if ; else if and ; else and . The verifier accepts the row iff the twelve identities
| (C1) | ||||
| (C2) | ||||
| (C3a) | ||||
| (C3b) | ||||
| (C3c) | ||||
| (C3d) | ||||
| (C4a) | ||||
| (C4b) | ||||
| (C5a) | ||||
| (C5b) | ||||
| (C6a) | ||||
| (C6b) |
hold in . These are, in this order, the twelve constraints of the gate complete addition in the halo2_gadgets crate (src/ecc/chip/add.rs, create_gate), each carrying there one further factor, a per-row cell equal to on the rows where the gate applies and elsewhere, which switches the list on or off; the cell assignments are those of assign_region in the same file, and the circuit field is the Pallas base field .
Suppose no affine point of has and none has —for , that is a non-square and a non-cube in . Then for all , encoded as in 10.13:
(completeness) the prover’s cells satisfy (C1)–(C6b), and the output pair encodes ;
(soundness) every satisfying (C1)–(C6b) has equal to the encoding of .
This is what complete means for a gate: the twelve identities are satisfiable for every input pair—doublings, inverse pairs, and the identity included—and the output they admit is unique, so they are the graph of the total function , with no case left to a branch outside the constraint system.
Under the hypothesis an encoded pair has iff it is , and two affine points with the same -coordinate have with , so they are equal or inverse and not both. One observation drives every case: for and any cell value , the factor equals when , whatever is, while for the honest choice makes it . A constraint of the shape therefore forces exactly when and is discharged by the honest hint otherwise. Five cases exhaust the input pairs.
Case . Then , so (C4a)–(C4b) force , the encoding of ; that is soundness. The prover outputs by the first clause, and its cells satisfy the rest: (C1) reads and holds for ; (C2) and (C3a)–(C3d) carry a factor or , both zero; (C5a)–(C5b) are discharged by if , and read if ; and (C6a)–(C6b) have first factor , which is for when , while for the other factor vanishes.
Case , . Now , so (C5a)–(C5b) force , the encoding of : soundness. The prover outputs by the second clause, with and ; then (C1) reads and holds; (C2) and (C6a)–(C6b) carry the factor , the latter with ; (C3a)–(C3d) carry ; and (C4a)–(C4b) are discharged by .
Case affine with . Constraint (C1) forces to be the chord slope , and since , (C3a)–(C3b) force to be the chord formula (12)—the encoding of , which is affine because . That is soundness. The prover’s is that slope and its output that formula, by the fourth clause; (C3c)–(C3d) contain the same two vanishing factors; (C2), (C4a)–(C4b), (C5a)–(C5b) are discharged by the honest , , ; and (C6a)–(C6b) have first factor , since .
Case , affine. Here and , so both hint-bearing products in (C6a)–(C6b) are whatever and are, and the constraints force : the encoding of , which is soundness. The prover outputs by the third clause; (C1) and (C3a)–(C3b) carry , and (C3c)–(C3d) carry ; (C2), whose first factor is now , needs , which the honest supplies (); and (C4a)–(C5b) are discharged by .
Case affine. Again fixes , so (C2) forces to be the tangent slope , and since , (C3c)–(C3d) force to be the doubling formula (13)—the encoding of , affine because . That is soundness. The prover’s is that slope and its output that formula, by the fourth clause; (C1) and (C3a)–(C3b) carry ; (C4a)–(C5b) are discharged by ; and (C6a)–(C6b) have first factor for the honest . □
Pallas satisfies both hypotheses of 10.14: is a non-square in (7.16) and is not a cube (10.26). The toy curve over of 10.38 satisfies neither— gives the points , and has order —which makes it the right place to watch the gate work and to see the hypotheses earn their keep. For each input pair considered below, a script determines every output pair that some assignment of the five auxiliary cells in makes the twelve identities accept—the search over factored by which identities mention each: only (C4), only (C5), and only (C2) and (C6)—so soundness is checked against all provers, not only the honest one. On the nine points , , , , with , all ordered pairs—eight doublings, eight inverse pairs, seventeen involving —admit exactly one output, the encoding of the true sum. Three of them, worked: for the honest cells are and , giving , the value of (13); for the inverse pair the prover supplies the same but , and (C6a)–(C6b) force ; for the cells are , , , and (C4a)–(C4b) force . Off the admissible set the gate fails as the proof predicts. With and the identities admit only the output —the coordinate is read as —whereas (10.38); the pair admits no output at all, (C4b) demanding and (C5b) ; and admits none either, since (C2) reduces to , false in . On Pallas none of the three inputs exists, and the gate is complete.
The destination of the whole construction is the following theorem.
Let be an elliptic curve over a field . The set with the chord-and-tangent operation of 10.7 is an abelian group with identity .
Closure is 10.11. The next proposition supplies every remaining axiom except one.
The operation on has the following properties.
The point is a two-sided identity: for all .
Every has the two-sided inverse of 10.8: .
The operation is commutative: .
(1) is the first clause of 10.7. (2): for with , the line through and is vertical, so its third point is and by the vertical-line case; for one has and directly by the vertical-tangent case; and . (3): the chord through and does not depend on the order in which the two points are named, and neither does the tangent in the doubling case; algebraically, the formulas (12) are symmetric under the swap —the slope is unchanged, and is symmetric in . □
The one axiom not yet established is associativity, , and it is the deep and surprising part of the theory: the definition gives no reason why reflecting third intersection points should be an associative operation, and a brute-force verification through the explicit formulas splinters into a large number of coordinate cases, each demanding lengthy rational-function identities. We sketch the conceptual proof, which exhibits the reason associativity holds.
The key tool is the classical Cayley–Bacharach theorem for plane cubics: if two cubics with no common component meet in nine points counted with intersection multiplicity, then any third cubic passing through eight of them with the required multiplicities also passes through the ninth. To prove , one writes both sides via the chord-and-tangent construction and arranges the relevant intersections among the curve and two degenerate cubics, each a product of three suitably chosen lines. Cayley–Bacharach forces the two candidate sums to coincide; its intersection-multiplicity formulation includes tangencies and coincident points. Translating “reflect across the -axis” into “the three points of any line sum to ” renders the bookkeeping uniform.
A complete, case-free treatment identifies with the degree-zero part of the divisor class group of the curve via the map , a bijection that intertwines the two operations; the group law on is manifestly associative, because it is inherited from addition of divisors modulo principal divisors. Either route yields a genuine proof; both lie beyond the elementary scope of this volume, so we take associativity as established. □
For and , we write for the -fold sum , with and . This makes the abelian group a -module: integers act on points. The map is the scalar multiplication of 10.20—not any coordinate-wise product.
The affine formulas (12) and (13) each require a field inversion, by or . In a large prime field an inversion costs roughly as much as dozens of multiplications, whether computed by the extended Euclidean algorithm (6.1) or as by Fermat (6.4). When a long chain of group operations arises, as in the scalar multiplication of the next subsection, it pays to defer all inversions to the very end by carrying points in a redundant coordinate system whose group law uses only additions, subtractions, and multiplications.
Two redundant systems serve this purpose. In (homogeneous) projective coordinates, a triple with represents the affine point on the projective curve (11), with . In Jacobian coordinates, a triple with represents , under the equivalence ; the curve equation becomes . In either system the addition and doubling formulas can be rewritten with no divisions at all, at the cost of more multiplications per operation; a long chain of group operations then defers every inversion to a single final recovery of affine coordinates—compute once, then the needed powers of it by multiplication. Jacobian coordinates usually yield the faster doubling and are the standard choice in cryptographic libraries, including the implementation Halo 2 uses: the pasta_curves crate carries its curve points in Jacobian coordinates. For curves with , the term in the Jacobian doubling formulas vanishes, making doubling especially cheap—one reason the Pasta curves take .
The fundamental operation of elliptic-curve cryptography is scalar multiplication: given a point and an integer , compute
Computing this by successive additions is infeasible when has hundreds of bits. Instead one uses the binary expansion of , exactly as in the square-and-multiply technique of 6.2; as 6.3 promised, the additive rendition of that algorithm is the following.
If , return . Otherwise write with digits and top digit . The left-to-right double-and-add algorithm computes as follows: set ; for down to , set , and if set ; return .
For , double-and-add returns using exactly doublings and at most additions, where is the bit length of . For , it returns without a group operation.
The case is immediate. Let , and let denote the value of after bits have been incorporated. We claim , by downward induction on . At initialization, because the top bit is . Assuming , the next iteration computes
where the last step is the digit identity : stripping the last bit of and re-appending it recovers the number. At the invariant reads , which is what the algorithm returns. For the counts, the loop has exactly iterations, each performing one doubling and at most one addition. □
Scalar multiplication by an -bit scalar therefore costs group operations— field operations up to constant factors, or bit operations with schoolbook field arithmetic. This efficiency of the forward map, contrasted with the apparent hardness of the inverse problem (§10.11), is the foundation of the cryptography.
Now specialise , the prime field with elements ( prime, ). Since is finite, so is : each of the values of admits at most two values of (5.18, applied to as a polynomial in ), so with there are at most points. By 10.16, the set is thus a finite abelian group. One of the central theorems of the subject governs its order.
Let be an elliptic curve over . Write
which defines the integer , called the trace of Frobenius. Then
equivalently, lies in the Hasse interval .
The count has an exact character-sum expression. For fixed , the number of with is when —two solutions for a nonzero square, none for a non-square (7.12)—and exactly when , using the Legendre symbol of 7.14 with the convention . Summing over ,
so . Heuristically, as ranges over the value is a nonzero square about half the time (two points), a non-square about half the time (none), and zero occasionally (one point); the summands behave like a random walk, and Hasse’s bound is exactly square-root cancellation in this character sum.
The conceptual proof realises as the trace of the -power Frobenius endomorphism of the curve—the curve-level shadow of the field automorphism of 6.14. One shows that satisfies the characteristic equation in the endomorphism ring of , and that the associated quadratic form (the degree) is positive definite; the discriminant condition for the complex roots of the characteristic polynomial then yields . The full argument requires the theory of isogenies and the Weil pairing, beyond the present scope. □
Hasse’s theorem says the order of is very close to : the deviation from is at most , a relative error of order . For cryptography this is crucial twice over. It guarantees with no brute-force count that the group is large—about elements, so about bits for the Pasta curves—and it anchors the point-counting algorithms (Schoof–Elkies–Atkin) that compute the exact order in polynomial time, which is how curve designers certify their group orders.
For the cryptographic application one wants to contain a large subgroup of prime order. The general structure theory of as an abelian group is not needed in this series, because the Pasta curves are designed so that is itself prime: a group of prime order is cyclic with no proper nontrivial subgroups (3.34), so is cyclic of prime order—the optimal case.
Suppose , where is the (large) prime to be used and is the remaining factor. The integer is the cofactor, and is the order of the prime-order subgroup: a point of order generates a cyclic subgroup , and this subgroup is where the cryptography lives.
A nontrivial cofactor is undesirable: it admits small-subgroup points, of order dividing , which can leak information or break protocol assumptions—the small-subgroup attacks of 7.25. Implementations therefore either clear the cofactor, multiplying incoming points by , or use prime-order curves with . The Pasta curves have cofactor : the orders and are themselves prime, so and are cyclic of prime order and no cofactor clearing is ever needed. This is one of the principal design advantages of the Pasta cycle for proof systems.
The affine points of order in are exactly the points with . Hence has , , or points of order according as has , , or roots in ; and is even if and only if has a root in .
A point has order iff and , i.e. , i.e. (since ); the curve equation then forces . Conversely each root of in gives the order- point .
Next, the number of roots of in can only be , , or : two roots force a third. Suppose has distinct roots in . The factor theorem (5.17) gives ; evaluating at yields , so , and a second application factors the monic cubic completely, with —explicitly by Vieta, the depressed cubic having no term. Nonsingularity says has no repeated root even over (10.4(2)), so , and has exactly three roots (5.18 caps the count). Hence , matching the trichotomy of the statement. Together with the order- points form the rational -torsion subgroup , which is accordingly trivial, , or .
For the parity claim, consider negation , an involution—a self-inverse map—of the finite set . Its fixed points are exactly and the points ; every other point pairs off with its distinct negative into a -element orbit. Counting the set by orbits,
where is the number of roots of in . Hence is even iff is odd, i.e. iff , i.e. iff has a root in . (The device is worth remembering: an involution reads off a group’s cardinality modulo from its fixed points alone.) □
For over , the curve has a point of order iff has a solution, i.e. iff is a cube in . For the Pasta primes the order is odd (it is prime), so there are no rational -torsion points; consistently, is not a cube in .
Step back from the geometry and ask what a machine actually does when it works on . Every operation of the group law—the slope , the squarings, and the inversions needed to add and to double—is arithmetic in , performed with exactly the prime-field algorithms of 6.1 (extended-Euclid or Fermat inversion). The field is called the base field (or coordinate field) of the curve: it is where the coordinates live.
Scalars live elsewhere. By 10.22 the group is a finite abelian group of order close to ; for cryptography one selects a curve whose order has a large prime factor , and keys and signatures reside in the subgroup of order (10.24). A scalar multiplication on a point of order depends only on , since (3.12); scalars therefore live modulo —and since is prime, they form a field (4.26).
For an elliptic curve used in cryptography, with a prime-order subgroup of order :
the base field is the field over which the curve is defined and in which point coordinates lie;
the scalar field is the field of scalars by which one multiplies points, i.e. the integers modulo the subgroup order .
Both are prime fields, but in general .
A typical elliptic-curve operation manipulates two distinct prime fields simultaneously: the exponent arithmetic runs in while the coordinate arithmetic runs in . Halo 2’s Pallas and Vesta curves (the “Pasta” pair) exploit this deliberately. They form a cycle of curves: the base field of one is the scalar field of the other and vice versa,
so the scalar field of Pallas is , the base field of Vesta, and symmetrically (§5.4.9.6 of the Zcash protocol specification). This lets a proof system express the verifier of one curve’s arithmetic natively in the field of the other, enabling the recursive proof composition at the heart of Halo 2. Moreover both primes are chosen , so by 6.22 each field contains a multiplicative subgroup of order , furnishing the high-order roots of unity that the number-theoretic transform of 9 needs for fast polynomial multiplication.
The section’s opening problem now returns in its proper habitat. The discrete logarithm problem of 7.21 was stated for an abstract cyclic group; the elliptic-curve instance reads as follows, in additive notation.
Let be a point of large prime order , generating . The elliptic-curve discrete logarithm problem (ECDLP) is: given and a point , find the unique integer with . One writes .
The map is a group isomorphism (3.43), so a discrete logarithm always exists and is unique; the entire content of the problem is computational. The forward map is fast by double-and-add (10.21); no efficient algorithm is known to invert it on a well-chosen curve. What is known is the generic pair of attacks, which transfer verbatim from 7.22 to the additive setting.
Baby-step giant-step solves the ECDLP in a group of prime order in group operations and space. Pollard’s rho method matches the bound in expectation with only space, under a modelling assumption on its pseudo-random walk that is stated explicitly in the proof and is unproved for every concrete walk.
For baby-step giant-step, set and write the unknown logarithm as with ; since , every has such a decomposition. Tabulate the baby steps for (a table of points, built with additions), compute once, and walk the giant steps for , testing each against the table. At the walk hits , a table entry; the collision reveals and , hence . Both the table and the walk cost group operations, and the table holds points.
Pollard’s rho eliminates the table, at the price of an explicitly heuristic analysis. The algorithm takes a pseudo-random walk on whose every position is maintained in the form with known coefficients , started from such a combination with random coefficients; the walk’s next step depends only on the current point, so once the walk revisits a point it cycles forever. A repeat is therefore detected with memory: run a second copy of the walk at double speed, and the two copies meet at a common point inside the cycle within a constant factor of the first repeat time. Modelling assumption: the successive positions of the walk behave like independent uniform samples from . No proof of this is known for any concrete walk—the assumption is what “well-designed” means, and experiment supports it—and the rest of the argument is conditional on it. Under the assumption, the first positions are pairwise distinct with probability at most by the birthday bound—the forward reference 11.18 is quantitative machinery from the closing section—so the number of steps to the first repeat satisfies . The tail-sum formula (11.33) converts the tail bound into an expectation bound: with and ,
where the middle step groups the indices into blocks of length , bounding each block by its first term, and the last uses for , so that , a convergent geometric tail. A repeat presents one group element with two representations, . If , this rearranges to , whence
the inverse existing because is prime. If instead , then forces : the two representations coincide, the collision reveals nothing, and the walk is restarted with fresh random starting coefficients; that such degenerate collisions are rare is a further part of the heuristic, borne out in practice. Both algorithms run in time exponential in the bit length . □
For well-chosen curves, no unrestricted classical attack faster than is known; this is not an unconditional lower bound for all classical algorithms. In the classical generic-group model, however, Shoup’s matching lower bound is proved (7.22). For —the -bit Pasta orders—this is about operations, infeasible. Curves with special structure can be weaker, and the known weak classes are avoided by design. Anomalous curves, those with , admit a polynomial-time attack through the formal group. The MOV/Frey–Rück attack transfers the ECDLP into a finite-field discrete logarithm when the embedding degree—the least with , i.e. the degree (8.4; the dimension of the extension over its base) of the smallest extension of whose multiplicative group contains a subgroup of order —is small, where index calculus applies. Cryptographically secure curves, the Pasta curves included, are chosen with a large prime subgroup order, a large embedding degree, and , defeating every known subexponential attack.
The contrast with the multiplicative groups is the economic heart of the subject. In the index-calculus method solves the discrete logarithm in subexponential time —shorthand for operations in the bit length , a notation defined precisely in 11.60 of the closing section—exploiting the integer arithmetic behind the residues (7.22); those groups must therefore be made very large. On a well-chosen elliptic curve no index calculus is known—the points offer no analogue of “factoring into small primes”—so the generic bound stands, and much smaller groups suffice: about bits for -bit security, versus thousands of bits for . Smaller groups mean faster arithmetic and shorter keys, which is why elliptic curves dominate modern protocols, including Halo 2.
Two final pieces of structure round out the theory: a single quantity that classifies curves up to isomorphism, and an “extra symmetry” available exactly when that quantity vanishes—which the Pasta curves arrange on purpose.
The -invariant of the curve (with ) is
where is a normalising constant of historical origin.
Two elliptic curves over are isomorphic over if and only if they have the same -invariant. The admissible coordinate changes preserving short Weierstrass form are for , under which ; the combination is invariant.
A direct computation shows that the only isomorphisms between short Weierstrass curves fixing are the scalings . Substituting , into and clearing gives , which is the stated action on coefficients. Under it, numerator and denominator of both scale by , so is unchanged. Conversely, given two curves with equal -invariants one solves for a suitable transforming one coefficient pair into the other, with separate easy cases (both vanish) and (both vanish). □
For one has , so ; both Pasta curves have . Curves with are special: they admit an extra automorphism of order , which underlies the efficient endomorphism described next. (At the other extreme, gives and an order- automorphism.) The vanishing is deliberate in the Pasta design: it is what makes the Gallant–Lambert–Vanstone (GLV) speedup available, roughly halving the doubling count in scalar multiplication.
Suppose contains a primitive cube root of unity , i.e. (6.22), so satisfies . On , the map
is a group endomorphism of . Let be a subgroup of prime order with and . Then acts on as multiplication by a scalar: there is with and
For the Pasta curves the hypothesis is automatic, since itself is the prime-order group ; and holds for both orders.
The map lands on the curve. If then , because ; so .
The map is a homomorphism. We check against the case analysis of §10.4. The cases are trivial, and since negation touches only ; in particular the inverse case is respected, and preserves the case split, since it preserves equality of -coordinates. For a chord (), the slope transforms as
using . Then, by (12) and ,
so . The tangent case runs identically with in (13).
The relation . Let be affine; we show directly from the formulas of §10.4.
First let . The points , , share their -coordinate and have pairwise distinct -coordinates, since are distinct and . The chord formula (12) applies to , with slope :
using . Hence (10.8), and .
If instead , the three points coincide: . Here , since on the curve would force , which nonsingularity forbids; so the doubling formula (13) applies, with :
so , hence in this case too. (The three points , , are exactly the intersections of the horizontal line through with the curve, the roots of being , , ; the computation just performed is the “three points of a line sum to ” picture made rigorous, including the triple intersection at .)
With the identity holds on all of ; as an identity of endomorphisms, . Incidentally , since ; and whenever —as always at cryptographic sizes, the Pasta curves included— has order exactly , because at most two affine points, with , share the coordinate , so some point of has and moves it. The proviso is not vacuous: over has only the three points , , , and there .
Action on as a scalar. The subgroup is cyclic with generator , and by hypothesis, so for some ; then for any , the homomorphism property gives . (This is the statement : an endomorphism of a cyclic group is determined by, and equal to multiplication by, the image of a generator.) Applying the endomorphism relation to ,
since has order . Consistently, this congruence is solvable exactly when contains a primitive cube root of unity, i.e. when (6.22 again)—the hypothesis of the statement. □
Computing costs a single field multiplication , negligible against a group operation. One therefore decomposes a scalar as
where can each be taken only about bits long—such a pair is found by lattice reduction in the lattice of pairs with . The two half-length scalar multiplications are then run simultaneously, sharing their doublings (Straus–Shamir’s trick): one double-and-add loop of half the length, adding , , or both according to the bits of and . The result costs about half the doublings of a single full-length double-and-add—a substantial saving, and its availability is one reason the Pasta curves take the form over primes .
The entire machinery now runs on a curve small enough for hand computation.
Take : then , and , so the curve is nonsingular over (10.5). Squaring the residues yields the squares , so the nonzero quadratic residues are . Tabulating and reading off the -values:
Counting: the five values contribute two points each ( points), contributes the single point , and completes the census:
Hasse’s bound checks out: , so the trace is , and indeed . The point has order , consistent with 10.25 and the even order ; here is a cube, namely .
An addition. Let and . Since , the chord formula (12) applies:
using (check: ). Then
so . The result is on the curve: and , as required.
The GLV endomorphism. Since , the field contains no primitive cube root of unity (6.22 requires ), so the GLV map is not available over . The Pasta primes do satisfy , so GLV applies there. For a small GLV-friendly illustration take instead , where satisfies ; then is a nontrivial endomorphism of over .
Every property developed in this section was chosen with the closing example in mind. Here the pieces assemble.
For the running example , with and the -bit primes of the section opening:
Vesta, over : the order is , a prime, so , again with cofactor .
The cycle property and means the scalar field of each curve is the base field of the other (10.27): the base field of Pallas is and its scalar field is , matching the base field of Vesta, and symmetrically. This is exactly what lets recursive proof systems chain proofs across the two curves without expensive non-native field arithmetic (10.28). The cycle is a deployed fact: the pasta_curves crate wires the scalar field of Pallas to be and that of Vesta to be , as specified in §5.4.9.6 of the Zcash protocol specification.
The discrete logarithm problem in and is believed to require about operations— for the -bit orders (10.30)—with no faster attack known (10.31), just below the -bit security level targeted by Halo 2 and Zcash Orchard.
The cheque from the section’s opening is hereby cashed. The demand was a roughly -bit group for which no attack faster than the square-root bound is known, and each Pasta curve supplies one: a cyclic group of prime -bit order (10.22 and 3.34), carrying a fast forward map (10.21, accelerated by 10.37) whose inversion—the ECDLP—resists everything known except the generic attacks of 10.30. Where needs thousands of bits to outrun index calculus, the curve group needs ; and the two groups even interlock as a cycle, each one’s scalars living in the other’s coordinates. Later volumes build on precisely this pair.