Singular Manual: ECPP

| #### D.12.2.35 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.4.1, 2025, generated by texi2html.