在公钥加密系统中,信息接收方
A
l
i
c
e
Alice
Alice 产生公钥私钥对
(
a
,
b
)
(a,b)
(a,b),
a
a
a 为私钥
A
l
i
c
e
Alice
Alice 持有,
b
b
b 为公钥
B
o
b
Bob
Bob 持有,公钥对任何人可见,私钥仅信息接收方
A
l
i
c
e
Alice
Alice 可见,信息发送方
B
o
b
Bob
Bob 发送信息
M
M
M 时,利用加密函数
e
K
(
x
)
e_K(x)
eK(x) 对原信息加密,信息接收方
A
l
i
c
e
Alice
Alice 利用解密函数
d
K
(
x
)
d_K(x)
dK(x) 对信息进行解密。其中
K
=
(
n
,
p
,
q
,
a
,
b
)
K=(n,p,q,a,b)
K=(n,p,q,a,b) 。
加解密过程如下:
- A l i c e Alice Alice 选择两个大素数 p , q p,q p,q,且令 n = p q n = pq n=pq,,产生公钥私钥对 ( a , b ) (a,b) (a,b) 使得 a b ≡ 1 m o d ϕ ( n ) ab\equiv 1\ mod\ \phi (n) ab≡1 mod ϕ(n),其中 n , b n,b n,b 为公钥, p , q , a p,q,a p,q,a 为私钥。
- B o b Bob Bob 发送明文信息 P P P,利用加密函数 e K ( x ) = x b m o d n e_K(x)=x^b\ mod\ n eK(x)=xb mod n 把明文加密成密文 C = P b m o d n C=P^b\ mod \ n C=Pb mod n。
-
A
l
i
c
e
Alice
Alice 利用解密函数
d
K
(
x
)
=
x
a
m
o
d
n
d_K(x)=x^a\ mod \ n
dK(x)=xa mod n 对密文
C
C
C 进行解密
P
=
C
a
m
o
d
n
P=C^a\ mod \ n
P=Ca mod n。
(注:这里 ϕ ( n ) \phi(n) ϕ(n) 为小于 n n n 的正整数中与 n n n 互素的数的个数,即数论中的欧拉函数)
要证明 R S A RSA RSA 的正确性,即需证明 P ≡ P ( a b ) m o d n P \equiv P^{(ab)}\ mod\ n P≡P(ab) mod n。
断
言
1
:
集
合
G
=
{
x
∣
x
∈
Z
n
且
g
c
d
(
x
,
n
)
=
1
}
构
成
群
断言1:集合G=\{x|\ x\in \mathbb{Z_n}且gcd(x,n)=1\}构成群
断言1:集合G={x∣ x∈Zn且gcd(x,n)=1}构成群
证明:对任意的
x
,
y
∈
G
x,y\in G
x,y∈G,有
g
c
d
(
x
y
m
o
d
n
,
n
)
=
1
gcd(xy\ mod\ n,n)=1
gcd(xy mod n,n)=1,假设
g
c
d
(
x
y
m
o
d
n
,
n
)
=
r
≠
1
gcd(xy\ mod\ n,n)=r\neq 1
gcd(xy mod n,n)=r=1,因为
g
c
d
(
x
,
n
)
=
1
,
g
c
d
(
y
,
n
)
=
1
gcd(x,n)=1,gcd(y,n)=1
gcd(x,n)=1,gcd(y,n)=1 所以
g
c
d
(
x
y
,
n
)
=
1
gcd(xy,n)=1
gcd(xy,n)=1,由于
r
∣
n
,
r
∣
(
x
y
m
o
d
n
)
,
x
y
=
k
n
+
(
x
y
m
o
d
n
)
r|n,r|(xy\ mod\ n),xy=kn+(xy\ mod\ n)
r∣n,r∣(xy mod n),xy=kn+(xy mod n),可以推出
r
∣
x
y
r|xy
r∣xy,从而
g
c
d
(
x
y
,
n
)
≠
1
gcd(xy,n)\neq 1
gcd(xy,n)=1,与已知条件矛盾,故
g
c
d
(
x
y
m
o
d
n
,
n
)
=
1
gcd(xy\ mod\ n,n)=1
gcd(xy mod n,n)=1,从而
(
x
y
m
o
d
n
)
∈
G
(xy\ mod\ n)\in G
(xy mod n)∈G,因而
G
G
G 对
Z
n
\mathbb{Z_n}
Zn 上的乘法闭包,对于任意的
x
∈
G
x\in G
x∈G 可以利用扩展的欧几里得算法找到
x
−
1
x^{-1}
x−1 使得
x
x
−
1
≡
1
m
o
d
n
xx^{-1}\equiv 1\ mod\ n
xx−1≡1 mod n,由于
x
x
−
1
−
k
n
=
1
xx^{-1}-kn=1
xx−1−kn=1,假设
g
c
d
(
x
−
1
,
n
)
=
r
≠
1
gcd(x^{-1},n)=r\neq 1
gcd(x−1,n)=r=1,则
x
x
−
1
−
k
n
=
k
′
r
≠
1
xx^{-1}-kn=k^{'}r\neq1
xx−1−kn=k′r=1,与假设矛盾,所以
g
c
d
(
x
−
1
,
n
)
=
1
gcd(x^{-1},n)=1
gcd(x−1,n)=1,即
x
−
1
∈
G
x^{-1}\in G
x−1∈G,即集合
G
G
G 构成群。
为了简便,我们记集合
G
G
G 为 模
n
n
n 上的整数乘法群
Z
n
∗
\mathbb{Z_n^*}
Zn∗。
E
u
l
e
r
定
理
:
对
任
意
的
正
整
数
x
∈
Z
n
∗
有
x
ϕ
(
n
)
≡
1
m
o
d
n
Euler 定理:对任意的正整数\ x\in \mathbb{Z_n^*}\ 有\ x^{\phi(n)}\equiv 1\ mod\ n
Euler定理:对任意的正整数 x∈Zn∗ 有 xϕ(n)≡1 mod n
证明:假设群
G
=
{
x
1
,
x
2
,
⋯
,
x
ϕ
(
n
)
}
G=\{x_1,x_2,\cdots,x_{\phi(n)}\}
G={x1,x2,⋯,xϕ(n)},
当
x
∈
Z
n
∗
x\in \mathbb{Z_n^*}
x∈Zn∗ ,可知
x
G
=
{
x
x
1
,
x
x
2
,
…
,
x
x
ϕ
(
n
)
}
=
G
xG=\{xx_1,xx_2,\dots,xx_{\phi(n)}\}=G
xG={xx1,xx2,…,xxϕ(n)}=G,因为显然对于
x
1
≠
x
2
x_1\neq x_2
x1=x2 有
x
x
1
≠
x
x
2
xx_1\neq xx_2
xx1=xx2,即
x
G
xG
xG 为
G
G
G 的一个置换,于是
x
x
1
⋅
x
x
2
⋯
x
x
ϕ
(
n
)
≡
x
1
⋅
x
2
⋯
x
ϕ
(
n
)
m
o
d
n
xx_1\cdot xx_2\cdots xx_{\phi(n)}\equiv x_1\cdot x_2 \cdots x_{\phi(n)}\ mod \ n
xx1⋅xx2⋯xxϕ(n)≡x1⋅x2⋯xϕ(n) mod n,即有
x
ϕ
(
n
)
≡
1
m
o
d
n
x^{\phi(n)}\equiv 1\ mod\ n
xϕ(n)≡1 mod n。
综上
E
u
l
e
r
Euler
Euler 定理得证。
在
R
S
A
RSA
RSA 公钥加密系统中,我们知道
a
b
≡
1
m
o
d
ϕ
(
n
)
ab\equiv 1 \ mod\ \phi(n)
ab≡1 mod ϕ(n),即
a
b
=
k
ϕ
(
n
)
+
1
ab=k\phi(n)+1
ab=kϕ(n)+1,所以 由
E
u
l
e
r
Euler
Euler 定理知
P
a
b
≡
P
(
k
ϕ
(
n
)
+
1
)
≡
P
m
o
d
n
P^{ab}\equiv P^{(k\phi(n)+1)}\equiv P\ mod\ n
Pab≡P(kϕ(n)+1)≡P mod n。综上
R
S
A
RSA
RSA 的正确性得证。
值得一提的是,费马小定理
F
e
r
m
a
t
小
定
理
:
对
素
数
p
,
任
意
的
整
数
x
∈
Z
p
有
x
(
p
−
1
)
≡
1
m
o
d
p
Fermat小定理:对素数\ p\ ,任意的整数\ x\in \mathbb{Z_p}\ 有\ x^{(p-1)}\equiv 1\ mod\ p
Fermat小定理:对素数 p ,任意的整数 x∈Zp 有 x(p−1)≡1 mod p
是当
n
=
p
,
ϕ
(
n
)
=
ϕ
(
p
)
=
p
−
1
n=p,\phi(n)=\phi(p)=p-1
n=p,ϕ(n)=ϕ(p)=p−1时的
E
u
l
e
r
Euler
Euler 定理的特殊情形.。