由浅及深了解区块链之:(4)RSA公钥私钥加密数学原理的探究

前面向大家介绍了关于RSA算法的数学原理,但是笔者在介绍这些原理的过程中对RSA算法产生了一些笔者自己的看法。
1:一把公钥只能够对应一把私钥吗,可不可以一把公钥对应多把私钥呢?

笔者这样问是有我的道理的,在上文中我们知道了
s=15,
p=3,
q=5,
s1=8.
e=3.
然后根据公式e*d%s1=1  即:3*d%8=1
可以解的满足条件的d有无数个,这里我取d1=3,d2=11.
然后顺着上一节我们用公钥(15,3)对数字4加密得到加密后的数字4
接着用公钥(15,3)对密文4进行加密,
4^3%15=4, 所以数字4加密后密文为4.
用私钥(15,3)对密文解密,解密过程如下:
4^3%15=64%15=4  所以文件能被正确解密。
然后用私钥(15,11)对密文4进行解密
4^11%15=4194304%15=4,所以该文件能被正确解密

最后得出结论1:一把公钥加密过的文件理论上能被多把密钥解密

2:s可以分解成多对的p,q质数对,然后p,q质数对又可以接着产生相应的密钥对,那么这些密钥对之间一定不能相互加密解密吗? 举个如下的例子进行试验一下:

s=30  相应的p,q对有两队(p1,q1)=(2,15);(p2,q2)=(3,10).
接着针对(p1,q1)来计算他们的密钥对:
s1=1*14=14
取e1=3 
所以 e*d1%s1=1  -->3*d%14=1 -->d1=5
所以公钥(s,e1)=(30,3);私钥(s,d1)=(30,5)

接着针对(p2,q2)来计算他们的密钥对
s2=2*9=18
取e2=5
所以 e2*d2%s2=1 -->5*d2%18=1 -->d2=11
所以公钥(s,e2)=(30,5),私钥(s,d2)=(30,11)

现在的方案是对一个密文用(p1,q1)组的公钥进行加密,然后用(p2,q2)组的私钥进行解密,看是否可以解出来
首先取加密数字4,公钥(30,3)对数字4加密后
4^3%30=4   得到密文4
接着我们用私钥(30,11)对密文数字4进行解密
4^11%30=4194304%30=4 得到密文4,
所以(p1,p2)的公钥加密后的信息也能够被(p2,q2)的私钥解密·

接下来的方案是对一个密文用(p1,q1)组的私钥进行加密,然后用(p1,p2)组的公钥进行解密 (数字签名过程)
首先取加密数字4,用(p1,p2)组的私钥(30,5)进行加密。
4^5%30=1024%30=4     得到加密后的密文4
接着对密文数字4用(p2,q2)组的公钥(30,5)进行解密
4^5%30=1024%30=4, 得到解密后的密文为4,与原数字吻合,故解密成功。

得出结论2:s可以分解成多对的p,q质数对,然后p,q质数对又可以接着产生相应的密钥对,这些密钥对之间不能相互解密,这个命题是错误的
3:总结,其实对于第二个证明的结论我是有点惊讶的,我原先以为公钥密钥对应该是唯一的互解对,但顺着上面的证明我知道了一个公钥可以被多个私钥解密,并且一对密钥对不能与另一对密钥对相互解密的这个命题是不成立的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值