Parameter
In the file "https://github.com/elliptic-shiho/ecpy/blob/master/examples/boneh_lynn_shacham_short_signature.py", I would like to know why you have all those parameters please?
In your "https://github.com/elliptic-shiho/ecpy/blob/master/ecpy/elliptic_curve/EllipticCurveRepository.py" nor https://safecurves.cr.yp.to has that specific number (p, l, etc.). I even did not found them on Google.
MapToPoint
I tried to replace all those parameter with yours (for example: (F, E, G, n) = EllipticCurveRepository("secp521r1")).
In addition, I tried to replace FiniteField with ExtendedFiniteField + both possible functions.
None of those works with MapToPoint.
Case FiniteField:
MapToPoint(E, E.field(12313))
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/site-packages/ecpy/elliptic_curve/pairing.py", line 116, in MapToPoint
x = cubic_root(y**2 - 1)
File "/usr/local/lib/python2.7/site-packages/ecpy/utils/root.py", line 183, in cubic_root
rho = F(random.randint(1, p - 1), random.randint(1, p - 1))
File "/usr/local/lib/python2.7/site-packages/ecpy/rings/Ring.py", line 12, in call
return s.element_class(s, *x)
TypeError: init() takes exactly 3 arguments (4 given)
Case ExtendedFiniteField:
MapToPoint(E, E.field(hash_ID))
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.7/site-packages/ecpy/elliptic_curve/pairing.py", line 117, in MapToPoint
Q = E(x, y)
File "/usr/local/lib/python3.7/site-packages/ecpy/elliptic_curve/EllipticCurve.py", line 78, in call
return s.element_class(s, *x)
File "/usr/local/lib/python3.7/site-packages/ecpy/elliptic_curve/EllipticCurve.py", line 354, in init
raise ArithmeticError("Invalid Point: (%s, %s, %s)" % (s.x, s.y, s.z))
ArithmeticError: Invalid Point: (mpz(37625453826780433377388048957201879362379477227012885069949001701454994121997751017162539005563127226988793675695228), mpz(12847647103851729428361901244548237337583883889892318731641379765076369134081500062657316972842886439414859445286270), 1)
Parameter
In the file "https://github.com/elliptic-shiho/ecpy/blob/master/examples/boneh_lynn_shacham_short_signature.py", I would like to know why you have all those parameters please?
In your "https://github.com/elliptic-shiho/ecpy/blob/master/ecpy/elliptic_curve/EllipticCurveRepository.py" nor https://safecurves.cr.yp.to has that specific number (p, l, etc.). I even did not found them on Google.
MapToPoint
I tried to replace all those parameter with yours (for example: (F, E, G, n) = EllipticCurveRepository("secp521r1")).
In addition, I tried to replace FiniteField with ExtendedFiniteField + both possible functions.
None of those works with MapToPoint.
Case FiniteField:
MapToPoint(E, E.field(12313))
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/site-packages/ecpy/elliptic_curve/pairing.py", line 116, in MapToPoint
x = cubic_root(y**2 - 1)
File "/usr/local/lib/python2.7/site-packages/ecpy/utils/root.py", line 183, in cubic_root
rho = F(random.randint(1, p - 1), random.randint(1, p - 1))
File "/usr/local/lib/python2.7/site-packages/ecpy/rings/Ring.py", line 12, in call
return s.element_class(s, *x)
TypeError: init() takes exactly 3 arguments (4 given)
Case ExtendedFiniteField:
MapToPoint(E, E.field(hash_ID))
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.7/site-packages/ecpy/elliptic_curve/pairing.py", line 117, in MapToPoint
Q = E(x, y)
File "/usr/local/lib/python3.7/site-packages/ecpy/elliptic_curve/EllipticCurve.py", line 78, in call
return s.element_class(s, *x)
File "/usr/local/lib/python3.7/site-packages/ecpy/elliptic_curve/EllipticCurve.py", line 354, in init
raise ArithmeticError("Invalid Point: (%s, %s, %s)" % (s.x, s.y, s.z))
ArithmeticError: Invalid Point: (mpz(37625453826780433377388048957201879362379477227012885069949001701454994121997751017162539005563127226988793675695228), mpz(12847647103851729428361901244548237337583883889892318731641379765076369134081500062657316972842886439414859445286270), 1)