格密码的基础概念
前言
首先引入数学上的一个概念“格点”。怎么定义格点呢?格点是n维空间中的一组具有周期性结构的点,如下图所示(二维空间的“格”)。三维空间的“格点”可以出现在一些晶体中,就像一堆整齐叠放的橘子。历史上,从18世纪末开始,拉格朗日、高斯以及后来的闵可夫斯基等数学家已经开始研究“格”这个概念。
近几年,“格”已经成为计算机科学领域中研究的热点性问题之一。“格”可以看成解决安全问题的算法工具;结合计算复杂性,“格”在密码学和密码分析中应用广泛。
一.格的定义
给定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可以产生二维空间的所有整数格。如下图:
能产生二维空间的所有整数格的格基不唯一,还可以是:
(
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)T与(1,2022)T,如下图:
格基
(
1
,
1
)
T
(1,1)^T
(1,1)T与
(
2
,
0
)
T
(2,0)^T
(2,0)T不能产生二维空间的所有整数格。如下图打“×”的为可产生的格,横纵坐标相加为偶数:
二. 格的延展空间
格基实系数组合生成的空间为延展空间。(区别于前面定义的整数)
三. 格的基本区
格基在[0,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)),如下图:
四.格基的判断定理
秩为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}{证明方法}
证明方法:依据格的定义可得。
类推逆定理也对。
五. 格基的关系
当给出两组格基
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
证明充分性过程如下:
证明必要性:已知
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)。依据幺模矩阵的性质,同理可得
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}{此处矩阵乘法的相关性质略。}
此处矩阵乘法的相关性质略。
推论1:矩阵B是
Z
n
Z^n
Zn的格基,当且仅当它为幺模矩阵。
推论2:若属于同一个格,则两组基可以相互整系数表示
六. 格基的变换
B
1
,
B
2
B_1,B_2
B1,B2为同一个格的基,当且仅当可以通过下述变换进行转换:
根据行列式的性质,上式中的变换对应的变换矩阵的行列式为
±
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)的行列式直接为为KaTeX parse error: Expected 'EOF', got '}' at position 22: …ambda)=|det(B)|}̲。
推
论
1
\color{green}推论1
推论1:格的行列式与具体基无关。证明如下:
假定
B
1
与
B
2
B_1与B_2
B1与B2为格
Λ
\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正交化
在线性代数中,Gram-Schmidt正交化是将n个线性独立的向量产生n个正交向量。原理就是将每一个向量都正交投影到其他剩余向量的空间维度上,以二维空间为例,如下:
由此,对于一组线性无关向量
B
=
b
1
,
…
,
b
n
B=b_1,\dots,b_n
B=b1,…,bn,其Gram-Schmidt正交化定义为如下:
其中,
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~,…,bi−1
的部分。
推
论
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
的
向
量
顺
序
不
同
,
得
到
的
B
~
\bf{B}的向量顺序不同,得到的\tilde{B}
B的向量顺序不同,得到的B~也不同。所以通常将这些向量类比为数列而不是集合。
结论
格密码的应用领域广泛。
格密码与普通密码算法相比,优势众多。