复现[GKCTF 2021]RRRRsa
拿到题目后,准备操作,额,,,
看了看大佬的wp,恍然大悟,分享一下解题的思路。(部分题目如下)
一般看到这种像hint1的式子,都需要用gcd(,n)去分解出q或p。推导过程如下(官方题解)
推导过程需要用到二项式定理和费马定理。原理如下:
1)二项式定理:
2)费马定理:a^p = a mod p;
了解原理后,在看题解就容易多了。总结了一下:
1)拿到两个式子后,先把括号去掉,然后把常数项去掉;
2)之后得到的式子应该是俩个只含p或q的式子,让两个式子的p(或q)的指数和系数相同;
3)将两个式子相加或相减消掉p,剩下的式子应该只剩下q,与n进行gcd()求出q。
代码如下
from gmpy2 import gcd
from Crypto.Util.number import *
import gmpy2
c=13492392717469817866883431475453770951837476241371989714683737558395769731416522300851917887957945766132864151382877462142018129852703437240533684604508379950293643294877725773675505912622208813435625177696614781601216465807569201380151669942605208425645258372134465547452376467465833013387018542999562042758
n1=7500355737908025221951782599899018322665911701977073508052340956175722588365104088254751974810758871949826192281686562671410155620764992965