RSA 算法基础之-案例篇
Posted 小伍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA 算法基础之-案例篇相关的知识,希望对你有一定的参考价值。
计算秘钥
1、随机选择两个不相等的质数p和q(例如选择3和11)
2、计算p和q的乘积 n=p×q=3×11=33
3、根据“欧拉函数”介绍过的公式代入计算n的欧拉函数值
φ(n)=(p-1)(q-1)
φ(33)=(3-1)×(11-1)=2×10=20
4、随机选择一个整数e,条件是1<e<φ(n),且e与φ(n)互质。在1到20之间,随机选择7,即e=7
5、因为e与φ(n)互质,根据求模反元素的公式模反元素d为:
ed≡1(mod φ(n))
7d≡1(mod 20)
7d≡21
d=3
6、将n和e封装成公钥,n和d封装成私钥
n=33,e=7,d=3
所以公钥就是(33,7),私钥就是(33,3)
其中,n的长度就是密钥长度,33写成二进制是100001
一共有6位,所以这个密钥就是6位。
加密过程
假设甲要发送一串秘密数字m=5给乙,乙发送了一个公钥(n,e)=(33,7)给甲。甲根据以下公式及公钥对密文m加密成c :
me ≡ c(mod n)
代入相关的值后为:
c = me mod n = 57 mod 33 = 78125 mod 33 = 14
甲将使用公钥加密的密文c=14发送给乙。
解密过程
乙收到密文后,使用私钥(n,d)=(33,3)根据以下公式进行解密:
cd = m(mod n)
代入相关的值后为:
m = cd mod n = 143 mod 33 = 78125 mod 33 = 5
乙使用私钥成功计算出密文m。
安全性
从始至终,用来解密的私钥(n,d)=(33,3)一直都在乙处,从未泄露。乙给甲的仅仅是用来加密的公钥(33,7),这个公钥并不能用来解密,即使被他人截获,也没有任何泄密的风险。
密钥组成与加解密公式
数值项 | 说明 |
---|---|
n | p*q,p、q均为质数且需保密 |
n的欧拉函数值 | φ(n) = (p-1)(q-1) |
e | 条件是1<e<φ(n),且e与φ(n)互质 |
d | d = e-1 (mod φ(n)) |
公钥 | (n,e) |
私钥 | (n,d) |
加密公式 | c = me mod n |
解密公式 | m = cd mod n |
以上是关于RSA 算法基础之-案例篇的主要内容,如果未能解决你的问题,请参考以下文章
机器学习实战应用案例100篇-粒子群优化算法(PSO)从原理到实战应用案例(附代码)