最简单的RSA及其几个网站和工具

本文详细介绍了使用RSA加密算法进行公钥加密和私钥解密的过程。从公钥和密文入手,通过分解模数获取私钥,最终实现对密文的解密,揭示隐藏的flag信息。

最简单的形式

给你公钥和一个密文。
BBDyQz5.png

flag.enc就是密文,我们用记事本是看不出什么的,其实也不用看,因为后边的解密是直接用脚本读取文件的,只需要知道这是密文。

pub.pem就是公钥,用记事本打开是加密后的内容好像是,实际要看的话用openssl。kali下已经给安装了。

openssl rsa -pubin -in pub.pem -text -modulus

这条指令用来查看公钥。
sVWOnEt.png

255 bit是指模数255位,RSA的模数太短了就很容易被分解。
Exponent就是e
moudulus就是模数,等于p*q

我们要先分解n,求出私钥d,然后生成pri.pem(这里和pub.pem对应),然后对密文解密。

http://www.factordb.com/index.php

这里注意一下,必须是输入十进制,所有得把n转化为十进制。

python:print ((int)(0x439AEAB34EAEE973E968EBDD11D6D3EF7302072C4BFD4F7FE2B0CF9889277F6D))

30578675145816634962204467309994126955968568987449100734690153203822106214253

分解成功:kipQWEk.png

现在知道了p,q应该求d了。这里用个工具rsatool 2

uRYPgfB.png

因为我们分解后是十进制,我们直接选好number base 为10,p,q输入网站分解后的p,q。然后点击Cal.D就可以求出d来了。

下一步就是制作pri.pem了。我们要安装个工具:

1XtMght.png
3IZsJIf.png

要在linux下安装。

生成私钥:python rsatool.py -f PEM -o pri.pem -p 3487583947589437589237958723892346254777 -q 8767867843568934765983476584376578389 -e 65537

这里也是十进制啊。

Tg4OnCG.png

这里把pri.pem和flag.enc放到一起,进行解密。

openssl rsautl -decrypt -in flag.enc -inkey pri.pem -out flag.dec

jTdYwMd.png

转载于:https://www.cnblogs.com/zaqzzz/p/9655325.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值