30 lines
481 B
Python
Executable File
30 lines
481 B
Python
Executable File
#!python3
|
|
|
|
from Crypto.Util.number import getPrime, bytes_to_long
|
|
|
|
with open('flag.txt', 'rb') as f:
|
|
flag = f.read()
|
|
|
|
p = getPrime(1024)
|
|
q = getPrime(1024)
|
|
r = getPrime(1024)
|
|
|
|
n1 = p * q
|
|
n2 = p * r
|
|
n3 = q * r
|
|
|
|
moduli = [n1, n2, n3]
|
|
|
|
e = 65537
|
|
c = bytes_to_long(flag)
|
|
|
|
for n in moduli:
|
|
c = pow(c, e, n)
|
|
|
|
with open('public-key.txt', 'w') as f:
|
|
f.write(f'n1: {n1}\n')
|
|
f.write(f'n2: {n2}\n')
|
|
f.write(f'n3: {n3}\n')
|
|
f.write(f'e: {e}\n')
|
|
f.write(f'c: {c}\n')
|