Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- #Расширенный алгоритм Евклида
- def ex_euclid(a, b):
- if a == 0:
- return (b, 0, 1)
- else:
- (gcd, x, y) = ex_euclid(b % a, a)
- return (gcd, y - (b // a) * x, x)
- def power(a, p):
- if(p == 0):
- return 1
- if(p % 2 == 0):
- return pow(a, p // 2) * pow(a, p // 2)
- else:
- return a * pow(a, p // 2)
- N = 64744746039677253498788201987949489597084582313857245777749
- e = 65537
- c = 17634975980298703601787096849134111915573473232658913092598
- #Используем msieve
- p = 240496652990184891932050230671
- q = 269212669842517953655487245019
- lambda_ = math.lcm(p - 1, q - 1)
- gcd, a, b = ex_euclid(e, lambda_)
- d = a % lambda_
- m = power(c, d) % N
- print(bytes.fromhex(hex(m)))
Advertisement
Add Comment
Please, Sign In to add comment