RSA roll!roll!roll!
时间: 2024-02-10 12:06:20 浏览: 33
RSA roll!roll!roll!是一个基于RSA加密算法的题目。其中给出了RSA的参数n、e和密文c,需要解密出明文flag。通过套用脚本,可以使用RSA的解密算法来还原明文。具体步骤如下:
1. 导入所需的库和函数。
2. 定义RSA的参数n、e和密文c。
3. 使用库函数计算解密所需的参数d。
4. 使用库函数对密文进行解密,得到十进制格式的明文。
5. 将十进制的明文转换为字符串格式的flag。
解密脚本示例:
```
import libnum
from Crypto.Util.number import long_to_bytes
list1=[704796792, 752211152, 274704164, 18414022, 368270835, 483295235, 263072905, 459788476, 483295235, 459788476, 663551792, 475206804, 459788476, 428313374, 475206804, 459788476, 425392137,704796792, 458265677, 341524652, 483295235, 534149509, 425392137, 428313374, 425392137, 341524652, 458265677, 263072905, 483295235, 828509797, 341524652, 425392137, 475206804, 428313374, 483295235, 475206804, 459788476, 306220148]
flag=""
n=920139713
q=18443
p=49891
e=19
for i in list1:
c=i
d = libnum.invmod(e, (p - 1) * (q - 1))
m = pow(c, d, n)
string = long_to_bytes(m)
flag = string.decode()
print(flag)
```