deushiro

Untitled

Nov 12th, 2021
953
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. import math
  2. #Расширенный алгоритм Евклида
  3.  
  4. def ex_euclid(a, b):
  5.     if a == 0:
  6.         return (b, 0, 1)
  7.     else:
  8.         (gcd, x, y) = ex_euclid(b % a, a)
  9.         return (gcd, y - (b // a) * x, x)
  10.  
  11. def power(a, p):
  12.   if(p == 0):
  13.     return 1
  14.   if(p % 2 == 0):
  15.     return pow(a, p // 2) * pow(a, p // 2)
  16.   else:
  17.     return a * pow(a, p // 2)
  18.  
  19.  
  20. N = 64744746039677253498788201987949489597084582313857245777749
  21. e = 65537
  22. c = 17634975980298703601787096849134111915573473232658913092598
  23. #Используем msieve
  24. p = 240496652990184891932050230671
  25. q = 269212669842517953655487245019
  26.  
  27.  
  28. lambda_ = math.lcm(p - 1, q - 1)
  29. gcd, a, b = ex_euclid(e, lambda_)
  30. d = a % lambda_
  31.  
  32. m = power(c, d) % N
  33.  
  34. print(bytes.fromhex(hex(m)))
  35.  
Advertisement
Add Comment
Please, Sign In to add comment