fork download
  1.  
  2. def GCD(a, b):
  3. prevx, x = 1, 0
  4. prevy, y = 0, 1
  5. while b:
  6. q = a/b
  7. x, prevx = prevx - q*x, x
  8. y, prevy = prevy - q*y, y
  9. a, b = b, a%b
  10. return a, prevx, prevy
  11.  
  12.  
  13. def modinv(x, m):
  14. (gcd, c, d)= GCD(x,m)
  15. if c<0:
  16. c += m
  17. return c
  18.  
  19. q = 2**256 - 432420386565659656852420866394968145599
  20.  
  21. r = 0x00c5141123249e2db757e46cec2caad7f80b5b4c0f3cf98dca2186e91d027bb23b
  22. s1 = 0x01ea79fd9d62c6cd7b348faa9ca04ca6bd5a5a0da4f0f09f01f4a4779414da12
  23. s2 = 0x055369256542fa213c1e62289d91b0cec6e970a6da9874f6e8789d5f42b9fb4a
  24. m1 = 0x816c128a7e426e7a68f2e4aefa5168ad635c60ea229cfb04e72657ad9e770116
  25. m2 = 0x51d96b1cb1c872c79369d696d32d783a40f3aaa7bbbe1c99db69fe3e7efae911
  26.  
  27. print "%x" % (m1-m2) # -c92fa3379640006d2eae6af7760f4180d0cf13d3f49da60c183e0ba07a1caffe
  28. print "%x" % (s1-s2) # db4297e4f61d4c83ecaa00574d8cce2f9a531f164d28166ee484c58e92628104
  29.  
  30. mi = modinv(s1-s2, q)
  31. print "%x" % mi # 7369938cee97daa2c7e2b9aab4c07d7ba1189e177499caf6a2de68a71427428f
  32.  
  33. k = ((m1-m2)*mi) % q
  34. print "k = %x" % k # 6e3469cb1dec3ce994dfc5c88bb53971fe513749727bdfa4a44a38f294008136
  35.  
  36. rinv = modinv(r, q)
  37. xx = (s1*k-m1) % q
  38. print "xx=%x" % xx # 8321bc4f5e0a2973e5bdc9ba8194cc62c5be375216832cb5c04c28cab035dd42
  39. x = (xx * rinv) % q
  40. print "x=%x" % x # 1930a0cb6fe514b9ab03c652a61ac53b2c7ee6db417543de782503e690fab966
  41.  
Success #stdin #stdout 0.05s 63208KB
stdin
Standard input is empty
stdout
2f92a76dcc79fbb2d5890e182723f0732268b64266dede6b0bbc596f1f7c1805
-368ef27c7e03353c0e9d27e00f16428098f169935a78457e683f8e7aea52138
dc200e0c55c5c7de10e7fd099a758abb3b2ed73358f67437326181936f76cb9b
k = 1f85ad8fe31865b3c7d909c13ba78842f3de5d0bb03d1b0bfbbfcfa3e5e83c00
xx=2cb57dd60e6a6b7384120af2a4b05dfd10a65a13a1f495c9958f4f3f1c527323
x=98ed416affcabe0450190d3dc659f1f1999083bd60111d791c3c6ad1e2906e5d