Subgroups, Generators, Orders, And Cofactors

13 min read

Elliptic Curves Over Finite Fields constructed the finite group

E(F11):y2≡x3+x+1(mod11).E(\mathbb{F}_{11}): \qquad y^2 \equiv x^3+x+1 \pmod{11}.

That construction produced 1313 affine points and the identity point O\mathcal{O}. It also used the finite-field addition formulas with

P=(1,5)P=(1,5)

to calculate

2P=(3,3)and3P=(8,2).2P=(3,3) \qquad\text{and}\qquad 3P=(8,2).

We will now continue those exact scalar multiplications around the point cloud. The resulting cycles give concrete meanings to curve order, point order, subgroup, generator, base point, and cofactor.

The main idea resembles the modular clock from Finite Fields and Modular Arithmetic. Repeatedly adding a fixed number moves around a finite clock; repeatedly adding a fixed curve point moves around a finite set of curve points. In both cases, the chosen step determines which positions we visit before returning to the start.

0.1. Curve Order: The Size of the Complete Group

The curve order is the number of points in the complete curve group, including O\mathcal{O}. It is written

#E(Fp).\#E(\mathbb{F}_p).

For the running curve, Chapter 6 found 1313 affine points. Therefore,

#E(F11)=13+1=14.\#E(\mathbb{F}_{11})=13+1=14.

This number describes the whole curve group. It is not the field modulus and it is not automatically the order of every point.

Important

In the running example, p=11p=11 is the number of field elements, while #E(F11)=14\#E(\mathbb{F}_{11})=14 is the number of curve points. These numbers measure different objects.

0.2. Point Order: The Length of One Scalar Cycle

Scalar multiplication repeatedly adds the same point:

kP=P+P+⋯+P⏟k copies of P.kP=\underbrace{P+P+\cdots+P}_{k\text{ copies of }P}.

We also define 0P=O0P=\mathcal{O}. Now imagine the 1414 curve points as stops on a circular route. The point PP acts like a fixed step: begin at O\mathcal{O}, add PP to move to the next stop, then add PP again, and keep going.

O→+PP→+P2P→+P3P→+P⋯\mathcal{O} \xrightarrow{+P}P \xrightarrow{+P}2P \xrightarrow{+P}3P \xrightarrow{+P}\cdots

This route is an abstract picture of the group operation. It is not a geometric line drawn through the point cloud.

For P=(1,5)P=(1,5), Chapter 6 already gave us the first two moves:

P=(1,5),2P=(3,3),3P=(8,2).P=(1,5), \qquad 2P=(3,3), \qquad 3P=(8,2).

We do not need to memorize every coordinate encountered after that. Three landmarks reveal the structure of the route:

  • At the halfway point, 7P=(2,0)7P=(2,0). This point is its own inverse because its yy-coordinate is zero.
  • One step before completing the route, 13P=(1,6)=−P13P=(1,6)=-P.
  • Adding PP once more gives 14P=(−P)+P=O14P=(-P)+P=\mathcal{O}.

No earlier positive multiple is O\mathcal{O}. The route therefore makes one complete lap after fourteen additions of PP.

The order of a point PP, written ord⁡(P)\operatorname{ord}(P), is the smallest positive integer nn for which

nP=O.nP=\mathcal{O}.

Equivalently,

ord⁡(P)=min⁡{n>0:nP=O}.\operatorname{ord}(P)=\min\{n>0:nP=\mathcal{O}\}.

For the running point,

ord⁡(P)=14.\operatorname{ord}(P)=14.

The two uses of the word order now answer different questions:

Curve order — total stops

How many points exist in the complete curve group? Here, #E(F11)=14\#E(\mathbb{F}_{11})=14.

Point order — lap length

How many times do we add this point before returning to O\mathcal{O}? Here, ord⁡(P)=14\operatorname{ord}(P)=14.

0.3. Generated Subgroups and Generators

The stops reached before a scalar cycle returns to O\mathcal{O} form the subgroup generated by PP:

⟨P⟩={O,P,2P,…,(n−1)P},\langle P\rangle = \{\mathcal{O},P,2P,\ldots,(n-1)P\},

where n=ord⁡(P)n=\operatorname{ord}(P). This subgroup contains exactly nn points.

A point is a generator of a group HH when its scalar multiples reach every element of HH:

⟨P⟩=H.\langle P\rangle=H.

In the route analogy, ⟨P⟩\langle P\rangle is the collection of stops reachable by repeatedly taking the PP-step. A generator of the whole group is a step that eventually visits every stop.

Every point generates its own subgroup, but it does not necessarily generate the complete curve group. For P=(1,5)P=(1,5), one lap visits all 1414 curve points. Thus,

⟨P⟩=E(F11),\langle P\rangle=E(\mathbb{F}_{11}),

and PP is a generator of the whole curve group.

0.4. Select a Smaller Prime-Order Subgroup

Cryptographic systems commonly work inside a carefully selected large prime-order subgroup rather than requiring the base point to generate every point on the curve.

Our toy curve can demonstrate the same structure. Select the point already obtained by doubling PP in Chapter 6:

G=2P=(3,3).G=2P=(3,3).

Multiples of GG are the even multiples of PP because

kG=k(2P)=2kP.kG=k(2P)=2kP.

On the fourteen-stop route traced by PP, adding G=2PG=2P is like moving two stops at a time:

O→+G2P→+G4P→+G6P→+G⋯→+G12P→+G14P=O.\mathcal{O} \xrightarrow{+G}2P \xrightarrow{+G}4P \xrightarrow{+G}6P \xrightarrow{+G}\cdots \xrightarrow{+G}12P \xrightarrow{+G}14P=\mathcal{O}.

This new route visits every other stop. After seven GG-steps, the total movement is

7G=7(2P)=14P=O.7G=7(2P)=14P=\mathcal{O}.

No earlier GG-step returns to O\mathcal{O}, so

ord⁡(G)=7.\operatorname{ord}(G)=7.

The seven visited stops form ⟨G⟩\langle G\rangle. This is a proper subgroup: it lies inside the fourteen-point curve group but does not contain every curve point. The odd multiples P,3P,5P,…P,3P,5P,\ldots belong to the complete group but are skipped by the GG-route.

0.5. Why Subgroup Orders Divide the Curve Order

The route analogy also suggests why subgroup sizes cannot be arbitrary. A subgroup must fit evenly inside the complete finite group: translated copies of the subgroup partition the complete group into equal-sized sets.

Lagrange's theorem states this precisely: in a finite group, the number of elements in a subgroup divides the number of elements in the complete group.

The notation

a∣ba\mid b

is read “aa divides bb.” It means that bb can be divided by aa without leaving a remainder. Equivalently, there is some integer cc such that

b=ca.b=ca.

For example,

7∣147\mid14

because 14=2⋅714=2\cdot7. In contrast,

4∤144\nmid14

because no integer multiplied by 44 equals 1414.

Now apply the theorem to an elliptic-curve point RR. Repeatedly adding RR produces the subgroup ⟨R⟩\langle R\rangle, and that subgroup contains exactly ord⁡(R)\operatorname{ord}(R) points. The complete curve group contains #E(Fp)\#E(\mathbb{F}_p) points. Lagrange's theorem therefore tells us that

ord⁡(R)∣#E(Fp).\operatorname{ord}(R)\mid\#E(\mathbb{F}_p).

Read this as:

The order of RR divides the order of the complete curve group.

Our curve has 1414 points, whose positive divisors are 11, 22, 77, and 1414. Therefore, a point on this curve can only have one of those orders. Lagrange's theorem rules out an order such as 44, although it does not guarantee that a point of every possible divisor order must exist.

Our three useful step sizes make this visible:

  • Adding PP visits all fourteen stops before returning, so ord⁡(P)=14\operatorname{ord}(P)=14.
  • Adding G=2PG=2P visits every other stop, so ord⁡(G)=7\operatorname{ord}(G)=7.
  • Adding T=7P=(2,0)T=7P=(2,0) jumps halfway around the route each time. The first step reaches TT and the second returns to O\mathcal{O}, so ord⁡(T)=2\operatorname{ord}(T)=2.

The last example also connects to the doubling rule from Chapter 6. A point with y=0y=0 is its own inverse, so

2T=O.2T=\mathcal{O}.

The point orders 1414, 77, and 22 all divide the curve order 1414, just as Lagrange's theorem requires.

0.6. The Public Base Point

A cryptographic parameter set designates one public generator of its selected subgroup, conventionally written

G=(xG,yG).G=(x_G,y_G).

This selected generator is called the base point. It is not secret and is not chosen separately by each user. Its exact coordinates are part of the public curve parameters.

The terms describe two related ideas:

Generator — mathematical property

Its multiples reach every point in the group or subgroup being discussed.

Base point — public role

It is the generator that a parameter set designates for everyone to use.

For our toy parameter set, we choose

G=(3,3)G=(3,3)

as the base point of the order-77 subgroup above. Its subgroup order is conventionally named

n=ord⁡(G)=7.n=\operatorname{ord}(G)=7.

The base point generates the selected subgroup ⟨G⟩\langle G\rangle; it does not need to generate the entire curve group.

0.7. Cofactor

Because the subgroup order nn divides the curve order, the cofactor

h=#E(Fp)nh=\frac{\#E(\mathbb{F}_p)}{n}

is an integer. Equivalently,

#E(Fp)=hn.\#E(\mathbb{F}_p)=hn.

For the selected subgroup of the running curve,

h=147=2.h=\frac{14}{7}=2.

Think of hh as answering: How many equal-sized copies of the selected subgroup fit inside the complete curve group? Here, two seven-point cosets fill the fourteen-point group:

14⏟complete curve group=2⏟cofactor×7⏟selected subgroup.\underbrace{14}_{\text{complete curve group}} = \underbrace{2}_{\text{cofactor}} \times \underbrace{7}_{\text{selected subgroup}}.

The value h=2h=2 therefore does not mean that only two curve points lie outside the subgroup. It counts two equal-sized cosets, one of which is ⟨G⟩\langle G\rangle itself.

Production curves use an enormous prime nn and usually a small cofactor. The running values n=7n=7 and h=2h=2 reproduce that structure at a scale we can enumerate, but they provide no security.

0.8. The Complete Toy Parameter Set

We can now collect the quantities developed across Chapters 5, 6, and 7. Reading down the table moves from the coordinate system, to the complete curve, to the selected route through that curve:

SymbolMeaningRunning value
ppPrime field modulus1111
a,ba,bCurve coefficients1,11,1
#E(F11)\#E(\mathbb{F}_{11})Complete curve order1414
GGPublic base point(3,3)(3,3)
nnOrder of GG and ⟨G⟩\langle G\rangle77
hhCofactor #E/n\#E/n22

The curve equation and the values

(p,a,b,G,n,h)=(11,1,1,(3,3),7,2)(p,a,b,G,n,h) = (11,1,1,(3,3),7,2)

form a complete toy analogue of the public domain parameters used by real elliptic-curve systems.

0.9. The Base Field and the Scalar Field

Our parameter set now contains two different prime numbers that play two different roles:

p=11andn=7.p=11 \qquad\text{and}\qquad n=7.

The first prime controls the coordinates of curve points. The second prime controls the scalars that act on the selected subgroup. Keeping those roles separate is essential when reading or implementing elliptic-curve cryptography.

0.9.1. The Base Field Fp\mathbb{F}_p: Where Coordinates Live

The curve is defined over the base field Fp\mathbb{F}_p. Its coefficients and every affine point coordinate are elements of that field:

a,b,x,y∈Fp.a,b,x,y\in\mathbb{F}_p.

For the running curve, p=11p=11, so

a,b,x,y∈F11.a,b,x,y\in\mathbb{F}_{11}.

In particular, the base point

G=(3,3)G=(3,3)

has coordinates

xG=3∈F11andyG=3∈F11.x_G=3\in\mathbb{F}_{11} \qquad\text{and}\qquad y_G=3\in\mathbb{F}_{11}.

The point GG itself is not a field element. It is an ordered pair of field elements that satisfies the curve equation. More precisely,

G∈E(F11),G\in E(\mathbb{F}_{11}),

and because we selected the subgroup generated by GG,

G∈⟨G⟩⊂E(F11).G\in\langle G\rangle\subset E(\mathbb{F}_{11}).

Whenever we add points, double a point, or calculate new point coordinates, the coordinate formulas use arithmetic in F11\mathbb{F}_{11}: values are reduced modulo 1111.

0.9.2. The Subgroup Order and the Letter rr

We named the order of the selected subgroup nn:

n=ord⁡(G)=7.n=\operatorname{ord}(G)=7.

General ECC specifications commonly use nn for this quantity. Pairing-based cryptography and many cryptographic libraries commonly use rr, especially when emphasizing that the subgroup order is prime. The letters differ, but they can describe the same quantity:

r=n=ord⁡(G).r=n=\operatorname{ord}(G).

For our selected subgroup,

r=7.r=7.

The defining property of this order is

rG=O.rG=\mathcal{O}.

No smaller positive scalar sends GG back to O\mathcal{O}. The value rr is therefore both the order of the point GG and the number of points in the subgroup ⟨G⟩\langle G\rangle.

0.9.3. The Scalar Field Fr\mathbb{F}_r: Where Scalars Live

Because the selected subgroup has prime order rr, integers modulo rr form another finite field:

Fr={0,1,…,r−1}.\mathbb{F}_r=\{0,1,\ldots,r-1\}.

This is called the scalar field. A scalar kk used with the base point belongs to this field:

k∈Fr.k\in\mathbb{F}_r.

For the running subgroup,

Fr=F7={0,1,2,3,4,5,6}.\mathbb{F}_r=\mathbb{F}_7=\{0,1,2,3,4,5,6\}.

Why do scalars wrap around modulo rr? Because rG=OrG=\mathcal{O}. Adding rr to any scalar does not change the resulting point:

(k+r)G=kG+rG=kG+O=kG.\begin{aligned} (k+r)G &=kG+rG\\ &=kG+\mathcal{O}\\ &=kG. \end{aligned}

With r=7r=7, for example,

8G=(1+7)G=G8G=(1+7)G=G

and

13G=(6+7)G=6G.13G=(6+7)G=6G.

The scalar values 00 through 66 therefore describe every distinct multiple of GG. Scalar multiplication connects an element of the scalar field to a point in the subgroup:

k⏟∈Fracts onG⏟∈⟨G⟩to producekG⏟∈⟨G⟩.\underbrace{k}_{\in\mathbb{F}_r} \quad\text{acts on}\quad \underbrace{G}_{\in\langle G\rangle} \quad\text{to produce}\quad \underbrace{kG}_{\in\langle G\rangle}.

The operation kGkG does not mean that kk is multiplied by the individual coordinates of GG. It means that the group point GG is repeatedly added, using an efficient scalar-multiplication algorithm.

0.9.4. Two Fields, Two Different Jobs

The base field and scalar field use the same kind of modular arithmetic, but they contain different kinds of values and usually have different moduli:

Base field Fp\mathbb{F}_p — coordinates

Contains the curve coefficients and point coordinates. Coordinate arithmetic is reduced modulo pp.

Scalar field Fr\mathbb{F}_r — scalars

Contains the numbers that multiply subgroup points. Scalar arithmetic is reduced modulo r=ord⁡(G)r=\operatorname{ord}(G).

For the toy parameter set,

QuestionAnswer
Where do xGx_G and yGy_G live?F11\mathbb{F}_{11}
Where does the point GG live?⟨G⟩⊂E(F11)\langle G\rangle\subset E(\mathbb{F}_{11})
What is the order of GG?r=ord⁡(G)=7r=\operatorname{ord}(G)=7
Where does a scalar kk live?F7\mathbb{F}_7
Where does the result kGkG live?⟨G⟩\langle G\rangle

The relationship between the two primes comes through the size of the curve group:

r∣#E(Fp).r\mid\#E(\mathbb{F}_p).

In our example,

7∣14.7\mid14.

There is no requirement that rr divide pp, and the scalar field is not generally a subset of the base field. Here, 77 does not divide 1111: F7\mathbb{F}_7 and F11\mathbb{F}_{11} are separate fields with separate jobs.

Important

Coordinates are reduced modulo pp. Scalars are reduced modulo r=ord⁡(G)r=\operatorname{ord}(G). Mixing up these moduli means performing arithmetic in the wrong field.

0.9.5. How This Prepares Us for Pairings

The subgroup ⟨G⟩\langle G\rangle in this chapter is a general elliptic-curve subgroup. We do not call it G1G_1 yet, because the names G1G_1 and G2G_2 describe specific roles inside a pairing construction.

Later, Pairing-Based Cryptography will build on the same pattern. A pairing setup has a group called G1G_1 whose points commonly have coordinates in Fp\mathbb{F}_p, another group called G2G_2 whose points are commonly represented using an extension field, and scalars for both groups in Fr\mathbb{F}_r. This chapter supplies the base-field, scalar-field, subgroup, order, and generator concepts needed to distinguish those objects.

0.10. From a Public Point to Protocols

The choice of GG gives every participant the same public starting point. In the simplest prime-order model, a private scalar is selected from

1≤k≤r−1,1\le k\le r-1,

and scalar multiplication produces a public point

Q=kG.Q=kG.

The complete scalar field includes 00, but a private key must be nonzero: 0G=O0G=\mathcal{O} would produce the identity instead of a useful public key. For the toy subgroup, only the six nonzero private scalars 11 through 66 are possible, so anyone can recover kk by trying every option. Production subgroups instead use an enormous prime order rr. This gives the elliptic-curve discrete-logarithm problem a prohibitively large search space, while prime order avoids nontrivial smaller subgroups inside ⟨G⟩\langle G\rangle.

This completes the mathematical foundation. Continue with Elliptic-Curve Protocols to use these objects to build keys, signatures, key agreement, encryption, and threshold protocols.

Comments