#### 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:
  - q|m
  - q>(4-th 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

User manual for Singular version 4-0-3, 2016, generated by texi2html.