关于RSA加密算法的介绍

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于RSA加密算法的介绍相关的知识,希望对你有一定的参考价值。

关于RSA加密算法的介绍

陷门单向函数


RSA流程

a.示例1


b.示例2

rsa加解密公式
设A为明文,B为加密后的密文
加密过程 B = A e m o d n B=A^e mod n B=Aemodn
解密过程 A = B d m o d n A=B^d mod n A=Bdmodn

从公式上可以看出,加解密时数据会 m o d n mod n modn,那么大于N的数据,都会发生回绕,失去原有属性。

举例
1)生成密钥对
a)选两个素数,为 P 和 Q P和Q PQ
P = 13 , Q = 7 P = 13, Q = 7 P=13,Q=7
N = p × q = 91 N = p\\times q = 91 N=p×q=91

b)选择E,要求 e e e 和$ ( p - 1 ) * ( q - 1 )$互质
( p − 1 ) ∗ ( q − 1 ) = 12 ∗ 6 = 72 (p-1)*(q-1) = 12 * 6 = 72 (p1)(q1)=126=72,选择 E = 7 E = 7 E=7则可以。
现在$ N = 91, E = 7$

c)选择D,要求 ( d ∗ e ) m o d ( p − 1 ) ∗ ( q − 1 ) = 1 (d*e) mod (p-1)*(q-1) = 1 (de)mod(p1)(q1)=1
( p − 1 ) ∗ ( q − 1 ) (p-1)*(q-1) (p1)(q1)的值是72,所以
( d ∗ e ) m o d 72 = 1 ( d * e ) mod 72 = 1 (de)mod72=1 ( d ∗ e ) ( d * e ) (de)可以是 73 , 145 , 217 73, 145, 217 73,145,217
d ∗ e = 217 d * e = 217 de=217,则 d = 31 d = 31 d=31
2)n-d格式加解密过程
a)设A为明文,B为密文,
加密过程 B = A e m o d n B=A^e mod n B=Aemodn
解密过程 A = B d m o d n A=B^d mod n A=Bdmodn
b)加密
设$a = 2 $则 a e = 2 7 = 128 , m o d 91 = 37 a ^ e = 2 ^ 7 = 128, mod 91 = 37 ae=27=128,mod91=37,则 37为密文
b = 37
c)解密
b d = 3 7 3 1 = 4.1138973036067710421568685993113 e + 48 , m o d 91 = 2 b ^ d = 37 ^ 31 = 4.1138973036067710421568685993113e+48, mod 91 = 2 bd=3731=4.1138973036067710421568685993113e+48,mod91=2
解密结果等于明文,加解密成功
d)若明文 大于 n,假设 a等于93
a e = 9 3 7 = 60170087060757 , m o d 91 = 37 a ^ e = 93 ^ 7 = 60170087060757, mod 91 = 37 ae=937=60170087060757,mod91=37,则密文还是37
对37进行解密,得到的明文是2,与原始输入数据不一致
所以明文 不能 大于 N N N


https://www.zhihu.com/question/312961692/answer/627480245

以上是关于关于RSA加密算法的介绍的主要内容,如果未能解决你的问题,请参考以下文章

关于RSA公钥私钥加密签名的那些概念

python----RSA非对称加密算法使用

RSA 加密算法在C++中的实现 面向初学者(附代码)

非对称加密——RSA算法工具类

Java培训 关于RSA加密算法有哪些应用呢?

RSA 加密算法主要公式