文章预览
点击蓝字 关注我们 CHENJI 日期:2024年5月30日 作者:jgk01 介绍:dfs与ecc特性结合的一道考题。 0x00 前言 年前一次比赛遇到的题目,也是之前没有见过的类型,密码分为两段,前段半段 ECC 的知识,后半段 RSA 的 dfs 内容,正好学习记录一下。 0x01 题目 先来看题目条件: from sage.all import * from Crypto.Util.number import * from secret import flag flag = flag.split(b'flag{')[1].strip(b'}') assert len(flag) == 36 m1 = flag[:18] m2 = flag[18:] p = getPrime(256) q = getPrime(256) n = p * q e = 65537 _q = int(bin(q)[2:][::-1] , 2) print(p ^^ _q) print(n) CC = pow(bytes_to_long(m2),e,n) print(CC) E = EllipticCurve(Zmod(n),[114514,1919810]) G = E.lift_x(Integer(bytes_to_long(m1))) P = G * e print(P) # 5599968251197363876087002284371721787318931284225671549507477934076746561842 # 7120275986401660066259983193598830554385933355254283093021239164350142898387660104515624591378875067038235085428170557400012848874756
………………………………