G L n ( Z m ) GL_n(\mathbb Z_m) GLn(Zm)
令
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)
因此,像空间中的任意元素,都存在原像空间上的元素与之对应,是满射。
∣ G L n ( Z m ) ∣ |GL_n(\mathbb Z_m)| ∣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的线性无关向量组:
- 挑选第一个向量 v 1 v_1 v1,它除了不能是零向量。而其他的选择都可以令 { v 1 } \{v_1\} {v1}是线性无关的,有 p n − 1 p^n-1 pn−1种选择
- 挑选第二个向量 v 2 v_2 v2,为了保持线性无关,它不能落在子空间 S p a n ( { v 1 } ) Span(\{v_1\}) Span({v1})内部。其他的选择都可以保持 { v 1 , v 2 } \{v_1,v_2\} {v1,v2}是线性无关的,因此有 p n − p p^n-p pn−p种选择
- 挑选第三个向量 v 2 v_2 v2,为了保持线性无关,它不能落在子空间 S p a n ( { v 1 , v 2 } ) Span(\{v_1,v_2\}) Span({v1,v2})内部。其他的选择都可以保持 { v 1 , v 2 , v 3 } \{v_1,v_2,v_3\} {v1,v2,v3}是线性无关的,因此有 p n − p 2 p^n-p^2 pn−p2种选择
- 继续挑选其他向量,保持选出的向量组是线性无关的,直到选出 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
实例 - G L n ( Z 26 ) GL_n(\mathbb Z_{26}) GLn(Z26)
由于
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 加密方案的密钥空间大小。