Advertisement
OIQ

Untitled

OIQ
Nov 12th, 2021
790
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import math
  2.  
  3.  
  4. # расширенный алгоритм Евклида
  5. def egcd(a, b):
  6.     if a == 0:
  7.         return b, 0, 1
  8.     else:
  9.         (gcd, x, y) = egcd(b % a, a)
  10.         return (gcd, y - (b // a) * x, x)
  11.  
  12.  
  13. N = 64744746039677253498788201987949489597084582313857245777749
  14. e = 65537
  15. c = 17634975980298703601787096849134111915573473232658913092598
  16. # p & q получены из https://www.cryptool.org/en/cto/msieve
  17. p = 240496652990184891932050230671
  18. q = 269212669842517953655487245019
  19.  
  20. # вычисляем нок
  21. _lambda = math.lcm(p - 1, q - 1)
  22.  
  23.  
  24. # находим коэфициенты a b
  25. alg_res = egcd(e, _lambda)
  26. a, b = alg_res[1], alg_res[2]
  27. d = a % _lambda
  28.  
  29. # степень по модулю N
  30. m = pow(c, d, N)
  31.  
  32. hexed = hex(m)
  33. answer = bytes.fromhex(hexed[2:])
  34.  
  35. print(answer)
  36.  
Advertisement
RAW Paste Data Copied
Advertisement