格密码学习笔记(五):对偶格
对偶空间
R mathbb{R} R上的向量空间 V V V满足以下2个性质:
- 向量加法操作 x + y ∈ V m{x} + m{y} in V x+y∈V;
- 标量乘法操作 a ⋅ x ∈ V a cdot m{x} in V a⋅x∈V。
线性空间里面有一个很重要的概念叫对偶空间(Dual Space)。具体可以参考
怎么形象地理解对偶空间(Dual Vector Space)? - 石在的回答 - 知乎
在 V V V上的线性泛函 ϕ phi ϕ是一个从 V V V到 R mathbb{R} R的线性映射,即 ϕ : V → R phi: V o mathbb{R} ϕ:V→R。一般而言,对于 x ∈ V m{x} in V x∈V,有 ϕ y ( x ) = ⟨ x , y ⟩ phi_{m{y}}(m{x}) = langle m{x}, m{y} angle ϕy(x)=⟨x,y⟩。
定义: V V V的对偶空间 V ∨ V^vee V∨是所有 ϕ phi ϕ构成的向量空间。
举一个例子:假想 x ∈ V m{x} in V x∈V是表示橘子的一个特征向量,每个维度/属性可以是维生素、糖分等,不同 x m{x} x表征不同橘子;线性泛函 y m{y} y每个维度规定维生素的价值、糖分的价值等, ⟨ x , y ⟩ langle m{x}, m{y} angle ⟨x,y⟩算出一个橘子的具体价格;若 y m{y} y固定而 x m{x} x变化,可以推算出特定规格标准下不同规格的橘子的价格;若 x m{x} x固定而 y m{y} y变化,可以推算出同一个橘子在不同规格标准下的价格。
对偶格
定义(对偶格,Dual Lattice) 记 Λ Lambda Λ为一个格, s p a n ( Λ ) mathrm{span}(Lambda) span(Λ)为该格张成的空间;记向量 x ∈ s p a n ( Λ ) m{x} in mathrm{span}(Lambda) x∈span(Λ),对所有格向量 ∀ v ∈ Λ forall m{v} in Lambda ∀v∈Λ, x m{x} x满足 ⟨ x , y ⟩ ∈ Z langle m{x}, m{y} angle in mathbb{Z} ⟨x,y⟩∈Z;所有可能的 x m{x} x构成 Λ Lambda Λ的对偶格 Λ ∨ Lambda^vee Λ∨。
张成的定义可以参考线性代数——线性组合、张成的空间与基。
以下图为例,它是一个整数格, ( Z n ) ∨ = Z n (mathbb{Z}^n)^vee = mathbb{Z}^n (Zn)∨=Zn。其中,黑色点为原来的格点,红色点为对应的对偶格点。
若对整数格加一个旋转,其对偶格为 ( R Λ ) ∨ = R ( Λ ∨ ) (m{R} Lambda)^vee = m{R}(Lambda^vee) (RΛ)∨=R(Λ∨)。原因:一个格向量发生了旋转,那么对偶格向量也必须旋转相同角度,才能保证向量乘积不变。
如果对格进行伸展,那么 ( q ⋅ Λ ) ∨ = 1 q ⋅ Λ ∨ (q cdot Lambda)^vee = frac{1}{q} cdot Lambda^vee (q⋅Λ)∨=q1⋅Λ∨。
格与对偶格之间有一些基本属性关系,如:
- Λ 1 ⊆ Λ 2 ⇔ Λ 1 ∨ ⊇ Λ 2 ∨ Lambda_1 subseteq Lambda_2 Leftrightarrow Lambda_1^vee supseteq Lambda_2^vee Λ1⊆Λ2⇔Λ1∨⊇Λ2∨
- ( Λ ∨ ) ∨ = Λ (Lambda^vee)^vee = Lambda (Λ∨)∨=Λ
整数格的对偶格比较好理解。但对于其它格,它们的对偶格看起来非常“混乱”,与原来的格没有太大的几何关系。例如,如果在原来的格上添加新的格点,由于定义中的约束关系: x ∈ Λ , y ∈ Λ ∨ , ⟨ x , y ⟩ ∈ Z m{x} in Lambda, m{y} in Lambda^vee, langle m{x}, m{y} angle in mathbb{Z} x∈Λ,y∈Λ∨,⟨x,y⟩∈Z,对偶格中的格点可能会减少。
在学习时,最好是把对偶格中每一个向量理解成一个“线性变换函数“,而不是一个几何意义上的格点。 仅需牢记 ⟨ x , y ⟩ ∈ Z langle m{x}, m{y} angle in mathbb{Z} ⟨x,y⟩∈Z即可,即格点和线性变换函数之间的运算。
格分层
对偶格 L ∨ mathcal{L}^vee L∨中的每个向量 v ∈ L ∨ m{v} in mathcal{L}^vee v∈L∨都能将格 L mathcal{L} L分割成诸多个正交于 v m{v} v的层。具体而言,选定对偶格中的一个点 v ∈ L ∨ m{v} in mathcal{L}^vee v∈L∨,然后让原本格中的所有点都与这个点相乘,把所有得到相同结果的格点都归为一层 L i L_i Li,即 L i = { x ∈ L : x ⋅ v = i } L_i = { m{x} in mathcal{L} : m{x} cdot m{v} = i } Li={x∈L:x⋅v=i}。
以下图为例,黑色点为原来的格点,红色点为对应的对偶格点。
取不同对偶向量会有不同划分法,层与层之间的距离与所选对偶向量的长度成反比,即 D i s t ( L i , L i + 1 ) = 1 ∥ v ∥ mathrm{Dist}(L_i, L_{i+1}) = frac{1}{| m{v} |} Dist(Li,Li+1)=∥v∥1。
注意:层与层之间不包含格点。 如果在两个分层之间放置一个超球体,这个超球体也不会包含任何格点,可以用来逼近原有格覆盖半径的下界,即 μ ( L ) ≥ 1 2 ∥ v ∥ mu(mathcal{L}) geq frac{1}{2 | m{v} |} μ(L)≥2∥v∥1。
如果对偶格的 λ 1 ( L ∨ ) lambda_1(mathcal{L}^vee) λ1(L∨)很小,那么原有格的覆盖半径 μ ( L ) mu(mathcal{L}) μ(L)会很大。
Banaszczyk定理
定理1 对于任意格 L mathcal{L} L,有 1 ≤ 2 λ 1 ( L ) ⋅ μ ( L ∨ ) ≤ n 1 leq 2lambda_1(mathcal{L}) cdot mu(mathcal{L}^vee) leq n 1≤2λ1(L)⋅μ(L∨)≤n。
定理2 对于任意 i i i,有 1 ≤ λ i ( L ) ⋅ λ n − i + 1 ( L ∨ ) ≤ n 1 leq lambda_i(mathcal{L}) cdot lambda_{n-i+1}(mathcal{L}^vee) leq n 1≤λi(L)⋅λn−i+1(L∨)≤n。
BDD问题规约至SIVP问题上
下图简要给出了如何将BDD问题规约到SIVP问题上。个人疑问:为什么要选取SIVP问题的解? 推测是因为层间距离与 ∥ v i ∥ | m{v}_i | ∥vi∥成反比,若不是挑选最短的基向量而是很长的向量的话,那么格划分的层数会非常多,导致计算复杂度极高。
这个算法以较大概率求解出BDD问题的解。如何判断这个概率呢?当满足 μ ( t , L ) ≤ λ 1 2 n ≤ 1 2 λ n ∨ ≤ 1 2 ∥ v i ∥ mu(m{t}, mathcal{L}) leq frac{lambda_1}{2n} leq frac{1}{2lambda_n^vee} leq frac{1}{2 | m{v}_i |} μ(t,L)≤2nλ1≤2λn∨1≤2∥vi∥1时,算法输出的解为正确解。
已知格基,如何求对偶格基
定理3 若格 L mathcal{L} L的基为 B m{B} B,那么 L ∨ mathcal{L}^vee L∨的基为 D = B ( B ⊤ B ) − 1 m{D} = m{B} (m{B}^ op m{B})^{-1} D=B(B⊤B)−1。
具体证明请参考:https://cseweb.ucsd.edu/classes/wi12/cse206A-a/LecDual.pdf
其它矩阵运算法则
致谢
- Simons格密码公开课官网
Mathematics of Lattices - Simons Institute for the Theory of Computing - 哔哩哔哩中英双语视频(字幕组:重庆大学大数据与软件学院 后量子密码研究小组)
【中英字幕】Simons格密码讲座第1讲:格的数学定义_哔哩哔哩_bilibili - 其它格密码讲解课程和博文
Lattice学习笔记03:Dual Lattice(对偶格)
公开学习资料的无私奉献者
相关文章
- EasyCVR对接华为iVS订阅摄像机和用户变更请求接口介绍
- 精选 | 腾讯云CDN内容加速场景有哪些?
- 模块化网络防止基于模型的多任务强化学习中的灾难性干扰
- 用搜索和注意力学习稳健的调度方法
- 用于多变量时间序列异常检测的学习图神经网络
- 助力政企自动化自然生长,华为WeAutomate RPA是怎么做到的?
- 使用腾讯轻量云搭建Fiora聊天室
- TSRC安全测试规范
- 云计算“功守道”
- 助力成本优化,腾讯全场景在离线混部系统Caelus正式开源
- Flink 利器:开源平台 StreamX 简介
- 腾讯云实践 | 一图揭秘腾讯碳中和?解决方案
- 深度学习中的轻量级网络架构总结与代码实现
- 信息系统项目管理师(高项复习笔记三)
- Adobe国际认证让科技赋能时尚
- c++该怎么学习(面试吃土记)
- 面试官问发布订阅模式是在问什么?
- 面试官:请实现一个通用函数把 callback 转成 promise
- 空中悬停、翻滚转身、成功着陆,我用强化学习「回收」了SpaceX的火箭
- 中山大学林倞解读视觉语义理解新趋势:从表达学习到知识及因果融合