[KANMARS原创] - RSA算法示例
RSA加密的原理是欧拉定理与费马小定理
其计算过程如下:
取两个质数:
p=3
q=5
计算
n=pq=15
t=(p-1)(q-1)=8
取一个e
e=3
计算满足e*d % t = 1的数
计算结果如下:
d=3,11,19,27,35……
由此可得
n=15
d=3,11,19,27,35……
e=3
可得到公钥(d,n)
(3,15),(11,15),(19,15),(27,15),(35,15)……
私钥(e,n)
(3,15)
——————————————————————————
示例:
消息m为7,使用公钥(11,15),私钥(3,15)
加密过程
c_en = m^d %15 = 7^11 %15 = 13
解密过程
c_de = c_en ^e % 15 = 13^3 %15 = 7
即可计算出原始消息m=7
——————————————————————————
需要注意的是,被加密的消息m必须满足0<=m
在现代加密系统中,都使用字节数组加密,m小于256,因此,必须选择n>256
(鉴于现代RSA算法要求密钥长度都要大于96bit,因此,该条件是一定满足的)
——————————————————————————
从上述结果看,一个私钥,可以生成多个公钥
——————————————————————————