GLn(Zm)GL_n(\mathbb Z_m)GLn(Zm)
令m∈N+m \in \mathbb N^+m∈N+是任意正整数,利用数论基本定理,可以写作
m=p1e1p2e2⋯pses
m = p_1^{e_1}p_2^{e_2} \cdots p_s^{e_s}
m=p1e1p2e2⋯pses
其中pi,i=1,⋯ ,sp_i,i=1,\cdots,spi,i=1,⋯,s都是素数,ei,i=1,⋯ ,se_i,i=1,\cdots,sei,i=1,⋯,s是正整数。
下面我们考虑一般线性群GLn(Zm)GL_n(\mathbb Z_m)GLn(Zm)的结构。它里面的元素都是Zm\mathbb Z_mZm上的nnn阶可逆矩阵。
步骤一
首先,我们证明:
A∈GLn(Zm) ⟺ det(A)∈Zm∗
A \in GL_n(\mathbb Z_m) \iff det(A) \in \mathbb Z_m^*
A∈GLn(Zm)⟺det(A)∈Zm∗
也就是说,矩阵AAA是可逆阵,当仅当它的行列式在Zm\mathbb Z_mZm上乘法可逆。
Proof:
-
证明“⇒\Rightarrow⇒”,
对于一个A∈Zmn×nA \in \mathbb Z_m^{n \times n}A∈Zmn×n,如果A∈GLn(Zm)A \in GL_n(\mathbb Z_m)A∈GLn(Zm),总存在一个B∈Zmn×nB \in \mathbb Z_m^{n \times n}B∈Zmn×n,使得
AB=BA=In∈Zmn×n AB = BA = I_n \in \mathbb Z_m^{n \times n} AB=BA=In∈Zmn×n
那么计算对应的行列式
det(A)⋅det(B)=det(B)⋅det(A)=det(In)=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
于是det(A)det(A)det(A)可逆,且det(A)−1=det(B)det(A)^{-1} = det(B)det(A)−1=det(B) -
证明“⇐\Leftarrow⇐”,
对于一个A∈Zmn×nA \in \mathbb Z_m^{n \times n}A∈Zmn×n,如果det(A)∈Zm∗det(A) \in \mathbb Z_m^*det(A)∈Zm∗,那么总存在一个b∈Zmb \in \mathbb Z_mb∈Zm,使得
det(A)⋅b=b⋅det(A)=1∈Zm det(A) \cdot b = b \cdot det(A) = 1 \in \mathbb Z_m det(A)⋅b=b⋅det(A)=1∈Zm
构造AAA的伴随矩阵A∗A^*A∗,那么
AA∗=A∗A=det(A)⋅In AA^* = A^*A = det(A) \cdot I_n AA∗=A∗A=det(A)⋅In
两边同乘以bbb,
(b⋅A∗)A=A(b⋅A∗)=(b⋅det(A))⋅In=In (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
从而AAA可逆,且A−1=b⋅A∗A^{-1} = b \cdot A^*A−1=b⋅A∗
步骤二
然后,我们证明存在如下的群同构:
GLn(Zm)≅GLn(Zp1e1)×GLn(Zp2e2)×⋯×GLn(Zpses)
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):=(Amod p1e1, Amod p2e2, ⋯ , Amod pses)
\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∈GLn(Zm)A,B \in GL_n(\mathbb Z_m)A,B∈GLn(Zm)且A≠BA \neq BA=B,假设有
ϕ(A)=ϕ(B) \phi(A) = \phi(B) ϕ(A)=ϕ(B)
那么就是说
∀k=1,⋯ ,s, A≡Bmod pkek \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, Aij−Bij≡0mod pkek \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, Aij−Bij≡0mod m \forall i,j = 1,\cdots,n,\, A_{ij} - B_{ij} \equiv 0 \mod m ∀i,j=1,⋯,n,Aij−Bij≡0modm
也就是
A≡Bmod m A \equiv B \mod m A≡Bmodm
这与假设矛盾。因此,只要两个原像不同,它们的像就不同,是单射。 -
证明是满的,
对于任意的
(A(1), A(2), ⋯ , A(s))∈GLn(Zp1e1)×GLn(Zp2e2)×⋯×GLn(Zpses) (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×nn \times nn×n片:
∀i,j=1,⋯ ,n, (Aij(1), Aij(2), ⋯ , Aij(s))∈Zp1e1×Zp2e2×⋯×Zpses \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,每一片都存在唯一的元素与之对应
CRT(Aij(1)mod p1e1, Aij(2)mod p2e2, ⋯ , Aij(s)mod pses)=Aijmod 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∈Zmn×nA \in \mathbb Z_m^{n \times n}A∈Zmn×n,易知
∀k=1,⋯ ,s, Amod pkek=A(k)∈GLn(Zm) \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, det(A)mod pkek≡det(Amod pkek)∈Zpkek∗ \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∗
那么
det(A)∈Zm∗ det(A) \in \mathbb Z_{m}^* det(A)∈Zm∗
再根据步骤一,得到
A∈GLn(Zm) A \in GL_n(\mathbb Z_m) A∈GLn(Zm)
因此,像空间中的任意元素,都存在原像空间上的元素与之对应,是满射。
∣GLn(Zm)∣|GL_n(\mathbb Z_m)|∣GLn(Zm)∣
对于剩余类环Zm\mathbb Z_mZm,其中
m=p1e1p2e2⋯pses
m = p_1^{e_1}p_2^{e_2} \cdots p_s^{e_s}
m=p1e1p2e2⋯pses
我们证明了群同构:
GLn(Zm)≅GLn(Zp1e1)×GLn(Zp2e2)×⋯×GLn(Zpses)
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)
因此两者的大小相同,
∣GLn(Zm)∣=∣GLn(Zp1e1)∣×∣GLn(Zp2e2)∣×⋯×∣GLn(Zpses)∣
|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)∣
接下来我们计算GLn(Zpe)GL_n(\mathbb Z_{p^e})GLn(Zpe)的大小。
步骤一
对于素域Zp\mathbb Z_pZp,因为它是无零因子环,因此任意的非零向量vvv,向量组{v}\{v\}{v}是线性无关的。否则,存在a≠0a \neq 0a=0,使得a⋅v=0a \cdot v=0a⋅v=0;不失一般性的,令第一分量v[1]≠0v[1] \neq 0v[1]=0,那么a⋅v[1]=0a \cdot v[1]=0a⋅v[1]=0,这与无零因子环矛盾。
为了构造出Zp\mathbb Z_pZp上的一个可逆阵,这等价于在空间Zpn\mathbb Z_p^nZpn上挑选一个大小为nnn的线性无关向量组:
- 挑选第一个向量v1v_1v1,它除了不能是零向量。而其他的选择都可以令{v1}\{v_1\}{v1}是线性无关的,有pn−1p^n-1pn−1种选择
- 挑选第二个向量v2v_2v2,为了保持线性无关,它不能落在子空间Span({v1})Span(\{v_1\})Span({v1})内部。其他的选择都可以保持{v1,v2}\{v_1,v_2\}{v1,v2}是线性无关的,因此有pn−pp^n-ppn−p种选择
- 挑选第三个向量v2v_2v2,为了保持线性无关,它不能落在子空间Span({v1,v2})Span(\{v_1,v_2\})Span({v1,v2})内部。其他的选择都可以保持{v1,v2,v3}\{v_1,v_2,v_3\}{v1,v2,v3}是线性无关的,因此有pn−p2p^n-p^2pn−p2种选择
- 继续挑选其他向量,保持选出的向量组是线性无关的,直到选出nnn个向量。
因此,
∣GLn(Zp)∣=(pn−1)(pn−p)⋯(pn−pn−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)
步骤二
ϕ(pe)=pe−1(p−1)\phi(p^e) = p^{e-1}(p-1)ϕ(pe)=pe−1(p−1),因此环Zpe\mathbb Z_{p^e}Zpe中包含pe−1p^{e-1}pe−1个不可逆元素。实际上,这些不可逆元素都是ppp的倍数:
S={kp: k=0,1,⋯ ,pe−1−1}
S = \{kp:\, k=0,1,\cdots,p^{e-1}-1\}
S={kp:k=0,1,⋯,pe−1−1}
令Eij,i,j=1,⋯ ,nE_{ij},i,j=1,\cdots,nEij,i,j=1,⋯,n表示一个nnn阶方阵,它只有第iii行第jjj列的元素是111,其他位置都为000
我们将证明,所有的GLn(Zpe)GL_n(\mathbb Z_{p^e})GLn(Zpe)中的可逆阵A′A'A′都形如
A′=A+∑i,jsij⋅Eij, ∃A∈GLn(Zp), ∃sij∈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′∈GLn(Zpe)A' \in GL_n(\mathbb Z_{p^e})A′∈GLn(Zpe),它满足
(det(A′),pe)=1 (det(A'),p^e) = 1 (det(A′),pe)=1
易知
(det(A′),p)=1 (det(A'),p) = 1 (det(A′),p)=1
因此,选取矩阵A=A′mod pA = A' \mod pA=A′modp,再令A′−A=∑i,jsij⋅EijA' - A = \sum_{i,j} s_{ij} \cdot E_{ij}A′−A=∑i,jsij⋅Eij,容易验证:
A∈GLn(Zp) A \in GL_n(\mathbb Z_p) A∈GLn(Zp)
以及
∀i,j=1,⋯ ,n, sij∈S \forall i,j=1,\cdots,n,\,s_{ij} \in S ∀i,j=1,⋯,n,sij∈S -
证明“⇐\Leftarrow⇐”,
任取A∈GLn(Zp)A \in GL_n(\mathbb Z_p)A∈GLn(Zp),等价于det(A)∈Zp∗det(A) \in \mathbb Z_p^*det(A)∈Zp∗,也就是(det(A),p)=1(det(A),p)=1(det(A),p)=1
那么,构造Zpe\mathbb Z_{p^e}Zpe上矩阵
A′=A+∑i,jsij⋅Eij, ∀sij∈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∣sij\forall i,j,\, p|s_{ij}∀i,j,p∣sij,因此
det(A′)≡det(A′mod p)≡det(A)mod p det(A') \equiv det(A' \mod p) \equiv det(A) \mod p det(A′)≡det(A′modp)≡det(A)modp
从而
(det(A′),p)=(det(A),p)=1 (det(A'),p) = (det(A),p) = 1 (det(A′),p)=(det(A),p)=1
也就是A′A'A′的行列式与ppp互素,进一步可以得到
(det(A′),pe)=1 (det(A'),p^e) = 1 (det(A′),pe)=1
这等价于
A′∈GLn(Zpe) A' \in GL_n(\mathbb Z_{p^e}) A′∈GLn(Zpe)
因此,每存在111个A∈GLn(Zp)A \in GL_n(\mathbb Z_{p})A∈GLn(Zp),就存在∣S∣n2|S|^{n^2}∣S∣n2个A′∈GLn(Zpe)A' \in GL_n(\mathbb Z_{p^e})A′∈GLn(Zpe)与之对应,并且不重叠。即:
∣GLn(Zpe)∣=∣GLn(Zp)∣⋅∣S∣n2=∣GLn(Zp)∣⋅p(e−1)n2
|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
实例 - GLn(Z26)GL_n(\mathbb Z_{26})GLn(Z26)
由于m=21×131m = 2^1 \times 13^1m=21×131,因此有
GLn(Z26)≅GLn(Z2)×GLn(Z13)
GL_n(\mathbb Z_{26}) \cong GL_n(\mathbb Z_{2}) \times GL_n(\mathbb Z_{13})
GLn(Z26)≅GLn(Z2)×GLn(Z13)
群GLn(Z2)GL_n(\mathbb Z_{2})GLn(Z2)的大小为:
∣GLn(Z2)∣=(2n−1)(2n−2)⋯(2n−2n−1)×2(1−1)n2
|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
群GLn(Z13)GL_n(\mathbb Z_{13})GLn(Z13)的大小为:
∣GLn(Z13)∣=(13n−1)(13n−13)⋯(13n−13n−1)×13(1−1)n2
|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
得到:
∣GLn(Z26)∣=(2n−1)(2n−2)⋯(2n−2n−1)⋅(13n−1)(13n−13)⋯(13n−13n−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 加密方案的密钥空间大小。