sylow 0.1.1

Implementation of the BLS signature scheme using the alt-bn128 curve.
Documentation
import logging
import sys

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)

p = 21888242871839275222246405745257275088696311157297823662689037894645226208583
order_r = 21888242871839275222246405745257275088548364400416034343698204186575808495617
c2 = 21888242871839275222246405745257275088844257914179612981679871602714643921549

Fp = GF(p)

R.<u> = PolynomialRing(Fp)
Fp2.<u> = Fp.extension(u^2+1)

S.<v> = PolynomialRing(Fp2)
Fp6.<v> = Fp2.extension(v^3 - (9+u))


# T.<w> = PolynomialRing(Fp6)
# Fp12.<w> = Fp6.extension(w^2-v)
# Fp2.<u> = GF(p^2, modulus=x^2+1)

E1 = EllipticCurve(Fp,[0,3])
E2 = EllipticCurve(Fp2, [0, 3/(9+u)])

assert E2.order() == c2*order_r


logging.info(f"Running with modulus: {p}")