格密码学习笔记(六):格中模运算

格中取模运算

定义(格的基本区域) P ⊂ R n : { P + x ∣ x ∈ L } \mathcal{P} \subset \mathbb{R}^n : \{ \mathcal{P} + \bm{x} | \bm{x} \in \mathcal{L} \} PRn:{P+xxL} R n \mathbb{R}^n Rn的一种划分。

在这里插入图片描述

P \mathcal{P} P对格点取模会呈现周期规律,即很多点“值”重复,例如上图中的绿色点为一组、红色点为一组、蓝色点为一组、棕色点为一组等。

  1. ( L , + ) (\mathcal{L}, +) (L,+) ( R n , + ) (\mathbb{R}^n, +) (Rn,+)的子群;
  2. 根据第1点可以构造商群 R n / L \mathbb{R}^n / \mathcal{L} Rn/L,念作 R n   m o d   L \mathbb{R}^n ~ \mathrm{mod} ~ \mathcal{L} Rn mod L
  3. 对于 R n / L \mathbb{R}^n / \mathcal{L} Rn/L中的元素,与该元素同组的元素,共同构成一个陪集 t + L \bm{t} + \mathcal{L} t+L
  4. 格中每一个基本区域都提供了一套格和陪集的标准表示法。

商群陪集的概念乍一看很迷惑,但其实很好理解,请参考文章

在这里插入图片描述

注意: 这里格的基本区域 P \mathcal{P} P半开区域,以上图二维格为例,可以是左边界、下边界为闭边界,而右边界、上边界为开边界,这样格中的所有点就均只属于一个基本区域,即每个陪集在每个基本区域中也只有一个点。

  • P = ∑ i b i ⋅ [ 0 , 1 ) ≡ R n / L \mathcal{P} = \sum_i \bm{b}_i \cdot [0, 1) \equiv \mathbb{R}^n / \mathcal{L} P=ibi[0,1)Rn/L

由于对格进行取模,故 t + L \bm{t} + \mathcal{L} t+L又可表示为 ( B ∨ ) t   ( m o d   1 ) (\bm{B}^\vee) \bm{t} ~ (\mathrm{mod} ~ 1) (B)t (mod 1)注意,由于 t + L \bm{t} + \mathcal{L} t+L不在格上,故对偶空间基向量乘以该点结果不会是整数,除以1必然有小数部分,而这个小数部分可以独立地代表不同的陪集。(个人疑问: 这里的 m o d \mathrm{mod} mod物理意义理解起来感觉怪怪的,为什么是小数部分?推测可能是计算机实际上没有整除这一功能,除以1还是会有小数部分;或者就是为了表示起来简单方便,用模1表示取小数部分)

如何求对偶格基上一篇文章给出了参考答案:格密码学习笔记(五):对偶格

CVP和格的陪集

利用格陪集,CVP可以有另外一种定义方式。这里公开课视频讲得有点抽象,我尝试写笔记结合推测解释一下。

定义(CVP) 给定一个格陪集 t + L \bm{t} + \mathcal{L} t+L,在该格陪集中找到距离原点最近的点。
在这里插入图片描述

以上图为例,对于CVP给定的点 t \bm{t} t,利用对偶格基相乘再模1可以获取陪集 t + L \bm{t} + \mathcal{L} t+L中的所有点,即浅粉色的那部分点,找到距离原点最近的浅粉色点(绿色箭头所指),则 t − e \bm{t} - \bm{e} te即CVP问题的解。

致谢

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值