面向移动边缘计算的整数算术运算同态评估
龚长青 ,1李梦菲 ,1赵亮 ,1郭振洲,1和 GuangjieHan 2
1沈阳航空航天大学计算机科学与技术学院,中国沈阳1101362辽宁省泛在网络与服务软件 重点实验室,大连理工大学软件学院,中国大连116024
对应联系人应为赵亮;lzhao@sau.edu .cn
2018年9月26日收到;2018年10月31日接受;2018年11月15日发表 特约编辑:董闽雄 版权所有 © 2018 龚长青等。本文是在知识共享署名许可协议下发布的开放获取文章,允许在任何媒介中不受限制地 使用、分发和复制,只要正确引用原始作品。
随着5G网络和物联网(IoT)的快速发展,大量移动和物联网设备产生了海量的多源异构数据。有效处理这些数据成为一个迫切的问题。然而,传统的云计算集中式模型难以有效处理多源异构数据。移动边缘计算(MEC)作为一种新兴技术应运而生,用于优化应用程序或云计算系统。但MEC的内容感知、实时计算和并行处理等特性使得云计算环境中的数据安全与隐私问题更加突出。通过传统加密保护敏感数据是一种非常安全的方法,但这将导致MEC无法对加密数据进行计算。全同态加密(FHE)克服了这一限制,FHE可直接对密文进行计算。因此,我们提出一种基于整数同态加密的密文算术运算方案,以确保数据隐私性与可计算性。本方案参考补码、加法、减法、乘法和除法的整数运算法则。首先,我们使用包含逻辑与、异或操作的布尔多项式(BP)来表示这些运算法则;其次,将布尔多项式(BP)转换为同态多项式(HP),以执行密文运算;然后,我们对方案进行优化:将整数加密的密文向量划分为长度为2的子向量,并增加FHE私钥的长度以支持三级乘法层级扩展。我们在DGHV和CMNT中测试了该优化方案,结果表明,在密文刷新次数方面,优化方案相比原始方案减少了2/3,时间开销降低了1/3。我们还在无自举的CNT上验证了该方案,优化方案在DGHV和CMNT上的时间开销接近原始方案在CNT上的表现。
1. 引言
随着5G网络和物联网(IoT)的快速发展,移动设备和 物联网设备接入互联网更加便捷,并产生海量数据。由于这些数据来自边缘网络设备,传统的集中式云计算模型难以快速高效地处理这些多源异构数据。如果我们把云计算的部分功能迁移到边缘网络中,如[1–3],所示,将有利于数据收集和计算。因此,移动边缘计算( MEC)应运而生。边缘计算[4]是一种通过将应用程序的部分功能、数据或服务从一个或多个中心节点(“核心”)转移到互联网的另一逻辑极端(“边缘”),以接触物理世界或终端用户。在这种架构的一种设想中,特别是针对物联网设备,数据通过各种传感器从物理世界输入,并通过各种形式的输出和执行器采取动作来改变物理状态;通过在边缘进行分析和知识生成,减少了受控系统与中心数据中心之间的通信带宽。多接入边缘计算(MEC)旨在将任何需要低延迟的计算机程序置于更接近请求的位置,特别是在5G等移动网络中。MEC允许终端设备将存储和计算任务迁移到网络边缘节点。边缘计算架构如图1所示。
MEC 涵盖了广泛的技术,包括无线传感器网络、移动数据采集、移动签名分析、合作式分布式对等自组织网络以及处理技术。MEC 的基础是传统网络、无线网络、移动网络和车联网(IoV),其中应用了大量的网络基础设施技术和服务。包括设备到设备中的能源效率与频谱效率权衡 [5],QoS感知的域间组播 [6],高效的跨层中继节点选择模型 [7],移动锚点辅助定位 [8],以及车载通信 [9]。移动边缘计算(见图1)是一项面向多个实体(移动设备和物联网设备)的服务。许多实体将其实时数据(云计算中的外包数据)放置在移动边缘计算上进行分析或存储。移动边缘计算的广泛特性,如数据收集、实时分析和并行处理,使得云计算环境中存在的隐私问题变得更加突出。因此,外包数据的安全性仍然是 MEC 数据安全的一个根本问题。红色虚线(见图1)表示不同实体与移动边缘计算之间的安全风险,例如由移动边缘计算提供的车联网和智能家居服务。在车联网中,车辆的位置信息以及生成的在线浏览记录由移动边缘计算收集车主的数据,以反馈车辆的精确导航信息以及根据车主偏好推送信息。在此过程中,车主和车辆的数据暴露在移动边缘计算中,极不安全。在智能家居中,大量传感器通过移动边缘计算对室内环境变化(如温度、湿度、监控视频等)进行存储和分析,从而提供最佳的家庭环境设置。这一过程同样存在安全隐患。传统方法(包括入侵检测、访问控制和虚拟隔离)仅能防止外部攻击者窃取数据,而对于内部攻击(诚实但好奇的移动边缘计算),数据安全仍无法保障。加密数据相对被视为一种安全的存储状态,但其无法满足密文数据的可计算性需求。若希望边缘计算能够对密文数据执行非平凡计算,则该问题亟待解决。非平凡计算包括基于边缘计算的车联网深度学习 [10], 以及MEC的计算卸载 [11]。全同态加密(FHE)克服了这一限制。盖内提出了首个支持在密文上进行加法与乘法运算的加密方案,即全同态加密方案 [12]。该全同态加密方案允许对密文数据执行任意计算在没有密钥解密密钥的情况下对加密数据进行操作。
全同态加密(FHE)的发展可分为三代 [13]。第一代包括盖内使用理想格的原始方案 [12],、van Dijk 等人提出的相对更简单的方案 [14],,以及针对第一代公钥大小的一些优化 [15–17]。这些方案均存在噪声迅速增长的问题,影响了效率和安全性。第二代始于布拉克斯‐瓦伊昆塔纳坦 [18, 19] 和布拉克斯等人 [20],其特点是采用模数转换和密钥转换技术来控制噪声,从而提高了效率,该代方案基于学习误差问题(LWE)[18], 、环上学习误差问题(Ring‐LWE)[19], 和 NTRU [21, 22] 困难性假设。第三代始于盖内等人提出的方案 [23]。第三代方案通常在效率上略低于第二代,但可以基于相对较弱的困难性假设。
在全同态加密的同态评估中,通过乘法同态、加法同态和解密同态(密文刷新)实现现实世界中的不同电路。全同态加密的应用包括密文算术运算和密文检索。盖内、哈莱维和斯马特提出了首个复杂电路的评估,即使用BGV [20]风格方案进行完整的AES‐128块评估[24]。该方案利用批处理[25, 26],、密钥转换和模数切换技术,实现了高效的分层实现。陈Y.等人[27]提出使用BGV风格方案实现密文上的整数算术和同态数据聚合。该方案使用HElib库实现对无符号整数的加法、减法、乘法和除法的同态评估。盖K.等人[28]提出了基于张量的全同态加密在实数上的混合算术运算,并提出了一种新颖的基于张量的全同态加密解决方案[29]。杨J.等人 [30]提出了使用全同态加密方案的安全张量分解。
在[24], AES‐128块评估中无法实现进位操作。在 [27],密文上的整数运算仅实现了无符号整数的2‐4位算术运算。在[28],混合算术运算中,未在基于张量的全同态加密对实数的支持下实现除法运算。因此, [24, 27, 28]无法作为在多接入边缘计算中利用加法和乘法同态性进行有符号整数算术运算方案的完整同态评估。整数算术运算的同态评估是密文数据上进行非平凡计算的重要基础。因此,构建整数算术运算的同态评估方案具有重要意义。
Contribution
我们提出了基于DGHV[14]及其变体 [15, 31, 32]在移动边缘计算中对整数算术运算的同态评估。并且我们利用同态加密的特性来防止敏感数据被窃取。同时,我们还可以在移动边缘计算中对密文数据进行计算。
(i) 我们的方案参考了用仅包含逻辑与、异或操作的布尔多项式(BP)表示的整数运算法则。然后,我们通过在密文上进行加法和乘法操作,将BP转换为同态多项式(HP)。
(ii)我们提出了判断选择布尔多项式(JCBP)来解决乘法和除法中的持续选择问题。然后,通过在密文上使用加法和乘法,将JCBP转换为判断选择同态多项式(JCHP)。
(iii) 我们优化了整数算术运算的同态求值过程。我们将整数加密的密文向量划分为长度为2的子向量,并增加FHE私钥的长度,以支持三级乘法层级扩展,自举所需的15级乘法除外。
(iv) 我们在DGHV [14]和CMNT [17]中测试了优化方案。在密文刷新次数方面,优化方案相比原始方案减少了2/3,整数运算的同态评估时间开销减少了1/3。我们还在无自举的CNT[31]中测试了我们的方案。优化方案在DGHV [14]和CMNT [17]上的时间开销接近原始方案在CNT[31]上的表现。
组织结构
在第2节中,我们将详细介绍DGHV [14], DGHV的变体 [17, 31, 32]以及一些同态评估。在第3节中,我们根据计算机中整数的补码、加法、减法、乘法和除法的计算过程,修改了整数算术运算的多项式。我们还提出了整数算术运算的BP,并将其转换为整数算术运算的同态乘积。在第4节中,我们分析了噪声上限,并优化了整数算术运算的同态评估过程。在第5节中,我们展示了我们的实现和实验结果。我们展示了本方案的效率和结论。
2. 相关工作
基于整数的全同态加密方案及其变体是同态加密研究的一个重要分支。此外,我们提出了基于DGHV及其变体的整数算术运算的同态评估。我们使用DGHV及其变体对数据进行加密,并将密文数据上传至多接入边缘计算数据中心。MEC的服务器能够利用同态加密的特性对密文数据进行处理。我们的方案涉及同态加密和密文计算。因此,我们将介绍原始的同态加密方案DGHV [14] 及其在整数上的变体,包括更短的公钥CMNT [17],、公钥压缩和模数切换CNT [31],、批处理加密 CCKL+[32]。下面我们用DGHV、CMNT、CNT和CCKL+来替换[14, 17, 31, 32] 。同时,我们还将介绍一些与本方案相关的密文计算技术,包括使用aBGV风格方案实现完整的AES‐128块评估[24]、密文上的整数运算与同态数据聚合[27],,以及在基于张量的全同态加密上对实数进行混合算术运算[28]。
2.1. DGHV及其变体方案
DGHV方案由van Dijk等人基于整数提出,旨在简化[12]。DGHV的优点包括加密过程简单且易于理解。然而,它存在一个缺陷:随着乘法层级的增加,密文中的噪声迅速增长。该方案基于一组公开整数:xi= qip+ri, 0 ≤ i ≤ τ,其中整数 p是秘密的。我们采用与DGHV中相同的表示法。 DGHV使用以下参数(均为安全参数λ的多项式): (i) γ 是 xi 的位长度。(ii) η 是私钥 p 的位长度。(iii) ρ 是噪声 ri 的位长度。(iv) τ 是公钥中 xi 的数量。(v) ρ 用于加密。
对于一个特定的 η 位奇整数 p,DGHV 使用以下在 γ 位整数上的分布:
$$
D_{\gamma,\rho}(p)=\left{\text{Choose } q \leftarrow Z \cap [0,2^\gamma), r \leftarrow Z \cap (-2^\rho,2^\rho):\text{Output } x=q \cdot p+r\right}
\quad (1)
$$
KeyGen(λ) 。生成一个大小为 η 位的随机奇整数 p 作为 sk。对于公钥,为 0 ≤i ≤τ 采样 xi← Dγ,ρ(p)。重新标记使得 x0 为最大值。令 [x0]p 为偶数,x0 为奇数。令 pk=x0 ,x1 , … , xτ 且 sk=p。
Encrypt(pk,m ∈{0, 1}) 。选择一个随机子集 S ⊆{1, 2, … , τ} 和一个随机整数 r ∈(−2 ρ,2ρ),并输出 c←[m+2r+2 ∑i ∈ Sx i]x0 。
Decrypt(sk,c) 。输出 m′=((c) mod p) mod 2=(c mod 2)(⌊c/p⌉mod 2)。
Evaluate(pk,C,c1 ,c2 , .. . , ct) 。给定一个具有 t 个输入的函数 F,以及 t 个密文 ci ,将 F 的逻辑与门和逻辑异或门转换为加法和乘法,执行所有的加法和乘法运算,并返回得到的整数。
DGHV中建议使用以下参数集:ρ=λ,ρ=2λ,η=̃ O(λ 2 ),γ=̃O(λ 5 ),τ=γ+λ。公钥大小为̃O(λ 10 )。
CMNT方案由Coron等人提出,旨在将DGHV方案的公钥大小从̃O(λ 10 )降低至 ̃O(λ 7 )。CMNT方案通过引入一种新参数 β,其形式为x ij= xi,0 ∙ xj,1 mod x0 , 1 ≤ i, j ≤ β来实现生成用于加密的τ= β2整数x ij。CMNT方案能够将公钥大小从τ减少到大约2√τ个位的整数。CMNT方案使用无误差的x0,即x0= q0p,否则误差会变得过大。此外,在加密过程中,CMNT方案考虑使用系数向量 b=(bi,j)对x ij进行线性组合,而非使用位;这使得公钥大小进一步减小。该向量 b的分量属于[0,2α)。
CMNT方案采用 ρ= λ, η= ̃O(λ2)和 γ=̃O(λ5), 与DGHV方案相同。然而,它采用α=λ,β2=̃O(λ2)以及 ρ= 4λ。主要区别在于,CMNT方案仅包含2β=̃O(λ2)个整数xi,而不是τ=̃O(λ5)个整数xi。因此,公钥大小变为̃O(λ7),而非̃O(λ10)。
Coron和Naccache等人描述了CNT方案。C MT提出了一种方法,通过修改模数切换技术[20]来压缩DGHV方案的公钥大小,并优化噪声管理技术。CNT方案的噪声上限随乘法层级的增长仅线性增加,而非指数级增长。因此,实现了一种分层DGHV变体。该方案针对DGHV上的同态加密提供了以下两项优化。
第一个优化是公钥压缩。首先生成一个大小为 η位的私钥 p,并使用带有随机种子se的伪随机函数f生成一组χi ∈[0,2γ、1 ≤i ≤τ。最后计算δi,使得xi= χi −δi模 p较小,并将δi存储在公钥中,而不是完整的xi。
第二个优化是模数转换技术。CMNT展示了如何将 Brakerski、Gentry和Vaikuntanathan的(BGV)全同态加密框架[20]适配到整数上的DGHV方案。在[20]框架下,噪声上限随乘法深度线性地增加,而不是指数级增加。
CNT方案采用 ρ= λ,η= ̃O(λ 2 ),γ= ̃O(λ 5 ), α=̃O(λ 2 ),τ=̃O(λ 3 )和ρ=̃O(λ 2 )。CNT方案的新公钥大小为γ+τ ∙(η+λ) =̃O(λ 5 ),而不是DGHV的̃O(λ 10 )。
J.H. Cheon 等人描述了 CCKL+ 方案。该方案扩展了 DGHV,以支持与基于 RLWE 的方案 [20, 25], 相同的批处理能力,并以与 [24] 大致相同的效率实现对完整 AES 电路的同态评估。CCKL+ 方案是两项独立工作的融合 [33, 34],这两项工作基于相同的基本思想,但贡献不同。其安全性基于(更强的)无误差近似最大公约数假设,已涵盖 DGHV、CMNT 和 CNT。
CCKL+方案通过使用中国剩余定理(CRT)将l个明文m0 , ⋅ ⋅ ⋅mℓ − 1 打包到单个密文中,从而扩展了DGHV方案。对于部分同态加密,这使得我们不仅可以加密位,还可以加密来自形如ZQ的环中的元素。CKLL+方案采用 ρ= 2λ, η= ̃O(λ 2 ), γ= ̃O(λ 5 )、 α= ̃O(λ 2 )和τ= ̃O(λ 3 ), 如CNT方案中所述,其中ρ= ̃O(λ)、α= ̃O(λ 2 )以及 l =̃O(λ 2 )。
| 全同态加密方案 | λ | ρ | η | γ | 公钥长度 | 公钥大小 |
|---|---|---|---|---|---|---|
| DGHV | λ | 2λ | ̃O(λ²) | ̃O(λ⁵) | ̃O(λ¹⁰) | 41 GB |
| CMNT | λ | 4λ | ̃O(λ²) | ̃O(λ⁵) | ̃O(λ⁷) | 800 MB |
| CNT | λ | ̃O(λ²) | ̃O(λ²) | ̃O(λ⁵) | ̃O(λ⁵) | 10.1 MB |
| CCKL+ | λ | 3λ | ̃O(λ²) | ̃O(λ⁵) | ̃O(λ⁸) | 5.6 GB |
我们可以得出结论(见表1),CNT方案在公钥存储方面表现最佳,仅为10.1 MB。我们使用CMNT的“ large”参数测试DGHV的公钥大小,结果高达41 GB。CNT方案具有更好的噪声管理技术,其中噪声上限仅随乘法层级线性增加。因此,CNT方案支持比其他方案更多的乘法层级。CCKL+方案实现了批处理全同态加密方案,利用中国剩余定理(CRT)将明文向量加密为一个密文。然而,明文向量中的每个分量必须相互独立。如果我们加密一个明文向量,使用DGHV、CMNT和CNT方案得到的加密结果仍为明文向量,而使用CCKL+得到的加密结果则为一个密文。因此,在对明文向量的密文进行算术运算时,我们可以使用DGHV、CMNT和CNT方案执行进位操作,而不是使用CCKL+。
2.2. 同态求值
同态评估的优势在于能够在密文上实现现实世界中的各种操作,而不仅仅是乘法同态、加法同态和解密同态(密文刷新)。全同态加密将现实世界中的各种操作抽象为由逻辑异或门和逻辑与门组成的电路集合。同态评估即是在该电路集合中实现不同的电路。接下来我们将介绍一些关于算术运算同态评估的相关方案。
盖内、哈莱维和斯马特提出了首个复杂电路的评估方案,即使用BGV风格的方案对完整的AES‐128块评估 [24]进行实现。该方案利用批处理[25, 26],、密钥转换和模数切换技术,实现了高效的分层实现。此后,盖内、斯马特和哈莱维发布了显著改进的运行时间结果。与早期的实现[21],相比,盖内等人使用了最新版本的 HElib库[35]。文中报告了两种实现变体:一种包含自举,另一种不包含自举。
陈Y.等人[27]提出了一种基于BGV[20]风格方案的密文上的整数运算与同态数据聚合方法。该方案使用 HElib库[35]实现对无符号整数的加法、减法、乘法和除法的同态评估。然而,该方案报告了在没有自举和模数切换(部分同态加密)的情况下,密文上整数运算的时间开销。整数密文的长度仅设置为2、3、4位,并设置128位安全级别以确保结果正确。该方案未对具有自举和模数转换的密文上的整数算术运算进行优化。
盖K.等人[28]提出了在基于张量的全同态加密上对实数进行混合算术运算的方法,并提出了一种新的基于张量的全同态加密方案[29]。该方案利用张量法则来执行实数上的混合算术运算。然而,混合算术运算仅包括加法和乘法,该方案未实现包含除法的混合算术运算。
3. 整数算术运算的同态评估
整数加法、减法、乘法和除法通过补码加法和移位来实现。一位全加器使用异或门(⨁)得到和,使用与门 (∧)得到进位。下面我们解释符号表示法。整数算术运算将以 A = an−1 ⋅ ⋅ ⋅a 0,B = bn−1 ⋅ ⋅ ⋅b 0 和 A∗= a∗ n−1 ⋅ ⋅ ⋅ a ∗ n−1 ⋅ ⋅ ⋅b 0∗ 作为输入。A 和 B 是补码。A∗ 和 B∗ 是 A 和 B 的二进制补码。然而,在补码操作中,A 是原码,A∗ 是 A 的补码。A = an−1, … ,a 0 表示 A 的密文向量。设 ai= Enc(ai), 0 ≤ i ≤ n −1。A∗= a∗ n−1 , … ,a 0∗ 表示 A∗ 的密文向量,a∗ i= Enc(a∗ i), 0 ≤ i ≤n −1。V 表示 B 的密文向量,bi=Enc(bi),0 ≤i ≤n −1。B∗= b∗ n−1 , … ,b 0∗ 表示 B∗ 的密文向量,b∗ i= Enc(b ∗ 算术运算同态评估的输入。 n 足够大。我们不考虑整数算术运算中的溢出问题。
3.1. 补码运算的同态评估
定点数使用补码来完成算术运算。原码转换为补码的规则:
(i) 正数:正数的补码与原码相同。(ii) 负数: 负数的补码是符号位不变,数值位取反,然后在最低有效位(LSB)加1。
给定原码A,通过异或门和与门得到补码A∗。最高有效位an− 1是A的符号位,其余位an− 2 ⋅ ⋅ ⋅a0表示值。
给定一个初始化的进位 c−1=0,我们输出 A∗。补码的 BP:
$$
c_{-1}=0 \
c_i= a_i \vee c_{i-1} \
a^*
i=(a_i \oplus a_n c
{i-1}) \quad 0 \leq i \leq n - 2
\quad (2)
$$
我们使用异或门和与门将ci转换为BP。该BP为:ci= aici−1 ⊕ ai ⊕ ci−1, 0 ≤i ≤n −2。由于初始化的进位c −1= 0,我们可以将ci转换为不含c−1的多项式:
$$
c_i= \sum_{k=1}^{i+1} \sum_{|S|=i+1} \prod_{j\in S} a_j \mod 2
\quad (3)
$$
其中 S ={ai, ⋅ ⋅ ⋅a 0}, 0 ≤i ≤n −3, |S| 是 S 的汉明重量。我们可以通过在密文上进行加法和乘法操作,将上述多项式转换为补码的同态多项式。补码的同态多项式:
$$
c_i=\left( \sum_{k=1}^{i+1} \sum_{|S|=i+1} \prod_{j\in S} a_j \right) \mod x_0 \
a^
_i=(a_i+ a^
n \cdot c
{i-1}) \mod x_0 \quad 0 \leq i \leq n - 2
\quad (4)
$$
其中ci表示ci的密文结果,且Dec(ci) =ci。令a∗ n−1= a n−1。该x0是FHE中最大的奇数公钥。我们可以通过上述HP得到密文补码A∗。
3.2. 加法与减法操作的同态评估
整数补码加法操作需要从低位到高位依次计算结果。每一位的结果都需要一个被加数位、一个加数位以及来自低位的进位位。每一位的进位也需要一个被加数位、一个加数位以及来自低位的进位位。通过迭代上述操作,我们可以得到补码加法的结果。
我们设整数补码 A 和 B 作为输入来计算 S = A+ B,其中 S = sn−1 ⋅ ⋅ ⋅s 0。 n足够大,我们不考虑S的溢出问题。
加法的布尔多项式:
$$
c_{-1}=0 \
s_i= a_i \oplus b_i \oplus c_{i-1} \
c_i= a_i b_i \oplus c_{i-1}(a_i \oplus b_i) \quad 0 \leq i \leq n - 1
\quad (5)
$$
我们可以通过对密文进行加法和乘法运算,将上述BP转换为加法的同态多项式。加法的同态多项式:
$$
c_{-1}=\text{Enc}(0) \
s_i=(a_i+ b_i+ c_{i-1}) \mod x_0 \
c_i=(a_i b_i+ c_{i-1} a_i+ c_{i-1} b_i) \mod x_0 \quad 0 \leq i \leq n - 1
\quad (6)
$$
其中si是结果向量S的第 i个密文=sn−1, ⋅ ⋅ ⋅s 0,且Dec(A) +Dec(B) =Dec(S)。
加法操作可以实现整数减法操作。如果我们计算 A −B, 可以将 B 转换为 B∗,然后通过整数加法操作计算 A+B∗。为了得到 B∗,我们需要使用补码操作得到 B= b n−1 ⋅ ⋅ ⋅b 0,然后令 b∗ n−1= b n−1 ⊕1,b∗ i= b i, 0 ≤i ≤n −2。减法的同态多项式包含两个部分,即补码的同态多项式和加法的同态多项式。
3.3. 乘法操作的同态评估
整数乘法操作基于布斯乘法算法 [36]。它是一种用于对采用二进制补码表示法的两个有符号数进行相乘的乘法算法。我们设定被乘数 A 和乘数 B。布斯算法检查以有符号二进制补码表示的乘数 B 的相邻位对,包括最低有效位下方的一个隐含位 b−1= 0。此外,我们用 P 表示乘积累加器。乘法操作的基本算法步骤如下:
(1) 我们重新初始化 A、A∗ 和 P 的值。
(i) A: A= A ≪n, arithmetic leftshift(n+1) bits. A= anan−1 ⋅ ⋅ ⋅a 00 ⋅ ⋅ ⋅0.
(ii) A∗: A∗= A∗ ≪n, arithmetic leftshift(n+1) bits. A∗= a∗ n−1 ⋅ ⋅ ⋅a∗ 00 ⋅ ⋅ ⋅0.
(iii) P: fill the most significantn bits with 0. To the right of this, append the value of B. Fill the LSB with a 0. P=0 ⋅ ⋅ ⋅0bn−1 ⋅ ⋅ ⋅ b00.
(2) 确定 P 的两个最低有效(最右边)位。
(i) 如果b−1= b0,,则不进行任何操作,直接在下一步中使用P。算术右移1位。(ii) 如果b0b −1= 01,计算P = P + A的值。忽略任何溢出。算术右移1位。(iii) 如果b0b−1= 10,计算P = P +A∗的值。忽略任何溢出。算术右移1位。
重复上述第二步,共执行 n −1 次。从 P 中丢弃最低有效位。根据上述第二步所提及的技术,我们可以总结出一个判断选择布尔多项式(JCBP):
$$
\text{JCBP}
{\text{mult}}(b_0, b
{-1}, A^
, A) = (b_0 \oplus b_{-1})[b_0 A^
+ b_{-1} A]
\quad (7)
$$
我们使用 Pi 表示第 i 次迭代。乘法运算的 BP:
$$
P_i= P_{i-1}+ \text{JCBP}
{\text{mult}}(b_0, b
{-1}, A^*, A) \
P_i= P_{i-1} \gg 1 \quad 0 \leq i < n - 1
\quad (8)
$$
其中≫表示算术右移。我们可以通过对密文进行加法和乘法运算,将公式(7)转换为加法的同态多项式。JCBP的同态多项式mult(b0, b−1, A∗, A):
$$
\text{JCHP}
{\text{mult},x_0,\rho’}(b_0, b
{-1}, A^
, A, r,\text{switch}(\oplus,\wedge)) = [(b_0+b_{-1})(b_0A^
+ b_{-1}A)+2r] \mod x_0
\quad (9)
$$
A 和 A∗ 表示重新初始化后的 A 的密文向量和 A∗。 r=r0, …, rn−1 是一个噪声向量,且ri ← Z ∩(−2ρ ,2ρ ), 0 ≤i ≤n −1。乘法的同态乘积:
$$
P_i= P_{i-1} + \text{JCHP}
{\text{mult},x_0,\rho’}(b_0, b
{-1}, A^*, A,r,\text{switch}(\oplus,\wedge)) \
P_i= P_{i-1} \sim\gg 1 \quad 0 \leq i < n - 1
\quad (10)
$$
其中 ∼≫表示密文向量Pn−1的右移。当Pn−1向右移动1 个密文槽时,Pn−1的最高有效分量由原始最高有效分量的副本填充。Pn−1的最终值为带符号密文乘积。
3.4 除法操作的同态求值
除法是基本算术运算中最复杂的操作。对于使用加法器电路执行算术运算的简单计算机,采用一种称为非恢复除法的传统长除法变体,能够提供更简单且更快的速度。该方法每位商仅需一次判断以及一次加法/减法操作,并且在减法后不需要恢复步骤。我们设定被除数A和除数B。其中∗是B的二进制补码。R表示部分余数,Q表示商。二进制(基数2)非恢复除法的基本算法如下:
(1) 重新初始化值 B、B∗、R 和 Q。
(i) B:B = B ≫n,执行算术左移n位。B = bn−1 ⋅ ⋅ ⋅b 00 ⋅ ⋅ ⋅0。(ii) B ∗:B∗= B∗ ≫ n,执行算术左移n位。B∗= b∗ n−1 ⋅ ⋅ ⋅b 0∗0 ⋅ ⋅ ⋅0。
(iii) R:R = A ≫n,执行算术右移n位。R = r2n−1 ⋅ ⋅ ⋅r0。(iv) Q:Q = q= q 0 ,,用0填充至n位。
(2) 确定R的最高有效位(符号位)。
(i) 如果 r 2n − 1= 0,用 1 位数字填充 Q 的最低有效位,进行 1 位逻辑左移。求 R =2 ∗R + B∗ 的值。(ii) 如果 r 2n − 1= 1,用 0 位数字填充 Q 的最低有效位,进行 1 位逻辑左移。求 R =2 ∗ R +B 的值。
(3) 重复上述第二步,直到已完成n −1次。
(4) 转换商 Q。我们假设原始的 Q =11101010。
(i) 开始:Q =11101010。(ii) 掩码零项 (带符号二进制补码表示法):Q =00010101。(iii) 减去 Q = Q − Q:Q =11010101。
(5) 实际余数为 R = R ≫ n。商的最终结果始终为奇数,且余数 R 位于范围 −B < R < B 内。为了转换为正余数,在将 Q 从非标准形式转换为标准形式后,执行一次恢复步骤。如果 R <0,则求出 Q =Q−1 和 R =R+B 的值。
根据上述提到技术的第二步,我们可以总结出一个判断选择布尔多项式(JCBP):
$$
\text{JCBP}
{\text{div}}(r
{2n-1}, B, B^
)= r_{2n-1}B+(r_{2n-1} \oplus 1)B^
\quad (11)
$$
我们用 Ri 表示第 i 次迭代。除法运算的 BP:
$$
R_i=2R_{i-1}+ \text{JCBP}
{\text{div}}(r
{2n-1}, B, B^*) \quad 0 \leq i < n - 1 \
q_{n-1-i}= r_{i,2n-1} \oplus 1 \quad 0 \leq i < n - 1 \
Q= Q - Q \
R_{n-1}= R_{n-1} \gg n
\quad (12)
$$
其中 ri,2n−1 表示 Ri 的最高有效位。最后,执行第五步校正Q 和 Rn−1。我们可以通过在密文上使用加法和乘法将上述 BP 转换为加法的同态多项式。JCBPdiV(r2n−1, B, B∗ ) 的同态多项式:
$$
\text{JCBP}
{\text{div},x_0,\rho’}( r
{2n-1}, B^*, V, r,\text{switch}(\oplus,\wedge)) = [r_{2n-1} V+(r_{2n-1}+\text{Enc}(1)) V+2r] \mod x_0
\quad (13)
$$
其中 V 和 B∗ 分别表示重新初始化的密文向量 B∗。除法的同态乘积:
$$
R_i=2+R_{i-1}+\text{JCHP}
{\text{div},x_0,\rho’}( r
{2n-1}, B^*, V,r,\text{switch}(\oplus,\wedge)) \quad 0 \leq i < n - 1 \
q_{n-1-i}=(r_{i,2n-1}+\text{Enc}(1)) \mod x_0 \quad 0 \leq i < n - 1 \
Q= Q - Q \
R_{n-1}= R_{n-1} \sim \gg n
\quad (14)
$$
− 1, ⋅ ⋅ ⋅r i,0 表示 Ri 的密文向量,Q=qn − 1 ⋅ ⋅ ⋅ q 0 表示 Q 的密文向量。Q表示 qi=(qi+Enc(1)) mod x0,0 ≤ i< n。最后,我们需要通过以下操作来修正 Q 和 Rn−1:
$$
Q=[r_{n-1,n-1}(Q -\text{Enc}(1))] \mod x_0 \
R=[r_{n-1,n-1}(R_{n-1}+ V)] \mod x_0
\quad (15)
$$
Q和R的最终值是除法同态乘积的结果。
4. 噪声分析与优化
在第3节中,我们描述了整数算术运算的同态评估,包括补码、加法、减法、乘法和除法。在本节中,我们将分析我们方案的噪声上限与优化。在DGHV方案下,噪声上限随着乘法次数呈指数级增长。当密文的噪声最大为2η−2< p/2时,密文将无法被正确解密。因此,我们需要使用自举来控制密文的噪声,但使用自举来刷新密文会降低DGHV的效率。在本节中,我们将展示整数算术运算同态评估的噪声上限。此外,我们还将描述一种针对整数算术运算过程的优化方法,以减少全同态加密中使用自举的时间开销。
4.1. 我们方案的噪声分析
根据第3节,我们展示了n位有符号整数算术运算的同态评估的噪声上限和项目。我们用HE‐IAO表示整数算术运算的同态评估,并使用 HE‐com、HE‐add、HE‐sub、HE‐mul、HE‐div表示HE‐IAO的五种操作。详细信息见表2。
证明 。根据补码运算的同态评估公式(3),
$$
c_i= \sum_{k=1}^{i+1} \sum_{|S|=i+1} \prod_{j\in S} a_j \mod 2, \quad 0 \leq i \leq n - 2
\quad (16)
$$
∑|S|=i∏j∈S aj有(n−2 i+1)项,且次数为i+1。根据二项式定理,公式(3)中的项可表示为(1+x) n−2 −1= ∑ n−2 i=0( n−i2) xi −1,当x=1时成立。因此,项的多项式ci最多为2n−2 −1,且次数为n −2。由于ai∗=(ai ⊕anci−1) 0 ≤ i ≤n −1,项的a∗ 为2n−2,且次数为n −2。aibi ⊕ ci − 1(ai ⊕b i)的次数比ci − 1高1,且ci的项比ci − 1高 2 ∗term(ci 1)+1,其中term(ci − 1)表示ci − 1的项。c0=2的次数为n,cn− 2的项数为2n− 1 −1。Ssn− 1= a − 1 ⊕ bn − 1 ⊕c n − 2的最高有效位中,sn− 1+1。如果不考虑补码操作、减法和
| HE‐IAO | 次数 | term |
|---|---|---|
| HE‐com | n −1 | 2n−2 |
| HE‐add | n | 2n−1+1 |
| HE‐sub | n | 2n−1+1 |
| HE‐mul | ψ ∙22n−4 | − |
| HE‐div | φ ∙22n−4 | − |
表2:n位有符号整数算术运算的同态评估的度数上限和项目。 上方显示整数算术运算同态乘积在第n次迭代后密文结果的次数和项。
| HE‐IAO | 噪声上限 |
|---|---|
| HE‐com | ρlog(n−1)+对数2n−3 |
| HE‐add | ρlog(n)+对数 (2n−1+1) |
| HE‐sub | ρlog(n)+对数 (2n−1+1) |
| HE‐mul | ρ对数ψ∙2 2n−4+ − |
| HE‐div | ρ对数 φ∙2 2n−4+ − |
表3:n位有符号整数算术运算的同态评估噪声上限。 对数的底数为2。
加法具有相同的过程,因此其次数和项与加法相同。乘法和除法需要进行n −1次加法和移位的迭代。乘法和除法的过程特别复杂,我们无法找到公式来表示其次数。根据我们的计算,乘法和除法的次数接近于2的2n −4次幂。因此,乘法的次数不超过ψ ∙22n−4,除法的次数不超过φ ∙22n−4。乘法和除法的项数过高,且其次数已导致噪声超过正确解密的限制。
我们可以得出结论(见表2),同态评估加法和减法的次数为O(n),而乘法和除法的同态评估深度为 ̃O(ψ ∙22n−4)。我们使用项目来表示HP范数(HP的系数向量)。对n位整数算术运算进行同态评估的噪声上限可通过以下多项式计算:
$$
\text{Noise}=\rho’ \log d+ \log |\vec{f}|
\quad (17)
$$
其中, d表示同态乘积的次数,logd表示同态乘积的乘法层级。 |\vec{f}| 是同态乘积的 l1 范数。 ρ是每个密文中 的噪声长度。对n位整数算术运算进行同态评估的噪声上限如表3所示。
我们可以得出(见表3)n位有符号整数算术运算的同态评估噪声。噪声增长非常迅速。在补码、加法和减法的同态评估中,噪声最多增加至̃O(ρ n)。在乘法和除法的同态评估中,噪声超过̃O(ρ ψ∙2 2n − 4 )。
4.2. 我们方案的优化
根据第4节中对噪声上限的分析,我们需要在对 n位有符号整数算术运算进行同态评估的每一乘法层级中,通过使用密文刷新或模数转换技术来控制噪声的增长。然而,密文刷新或模数转换技术会降低我们方案的效率。因此,本节将描述一种针对我们方案的优化方法。该优化可以减少密文刷新的次数并提高效率。
由于整数算术运算是基于加法操作完成的,我们对整数加法的同态评估进行了优化。我们将整数加密的密文向量划分为长度为L的子向量。处于相同位置的子向量之间的算术操作的同态评估无需密文刷新,而处于不同位置的子向量之间则需要对密文进位进行一次刷新。因此,该优化方案在每一乘法层级中无需进行密文刷新,从而减少了密文刷新的次数。我们以乘积累加器的加法运算为例说明此优化方法。在乘法操作的同态求值中,乘积累加器Pi如公式(9)所示。公式(9)是一个三次多项式,而Pi是次数为一的密文向量。我们用F表示JCHP mult,x 0 ,ρ的向量。我们将Pi和F的密文向量划分为长度为 L的密文子向量。相同位置的子向量之间的密文运算与加法操作的同态评估相同(无需密文刷新)。不同位置的子向量之间的密文运算则需要对密文进位进行一次刷新(见图2)。
Pi和F的子向量生成密文结果块和密文进位。在每个密文结果块中,最大次数为3L −2(最左侧),最小次数为3(最右侧)。在不同位置的每个子向量中,密文进位的次数为3L +1。每个密文结果块和密文进位的密文均可使用通过密文刷新(重新加密)将次数降低至一。针对密文进位,一次乘积累加器(Pi+F)的密文刷新次数:
(i) 如果n能被L整除,则会产生n/L−1个密文‐进位,且密文刷新次数为cnt=n/L −1次。
(ii) 如果 n对L不可分,则将生成 ⌊n/L⌋密文进位,且密文刷新次数为cnt= ⌊n/L⌋次。
乘法操作的同态求值需要n −1次乘积累加器,整个操作需要(n −1)∙cnt次密文进位的密文刷新,以及(n −1)∙n次密文结果块的密文刷新。乘法操作的同态评估所需的密文刷新总次数:
$$
\text{CNT}=(n - 1) \cdot n+(n - 1) \cdot \text{cnt}
\quad (18)
$$
在原始的乘法操作同态评估中,每一乘法层级都需要一次密文刷新。整个操作需要(n −1)(3n −3) +n(n −1)+2n −3次密文刷新。我们将上述优化应用于补码、加法、减法、乘法和除法操作的同态评估,并设置 n=16,L =1,2,3,4。我们展示了原始方案(L = 0)和优化方案(L =1,2,3,4)的密文刷新次数,如表4所示。
为了实现我们的优化,我们需要调整同态加密的参数,使全同态加密在自举所需的15级乘法之外,额外支持log(3L +1)乘法层级。因此,我们重置了私钥长度:
$$
\eta \ge \rho’ \cdot \Theta(\lambda \log^2 \lambda) + \rho’ \cdot 2 \log(3L+1)+ \log(2L - 1+ 1)
$$
我们设定安全参数λ= 52、噪声长度ρ= 24以及θ= 15, Θ=500。参数设置如表5所示。
| HE‐IAO | L =0 | L =1 | L =2 | L =3 | L=4 |
|---|---|---|---|---|---|
| HE‐com | 29 | 29 | 22 | 20 | 18 |
| HE‐add | 45 | 31 | 23 | 21 | 19 |
| HE‐sub | 74 | 60 | 45 | 41 | 37 |
| HE‐mul | 944 | 494 | 367 | 335 | 303 |
| HE‐div | 1095 | 585 | 437 | 397 | 359 |
表4:整数运算同态评估中密文刷新的次数 ns.
| 参数 | λ | ρ | η | γ | τ | L=0 | L=1 | L=2 | L=3 | L=4 |
|---|---|---|---|---|---|---|---|---|---|---|
| 52 | 24 | 1632 | 2.0 ∙10⁶ | 1000 | 52 | 24 | 1728 | 2.5 ∙10⁶ | 1000 | |
| 1801 | 3.0 ∙10⁶ | 1000 | ||||||||
| 1874 | 3.5 ∙10⁶ | 1000 | ||||||||
| 1993 | 4.2 ∙10⁶ | 1000 |
表5:基于CMNT方案的“小”参数,重置公钥η和γ的长度。 固定λ、ρ以及公钥数量τ,仅根据L调整η和γ。
5. 实验结果
我们在方案中描述的优化已集成到基于GnuMP构建的代码中。我们的实验在一台搭载3.2 GHz主频的Intel Core i5‐3470处理器的台式机上进行,该设备运行Ubuntu 18.04操作系统,配备8 GB内存,并使用gcc编译器版本 6.2。我们将该台式机视为边缘数据中心,以测试本方案在边缘计算中的效率。我们选择16位和8位有符号整数的密文向量作为输入。由于我们对带自举的全同态加密进行了优化,因此在DGHV和CMNT方案中测试了原始方案 (L = 0)和优化方案(L = 1, 2,3, 4)(见图3(a)、 3(b)、3(c)、3(d)和3(e))。在CNT方案中,我们仅使用模数转换技术来控制噪声,因此仅测试CNT方案中的原始方案(见图4(a)和4(b))。在图中,“HE‐com( CMNT 16)”表示在CMNT方案中对补码运算进行同态评估,并计算16位有符号整数的密文向量;“HE‐com (DGHV 8)”表示在DGHV方案中对补码运算进行同态评估,并计算8位有符号整数的密文向量。其他图例的含义与上述类似。我们展示的实验结果基于第4.2节的参数设置。
我们可以得出结论(见图3(b)、3(c)、3(d)和3(e)), L = 2是进行加法、减法、乘法和除法同态评估的最佳参数设置。然而,补码运算的同态评估时间开销随着 L单调递增(见图3(a))。当L = 0时,时间开销达到绝对最小值。当L = 0和L = 1时,密文刷新次数相同。此外,补码运算次数为 2n − 3。当 n= 16时,L = 0中的次数为29,与L = 1相同。优化后的补码运算所减少的时间开销无法抵消因密文长度增加而带来的计算成本。然而,相对最小值出现在L = 2处。(见图3(a)、3(b)、3(c)、3(d)和3(e))。结果表明,除补码运算的同态评估外,我们的优化有效并能降低方案的时间开销。具体而言,我们将整数加密的密文向量划分为长度为2的子向量,并使DGHV和CMNT方案支持log(3 ∙2+1) ≈ 3乘法层级以上的附加运算。我们的方案优化能够达到最佳效果。在密文刷新次数方面,优化方案相较于基于DGHV和CMNT的原始方案减少了 2/3,整数算术运算的同态评估时间开销减少了1/3。
DGHV和CMNT方案在噪声管理技术上与CNT方案不同。DGHV和CMNT方案使用自举来控制噪声,而CNT方案使用模数转换技术来控制噪声。我们的优化用于基于DGHV和CMNT方案(带自举)实现的整数算术运算的同态评估,而不是基于CNT方案(模数转换)。因此,我们仅将基于DGHV和CMNT方案的本方案的最佳结果(L =2)与CNT方案(L = 0)进行比较。我们可以得出结论(见图4(a)和4(b)),基于 DGHV和CMNT方案(自举)的优化方案在L =2时的时间开销接近基于CNT(模数转换)在L =0时的时间开销。这同样表明我们的优化是有效的。并且我们的优化方案可应用于移动边缘计算,以解决密文中的隐私数据计算问题。
6. 结论
我们在边缘计算中实现了DGHV及其变体下的整数算术运算的同态评估方案。我们利用同态加密的特性,防止敏感数据在边缘计算中被盗。同时,我们还可以在边缘计算中对密文数据进行计算,从而提高服务质量边缘计算的性能。通过方案设计、噪声分析、方案优化和实验比较,获得了不同全同态加密方案下整数算术运算同态评估的差异性表现。尽管我们在第4.2节中优化了我们的方案,我们方案的时间开销仍然较高。主要的开放性问题是提高全同态加密方案的效率。这需要我们共同努力,寻找一种自然的全同态加密方案,或继续优化全同态加密架构以实现更高效的噪声管理技术。
测试的HE‐I长度8的密文向量的AO CPU时间。(b) 长度1的密文向量的HE‐IAO CPU时间测试 6.)
数据可用性
用于支持本研究结果的数据和代码已存放在GitHub仓库中( https:// github.com/limengfei1187/Homomorphic‐Encryption.git)。
利益冲突
作者声明,本文的发表不存在利益冲突。
致谢
本工作部分得到国家自然科学基金(61701322)、辽宁省自然科学基金重点项目(20170540700)和辽宁省教育厅科学研究基金(L201630)的支持。
面向MEC的整数同态运算优化
440

被折叠的 条评论
为什么被折叠?



