Better Key Sizes (and Attacks) for LWE-Based Encryption
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文
Abstract
基于“learning with errors”(LWE)问题,分析了理论上基于声音格的加密方案的具体安全性和密钥大小。我们的主要贡献是:(1)针对LWE提出了一种新的格攻击,它结合了基归约和一个允许时间/成功折衷的枚举算法,其性能优于先前分析中所考虑的简单区分攻击;(2)基于LWE的密码系统的具体参数和安全性估计,该系统比文献中已知的方案更为紧凑和高效。我们的新密钥大小比以前的示例小10倍,同时提供更强大的具体安全级别。
1 Introduction
近年来,基于声音格的密码学在理论上取得了重大进展,解决了许多具有广泛适用性的任务。例如,仅在加密领域,我们现在就拥有具有选择密文安全性[PW08,Pei09]的公钥密码系统[AD97,Reg3,Reg05],基于身份的加密[GPV08,CHKP10,ABB10]和全同态的密码系统[Gen09]。通过使用简单而灵活的平均情况问题——即由Ajtai [Ajt96]引入的短整数解(SIS)和Regev[Reg05]的误差学习(LWE)问题——这被证明在最坏的情况下是和某些格问题一样困难的,并且似乎在主要的安全参数上需要指数时间来解决。
然而,对于实际的参数,SIS和LWE问题抵抗算法攻击的具体难度还远未得到解决。这使得基于这些问题的密码方案的实际安全性和效率难以评估。本文的目的是通过考虑已知方案和攻击的新变体,并从密钥大小和估计的安全性方面分析其后果,进一步阐明这一问题。
1.1 Our Contributions
我们分析了现代基于格的密码方案的具体安全性和效率,重点讨论了LWE和公钥加密。首先,我们描述了一个基于LWE的密码系统,它的密钥和密文比文献中更著名的系统(即Regev的原始系统[Reg05]及其更有效的分摊变体[PVW08,GPV08])小得多。我们的方案结合了最近工作中的一些技术和观点;特别是,它是Micciancio[Mic10]描述的抽象系统的一个实例,它概括了[Reg05,PVW08,GPV08]的所有方案,并且系统的设计和安全性证明(在LWE假设下)结合了最近工作的各种技术[Ale03,MR09,LPS10,Pei10],在关键尺寸上产生了渐进和具体的改进。虽然没有涉及到任何新的技术,但据我们所知,文献缺乏对系统的全面描述和分析,尽管它现在是一个重要的研究对象。
我们的第二个主要贡献是利用现有的算法攻击工具,如格基约简和带预处理的有界距离解码更强的新方法,来分析最近的基于格的密码系统的具体安全性。我们的攻击特别针对LWE问题,并以密码分析上下文中从未尝试过的方式利用其一些结构属性。(我们的攻击似乎也不立即适用于其他格点问题,例如用于公钥加密的唯一最短向量问题[AD97,Reg03,AD07]。)因此,我们认为,我们的分析给出的LWE的具体困难性评估比先前格点攻击得到的评估更准确。
将我们的攻击应用于改进的密码系统,然后我们提出了现代商品硬件的具体参数和(保守的)运行时估计。尽管我们改进了攻击,结果密钥大小仍然比前面的示例参数小10倍,甚至对于更高的安全级别也是如此(参见第六章了解详细信息)。例如,使用可以加密128位有效负载并且看起来至少与AES-128一样安全的参数,我们获得大约1120千位或大约400千位的公钥大小(假设公共源是可信随机的)。
显然,对于许多应用程序来说,上述密钥大小仍然太大,但这是使用“标准”LWE固有的二次开销的结果。通过使用来自[LPR10]的LWE和密码系统的紧凑的“基于环”变体(与启发式NTRU方案[HPS98]和在[Mic02]中启动的理论声音线相关),我们可以立即将上述密钥大小缩小至少200倍。由此产生的2-5千比特的大小可以与RSA的现代建议相媲美,而且密码系统本身在现代硬件上要快很多倍。
我们的方法:在这里我们简要总结了我们的方法和主要结论。我们的方法涉及到一个特定的随机格族的基归约的专门研究,以及一个我们所知的在先前的分析中没有考虑的后归约解码算法。(关于我们与先前工作相关的方法的讨论,请参见第1.2节。)
Ajtai[Ajt96]提出的基于格的密码系统涉及一个所谓的q元格族,对于某些模q ≥ 2,它们是m维整数格,其中包含qZm作为子格。我们从基归约的运行时间和输出基的全局性质出发,研究了基归约在随机格上的表现。我们的实验给出了可靠的、理论上表现良好的关于基本质量的预测,这些预测可以通过各种计算努力获得。
作为对格基归约分析的补充,我们描述了一种针对LWE问题search版本的后归约攻击,并根据给定的基质量在时间和对手优势(即成功概率)之间提供了精确的权衡。尽管我们攻击search-LWE问题,这并不是破坏大多数基于LWE的密码系统语义安全所必需的,但我们的完全攻击(对于密码学中使用的非常广泛的参数)比先前分析中考虑的对decision-LWE的自然区分攻击[MR09,RS10]更为可取。具体地说,我们的攻击可以解决search-LWE实例,从而解密密文,与区分攻击具有相同或更好的优势,同时使用质量较低的格向量,因此总运行时间要少得多。这种改进在高优势体制中尤其明显,在这种体制中,对手对解密的明文需要相对高的信任度,例如可能需要打破混合加密。
我们的后归约攻击涉及Babai的“最近平面”算法[Bab85]的简单扩展,该算法允许我们将基本质量与解码时间进行权衡,据我们所知,解码时间尚未在密码分析上下文中进行探索。该扩展与Klein's(de)随机算法[Kle00]在有界距离解码中的应用有关,但它更简单,而且特别适合已知误差向量的高斯分布。正如我们已经指出的,质量/时间权衡会极大地影响解决LWE实例所需的基础质量,从而影响攻击的运行时间。
最后,我们注意到我们的分析是完全模块化的,并且允许将改进的基归约算法(及其伴随的运行时和质量预测)替换为后归约攻击。
1.2 Related Work
有几篇论文研究了格问题的具体困难性。在这里我们提到了与我们的工作最密切相关的那些,它们旨在计算基于格的密码系统的安全参数,并描述了最重要的区别。
Gama和Nguyen[GN08]对各种格族的基归约行为进行了综合研究。他们的分析主要集中于Hermite-,Unique-,和Approximate-最短向量问题的最佳可获得的解决方案。Hermite SVP是我们工作和其他密码分析中的一个重要问题。虽然Gama和Nguyen没有试图记录随机q元格上的基归约行为(除了与Goldstein-Mayer分布密切相关的极大q),但我们的实验证实了他们对这个族的一些发现(正如[MR09]中的实验一样)。Gama和Nguyen的研究主要是为了预测基归约的行为,但没有包括运行时预测,也没有研究使用归约基来解决有界距离解码问题(如LWE),在LWE中可能有额外的算法思想和权衡。
Micciancio和Regev的调查[MR09]提出了当代文献中各种基于格的方案的示例参数(它们的密钥比我们在这里描述的要大)。它们的参数是利用Gama和Nguyen关于获得各种Hermite因子的可行性的结论得出的,因此不包括对攻击运行时间或成功概率的具体估计。它们的安全性估计是通过在关联的格中找到一个相对较短的向量来使用LWE上的自然区分攻击来计算的;我们的攻击成功地使用了质量较低的向量,使其更加有效(应该注意的是,[MR09]中给出的示例参数已经知道最多只能提供中等安全性。)
Rückert和Schneider[RS10]最近给出了许多最近基于格的方案的“对称比特安全性”的具体估计,包括随机q元格中各种Hermite因子的具体运行时估计。他们的分析使用了[MR09]中描述的一种允许的区别攻击形式,其中敌方优势约为2-72。这一小的优势并没有被纳入他们最终的比特安全性估计中,因此估计比我们的更保守,甚至没有考虑到search-LWE上优越的解码攻击。
最后,我们注意到[MR09,RS10]中使用的针对LWE的最佳区分攻击可能并不总是适用于我们的密码系统,因为它的参数可以设置为使得发布的LWE样本相对较少,因此该攻击被迫使用次优格维数。我们在第5.1节和第6节中提供了更多细节。
2 Preliminaries
Gram-Schmidt正交化,正交化后的向量组中的向量两两正交,等价于一个唯一的分解B=QR,其中B是一个线性独立的向量组,Q满足QTQ=I,R为对角项为正的上三角矩阵。正交化的向量可以用Q中的对应的列与R中对应的对角项相乘得到。det(Λ)函数获取基B上的坐标Zm。
2.1 Discrete Gaussians
对于任意的s,都有一个拒绝采样算法(rejection sampling algorithm),并且对小s,可以计算累积分布函数的近似逼近。
拒绝采样算法原理参见https://blog.csdn.net/jteng/article/details/54344766。
2.2 Learning with Errors
3 LWE-Based Encryption
在这里,我们描述了一个基于LWE的密码系统,它比文献中常见的密码系统更节省空间。这是Micciancio[Mic10]描述的抽象系统的一个实例,它概括了[Reg05,PVW08,GPV08]的所有方案,尽管文献中没有对广义系统的完整描述和分析。安全性证明结合了最近工作中的许多技术和观点[MR09,LPS10,Pei10],目的是提高效率和进行严密的分析。为了完整起见,我们还简要描述了一个有效的基于环的系统模拟,这在完整版本的[LPR10]中有全面的通用性描述。
尽管是先前基于LWE的密码系统的一个推广,但是本方案实际上可以通过一个约为lg q的因子被实例化为具有较小密钥和密文,同时提高具体的安全性!改进的安全性来自于较小的密钥(对于给定的安全参数n),这允许相对较大的噪声率,使得LWE问题更加困难。较小的密钥来自不同类型的安全性证明,这与Alekhnovich的基于编码的密码系统[Ale03]和Lyubashevsky、Palacio和Segev的基于子集和的密码系统[LPS10]的证明非常相似。简言之,该证明两次使用LWE假设(首先对公钥,然后对密文)来表明对手在被动攻击中的观点与均匀随机是不可区分的。相比之下,以前基于LWE的方案的证明涉及公钥或密文的统计参数,但这需要更大的密钥我们指出,统计参数对于LWE的许多高级应用仍然是必要的,例如基于身份的加密[GPV08]和其他使用“trapdoor basis”的应用,我们不知道这些方案是否可以获得相对较小的密钥和密文。
3.1 Cryptosystem
(未完待续)
Better Key Sizes (and Attacks) for LWE-Based Encryption的更多相关文章
- Privacy-Preserving Deep Learning via Additively Homomorphic Encryption
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Full version of a paper at the 8-th International Conference on Appli ...
- Trapdoors for Hard Lattices and New Cryptographic Constructions
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. Abstract 我们展示了如何构造各种“trapdoor”密码工具,假设标准格问题的最 ...
- RSA key lengths
RSA key lengths From http://www.javamex.com/tutorials/cryptography/rsa_key_length.shtml When you cre ...
- TEA encryption with 128bit key
If anyone needs some basic encryption in software, here's one solution. This TEA implementation fits ...
- SSL握手步骤【收藏】
http://www.codeweblog.com/ssl-handshake-process-of-interaction-and/ SSL to send a message in the fol ...
- https那些事儿
(一)SSL/TLS协议运行机制的概述 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获 ...
- [转]OpenVPN官网的HOWTO
因为墙的原因,打不开.特此转一下: HOWTO Introduction OpenVPN is a full-featured SSL VPN which implements OSI layer 2 ...
- emSecure Use Digital Signatures to protect your products
emSecure Use Digital Signatures to protect your products emSecure is an RSA based software solution ...
- OPENVPN2.3配置文档官方说明
openvpn Section: Maintenance Commands (8)Index NAME openvpn - secure IP tunnel daemon. SYNOPSIS open ...
随机推荐
- Python编程语言简介
Python诞生于20世纪90年代初,由荷兰人吉多·范罗苏姆发明.那么,Python这一门编程语言是如何发明的呢?这之中又有怎么的故事呢?请看下面. 故事发生在1989年的圣诞节上,吉多先生为了打发无 ...
- Text多行文本框基本用法
1.Text(root,width,height,bg) 主窗口,宽度,高度,背景色 2.使用 .insert() 方法添加内容 Text 对象.insert(几行.几列,"内容" ...
- 面试官你好,我已经掌握了MySQL主从配置和读写分离,你看我还有机会吗?
我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 面试官:我看你简历上写的你们公司数据库是 ...
- Python os.lseek() 方法
概述 os.lseek() 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改.高佣联盟 www.cgewang.com 在Unix,Windows中有效. 语法 lseek()方法 ...
- C/C++编程笔记:《C语言》—— 数组知识详解,学编程建议收藏!
作者:龙跃十二链接:https://www.imooc.com/article/300814 ,微信公众号:龙跃十二 数组的基本概念 我们把一组数据的集合称为数组(Array),它所包含的每一个数据叫 ...
- Java主类的装载
在JavaMain()函数中调用LoadMainClass()函数加载Java主类.LoadMainClass()函数的实现如下: /* * Loads a class and verifies th ...
- 好用的连接池-HikariCP
在Springboot的发展历程中,默认的DataSource也从Springboot1.x的tomcat连接池到Springboot2.x的HikariCP.关于HikariCP的简单使用在配置多数 ...
- Linux系统之《消息队列》入手应用
目录 简述 代码 编译 运行 简述 消息队列是Linux进程间通信方式之一,消息队列一般是用于简单的通信,数据量不大,通信不频繁的情况.如果交互频繁或者数据量大就不适合了. 代码 下面直接上代码,发送 ...
- 嵌入式linux简介
嵌入式linux系统应用非常广泛,涵盖各行各业,基于ARM.mips等微处理器架构的硬件平台.基于嵌入式linux系统的设备已经深入生活中各个角落,随处可见. 我们常说的嵌入式linux系统,其实 ...
- 001_centos7配置网络动态获取IP地址
笔者今天刚装完centos7的虚拟机,发现无法获取IP地址,经过网上查询资料,发现centos7是默认没有网络配置的,需要手工配置. 而centos7与centos6不同,没有了config命令,所以 ...