当前位置: 首页 > news >正文

格密码--数学基础--08最近向量问题(CVP)与格陪集

最近向量问题(CVP)与格陪集

  1. CVP定义
    给定格 Λ=L(B)\boldsymbol{\Lambda} = \mathcal{L}(\boldsymbol{B})Λ=L(B) 和目标向量 t\boldsymbol{t}t不一定属于格Λ\LambdaΛ),求解:
    v∈Λ使∥v−t∥=min⁡ \boldsymbol{v} \in \boldsymbol{\Lambda} \quad \text{使} \quad \|\boldsymbol{v} - \boldsymbol{t}\| = \min vΛ使vt=min
    γ\gammaγ-近似解:∥v−t∥≤γ⋅dist(t,Λ)\|\boldsymbol{v} - \boldsymbol{t}\| \leq \gamma \cdot \text{dist}(\boldsymbol{t}, \boldsymbol{\Lambda})vtγdist(t,Λ)

  2. 格陪集

    定义:t+Λ={t+v∣v∈Λ}\boldsymbol{t} + \boldsymbol{\Lambda} = \{ \boldsymbol{t} + \boldsymbol{v} \mid \boldsymbol{v} \in \boldsymbol{\Lambda} \}t+Λ={t+vvΛ}

    陪集不是格(无零元素)

    CVP等价形式
    min⁡v∈Λ∥v−t∥=min⁡w∈t+Λ∥w∥ \min_{\boldsymbol{v} \in \boldsymbol{\Lambda}} \|\boldsymbol{v} - \boldsymbol{t}\| = \min_{\boldsymbol{w} \in \boldsymbol{t} + \boldsymbol{\Lambda}} \|\boldsymbol{w}\| vΛminvt=wt+Λminw
    a796ea4547290a275fcd9e3a55c3f77e
    格(黑色)与格的陪集(红色)

  3. 校验子定理
    D\boldsymbol{D}DΛ^\widehat{\boldsymbol{\Lambda}}Λ 的基,则:
    e∈t+Λ  ⟺  {DTe≡DTt(mod1)e∈t+span(Λ) \boldsymbol{e} \in \boldsymbol{t} + \boldsymbol{\Lambda} \iff \begin{cases} \boldsymbol{D}^T \boldsymbol{e} \equiv \boldsymbol{D}^T \boldsymbol{t} \pmod{1} \\ \boldsymbol{e} \in \boldsymbol{t} + \text{span}(\boldsymbol{\Lambda}) \end{cases} et+Λ{DTeDTt(mod1)et+span(Λ)

    • 校验子(DTt)mod  1∈[0,1)k(\boldsymbol{D}^T \boldsymbol{t}) \mod 1 \in [0,1)^k(DTt)mod1[0,1)k 唯一标识陪集

      其中t+Λ\boldsymbol{t}+\Lambdat+Λ表示将原格沿着t\boldsymbol{t}t方向进行平移
      证明过程需要用到:
      DTl∈ZnD^T\boldsymbol{l}\in\mathbb{Z}^nDTlZn对所有的l∈Λ\boldsymbol{l}\in\LambdalΛ成立(因为bi⋅l∈Z\boldsymbol{b_i}\cdot \boldsymbol{l} \in \mathbb{Z}bilZ

证明:
必要性(⇒\Rightarrow

假设 e∈t+Λ\boldsymbol{e} \in \boldsymbol{t} + \Lambdaet+Λ,则存在 l∈Λ\boldsymbol{l} \in \LambdalΛ 使得 e=t+l\boldsymbol{e} = \boldsymbol{t} + \boldsymbol{l}e=t+l
计算 DTe\boldsymbol{D}^T \boldsymbol{e}DTe
DTe=DT(t+l)=DTt+DTl. \boldsymbol{D}^T \boldsymbol{e} = \boldsymbol{D}^T (\boldsymbol{t} + \boldsymbol{l}) = \boldsymbol{D}^T \boldsymbol{t} + \boldsymbol{D}^T \boldsymbol{l}. DTe=DT(t+l)=DTt+DTl.
根据对偶格的性质,DTl∈Zk\boldsymbol{D}^T \boldsymbol{l} \in \mathbb{Z}^kDTlZk(06中有提到这个性质)。因此:
DTe≡DTt(mod1). \boldsymbol{D}^T \boldsymbol{e} \equiv \boldsymbol{D}^T \boldsymbol{t} \pmod{1}. DTeDTt(mod1).

由于 l∈Λ⊆span(Λ)\boldsymbol{l} \in \Lambda \subseteq \text{span}(\Lambda)lΛspan(Λ),显然 e=t+l∈t+span(Λ)\boldsymbol{e} = \boldsymbol{t} + \boldsymbol{l} \in \boldsymbol{t} + \text{span}(\Lambda)e=t+lt+span(Λ)

充分性(⇐\Leftarrow

假设 e\boldsymbol{e}e 满足两个条件:

  1. DTe≡DTt(mod1)\boldsymbol{D}^T \boldsymbol{e} \equiv \boldsymbol{D}^T \boldsymbol{t} \pmod{1}DTeDTt(mod1)
  2. e∈t+span(Λ)\boldsymbol{e} \in \boldsymbol{t} + \text{span}(\Lambda)et+span(Λ)

需证明 e∈t+Λ\boldsymbol{e} \in \boldsymbol{t} + \Lambdaet+Λ

  1. 由几何条件,存在 v∈span(Λ)\boldsymbol{v} \in \text{span}(\Lambda)vspan(Λ) 使得 e=t+v\boldsymbol{e} = \boldsymbol{t} + \boldsymbol{v}e=t+v
    目标是证明 v∈Λ\boldsymbol{v} \in \LambdavΛ
  2. 代入 e=t+v\boldsymbol{e} = \boldsymbol{t} + \boldsymbol{v}e=t+v 到代数条件中:

DTe=DT(t+v)=DTt+DTv. \boldsymbol{D}^T \boldsymbol{e} = \boldsymbol{D}^T (\boldsymbol{t} + \boldsymbol{v}) = \boldsymbol{D}^T \boldsymbol{t} + \boldsymbol{D}^T \boldsymbol{v}. DTe=DT(t+v)=DTt+DTv.

根据条件,DTe≡DTt(mod1)\boldsymbol{D}^T \boldsymbol{e} \equiv \boldsymbol{D}^T \boldsymbol{t} \pmod{1}DTeDTt(mod1),故:
DTv≡0(mod1). \boldsymbol{D}^T \boldsymbol{v} \equiv \boldsymbol{0} \pmod{1}. DTv0(mod1).
DTv\boldsymbol{D}^T \boldsymbol{v}DTv 的每个分量均为整数,记为 DTv=k∈Zk\boldsymbol{D}^T \boldsymbol{v} = \boldsymbol{k} \in \mathbb{Z}^kDTv=kZk

  1. B\boldsymbol{B}BΛ\LambdaΛ 的基矩阵,则 v∈span(Λ)\boldsymbol{v} \in \text{span}(\Lambda)vspan(Λ) 可表示为 v=Bc\boldsymbol{v} = \boldsymbol{B} \boldsymbol{c}v=Bc,其中 c∈Rk\boldsymbol{c} \in \mathbb{R}^kcRk
    根据对偶基的定义,DTB=Ik\boldsymbol{D}^T \boldsymbol{B} = \boldsymbol{I}_kDTB=Ik(单位矩阵),因此:

DTv=DT(Bc)=(DTB)c=Ikc=c. \boldsymbol{D}^T \boldsymbol{v} = \boldsymbol{D}^T (\boldsymbol{B} \boldsymbol{c}) = (\boldsymbol{D}^T \boldsymbol{B}) \boldsymbol{c} = \boldsymbol{I}_k \boldsymbol{c} = \boldsymbol{c}. DTv=DT(Bc)=(DTB)c=Ikc=c.

结合 DTv=k∈Zk\boldsymbol{D}^T \boldsymbol{v} = \boldsymbol{k} \in \mathbb{Z}^kDTv=kZk,得 c=k∈Zk\boldsymbol{c} = \boldsymbol{k} \in \mathbb{Z}^kc=kZk

  1. 由于 c∈Zk\boldsymbol{c} \in \mathbb{Z}^kcZk,向量 v=Bc\boldsymbol{v} = \boldsymbol{B} \boldsymbol{c}v=Bc 是基矩阵 B\boldsymbol{B}B 的整数线性组合,因此 v∈Λ\boldsymbol{v} \in \LambdavΛ
    从而 e=t+v∈t+Λ\boldsymbol{e} = \boldsymbol{t} + \boldsymbol{v} \in \boldsymbol{t} + \Lambdae=t+vt+Λ
http://www.dtcms.com/a/276749.html

相关文章:

  • Mentor软件模块复杂,如何分角色授权最合理?
  • 【PTA数据结构 | C语言版】阶乘的递归实现
  • 串口屏的小记哦
  • 鸿蒙进程通信的坑之ServiceExtensionAbility
  • Datomic数据库简介(TBC)
  • Ntfs!LfsFlushLfcb函数分析之Ntfs!_LFCB->LbcbWorkque的背景分析3个restart页面一个普通页面的一个例子
  • 如何在IEEETrans格式的latex标题页插入图像
  • CCS-MSPM0G3507-4-基础篇-串口通讯-实现收和发
  • Java SE--抽象类和接口
  • 面试150 对称二叉树
  • Waiting for server response 和 Content Download
  • 嵌入式程序调试工具
  • 《人件》阅读笔记
  • 【Flask】基础入门
  • 华为业务变革项目IPD基本知识
  • nodejs获取可用cpu数
  • 前端弹性布局全解析
  • 20250712-2-Kubernetes 应用程序生命周期管理-部署应用的流程_笔记
  • PyVision:基于动态工具的具身智能体
  • 剑指offer——队列栈:用两个栈实现队列
  • 模型驱动的架构MDA的案例
  • 如何配置pip使用国内镜像?
  • 2D转换综合写法顺序,以及注意事项
  • 【理念●体系】模板规范篇:打造可标准化复用的 AI 项目骨架
  • 68 指针的减法操作
  • C语言文件读操作详解:使用fgets函数实现安全的按行读取
  • 在YOLO-World中集成DeformConv、CBAM和Cross-Modal Attention模块的技术报告
  • 进制转换算法详解及应用
  • 红旗新能源车:驾驭梦想,驶向未来
  • TDengine 使用最佳实践(1)