1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| from Crypto.Util.number import * from secret import flag
m1, m2 = bytes_to_long(flag[:len(flag)//2]), bytes_to_long(flag[len(flag)//2:]) p, q, r, s = [getStrongPrime(512) for _ in range(4)] e = 0x10001
n = p * q * r * s x = pow(q + r, p, n) y = pow(p * q + r, p, n) z = pow(s + 1, m1, s ** 3) c = pow(m2, e * (s - 1), n)
print(f'{n = }') print(f'{x = }') print(f'{y = }') print(f'{z = }') print(f'{c = }')
|