格密码基础

news2024/11/27 5:32:48

目录

写在前面

一. 格上基本向量

二. 封闭球内格点数

三. 半稳定格

四. Chernoff-Hoeffding 界

五. 格密码中常用的细节

六. 可证明安全的格基

6.1 引入问题

6.2 格基选取

6.3 流程性小结


写在前面

本文章主要介绍格密码中所使用的一些基本概念,其中包括:格中基本向量,封闭球内的格点数,半稳定格等等。

一. 格上基本向量

首先,我们知道在数学中有基本向量的概念(或者简称基向量),指的是一组线性无关的向量,并且可以通过线性组合生成整个向量空间。

进而延伸出格中基本向量。

首先在格L上选取一个格向量:

接着对任意的整数a>1,格向量x都不在扩张格上,也就是:

其中格aL可以看成把原格L扩大了a倍。

于是乎,x就被称之为格L的基本向量。

需要注意的是,0向量一般认为不是任何格L的基本向量。因为研究原点在格密码中意义不大。通常,在格密码的论文中,可以将格L中的基本向量全部组合在一起,形成:

L_{prim}

二. 封闭球内格点数

可以将格L中长度小于等于r的格向量组合在一起:

等式右边的绝对值符号代表向量数目。

如果将这个概念类推到基本向量,便可以得到:

可以注意到右边有除以2,主要是希望将正负向量x算一个有效的基本格向量。

在格密码中,封闭的Euclidean球一般表示为:

B_2^n

其中2代表Euclidean距离,也就是跟l2范数相关;n代表维度。

铺垫完这些概念,我们来看一个有意思的格点数目问题。

假定维度n\geq 1,球的半径大小满足:

1\leq r\leq \sqrt n

当然,半径的平方要求为整数:

r^2\in \mathbb{Z}

那么可得:

理解:半径为r的球内所包含的整数格点。左边代表下限,右边代表数目上限。

三. 半稳定格

半稳定格的英文为semi-stable lattice

所有格点为n维实数空间的离散子群:

L\subseteq \mathbb{R}^n

如果发现它所有的子格行列式都大于等于1,也就是:

L'\subseteq L\quad det(L')\geq 1

那么原来的格就可以被称之为半稳定格。

根据格密码的基础概念,相比于原格,子格一定会更加稀疏,也就是行列式会变得更大。

当然,如果恰好原格的行列式为1,也就是det(L)=1,那么这就是一个稳定格(stable lattice)。

可以发现无论是稳定还是半稳定格,都是用行列式的性质来衡量的。接着,来看一个半稳定格内的性质【RS17】。

假定有一常数t,满足:t=10(logn+2)。且要求格L为半稳定格,那么对于任意大于等于1的半径r(r\geq 1),都有:

理解:半稳定格的球内所包含的格点数目上限。

[RS17] Oded Regev and Noah Stephens-Davidowitz. A reverse Minkowski theorem. In STOC, 2017.3, 9, 17

四. Chernoff-Hoeffding 界

这其实是一个概率论里面的概念,但由于格密码涉及到离散高斯分布,所以会经常用到这个数学中的界限。

假定有M个在[0,1]内独立同分布的随机变量:

independent and identically distributed random variables,也就是论文中常常简写的iid。

有一个大于0的常数s>0,我们可以得到如下概率上界:

简单做一个解释:

ME[Xi]代表任意随机变量期望的M倍

\sum X_i代表对M个变量进行求和

这两者之间的值是相差不大的。

五. 格密码中常用的细节

格密码中的算法的计算复杂度通常习惯表示成与维度n相关的形式。

一般来讲,实数习惯用二进制比特串来表示。

代数(algebraic number)通常用多项式来表示。

随机的正交线性变换R,代表:

R\in O_n(\mathbb{R})

这里面蕴含一些线性代数相关的知识。

比如,Gram矩阵里面就包含这种正交变换:

G=B^TB

另外,矩阵的QR分解也包含这种正交变换。

之前的博客里面有介绍过QR分解,可参看:

【格密码基础】旋转格的性质-CSDN博客

六. 可证明安全的格基

6.1 引入问题

格密码中关于格基,有一个很重要的安全性问题。

举个例子。

我从Z^n的旋转格上取样一个格基,形成的困难问题安全吗?

给定一个格,格基我该怎么选?

这里面包含着格密码worst case与average case之间的归约。

当然,刚才谈到的,将n维整数格Z^n加上正交变换R,便可以形成旋转格。

作为算法的要求,一般希望对所有符合要求的格基,形成一种分布。这样也更加方便后续进行取样。

6.2 格基选取

首先,我们从格L中选取一定数目的格向量出来:

需要要求这些格点可以形成格L,也就是需要满足:

L=\lbrace z_1y_1+\cdots+z_ny_n:z_i\in \mathbb{Z}\rbrace

假定存在一个算法A,可以将这些格点直接转变为格基。

一般在整数格点里面,需要要求该算法是抗旋转的,也就是所谓的rotation invariant。指的是,存在任意正交变换:

利用该算法,都可以得到:

简单看一下这个式子的两边。左边代表算法在输入之前就对每个格点进行旋转。右边代表对算法的输出整体进行旋转。抗旋转则要求,这两则是一样的。

当然,对于确定性算法(deterministic algorithm),要求两者一样。

对于随机性算法(randomized algorithms),则要求两者统计距离接近。

6.3 流程性小结

首先,我们假定存在一个算法A,可以将格点(a generating set)转变为格基。

标准差写做s=s(n)>1.

(1)首先,从整数格内取自离散高斯分布:

Z_i\sim D_{Z^n,s}

(2)输出对应格基B:

B=A(z_1,\cdots,z_i)

(3)判定格基是否满秩:

B\in Z^{n\times n}

(4)判定格基行列式是否为1:|det(B)|=1

(5)如果3和4,有一个不满足,则返回1

(6)均匀且随机选取正交变换矩阵:

R\sim O_n(\mathbb{R})

(7)Z^n的旋转格即为RZ^n,其对应的格基为:

B'=RB

(8)最终想要的格基分布即可以写做(A,s)-ZDGS.其中A代表转换格基算法,s代表标准差,Z代表整数,DGS代表离散高斯取样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1938339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SVN分支管理基本原理

原文全文详见个人博客: SVN分支管理基本原理学习完svn和git的版本管理理念上的差异后,自然的我们再进一步对比svn和git在分支管理上的原理差异,这种差异正是由二者版本管理理念和存储方式差异造成的,今天我们先研究一下svn的分支…

Python爬虫(基本流程)

1. 确定目标和范围 明确需求:确定你需要从哪些网站抓取哪些数据。合法性:检查目标网站的robots.txt文件,了解哪些内容可以被抓取。数据范围:确定爬取数据的起始和结束点,比如时间范围、页面数量等。 2. 选择合适的工…

展望未来:利用【Python】结合【机器学习】强化数据处理能力

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 一、引言二、数据清洗与预处理三、特征工程四、数据可视化五、模型训练与评估六、模型部署与优化七、总结 在数据驱动的时代,数据处理与机器学习技术的结合已成为推动业务增长和创新的关键…

分类预测 | Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积支持向量机分类预测

分类预测 | Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积支持向量机分类预测&#xff0…

前端基础之JavaScript学习——函数的使用

大家好我是来自CSDN的前端寄术区博主PleaSure乐事,今天我们继续有关JavaScript的学习,使用的编译器为vscode,浏览器为谷歌浏览器。 函数的声明与使用 声明 在JavaScript当中函数的声明和其他语言类似,使用如下格式即可声明&…

SpringBoot+Session+redis实现分布式登录

SpringBootSessionRedis实现分布式登录功能实现 文章目录 目录 文章目录 前言 一、引库 二、修改配置文件 三、使用 四、解决乱码问题 1.引库 2.配置redis序列化 3.配置Session-Redis序列化 前言 这里简单介绍一下,如果你想多台机器部署你的项目的话,在…

Python爬虫速成之路(6):Selenium的使用

hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:绝命Coding-CSDN博客 &a…

Excel的操作

Excel的操作 一、Excel的作用 Excel是一款功能强大的电子表格软件,主要用于数据处理和分析。 二、Excel的基础操作 新建文档 一般情况下,就在桌面空白处,点击鼠标右键,即可新建 三、页面布局 1、快速访问工具栏 主要包含&am…

前端特效动画魔法书:文字渐入效果实现,可做引导页面

前端特效动画魔法书:文字渐入效果实现,可做引导页面 简介 在网页设计的世界中,动画是吸引用户眼球的魔法。Anime.js,一个轻量级且功能强大的JavaScript动画库,是实现这一魔法的完美工具。本文将作为你的技术文档&…

深入理解PHP基础【代码审计实战指南】

文章目录 基础语法单双引号的区别前后端分离数据类型PHP常量函数var_dump函数count函数print_r函数**readfile()函数****file_get_contents()函数****file_put_contents()函数**header函数fopen函数fread 函数rename函数copy()函数…

什么是单例模式,有哪些应用?

目录 一、定义 二、应用场景 三、6种实现方式 1、懒汉式,线程不安全。 2、懒汉式,线程安全 3、双检锁/双重校验锁(DCL,即 double-checked locking) 4、静态内部类方式-------只适用于静态域 5、饿汉式 6、枚举…

MATLAB函数介绍——plotm

简述 matlab中,plotm和不带“m”的plot意义相似,都是绘制二维图像的。只是加了m以后,在绘制时将图像投影到了世界地图坐标系上面进行显示。 plotm的第一个输入量是纬度,第二个输入量是经度,单位都是弧度。 例程 官方…

各种复现,保证质量

代码复现,文献复现,模型复现,算法复现,文章复现,创新点等等,python/matlab/c语言/r语言均可,保证高质量完成,可接急单,不成功不收费!

docker应用:搭建云手机

简介:近来慵懒,身体懈怠良多,思来想去随手看点小攻略以宽慰不懈怠的心。云手机Cloudphone,就是将云计算技术运用于网络终端服务,通过云服务器实现云服务的手机。其实就是深度结合了网络服务的智能手机,这类…

基于多线程延迟排序的睡眠排序算法的创新与改进

基于多线程延迟排序的睡眠排序算法的创新与改进 摘要 本文在传统睡眠排序算法的基础上,提出了一种改进方案,旨在优化处理负数和大规模数据集的性能。通过引入线程池管理和数据分段排序技术,改进后的算法在处理大数据集和包含负数的数据集时…

【11】微服务链路追踪SkyWalking

1、skywalking是什么 1.1 链路追踪介绍 对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如: 如何串联整个调用链路,快速定位问题?如何缕清各个微服务之间的依赖关系?…

【web】-flask-简单的计算题(不简单)

打开页面是这样的 初步思路,打开F12,查看头,都发现了这个表达式的base64加密字符串。编写脚本提交答案,发现不对; 无奈点开source发现源代码,是flask,初始化表达式,获取提交的表达式&#xff0…

C语言 | Leetcode C语言题解之第260题只出现一次的数字III

题目&#xff1a; 题解&#xff1a; int* singleNumber(int* nums, int numsSize, int* returnSize) {int xorsum 0;for (int i 0; i < numsSize; i) {xorsum ^ nums[i];}// 防止溢出int lsb (xorsum INT_MIN ? xorsum : xorsum & (-xorsum));int type1 0, type2…

虚拟机OP的LAN网口设置

问题&#xff1a;unraid通过虚拟机安装OP&#xff0c;然而一个网口连接路由器&#xff0c;总是无法为其他设备提供DHCP&#xff0c;导致无法使用。 一、虚拟机OP配置 二、OP内部配置 对于Lan网口&#xff0c;启用强制&#xff0c;这样可以防止OP被网口接的路由器产生冲突 三、…

安全防御:过滤技术

目录 一、URL过滤 URL过滤的方式 二、HTTP与HTTPS HTTP协议获取URL的方式 HTTP协议做控制管理的流程 HTTPS 1&#xff0c;配置SSL的解密功能 2&#xff0c;直接针对加密流量进行过滤 需求&#xff1a; 三、DNS过滤 四、内容过滤 文件过滤技术 文件过滤技术的处理流…