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


    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 加密方案的密钥空间大小。

  • 相关阅读:
    【Excel函数】Vlookup的函数的使用
    网工知识角|在LSA中Seq序列号起什么作用
    elementui 弹窗展示自动校验表单项bug
    C++之通过地址访问私有成员变量
    python面试题合集(一)
    MySQL——连接查询与子查询
    Jenkins项目中有中文文件出错处理
    美食节目:视觉盛宴如何唤醒沉睡的食欲
    CPU眼里的C/C++:1.2 查看变量和函数在内存中的存储位置
    c语言内功修炼--深度剖析数据的存储
  • 原文地址:https://blog.csdn.net/weixin_44885334/article/details/126847686