浅谈RSA算法原理

浅谈RSA算法原理

一、原理步骤

1.找两个很大的素数(质数)P和Q,比如100位长。

N = P \times Q        N(公开)

M = (P -1) \times (Q -1)

2.找一个和M互素的整数E(私钥),也就是说M和E除了1以外没有公约数。

3.找一个整数D(公钥),使得E×D除以M余1

E × D mod M = 1

二、加密解密

加密方式

对信息X加密,得到密文Y

X^{E} mod N = Y

解密Y得到明文X(费尔马小定理)

Y^{D} mod N = X

三、原理图示

四、破解方式

有上述图示可知,D是由E和M得来,所以当M泄露,则秘钥会被破解。

M是由随机数P和Q得来,当计算出公钥和私钥后,P,Q,M就不再需要,也不会在任何地方保存。M仅在计算公钥私钥的那个瞬间存在于内存中。

所以如果要得到M,需要首先推导出P和Q,而N是公开的,所以可以对N进行因式分解得到P和Q。

目前找到P和Q只有一个笨办法,就是用计算机把所有可能的数字试一遍。这实际上在拼计算机的速度,这也就是为什么P和Q都需要非常大。

一种加密方法只要保证50年内计算机破解不了,也就算是满意的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值