# Misc
# 下一站上岸
用 010 查看发现图片末尾有隐写
得到提示:摩斯密码
后根据考公的思路图形有两个交点的可以视为 - ,一个交点的可以视为 . ,没有交点的视为空格进行摩斯解密
可得 flag (需要变小写,并且包裹 begin {})
# 你知道中国文化嘛 1.0
# Crypto
# Hard_ECC
源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| from flag import flag
A = [0, 3, 0, 973467756888603754244984534697613606855346504624, 864199516181393560796053875706729531134503137794] p = 992366950031561379255380016673152446250935173367 ec = EllipticCurve(GF(p), [A[0], A[1], A[2], A[3], A[4]]) T = ec.random_point() secret = int.from_bytes(flag, 'little') Q = T * secret print(T, Q) # (295622334572794306408950267006569138184895225554 : 739097242015870070426694048559637981600496920065 : 1) # (282367703408904350779510132139045982196580800466 : 411950462764902930006129702137150443195710071159 : 1)
|
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| A = [0, 3, 0, 973467756888603754244984534697613606855346504624, 864199516181393560796053875706729531134503137794] p = 992366950031561379255380016673152446250935173367 ec = EllipticCurve(GF(p), [A[0], A[1], A[2], A[3], A[4]])
T = ec(295622334572794306408950267006569138184895225554, 739097242015870070426694048559637981600496920065) Q = ec(282367703408904350779510132139045982196580800466, 411950462764902930006129702137150443195710071159)
try: k = T.discrete_log(Q) print("Secret scalar (k):", k)
secret_bytes = int(k).to_bytes((k.bit_length() + 7) // 8, 'little') print("Secret in bytes:", secret_bytes) except Exception as e: print("Error solving discrete log:", e)
|