格密码的基础概念

格密码的基础概念

  • 前言
  • 一.格的定义
  • 二. 格的延展空间
  • 三. 格的基本区
  • 四.格基的判定定理
  • 五. 格基的关系
  • 六. 格基的变换
  • 七. 格的行列式
  • 八. Gram-Schmidt正交化
  • 结论


前言

首先引入数学上的一个概念“格点”。怎么定义格点呢?格点是n维空间中的一组具有周期性结构的点,如下图所示(二维空间的“格”)。三维空间的“格点”可以出现在一些晶体中,就像一堆整齐叠放的橘子。历史上,从18世纪末开始,拉格朗日、高斯以及后来的闵可夫斯基等数学家就开始研究“格”这个概念。
格密码的基础概念_第1张图片
近几年,“格”已经成为计算机科学领域中研究的热点性问题之一。“格”可以看成解决安全问题的算法工具;结合计算复杂性,“格”在密码学和密码分析中应用广泛。

一.格的定义

给定n维空间中一组线性无关向量,其整系数组合构成的集合称为格。
请添加图片描述
此处的 ( b 1 , ⋯   , b n ) (b_1,\cdots,b_n) (b1,,bn)定义为格基。同一个格可以由多组不同的格基生成。 b 1 , ⋯   , b n ∈ b_1,\cdots,b_n\in b1,,bn R m R^m Rm,此处如果m=n,则称该“格”满秩。因为格是否满秩对它的性质研究影响不大,所以通常研究满秩的格。
举例:
格基 ( 1 , 0 ) T (1,0)^T (1,0)T ( 0 , 1 ) T (0,1)^T (0,1)T可以产生二维空间的所有整数格。如下图:
格密码的基础概念_第2张图片
能产生二维空间的所有整数格的格基不唯一,还可以是: ( 1 , 1 ) T 与 ( 2 , 1 ) T , ( 2021 , 1 ) T 与 ( 1 , 2022 ) T (1,1)^T与(2,1)^T,(2021,1)^T与(1,2022)^T (1,1)T(2,1)T(2021,1)T1,2022)T,如下图:
格密码的基础概念_第3张图片
格基 ( 1 , 1 ) T (1,1)^T (1,1)T ( 2 , 0 ) T (2,0)^T (2,0)T不能产生二维空间的所有整数格。如下图打“×”的为可产生的格,横纵坐标相加为偶数:
格密码的基础概念_第4张图片

二. 格的延展空间

格基实系数组合生成的空间称为格的延展空间。(区别于前面定义的整数)
s p a n ( L ( B ) ) = s p a n ( B ) = { B a ∣ a ∈ R n } span(L(B))=span(B)=\lbrace Ba|a\in R^n\rbrace span(L(B))=span(B)={BaaRn}
格的延展空间是整个n维空间的前提:

要 求 为 满 秩 格 要求为满秩格

三. 格的基本区

格基在[0,1)中实系数组合生成的空间,称为格的基本区。
P ( B ) = { B a ∣ a ∈ R n , 0 ≤ a i < 1 } P(B)=\lbrace Ba|a\in R^n,0\leq a_i<1\rbrace P(B)={BaaRn,0ai<1}
如果将格基 ( 1 , 1 ) T (1,1)^T (1,1)T ( 2 , 0 ) T (2,0)^T (2,0)T基本区平移放置在每个格点上,就可以形成此格的延展空间 s p a n ( L ( B ) ) span(L(B)) span(L(B)),如下图:
格密码的基础概念_第5张图片

四.格基的判定定理

秩为n的格 Λ \Lambda Λ上线性无关的向量组 B = b 1 , ⋅ ⋅ ⋅ b n B=b_1,···b_n B=b1,bn为格 Λ \Lambda Λ的基,当且仅当: P ( B ) ∩ Λ = { 0 } P(B)\cap\Lambda=\lbrace0\rbrace P(B)Λ={0}
证 明 方 法 \color{red}{证明方法}
(1)证明充分性:当线性无关的向量组 B = b 1 , ⋅ ⋅ ⋅ b n B=b_1,···b_n B=b1,bn为格 Λ \Lambda Λ的基时, P ( B ) ∩ Λ = { 0 } P(B)\cap\Lambda=\lbrace0\rbrace P(B)Λ={0}
b 1 , ⋯   , b n b_1,\cdots,b_n b1,,bn Λ \Lambda Λ的格基时,格点可以由它们的整数线性组合形成。因为 P ( b 1 , ⋯   , b n ) P(b_1,\cdots,b_n) P(b1,,bn)定义为该格基的小于1的小数线性组合,所以很明显二者的交集为空集(或者理解成仅有原点重合)。
充分性证明完毕
(2)证明必要性:当 P ( B ) ∩ Λ = { 0 } P(B)\cap\Lambda=\lbrace0\rbrace P(B)Λ={0},线性无关的向量组 B = b 1 , ⋅ ⋅ ⋅ b n B=b_1,···b_n B=b1,bn为格 Λ \Lambda Λ的基。
因为 Λ \Lambda Λ为秩为n的格点,且 b 1 , ⋅ ⋅ ⋅ b n b_1,···b_n b1,bn是线性独立的,可以取 y i ∈ R y_i\in R yiR,使得 x = ∑ y i b i ∈ Λ x=\sum y_ib_i\in \Lambda x=yibiΛ,因为格在加减法运算里面是封闭的,所以 x ′ = ∑ ( y i − ⌊ y i ⌋ ) b i x'=\sum (y_i-\lfloor y_i\rfloor)b_i x=(yiyi)bi也形成格点。根据条件该格点只能为原点,所以 y i y_i yi必定为整数。
将此过程的推导形成逻辑公式如下:
格密码的基础概念_第6张图片

五. 格基的关系

当给出两组格基 B 1 , B 2 B_1,B_2 B1,B2,如何判断它们产生的格是一样的呢,也就是 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2)吗?
B 1 , B 2 B_1,B_2 B1,B2为同一个格的格基,当且仅当存在幺模矩阵U,满足 B 1 = B 2 U B_1=B_2U B1=B2U
证明充分性过程如下:
已知 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2),得出 B 2 = B 1 U , U 为 幺 模 矩 阵 B_2=B_1U,U为幺模矩阵 B2=B1U,U
因为 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2),所以 B 2 B_2 B2中的每一列 b i b_i bi都有, b i ∈ L ( B 1 ) b_i\in L(B_1) biL(B1),这表明必定存在一个整数矩阵 U ∈ Z n × n U\in Z^{n\times n} UZn×n,使得 B 2 = B 1 U B_2=B_1U B2=B1U。同理,也存在 V ∈ Z n × n V\in Z^{n\times n} VZn×n,使得 B 1 = B 2 V B_1=B_2V B1=B2V
所以可得:
B 2 = B 1 U = B 2 V U B_2=B_1U=B_2VU B2=B1U=B2VU
将其转置,得到:
B 2 T = ( V U ) T B 2 T B_2^T=(VU)^TB_2^T B2T=(VU)TB2T
两式相乘:
B 2 T B 2 = ( V U ) T B 2 T ( V U ) B_2^TB_2=(VU)^TB_2^T(VU) B2TB2=(VU)TB2T(VU)
转置矩阵和原矩阵行列式相等,可得:
B 2 T B 2 = ( d e t ( U V ) ) 2 d e t ( B 2 T B 2 ) B_2^TB_2=(det(UV))^2det(B_2^TB_2) B2TB2=(det(UV))2det(B2TB2)
矩阵相乘再求行列式,和分别求行列式再相乘,结果是一样的,所以:
d e t ( V ) d e t ( U ) = ± 1 det(V)det(U)=\pm 1 det(V)det(U)=±1
因为U和V均为整数矩阵,所以可得:
d e t ( U ) = d e t ( V ) = ± 1 det(U)=det(V)=\pm 1 det(U)=det(V)=±1
将上述推导过程形成一起,如下:
格密码的基础概念_第7张图片
证明必要性过程如下:
已知 B 2 = B 1 U , U 为 幺 模 矩 阵 B_2=B_1U,U为幺模矩阵 B2=B1U,U,得出 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2)
依据 B 2 = B 1 U B_2=B_1U B2=B1U,所以 B 2 B_2 B2的每一列都包含在 L ( B 1 ) L(B_1) L(B1)中,所以 L ( B 1 ) L(B_1) L(B1) ⊆ \subseteq L ( B 2 ) (B_2) (B2)。依据幺模矩阵的性质, B 1 = B 2 U − 1 , B_1=B_2U^{-1}, B1=B2U1同理可得 L ( B 2 ) L(B_2) L(B2) ⊆ \subseteq L ( B 1 ) (B_1) (B1)。所以 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2)
提 示 : 行 列 式 等 于 ± 1 的 方 阵 称 为 幺 模 矩 阵 , 幺 模 矩 阵 的 逆 依 旧 为 幺 模 矩 阵 。 \color{red}{提示:行列式等于\pm1的方阵称为幺模矩阵,幺模矩阵的逆依旧为幺模矩阵。} ±1
如 果 学 过 群 环 域 的 知 识 的 话 , 幺 模 矩 阵 在 乘 法 运 算 下 , 形 成 群 的 概 念 。 \color{red}{如果学过群环域的知识的话,幺模矩阵在乘法运算下,形成群的概念。}
此 处 矩 阵 乘 法 的 相 关 性 质 略 。 \color{red}{此处矩阵乘法的相关性质略。}
推论1:矩阵B是 Z n Z^n Zn的格基,当且仅当它为幺模矩阵。
推论2:若属于同一个格,则两组基可以相互整系数表示

六. 格基的变换

B 1 , B 2 B_1,B_2 B1,B2为同一个格的基,当且仅当可以通过下述变换进行转换:
格密码的基础概念_第8张图片
根据行列式的性质,上式中的变换对应的变换矩阵的行列式为 ± 1 \pm1 ±1

七. 格的行列式

Λ = L ( B ) \Lambda=L(B) Λ=L(B)的行列式定义为 d e t ( Λ ) = d e t ( B T B ) 2 det(\Lambda)=\sqrt[2]{det(B^TB)} det(Λ)=2det(BTB)
Λ \Lambda Λ满秩时,矩阵B为方阵,格 Λ = L ( B ) \Lambda=L(B) Λ=L(B)的行列式直接为为 d e t ( Λ ) = ∣ d e t ( B ) ∣ det(\Lambda)=|det(B)| det(Λ)=det(B)
推 论 1 \color{green}推论1 1:格的行列式与具体基无关。证明如下:
假定 B 1 与 B 2 B_1与B_2 B1B2为格 Λ \Lambda Λ的两组不同格基,依据定义六 B 2 = B 1 U , U 为 幺 模 矩 阵 B_2=B_1U,U为幺模矩阵 B2=B1U,U。可得如下变换:
请添加图片描述
推 论 2 \color{green}推论2 2:格行列式的大小与格点的密度成反比。在格的延展空间中取一个n维的球K,球内格点数与 v o l ( K ) d e t ( Λ ) \frac{vol(K)}{det(\Lambda)} det(Λ)vol(K)成正比例,其中vol(K)为n维球K的体积。
推 论 3 \color{green}推论3 3:格的行列式等于格的基本区面积,与具体基无关

八. Gram-Schmidt正交化

8.1 介绍
在线性代数中,Gram-Schmidt正交化是将n个线性独立的向量转变成n对正交向量。原理就是将每一个向量都正交投影到其他向量的空间维度上,以二维空间为例,如下:
格密码的基础概念_第9张图片
由此,对于一组线性无关向量 B = b 1 , … , b n B=b_1,\dots,b_n B=b1,,bn,其Gram-Schmidt正交化定义为如下:
格密码的基础概念_第10张图片
其中, b i ~ \tilde{b_i} bi~ b i b_i bi垂直于 b 1 ~ , … , b i − 1 ~ \tilde{b_1},\ldots,\widetilde{b_{i-1}} b1~,,bi1 的部分。
推 论 1 \color{blue}推论1 1 若 i ≠ 若i\neq i= j j j,则 < b i ~ , b j ~ > = 0 <\tilde{b_i},\tilde{b_j}>=0 <bi~,bj~>=0
推 论 2 \color{blue}推论2 2:对于 1 ≤ 1\leq 1 i ≤ i\leq i n n n,延展空间 s p a n ( b 1 , … , b i ) = s p a n ( b 1 ~ , … , b i ~ ) span(b_1,\ldots,b_i)=span(\tilde{b_1},\ldots,\tilde{b_i}) span(b1,,bi)=span(b1~,,bi~)
推 论 3 \color{blue}推论3 3:向量 b 1 ~ , … , ~ b n \tilde{b_1},\dots,\tilde{}b_n b1~,,~bn一般不是格 L ( b 1 , … , b n ) L(b_1,\dots,b_n) L(b1,,bn)的格基,甚至一般都不在格上。
推 论 4 \color{blue}推论4 4 b 1 , ⋯   , b n b_1,\cdots,b_n b1,,bn的向量顺序不同,得到的 b 1 ~ , ⋯   , b n ~ \tilde{b_1},\cdots,\tilde{b_n} b1~,,bn~也不同。所以通常将这些向量类比为数列而不是集合。

8.2 应用
给定n个线性无关向量如下:
b 1 , ⋯   , b n ∈ R m b_1,\cdots,b_n\in R^m b1,,bnRm
进一步形成正交基,如下:
b ~ 1 ∣ ∣ b ~ 1 ∣ ∣ , ⋯   , b ~ n ∣ ∣ b ~ n ∣ ∣ \frac{\tilde b_1}{||\tilde b_1||},\cdots,\frac{\tilde b_n}{||\tilde b_n||} b~1b~1,,b~nb~n
由此,原n个线性无关向量可以表示成如下 m × n m\times n m×n矩阵:
格密码的基础概念_第11张图片

如果m=n,该矩阵将为一个正上三角矩阵。

由此,该格的基本区体积和格的行列式可计算如下:
v o l ( P ( b 1 , ⋯   , b n ) ) = d e t ( L ( b 1 , ⋯   , b n ) ) = ∏ i = 1 n ∣ ∣ b ~ i ∣ ∣ vol(P(b_1,\cdots,b_n))=det(L(b_1,\cdots,b_n))=\prod_{i=1}^n||\tilde b_i|| vol(P(b1,,bn))=det(L(b1,,bn))=i=1nb~i
所以正交化后的结果将更加方便计算上式子。

结论

本文可解决的问题:

  1. 同一个格可以有多少组不同的基?
  2. 格的延展空间总是整个n维空间吗?
  3. 在同一个格中,不同格基生成的基本区相同吗?不同的基本区之间有什么关系?
  4. 如何判断B是否为格 Λ \Lambda Λ的基?
  5. 根据格的定义,若属于同一个格,则两组基有什么关系?
  6. 根据行列式的性质,格基在变换时,对应的变化矩阵需要满足什么条件?
  7. 格的行列式等于格基本区的面积,与具体基的选择有关系吗?

格密码的应用领域广泛。
格密码的基础概念_第12张图片
格密码与普通密码算法相比,优势众多。
格密码的基础概念_第13张图片

你可能感兴趣的:(格密码,线性代数,机器学习,人工智能,同态加密)