点击此处获得更好的阅读体验
WriteUp来源
本WP由Vanish
提供
题目考点
- 离散对数
解题思路
1 | #!/usr/bin/env python |
题中我们的flag在m的指数位置,所以这题是解一个DLP(离散对数问题)
发现题中的n = 2 ** 512
, 所以phi(n) = 2 ** 511
;即本题模数的欧拉函数具有smooth的性质,即其是由很多小素数乘积而来,所以可用Pohlig Hellman 算法来解决这个DLP,sage的discrete_log用的方法就包括Pohlig Hellman算法,exp:
1 | m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075 |
得到结果之后数字转字符串即可
1 | import libnum |
Flag
1 | flag{5f95ca93-1594-762d-ed0b-a9139692cb4a} |