【格密码基础】基于LWE问题的密码系统

目录

一. 介绍

二. LWE密码方案简单介绍

三. LWE经典归约

四. LWE性质

五. LWE的鲁棒性


一. 介绍

在2005年,Regev基于LWE问题提出了一个新的公钥密码方案。该方案可实现语义安全(semantic security),其中误差率(error rate)为:

\alpha=\tilde \Omega(1/\sqrt n)

其安全性可利用量子算法归约到近似GapSVP和SIVP问题,其中近似因子取:

\gamma=\tilde O(n^{3/2})

该方案借鉴了两个工作,一个是1997年Ajtai-Dwork的工作,一个是2003年Regev的工作。但相比之下有两大优点比较突出。

优点1:一般性(generality)

该方案依赖的最坏(worst case)情况是近似GapSVP和近似SIVP问题。在网路安全领域,还有一个问题叫近似unique-SVP问题,有时也简称为uSVP问题。该问题的结构性太强了,不太适合进行归约证明困难性。

优点2:效率更高

有关密码方案的效率,我们关注很多方面,比如公钥尺寸,以前的方案公钥尺寸是\tilde O(n^4),该方案是\tilde O(n^2)

每次加密一个明文比特,私钥和密文的尺寸是一样的为:

\tilde O(n)

相比以前的方案是:

\tilde O(n^2)

如果将该方案推广到多用户,情况则变得很有意思。2005年,Ajtai指出可以利用密码方案来实现公共随机性共享,但很遗憾还不能证明其符合最坏情况的安全性。如果此过程能实现的话,那么所有用户共享的随机比特串可设定为:

\tilde O(n^2)

此时每个用户的公钥尺寸为:

\tilde O(n)

二. LWE密码方案简单介绍

实际上Regev的基于LWE的密码方案和安全性证明都和Ajtai-Dwork的工作很类似,所以此处就简单解释下。

方案的私钥为s,格式如下:

s\in Z_q^n

很明显可以说明私钥尺寸为\tilde O(n)

公钥则是随机选取一些LWE样本,当然这些样本对应的秘密s是一样的,如下:

(a_i,b_i)

假定样本个数近似n个,那么很容易计算公钥尺寸为:

\tilde O(n^2)

加密时,选择加密一个比特。从刚才的公钥LWE样本中选择一部分子集,然后相加,最后把消息比特隐藏于结果的最后一位,很容易计算密文的尺寸为:

\tilde O(n)

那么怎么解密呢?

密文要么很接近垂直于(-s,1)的子空间,要么很远。拥有私钥的人,则可以区分,也就可以解密出比特0或者比特1

当然密码学中,要想说明语义安全是需要设定严格的安全性证明试验。在敌手看来,根据LWE问题的困难性,是无法区分真随机分布和LWE分布的。

而且在这种设计的密钥下加密,是loosy的,也就是密文和明文信息比特是统计独立的,那么敌手区分加密0和加密1的优势则是可忽略的。

详细的密码方案在“格密码专栏”中,后续会不断更新。

在2005年,Regev提出LWE之后,有关其额外的困难性定理就不断涌现出来,比如基于经典归约的,基于leaky密钥的,更小的误差,更小的模等等,接下来本文章将解释几个比较重要的提高和扩展。

三. LWE经典归约

Regev利用量子算法实现了最坏情况归约,在2009年Peikert去量子化(dequantized),利用经典算法也实现了归约。其格公钥密码也依赖于一般格(genaral lattice),该格的结构性没有那么强(相比unique shortest vectors)。设定LWE问题的错误率为\alpha,其困难性可以归约到最坏情况的近似GapSVP问题,其中近似因子为:

\gamma=\tilde O(n/\alpha)

量子归约到GapSVP和SIVP问题上,但目前经典归约只能到GapSVP问题。

经典归约要求模数得指数大小,也就是在LWE问题中q的范围满足:

q\geq 2^{n/2}

量子归约只需要多项式尺寸大小的模数,也就是:

q\geq 2\sqrt n/\alpha

当然其实经典归约也可以到q=poly(n)的尺寸,但是这时对应的不是标准的GapSVP问题类型。

为啥我们对模数q的大小这么关注呢?

大的模数意味着在表示LWE样本时,需要更多的比特,导致密钥的尺寸变大,密码系统的效率则降低。

虽然经典归约还有许多限制,但是并不妨碍利用LWE问题来构建有效的密码学方案。

四. LWE性质

在2009年,Pei和Lyubashevsky-Micciancio分别在两篇论文中证明了,利用经典归约已经近似因子等于poly(n)时,以下几个问题是等效的:

GapSVP,uSVP,BDD

这也就意味着,虽然说Ajtai-Dwork的密码系统最开始是依赖uSVP问题的,但其实也可以依赖于GapSVP问题。

在2013年,Brakerski等人认为需要平衡LWE问题的维度与模数。他们认为,在固定错误率\alpha的前提下,LWE问题的困难性可以用nlogq来衡量,也就是跟n和q都有关系。举个例子来解释为什么这个结论很有用。

比如说,Peikert认为LWE可归约到n维格上的GapSVP问题,此时模数q满足:

q\geq 2^{n/2}

如果我们将维度提升到n^2,那么模数就只需要q=poly(n)即可。

此方案的证明过程使用到了全同态(fully homomorphic encryption)中的密钥切换(key switching)和模归约(modulus reduction)。当然只是借鉴这些技术,实际上会更加复杂,因为需要产生对应的LWE样本,而不是单纯的拥有小误差的样本。

五. LWE的鲁棒性

robustness,通常翻译成鲁棒性。

已有的研究表明,及时敌手学习到了关于秘密和错误的一些额外信息,LWE问题依旧是困难的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Google Chrome RCE漏洞 CVE-2020-6507 和 CVE-2024-0517的简单分析

本文深入研究了两个在 Google Chrome 的 V8 JavaScript 引擎中发现的漏洞,分别是 CVE-2020-6507 和 CVE-2024-0517。这两个漏洞都涉及 V8 引擎的堆损坏问题,允许远程代码执行。通过EXP HTML部分的内存操作、垃圾回收等流程方式实施利用攻击。 CVE-2020-…

256:vue+openlayers利用高德逆地理编码,点击地图,弹出某点坐标和地址信息

第256个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中利用高德逆地理编码,点击地图,弹出某点坐标和地址信息。这里要仔细阅读高德地图的逆编码API,同时要注意的是,这种转换在中国很好用,到了欧美国家就不好使了。 直接复制下面的 vue+openlayers源代码…

基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring…

OPENMV驱动云台实现颜色追踪

前言 本篇文章旨在记录我电赛期间学习OPENMV对颜色识别,以及通过串口通信的方式将坐标数据传给单片机,从而驱动舵机云台进行颜色追踪。 一、OPENMV色块识别追踪代码 # Single Color RGB565 Blob Tracking Example # # This example shows off single co…

【Axure高保真原型】可视化环形图

今天和大家可视化环形图的原型模板,,包括4种效果,移入变色在环形中部显示数据、移入变色在标签弹窗显示数据、移入放大在环形中部显示数据、移入放大在标签弹窗显示数据。这个原型是用Axure原生元件制作的,所以不需要联网或者调用…

Centos7安装python3.7.13以及pip23.3.2

拿到机器发现只有自带的python2.X,但是算法cplex求解器需要用到Python3.7,安装过程遇到一些问题,记录下来: 如果需要卸载python3 1、卸载python3 rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps 2、 删除所有残余…

vue常用指令(v-bind)

一、v-bind 指令 作用: 设置元素的属性 &#xff08;比如:src,title,class&#xff09; 二、代码演示 1、设置元素的src 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&quo…

C动态内存那些事

为什么存在动态内存分配&#xff1f; 首先&#xff0c;动态内存分配是计算机中一种重要的内存管理方法&#xff0c;它主要解决了静态内存分配无法灵活应对变化需求的问题。以下是几个存在动态内存分配的原因&#xff1a; 灵活性&#xff1a;动态内存分配允许程序在运行时根据需…

《WebKit 技术内幕》学习之十(4): 插件与JavaScript扩展

4 Chromium扩展机制 4.1 原理 Chromium的扩展&#xff08;Extension&#xff09;机制 (1) 原先是Chromium推出的一项技术&#xff0c;该机制能够扩展浏览器的能力&#xff0c;例如笔者使用的一个扩展实例名为“switchy proxy”&#xff0c;它可以帮助用户方便的切换Chromium…

Leetcode—29. 两数相除【中等】

2023每日刷题&#xff08;九十四&#xff09; Leetcode—29. 两数相除 叛逆期实现代码 class Solution { public:int divide(int dividend, int divisor) {if(dividend INT_MIN && divisor -1) {return INT_MAX;} return dividend / divisor;} };运行结果 倍增算法…

EG-2121CA (晶体振荡器 低抖动表面声波(SAW)振荡器)

在当今高度数字化的时代&#xff0c;稳定的信号传输显得尤为重要。若要实现信号的稳定传输&#xff0c;晶体振荡器必不可少。EG-2121CA&#xff0c;它是一款低抖动表面声波&#xff08;SAW&#xff09;振荡器设计的产品&#xff0c;凭借其出色的频率范围、稳定的电源电压和可靠…

JAVA泛型、泛型通配符、综合练习

作用&#xff1a; 是 jdk5 中引入的特性&#xff0c;可以在编译阶段 约束 操作的数据类型&#xff0c;并进行检查。 格式&#xff1a; <数据类型> 注意泛型只能支持引用数据类型&#xff0c;基本数据类型可转成对应的包装类。 问题&#xff1a; 在没有泛型的时候&…

「JavaSE」抽象类接口3

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;快来卷Java啦 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 抽象类&接口3 &#x1f349;Clonable 接口和深拷贝&#x1f34c;浅拷贝和深拷贝 &#x1f349;Object类&#x1f349;抽象类…

无法获得dpkg前端锁、Linux之E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?(解决方法)

无法获得dpkg前端锁的解决方法 sudo rm /var/lib/dpkg/lock sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock 输入以上三个命令即可解除占用。解除后&#xff0c;继续运行apt命令&#xff0c;已经顺利运行了。解除前端锁后&#xff0c;Linux之E: 无…

.net访问oracle数据库性能问题

问题&#xff1a; 生产环境相同的inser语句在别的非.NET程序相应明显快于.NET程序&#xff0c;执行时间相差比较大&#xff0c;影响正常业务运行&#xff0c;测试环境反而正常。 问题详细诊断过程 问题初步判断诊断过程&#xff1a; 查询插入慢的sql_id 检查对应的执行计划…

20240122面试练习题10

1. Redis为什么执行这么快&#xff1f; 二、Redis为什么这么快&#xff1f; 1、完全基于内存&#xff0c;数据存在内存中&#xff0c;绝大部分请求是纯粹的内存操作&#xff0c;非常快速&#xff0c;跟传统的磁盘文件数据存储相比&#xff0c;避免了通过磁盘IO读取到内存这部分…

配置接口策略路由案例

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OCP\CKA\K8S\…

如何使用Jellyfin+cpolar搭建私人影音平台实现无公网ip远程访问

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

jQuery实现选择方法和保护信息方法

最近呢&#xff01;一直在学习jQuery语法&#xff0c;也没时间发布文章&#xff0c;现在学的差不多了&#xff0c;先跟大家分享下学习感受吧&#xff01;JavaScript学过后&#xff0c;再学习jQuery语法&#xff0c;应该是简单的&#xff0c;但我总是容易把它们搞混&#xff0c;…

Alzet渗透泵工作原理,你清楚么?

由于Alzet渗透泵独特的释放原理&#xff0c;使得许多化学试剂、药剂或者其他物质&#xff0c;可以通过Alzet渗透泵应用到科研试验中。一个小小的胶囊就可以完成持续的动物给药实验&#xff0c;对于科研实验者来说就是一个福音。 那你了解Alzet渗透泵么?让我们一起来简单了解一…