summaryrefslogtreecommitdiff
path: root/sea.gp
diff options
context:
space:
mode:
Diffstat (limited to 'sea.gp')
-rw-r--r--sea.gp100
1 files changed, 0 insertions, 100 deletions
diff --git a/sea.gp b/sea.gp
deleted file mode 100644
index a24ee2b..0000000
--- a/sea.gp
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * E(Fp): y^2 = x^3 + ax + b mod p
- * @returns [p, a, b, G.x, G.y, n, h], G has the largest prime order possible
- * @param p
- * @param a
- * @param b
- */
-largest_prime(p, a, b) = {
- local(e, o, G);
- e = ellinit([a, b], p);
- o = ellsea(e);
- if(!o, return);
-
- G = find_point(e, o, maxprime_order(o));
- return(pack_params(p, a, b, G));
-}
-
-/**
- * E(Fp): y^2 = x^3 + ax + b mod p
- * @returns [p, a, b, G.x, G.y, n, h], G has the smallest prime order possible
- * @param p
- * @param a
- * @param b
- */
-smallest_prime(p, a, b) = {
- local(e, o, G);
- e = ellinit([a, b], p);
- o = ellsea(e);
- if(!o, return);
-
- G = find_point(e, o, minprime_order(o));
- return(pack_params(p, a, b, G));
-}
-
-/**
- * E(Fp): y^2 = x^3 + ax + b mod p
- * @returns [p, a, b, G.x, G.y, n, h=1], G is generator of E(Fp)
- * @param p
- * @param a
- * @param b
- */
-generator(p, a, b) = {
- local(e, o, G);
- e = ellinit([a, b], p);
- o = ellsea(e);
- if(!o, return);
-
- G = find_point(e, o, o);
- return(pack_params(p, a, b, G));
-}
-
-/**
- * E(Fp): y^2 = x^3 + ax + b mod p
- * @returns vector of domain parameters [p, a, b, G, n, h] points of all prime orders
- * @param p
- * @param a
- * @param b
- */
-all_prime(p, a, b) = {
- local(e, o, G);
- e = ellinit([a, b], p);
- o = ellsea(e);
- if(!o, return);
-
- G = find_points(e, o, prime_orders(o));
- return(vector(length(G),X,pack_params(p, a, b, G[X])));
-}
-
-/*####################################################################*/
-
-/**
- * E(Fp): y^2 = x^3 + ax + b mod p
- * @returns [p, a, b, G.x, G.y, r, k, P.x, P.y, n], G is generator of E(Fp), P has the smallest prime order
- */
-small_pubkey(p, a, b) = {
- local(e, o, G, f, n, r, P);
- e = ellinit([a, b], p);
- o = ellsea(e);
- if(!o, return);
-
- if(isprime(o),
- G = random(e);
- n = o;
- r = o;
- P = random(e);
- ,
- G = find_point(e, o, o);
- f = factor(o);
- n = f[1,1];
- /*
- until(r % n == 0,
- G = random(e);
- r = ellorder(e, G);
- );
- */
- P = ellmul(e, G, o\n);
- );
-
- return([p, a, b, lift(G[1]), lift(G[2]), r, o\r, lift(P[1]), lift(P[2]), n]);
-}