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

格密码学习笔记(二):连续极小、覆盖半径和平滑参数

文章目录

  • 最短距离和连续极小值
  • 距离函数和覆盖半径
  • 格的平滑参数
  • 致谢

最短距离和连续极小值

除了行列式,格的另一个基本量是格上最短非零向量的长度,即格中最短距离,其定义为
λ1=min⁡x,y∈L,x≠y∥x−y∥=min⁡z∈L,z≠0∥z∥.\begin{aligned} \lambda_1 &= \min_{\bm{x,y} \in \mathcal{L}, \bm{x} \neq \bm{y}} \| \bm{x} - \bm{y} \| \\ &= \min_{\bm{z} \in \mathcal{L}, \bm{z} \neq \bm{0}} \| \bm{z} \|. \end{aligned} λ1=x,yL,x=yminxy=zL,z=0minz∥.

在这里插入图片描述

如上图所示,两两格点构成的向量都可以通过平移得到起始点为原点的向量,通过找到距离原点最近的格点即可计算出格中最短距离。格中最短距离也称为第一连续极小,记为λ1\lambda_1λ1

同理可定义第二至第nnn连续极小λ2,…,λn\lambda_2, \dots, \lambda_nλ2,,λn

在二维格上,可以用多项式时间算法求解出λ1\lambda_1λ1,但在多维格上求解λ1\lambda_1λ1则十分困难。注意,给定一组格基,最短向量不一定是格基之一。

定义1 在格L\mathcal{L}L中,iii连续极小值(i=1,…,ni=1,\dots, ni=1,,nλi=min⁡{r:dimspan(B(r)∩L)≥i}\lambda_i = \min \{ r : \mathrm{dim} ~ \mathrm{span}(\mathcal{B}(r) \cap \mathcal{L}) \geq i \}λi=min{r:dim span(B(r)L)i}

在定义1中,B(r)\mathcal{B}(r)B(r)表示半径为rrr的超球体(Ball),该超球体与格L\mathcal{L}L交集产生的向量张成(span\mathrm{span}span)的空间的维度(dim\mathrm{dim}dim)为iii。换而言之,第iii连续极小值即包含至少iii个线性无关格向量的最小球的半径。

把球的中心放在原点,若球中有非零格向量,那么球中不止一个格向量。以上图为例,红色区域包含了一个非零格向量以及它的逆向量,但这二者在同一条直线上,仅张成一维空间,该超球体的半径是λ1\lambda_1λ1。而以下图为例,一个更大的超球体包含了4个非零格向量,可以张成二维空间,该超球体的半径是λ2\lambda_2λ2

在这里插入图片描述

在整数格Zn\mathbb{Z}^nZn中,有λ1=λ2=⋯=λn\lambda_1 = \lambda_2 = \cdots = \lambda_nλ1=λ2==λn。一般而言,λ1≤λ2⋯≤λn\lambda_1 \leq \lambda_2 \cdots \leq \lambda_nλ1λ2λn

距离函数和覆盖半径

对任意点t∈Rn\bm{t} \in \mathbb{R}^ntRn,记距离函数μ(t,L)\mu(\bm{t}, \mathcal{L})μ(t,L)返回t\bm{t}t到最近格点的距离,即μ(x,L)=min⁡x∈L∥t−x∥\mu(\bm{x}, \mathcal{L}) = \min_{\bm{x} \in \mathcal{L}} \| \bm{t} - \bm{x} \|μ(x,L)=minxLtx

通过移动t\bm{t}t可以找到μ\muμ的最大值,称为覆盖半径,即μ(L)=max⁡t∈span(L)μ(t,L)\mu(\mathcal{L}) = \max_{\bm{t} \in \mathrm{span}(\mathcal{L})} \mu(\bm{t}, \mathcal{L})μ(L)=maxtspan(L)μ(t,L)。以下图为例,t\bm{t}t从①移动至②再移动至③,此时无论t\bm{t}t再怎么移动都会减小μ\muμ的值,故μ\muμ在步骤③时达到最大。

在这里插入图片描述

以下图为例,将所有格点作为球心,不断增大球的半径rrr,当半径rrr超过12λ1\frac{1}{2} \lambda_121λ1时这些球开始互相覆盖,而当空间中所有点都被这些球覆盖时rrr刚好等于μ\muμ的最大值,名称“覆盖半径”由此而来。想象一下,在下图的第三张子图里,若再移动蓝色点t\bm{t}t均会落在球的内部从而使μ\muμ变小。

在这里插入图片描述

格的平滑参数

假设噪声γ\bm{\gamma}γ随机采样自均匀分布U([0,r]n)\mathrm{U}([0, r]^n)U([0,r]n),记格点为x∈L\bm{x} \in \mathcal{L}xL,为使γ+x\bm{\gamma} + \bm{x}γ+x的分布看起来与U(Rn)\mathrm{U}(\mathbb{R}^n)U(Rn)无异,要使rrr足够大。以上图为例,γ+x\bm{\gamma} + \bm{x}γ+x的出现频数用红色深浅表示,当rrr太小时有些地方是空白色,随着rrr的增大有些区域红色的深浅程度不一,当rrr无穷大时所有区域颜色一样。

rrr是无穷大时是最理想的状态。事实上,存在一个有限的r^\hat{r}r^值可使γ+x\bm{\gamma} + \bm{x}γ+x趋近于完全均匀分布,有max⁡μ≤∥r^∥≤log⁡(n)⋅nλn\max \mu \leq \| \hat{r} \| \leq \log(n) \cdot \sqrt{n} \lambda_nmaxμr^log(n)nλn

注:下面笔记属于个人猜测,高斯噪声这块公开课讲得比较模糊,强烈建议查阅原始论文。

球的半径要取得很大是因为它的边界十分明显。为解决该问题,可以使球心到边界逐渐平滑,即采用球状高斯分布进行平滑,从而得到高斯噪声。以下图为例,高斯平滑缩小了rrr值。对半径对应向量的每个分量vi\bm{v}_ivi,应使得∥vi∥≈ηϵ≤log⁡(n)λn\| \bm{v}_i \| \approx \eta_\epsilon \leq \log(n) \lambda_nviηϵlog(n)λn,仅略大于λn\lambda_nλn,此处ηϵ\eta_\epsilonηϵ被称为平滑参数。一般而言,ηϵ\eta_\epsilonηϵ由一个错误参数ϵ\epsilonϵ决定,ϵ\epsilonϵ表示当前噪声分布和均匀噪声分布之间的差异。

在这里插入图片描述

致谢

  • Simons格密码公开课官网

Mathematics of Lattices - Simons Institute for the Theory of Computing

  • 哔哩哔哩中英双语视频(字幕组:重庆大学大数据与软件学院 后量子密码研究小组)

【中英字幕】Simons格密码讲座第1讲:格的数学定义_哔哩哔哩_bilibili

  • 其它格密码讲解课程和博文

格密码入门课程_哔哩哔哩_bilibili

格密码的基础概念_唠嗑!的博客-CSDN博客_格密码

格(Lattice)基础(一)_Amire0x的博客-CSDN博客_两组格基生成同一个格的充要条件

http://www.lryc.cn/news/31480.html

相关文章:

  • ios 通过搜索设备MAC地址绑定
  • Python实现人脸识别,进行视频跟踪打码,羞羞的画面统统打上马赛克
  • vcf bed起始位置是0还是1
  • Hexo+live2d | 如何把live2d老婆放进自己的博客
  • 【微信小程序】-- 页面导航 -- 导航传参(二十四)
  • Pytorch学习笔记#2: 搭建神经网络训练MNIST手写数字数据集
  • C语言 猜名次、猜凶手、杨辉三角题目详解
  • 蚁群算法负荷预测
  • ubuntu添加系统服务实现开机root权限运行
  • 【阅读笔记】你不知道的Javascript--类与类型委托3
  • 文件服务设计
  • 【批处理脚本】-1.22-字符串界定符号 ““
  • 【Flutter·学习实践·UI篇】基础且重要的UI知识
  • 【OpenCV】车牌自动识别算法的设计与实现
  • SpringBoot发送邮件
  • BigInteger类和BigDecimal类的简单介绍
  • mysql五种索引类型---实操版本
  • 【微信小程序】-- 页面导航 -- 编程式导航(二十三)
  • 路由追踪工具 traceroute 使用技巧
  • NGINX学习笔记 - 一篇了解NGINX的基本概念(一)
  • Spring-Cloud-Gateway的过滤器的执行顺序问题
  • Android性能优化的底层逻辑
  • Gradle+SpringBoot多模块开发
  • Qt 之 emit、signals、slot的使用
  • 每日学术速递3.6
  • C# 将对象转换成字节数组(二进制数据)
  • 巾帼绽芬芳 一起向未来(下篇)
  • 代码还原小试牛刀(一):魔改的MD5
  • 6. 找大佬
  • 【CSS】标签显示模式 ① ( 标签显示模式 | 块级元素 )