RSA算法

RSA算法涉及三个参数n,e,d。私钥为n,d,公钥为n,e。(其中n为两个大素数p,q的乘积)

d是模$ varphi(n) $的逆元, $ varphi(n) $是n的欧拉函数。

假设c是密文,m是明文,则加密过程如下:    $ cequiv m^e mod n $

解密过程: $ mequiv c^d$ $mod$ $n$

n,e是公开的情况下,如果想要知道d的值,必须要将n分解计算出n的欧拉函数值,而n是两个大素数p,q的乘积,将其分解可以通过在线网站http://factordb.com

ctf的Crypto题型中难免会出现RSA加密,在做题之前,要将数据处理成可以做题的模式。一般题目不会直接给出具体参数的值,而是通过别的方式给出,则我们要做的就是将这些参数提取出来

1、pem文件:针对这类文件,我们可以直接使用Linux下的openssl提取。

2、pcap文件:针对这类文件,我们可以使用wireshark追踪一下。

下面以2017届广东省强网杯的这道crypto为例讲解一下RSA解法

首先根据下载下来的文件给出的参数n,可以知道第一步应该是到在线网站http://factordb.com去对n进行因数分解得到p,q的值

然后上代码,求明文信息

运行后再进行hex转string,然后flag即出~

posted @ 2018-07-11 15:56  盛晓玫蓝  阅读(338)  评论(0编辑  收藏  举报