郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文。

Abstract

  我们展示了如何构造各种“trapdoor”密码工具,假设标准格问题的最坏硬度(例如在最短的非零向量上近似于小因子)。应用包括带预图像采样的trapdoor函数,简单高效的“哈希签名”数字签名方案、通用可组合的不经意传输和基于身份的加密。

  我们构造的一个核心技术组件是一个有效的算法,该算法在给定任意格的基础上,从类高斯概率分布中采样格点,其标准差本质上是基中最长向量的长度。特别地,关键的安全特性是算法的输出分布不受给定基的特定几何结构的影响。

1 Introduction

  自从Ajtai[Ajt96]的开创性工作将格问题的平均复杂度与它们的最坏复杂度联系起来之后,在最坏情况的格假设下,基于密码的安全性(需要随机选择的密钥的安全性)一直是一个有趣且卓有成效的努力。除了其独特的理论利基外,基于格的方案还具有许多优点:第一,它们的渐近效率和简单性(通常只需要对小整数进行线性运算);第二,它们迄今为止对量子算法进行密码分析的阻力(与基于因子分解或离散对数的方案相反);第三,基于格的方案保证它们的随机实例是“尽可能困难的”。

  迄今为止,此类原语的已知构造主要限于单向和抗冲突哈希函数[Ajt96,GGH96,CN97、Mic04,MR07]和公钥加密[AD97,Reg04,Reg05]。特别值得注意的是,即使在随机预言模型(random oracle model)中,也缺乏任何具有其他基于格的原语的简单高效的数字签名的“直接”构造。(Goldreich、Goldwasser和Halevi的早期签名方案[GGH97]与某个格问题直接相关,但缺乏安全性证明,最近,Nguyen和Regev[NR06]展示了如何从签名(随机消息)的转录本中完全恢复密钥。我们将在下面详细讨论GGH计划。)

  基于格的强密码工具(如选择密文安全加密[PW07])的构造有了一些新的进展。但是,尽管密码学中格的研究取得了许多进展,但是如何实现一些很久以前建立在其他数论问题上的概念,如与因式分解有关的概念,仍然是个未知数,标准差实质上是基中最长向量的长度。特别地,关键的安全特性是算法的输出分布不受给定基的特定几何结构的影响。

1.1 Overview of Results and Techniques

  我们在这项工作中的主要论点是,格允许自然和固有的“trapdoor”,它们具有许多有用的密码应用。至少可以追溯到GGH的提议[GGH97],人们直觉上认为,格的短基可以充当这样一个trapdoor。我们的主要贡献是展示如何在理论上合理和安全地使用一个trapdoor基。

  作为一个基本的工具,我们首先构造一个具有一些特殊性质的trapdoor函数集合。函数是多对一的(即每个输出值都有多个预图像),trapdoor逆算法在适当的分布下从所有预图像中进行采样。在此基础上,我们展示了几种更先进的密码工具的有效实现,包括签名方案、通用可组合的不经意传输以及基于身份的加密。

  所有这些结果的核心技术是一种有效的算法,在给定一个适当长度的基(甚至仅仅是一个完整的秩集)的情况下,从任意格上的类高斯概率分布中“遗忘”地采样。这种技术还产生了更简单和(稍微)更紧的最坏情况/平均情况连接的格问题,并可能在复杂理论和密码学中有附加的应用。

1.1.1 Gaussian Sampling Algorithm

  因为它是我们密码结果的主要基础,所以我们从我们的抽样算法的总结开始。在给定任意n维格Λ的基B包含于Rn(甚至是全秩集S包含于Λ)的情况下,该算法在类高斯概率分布下随机选择一个格向量,其标准差实质上是B(或S)中最长向量的长度。格上的这种离散的高斯分布在数学中被用来证明格的严格的“转移定理”[Ban93/Ban95],并且最近在证明格问题的计算复杂性[AR03,AR05,Pei07]中特别有用,特别是它们最坏情况/平均情况的连接(例如,[Reg04,MR07,Reg05])。然而,到目前为止,离散高斯函数主要被用作分析工具,而不是算法工具。

  采样算法也可以看作是一个随机解码器,在给定一些短的格向量作为“建议”的情况下,输出一个相对接近任何给定目标点t∈Rn的格向量。解码器的关键特性是其输出分布仅取决于建议向量的长度,否则不受其特定几何结构的影响。这将是我们加密应用程序中的一个关键安全属性。

  算法本身实际上是Babai的“nearest-plane”(最近平面)算法[Bab86]的一个简单随机变量,只有一个小的差异。算法不总是选择最近的平面,而是选择一个特定的平面,其概率取决于它与目标点的距离。结果表明,这种简单的变化导致输出分布在统计上接近离散高斯分布,尽管分析是非平凡的,并且关键地使用了Micciancio和Regev[MR07]引入的平滑参数的概念。第三章给出了全部细节。

1.1.2 Cryptographic Constructions

  对于我们所有的密码构造,我们需要为随机格生成一个“困难的”公共基Λ,以及Λ的一个短的私有基,这将用作采样算法的建议。我们首选的方法是出于Ajtai[Ajt99],他描述了一种生成此类基的方法,使得公共基具有最坏情况下的困难性。(据我们所知,我们的结果是在密码学或其他领域首次使用Ajtai的生成器。)

带预图像采样的trapdoor函数:我们的高级加密工具的基本对象是单向(同时也是抗冲突)trapdoor函数的集合。非常不正式地,计算公共函数f相当于“均匀随机”地选择格点v∈Λ,并通过一些短误差项e对其进行扰动,从而产生一个点y=v+e。找到y的原像对应于将其解码到足够近的格点v'∈Λ(不一定是原始的v)。这是很容易使用我们的采样算法与trapdoor,但否则应该很难(对于特定的分布Λ和y)。

  我们的trapdoor函数在密码应用程序中有两个重要的安全属性。首先,输入(误差项e)从标准差相对较小的高斯分布中采样,并且在该分布下,输出y在统计上接近于在该范围内的均匀性。这就把逆问题等同于对给定公共基的均匀随机点进行解码,我们可以对其显示最坏情况的困难性。其次,trapdoor的逆算法不仅可以找到y的任意一个原像,而且可以使用我们的离散高斯采样算法从y的所有原像中(在适当的条件分布下)进行实际采样。换言之,逆变器从高斯输入分布中对输入e进行采样,条件是f(e) = y。这两个特性共同表明,有两种(几乎)选择对(e, y = f(e))的等效方法:从输入分布中选择e并计算y = f(e),或随机均匀地选择y并从f-1(y)中采样得到e。正如我们将看到的,这使得我们的trapdoor函数在某些应用中和trapdoor置换"一样好"。

  关于随机格的进一步讨论,硬解码问题,以及我们的trapdoor函数的全部细节,见第四章。

签名方案:文献中有几种(相对有效的)基于trapdoor置换的数字签名方案:全域类哈希方案[DH76,BR93,BR96,Cor02]遵循所谓的“hash-and-sign paradigm”(哈希与签名范式),并在随机预言模型(random oracle model)中进行了安全分析,且Bellare和Michali的方案[BM92]在标准模型上是安全的。

  我们证明,上述所有基于置换的签名方案,使用带有预图像采样的trapdoor函数,能够同样好地进行实例化,并将其安全性分析保留在各自的模型中(尽管在处理同一消息上的多个查询时可能会出现细微差别)。事实上,我们可以使用函数的抗碰撞特性来演示严格的安全性降低,而不仅仅是它们的单向性。

  具体地说,我们的hash-and-sign签名与原始的(但不安全的)GGH方案及其变体[GGH97,HHGP+03]非常相似:非正式地,消息被散列到空间中的一个随机点,其签名本质上是一个附近的格点,这是使用短基找到的。我们的方案有两个主要区别:第一,它们基于具有最坏情况困难性的随机格;第二,更重要的是,签名是由随机解码算法生成的,其输出分布不受trapdoor基的特定几何结构的影响。(GGH最初的提议是不安全的,正是因为它的签名泄露了关于私有基的“形状”的信息,允许完全密钥恢复[NR06]。)

  第五章构造并分析了签名方案。

有效的普遍可组合的不经意转移:我们的下一个应用是围绕一个基于错误学习(learning with error, LWE)问题的regev密码系统[Reg05]。我们演示了一个trapdoor,它适用于一个优化版本的系统,在这个系统中,所有参与方都相对于某个共享随机格生成它们的公钥。

  这个trapdoor的第一个应用是普遍可组合的不经意转移,这是Peikert等人的一个并发工作的主题[PVM07]。这项工作的中心研究对象被称为消息有损(或“凌乱”)公钥,其定义属性是在这种密钥下生成的密文不携带(统计上)关于加密消息的信息。

  以前关于基于格的加密的工作[AD97,REG04,REG05]使用概率参数来表明混乱的密钥非常密集。在这项工作中,我们给出了一个在(一个微小的变种)Regev's密码系统中显式的几何描述凌乱的密钥。从本质上讲,如果公钥在与共享格相邻之后,该格的最小距离仍然较大,则该公钥是混乱的。然后,我们展示了如何识别这些密钥,使用我们的高斯采样算法有效地实现了算法的预处理步骤,该算法根据Aharonov和Regev[AR05]识别远离给定格的点。

  第六章将进一步详细描述用于Regev密码系统的trapdoor。

基于身份的加密:Shamir[Sha84]首先提出的基于身份的加密(IBE)允许任意字符串作为密码系统中的公钥。到目前为止,IBE是在随机预言模型中的二次剩余(QR)假设下,或在标准模型中的“交互”QR假设[Coc01,BGH07]下,使用具有双线性对的群(例如[BF03,BB04,Wat05])来实现的。

  我们的最终应用是在随机预言模型中基于LWE的有效IBE,或者在标准模型中基于LWE困难性的交互假设下。尽管在Regev's基于LWE的密码系统中可以从公钥(使用trapdoor)中提取密钥,但是获得IBE仍然不是完全直截了当的。本质上,问题是格式良好的公钥是指数稀疏的,因为它们只包含非常接近共享格的点。因此,很难看到哈希函数或随机预言如何将身份映射到有效的公钥。我们通过构造一个“对偶”的Regev's密码系统来解决这个问题,其中密钥生成和加密算法被有效地交换。在得到的系统中,空间中的每个点都是一个有效的公钥,它有许多等价的密钥,这些密钥仅仅是与公钥足够接近的格点。

  由于使用trapdoor提取密钥,我们的IBE在结构上与基于QR的IBE最为相似[Coc01,BGH07]。它是非常有效的,至少在渐近意义上是这样的:对于˜Θ(n)位消息(其中n是安全参数),加密和解密的摊余运行时间仅为每个加密位的˜O(n)位操作。密文展开式是O(1),甚至可以在LWE上的足够强(但仍然是多项式)假设下任意接近1。我们系统的一个可能的缺点是,主公钥和单个密钥都是˜O(n2)位。

  双重密码体制和IBE的构造见第七章。

1.2 Assumptions

  我们的trapdoor函数和签名是建立在随机格上平均情况下的"绝对距离"解码问题上的。我们的“类加密”原语,即不经意的传输和基于身份的加密,是建立在Regev[Reg05]定义的平均情况下的错误学习(LWE)问题上的。LWE可以看作是某类随机格上的一个“唯一解码”问题,是研究得很好的learning parity with noise问题的一个推广(到更大的模),它被认为是困难的,在密码学中有许多应用(如[BKW03,HB01,JW05,KS06])。

  在最坏的情况下,如果标准格问题(如最短向量问题)难以近似于格维数内的小多项式因子,则上述两个解码问题在平均情况下都是困难的。然而,LWE的缩小是量子的[Reg05],即,如果某些格问题在量子算法的最坏情况下是困难的,则LWE是困难的。鉴于目前的技术水平,有必要对类加密原语进行更强有力的假设,因为对于一般格,没有基于经典最坏情况困难性的已知密码系统。

  对于我们的方案中的格问题,最有名的经典(和量子)算法需要时间和空间指数在格的尺寸,以及最有名的多项式时间算法提供指数宽松近似。

1.3 Related Work

  使用完全不同的技术,Peikert和Waters[PW07]构建了一个完全互补的基于格问题(其一)的单射trapdoor函数集合。他们的TDFs基于LWE的困难性,而我们的TDFs完全基于经典的最坏情况下的困难性。他们的TDFs是指数稀疏图像的单射,而我们的TDFs是多对一的和满射的。他们的TDFs意味着选择密文安全加密,但稀疏的图像似乎使他们不太适合像签名方案和IBE这样的应用。最后,从纯美学的角度来看,我们的trapdoor函数更直接地对应于格上的“自然”解码问题。

  如上所述,Peikert、Vaikuntanathan和Waters[PVW07]利用我们的trapdoor检测凌乱的密钥,从最坏情况的格假设(其一)构建了高效且通用的可组合不经意传输协议。这项工作早于此,并为我们的trapdoor技术和高斯采样算法提供了动力。

  在保密通信中,Lyubashevsky指出,我们用于高斯采样的随机最近平面算法本质上是Klein[Kle00]提出的用于解决不同问题的算法。Klein考虑最近向量问题的一个限制变量,其中目标点被保证“异常接近”格。他的分析表明,在这样的条件下,该算法以显著的概率来输出最近的格向量。我们的贡献是分析了该算法对于任意目标点的整个输出分布,这表明该分布不受建议基的影响。

2 Preliminaries

2.1 Notation

2.2 Standard Definitions

2.3 Lattices

  格的具体定义可参见《Better Key Sizes (and Attacks) for LWE-Based Encryption》中的Preliminaries部分,Λ*为Λ的对偶格,span(Λ)表示Λ的生成子空间,<x, v>表示两个向量之间的点积。λ1(Λ)暗含l2范数,而λ1(Λ)暗含l范数。

2.4 Gaussians on Lattices

2.5 Learning with Error

3 Sampling from Discrete Gaussians

  在这里,我们展示了如何有效地从离散高斯概率分布DΛ,s,c中采样,给定以s为界的任何长度基(或全秩集)。作为第一次尝试,我们可以考虑首先从连续高斯分布中采样,然后使用短基将采样点“舍入”到附近格点的算法。事实上,Regev使用了这个精确的策略来进行缩减的“bootstrapping”步骤[Reg05],并使用LLL-reduced基和指数大于基长度的高斯参数s。不幸的是,当s是基长的较小倍数(例如poly(n))时,还不清楚该策略是否同样有效。问题是,在映射(通过舍入)到特定格点的空间区域内,连续高斯分布的密度函数可能显著变化。这使得分析舍入方案下分配给每个格点的总概率质量,并将其与期望的离散高斯分布进行比较变得困难。

  下面的采样算法完全避免了连续高斯分布,并且以一种紧凑的方式从格中“直接”采样。它可以看作是Babai's最近平面算法的一个随机版本[Bab86],该算法不总是选择最近的平面,而是随机选择一个平面,其概率与它与目标点的距离有关。本节的其余部分将致力于正式定义和分析采样算法。

3.1 Sampling Integers

  我们首先开发了一个核心子程序,它从特定一维格上的离散高斯分布(即整数Z)中采样。该子程序将依赖于分布的尾不等式。

  从DZ,s,c(对于足够大的s)中有效地采样有几种可能的方法;用标准的拒绝采样方法最容易描述工作让t(n) ≥ w(sqrt(log n))是一个固定的函数。算法SampleD的工作原理如下:在输入 (s, c) 和(隐式地)安全参数n上,随机选择一个整数x ← Z = Z ∩ [c - s · t, c + s · t],然后以概率ρs(x - c),输出x,否则重复。

  我们现在分析运行时间。每次SampleD的迭代从Z中选取一个均匀随机整数x。所选整数x落入集合Z ∩ [c - s, c + s]中的概率至少为 (2s - 1) / (2s · t) ≥ 1/2t,因为s ≥ ηε(Z) ≥ 1。一旦选择,x就以概率ρs(x - c) ≥ exp(-π)输出,这是一个正常数。通过一个标准的重复参数,运行时间是O(t(n))除了指数级的小概率(通过在一定次数的迭代后终止,而不显著地改变输出分布,可以使其为零)。

3.2 Sampling from Arbitrary Lattices

3.3 Sampling with Independent Vectors

4 Trapdoors for Hard Random Lattices

  在这一节中,我们将演示某些随机格的trapdoors,非正式地说,它们和最坏情况下的格“一样难”。然后,我们开发一些基础工具和原语,我们的密码应用将建立在其上。

4.1 Random Modular Lattices

(未完待续)

Trapdoors for Hard Lattices and New Cryptographic Constructions的更多相关文章

  1. CVE-2014-0160 Heartbleed Vul Analysis && OpenSSL Cryptographic Software Library Bug

    目录 . Heartbleed漏洞简介 . 漏洞造成的风险和影响 . 漏洞的测试.POC . OpenSSL漏洞源代码分析 . 防御.修复方案 . 从漏洞中得到的攻防思考 1. Heartbleed漏 ...

  2. This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms

    异常消息:This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms ...

  3. This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 解决方案

    但web启用了md5加密后 有可能出现这样的错误 This implementation is not part of the Windows Platform FIPS validated cryp ...

  4. Cryptographic method and system

    The present invention relates to the field of security of electronic data and/or communications. In ...

  5. Clustering and Exploring Search Results using Timeline Constructions (paper2)

    作者:Omar Alonso 会议:CIKM 2009 摘要: 截至目前(2009),通过提取文档中内嵌的时间信息来展现和聚类,这方面的工作并不多. 在这篇文章中,我们将提出一个“小插件”增添到现有的 ...

  6. This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms while caching 问题及解决

    一.背景    情节1:做别的测试安装下载了软件,妈蛋结果下了百度各种捆绑软件,之后一一卸载,清洁.    情节2:做完上述动作重启电脑后,有线连接连不上,尴尬,然后下载驱动,升级之后ok了. 二.问 ...

  7. 最大权闭合图(Road constructions)hdu3917

    题意:给出n个城市,k条道路,每条道路都有其负责的公司和花费,m个公司来投标修路,给出m个公司承包需要交纳的赋税,如果第i个公司负责修1-->2路,第j个公司负责修2-->3路,如果选择了 ...

  8. c# 调用MD5CryptoServiceProvider出现 System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

    进注册表按Win+R运行regedit修改下面的值为0就可以了 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorith ...

  9. hdu 3917 Road constructions 最大权闭合子图

    样例说明: n(城市数目)   m(工程队数目) 每个工程队上交的税收 val[i] k(k个工程) xi   yi  ci  costi , 工程队ci承包由xi到yi,政府的补贴为costi 注意 ...

随机推荐

  1. leetcode 5473

    这个题真是当时想麻烦了,,,感谢LLdl 提供的题解 其实一个很重要的点就是,如果后面的玩意翻转了偶数次,那就跟没变一样.如果是奇数次就取反. 怪我天真,第一反应就去位运算去了,,,,哪有那么复杂诶 ...

  2. Django学习路10_创建一个新的数据库,指定列名并修改表名

    在 models.py 中添加 from django.db import models # Create your models here. class Person(models.Model): ...

  3. PHP uksort() 函数

    ------------恢复内容开始------------ 实例 使用用户自定义的比较函数对数组 $arr 中的元素按键名进行排序: <?phpfunction my_sort($a,$b){ ...

  4. PHP password_hash() 函数

    password_hash() 函数用于创建密码的散列(hash) PHP 版本要求: PHP 5 >= 5.5.0, PHP 7高佣联盟 www.cgewang.com 语法 string p ...

  5. PHP is_array() 函数

    is_array() 函数用于检测变量是否是一个数组.高佣联盟 www.cgewang.com PHP 版本要求:PHP 4, PHP 5, PHP 7 语法 bool is_array ( mixe ...

  6. JVM科普

    目录 再看前言 不完美的程序 Java发展史 JVM族谱 什么是广义的虚拟机? 什么是Java虚拟机(JVM)? 二刷周先生的<深入理解JVM>时,没想到已经出了第三版,拿着第二版的我在风 ...

  7. 基于.NetCore3.1系列 —— 日志记录之日志配置揭秘

    一.前言 在项目的开发维护阶段,有时候我们关注的问题不仅仅在于功能的实现,甚至需要关注系统发布上线后遇到的问题能否及时的查找并解决.所以我们需要有一个好的解决方案来及时的定位错误的根源并做出正确及时的 ...

  8. 社区版Intelij IDEA快速创建一个spring boot项目(找不到sping Initializer选项)

    首先作为一个初学spring boot的小白,在学习过程中肯定会遇到各种问题... So,问题出现:在我想快速创建spring boot项目时,却在新建列表中找不到sping Initializer这 ...

  9. Linux 中文编码

  10. SCOI2020迷惑记

    睡了个好觉还是很困但没咋吃饭就出门了. 到了之后随便跟认得到的人扯了两句就进去了. 结果让我们站在外面等... 然后通知说不能自带水和吃的那我这个中午没吃饭的咋整啊. 马上啃了半块巧克力就进了考场,然 ...