RSA原理
现在我们知道了m^e % n = c是加密,c^d % n = m是解密,m就是原始数据,c是密文,公钥是n和e,私钥是n和d,所以只有n和e是公开的。加密时我们也要知道φ(n)的值,最简单的方式是用两个质数之积得到,别人想破解RSA也要知道φ(n)的值,只能对n进行因数分解,那么我们不想m被破解,n的值就要非常大,就是我们之前说的,长度一般为1024个二进制位,这样就很安全了。但是据说量子计算机(用于科研,尚未普及)可以破解,理论上量子计算机的运行速度无穷快,大家可以了解一下。
以上就是RSA的数学原理
检验RSA加密算法我们用终端命令演示下这个加密、解密过程。
假设m = 12(随便取值,只要比n小就OK),n = 15(还是随机取一个值),φ(n) = 8,e = 3(只要和φ(n)互质就可以),d = 19(3d - 1 = 8,d也可以为3,11等等,也就是d = (8k 1)/3 )
终端分别以m=12,7输入结果
终端演示
OpenSSL进行RSA的命令运行
Mac可以直接使用OpenSSL,首先进入相应文件夹
- 生成公私钥
// 生成RSA私钥,文件名为private.pem,长度为1024bit openssl genrsa -out private.pem 1024 // 从私钥中提取公钥 openssl rsa -in private.pem -pubout -out publick.pem
生成私钥
// 查看刚刚生成好的私钥 cat private.pem // 查看刚刚生成好的公钥 cat publick.pem
查看公私钥
我们可以看到base64编码,明显私钥二进制很大,公钥就小了很多。
这时候我们的文件夹内已经多了刚刚生成好的公私钥文件了