剩余类环上可逆矩阵的计数

G L n ( Z m ) GL_n(\mathbb Z_m) GLn(Zm)

m ∈ N + m \in \mathbb N^+ mN+是任意正整数,利用数论基本定理,可以写作
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=p1e1p2e2pses
其中 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^* AGLn(Zm)det(A)Zm
也就是说,矩阵 A A A是可逆阵,当仅当它的行列式 Z m \mathbb Z_m Zm乘法可逆

Proof:

  1. 证明“ ⇒ \Rightarrow ”,

    对于一个 A ∈ Z m n × n A \in \mathbb Z_m^{n \times n} AZmn×n,如果 A ∈ G L n ( Z m ) A \in GL_n(\mathbb Z_m) AGLn(Zm),总存在一个 B ∈ Z m n × n B \in \mathbb Z_m^{n \times n} BZmn×n,使得
    A B = B A = I n ∈ Z m n × n AB = BA = I_n \in \mathbb Z_m^{n \times n} AB=BA=InZmn×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)

  2. 证明“ ⇐ \Leftarrow ”,

    对于一个 A ∈ Z m n × n A \in \mathbb Z_m^{n \times n} AZmn×n,如果 d e t ( A ) ∈ Z m ∗ det(A) \in \mathbb Z_m^* det(A)Zm,那么总存在一个 b ∈ Z m b \in \mathbb Z_m bZm,使得
    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=bdet(A)=1Zm
    构造 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=AA=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 (bA)A=A(bA)=(bdet(A))In=In
    从而 A A A可逆,且 A − 1 = b ⋅ A ∗ A^{-1} = b \cdot A^* A1=bA

步骤二

然后,我们证明存在如下的群同构
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)
我们将证明它是双射。

  1. 证明是单的,

    对于任意的 A , B ∈ G L n ( Z m ) A,B \in GL_n(\mathbb Z_m) A,BGLn(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,ABmodpkek
    等价于
    ∀ 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,AijBij0modpkek
    那么
    ∀ 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,AijBij0modm
    也就是
    A ≡ B m o d    m A \equiv B \mod m ABmodm
    这与假设矛盾。因此,只要两个原像不同,它们的像就不同,是单射。

  2. 证明是满的,

    对于任意的
    ( 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} AZmn×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)modpkekdet(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) AGLn(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=p1e1p2e2pses
我们证明了群同构:
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 av=0;不失一般性的,令第一分量 v [ 1 ] ≠ 0 v[1] \neq 0 v[1]=0,那么 a ⋅ v [ 1 ] = 0 a \cdot v[1]=0 av[1]=0,这与无零因子环矛盾。

为了构造出 Z p \mathbb Z_p Zp上的一个可逆阵,这等价于在空间 Z p n \mathbb Z_p^n Zpn上挑选一个大小为 n n n的线性无关向量组:

  1. 挑选第一个向量 v 1 v_1 v1,它除了不能是零向量。而其他的选择都可以令 { v 1 } \{v_1\} {v1}是线性无关的,有 p n − 1 p^n-1 pn1种选择
  2. 挑选第二个向量 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 pnp种选择
  3. 挑选第三个向量 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 pnp2种选择
  4. 继续挑选其他向量,保持选出的向量组是线性无关的,直到选出 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)=(pn1)(pnp)(pnpn1)

步骤二

ϕ ( p e ) = p e − 1 ( p − 1 ) \phi(p^e) = p^{e-1}(p-1) ϕ(pe)=pe1(p1),因此环 Z p e \mathbb Z_{p^e} Zpe中包含 p e − 1 p^{e-1} pe1个不可逆元素。实际上,这些不可逆元素都是 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,,pe11}
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,jsijEij,AGLn(Zp),sijS

  1. 证明“ ⇒ \Rightarrow ”,

    任取 A ′ ∈ G L n ( Z p e ) A' \in GL_n(\mathbb Z_{p^e}) AGLn(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=Amodp,再令 A ′ − A = ∑ i , j s i j ⋅ E i j A' - A = \sum_{i,j} s_{ij} \cdot E_{ij} AA=i,jsijEij,容易验证:
    A ∈ G L n ( Z p ) A \in GL_n(\mathbb Z_p) AGLn(Zp)
    以及
    ∀ i , j = 1 , ⋯   , n ,   s i j ∈ S \forall i,j=1,\cdots,n,\,s_{ij} \in S i,j=1,,n,sijS

  2. 证明“ ⇐ \Leftarrow ”,

    任取 A ∈ G L n ( Z p ) A \in GL_n(\mathbb Z_p) AGLn(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,jsijEij,sijS
    由于 ∀ i , j ,   p ∣ s i j \forall i,j,\, p|s_{ij} i,j,psij,因此
    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(Amodp)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}) AGLn(Zpe)

因此,每存在 1 1 1 A ∈ G L n ( Z p ) A \in GL_n(\mathbb Z_{p}) AGLn(Zp)就存在 ∣ S ∣ n 2 |S|^{n^2} Sn2 A ′ ∈ G L n ( Z p e ) A' \in GL_n(\mathbb Z_{p^e}) AGLn(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)Sn2=GLn(Zp)p(e1)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)=(2n1)(2n2)(2n2n1)×2(11)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)=(13n1)(13n13)(13n13n1)×13(11)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)=(2n1)(2n2)(2n2n1)(13n1)(13n13)(13n13n1)
这就是 Hill 加密方案的密钥空间大小。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值