FV参数对硬件加速的影响

FV参数对硬件加速的影响分析

FV参数对其硬件加速影响的分析

摘要

云计算服务的发展受到隐私问题的限制。例如,集中式医疗服务在使用外包计算平台时需要保证机密性。全同态加密是解决此类问题的直观方案,但在2009年之前,现有的方案仅能执行有限数量的操作(部分同态加密)。2009年,C. 伽内特提出了一种从SHE方案构建FHE方案的蓝图。然而,由于初始SHE方案存在巨大的数据大小开销和指数级噪声增长,该方案并不实用。此后,人们对SHE方案及其噪声管理进行了重大改进,由此产生的方案(如BGV和FV)使得小型应用成为可能。

除了方案改进外,还提出了新的实用方法,使同态加密更接近实际应用。Canteaut等人在2015年提出的基于IV的流密码转加密方法,将转加密过程的在线延迟降低为一次简单的同态加法。流密码的同态计算(用于生成转加密的密钥流)可以在离线阶段完成,从而从用户角度来看实现几乎透明的转加密过程。这种方法结合硬件加速,可使同态加密更接近实际应用。

本文讨论了在相关研究常用方法背景下,为FV方案高效实现而选择FV参数的问题。乍一看,使用较大的多项式次数来减小系数大小似乎是有利的,但进一步的观察结果却与此相矛盾。较大的多项式次数意味着更大的密文和更复杂的实现,而较小的次数则意味着在CRT多项式表示中需要寻找更多的素数。这项初步工作针对合适硬件目标的选择结果,促使我们倾向于在FV方案中选择低次多项式而非小系数。

关键词 :同态计算 · FV参数 · Chinese余数定理 · Number理论变换

1 引言

隐私是涉及处理敏感数据的应用在云服务发展过程中关注的主要问题之一。远程服务器上的数据隐私通过标准密码学得到保障。问题出现在这些数据直接在外包服务器上进行处理时。自2009年根特的论文[15],以及里维斯特等人提出的全同态加密概念1978[22],不再是一个假设。同态加密方案保证了明文数据与加密数据代数系统之间操作的等价性。一个全同态加密方案可确保在明文数据域上考虑的任何函数都存在相应的同态等价。同态加密方案正伴随着实用方法不断涌现,但软件实现的性能不足使其在实际应用中难以使用。因此,应探索针对高效同态加密的硬件优化。

部分同态加密方案能够同态地评估加法(例如佩利尔)或乘法(例如RSA)。设计一种能够同时评估加法和乘法的同态加密方案存在困难。事实上,在同态密码学中,为了安全性(非确定性加密),会在加密数据中添加噪声。尽管可以构造出部分同态加密方案(能够评估加法和乘法),但所添加的噪声会导致明文数据与加密数据之间出现大规模数据膨胀。此外,噪声水平会随着加密域中的操作而增长,尤其是乘法操作。当噪声达到一定程度时,解密原语将无法正确恢复明文数据。

根特的构建FHE方案的蓝图基于自举过程:一种能够同态计算其自身解密电路以及至少另一个操作的部分同态加密方案,可转化为全同态加密方案。最初的自举过程实现由于SHE指数级噪声增长、复杂的解密电路以及大规模数据膨胀[12,24]而难以实际应用。大量研究提出了引入不同机制的新方案,从次指数级噪声增长[4,13]到恒定噪声增长[3,11]。尽管这些方案带来了改进的性能,但自举过程对它们而言仍然过于复杂,难以实用。然而,这些新方案达成了一种折衷:可以在乘法深度低于实际限制(20至30)的情况下评估函数,但一旦超过该限制便变得不切实际。目前最受认可的方案是FV[11]和BGV[13]方案。

2013年,根特等人提出了一种新方法,重新审视自举过程以构建FHE方案[14]。这项工作随后带来了快速自举原语的有希望的结果[7,10]。它们在高效FHE系统的定义中开辟了有趣的研究前景。

同态加密固有的显著的数据规模膨胀意味着在通信成本上存在开销问题。为解决此问题,纳赫里格等人[17]提出了一种称为跨加密的实用方法:所有者使用标准的对称加密方案对其数据进行加密,从而避免数据规模膨胀,并将加密后的数据连同对称密钥的同态加密一起发送给服务器。一旦服务器拥有加密数据,对称方案的解密函数通过FHE、SHE或L-FHE方案进行同态计算,从而得到同态加密的数据。该方法已被坎托等人改进。[5]他们提出使用轻量加法IV型流密码作为底层对称方案。他们证明,采用该方法后,转加密过程的性能依赖于大量的离线计算部分,而在线部分的转加密则简化为一次简单的同态加法。该方法仅解决了上行通信开销问题,因为转加密是一个单向过程。尽管如此,它仍提升了同态加密的实用性,但其性能对于纯软件实现而言仍然不足。例如,在中端48核服务器上需要∼35分钟来生成57个同态密钥流元素,这些元素最多可支持7层额外的密文乘法层级[5]。

FV[11]方案处理具有模整数系数(500到5000比特)的多项式,这些多项式模一个固定次数的多项式,实际上是一个次数较大的分圆多项式(128到32768)。这类多项式的操作开销较大,尤其是在进行乘法运算时。该问题已在基于格的密码学硬件优化[21]中得到解决。基于格的同态加密为将先前的工作扩展到同态加密领域提供了机会,特别是应用于同态计算[9,19,23]。

在基于格的密码学中,参数选择在实践中具有挑战性。据我们所知,大多数关于同态原语硬件加速的研究倾向于选择先前已使用的参数集。我们推测这是为了便于比较,但参数的选择可能对可用硬件资源的正确利用产生重大影响。这促使了本文工作的开展,即对FV参数进行分析,以评估其与硬件架构和算法的适配性。

本文中,我们利用了FV方案的应用参数与实现参数之间的区别。当安全性和乘法深度要求固定(即应用参数)时,我们仍有一个自由度来选择分圆多项式的次数N和模数的大小q。通过分析近期硬件加速工作的算法,这两个参数都会会影响最终的实现复杂性。

在第一部分中,介绍了数学符号和FV评估的基本操作。第二部分展示了性能分析结果,这些结果促使研究聚焦于多项式乘法,并描述了硬件优化研究中为高效实现这些操作所提出的各种方法。第三部分从FV参数的相互依赖性出发,推导出次数N和模数大小q对实现策略的影响。最后,第四部分对本文进行了总结。

2 FV方案的预备知识

本节有两个目标:首先熟悉本文所用的符号表示,其次区分密文乘法以及在密文乘法和密文重线性化过程中发生的多项式乘法。第一小节介绍了本文所采用的数学表示方法,第二小节回顾了FV基础操作。第三小节介绍了我们关注的一组FV参数。

2.1 数学符号

代数结构 :阶为m的分圆多项式记为Φm(X),其中φ是函数。Rm= Z[X]/(Φm(X))表示次数小于N= φ(m)且具有整数系数的多项式类的环。在实际应用中,m被选为2的幂,因此有Φm(X)= XN+ 1和N= m/2。

环Rm的元素用小写粗体表示(例如a ∈ Rm),其系数用带索引的小写表示(例如ai ∀ i ∈ (0,1,…, N −1))。符号a可不加区分地用于表示多项式或其由N个点组成的系数序列。

对于整数q> 1,Zq是整数集合[−q/2, q/2。在Zq中满足[a]q= a mod q, ∀ a ∈ Z的唯一整数记为[a]q。推广而言,Rm,q是系数在Zq中的关于Rm的多项式集合。对于一个多项式a ∈ Rm,[a]q表示将[·]q应用于其所有系数后得到的Rm,q中的多项式。符号[a]q可无区别地用于表示该多项式或其对应的N点系数序列。

明文和密文空间 :FV方案的明文空间是相对于整数t> 1定义的,它是Rm,t中的多项式集合(例如t= 2)。

密文空间也是相对于整数q> 1定义的。一个密文是Rm,q中的一对多项式。设c为一个密文,其标准形式记为c=(c0,c1) ∈ R²m,q。在进行乘法运算后,密文处于非标准形式,需要通过重线性化过程来处理。这类密文记为c˜,其中c˜=(˜c0, ˜c1, ˜c2) ∈ R³m,q。

2.2 FV基础操作

在流密码转加密的背景下,离线部分和在线部分均基于同态计算。在离线阶段,同态加密方案对基于IV的流密码进行评估,而在在线阶段,则对用户所需的应用进行评估。本文重点研究与同态计算相关的FV基础操作。该方案的完整描述可在原始工作[11]中找到。

选择采用原始工作中提出的重线性化过程的第二版。该版本使重线性化接近密文乘法原语。其动机源于这样一种直觉:如果一个硬件平台能够高效地计算密文乘法,那么它也能高效地进行重线性化。

该重线性化原语需要定义一个整数p> 1(通常为p ≥ q³)以及一个重线性化密钥,该密钥是Rm,p·q中的多项式对。我们记rlk=(rlk0,rlk1)∈ R²m,p·q为FV实例的重线性化密钥。

设a=(a0,a1)∈ R²m,q和b=(b0,b1)∈ R²m,q为同一FV实例下的两个密文。我们用×(分别用+)表示在Rm上的多项式乘法(分别为加法)。标量乘法记为·,缩放并中心取整操作用S ·.表示,其中S为缩放值。最后,我们提醒[.]q将所有多项式系数约减至区间[−q/2, q/2内。

图1展示了范和弗卡滕伦原始论文中描述的密文乘法与密文重线性化的操作流程[11](第4节)。在实际应用中,FV乘法之后会立即进行重线性化,以确保始终处理标准形式密文。需要注意的是,多项式运算在Rm中进行,且不能随意对系数进行模q约简。

2.3 FV参数

本文中,FV实例指的是一组特定的FV参数。考虑了四个参数:安全级别λ、乘法深度评估能力L、分圆多项式的次数N以及密文多项式系数的大小Tq。其他参数在原始工作[11]中有所描述。

该参数集(λ, L, N, Tq)具有三个自由度:需要固定其中三个参数以推导出第四个。应用层参数(λ, L)与实现层参数(N, Tq)之间有所区分。

分圆多项式的次数N和系数的大小Tq都会影响多项式的处理。本文旨在研究它们对相关研究中探索的硬件优化策略的影响。

3 改进FV同态评估的性能

根据阿姆达尔定律,专用硬件解决方案应覆盖应用程序中最频繁且计算密集的操作。这些关键操作的识别通常通过性能分析完成。在可行的情况下,硬件优化会利用这些操作底层算法中固有的不同层次的并行性或数学简化。

本节展示了Canteaut等人[5]对Trivium进行FV同态评估的性能分析结果。在第二个小节中,描述了高效多项式乘法的常用方法,并强调了FV参数的影响。

3.1 Trivium的FV同态评估

使用实现FV方案的库[6],重现了Canteaut等人[5]对Trivium进行同态计算的实验。Valgrind工具套件[18]用于识别密文乘法操作为同态计算的性能瓶颈,其占据了估计周期数的99%以上。性能分析的结果详见表1。

如前一节所述,密文乘法(CtxtMult)操作被分解为实际的密文乘法(30.6%)和紧随其后的重线性化(62.8%)。进一步分析这两个步骤,可以看出它们都依赖于同一个瓶颈操作,即通过FFT卷积实现的多项式乘法。在整个Trivium-12的评估过程中,估计有76.1%的周期消耗在这些卷积上。

密文重线性化的计算工作量是密文乘法的两倍,因为重线性化密钥是一对多项式,其系数大小是密文多项式的四倍。

表1 。Canteaut等人实现的Trivium-12同态计算的性能分析结果。[5]FV参数:安全级别80,乘法深度19,多项式分圆阶4096(意味着具有2048个系数的多项式),模数q大小为2658比特。实验使用Valgrind 3.10。

同态加密操作 估计周期(百万周期) 估计百分比
同态加密Trivium 13 337 699 100%
密文乘法 13 272 536 99.5%
- 重线性化 8 381 331 62.8%
- 乘法 4 085 675 30.6%
- 其他 805 530 6.1%
CtxtAdd 50 923 0.4%
其他 14 240 0.1%

性能分析证实,FV同态评估的关键部分是密文乘法和重线性化。这两者都依赖于多项式乘法,而多项式乘法也出现在基于格的密码学中。

3.2 改进多项式乘法

多项式运算在Rm上进行,这意味着多精度整数运算需要处理在密文乘法期间可能增长到N ∗ q²以及在密文重线性化期间增长到N ∗p ∗q²的值。实际上,会选择两个整数Q> N ∗ q²和K> N ∗ p ∗ q²,并在Rm、Q和Rm上进行多项式乘法运算。模数q的大小取决于其他FV参数,但在某些FV实例中,其大小从数百比特增长到数千比特。为了应对大整数运算,通过中国剩余定理(CRT)使用RNS算术在硬件优化方法中非常流行[8,19,25]。

除了整数运算外,多项式乘法在很大程度上依赖于涉及的次数。多项式乘法的朴素方法包括计算其系数的线性卷积乘积,复杂度为O(N²)。为了降低该复杂度,基于NTT的多项式乘法被广泛应用于硬件优化研究[19,21]。

Migliore等人最近的一项工作[16]提出了在低乘法深度应用中使用Karatsuba多项式乘法算法。

中国剩余定理 :为了利用CRT带来的并行性,不同的模数q、Q和K被构造为固定大小素数的乘积。每个模数所需的素数个数(lq、lQ和lK)取决于Tq以及这些素数的期望大小Tprimes(1)。通过模数的构造Q和K,TQ = 2 ∗ Tq + log₂(N)和TK= 5 ∗ Tq +log₂(N)。

$$
l_q = \left\lceil \frac{T_q}{T_{primes}} \right\rceil , \quad l_Q = \left\lceil \frac{2 \ast T_q + \log_2(N)}{T_{primes}} \right\rceil, \quad l_K = \left\lceil \frac{5 \ast T_q + \log_2(N)}{T_{primes}} \right\rceil.
$$

通过直接应用CRT,双射Rm、Q =∼(Rm、p₀ ×… ×Rm、plQ−1)和Rm、K =∼(Rm、p₀ ×… × Rm、plK−1)使得多项式乘法中可以加入并行性。从Rm、Q(或Rm、K)转换到剩余数系统表示形式以及反向转换的计算开销未被考虑在内。Bajarad等人[2]最近提出了一种FV方案的变体,其中多项式始终保留在剩余数系统表示中。

密文多项式乘法在密文乘法(resp. 密文重线性化)期间被分解为lQ(resp. lK)个独立的剩余多项式乘法。每个剩余多项式乘法的独立性意味着可通过分布式计算利用的线程级并行性。

将剩余多项式乘法视为一个简单的硬件模块(BRPM),密文多项式乘法模块的延迟和硬件成本大致可表示为可用模块数量(#BRPM ∈[1;lQ](分别对应.[1;lK])的函数。(2)和(3)给出了密文乘法过程中多项式乘法的相应表达式。

$$
\text{LatPolyMult} = \left\lceil \frac{l_Q}{#BRPM} \right\rceil \ast \text{LatBRPM}
$$

$$
\text{HCostPolyMult} = #BRPM \ast \text{HCostBRPM}
$$

由于剩余多项式的系数大小由Tprimes固定,因此模块BRPM的特性与参数Tq无关。可以提前指出的是,在利用CRT引入的RNS算术时,参数Tq和Tprimes决定了线程级并行性。参数N和Tprimes对硬件模块BRPM的影响将在下一小节中详细说明。

多项式乘法在Rm,pi :对于高次多项式,基于NTT的多项式乘法似乎是硬件优化中最流行的方法。它通过数论变换(有限域上的傅里叶变换)计算多项式乘法的卷积乘积,而库利-图基算法将NTT复杂度降低至O(N log(N))。此外,利用负循环卷积定理,基于NTT的乘法可以直接执行模Φm(X)= XN+1的多项式乘法,从而避免复杂的多项式模约简。然而,这种方法会限制素数pi的选择,因为必须保证在剩余空间Zpi上存在一个N点NTT。

如[20],所述,Rm上N-点NTT的存在取决于Zpi上是否存在一个本原N-次单位根ω。如果希望在Zpi上使用负循环卷积定理,则必须找到一个本原2N-次单位根ψ,使得ψ²= ω模pi成立。此外,所有元素的Zpi应该是可逆的,这一性质通过选择pi为素数来保证。[20],根据上述所有条件,如果能找到一个素数pi使得2N整除(pi−1),则这些条件均满足。接下来只需选择合适的ω和ψ即可。高效的素数选择由NFLlib开发团队阿瓜拉-梅尔彻等人解决。[1]。

在计算剩余多项式乘法时,需要进行两次前向和一次反向的N-点NTT运算(复杂度为O(Nlog(N)))。其他操作包括对N-点序列进行逐点系数乘法(复杂度为O(N))。因此,将硬件优化重点放在NTT上是合理的。接下来,我们希望观察N对NTT延迟和硬件成本的影响。

现考虑基于基-2基本块BRX2的NTT实现。该基本块的延迟和硬件成本分别记为LatBRX2和HCostBRX2。一个N点NTT计算(其中N为2的幂)由log₂(N)次迭代组成,每次迭代包含N/2个基-2基本块计算。在本研究中,假设每次迭代必须完成后才能开始下一次迭代,且基-2基本块在不同迭代之间被重复使用。

令#BRX2 ∈[1; N/2]表示可用于一个N点NTT某次迭代计算的基-2基本块数量。

$$
\text{LatBNTT} = \left\lceil \frac{N}{2 \ast #BRX2} \right\rceil \ast \log_2(N) \ast \text{LatBRX2}(T_{primes})
$$

$$
\text{HCostBNTT} = #BRX2 \ast \text{HCostBRX2}(T_{primes})
$$

现在已知N对NTT计算的影响((4)和(5)),接下来必须表述其对剩余多项式乘法的延迟和硬件成本的影响。这通过以下方式实现:将反向NTT所需的额外模乘法视为一次N点乘法运算。需要提醒的是,在负循环卷积方法中,already存在四次N点乘模乘法用于计算[21]。

公式(6)和(7)表示了相对于NTT模块(BNTT)和模乘模块(BMM)的剩余多项式乘法的延迟和硬件成本。设#BMM ∈[1; N]为用于N点逐项乘法的可用模乘器数量。

$$
\text{LatBRPM} = 3 \ast \text{LatBNTT} + 5 \ast \left\lceil \frac{N}{#BMM} \right\rceil \ast \text{LatBMM}(T_{primes})
$$

$$
\text{HCostBRPM} = \text{HCostBNTT} + #BMM \ast \text{HCostBMM}(T_{primes})
$$

基数-2和模乘器的实现效率不仅与高效模约简的选择有关,还与Tprimes参数[1]的选择相关。从硬件设计的角度来看,采用较小的Tprimes可能有助于减小整数运算的规模。

本节阐述了一些高层级方程,这些方程将FV参数与硬件优化选择关联在一起。下一节将描述对FV参数及其对硬件优化机会影响的分析。

4 FV参数与优化机会

从应用的角度来看,安全级别λ和乘法深度L是决定FV实例的参数。但当λ和L固定时,仍可自由选择分圆多项式次数N以及密文多项式的系数大小Tq。如前一节所述,参数Tq对线程并行性有影响,而参数N对剩余多项式乘法有影响。本节讨论关系Tq(N)对硬件优化策略的影响。

为了生成正确的FV参数集,使用了一个Sage脚本[6]实现了范和弗卡特伦的推导规则[11]。生成了一些参数集,其范围适用于Canteaut等人提出的Trivium-12流密码转换场景。[5]安全级别选择在80到192之间,乘法深度选择在16到32之间。

4.1 应用层参数的可扩展性

图2显示了安全性和乘法深度参数对关系Tq(N)的影响。所示的第一个关系Tq(N)在安全级别80和乘法深度16时固定。图2a表示安全性的影响,图2b表示乘法深度对该关系的影响。我们观察到,高度圆分多项式降低了λ和L对系数大小的影响。

密文乘法过程中多项式乘法的延迟与模数大小q之间的直接关系由公式(1)、(2)和(3)表示。

$$
\text{LatPolyMult} = \left\lceil \frac{2 \ast T_q + \log_2(N)}{T_{primes}} \ast #BRPM \right\rceil \ast \text{LatBRPM}
$$

如第3.2节所述,剩余多项式乘法模块的延迟和硬件成本仅取决于Tprimes和N。因此当Tprimes、N以及硬件目标(#BRPM)固定时,Tq的微小变化似乎会导致LatPolyMult的微小变化。当然,这还取决于常数LatBRPM。选择处理较大N的实现,其延迟LatPolyMult受Tq的影响较小,相比之下,处理较小N的实现则更受影响。然而,在得出较大的N能够减弱应用参数对给定实现的影响这一结论之前,有必要评估LatBRPM对N的影响。

的影响。模数q的大小以千比特表示。)

4.2 更小的密文

密文大小是内存需求(存储容量、访问延迟等)的一个高层指标,直接影响性能。在不考虑任何并行性、实现细节或优化的数据访问的情况下,可以表述一种粗粒度关系:密文越小,性能越好。

图3展示了安全性与乘法深度对密文大小的影响,这与Tq和N、密文大小= 2 ∗(Tq ∗N)直接相关。观察表明,较大的次数N会增强安全性和乘法深度对密文大小的影响。这与N对模数大小q的影响略有矛盾。现在看来,选择较小的N更为有利,后续讨论将进一步证实这一点。

4.3 N对剩余多项式乘法的影响

基于NTT的多项式乘法描述中,瓶颈操作被表示为前向和反向N点NTT的计算。公式(4)、(6)、(5)和(7)表达了剩余多项式乘法的延迟和硬件成本,其为FV参数N以及硬件模块可用性#BRX2、#BMM的函数。

$$
\text{LatBRPM} = 3 \ast \left\lceil \frac{N}{2 \ast #BRX2} \right\rceil \ast \log_2(N) \ast \text{LatBRX2} + 5 \ast \left\lceil \frac{N}{#BMM} \right\rceil \ast \text{LatBMM}
$$

$$
\text{HCostBRPM} = #BRX2 \ast \text{HCostBRX2} + #BMM \ast \text{HCostBMM}
$$

因为N是2的幂,选择更大的N对延迟和/或硬件实现成本有重大影响。

在图4中,表示了N的理论延迟和硬件成本函数,且针对不同的NTT计算中引入的并行性级别。在此表示中,通过选择#BMM= 128来固定N点乘法的延迟和硬件成本。延迟(分别地,硬件成本)以LatBRX2(分别地,HCostBRX2)的倍数表示。为简化起见,LatBRX2被视为等同于LatBMM(分别地,HCostBRX2 ∼ HCostBMM)。

该理论实验被视为最佳情况场景,因为(4)、(5)、(6)和(7)中的近似处理。实际上,NTT计算中的数据依赖性、预计算因子的存储成本以及内存访问延迟均未被考虑。在每个剩余空间Rm,pi, 2N中,必须为基于NTT的负循环卷积预先计算因子。因此,N加倍大致会使旋转因子的数量和内存访问次数加倍。

如图4a和b所示,并根据公式(9)和(10),选择更大的N会线性增加剩余多项式乘法的延迟。类似地,为了确保任意N下的低延迟剩余多项式乘法,必须付出额外的硬件成本,该成本随N的增加而线性增长。然而,N由于其值被限制为2的幂(以同时具备批处理特性和负循环卷积),其值呈指数增长,因此剩余多项式乘法的延迟和硬件成本受到这种指数增长的影响。

现在考虑到N是固定的,公式(9)和(10)表明延迟随着#BRX2的增大而减小,但硬件成本同样会增加。这种线性行为也类似于公式(2)和(3)中的#BRMP。

4.4 Tq对CRT并行性的影响

如第3.2节所述,CRT并行性能力在理论上由较大的Tq所保证,该值在固定素数大小Tprimes的情况下增加了剩余空间的数量。在我们的场景中,所考虑的N的选择及其对Tq的影响,总能在利用CRT并行性时实现显著的加速。

在CRT级别上,硬件优化存在两个限制。第一个限制在本文中未予考虑,并通过在多项式的CRT表示与其系数在Rm,q上的标准表示之间切换时增加的额外计算来解决。第二个限制是对于给定大小Tprimes,是否存在足够的剩余空间。事实上,CRT的使用依赖于存在lK个大小为Tprimes的素数。此外,基于NTT的多项式乘法对这些素数的选择增加了额外条件,以确保在剩余空间中存在2N-NTT。

所需的素数个数lK直接取决于关系Tq(N)以及素数的大小Tprimes(参见公式1)。使用剩余表示法在Rm,q中表示一个多项式所需的素数个数如图5所示,该图针对不同的N和素数大小进行了展示。为了在Rm,Q(分别地,Rm,K)上通过CRT方法进行多项式乘法,需要找出大约lQ ∼ 2 ∗ lq(分别地,lK ∼ 5 ∗ lq)个素数。

如第3.2节所述,选择较小的Tprimes有助于降低模乘法器模块的延迟和硬件成本,并对剩余多项式乘法的效率产生直接影响。但根据素数定理,小于n的素数个数约为π(n)∼ n/log(n)。寻找满足Tprimes ≥ 32的足够多素数并不困难,但当考虑更小的素数位宽时,候选素数的数量会迅速下降。在Tprimes为16位和24位时,使用GMP库寻找满足NTT要求的最大素数个数,结果如表2所示。

对16位和24位尺寸下找到的素数个数与图5中要求的比较,显示出在选择较小的Tprimes以提高基本算术模块效率方面存在限制。然而,如图5所示,即使使用较大的N,lq(进而lQ和lK)仍然足够大,可以利用CRT带来的并行性。

比特。安全性固定为80,乘法深度固定为18。)

表2 。允许在Zpi上进行N点NTT变换的素数个数。

次数N 128 256 512 1024 2048 4096 8192
16比特素数 47 84 30 24 42 30 2
24比特素数 14 134 10 5 47 53 3

5 结论

本文提供了关于FV参数选择的见解,以高效利用其评估原语的硬件资源。该分析是在基于流密码的跨加密背景下进行的,使用了Trivium密码。此分析还基于CRT和NTT方法来执行Rm,Q(分别对应Rm,K)上的多项式乘法。这一选择受到现有基于格的密码学硬件优化研究工作的启发。

已阐明应用层参数(λ, L)与实现层参数(N, Tq)之间的区别。在分析过程中,提出了一些观察结果,以帮助根据应用参数选择合适的FV实现参数,从而实现灵活高效的硬件实现。

较大的N会减小安全性与乘法深度对系数大小的影响,但仍然会增加密文大小。分圆多项式次数N若为2的幂,将导致随着N的增大,基于NTT的多项式乘法的设计变得更加困难。此外,正如巴雅尔等人所解释的,CRT并行性比大规模多项式乘法更容易利用。[2]这意味着对于固定的(λ, L),并非所有的(N, Tq)都相同,应优先选择较小的多项式次数N,而非较小的系数大小Tq。

本分析是对FV评估原语底层硬件架构和算法充分性的初步研究。尽管选择较小的N具有动机性,但(N, Tq)的具体选择仍取决于实际应用情况目标硬件的限制,特别是内存访问带宽和可用计算资源的限制。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值