入门向的RSA算法研究

RSA可以说是很出名的算法了,这一套非对称加密的算法在网络上的应用非常多,多到你可能每分钟都用到了它.

上次看到一个使用RSA简易算法在范围内随机的文章,所以就仔细研究了一下RSA的基础知识.

发明这算法的大神们,显然都是数学上的行家,所以,我们先得补补数学知识.

第一个,就是欧拉函数,FML!我表示很难看懂,所以我只能告诉你一个结论.

我们用φ(N)表示在小于或等于N的正整数中,与N互质的数的个数.

同时,还有特殊情况,如果P和Q是不相同的两个质数,N=P*Q,那么φ(N)=(P-1)(Q-1).

另外,如果N是质数,那么φ(N)=N-1.

第二个,就是欧拉定理:如果两个正整数a与N互质,那么a的φ(N)次方除以N的余数为1.

第三个,模反元素.如果两个正整数a与N互质,那么一定有一个整数b,使得(a*b-1)%N=0,b就是a的模反元素.模反元素显然可能不止一个.

根据欧拉定理,a的φ(N)-1次方,必然就是a的模反元素.


介绍完以上知识,就可以先做一个简单的RSA算法示例.

对于P,Q两个质数,我假设P=5,Q=11.

那么N=P*Q=55,φ(N)=(P-1)(Q-1)=40.

接下来,在[1,φ(N)]的闭区间上,选一个与φ(N)互质的数e.

我假设e为7,假设e的模反元素为d,根据上面讲的定理,必然有e*d%φ(N)=1   ==>   7*d%40=1

因为是mod的关系,所以可以看做7d+40k=1.

这里根据,碾转相除法,我算出了第一个匹配的值,(d, k) = (-17, 3),为了方便计算,d最好是个正数,所以选择另一组数(23, -4).

到此为止,所有需要的数据都已经计算完毕:

N = 55 P = 5 Q = 11 e = 7 d = 23, 公钥 (N, e) = (55, 7) ,密钥 (N, d) = (55, 23).

注意,RSA加密的数据需要小于N,当数据过大的时候,一般采用分段加密的办法.

现在来使用刚才算出的公钥加密数字8.  8的7次方对55模运算为2. 2就是8加密后的数据.

当2传递给解密者之后.  解密过程 2的23次方对55模运算为8.就是发送前未加密的数据.


这里只是一个简单的模拟,所选用的N值55,二进制110111,才6位,现今对于安全度要求比较高的环境,都是1024位或者2048位的加密.

从理论上来说,要破解RSA,就是将N值因数分解,所以RSA的安全性是建立在现阶段对超大数的因数分解的困难上.

 


### 回答1: 了解RSA算法的书籍有很多,以下推荐几本: 1. 《RSA公开密钥加密算法及其应用》(作者:区块链研究团队):这本书详细介绍了RSA算法的原理和应用,包括密钥生成、加密、解密以及数字签名等方面的内容,适合初学者入门。 2. 《Applied Cryptography》(作者:Bruce Schneier):这是一本经典的密码学书籍,其中包含了RSA算法的详细介绍和实现细节,以及其他常见加密算法的讲解,书中还涉及到密码学的应用和实际应用案例。 3. 《Cryptography: Theory and Practice》(作者:Douglas R. Stinson):这本书是密码学领域的著名教材之一,其中包含了RSA算法的详细介绍和数学原理,适合对密码学有一定了解的读者。 4. 《Introduction to Cryptography with Coding Theory》(作者:Wade Trappe, Lawrence C. Washington):这是一本系统介绍密码学和编码理论的教材,其中包含了RSA算法的原理和应用案例,适合大学密码学课程的学习。 以上是一些推荐的书籍,选择适合自己水平和需求的书籍,结合学习中的实践,可以更好地理解和掌握RSA算法。 ### 回答2: 了解RSA算法的书籍有很多。以下是几本值得推荐的书籍: 1.《密码学与网络安全》:作者是William Stallings(威廉·斯泰林斯),这本书是经典的密码学教材,其中对RSA算法进行了详细讲解。 2.《Applied Cryptography》:作者是Bruce Schneier(布鲁斯·施奈尔),这本书是非常著名的密码学指南,其中也详细介绍了RSA算法的原理和应用。 3.《RSA and Public-Key Cryptography》:作者是Richard A. Mollin(理查德·A·莫林),这本书专门讲解了RSA算法及其公钥密码学的相关理论和实践。 4.《Introduction to Mathematical Cryptography》:作者是Jeffrey Hoffstein, Jill Pipher和Joseph H. Silverman(杰弗里·霍夫斯坦、吉尔·派弗和约瑟夫·H·西尔弗曼),这本书是密集数学密码学的入门指南,其中包括对RSA算法的介绍和分析。 无论选择哪本书,建议先掌握基本的密码学概念和数学知识,以便更好地理解和应用RSA算法。此外,亦可参考网络上的教程和公开的学术论文来加深了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值