#!/usr/bin/env python3 from sage.all import * from flag import flag n = 43216667049953267964807040003094883441902922285265979216983383601881964164181 U = 18230294945466842193029464818176109628473414458693455272527849780121431872221 V = 13100009444194791894141652184719316024656527520759416974806280188465496030062 W = 5543957019331266247602346710470760261172306141315670694208966786894467019982 flag = flag.lstrip(b'CCTF{').rstrip(b'}') s = int(flag.hex(), 16) assert s < n E = EllipticCurve(Zmod(n), [0, U, 0, V, W]) G = E(6907136022576092896571634972837671088049787669883537619895520267229978111036, 35183770197918519490131925119869132666355991678945374923783026655753112300226) print(f'G = {G}') print(f's * G = {s * G}')
というEllipticCurve上のECDLP