vesta.sage 962 B

12345678910111213141516171819202122
  1. q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001
  2. K = GF(q)
  3. a = K(0x00)
  4. b = K(0x05)
  5. E = EllipticCurve(K, (a, b))
  6. G = E(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000, 0x02)
  7. E.set_order(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001 * 0x01)
  8. p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001
  9. Scalar = GF(p)
  10. A = E(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000, 0x0000000000000000000000000000000000000000000000000000000000000002)
  11. x = Scalar(0x0000000000000000000000000000000000000000000000000000000000000057)
  12. print(int(x))
  13. #print([hex(x) for x in (x * A).xy()])
  14. B = E(0x04cbd122b054187ff98f0726651096de7f55a213c233902764fe87d376eeb99c, 0x2d5c8c632b1f33eb42726cda0af9f95eaf3dfa8511e6a7b657713dbf62bb13a5)
  15. assert int(x) * A == B
  16. yy = Scalar(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe)
  17. y = x - Scalar(90)
  18. print(hex(int(y)))
  19. assert yy == y