格密码--数学基础--08最近向量问题(CVP)与格陪集
最近向量问题(CVP)与格陪集
-
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∈Λ使∥v−t∥=min
γ\gammaγ-近似解:∥v−t∥≤γ⋅dist(t,Λ)\|\boldsymbol{v} - \boldsymbol{t}\| \leq \gamma \cdot \text{dist}(\boldsymbol{t}, \boldsymbol{\Lambda})∥v−t∥≤γ⋅dist(t,Λ) -
格陪集:
定义:t+Λ={t+v∣v∈Λ}\boldsymbol{t} + \boldsymbol{\Lambda} = \{ \boldsymbol{t} + \boldsymbol{v} \mid \boldsymbol{v} \in \boldsymbol{\Lambda} \}t+Λ={t+v∣v∈Λ}
陪集不是格(无零元素)
CVP等价形式:
minv∈Λ∥v−t∥=minw∈t+Λ∥w∥ \min_{\boldsymbol{v} \in \boldsymbol{\Lambda}} \|\boldsymbol{v} - \boldsymbol{t}\| = \min_{\boldsymbol{w} \in \boldsymbol{t} + \boldsymbol{\Lambda}} \|\boldsymbol{w}\| v∈Λmin∥v−t∥=w∈t+Λmin∥w∥
格(黑色)与格的陪集(红色) -
校验子定理:
设 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} e∈t+Λ⟺{DTe≡DTt(mod1)e∈t+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}^nDTl∈Zn对所有的l∈Λ\boldsymbol{l}\in\Lambdal∈Λ成立(因为bi⋅l∈Z\boldsymbol{b_i}\cdot \boldsymbol{l} \in \mathbb{Z}bi⋅l∈Z)
-
证明:
必要性(⇒\Rightarrow⇒)
假设 e∈t+Λ\boldsymbol{e} \in \boldsymbol{t} + \Lambdae∈t+Λ,则存在 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}^kDTl∈Zk(06中有提到这个性质)。因此:
DTe≡DTt(mod1).
\boldsymbol{D}^T \boldsymbol{e} \equiv \boldsymbol{D}^T \boldsymbol{t} \pmod{1}.
DTe≡DTt(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+l∈t+span(Λ)。
充分性(⇐\Leftarrow⇐)
假设 e\boldsymbol{e}e 满足两个条件:
- DTe≡DTt(mod1)\boldsymbol{D}^T \boldsymbol{e} \equiv \boldsymbol{D}^T \boldsymbol{t} \pmod{1}DTe≡DTt(mod1)
- e∈t+span(Λ)\boldsymbol{e} \in \boldsymbol{t} + \text{span}(\Lambda)e∈t+span(Λ)
需证明 e∈t+Λ\boldsymbol{e} \in \boldsymbol{t} + \Lambdae∈t+Λ。
- 由几何条件,存在 v∈span(Λ)\boldsymbol{v} \in \text{span}(\Lambda)v∈span(Λ) 使得 e=t+v\boldsymbol{e} = \boldsymbol{t} + \boldsymbol{v}e=t+v。
目标是证明 v∈Λ\boldsymbol{v} \in \Lambdav∈Λ。 - 代入 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}DTe≡DTt(mod1),故:
DTv≡0(mod1).
\boldsymbol{D}^T \boldsymbol{v} \equiv \boldsymbol{0} \pmod{1}.
DTv≡0(mod1).
即 DTv\boldsymbol{D}^T \boldsymbol{v}DTv 的每个分量均为整数,记为 DTv=k∈Zk\boldsymbol{D}^T \boldsymbol{v} = \boldsymbol{k} \in \mathbb{Z}^kDTv=k∈Zk。
- 设 B\boldsymbol{B}B 为 Λ\LambdaΛ 的基矩阵,则 v∈span(Λ)\boldsymbol{v} \in \text{span}(\Lambda)v∈span(Λ) 可表示为 v=Bc\boldsymbol{v} = \boldsymbol{B} \boldsymbol{c}v=Bc,其中 c∈Rk\boldsymbol{c} \in \mathbb{R}^kc∈Rk。
根据对偶基的定义,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=k∈Zk,得 c=k∈Zk\boldsymbol{c} = \boldsymbol{k} \in \mathbb{Z}^kc=k∈Zk。
- 由于 c∈Zk\boldsymbol{c} \in \mathbb{Z}^kc∈Zk,向量 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+v∈t+Λ。