buu [INSHack2017]rsa16m 1

题目描述:

在这里插入图片描述
打开的 rsa_16m 文件 :
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
(在此我只想说神人才找得到 c 的位置) ,这位置是真的难找啊

题目分析:

  • 首先打开 description.md 文件,得到:在这里插入图片描述
    翻译下来:

当您需要真正安全的通信时,您可以使用带有 4096 位密钥的 RSA。

我想要真正非常安全的通信来传输核发射代码(是的,物联网无处不在),所以我使用带有16777216位密钥的RSA。俄罗斯人肯定无法考虑这一点!

文件md5 : 1049a0c83a2e34760363b4ad9778753f

  • 从所有以上的题目描述可以得知的已知条件有:n,c,e已知,且 n,c 特别大,e = 0x10001 = 65537

c = m^e mod n

所以当 m^e 严重小于 n 的时候,c 很可能就是 m^e,所以对 c 开 e 次方即可得到 m

  • 以下是解题代码(将 rsa_16m 文件 和 代码文件 放在同一个文件夹中):
import gmpy2
from Crypto.Util.number import *
date = open("rsa_16m",'r').read().split('\n')
# e = 65537
m = gmpy2.iroot(int(date[1][4:],16),65537)[0]
print(long_to_bytes(m))
  • 得到flag{(I)NSA_W0uld_bE_pr0uD}

收获与体会:

  • (在此我只想说神人才找得到 C 的位置) 这位置是真的难找啊,找不到也许就放弃了
  • 若 n ,c 特别特别大,考虑以上方法(又了解了一种rsa题型)

你可能感兴趣的:(python,buuctf,密码RSA,python,安全,密码学)