加密
input[i]=pow(input[i],公钥)%33;
解密
input[i]=pow(input[i],私钥)%33;
术语
公钥:E
模数:N
私钥:D
加密用(E,N)
解密用(D,N)
公钥私钥的制作
-
选出2个质数 p,q
-
N=p*q
-
T=(p-1)*(q-1)
-
选取公钥E, 满足的条件 1<公钥<T ; 公钥是质数 ; 公钥不是T的因数
-
选取私钥D, 满足的条件 (私钥x公钥)%T=1 也就是说私钥和公钥是互为逆元的关系
那么flag求解如下
求简单的逆元(已知公钥和模数)
import gmpy2
p=473398607161
q=4511491
e=17
phi_n = (p-1)*(q-1)
d = gmpy2.invert(e,phi_n)
print(d)
标签:gmpy2,公钥,私钥,pow,crypto,rsa,phi,buuctf,input
From: https://www.cnblogs.com/re4mile/p/17263231.html