def:已知两个不同的大素数
p
,
q
p,q
p,q,令
n
=
p
q
,
m
=
(
p
−
1
)
(
q
−
1
)
n=pq,m=(p-1)(q-1)
n=pq,m=(p−1)(q−1),随机生成一个整数
e
,
1
<
e
<
m
e,1<e<m
e,1<e<m且
g
c
d
(
e
,
m
)
=
1
gcd(e,m)=1
gcd(e,m)=1,再计算得到一个整数
d
,
1
<
d
<
m
d,1<d<m
d,1<d<m且
e
d
≡
1
(
m
o
d
m
)
ed\equiv1(mod\;m)
ed≡1(modm). 则对于任意整数
x
,
0
≤
x
<
n
x,0\leq x<n
x,0≤x<n,有
(1)加密:
y
=
x
e
(
m
o
d
n
)
y=x^e(mod\;n)
y=xe(modn)
(2)解密:
x
=
y
d
(
m
o
d
n
)
x=y^d(mod\;n)
x=yd(modn)
我们需要验证两个性质:
(i)
x
e
d
≡
x
(
m
o
d
n
)
x^{ed}\equiv x(mod\;n)
xed≡x(modn)
(ii)
x
e
(
m
o
d
n
)
x^e(mod\;n)
xe(modn)是
Z
n
Z_n
Zn到
Z
n
Z_n
Zn的双射即可逆
事实上,这两条性质是等价的。因为A到B的函数
f
(
x
)
f(x)
f(x)可逆等价于存在B到A的函数
g
(
x
)
g(x)
g(x)使得任意
x
∈
A
x\in A
x∈A,都有
g
(
f
(
x
)
)
=
x
g(f(x))=x
g(f(x))=x且任意
y
∈
B
y\in B
y∈B,都有
f
(
g
(
y
)
)
=
y
f(g(y))=y
f(g(y))=y。特别的,对于两个有限集合来说,如果存在双射,则集合元素数量相同。
因此,下面只需要说明第一条性质成立即可,由最小公倍数性质可知
x
e
d
≡
x
(
m
o
d
n
)
x^{ed}\equiv x(mod\;n)
xed≡x(modn)等价于
x
e
d
≡
x
(
m
o
d
p
)
x^{ed}\equiv x(mod\;p)
xed≡x(modp)且
x
e
d
≡
x
(
m
o
d
q
)
x^{ed}\equiv x(mod\;q)
xed≡x(modq).
易知
e
d
=
k
(
p
−
1
)
(
q
−
1
)
+
1
ed=k(p-1)(q-1)+1
ed=k(p−1)(q−1)+1,则由欧拉定理可知
x
e
d
≡
x
(
m
o
d
p
)
x^{ed}\equiv x(mod\;p)
xed≡x(modp)且
x
e
d
≡
x
(
m
o
d
q
)
x^{ed}\equiv x(mod\;q)
xed≡x(modq)成立。
【启发】如果我们需要证明
f
f
f是A到B的单射,可以换个角度证明存在B到A的函数
g
g
g使得
g
(
f
(
x
)
)
=
x
g(f(x))=x
g(f(x))=x。进一步,如果A,B的集合大小相同,则为双射。
RSA相关
于 2024-03-10 02:45:29 首次发布