简单的RSA题目

Posted threesoil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的RSA题目相关的知识,希望对你有一定的参考价值。

今天做了一道简单的RSA可惜不会写脚本,脚本还是看的WP大佬的~~~

  • 看到公钥直接丢到openssl里 openssl>>   然后输入如下命  rsa -pubin -text -modulus -in warmup -in 公钥文件名.key 

然后结果应该如下图

技术分享图片

这样就把 e 和 n 解出来了 (不过n解出来的是十六进制,需要先换算为十进制)

用python

技术分享图片

n=98432079271513130981267919056149161631892822707167177858831841699521774310891           (记得把后面的L去掉)

在使用大质数分解网站分解n         网站地址:http://factordb.com/index.php

技术分享图片

  • 到这里RSA的参数已经齐全了 

    p = 302825536744096741518546212761194311477

    q = 325045504186436346209877301320131277983

    n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
    e = 65537

  • 使用python脚本得到flag   (附py脚本)
import gmpy2
import rsa
p = 302825536744096741518546212761194311477
q = 325045504186436346209877301320131277983
n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
e = 65537
d = int(gmpy2.invert(e , (p-1) * (q-1)))
privatekey = rsa.PrivateKey(n , e , d , p , q)              #根据已知参数,计算私钥
with open("encrypted.message1" , "rb") as f:
    print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印
with open("encrypted.message2" , "rb") as f:
    print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印
with open("encrypted.message3" , "rb") as f:
    print(rsa.decrypt(f.read(), privatekey).decode())       #使用私钥对密文进行解密,并打印

                                                                                                                                                                                                 脚本来源:https://www.ichunqiu.com/writeup/detail/693

  

 

以上是关于简单的RSA题目的主要内容,如果未能解决你的问题,请参考以下文章

RSA 加密算法主要公式

adworld easy_RSA | RSA算法

为啥这段代码会泄露? (简单的代码片段)

综合型RSA题目

rsa题目

java生成RSA公私钥字符串,简单易懂