RSA共模攻击和gmpy2、libnum常用函数
攻击条件
当两个用户使用相同的模数N、不同的私钥时,加密同一明文消息时,即存在同模攻击
攻击原理
设两个用户的公钥分别为e1和e2,且两者互质。明文信息为m,密文分别为:

当攻击者截获c1和c2后,就可以恢复出明文。用扩展欧几里得算法求出re1+se2=1 mod n 的两个整数r和s,由此可得:

例题

1 |
|
gmpy2常用函数
- n=invert(m,phi)求mod phi的逆元
- pow(m,e,n)求c^d mod n
- gmpy2.is_prime(n) 素性检测
- gmpy2.gcd(a,b) 欧几里得算法,最大公约数
- gmpy2.gcdext(a,b) 扩展欧几里得算法
- gmpy2.iroot(x,n) x开n次根
- gmpy2.mpz(n) 初始化一个大整数
libnum常用函数
libnum.invmod(a,b) 求mod b的逆元
数字型(不论是十六进制还是十进制)与字符串之间的转换:
1 |
|
- 二进制与字符串之间的转换:
1 |
|
- 质数&因数分解
1 |
|
本篇博客大部分摘自CTFwiki,记录的目的是为了加深自己的理解,也是为了方便自己的使用
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.