格密码--数学基础--02基变换、幺模矩阵与 Hermite 标准形
02基变换、幺模矩阵与 Hermite 标准形
一、格的基变换与幺模矩阵
1. 基变换关系
格的两个基 B,C∈Rn×n\mathbf{B}, \mathbf{C} \in \mathbb{R}^{n \times n}B,C∈Rn×n 可通过幺模矩阵转换:
若 L(B)=L(C)\mathcal{L}(\mathbf{B}) = \mathcal{L}(\mathbf{C})L(B)=L(C)(生成同一格),则存在幺模矩阵 U∈Rn×n\mathbf{U}\in \mathbb{R}^{n\times n}U∈Rn×n (过渡矩阵的特殊情况)满足:
C=BU或B=CV
\mathbf{C} = \mathbf{B}\mathbf{U} \quad \text{或} \quad \mathbf{B} = \mathbf{C}\mathbf{V}
C=BU或B=CV
且行列式满足 ∣det(U)∣=1|\det(\mathbf{U})| = 1∣det(U)∣=1。
2. 幺模矩阵的定义与性质
-
定义:
幺模矩阵是行列式绝对值为 1 的整数方阵:
U∈Zn×n且∣det(U)∣=1 \mathbf{U} \in \mathbb{Z}^{n \times n} \quad \text{且} \quad |\det(\mathbf{U})| = 1 U∈Zn×n且∣det(U)∣=1 -
性质:
- 幺模矩阵的逆矩阵仍是幺模矩阵
- 幺模矩阵的乘积仍是幺模矩阵
3. 格相等的充要条件
两个基生成的格相等当且仅当:
L(B)=L(C) ⟺ ∃ 幺模矩阵 U 使得 B=CU
\mathcal{L}(\mathbf{B}) = \mathcal{L}(\mathbf{C}) \iff \exists\, \text{幺模矩阵}\ \mathbf{U}\ \text{使得}\ \mathbf{B} = \mathbf{C}\mathbf{U}
L(B)=L(C)⟺∃幺模矩阵 U 使得 B=CU
证明:
二、初等变换与幺模矩阵的等价性
1. 初等列变换的定义
包括三种基本操作:
- 交换两列
- 某一列乘以 ±1\pm 1±1
- 某一列加上另一列的整数倍
2. 性质
- 初等列变换不改变行列式的绝对值
- 幺模矩阵经初等列变换后仍为幺模矩阵
3. 等价性
幺模矩阵等价于一系列整数初等列变换的组合:
幺模矩阵 ⟺ 初等列变换的乘积
\text{幺模矩阵} \iff \text{初等列变换的乘积}
幺模矩阵⟺初等列变换的乘积
这类变换保持整数格点集 Zn\mathbb{Z}^nZn 不变且可逆。
三、Hermite 标准形(HNF)
1. 定义
矩阵 H∈Zn×n\mathbf{H} \in \mathbb{Z}^{n \times n}H∈Zn×n 为 HNF 当且仅当满足:
-
上三角结构:hij=0h_{ij} = 0hij=0 若 i>ji > ji>j
-
hii>0h_{ii} > 0hii>0
-
0≤hij<hii0 \leq h_{ij} < h_{ii}0≤hij<hii(对 i<ji < ji<j)
H=(h11h12h13⋯h1n0h22h23⋯h2n00h33⋯h3n⋮⋮⋮⋱⋮000⋯hnn) \mathbf{H} = \begin{pmatrix} h_{11} & h_{12} & h_{13} & \cdots & h_{1n} \\ 0 & h_{22} & h_{23} & \cdots & h_{2n} \\ 0 & 0 & h_{33} & \cdots & h_{3n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & h_{nn} \end{pmatrix} H=h1100⋮0h12h220⋮0h13h23h33⋮0⋯⋯⋯⋱⋯h1nh2nh3n⋮hnn
2. 定理
对任意非奇异整数矩阵 B∈Zn×n\mathbf{B} \in \mathbb{Z}^{n \times n}B∈Zn×n:存在唯一幺模矩阵 U\mathbf{U}U 使得:
B⋅U=H
\mathbf{B} \cdot \mathbf{U} = \mathbf{H}
B⋅U=H
其中 H\mathbf{H}H 为 HNF
3.HNF求解
定理:(HNF的构造核心)
行向量 v=[v1,v2,…,vn]\boldsymbol{v} = [v_1, v_2, \dots, v_n]v=[v1,v2,…,vn] 可以通过一系列初等列变换变形为 [0,0,…,gcd(v1,v2,…,vn)][0, 0, \dots, \gcd(v_1, v_2, \dots, v_n)][0,0,…,gcd(v1,v2,…,vn)]。
构造过程
此时已经保证了HNF的(1和2)两个条件
最后再通过对角元素进行化约(对角元的负数倍加上右侧比对角元大的元素,进行化约)从而满足条件三构造HNF
四、HNF 的作用
1. 判断格等价充要条件
两个矩阵生成同一格当且仅当它们的 HNF 相同:
L(B1)=L(B2) ⟺ HNF(B1)=HNF(B2)
\mathcal{L}(\mathbf{B}_1) = \mathcal{L}(\mathbf{B}_2) \iff \operatorname{HNF}(\mathbf{B}_1) = \operatorname{HNF}(\mathbf{B}_2)
L(B1)=L(B2)⟺HNF(B1)=HNF(B2)
2. 判断向量属格充要条件
向量 v∈L(B)\boldsymbol{v} \in \mathcal{L}(\mathbf{B})v∈L(B) 当且仅当:
∃ x∈Zn使得v=H⋅x
\exists\, \boldsymbol{x} \in \mathbb{Z}^n \quad \text{使得} \quad \boldsymbol{v} = \mathbf{H} \cdot \boldsymbol{x}
∃x∈Zn使得v=H⋅x
因 HNF 是上三角矩阵,可通过回代法快速求解。(先解第n个方程,结果带入解答第n-1个方程,依次往上带入,利用的就是H\mathbf{H}H上三角的性质)
3.HNF 是格的==“唯一指纹”==
每个格有唯一的 HNF 基,提供了标准化的格表示形式
4.计算复杂性警示
输入矩阵元素和范数即使很小,例如为多项式级时(如元素取自 {−1,0,1}\{-1, 0, 1\}{−1,0,1},列范数 ≤n\leq \sqrt{n}≤n),但是HNF 的列范数(欧几里得范数)可能指数级增长:∥hi∥2=2Ω(n)\|\boldsymbol{h_i}\|_2 = 2^{\Omega(n)}∥hi∥2=2Ω(n),即输出规模可能远大于输入