25 lines
559 B
Python
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) |