mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 07:08:05 -05:00
ec pairing class group divisors in sage
This commit is contained in:
32
script/research/ec/pairing/3.1.2-classgroup.sage
Normal file
32
script/research/ec/pairing/3.1.2-classgroup.sage
Normal file
@@ -0,0 +1,32 @@
|
||||
q = 61
|
||||
K = GF(q)
|
||||
E = EllipticCurve(K, [8, 1])
|
||||
|
||||
P = E(57,24)
|
||||
Q = E(25,37)
|
||||
R = E(17,32)
|
||||
S = E(42,35)
|
||||
inf = E(0)
|
||||
|
||||
D1 = ((1, P), (1, Q), (1, R))
|
||||
D2 = ((4, inf), (-1, S))
|
||||
|
||||
# D1 ~ D2 <=> D1 = D2 + <f>
|
||||
# sum(div(f)) = O, deg(div(f)) = 0
|
||||
|
||||
def dsum(D):
|
||||
P = inf
|
||||
for order, pnt in D:
|
||||
P += order * pnt
|
||||
return P
|
||||
|
||||
def degree(D):
|
||||
return sum(order for order, _ in D)
|
||||
|
||||
def neg(D):
|
||||
return tuple((-order, pnt) for order, pnt in D)
|
||||
|
||||
D = D1 + neg(D2)
|
||||
assert degree(D) == 0
|
||||
assert dsum(D) == inf
|
||||
|
||||
Reference in New Issue
Block a user