❝原文:https://eprint.iacr.org/2024/1287
作者:Vadim Lyubashevsky
译者:Kurt Pan
我们通过构造一个CPA安全(即选择明文攻击安全)的公钥加密方案来开始我们对基于格的密码学的研究。回顾一下,CPA安全的加密方案由三个算法组成:密钥生成、加密和解密。密钥生成算法输出一个公钥/私钥对。加密算法接受公钥和消息作为输入,并产生密文。反过来,解密算法接受密文和私钥,并输出消息。如果对于敌手选择的任意两条消息,这两条消息的加密在计算上不可区分,则该方案被称为CPA安全的。
我们在本节中只讨论CPA安全的加密,因为存在通用的转换(例如Fujisaki-Okamoto [FO99])可以将CPA安全的加密方案转换为CCA安全的方案(其中敌手还可以访问解密预言机)以及针对主动攻击者安全的密钥交换协议(第4.8节)。
我们指出,本章中的方案与它们基于离散对数和因数分解的类似方案不同,最有效的实例化方式会产生解密错误。也就是说,即使密钥生成和加密算法被正确运行,产生的密文也可能以非常小的概率无法解密为被加密的消息。一般来说,具有足够小的解密错误(比如大约)似乎不会损害方案的实际安全性;只需要在转换的证明中考虑这些(例如[HHK17, SXY18])。
❝如果"正确"处理,解密错误不会导致任何安全问题。另一方面,如果忽略它们的存在,那么CPA安全的方案在CCA安全模型中将变得平凡地不安全。在某些场景中,如全同态加密方案(FHE),其中方案仅是CPA安全的,需要意识到它们在实践中引起的安全影响(参见[LM21])。
https://link.springer.com/chapter/10.1007/978-3-030-77870-5_23
本节中的所有运算都将在环中执行,其中使用通常的整数模的加法和乘法。对于集合,我们写表示从集合中均匀随机选择。对于任何正整数,我们定义集合
这个记号自然地扩展到向量(和矩阵),例如表示一个矩阵,其系数在中。默认情况下,所有的向量都是列向量。也可以通过写来表示向量在中。对于整数,表示最接近的整数,平局时向上取整。
当在后面的章节中使用固定次数的多项式时,我们写表示所有整数系数都从中均匀选择。类似地,对于向量,表示这样的分布:向量中的每个多项式都按选择。有时候,我们会想要从某个分布中采样,而不是从集合中均匀采样。在这种情况下,我们类似地写或,其中是整数或多项式,是整数或多项式的向量。
我们暂时假设对正整数和,以下两个分布在计算上是不可区分的(在与相关的安全参数中):
也就是说,我们假设不存在有效的算法可以判断给定的样本来自第一个还是第二个分布。这个不可区分性假设显然是错误的,因为人们可以使用高斯消元来求逆(或的一个子矩阵),并检查是否确实存在一个满足。请容忍这个例子,因为这个假设的一个略微修改版本构成了大多数格密码学的基础。我们现在将使用这个假设来构造一个简单的CPA安全的公钥加密方案,它非常类似于基于离散对数的ElGamal加密方案。该方案的私钥和公钥是
要加密消息,加密者选择一个随机向量并输出密文,其中
要解密,只需计算
方案的正确性如下,因为
❝将此与EIGamal加密方案进行比较!在那里,私钥是 ,公钥是 。密文是 ,解密是 . 。解密工作的原理完全相同,除了在我们的例子中,我们没有交换律,因此在左侧乘以向量 ,在右侧乘以 。
方案的安全性由我们的假设和混合论证得出。根据假设,公钥与均匀分布不可区分。因此公钥矩阵与均匀分布不可区分,再次使用我们的假设,得到分布基于相同的假设(只是和互换了)也与均匀分布不可区分。因此,分布与均匀分布不可区分,因此该方案是CPA安全的。
注意我们使用了两次不可区分性假设——一次用于论证公钥看起来是随机的,另一次用于论证密文是随机的。我们可以从(其中)中随机选择,而不是从中选择。如果我们设置,那么可以证明公钥实际上在统计上接近于均匀分布(见第2.5.5节)。但是形成密文仍然需要我们使用那个荒谬的不可区分性假设。因此至少使用一次假设是不可避免的。
我们现在将对上一节的假设做一个"小"调整,这将使其看起来更为有效一点,且仍然允许我们按照相同的大纲构造一个密码系统。我们现在定义带错误学习问题(LWE)[Reg09]的一个简单版本,许多格密码学都基于此。
❝定义1. 对于正整数和, 问题要求区分以下两个分布:
,其中,, ,其中且
使困难的关键部分是额外的"错误(误差)"向量的存在,这使得高斯消元攻击不适用。问题的确切难度取决于参数和,我们在第3节中对此进行了更详细的讨论。现在,只需要知道随着和的增长,问题变得更困难就足够了。参数对问题的难度没有很大影响,除了在极端情况下(大约为),在这种情况下可以通过线性化技术[AG11]在大约的时间内构建一个区分器。在将在本章中展示的构造中,永远不需要那么大。由于参数不会特别重要,我们有时在陈述困难假设时会省略它,只写。
对于私钥和错误项使用均匀分布并没有什么特别之处——只是使表述更简单,所以我们选择使用这个分布作为说明的目的。在LWE的原始定义中,误差分布被选择为舍入的高斯分布——也就是说,生成一个具有某个标准差的以0为中心的连续随机高斯分布,并将其舍入到最接近的整数。这个分布对于平均情况到最坏情况的归约证明[Reg09, Pei09]是必要的,这些证明表明LWE至少与某些最坏情况格问题一样困难。这个限制后来被证明不是严格必要的,例如可以使用均匀分布[DM13, MP13]。一些实际实现,特别是Kyber,使用二项分布来生成误差(见第4.7节),因为在实践中有时生成一串比特并将它们相加比生成中的均匀元素更快。
为了考虑可以使用的不同分布,我们可以相对于私钥分布定义LWE问题为:
❝定义2. 对于正整数和分布, 问题要求区分以下两个分布:
,其中,, ,其中且
为具体起见,我们将主要使用定义1中的LWE,但是一旦考虑了的特定性质(特别是这个分布生成的私钥的期望范数),我们所说的一切同样适用于定义2中的问题。
需要注意的是,在LWE的定义中,我们没有对和的相对大小设置任何条件。因此,某些选择可能导致平凡困难的LWE实例。例如,如果且足够大,那么分布确实可能在统计上接近。然后显然不应该能够仅基于这个假设构建加密方案,因为我们将拥有一个无条件安全的公钥加密方案。为什么事情确实不会成功的原因在我们考虑解密的正确性时会变得清楚。当然也可以设置参数使得LWE不是一个困难问题。例如,如果,那么不难弄清楚是否接近向量的倍数。我们将在第3节中讨论LWE问题的难度。
另一个注意事项是,也可以定义LWE,其中私钥被选择为在中均匀分布(小心然后取足够大,使得LWE问题不会变得平凡困难);这确实是[Reg09]中LWE最初定义的方式。在[ACPS09]中,已经表明从与相同的分布中取会产生一个本质上同样困难的问题。对于应用,取更小通常更高效,所以我们只考虑这个版本的LWE问题。
正如在前一节中已经明确的那样,区分与均匀分布也是LWE问题,只是和互换了——即问题。类似地,通过混合论证,区分
与均匀分布的难度 (区分优势最多增加倍) 等同于或中较容易的那个。
在本节的其余部分,我们将展示源于[Reg09]中原始工作的密码系统,并通过各种后续工作中的一系列观察得到改进和推广(参见[ACPS09, Pei09, LPS10, LP11, BCD16])。我们可将本节中的方案视为2.2节中加密方案的修改,但基于的难度,而不是那里明显错误的假设。第一个修改将是消息——它不再是中的任意元素,而是来自集合。密钥生成被修改为:
要加密消息,加密者选择和,并输出
首先讨论一点记号。我们在中工作,但上面的方程有一个看起来奇怪的项。我们的意思是中最接近有理数的元素(例如,如果,则)。所以除法运算不在中——即我们不是乘以或2的逆元。(如果我们想在中进行除法,我们将把它写成乘以逆元)。出于表述目的,我们通常会省略符号,简单地写,因为意思应该是清楚的。
在讨论解密之前,我们先看看安全性论证,看看为什么该方案基于的难度。论证与第2.2节中的相同。公钥与上的均匀分布的不可区分性直接源于假设。将公钥重写为矩阵,我们看到假设再次意味着分布也与均匀分布不可区分。因此,基于,对于任何,与均匀分布不可区分。注意,我们使用了两次假设,参数在论证公钥看起来随机时作为的列数发挥作用,然后在论证密文看起来随机时作为的行数发挥作用。这直观地解释了为什么在试图最小化公钥加密中公钥和密文的组合大小时,将中的行数和列数设置为相等是有意义的。我们在第2.4节中进一步讨论这个话题,并在第2.5.5节中也讨论一些应用和一个稍微修改的密码系统,在这些情况下可能不想让行数等于列数。
要解密,计算。但是,我们不像之前那样干净地得到消息,而是得到了
上述方程中的项相互抵消; 然而我们留下了一些"错误"项的组合。幸运的是,所有这些错误项的系数都由限定,因此向量积和各自由个大小最多为的项组成。因此可以重写为,其中,因此如果参数设置为,解密者可以通过检查前面的值是更接近0还是来从确定。
上面计算的值是错误大小的上界。由于和的系数是从以0为中心的范围中随机选择的,误差实际上不太可能那么大。由于抵消,它实际上会更接近。一般来说,我们可以得到误差的界,使得以非常高的概率(比如)误差将低于。这意味着解密错误的概率最多为。这样小的错误在应用中以及在将这个CPA加密方案用作其他构造的组件时(例如CCA安全加密)是可以容忍的。
有渐近的方法来近似计算这样的界,但是当处理具体参数并且不太大时,可以(使用简单的脚本)得到精确值
使用这样的事实:随机变量和的概率分布可以建模为多项式的乘积。假设和是有限集上的随机变量(可能具有不同的分布)。对于所有,令(相应地)是(相应地)等于的概率。现在定义多项式
令
是和的乘积。现在可以在系数和的概率之间建立直接联系。特别地,
这意味着
这直接延续到计算上述所要求的概率,注意到分布为个独立随机变量的和,其中
而只是上的均匀分布随机变量。所以,例如,那么
而所有其他都是0。如果我们然后写
那么所求概率恰好是,其中再次是中与相关的系数。通过设置,我们将获得第2.3.1节中的解密算法正确解密的概率。
我们现在知道如何相对于彼此设置参数,以使得第2.3.1节中的加密方案以压倒性概率正确解密。我们还没有讨论应该如何设置参数以使其安全,我们将把这个问题推迟到稍后。但我们仍然可以根据参数计算公钥和密文的大小。
公钥由一个随机矩阵和一个向量组成。由于是完全随机的,因此不需要存储它——如果通过选择256比特种子然后使用某个密码学PRF(例如基于SHA-3函数的SHAKE)将定义为的扩展来创建,那么只需要存储256比特而不是的比特。在加密和解密时需要从扩展,但这样做而不是存储通常是值得权衡的——特别是当该方案用作密钥封装机制时,人们更愿意传输而不是整个。公钥的另一部分依赖于私钥,因此不能以类似的方式压缩,因此总公钥大小为比特。密文可以使用比特表示。具体的安全参数设置将需要取和,因此仅加密一个明文比特就如此庞大是有些低效的。我们现在将给出LWE加密方案的一个推广,它允许在公钥和密文大小之间进行各种权衡。
当前基于LWE的加密方案具有如此大的密文扩展的原因是由比特组成。为了减少密文扩展,我们将给出该方案的一个变体,它在许多消息的加密之间分摊密文部分[PVW08,MR09, BCD+16]。权衡是公钥会更大。假设我们想加密比特,我们将其排列成矩阵。密钥生成过程现在将是
注意公钥大小现在增加到比特。加密算法类似地进行,其中加密者选择和,并输出密文
它由比特组成。为了在公钥和密文大小之间获得权衡,可以改变参数和,同时保持它们的乘积(总比特数)固定。为了获得最小的组合公钥和密文大小,应该设置。这样,加密比特需要大约比特,在实践中将由项主导,因为通常不需要使用公钥加密来加密超过比特就可以切换到对称加密。
这个密码系统的安全性再次直接基于。注意公钥可以重写为,其中和分别是和的第列。那么与均匀分布的不可区分性直接由使用通常的混合论证得出,安全性损失比特。
❝与混合论证的许多应用一样,在这种情况下不清楚是否存在真正的安全性损失,还是仅仅是证明的副产品。
写,我们再次使用假设(和混合论证)注意到分布与均匀分布不可区分,因此
对于任何固定消息都与均匀分布不可区分。解密的方式与我们在本节中一直为所有其他方案所做的完全相同。给定密文,解密者计算
从上面观察,的第个系数等于
其中和是和的第行,和是和的第列,而和是和的第个位置。由于所有向量都在中,并且它们的所有系数都是从中均匀选择的,我们处于与之前完全相同的情况,因此可以以与以前完全相同的方式设置参数以具有小的解密错误。
❝注意现在解密错误概率将针对的每个系数(并且概率不是独立的),因此应该使用并集界来界定总解密错误。
前一节中提出的方案更多是一个在实践中会做什么的一般框架。当用具体参数实例化这样的方案时,有几种可能的优化可以考虑,我们将在接下来描述。如果不实际尝试一些可能性并查看获得什么安全性/输出大小,就不容易弄清楚究竟可以使用哪些优化以及如何最优地精确设置参数。
密文部分为总密文大小贡献了比特。假设加密者不想将的每个系数的所有比特作为密文的一部分发布,而是想每个系数仅传输比特。这是可能的,但会给解密方程增加进一步的误差。将加法群可视化为圆上的点(参见图1),我们想选择一个大小为的集合,使得中相邻点之间的最大距离(以它们之间的点数测量)尽可能小。注意是我们能希望的最小值,所以我们想尽可能接近这个数字。可以将这样的集合定义为

图1:在圆上的点表示。如果我们定义集合,那么它由四个点组成。因此可以用2比特表示,并且中的每个点距的某个元素的距离都在以内。
如果,则所有相邻点之间的距离都相同。否则,所有距离彼此相差1以内,这是能希望的最好情况。
集合的关键特征是每个都在的某个元素的距离之内。让我们定义为中最接近的元素,为。然后,不是将作为密文的一部分传输,可以传输。注意存在一个使得。
如果密文以这种方式创建,那么解密将产生
与之前解密的唯一区别是项的存在。注意对解密错误的影响有限,因为其他错误项涉及内积,在上式中产生更大的系数。在实践中,通常可以将设置为小常数,如3或4,而不会使解密错误增加太多。这意味着不是为密文贡献比特,而是仅贡献比特。假设是均匀分布的,我们可以获得的精确分布,然后使用与第2.3.2节中完全相同的技术计算解密错误概率。
在某些情况下,对密文部分使用类似的比特缩减过程也可能有意义。然而,在这里,不能在不显著增加解密错误的情况下删除比特,因为添加到的任何误差都会乘以,因此我们会在上式中得到一个额外的项,其中的定义类似于。但是因为是密文大小的主要来源,即使稍微减少中的比特数也可能产生显著差异。然后的技巧是使用试错来平衡解密错误和密文大小。
我们现在使前一节关于压缩的讨论更加具体。首先定义一个将元素从一个集合映射到另一个集合的操作。当目标集合较小时,这可以看作是舍入或压缩。当目标集合较大时,这可以看作是提升或解压缩。
❝定义3. 对于元素和某个正整数,我们定义从到的映射为
应该观察到,的结果元素与中的精确代表元素无关——也就是说,集合中的所有元素在中产生相同的结果(因为);因此上述定义是良定义的。我们现在证明关于如何使用上述函数有意义地压缩和解压缩数据的核心引理。特别地,它指出如果首先将中的元素压缩到中的元素(其中),然后解压缩回,结果不会离原始元素太远。
❝引理1. 对于整数和,有
对于某个满足的。
证明. 根据舍入的定义,存在,使得对于,
因此,
对于某个(这是舍入的结果)和。
为了将定义3中的模切换操作与第2.5.1节中的例子联系起来,我们将前一节中的定义与这里引入的概念联系起来。
引理1证明了。在压缩的实现中,我们当然不会发送元素,而是,因为后者可以更紧凑地表示。应该将视为的压缩的解压缩。
我们还指出,从有噪声的解密输出恢复消息也可以使用压缩函数来完成。特别地,对于元素,将映射到0(如果更接近0而不是),否则映射到1。因此可以将解密过程重写为
另一个值得一提的点是,就最小化当固定为某个大小时所有点之间的距离而言,对的定义对于所有都是最优的。然而,对于某些特定的值,可以不同地定义集合,同时仍然实现相同的最优性。我们可能想这样做的原因是为了避免执行操作,该操作需要除以(通常是素数)。例如,如果我们有和,那么我们可以定义集合。注意,为这个集合计算只需要模8的模约简和除法,这通常是CPU中非常高效的操作,因为只需要寄存器移位。
在Kyber加密方案(第4.7节)中,由于模数很小,我们无法找到一个素数既满足我们需要的最优乘法效率条件(见第4.6节),又有一个集合使得对它的舍入只涉及上面的好操作。因此我们使用的通用定义。在Dilithium签名方案(第5.7节)中,模数更大,因此我们能够设置它,使得我们有一个好的并且仍然有快速乘法。
根据LWE假设,当和的系数来自时,分布看起来与均匀分布不可区分。如果我们将的每个系数舍入到某个子集中的最近点,如第2.5.1节所示,那么的分布仍然与不可区分,其中是均匀随机的。现在让我们检查。由于的系数在小子集中,结果可能是它对的值没有任何影响。特别地,当如(18)中定义时,的概率(在的随机性上)大约是。要看到这一点,首先注意只能在在中两点之间的中点的内时发生。更准确地说,如果的某个系数在中两点之间的中点的内,那么的该系数有种可能性使得(它们是那些将使和的系数穿过到中点另一侧的整数)。所以如果我们假设的每个系数在中是随机的,那么某个单独系数使的概率是
如果我们进一步假设的所有系数都是独立的,我们得到所述的的概率。
所以每当相对于和很大时,添加就没有区别,因此首先就没有理由添加它!区分分布与(对于随机)被称为带舍入学习(LWR)问题,每当添加不影响舍入输出时,它至少与LWE一样困难[BPR12, AKPW13, BGM+16]——也就是每当以高概率成立时。有时这个假设在密码方案的构造中使用,即使参数不允许从LWE进行归约(即不够大)。在这种情况下,它是一个单独的假设,其与LWE的关系不清楚。
在目前这个时候,对LWR没有比仅仅攻击LWE更好的攻击,其中LWE噪声向量隐式地是。也就是说,我们会考虑LWE实例,其中被确定性地选择为。基于当前的攻击状态,重要的是要注意,即使在我们有从LWE到LWR的归约的情况下,这个隐式噪声向量实际上在范数上(远)大于我们从归约中得到的LWE噪声——所以LWR问题很可能比归约中得到的LWE问题更困难。从LWE到LWR的归约仅仅用于提供证据,表明至少对于某组参数,LWR不可能比LWE容易得多。这提供了一些证据表明LWR问题的"结构"是合理的。
做出LWR假设的优势在于,由于它不添加误差,它允许更小的参数。作为说明,让我们看看2.5.1节的解密过程。添加的误差是LWE假设所需的项,而误差自然地由舍入产生。由于我们已经有,可能是不必要的。因此在LWR假设下,舍入执行两个功能——它添加类似均匀的误差向量并减少密文大小。类似地,不是向密文添加误差,我们可以简单地将其舍入到某个(不同的)集合,这具有向添加确定性误差的效果——从而使项可能是冗余和不必要的。
我们的加密方案将比特消息打包到矩阵中。例如,我们本可以将其打包到矩阵
中。为了使解密成功,我们需要对加密和解密算法进行两个小改动,同时调整参数。我们将用替换加密算法中的项。计算的解密算法部分将导致项类似地被替换。这意味着为了使解密产生正确结果,需要将剩余的错误项(即不涉及的项)控制在中,而不是像以前那样在中。
为了使解密再次工作,参数的简单修改将涉及简单地将增加大约倍。注意这可能对密文和公钥的大小产生积极影响。之前公钥的大小是比特。例如,如果我们将增加倍,但将减少2倍,那么大小将变成比特。如果,这将更小。但是在保持其他一切不变的情况下增加会降低安全性(如第2.3节开头所述,随着比率的增长,问题变得更困难),因此我们需要增加或增加。实现最优参数的方法是尝试一些可能的选项,或者更好的是,编写一个为你做这件事的脚本。
在我们迄今为止提出的所有公钥加密版本中,安全证明都是使用LWE假设来论证公钥在计算上与均匀分布不可区分,然后使用公钥的均匀性和LWE假设再次论证密文在计算上与均匀分布不可区分。然而,有时让公钥真正均匀是有用的。或者类似地,在公钥是均匀的(计算)假设下让密文真正均匀。换句话说,对于某些应用,我们可能只想应用一次LWE假设。我们现在将解释如何构造这样的密码系统,并给出一些关于这在实践中何时可能真正有用的直觉。
为了使公钥或密文均匀,我们需要使用剩余哈希引理(Leftover HashLemma)[IZ89, IN96]。该引理应用于我们的场景大致表明,如果(其中是素数)和,其中,那么的分布在统计上接近于的分布,其中。换句话说,如果从某个集合中均匀选择,那么这个集合的大小应该大于函数的值域的大小。有了剩余哈希引理,很容易看出如何修改密钥生成或加密过程,以确保公钥或密文是随机的。
如果我们希望公钥是均匀随机的,我们将密钥生成替换为
注意,由于我们不使用LWE假设两次,不再有理由让密钥生成中的与加密中的相同——所以我们给它们不同的名称。加密和解密方程可以保持与之前完全相同。当设置参数以确保解密返回正确答案时,应该注意这样的事实:由于和/或比以前更大,项更大,还应该注意这样的事实:项是0,因为密钥生成过程中不存在。
我们希望密文在(应用LWE假设以得出的公钥与随机不可区分之后)是均匀随机的场景所需的必要修改使用完全相同的原理。特别地,的维度和的分布应该使得(其中)与不可区分,其中是均匀的。
不会进一步详细讨论细节,现在将触及为什么想要公钥或密文真正均匀。我们提供的两个例子绝非详尽无遗,但说明了在哪里以及为什么牺牲一些效率可能是必需的。均匀公钥的主要应用是在基于格的身份基加密构造[GPV08]中。在这种情况下,身份为的用户的公钥是,其中,对于将映射到的密码哈希函数(建模为随机预言机)。换句话说,对所有用户都是通用的,而对每个用户都是唯一的并且是均匀随机的。在IBE方案中,用户的公钥应该可以由任何人计算。因此不可能从某些秘密信息(例如私钥)生成它。另一方面,需要存在一种方法将私钥与公钥关联。这个问题的解决方案是主权威机构拥有的"陷门",这允许他创建满足的低范数向量。这个然后是用户的私密解密密钥。有趣的是,注意密钥生成不像之前那样完成——特别是,私钥是在公钥之后创建的。这只有在主权威机构创建时带有陷门才可能。尽管密钥创建顺序的这种差异,[GPV08]的主要结果提供了算法,使得的分布将是相同的,无论是在计算之前选择还是反过来。
想要密文均匀随机的应用出现在有关于密文随机性的某些信息可能泄漏的情况下。在[AGV09]中观察到,可以泄漏关于的某些信息,根据剩余哈希引理,密文仍将保持均匀随机,因为中仍有足够的熵。
对公钥加密方案的另一个可能的优化是从不同的分布中选择私钥多项式的系数[ZYF+20]。特别地,选择和(其中)可能是有益的。以这种方式分割事物的直觉如下。基于当前已知的最佳算法,区分与均匀分布的难度取决于向量的范数(见第3.3节)。因此我们可能想要策略性地在和之间分配的总固定范数。注意这不再是本节中定义的LWE问题,但它也许也是一个合理的假设。
要了解为什么我们可能想要使和的范数不同,可以看看解密过程获得的错误。要正确解密,我们希望
尽可能小——这个值越小,我们可以设置的模数就越小,这既会使LWE问题更困难,又会减少公钥大小。为了说明直觉,假设所有向量都从中选择——标准差为的以0为中心的正态分布。
❝让我们忽略这个分布是连续的而非离散的这一事实。如果我们以某种自然的方式将分布离散化,同样的直觉仍然适用。
如果维向量从中选择,那么已知紧密集中在附近。此外,还已知向量和向量的内积根据分布分布。使用上述两个事实,我们可以得出,如果和,那么上式(大致)根据分布分布。此外,向量和的范数大约是。
我们现在可以看到,如果在一种情况下,那么
另一方面,如果我们取和,那么我们将有
所以在两种情况下,和的范数是相同的,但在第二种情况下,上式的分布具有较小的标准差,这意味着对于的情况,上式中的误差更小。是否应该确实尝试设置取决于人们对两个LWE问题(一个如定义2中,一个是具有不同分布)的难度是等价的信念。
本节中描述的加密方案可以很容易地转换为被动安全的密钥传输方案,其中双方希望就共享的对称密钥(例如AES密钥)达成一致。该协议将简单地涉及第一方创建公钥并将其发送给第二方。然后第二方选择AES密钥并将其作为消息加密,并发送密文。然后第一方解密共享密钥。
虽然上述协议对于使用经典密钥交换(例如Diffie-Hellman)的大多数目的来说已经足够好,但协议流程有一个关键顺序。发送的用户不能在接收到公钥之前发送他的消息。另一方面,在经典的Diffie-Hellman协议中,任一用户都可以首先发送他的。可以类似地从LWE问题创建具有这种性质的协议,但这将是一种效率低得多的密钥交换方式,当不需要这种任意流程性质时。
我们将描述这个简单协议用于就一个随机比特达成一致的情况。要就更多比特达成一致,将应用与第2.4节中相同的思想。有一个公共随机矩阵,它被每个人信任为已经诚实生成(例如,它由SHAKE从种子0扩展而来)。方选择向量。第一方发送,而第二方发送。在收到第二方的消息后,第一方计算,如果这个值更接近而不是0(即它在和之间),它将设置共享比特(否则将设置)。第二方计算并使用相同规则设置或1。简而言之,他们最终得到
并希望错误项和(其最大幅度为)不会导致。
注意的概率至多是落入和附近的"危险"范围的概率。特别地,
是中任何特定值的概率是,因此上述概率至多为。在实践中,将使用第2.3.2节中的技术来降低这个概率,但仍会以的概率得到和之间的不匹配。这与我们在加密方案中的情况非常不同,在加密方案中我们可以设置参数使得解密错误相对于是指数小的(甚至是0)。在非交互式密钥协商中,获得可忽略小的错误将需要将设置得非常大,这对通信大小有不利影响(参见[GdKQ+24],其中详细讨论了具体细节)。实际上,有技术原因说明为什么这种低效率对于以"自然方式"使用LWE进行非交互式密钥交换可能是固有的[GKRS22]。
❝如您喜歡,請打賞支持我👇
讓我們一起向付費圍牆花園和廣告推薦注意力經濟宣戰,讓賽博空間重新清朗!