RSA加密解密原理
来源:互联网 发布:淘宝网店价值评估 编辑:程序博客网 时间:2024/05/22 12:54
加密过程
加密过程可以通过如下公式表示
解密过程
解密过程可以通过如下公式表示
其中
它是如何工作的?
举一个简单的例子
- 首先选择两个素数,比如我们选11和23
- 计算他们的乘机,得到
n 。即n=11∗23=253 . - 现在计算私钥
d ,d 要与(p−1)(q−1) 互质。这样的数有很多个,这里我们选19,即d=19 - 公钥
e 可由公式19e(mod220)=1 计算出。计算得到e=139 - 这样,我们得到了公钥
(e,n)=(139,253) 和私钥d=19
现在尝试加密数据“Hi”
- 查“Hi”的ASCII值,得到明文
(72,105) - 用公钥对明文进行加密
得到密文
3. 使用私钥
4. 将明文转换为对应的ASCII字符,得到“Hi”
工作原理
欧拉函数
欧拉函数定义
欧拉函数
如小于
欧拉函数的值
φ(1)=1 - 若
n 是质数p 的k 次幂,则φ(n)=pk−pk−1=(p−1)pk−1 。
如φ(25)=φ(52)=52−51=20 - 若
m,n 互质,则φ(mn)=φ(m)∗φ(n) 。
如φ(72)=φ(8∗9)=φ(23∗32)=φ(23)∗φ(32)=(8−4)∗(9−3)=24
欧拉定理
若
其中
比如
而
欧拉定理可以用来简化幂运算,如计算
RSA模型
- 首先要选两个很大的素数
p,q ,并计算n=p∗q 作为公钥的一部分,但选择的p,q 需要保密。 - 此时欧拉函数
φ(n)=φ(pq)=(p−1)(q−1) - 像上面的例子一样,选择一个
d ,保证min(p,q)≤d≤φ(n) ,且d 与φ(n) 互质。 - 通过
edmodφ(n)=1 得到e 。此时已得到全部公钥e,n 和私钥d ,且ed=1+rφ(n) 加密过程为
C=Memodn ,解密过程为M′=Cdmodn 。等式成立的推导过程为:M′=Cdmodn=(Memodn)dmodn =Medmodn=M1+rφ(n)modn=M∗(Mφ(n))rmodn
由欧拉定理,Mφ(n)≡1(modn) ,所以M∗(Mφ(n))rmodn=M∗1rmodn=Mmodn 此时说明明文
M 经过编码为C 再经过解码为M′ 时,M′=Mmodn 。但我们在做编码解码时, 限制0≤M′<n,0≤M<n ,所以编码和解码后的结果是相同的,即M=M′ 。
证毕。
0 0
- RSA加密解密原理
- [RSA加密2]RSA加密解密原理
- RSA算法原理与加密解密
- RSA加密解密的原理与应用
- RSA加密、解密
- RSA加密解密
- 加密解密---------->RSA算法
- RSA 加密解密总结
- RSA加密解密-实例
- RSA简单加密解密
- RSA加密解密算法
- RSA加密解密算法
- java RSA加密解密
- Java RSA加密解密
- RSA加密解密操作
- RSA加密与解密
- Java RSA加密解密
- RSA加密解密
- POJ 2528-Mayor's posters(线段树区间染色+离散化)
- 浅析设计模式之适配器模式
- Foundation NSArray的排序
- 自己动手写C语言库函数(3) strstr
- 链表的实现
- RSA加密解密原理
- poj1696Space Ant
- UVA 10361 解题报告
- HDU 5207 Greatest Greatest Common Divisor
- 图书管理系统的操作员信息管理界面及其功能设计
- 【面试题】判断字符串是否匹配一定的模式
- 通过客户端编程方式调用webService
- [笔记]hadoop2.4.1分布式集群搭建入门/ha/zookeeper
- NYOJ 427 & HDU 1005 Number Sequence(找循环节)