Files
2026-07-04 19:24:40 +09:00

31 lines
537 B
Python

from Crypto.Util.number import getPrime
from random import randint
# Public parameters
g = 2
p = getPrime(1048)
# Server's secret
a = randint(2, p-2)
A = pow(g, a, p)
# Client secret
b = '???'
B = pow(g, b, p)
# Shared key
shared = pow(A, b, p)
# Encrypt flag
flag = b"picoCTF{...}"
enc = bytes([x ^ (shared % 256) for x in flag])
# Write challenge info
with open("file.txt", "w") as f:
f.write(f"g = {g}\n")
f.write(f"p = {p}\n")
f.write(f"A = {A}\n")
f.write(f"b = {b} \n")
f.write(f"enc = {enc.hex()}\n")