1.RSA
    
   
    
     
      题目:
     
    
   
    
     在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
    
   
    
     求解出d作为flga提交
    
   
    
     
      首先:
     
    
   
    
     学习RSAtool2的使用:
    
   
    
     1.
    
    
     Number Base 设置为十进制
    
   
    
     2.注意:Public Exponent这里要使用16进制的数,如果公钥e=17的话,就应该填入十六进制的11
    
   
    
     3.给出p,q,e的话直接填入,再点击Calc.D,获得d
    
   
    
     4.给出的是n和e的话,输入n和e,点击Factor N(分解),得到p,q,再重复第3步就能得到d了
    
   
    
     
      解答:
     
    
   
    
     注意e填进去是16进制,需要将17转hex得到11再填进去
    
   
     
   
    
     2.rsarsa
    
   
    
     题目:
    
   
| 
          
          
          
          
          
          
          
          
          | 
    
     解答:
    
   
    
     类型:n+e+c+p+q= m
    
   
    
     工具中的e65537要转成十六进制10001
    
   
     
   
    
     然后再用python函数pow()即可求出flag
    
   
    
     M = pow(C,d,n)    #快速求幂取模运算
    
   
    
     print(M)
    
   
    
     直接脚本跑:使用n+e+c+p+q= m脚本
    
   
     
   
    
     3.RSA1
    
   
    
     题目:
    
   
| 
          
          
          
          
          | 
    
     解答:
    
   
    
     https://blog.csdn.net/MikeCoke/article/details/105959599
    
   
    
     类型:dp+dq+p+q+c = m  已知dp dq泄露
    
   
    
     使用脚本dp+dq+p+q+c = m
    
   
     
   
    
     hex to text转文本
    
   
    
     noxCTF{W31c0m3_70_Ch1n470wn}
    
   
    
     flag{W31c0m3_70_Ch1n470wn}
    
   
    
     4.RSA3
    
   
    
     题目:
    
   
| 
          
          
          
          
          | 
    
     解答:
    
   
    
     类型:共模n攻击
    
   
    
     使用脚本gongmo.py
    
   
     
   
    
     5.RSA2
    
   
    
     题目:
    
   
| 
          
          
          
          | 
    
     解答:
    
   
    
     类型:dp+n+e+c = m  dp泄露
    
   
    
     RSA各题型脚本\dp+n+e+c = m
    
   
     
   
    
     6.RSA
    
   
    
     题目:
    
   
    
     解答:
    
   
RSA
    
     类型:n+e+c+p+q= m + 公钥提取
    
   
    
     在线从rsa公钥中提取N和E
    
    
     :
    
    
     https://blog.csdn.net/weixin42135087/article/details/10544686
    
   
    
     离线脚本:
    
   
     
   
    
     7.RSAROLL
    
   
    
     题目:
    
   
| 
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          | 
| 
          
          
          
          | 
    
     解答:
    
   
RSAROLL
    
     类型:n+e+c+p+q= m +  n分解
    
   
    
     8.Dangerous RSA
    
   
    
     题目:
    
   
| 
          
          
          
          | 
    
     解答:
    
   
    
     类型:低加密指数攻击 e很小  n很大又不好分解
    
   
    
     脚本:RSA各题型脚本\e=2-低加密指数攻击\低加密指数攻击.py
    
   
    
     b’flag{25df8caf006ee5db94d48144c33b2c3b}’
    
   
    
    
   
    
     9.[HDCTF2019]basic rsa
    
   
    
     题目:
    
   
| 
          
          
          
          
          
          
          
          
          
          
          | 
    
     解答:
    
   
    
     类型:n+e+c+p+q= m
    
   
    
     注释中就是该脚本生成的c
    
   
    
     使用脚本RSA各题型脚本\n+e+c+p+q= m
    
   
     
   
    
     10.Rsa2
    
   
    
     题目:
    
   
| 
          
          
          
          | 
    
     解答:
    
   
rsa2
    
     类型:低解密指数攻击 e过大 n分解不出来 n+e=d.py
    
   
    
    
   
    
     11.[BJDCTF 2nd]rsa0
    
   
    
     题目:
    
   
    
     解答:
    
   
rsa0
    
     类型:根据等式  p、q\p+q p-q.py
    
   
    
    
   
    
     12.RSA5
    
   
    
     题目:
    
   
    
     解答:
    
   
RSA5
    
     类型:低加密指数广播攻击
    
   
    
     加密指数e非常小
    
   
    
     一份明文使用不同的模数n,相同的加密指数e进行多次加密
    
   
    
     可以拿到每一份加密后的密文和对应的模数n、加密指数e
    
   
    
    
   
    
    
   
    
    
   
    
     13.BabyRSA
    
   
    
     题目:
    
   
    
     解答:
    
   
BabyRSA
    
     类型:根据等式  p+q (p+1)(q+1) d c.py
    
   
    
    
   
    
     下面是查看这位博主的:
    
   
    
     https://blog.csdn.net/MikeCoke/article/details/107206707
    
   
    
    
   
    
     14.[NCTF2019]childRSA
    
   
    
     题目:
    
   
| 
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          | 
    
     类型:n+e+c+p+q= m + yafu-1.34_大数分解
    
   
    
     解答:
    
   
    
     解题思路:
    
   
    
     1.py文件给了,n , c , e。为了求m 由算法pow(c,d,n),可知要先求出d来
    
   
    
     由算法
    
   
    
     gmpy2.invert(e,N) # N = (q-1)*(p-1)
    
   
    
     可知我们要先求出p,q来,即分解n
    
   
    
     用yafu进行素数分解,先把模n新建一个txt文件,文件末尾要进行换行
    
   
    
     进入cmd,命令 cd Desktop 进入桌面
    
   
    
     命令
    
   
    
     yafu-x64 “factor(@)” -batchfile 1.txt 进行10进制大整数分解
    
   
    
     当数比较小时 用命令 yafu-x64 factor(n)
    
   
     
   
    
     15.[BJDCTF 2nd]rsa1
    
   
    
     题目:
    
   
| 
          
          
          
          
          
          
          
          
          
          | 
    
     类型:根据等式  p+q (p+1)(q+1) d c.py
    
   
    
     解答:
    
   
    
    
   
    
     16.[HDCTF2019]bbbbbbrsa
    
   
    
     题目:
    
   
| 
          
          
          | 
| 
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          | 
    
     类型:代码分析 + 已知pqnc 遍历e求明文 flag
    
   
    
     解答:
    
   
    
     1.第一张图给了 p,n,c,所以我们能够求出q
    
   
    
    
   
    
     2.为了求出明文m ,我们先要求出d来
    
   
    
    
   
    
     3.第二种图告诉我们 e 的范围在(50000,70000),我们可以对e进行遍历,爆破求出d
    
   
    
     4. 对于每个符合条件的 e,都会得到一个与之对应的 m,我们知道 一般的 m中都会含有flag字符,所以用search()进行查找
    
   
| 
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          | 
    
     flag{rs4_1s_s1mpl3!#}
    
   
    
    
   
 
