前言:
随着我们的学习的不断深入,信息的安全也愈加重要,我们发布的代码中可能含有我们的私密信息,比如对接支付宝沙箱api,下载一些专业软件时就需要我们输入公钥和私钥以此来验证我们的身份信息,就相当于用钥匙去开锁一样,公钥代表着锁,私钥代表着开锁的钥匙,而公钥与私钥也是可以互换的,理解完这点,下面就详细说一下他们的原理。
RSA密钥的分发:
首先取俩个质数(p,q),N=pq
然后求他们的欧拉函数 T = (p-1)(q-1)
取出公钥E 它的规则是1.是一个质数。
2.1<公钥<T ;
3.不是T的因子
选出完公钥E后计算出私钥D (D*E)%T=1
这样关于公钥和私钥的分发就完成了
例如p=3,q=11 N=pq=33
T=(3-1)(11-1)=20
随机选出一个公钥E=3那么密钥可取D=7
公钥E(3,33)私钥D(7,33)
根据下边的加密公式对对1 2 3加密成
1,29,9
根据下边的解密公式可以解出原来的数字为
1,2,3
密钥加密:(明文^E)%N=密文
密钥解密:(密文^E)%N=明文
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥
结果: