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