安全矩阵

 找回密码
 立即注册
搜索
查看: 3048|回复: 0

i春秋第二届春秋欢乐赛rsa256

[复制链接]

12

主题

18

帖子

150

积分

注册会员

Rank: 2

积分
150
发表于 2020-3-31 18:38:10 | 显示全部楼层 |阅读模式
题目名称:rsa256
题目内容:Download

解题思路:
1、首先看到公钥文件public.key,想都不用想,直接丢给kali,用openssl解出e、n。

2、e为65537,n还比较短,先转换为10进制

3、对n进行因数分解,登录网站http://factordb.com/,轻易就解出p和q

4、到这里,RSA的参数已经齐全了
p = 302825536744096741518546212761194311477
q = 325045504186436346209877301320131277983
n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
e = 65537

5、使用python3代码实现密文解密
  1. import gmpy2
  2. import rsa
  3. p = 302825536744096741518546212761194311477
  4. q = 325045504186436346209877301320131277983
  5. n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
  6. e = 65537
  7. d = int(gmpy2.invert(e , (p-1) * (q-1)))
  8. privatekey = rsa.PrivateKey(n , e , d , p , q)      #根据已知参数,计算私钥
  9. with open("encrypted.message1" , "rb") as f:
  10.     print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印
  11. with open("encrypted.message2" , "rb") as f:
  12.     print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印
  13. with open("encrypted.message3" , "rb") as f:
  14.     print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印
复制代码
6、运行程序得到答案

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 00:48 , Processed in 0.012574 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表