Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- # расширенный алгоритм Евклида
- def egcd(a, b):
- if a == 0:
- return b, 0, 1
- else:
- (gcd, x, y) = egcd(b % a, a)
- return (gcd, y - (b // a) * x, x)
- N = 64744746039677253498788201987949489597084582313857245777749
- e = 65537
- c = 17634975980298703601787096849134111915573473232658913092598
- # p & q получены из https://www.cryptool.org/en/cto/msieve
- p = 240496652990184891932050230671
- q = 269212669842517953655487245019
- # вычисляем нок
- _lambda = math.lcm(p - 1, q - 1)
- # находим коэфициенты a b
- alg_res = egcd(e, _lambda)
- a, b = alg_res[1], alg_res[2]
- d = a % _lambda
- # степень по модулю N
- m = pow(c, d, N)
- hexed = hex(m)
- answer = bytes.fromhex(hexed[2:])
- print(answer)
Advertisement
RAW Paste Data
Copied
Advertisement