mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 23:27:56 -05:00
27 lines
572 B
Python
27 lines
572 B
Python
q = 1021
|
|
K = GF(q)
|
|
E = EllipticCurve(K, [905, 100])
|
|
print(E)
|
|
print(f"Group order is: {E.cardinality()}")
|
|
P = E(1006, 416)
|
|
assert P.additive_order() == E.cardinality()
|
|
|
|
Q = E(612, 827)
|
|
|
|
matches = {}
|
|
|
|
for j, m in factor(E.cardinality()):
|
|
assert m == 1
|
|
|
|
P_j = int(E.cardinality() / j) * P
|
|
Q_j = int(E.cardinality() / j) * Q
|
|
|
|
for k in range(j):
|
|
if k * P_j == Q_j:
|
|
#print(f"Match found for j = {j}!")
|
|
matches[j] = k
|
|
break
|
|
|
|
k = crt(list(matches.values()), list(matches.keys()))
|
|
print(f"k = {k} mod {E.cardinality()}")
|