Falcon Chapter 2(下)

2.4 快速傅立叶采样

        在实例化 GPV 框架时的第二个选择是陷门采样器。陷门采样器将矩阵 A(公钥)、陷门 T(陷门函数)、目标 c(段向量) 作为输入并输出短向量 s(有效签名),使得 s^{t}A = c mod q。利用第2.2节的符号,这等同于找到接近c0的v∈⊥Λq,因此我们可以不加区别地将术语“陷门采样器”指代执行一个或另一个任务的算法。我们现在列出现有的陷门采样器、它们的优点和局限性。显然,对于陷门采样器来说,效率很高。然而,同样重要的指标是采样器的“质量”:向量 s 越短(或者等效地,v 越接近 c0),这个采样器就越安全。

        1. Klein的算法[Kle00]作为矩阵B的活板门。它输出范数的向量 s 与 ∥B∥GS 成正比,这是短的,因此有利于安全性。不利的一面是,它的时间和空间复杂度在 O(m2) 中。

        2.就像Klein的算法是最近平面算法的随机版本一样,Peikert提出了舍入算法的随机版本[Pei10]。关于它的一个很好的事情是,当 B 在环上有一个结构时——在我们的例子中——那么它可以在时间和空间 O(m log m) 中运行。然而,它输出范数向量与 B 的谱范数 ∥B∥2 成正比。这大于我们使用 Klein 算法获得的结果,因此安全性更差。

        3.Micciancio 和 Peikert [MP12] 提出了一种新方法,其中 A 及其陷门的构造方式允许简单高效的陷门采样。不幸的是,不与NTRU兼容

        4. Ducas 和 Prest [DP16] 提出了“快速傅里叶最近平面”,这是 Babai 在环上的晶格最近平面算法的变体。它以与快速傅里叶变换非常相似的递归方式进行,因此名称。该算法可以随机化:它产生了一个活板门采样器,它结合了 Klein 算法的质量、Pekert 的效率以及可用于 NTRU 格。

        最终Falcon选用了第四格作为门采样器。

        选择标准偏差 :选择标准偏差。当使用活页采样器时,要设置的一个重要参数是标准偏差 σ。如果太低,那么不再保证采样器不会泄露秘密基础(事实上,对于所有已知的采样器,值 σ = 0 为学习攻击打开了大门 [NR06, DN12])。但是如果太高,采样器不会返回最佳短向量,并且该方案不像它可能的那样安全。我们的快速傅里叶变换采样器与 Klein 的采样器有许多相似之处,包括 σ 的最佳值。按照[Pre17,第4.4节),我们取 σ = n(Z^{2n})* ||B||GS

2.5 安全性

2.6 参数总结

        在本节中,我们将总结参数之间的相互作用。由此产生的参数选择过程在Supporting_Documentation/additional/parameters.py,中是自动化的,这也给出了密钥恢复和伪造的核心SVP硬度。

        查询次数Qs、目标安全级别λ和环度n。我们从三个初始参数开始:签名查询 Qs 的最大数量、目标安全级别 λ 和环 Z[x]/(x^{n} + 1) 的程度。根据 [NIS16],QS = 264。同样根据 [NIS16],NIST Level I 需要 λ = 128,NIST Level V 需要 λ = 256。最后,我们取:

                        n = 512 for NIST Level I, (2.8)

                        n = 1024 for NIST Level V. (2.9)

        Falcon 的参数和安全估计。初始参数在图的左侧。图右侧的参数(包括具体安全估计)是从初始参数系统地导出的:

 

   

        为了最大化NTT的效率,模数Q需要是形式为k·2n+1的素数。这种形式的最小素数是:

        对于这个值,Q基本上对安全没有影响:它大到足以抵抗对SIS的混合攻击和微不足道的攻击,小到足以抵抗过多的NTRU攻击。

        Gram-Schmidt范数∥B∥GS。我们希望最小化∥B∥GS。在[DLP14,第3]节中已经表明,在实践中,我们可以确保(在重新采样有限数量的时间):

        从离散的高斯DZ,σ{f,g}中采样f和g的每个系数:

 

        使用快速傅里叶采样算法(以 B 为基,标准差为 σ)从离散高斯分布中采样签名。只需 ε ≤ 1/√Qs · λ 和:

 

        在签名和验证过程中,签名(S1,S2)必须验证∥(S1,S2)∥²≤⌊β²⌋才能被接受,并具有:

 

        因为∥(s1,s2)∥的期望值是√τ2n,所以我们称签名的截尾率为σsig;任何大于该期望值的系数大于τsig的签名被拒绝。通过应用[Lyu12,引理4.4,项3],采样签名大于β(因此签名过程必须重新开始)的概率上界如下:

 

2.7猎鹰的优势和局限性

 2.7.1 Advantages

         紧凑性。猎鹰的主要优势是它的紧凑性。这并不令人惊讶,因为猎鹰的设计以紧凑性为主要标准。基于无状态散列的签名通常具有较小的公钥,但具有较大的签名。相反,一些多变量方案实现了非常小的签名,但需要大的公钥。基于格子的方案[LDK+19]可以两全其美,但NIST候选方案|PK|+|sig|没有像Falcon那样小。(较小公钥加较小签名)

        快速生成和验证签名。签名生成和验证过程非常快。对于验证算法尤其如此,但即使是签名算法在中等能力的计算机上也可以每秒执行1000多个签名。

        ROM 和 QROM 中的安全。GPV 框架在随机预言 (ROM) 中有一个安全证明,量子随机预言模型 (QROM) 中的安全证明后来在 [BDF+11] 中提供。另见 [CD 20)。相比之下,Fiat-Shamir 启发式最近仅在 QROM 和某些条件下被证明是安全的 [LZ19, DFMS19]。

         模块化设计。猎鹰的设计是模块化的。事实上,我们用NTRU晶格实例化了GPV框架,但如果必要的话,用另一类晶格替换NTRU晶格将是很容易的。同样,我们使用快速傅立叶采样作为我们的陷门采样器,但它也不是必需的。实际上,一个极端的简单性/速度折衷方案是用克莱因采样器替换我们的快速傅立叶采样器:签名生成将慢两个数量级,但它将更容易实现,其黑盒安全性也将相同。

        带有消息恢复的签名。在 [dLP16] 中,已经表明 Falcon 的初步版本可以在消息恢复模式下实例化:消息 m 可以从签名 sig 中恢复。它使签名长两倍,但允许完全恢复大小略小于原始签名大小的一半的消息。在我们可以应用它的情况下,它使 Falcon 从紧凑性的角度来看更具竞争力。

        密钥恢复模式。也可以在密钥恢复模式下实例化Falcon。在这种模式下,签名变得两倍长,但密钥减少到单个哈希值。除了产生非常短的密钥之外,这还将总大小|pk|+|sig|减少了约15%。更多详细信息请参见第3.12节。

         基于身份的加密。如[DLP14]所示,Falcon可以直接转换为基于身份的加密方案。

        简单的签名验证。签名过程非常简单:本质上,只需要计算[H(r∥m) − s2h]modq,归结为一些NTT操作和哈希计算。

2.7.2 Limitations

        精细的实施。我们认为,密钥生成过程和快速傅立叶采样都是非常容易理解和实现的,这构成了Falcon的主要缺点。从好的方面来看,快速傅里叶采样使用快速傅里叶变换子程序和树,这两个对象大多数实现者都很熟悉。

        浮点算术。我们的签名过程使用53位精度的浮点算术。虽然这不会对软件实现造成问题,但当考虑在受限设备上实现时-尤其是那些没有浮点单元的设备-时,它可能会被证明是一个主要限制。

        我们之前将“不清楚的侧通道阻力”列为Falcon的限制,这是因为对整数进行离散的高斯采样。现在的情况要少得多:[HPRR20]和[Por19]分别提供了此步骤和整个方案的恒定时间实现。具有挑战性的下一步是以一种蒙面的方式实现猎鹰。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值