令
m
∈
N
+
m \in \mathbb N^+
m∈N+是任意正整数,利用数论基本定理,可以写作
m
=
p
1
e
1
p
2
e
2
⋯
p
s
e
s
m = p_1^{e_1}p_2^{e_2} \cdots p_s^{e_s}
m=p1e1p2e2⋯pses
其中
p
i
,
i
=
1
,
⋯
,
s
p_i,i=1,\cdots,s
pi,i=1,⋯,s都是素数,
e
i
,
i
=
1
,
⋯
,
s
e_i,i=1,\cdots,s
ei,i=1,⋯,s是正整数。
下面我们考虑一般线性群 G L n ( Z m ) GL_n(\mathbb Z_m) GLn(Zm)的结构。它里面的元素都是 Z m \mathbb Z_m Zm上的 n n n阶可逆矩阵。
首先,我们证明:
A
∈
G
L
n
(
Z
m
)
⟺
d
e
t
(
A
)
∈
Z
m
∗
A \in GL_n(\mathbb Z_m) \iff det(A) \in \mathbb Z_m^*
A∈GLn(Zm)⟺det(A)∈Zm∗
也就是说,矩阵
A
A
A是可逆阵,当仅当它的行列式在
Z
m
\mathbb Z_m
Zm上乘法可逆。
Proof:
证明“ ⇒ \Rightarrow ⇒”,
对于一个
A
∈
Z
m
n
×
n
A \in \mathbb Z_m^{n \times n}
A∈Zmn×n,如果
A
∈
G
L
n
(
Z
m
)
A \in GL_n(\mathbb Z_m)
A∈GLn(Zm),总存在一个
B
∈
Z
m
n
×
n
B \in \mathbb Z_m^{n \times n}
B∈Zmn×n,使得
A
B
=
B
A
=
I
n
∈
Z
m
n
×
n
AB = BA = I_n \in \mathbb Z_m^{n \times n}
AB=BA=In∈Zmn×n
那么计算对应的行列式
d
e
t
(
A
)
⋅
d
e
t
(
B
)
=
d
e
t
(
B
)
⋅
d
e
t
(
A
)
=
d
e
t
(
I
n
)
=
1
det(A) \cdot det(B) = det(B) \cdot det(A) = det(I_n) = 1
det(A)⋅det(B)=det(B)⋅det(A)=det(In)=1
于是
d
e
t
(
A
)
det(A)
det(A)可逆,且
d
e
t
(
A
)
−
1
=
d
e
t
(
B
)
det(A)^{-1} = det(B)
det(A)−1=det(B)
证明“ ⇐ \Leftarrow ⇐”,
对于一个
A
∈
Z
m
n
×
n
A \in \mathbb Z_m^{n \times n}
A∈Zmn×n,如果
d
e
t
(
A
)
∈
Z
m
∗
det(A) \in \mathbb Z_m^*
det(A)∈Zm∗,那么总存在一个
b
∈
Z
m
b \in \mathbb Z_m
b∈Zm,使得
d
e
t
(
A
)
⋅
b
=
b
⋅
d
e
t
(
A
)
=
1
∈
Z
m
det(A) \cdot b = b \cdot det(A) = 1 \in \mathbb Z_m
det(A)⋅b=b⋅det(A)=1∈Zm
构造
A
A
A的伴随矩阵
A
∗
A^*
A∗,那么
A
A
∗
=
A
∗
A
=
d
e
t
(
A
)
⋅
I
n
AA^* = A^*A = det(A) \cdot I_n
AA∗=A∗A=det(A)⋅In
两边同乘以
b
b
b,
(
b
⋅
A
∗
)
A
=
A
(
b
⋅
A
∗
)
=
(
b
⋅
d
e
t
(
A
)
)
⋅
I
n
=
I
n
(b \cdot A^*)A = A(b \cdot A^*) = (b \cdot det(A)) \cdot I_n = I_n
(b⋅A∗)A=A(b⋅A∗)=(b⋅det(A))⋅In=In
从而
A
A
A可逆,且
A
−
1
=
b
⋅
A
∗
A^{-1} = b \cdot A^*
A−1=b⋅A∗
然后,我们证明存在如下的群同构:
G
L
n
(
Z
m
)
≅
G
L
n
(
Z
p
1
e
1
)
×
G
L
n
(
Z
p
2
e
2
)
×
⋯
×
G
L
n
(
Z
p
s
e
s
)
GL_n(\mathbb Z_m) \cong GL_n(\mathbb Z_{p_1^{e_1}}) \times GL_n(\mathbb Z_{p_2^{e_2}}) \times \cdots \times GL_n(\mathbb Z_{p_s^{e_s}})
GLn(Zm)≅GLn(Zp1e1)×GLn(Zp2e2)×⋯×GLn(Zpses)
Proof:
构造映射
ϕ
(
A
)
:
=
(
A
m
o
d
p
1
e
1
,
A
m
o
d
p
2
e
2
,
⋯
,
A
m
o
d
p
s
e
s
)
\phi(A) := (A \mod p_1^{e_1},\, A \mod p_2^{e_2},\, \cdots,\, A \mod p_s^{e_s})
ϕ(A):=(Amodp1e1,Amodp2e2,⋯,Amodpses)
我们将证明它是双射。
证明是单的,
对于任意的
A
,
B
∈
G
L
n
(
Z
m
)
A,B \in GL_n(\mathbb Z_m)
A,B∈GLn(Zm)且
A
≠
B
A \neq B
A=B,假设有
ϕ
(
A
)
=
ϕ
(
B
)
\phi(A) = \phi(B)
ϕ(A)=ϕ(B)
那么就是说
∀
k
=
1
,
⋯
,
s
,
A
≡
B
m
o
d
p
k
e
k
\forall k=1,\cdots,s,\, A \equiv B \mod p_k^{e_k}
∀k=1,⋯,s,A≡Bmodpkek
等价于
∀
k
=
1
,
⋯
,
s
,
∀
i
,
j
=
1
,
⋯
,
n
,
A
i
j
−
B
i
j
≡
0
m
o
d
p
k
e
k
\forall k=1,\cdots,s,\, \forall i,j = 1,\cdots,n,\, A_{ij} - B_{ij} \equiv 0 \mod p_k^{e_k}
∀k=1,⋯,s,∀i,j=1,⋯,n,Aij−Bij≡0modpkek
那么
∀
i
,
j
=
1
,
⋯
,
n
,
A
i
j
−
B
i
j
≡
0
m
o
d
m
\forall i,j = 1,\cdots,n,\, A_{ij} - B_{ij} \equiv 0 \mod m
∀i,j=1,⋯,n,Aij−Bij≡0modm
也就是
A
≡
B
m
o
d
m
A \equiv B \mod m
A≡Bmodm
这与假设矛盾。因此,只要两个原像不同,它们的像就不同,是单射。
证明是满的,
对于任意的
(
A
(
1
)
,
A
(
2
)
,
⋯
,
A
(
s
)
)
∈
G
L
n
(
Z
p
1
e
1
)
×
G
L
n
(
Z
p
2
e
2
)
×
⋯
×
G
L
n
(
Z
p
s
e
s
)
(A^{(1)},\, A^{(2)},\, \cdots,\, A^{(s)}) \in GL_n(\mathbb Z_{p_1^{e_1}}) \times GL_n(\mathbb Z_{p_2^{e_2}}) \times \cdots \times GL_n(\mathbb Z_{p_s^{e_s}})
(A(1),A(2),⋯,A(s))∈GLn(Zp1e1)×GLn(Zp2e2)×⋯×GLn(Zpses)
我们将它拆解为
n
×
n
n \times n
n×n片:
∀
i
,
j
=
1
,
⋯
,
n
,
(
A
i
j
(
1
)
,
A
i
j
(
2
)
,
⋯
,
A
i
j
(
s
)
)
∈
Z
p
1
e
1
×
Z
p
2
e
2
×
⋯
×
Z
p
s
e
s
\forall i,j=1,\cdots,n,\, (A^{(1)}_{ij},\, A^{(2)}_{ij},\, \cdots,\, A^{(s)}_{ij}) \in \mathbb Z_{p_1^{e_1}} \times \mathbb Z_{p_2^{e_2}} \times \cdots \times \mathbb Z_{p_s^{e_s}}
∀i,j=1,⋯,n,(Aij(1),Aij(2),⋯,Aij(s))∈Zp1e1×Zp2e2×⋯×Zpses
由于模数两两互素,利用 CRT,每一片都存在唯一的元素与之对应
C
R
T
(
A
i
j
(
1
)
m
o
d
p
1
e
1
,
A
i
j
(
2
)
m
o
d
p
2
e
2
,
⋯
,
A
i
j
(
s
)
m
o
d
p
s
e
s
)
=
A
i
j
m
o
d
m
CRT(A^{(1)}_{ij} \mod p_1^{e_1},\, A^{(2)}_{ij} \mod p_2^{e_2},\, \cdots,\, A^{(s)}_{ij} \mod p_s^{e_s}) = A_{ij} \mod m
CRT(Aij(1)modp1e1,Aij(2)modp2e2,⋯,Aij(s)modpses)=Aijmodm
将这些数排列成矩阵
A
∈
Z
m
n
×
n
A \in \mathbb Z_m^{n \times n}
A∈Zmn×n,易知
∀
k
=
1
,
⋯
,
s
,
A
m
o
d
p
k
e
k
=
A
(
k
)
∈
G
L
n
(
Z
m
)
\forall k=1,\cdots,s,\, A \mod p_k^{e_k} = A^{(k)} \in GL_n(\mathbb Z_m)
∀k=1,⋯,s,Amodpkek=A(k)∈GLn(Zm)
依据步骤一,得到
∀
k
=
1
,
⋯
,
s
,
d
e
t
(
A
)
m
o
d
p
k
e
k
≡
d
e
t
(
A
m
o
d
p
k
e
k
)
∈
Z
p
k
e
k
∗
\forall k=1,\cdots,s,\, det(A) \mod p_k^{e_k} \equiv det(A \mod p_k^{e_k}) \in \mathbb Z_{p_k^{e_k}}^*
∀k=1,⋯,s,det(A)modpkek≡det(Amodpkek)∈Zpkek∗
那么
d
e
t
(
A
)
∈
Z
m
∗
det(A) \in \mathbb Z_{m}^*
det(A)∈Zm∗
再根据步骤一,得到
A
∈
G
L
n
(
Z
m
)
A \in GL_n(\mathbb Z_m)
A∈GLn(Zm)
因此,像空间中的任意元素,都存在原像空间上的元素与之对应,是满射。
对于剩余类环
Z
m
\mathbb Z_m
Zm,其中
m
=
p
1
e
1
p
2
e
2
⋯
p
s
e
s
m = p_1^{e_1}p_2^{e_2} \cdots p_s^{e_s}
m=p1e1p2e2⋯pses
我们证明了群同构:
G
L
n
(
Z
m
)
≅
G
L
n
(
Z
p
1
e
1
)
×
G
L
n
(
Z
p
2
e
2
)
×
⋯
×
G
L
n
(
Z
p
s
e
s
)
GL_n(\mathbb Z_m) \cong GL_n(\mathbb Z_{p_1^{e_1}}) \times GL_n(\mathbb Z_{p_2^{e_2}}) \times \cdots \times GL_n(\mathbb Z_{p_s^{e_s}})
GLn(Zm)≅GLn(Zp1e1)×GLn(Zp2e2)×⋯×GLn(Zpses)
因此两者的大小相同,
∣
G
L
n
(
Z
m
)
∣
=
∣
G
L
n
(
Z
p
1
e
1
)
∣
×
∣
G
L
n
(
Z
p
2
e
2
)
∣
×
⋯
×
∣
G
L
n
(
Z
p
s
e
s
)
∣
|GL_n(\mathbb Z_{m})| = |GL_n(\mathbb Z_{p_1^{e_1}})| \times |GL_n(\mathbb Z_{p_2^{e_2}})| \times \cdots \times |GL_n(\mathbb Z_{p_s^{e_s}})|
∣GLn(Zm)∣=∣GLn(Zp1e1)∣×∣GLn(Zp2e2)∣×⋯×∣GLn(Zpses)∣
接下来我们计算
G
L
n
(
Z
p
e
)
GL_n(\mathbb Z_{p^e})
GLn(Zpe)的大小。
对于素域 Z p \mathbb Z_p Zp,因为它是无零因子环,因此任意的非零向量 v v v,向量组 { v } \{v\} {v}是线性无关的。否则,存在 a ≠ 0 a \neq 0 a=0,使得 a ⋅ v = 0 a \cdot v=0 a⋅v=0;不失一般性的,令第一分量 v [ 1 ] ≠ 0 v[1] \neq 0 v[1]=0,那么 a ⋅ v [ 1 ] = 0 a \cdot v[1]=0 a⋅v[1]=0,这与无零因子环矛盾。
为了构造出 Z p \mathbb Z_p Zp上的一个可逆阵,这等价于在空间 Z p n \mathbb Z_p^n Zpn上挑选一个大小为 n n n的线性无关向量组:
因此,
∣
G
L
n
(
Z
p
)
∣
=
(
p
n
−
1
)
(
p
n
−
p
)
⋯
(
p
n
−
p
n
−
1
)
|GL_n(\mathbb Z_p)| = (p^n-1)(p^n-p) \cdots (p^n-p^{n-1})
∣GLn(Zp)∣=(pn−1)(pn−p)⋯(pn−pn−1)
ϕ
(
p
e
)
=
p
e
−
1
(
p
−
1
)
\phi(p^e) = p^{e-1}(p-1)
ϕ(pe)=pe−1(p−1),因此环
Z
p
e
\mathbb Z_{p^e}
Zpe中包含
p
e
−
1
p^{e-1}
pe−1个不可逆元素。实际上,这些不可逆元素都是
p
p
p的倍数:
S
=
{
k
p
:
k
=
0
,
1
,
⋯
,
p
e
−
1
−
1
}
S = \{kp:\, k=0,1,\cdots,p^{e-1}-1\}
S={kp:k=0,1,⋯,pe−1−1}
令
E
i
j
,
i
,
j
=
1
,
⋯
,
n
E_{ij},i,j=1,\cdots,n
Eij,i,j=1,⋯,n表示一个
n
n
n阶方阵,它只有第
i
i
i行第
j
j
j列的元素是
1
1
1,其他位置都为
0
0
0
我们将证明,所有的
G
L
n
(
Z
p
e
)
GL_n(\mathbb Z_{p^e})
GLn(Zpe)中的可逆阵
A
′
A'
A′都形如
A
′
=
A
+
∑
i
,
j
s
i
j
⋅
E
i
j
,
∃
A
∈
G
L
n
(
Z
p
)
,
∃
s
i
j
∈
S
A' = A + \sum_{i,j} s_{ij} \cdot E_{ij},\, \exists A \in GL_n(\mathbb Z_p),\, \exists s_{ij} \in S
A′=A+i,j∑sij⋅Eij,∃A∈GLn(Zp),∃sij∈S
证明“ ⇒ \Rightarrow ⇒”,
任取
A
′
∈
G
L
n
(
Z
p
e
)
A' \in GL_n(\mathbb Z_{p^e})
A′∈GLn(Zpe),它满足
(
d
e
t
(
A
′
)
,
p
e
)
=
1
(det(A'),p^e) = 1
(det(A′),pe)=1
易知
(
d
e
t
(
A
′
)
,
p
)
=
1
(det(A'),p) = 1
(det(A′),p)=1
因此,选取矩阵
A
=
A
′
m
o
d
p
A = A' \mod p
A=A′modp,再令
A
′
−
A
=
∑
i
,
j
s
i
j
⋅
E
i
j
A' - A = \sum_{i,j} s_{ij} \cdot E_{ij}
A′−A=∑i,jsij⋅Eij,容易验证:
A
∈
G
L
n
(
Z
p
)
A \in GL_n(\mathbb Z_p)
A∈GLn(Zp)
以及
∀
i
,
j
=
1
,
⋯
,
n
,
s
i
j
∈
S
\forall i,j=1,\cdots,n,\,s_{ij} \in S
∀i,j=1,⋯,n,sij∈S
证明“ ⇐ \Leftarrow ⇐”,
任取 A ∈ G L n ( Z p ) A \in GL_n(\mathbb Z_p) A∈GLn(Zp),等价于 d e t ( A ) ∈ Z p ∗ det(A) \in \mathbb Z_p^* det(A)∈Zp∗,也就是 ( d e t ( A ) , p ) = 1 (det(A),p)=1 (det(A),p)=1
那么,构造
Z
p
e
\mathbb Z_{p^e}
Zpe上矩阵
A
′
=
A
+
∑
i
,
j
s
i
j
⋅
E
i
j
,
∀
s
i
j
∈
S
A' = A + \sum_{i,j} s_{ij} \cdot E_{ij},\, \forall s_{ij} \in S
A′=A+i,j∑sij⋅Eij,∀sij∈S
由于
∀
i
,
j
,
p
∣
s
i
j
\forall i,j,\, p|s_{ij}
∀i,j,p∣sij,因此
d
e
t
(
A
′
)
≡
d
e
t
(
A
′
m
o
d
p
)
≡
d
e
t
(
A
)
m
o
d
p
det(A') \equiv det(A' \mod p) \equiv det(A) \mod p
det(A′)≡det(A′modp)≡det(A)modp
从而
(
d
e
t
(
A
′
)
,
p
)
=
(
d
e
t
(
A
)
,
p
)
=
1
(det(A'),p) = (det(A),p) = 1
(det(A′),p)=(det(A),p)=1
也就是
A
′
A'
A′的行列式与
p
p
p互素,进一步可以得到
(
d
e
t
(
A
′
)
,
p
e
)
=
1
(det(A'),p^e) = 1
(det(A′),pe)=1
这等价于
A
′
∈
G
L
n
(
Z
p
e
)
A' \in GL_n(\mathbb Z_{p^e})
A′∈GLn(Zpe)
因此,每存在
1
1
1个
A
∈
G
L
n
(
Z
p
)
A \in GL_n(\mathbb Z_{p})
A∈GLn(Zp),就存在
∣
S
∣
n
2
|S|^{n^2}
∣S∣n2个
A
′
∈
G
L
n
(
Z
p
e
)
A' \in GL_n(\mathbb Z_{p^e})
A′∈GLn(Zpe)与之对应,并且不重叠。即:
∣
G
L
n
(
Z
p
e
)
∣
=
∣
G
L
n
(
Z
p
)
∣
⋅
∣
S
∣
n
2
=
∣
G
L
n
(
Z
p
)
∣
⋅
p
(
e
−
1
)
n
2
|GL_n(\mathbb Z_{p^e})| = |GL_n(\mathbb Z_{p})| \cdot |S|^{n^2} = |GL_n(\mathbb Z_{p})| \cdot p^{(e-1)n^2}
∣GLn(Zpe)∣=∣GLn(Zp)∣⋅∣S∣n2=∣GLn(Zp)∣⋅p(e−1)n2
由于
m
=
2
1
×
1
3
1
m = 2^1 \times 13^1
m=21×131,因此有
G
L
n
(
Z
26
)
≅
G
L
n
(
Z
2
)
×
G
L
n
(
Z
13
)
GL_n(\mathbb Z_{26}) \cong GL_n(\mathbb Z_{2}) \times GL_n(\mathbb Z_{13})
GLn(Z26)≅GLn(Z2)×GLn(Z13)
群
G
L
n
(
Z
2
)
GL_n(\mathbb Z_{2})
GLn(Z2)的大小为:
∣
G
L
n
(
Z
2
)
∣
=
(
2
n
−
1
)
(
2
n
−
2
)
⋯
(
2
n
−
2
n
−
1
)
×
2
(
1
−
1
)
n
2
|GL_n(\mathbb Z_{2})| = (2^n-1)(2^n-2)\cdots(2^n-2^{n-1}) \times 2^{(1-1)n^2}
∣GLn(Z2)∣=(2n−1)(2n−2)⋯(2n−2n−1)×2(1−1)n2
群
G
L
n
(
Z
13
)
GL_n(\mathbb Z_{13})
GLn(Z13)的大小为:
∣
G
L
n
(
Z
13
)
∣
=
(
1
3
n
−
1
)
(
1
3
n
−
13
)
⋯
(
1
3
n
−
1
3
n
−
1
)
×
1
3
(
1
−
1
)
n
2
|GL_n(\mathbb Z_{13})| = (13^n-1)(13^n-13)\cdots(13^n-13^{n-1}) \times 13^{(1-1)n^2}
∣GLn(Z13)∣=(13n−1)(13n−13)⋯(13n−13n−1)×13(1−1)n2
得到:
∣
G
L
n
(
Z
26
)
∣
=
(
2
n
−
1
)
(
2
n
−
2
)
⋯
(
2
n
−
2
n
−
1
)
⋅
(
1
3
n
−
1
)
(
1
3
n
−
13
)
⋯
(
1
3
n
−
1
3
n
−
1
)
|GL_n(\mathbb Z_{26})| = (2^n-1)(2^n-2)\cdots(2^n-2^{n-1}) \cdot (13^n-1)(13^n-13)\cdots(13^n-13^{n-1})
∣GLn(Z26)∣=(2n−1)(2n−2)⋯(2n−2n−1)⋅(13n−1)(13n−13)⋯(13n−13n−1)
这就是 Hill 加密方案的密钥空间大小。