CCTF_Public/writeups/vol9_rnd1/mazlos/secret.py

25 lines
559 B
Python

from Crypto.Util.number import *
from random import *
flag = b'CCTF{pOl1arD5_Rh0_A7T4cK}'
m = bytes_to_long(flag.lstrip(b'CCTF{').rstrip(b'}'))
x = 1017889920298554816361874889125359209380542463300
liar = []
p = 2**160 - 229233
# E = EllipticCurve(GF(p), [3, 0])
# o = E.order()
o = 1461501637330902918203683758258034914537499271049
for _ in range(109):
r, s = [randint(1, o) for _ in '01']
liar.append((r, s))
# r0 - r1 = (d1 - d0) * o
r0 = randint(1, o)
s0 = (-inverse(m, o) * (r0 - liar[0][0]) + liar[0][1]) % o
liar.append((r0, s0))
shuffle(liar)