
D.12.3.33 ECPP
Procedure from library crypto.lib (see crypto_lib).
 Usage:
 ECPP(N);
 Return:
 message:N is not prime or {L,P,m,q} as certificate for N being prime
L a list (y^2=x^3+L[1]*x+L[2] defines an elliptic curve C)
P a list ((P[1]:P[2]:P[3]) is a point of C)
m,q integers
 Assume:
 gcd(N,6)=1
 Note:
 The basis of the algorithm is the following theorem:
Given C, an elliptic curve over Z/N, P a point of C(Z/N),
m an integer, q a prime with the following properties:
 qm
 q>(4th root(N) +1)^2
 m*P=0=(0:1:0)
 (m/q)*P=(x:y:z) and z a unit in Z/N
Then N is prime.
Example:
 LIB "crypto.lib";
bigint N=1267985441;
ECPP(N);
==> P= [1]:
==> 780306204
==> [2]:
==> 1106324420
==> [3]:
==> 1
==> [1]:
==> [1]:
==> 67394594
==> [2]:
==> 380636642
==> [2]:
==> [1]:
==> 780306204
==> [2]:
==> 1106324420
==> [3]:
==> 1
==> [3]:
==> 1267993236
==> [4]:
==> 105666103

