RSA的数学运算步骤

原创文章,绝非抄袭

叙述一下我学了很久的一个RSA公钥加密(很多地方在用的一种安全的加密方法),以前只知道那种老式电报的加密,两边各拿一个对照表,什么数字对什么字,倒是很好理解,算是对称加密;在学校的时候就讨论过很长时间的公钥加密,一直理解不了,都在想,如果密钥是私有的,另一边不知道,那如何加密,很矛盾的问题……

先知道一下这样一种运算方法:指数取模,指数就是方次,取模就是求除几的余数。RSA加密和解密都是指数取模的方法。暂举一个例子,暂定加密指数为3,除数为33(先注意一下33=11x3,这样做是有RSA自身规定的,除数必须是两个素数的积,素数就是只能被1和他本身整除的数),比如要加密8,8的3次方是512,512除以33商15余17,所以8的密文就是17;现在看解密,前面说过解密也是指数取模,解密的除数是一样的,也就是加密的除数33,但是解密的方次不一样,一样就算不出来了,前面说过33=3x11,然后做一步运算:(3-1)x(11-1)=20,就是那两个数各自减1再相乘得到一个数,还有一步才能算出解密指数;现在要求一个数,那个数乘3(加密的方次)除20的余数为1,很简单是7,所以解密的指数就是7。不信就验证一下,17的7次方是410338673,410338673除以33商12434505余8,8就是明文,不信的人去拿计算器验证一下。

加密:8^3/33=15余17 ^为乘方标记
求解密指数:33=11x3 11,3一定要是两个素数
(11-1)x(3-1)=20
?*3/20=1余1
?=7
解密:17^7/33=12434505余8
3,33,17都是明文传送的,破解方如果不知道33是哪2个素数的积,就算不出解密指数,然而找素数就只能一个一个去试除试除,再没有其他方法。

33在实际应用中有400位以上,就是2个200位素数的积,这个是保密的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值