当前位置:首页 >资讯 >玩转RSA加密算法


RSA加密算法带你玩。

RSA是一种非对称加密算法,由公钥(n/e)、私钥(n/d)、明文M和秘密文本C组成。当我们做CTF主题时,我们会在一般主题中给出公钥和秘密文本,以便我们可以推出相应的私钥或明文。上面的脑图上写着RSA的相关公式。在正式解释RSA加密算法之前,让我们先普及一下数学的基础知识浪潮。

一.数学基础相关

1.1素数和互质数

素数也称为质数。它被定义为除了自身的积和1之外,它不能表示其他数字的积。例如,2,3,5,7,11,13,17...等等都是素数。

互素数又称互素数,定义为公约数只有1的两个自然数,如:

1和任意自然数1&2。

质数2&3任意2。

自然数4&5相邻2个。

&10.7&10.5&26等等。

1.2模指数运算

模型运算是取剩余数,例如5mod3=2。而模型指数则是,先做指数运算是在做mod运算。

例如:53mod7=125mod7=6。

为了求解模指数运算,我们可以使用python的pow()。

RSA加密算法带你玩。

1.3同余运

两个整数a、b,它们除以整数m得到的余数相等:a蔽b(modm),如5除3的余数为2,11除3的余数为2,所以可以写成11遮5(mod3)。

二.RSA加密算法

2.1加法解密算法

正如前面提到的,RSA是一种非对称加密算法。该算法的特点是明确使用公共钥匙加密以获得密文,而密文解密使用私钥进行解决。

RSA加密算法带你玩。

需要的密钥对n,d,e。密钥对是怎么产生的?

2.2生成密钥对

生成密钥的步骤如下:n?L?e?d(生成过程中的中间数)

RSA加密算法带你玩。