题目叫做共模攻击,但实际上考察的更多是copper。
1 | # hint.py |
1 | # task.py |
利用共模攻击可以还原hint.py中的信息:
1 | from sympy.ntheory.residue_ntheory import nthroot_mod |
m的位长度小于400,这个信息暗示后续可能会用到copper。
task.py推导:
c2和c1同理。
知道m的位数,这里就可以用copper。
sage脚本:
1 | n = 128205304743751985889679351195836799434324346996129753896234917982647254577214018524580290192396070591032007818847697193260130051396080104704981594190602854241936777324431673564677900773992273463534717009587530152480725448774018550562603894883079711995434332008363470321069097619786793617099517770260029108149 |