Sid Makes Sense

Subgroups, Generators, Orders, And Cofactors

13 min read

Core analogy: Treat the finite curve group as a circular route.

  • Curve order #E\#E: total number of stops in the complete group.
  • Point order ord(P)\operatorname{ord}(P): lap length—the first positive nn with nP=OnP=\mathcal{O}.
  • Generated subgroup P\langle P\rangle: all stops reachable by repeatedly taking the PP-step.
  • Generator: a point whose multiples reach every element of the group being discussed.
  • Base point GG: the public generator selected by a parameter set.
  • Subgroup order: n=ord(G)n=\operatorname{ord}(G). When the selected order is prime, pairing literature commonly names it rr.
  • Cofactor hh: number of subgroup-sized cosets in the full group: #E=hn,h=#En.\#E=hn, \qquad h=\frac{\#E}{n}.

The notation aba\mid b means “aa divides bb,” so b=cab=ca for some integer cc. Lagrange's theorem guarantees that a point's order divides the curve order:

ord(P)#E(Fp).\operatorname{ord}(P)\mid\#E(\mathbb{F}_p).

Running example

P=(1,5)P=(1,5) takes a 14-stop lap and generates the whole curve. Choosing G=2P=(3,3)G=2P=(3,3) skips every other stop, producing a prime-order subgroup with

#E=14,n=r=7,h=2.\#E=14, \qquad n=r=7, \qquad h=2.

Base field and scalar field

  • The curve coefficients and point coordinates live in the base field Fp\mathbb{F}_p. Here, xG,yGF11x_G,y_G\in\mathbb{F}_{11}.
  • The point GG lives in the subgroup GE(F11)\langle G\rangle\subset E(\mathbb{F}_{11}); it is not itself a field element.
  • Scalars live in the scalar field Fr\mathbb{F}_r. Here, kF7k\in\mathbb{F}_7.
  • Scalar multiplication maps a scalar and a subgroup point back to the subgroup: kFr,GG,kGG.k\in\mathbb{F}_r, \quad G\in\langle G\rangle, \quad kG\in\langle G\rangle.
  • Scalars wrap around modulo rr because rG=OrG=\mathcal{O}, so (k+r)G=kG(k+r)G=kG.

Protocol bridge: A nonzero private scalar kFrk\in\mathbb{F}_r produces the public point Q=kGQ=kG; production systems make rr enormous.