Kachisa-Schaefer-Scott curves
A class of pairing-friendly curves with embedding degree . Given an integer a KSS curve can be constructed over a prime field with the number of points and a trace of Frobenius as follows:
The class of curves has the Short-Weierstrass form:
where given such that is prime, a curve with a prime order subgroup of points can be found either via complex multiplication or by exhaustively trying small coefficients until a curve is found.
The following SageMath code generates KSS curves.
class KSS(object):@classmethoddef generate_prime_order(cls, zbits):while True:z = randint(2^(zbits - 1), 2^zbits)pz = int(cls.p(z))if not is_prime(pz):continuerz = int(cls.r(z))if not is_prime(rz):continuebreakK = GF(pz)b = 1while True:curve = EllipticCurve(K, [0, b])card = curve.cardinality()if card % rz == 0:breakb += 1return curveclass KSS16(KSS):@staticmethoddef p(z):return (z^10 + 2 * z^9 + 5 * z^8 + 48 * z^6 + 152 * z^5 + 240 * z^4 + 625 * z^2 + 2398 * z + 3125)/9801@staticmethoddef r(z):return z^8 + 48 * z^4 + 625@staticmethoddef t(z):return (2 * z^5 + 41 * z + 35)/35class KSS18(KSS):@staticmethoddef p(z):return (z^8 + 5 * z^7 + 7 * z^6 + 37 * z^5 + 188 * z^4 + 259 * z^3 + 343 * z^2 + 1763 * z + 2401)/21@staticmethoddef r(z):return z^6 + 37 * z^3 + 343@staticmethoddef t(z):return (z^4 + 16 * z + 7)/7class KSS36(KSS):@staticmethoddef p(z):return (z^14 - 4 * z^13 + 7 * z^12 + 683 * z^8 - 2510 * z^7 + 4781 * z^6 + 117649 * z^2 - 386569 * z + 823543)/28749@staticmethoddef r(z):return z^12 + 683 * z^6 + 117649@staticmethoddef t(z):return (2 * z^7 + 757 * z + 259)/259class KSS40(KSS):@staticmethoddef p(z):return (z^22 - 2 * z^21 + 5 * z^20 + 6232 * z^12 - 10568 * z^11 + 31160 * z^10 + 9765625 * z^2 - 13398638 * z + 48828125)/1123380@staticmethoddef r(z):return z^16 + 8 * z^14 + 39 * z^12 + 112 * z^10 - 79 * z^8 + 2800 * z^6 + 24375 * z^4 + 125000 * z^2 + 390625@staticmethoddef t(z):return (2 * z^11 + 6469 * z + 1185)/1185
References
- Ezekiel J. Kachisa, Edward F. Schaefer, Michael Scott: Constructing Brezing-Weng Pairing-Friendly Elliptic Curves Using Elements in the Cyclotomic Field
- Diego F. Aranha, Laura Fuentes-Castaneda, Edward Knapp, Alfred Menezes, Francisco Rodríguez-Henríquez: Implementing Pairings at the 192-bit Security Level