RSA算法原理及应用示例
来源:互联网 发布:mac显示桌面的快捷键 编辑:程序博客网 时间:2024/05/22 07:43
RSA算法是一种基于公钥和私钥的加密算法, 是由Ronald Rivest, Adi Shamir和Len Adleman三人在Diffie-Helman指数密钥交换算法的
基础上于1977年设计出来的,Rivest设计的加密系统利用了数学领域的一个事实,那就是虽然把两个大素数相乘生成一个合数是件很容易
的事, 但要把一个合数分解为两个素数却十分困难。
RSA的安全性依赖于大数分解,公钥和密钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度
等同于分解两个大素数之积。
密钥对的产生,选对两个大素数p和q,计算
n=p*q
然后随机选择加密密钥e, 要求e和(p-1)*(q-1)互质,最后,利用Euclid算法计算解密密钥d,满足
(e*d) mod ((p-1)*(q-1))=1
其中n和d也要互质, 数e和n是公钥,d是私钥.现在两个素数p和q可以丢弃不再需要,不要让任何人知道.
加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2....mi,块长s,其中2^s<=n, s尽可能地大.对应的密文是:
ci=mi^e (mod n) (a)
解密时作如下计算:
mi=ci^d (mod n) (b)
RSA可用于数字签名,方案是用(a)式签名,(b)式验证.具体操作时考虑到安全性和m信息量较大等因素,一般先作hash运算.
RSA算法示例:
(1) 选择两个素数:p=7, q=17
(2) 计算n=p*q=7*17=119
(3) 计算φ(n)=(p-1)*(q-1)=96
(4) 选择e,e为φ(n)=96的相对素数,要比φ(n)小,本例中e=5
(5) 决定d,使(d*e) mod 96=1,且d<96,正确值为d=77,因为77*5=385=4*96+1.
结果密钥为公钥KU={5, 119}和私钥KR={77, 119}
如输入明文M=19,使用以上密钥加密:
ci=M^e (mod n)
=19^5 mod 119
=2476099 mod 119
=66
解密由66^77 mod 119=19决定.
《黑客防线---口令破解与加密技术》笔记
- RSA算法原理及应用示例
- RSA 应用及原理
- RSA算法及数学原理
- RSA算法应用及证明
- RSA算法应用及证明
- VFP算法示例RSA
- RSA算法原理及其在HTTPS中的应用
- RSA算法原理
- RSA算法原理
- RSA 算法原理
- RSA算法原理
- RSA算法原理
- RSA算法原理
- RSA算法原理
- RSA算法原理
- RSA算法原理
- RSA算法原理(二
- 阮一峰:RSA算法原理
- Datalist利用PageDataSource实现分页功能
- 对access图书图书管理系统的理解
- JDK1.5中的线程池
- sql server获取系统时间
- 关于写代码和调试
- RSA算法原理及应用示例
- 快乐再认识
- 忆龙2009:介绍两种获取网页内容的方法
- 状态与信息
- 数据集市
- ADS1.2 集成开发环境使用手记
- 不难过的微笑
- Linux/Unix下的vi文本编辑器命令
- 基础驱动和设备对象关系