一道 2020网鼎杯的题:
有这么一道题,名为 you raise me up
给的代码是这样的
其实就是 m 的 flag 次方 模 n 值为 c
现在的情况是m 已知,c也已知
然后求 flag
这是一种求离散对数的题,flag 可以用离散对数的形式给出,
C mod n
flag = log
m
sage是一个开源的数学软件 ,可支持大数运算,其中 有一个函数为 discrete_log就是
参数写成:
discrete_log(c,mod(m,n))
的形式,
即可求出值
56006392793405651552924479293096841126763872290794186417054288110043102953612574215902230811593957757
将上式值 转化为字符型 可用 long_to_bytes
得到flag