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

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

文章目录

  • 格中取模运算
  • CVP和格的陪集
  • 致谢

格中取模运算

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

在这里插入图片描述

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

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

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

  • 【群论入门】(5): 子群、陪集、正规子群与商群(收录于机器学习的数学基础)
  • 商群 - 百度百科

在这里插入图片描述

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

  • P=∑ibi⋅[0,1)≡Rn/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(mod1)(\bm{B}^\vee) \bm{t} ~ (\mathrm{mod} ~ 1)(B)t (mod 1)注意,由于t+L\bm{t} + \mathcal{L}t+L不在格上,故对偶空间基向量乘以该点结果不会是整数,除以1必然有小数部分,而这个小数部分可以独立地代表不同的商群。(个人疑问: 这里的mod\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问题的解。

致谢

  • Simons格密码公开课官网
    Mathematics of Lattices - Simons Institute for the Theory of Computing
  • 哔哩哔哩中英双语视频(字幕组:重庆大学大数据与软件学院 后量子密码研究小组)
    【中英字幕】Simons格密码讲座第1讲:格的数学定义_哔哩哔哩_bilibili
  • 其它格密码讲解课程和博文
    Lattice学习笔记03:Dual Lattice(对偶格)
    公开学习资料的无私奉献者
http://www.lryc.cn/news/39800.html

相关文章:

  • 【C++】非常重要的——多态
  • 发票账单很多?python助你批量完成数据提取
  • [闪存2.1] NAND FLASH特性串烧 | 不了解闪存特性,你能用好闪存产品吗?
  • 面试官问我按钮级别权限怎么控制,我说v-if,面试官说再见
  • 阿里云服务器使用教程:CentOS 7安装nginx详细步骤
  • Android JNI浅析、Java和Native通信对象的传值和回调
  • linux目录/usr/lib/systemd/system目录详解
  • 408考研计算机之计算机组成与设计——知识点及其做题经验篇目4:CPU的功能和基本结构
  • 2022-12-10青少年软件编程(C语言)等级考试试卷(五级)解析
  • 刷题专练之链表(一)
  • elasticsearch高级查询api
  • 力扣-股票的资本损益
  • 蓝桥杯刷题冲刺 | 倒计时26天
  • 嵌入式软件开发之Linux 用户权限管理
  • 2023-03-15 RabbitMQ
  • 二叉树链式结构的实现
  • 蓝桥杯刷题冲刺 | 倒计时28天
  • 一文带你吃透操作系统
  • 计算机网络英文简称汇总
  • 腾讯云云服务器标准型S5性能配置简单测评
  • RK3568平台开发系列讲解(Linux系统篇)消息队列
  • 2021电赛国一智能送药小车(F题)设计报告
  • 刚工作3天就被裁了....
  • docker安装elasticsearch与head教程完整版—.NET Core Web Api与elasticsearch打造全站全文搜索引擎
  • 蓝桥冲刺31天之315
  • 常见排序算法
  • C语言实现学生成绩管理系统思考
  • C++11中Lambda新特性
  • 【jvm系列-01】初识虚拟机与java虚拟机
  • 「Python 基础」数据库应用编程