当前位置:首页 >资讯 >玩转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()。
1.3同余运。
两个整数a、b,它们除以整数m得到的余数相等:a蔽b(modm),如5除3的余数为2,11除3的余数为2,所以可以写成11遮5(mod3)。
二.RSA加密算法。
2.1加法解密算法。
正如前面提到的,RSA是一种非对称加密算法。该算法的特点是明确使用公共钥匙加密以获得密文,而密文解密使用私钥进行解决。
需要的密钥对n,d,e。密钥对是怎么产生的?
2.2生成密钥对。
生成密钥的步骤如下:n?L?e?d(生成过程中的中间数)