RSA加密算法

在讲解RSA加密算法之前先了解一下对称加密。


对称加密:
假设a要传递信息“m”给b。

首先a对“m”进行加密:m+e=c,这里的“m”指“明文”、“e”指“密钥”、“c”指“密文”。

然后b得到密文“c”就需要进行解密:c-e=m。这样b就可以得到a传递过来的信息。

可是密钥“e”的传输就成了问题,窃听者完全可以窃听到密钥使用同样的算法进行解密。于是就诞生了非对称加密。



非对称加密:

假设a要传递信息“m”给b。

首先b找出公钥“e”和私钥“d”,然后将公钥“e”传输给a。

之后a使用公钥“e”对信息“m”进行加密:e+m=c。

b得到密文“c”就需要进行解密,但这里的解密密钥是私钥“d”。简单来说就是密文“c”只有通过私钥“d”才能得到原来的信息“m”。那么解密就是:c-d=m。

了解非对称加密之后我们就可以去探讨如何寻求一个公钥与私钥。就是说如何去找到一把锁和一把钥匙,并且它们之间需要有关联。下面就开始讲解这次的主角RSA加密算法。


RSA加密算法:

假设a要传递信息“m”给b。那么b就需要找到公钥和私钥。

第一步:找出两个质数(只有1和本身两个公约数的数):p、q
第二步:把p*q得到n:n=p*q
第三步:x=(p-1)*(q-1) 这一步的作用在下面说讲到
第四步:找出公钥“e”,“e”必须是大于1且小于x的整数,同时“e”与“x”需要互质(两个数除1之外没有共同的公约数)
第五步:找出私钥“d”,“d”可以通过下面的公式求出:(e*d)/x余数为1


加密:m的e次幂除以n求余c
解密:c的d次幂除以n的余数必然是m
通过上述方法就可以完成一次信息的传输,那么再看看它的安全性:
已知公开的信息为:n、e、c
而解密需要:n、d、c


如果窃听者解密就必然要知道私钥“d”,想要知道私钥“d”需要通过“(e*d)/x余数为1”这段公式求得。而x为不公开的,那么想要知道x又必须又必须通过“x=(p-1)*(q-1)”求得。再往后,想要知道p、q又必须通过“n=p*q”公式求得。最关键的一步来了,对这种大数字的质数分解目前人类还没有办法办到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值