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 = 0x00b92c3636e4da4695edcda35b3d46b4947030a0d857dc5328cfec1d99791a2cb8
  22. s1 = 0x21edb7571d5739fe99a7af5962c012dcc7519c90e1212c46290184adab3c5a1c
  23. s2 = 0x5ebcc3d68736aea8faecfcdfe856e0c60608b7a9a6ddb77e093e9b59f137a1ab
  24. m1 = 0x52a65bd03910488747b140f308546971dfe6252da65dbcdfa7c9adfe6e1abcfa
  25. m2 = 0xbdc035eea888a7e6a154f09a5fd5bb0671eaa70c4a29b3c69d764232dd983a40
  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.04s 63344KB
stdin
Standard input is empty
stdout
-6b19da1e6f785f5f59a3afa757815194920481dea3cbf6e6f5ac94346f7d7d46
-3ccf0c7f69df74aa61454d868596cde93eb71b18c5bc8b37e03d16ac45fb478f
e739bee40eb8c9064c1b2072f944109ecb89bd01426952a5d1182c932aa64c43
k = ce6572cbd137a43a09bec08facee91b115546105e327c8e7a28d1a0d7ddeddb2
xx=d09f4a960bc7ba032dbc7471b10b16d276bf50284eab7c9515edfee8c6e5d227
x=ca6ca38949784812eb9640eb30e0348000a5192f583986ea5fdeb12feacb8e4b