Algorithm Search⌘K

Proofs: Summation polynomial index calculus

These are the human proofs of Summation polynomial index calculus, at full length.

Correctness of summation polynomial index calculus full

This proof shows: correctness, termination.

Let EE be the curve over Fp2\mathbb{F}_{p^2}, G=E(Fp2)G = E(\mathbb{F}_{p^2}) of order NN, P,Q∈GP, Q \in G and n=ord⁡(P)n = \operatorname{ord}(P). For termination we treat the draws of line L10 as independent: aja_j and bjb_j uniform in [0,r)[0, r), and UjU_j a random affine point in which every affine point of GG has positive probability, which holds for the sampling described on the page. DECOMPOSE is a function of RR: its internal random choices in the root finding change only the time, because the roots are returned in increasing order.

Lemma 1 (the frame). For each prime power re ∥ nr^e \,\|\, n put ur=n/reu_r = n / r^e, Pr=urPP_r = u_r P and Qr=urQQ_r = u_r Q. If nQ=OnQ = O, then Q∈⟨P⟩Q \in \langle P \rangle if and only if Qr∈⟨Pr⟩Q_r \in \langle P_r \rangle for every rr. In that case, if xrPr=Qrx_r P_r = Q_r for every rr, the xx of line L7 satisfies xP=QxP = Q, and it is the only such xx in [0,n)[0, n).

Proof. The uru_r have greatest common divisor 11, so there are integers wrw_r with ∑rwrur=1\sum_r w_r u_r = 1. If Q=yPQ = yP, then Qr=yPrQ_r = y P_r. Conversely, if Qr=xrPrQ_r = x_r P_r for every rr, then Q=∑rwrurQ=∑rwrQrQ = \sum_r w_r u_r Q = \sum_r w_r Q_r. For xx with x≡xr(modre)x \equiv x_r \pmod{r^e}, xPr=xrPrx P_r = x_r P_r because PrP_r has order rer^e, so xP=∑rwrurxP=∑rwrxPr=∑rwrQr=QxP = \sum_r w_r u_r x P = \sum_r w_r x P_r = \sum_r w_r Q_r = Q. Uniqueness in [0,n)[0, n) holds since PP has order nn. □\square

Lemma 2 (the Sylow subgroup). If rr is a prime with r∣nr \mid n and r2∤Nr^2 \nmid N, then e=1e = 1, PrP_r has order rr, ⟨Pr⟩={T∈G:rT=O}\langle P_r \rangle = \{T \in G : rT = O\}, and G=⟨Pr⟩⊕rGG = \langle P_r \rangle \oplus rG with rGrG of order N/rN / r. If moreover nQ=OnQ = O, then Qr∈⟨Pr⟩Q_r \in \langle P_r \rangle.

Proof. rer^e divides nn, which divides NN, so e=1e = 1, and Pr=(n/r)PP_r = (n/r)P has order rr. The kernel of T↦rTT \mapsto rT is a subgroup whose order is a power of rr dividing NN. It contains PrP_r, so it has order exactly rr and equals ⟨Pr⟩\langle P_r \rangle. Hence rGrG has order N/rN / r, which is prime to rr. So rG∩⟨Pr⟩={O}rG \cap \langle P_r \rangle = \{O\}, and the orders multiply to NN, which gives the direct sum. Finally rQr=nQ=Or Q_r = nQ = O, so QrQ_r lies in the kernel. □\square

Lemma 3 (rows are true). If DECOMPOSE(R)(R) returns ee, then R=∑x∈BexPxR = \sum_{x \in \mathcal{B}} e_x P_x.

Proof. At line L16, R=(xR,y)R = (x_R, y) with xR∈Bx_R \in \mathcal{B}, and y2=xR3+axR+b=yxR2y^2 = x_R^3 + a x_R + b = y_{x_R}^2, so y=±yxRy = \pm y_{x_R} and R=±PxRR = \pm P_{x_R} with the sign returned. At line L20 the equality ε1Px1+ε2Px2=R\varepsilon_1 P_{x_1} + \varepsilon_2 P_{x_2} = R is checked before the row is returned, and the row adds ε1\varepsilon_1 at x1x_1 and ε2\varepsilon_2 at x2x_2, also when x1=x2x_1 = x_2. □\square

Lemma 4 (elimination). After kk relations have been processed in lines L12 to L15, every stored row vv of KK and every dependency cc found so far satisfy v≡∑ici(v)eiv \equiv \sum_i c^{(v)}_i e_i and ∑iciei≡0(modr)\sum_i c_i e_i \equiv 0 \pmod r, where c(v)c^{(v)} is the combination kept with vv. The dependencies found so far form a basis of the left kernel {c∈(Z/r)k:∑iciei≡0}\{c \in (\mathbb{Z}/r)^k : \sum_i c_i e_i \equiv 0\}.

Proof. A new row eke_k starts with combination $c = $ the unit vector at kk. Each step of line L12 subtracts a multiple of a stored row together with its combination, and line L15 scales both by the same unit, so the relation v≡∑icieiv \equiv \sum_i c_i e_i is kept. A row that reduces to 00 gives a dependency. The stored rows have distinct leading columns, and a stored row with leading column ℓ\ell has zeros before ℓ\ell; reducing the new row column by column in increasing order makes it zero at every stored leading column, so a nonzero result has a new leading column. Hence the stored rows stay in echelon form and are linearly independent, and they span the same space as e1,…,eke_1, \dots, e_k modulo rr, because each operation is invertible. So ∣K∣|K| is the rank ρk\rho_k of e1,…,eke_1, \dots, e_k. Each relation adds either a row to KK or a dependency, so k−ρkk - \rho_k dependencies have been found. The dependency found at relation jj has coefficient 11 at jj and 00 after jj, so these vectors are linearly independent. The left kernel has dimension k−ρkk - \rho_k, so they form a basis. □\square

Lemma 5 (a dependency gives the logarithm). In RELATIONS(P,Q,r)(P, Q, r) with r ∥ Nr \,\|\, N, ord⁡(P)=r\operatorname{ord}(P) = r and Q=x∗PQ = x^* P, let cc be a dependency with A=∑iciaiA = \sum_i c_i a_i and C=∑icibiC = \sum_i c_i b_i. Then A+x∗C≡0(modr)A + x^* C \equiv 0 \pmod r. So if C≢0C \not\equiv 0, line L14 returns x∗ mod rx^* \bmod r.

Proof. Take the cic_i as integers in [0,r)[0, r). By Lemma 3, ∑iciei=rw\sum_i c_i e_i = r w for an integer vector ww, so ∑iciRi=r∑xwxPx\sum_i c_i R_i = r \sum_x w_x P_x. Let h=N/rh = N / r. Then h∑iciRi=∑xwx(NPx)=Oh \sum_i c_i R_i = \sum_x w_x (N P_x) = O. On the other side, Ri=(ai+x∗bi)P+rUiR_i = (a_i + x^* b_i) P + r U_i, so h∑iciRi=h(A+x∗C)P+∑ici(NUi)=h(A+x∗C)Ph \sum_i c_i R_i = h (A + x^* C) P + \sum_i c_i (N U_i) = h (A + x^* C) P. Hence h(A+x∗C)≡0(modr)h (A + x^* C) \equiv 0 \pmod r, and r∤hr \nmid h because r2∤Nr^2 \nmid N. □\square

Correctness. If nQ≠OnQ \ne O, then Q∉⟨P⟩Q \notin \langle P \rangle and line L2 returns NONE correctly. Otherwise, for each rr: if r2∣Nr^2 \mid N, baby-step giant-step on ⟨Pr⟩\langle P_r \rangle of order rer^e returns xrx_r with xrPr=Qrx_r P_r = Q_r or reports that none exists. If r2∤Nr^2 \nmid N, Lemma 2 gives Qr∈⟨Pr⟩Q_r \in \langle P_r \rangle and Lemma 5 shows that RELATIONS returns xrx_r with xrPr=Qrx_r P_r = Q_r. By Lemma 1, line L5 returns NONE exactly when Q∉⟨P⟩Q \notin \langle P \rangle, and otherwise line L7 returns the unique x∈[0,n)x \in [0, n) with xP=QxP = Q.

Termination. Lines L1 to L7 run over finitely many primes, and baby-step giant-step stops. Drawing UU stops with probability 11, because the right side of the curve equation is a square for some xx; for example B≠∅\mathcal{B} \ne \emptyset, which the implementation checks. Root finding in DECOMPOSE stops with probability 11 (see the Cantor-Zassenhaus algorithm), and its loops are finite. It remains to show that the loop of lines L9 to L15 stops with probability 11.

Fix x0∈Bx_0 \in \mathcal{B} and S=Px0S = P_{x_0}. By Lemma 2 write S=σP+S′S = \sigma P + S' with S′∈rGS' \in rG, and pick an affine U′U' with rU′=S′rU' = S': if S′=OS' = O, take U′=PU' = P, which is affine since P≠OP \ne O; otherwise any preimage is affine. Let π>0\pi > 0 be the probability that rUj=S′rU_j = S'. For every β∈[0,r)\beta \in [0, r), Rj=SR_j = S and bj=βb_j = \beta hold exactly when rUj=S′rU_j = S' and aj≡σ−x∗β(modr)a_j \equiv \sigma - x^* \beta \pmod r, which has probability π/r2\pi / r^2. So each draw gives Rj=SR_j = S with probability π/r>0\pi / r > 0, and given that, bjb_j is uniform in [0,r)[0, r), independently of the other draws. DECOMPOSE(S)(S) returns a row at line L16. Hence, with probability 11, there are two relations j<kj < k with Rj=Rk=SR_j = R_k = S and bj≠bkb_j \ne b_k, because r≥2r \ge 2. Their rows are equal, since DECOMPOSE is a function of RR, so the vector with 11 at jj and −1-1 at kk is in the left kernel after relation kk, with C=bj−bk≢0C = b_j - b_k \not\equiv 0. Suppose the loop has not stopped when relation kk has been processed. Then every dependency found so far had C≡0C \equiv 0. By Lemma 4 they span the left kernel, and CC is linear in cc, so C≡0C \equiv 0 on the whole kernel, a contradiction. So the loop stops by relation kk, and the algorithm stops with probability 11. ■\blacksquare

Back to Summation polynomial index calculus