关于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 P和Q
设 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 (p−1)∗(q−1)=12∗6=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 (d∗e)mod(p−1)∗(q−1)=1。
( p − 1 ) ∗ ( q − 1 ) (p-1)*(q-1) (p−1)∗(q−1)的值是72,所以
( d ∗ e ) m o d 72 = 1 ( d * e ) mod 72 = 1 (d∗e)mod72=1, ( d ∗ e ) ( d * e ) (d∗e)可以是 73 , 145 , 217 73, 145, 217 73,145,217…
选 d ∗ e = 217 d * e = 217 d∗e=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