b. 武警工程大学 网络和信息安全武警部队重点实验室, 西安 710086
b. Key Laboratory of Network and Information Security of PAP, Engineering University of PAP, Xi'an 710086, China
全同态加密(Fully Homomorphic Encryption, FHE)能够对密文进行任意运算, 且解密结果等同于对明文进行相同运算后的结果。FHE既具有机密性又能进行密态计算, 在云计算环境下可以提升数据的安全性[1]。文献[2]构造一种CPA安全的全同态加密方案, 其标志着第一代全同态加密算法的出现, 引起了密码学界的广泛关注。文献[3]基于环上误差学习问题(Ring Learning With Errors, RLWE)构造一种全同态加密算法BV11a, 其成为第二代全同态加密方案的典型代表。文献[4]提出近似特征向量方法并构造基于LWE问题的全同态加密方案GSW, 该方案标志着第三代全同态加密算法的出现。目前, 全同态加密大多需要借助自举过程以对同态计算后的密文进行刷新, 得到噪声较小的密文后重新启动同态运算过程。由于自举过程的计算复杂度较高, 且其使用的计算密钥会占据大量的存储空间, 从而降低了全同态加密方案的效率。文献[5]基于TGSW方案, 构造自举过程小于0.1 s的高效双层全同态加密方案CGGI16。文献[6]对CGGI16进行改进, 得出一种效率更高的全同态加密方案CGGI17。目前, 全同态加密方案的效率不断提升[7-9], 但其距广泛应用仍有一段距离。因此, 设计高效的全同态加密算法, 并对其编程实例进行优化, 是该领域亟需解决的问题。
密态计算的多数场景均需使用比较操作, 该操作也是安全多方计算、密文检索等协议的基本组成模块。文献[10]基于somewhat同态加密方案构造多比特的密文数值比较器。文献[11]在HElib同态运算库的基础上, 构建一种并行比较多比特明文的同态运算模型。
相对于CPU, GPU硬件具有更强大的浮点计算和并行计算的能力, 可以为全同态加密算法的快速实现提供良好的算力支撑[12]。目前, GPU已在深度学习[13-14]、影像数据处理[15-16]、密码算法加速[17-18]等领域得到了广泛应用。全同态密码算法的自举技术涉及大量的矩阵乘法和NTT运算, 因此, 可以利用GPU来加速实现这些计算密集型运算。cuFHE库是一个开源的GPU加速全同态密码库[19], 其借鉴了cuHE[20]中GPU端的快速数论变换, 实现一种基于CUDA平台的高效CGGI方案。然而, cuFHE仅提供了基本的门电路接口, 并未提供如比较运算等的函数接口。因此, 利用cuFHE提供的接口开发同态运算器, 可以使CGGI等同态加密方案得到更广泛的应用。
本文在cuFHE全同态加密库的基础上, 编写单比特同态比较运算函数, 利用GPU硬件和CPU多线程技术, 设计并实现一种可比较任意长度明文的多比特同态比较运算器。
1 CGGI全同态加密方案cuFHE软件库的底层方案为CGGI。
定义1(TLWE) 令n≥1为整数, N为2的幂, 噪音参数α≥0, 随机均匀选择私钥s∈
搜索问题描述为:给定齐次的TLWE实例, 找到s∈
判定问题描述为:区分TLWE实例和
定义2(Phase) 对于c=(a, b)∈
定义3(TLWE实例) c∈
CGGI方案中的自举过程[6]描述如下:
算法1 Bootstrapping自举过程
输入 μ1∈
输出 c=(a, b)∈
1.
2.b=[2Nb], ai=[2Nai]∈
3.
4.ACC←BlindRotate((0, v), (a1, a2, …, an, b), (BK1, BK2, …, BKn))
5.Return (0, μ)+SampleExtract(ACC)
CGGI方案中所提供的同态运算以TLWE密文c1和c2为输入, 调用自举算法实现同态与非(HomNAND)、同态异或(HomXOR)、同态与(HomAND)、同态或(HomOR)、同态非(HomNOT)门电路, 输出门电路操作对应的密文如下:
$\begin{array}{*{35}{l}} HomNAND\left( {{\boldsymbol{c}}_{1}}, {{\boldsymbol{c}}_{2}} \right)=Bootstrapping(({\bf{0}}, 5/8)-{{\boldsymbol{c}}_{1}}-{{\boldsymbol{c}}_{2}}) \\ HomXOR\left( {{\boldsymbol{c}}_{1}}, {{\boldsymbol{c}}_{2}} \right)=Bootstrapping\left( 2\left( {{\boldsymbol{c}}_{1}}-{{\boldsymbol{c}}_{2}} \right) \right) \\ HomAND\left( {{\boldsymbol{c}}_{1}}, {{\boldsymbol{c}}_{2}} \right)=Bootstrapping(({\bf{0}}, -1/8)+{{\boldsymbol{c}}_{1}}+{{\boldsymbol{c}}_{2}}) \\ HomOR\left( {{\boldsymbol{c}}_{1}}, {{\boldsymbol{c}}_{2}} \right)=Bootstrapping(({\bf{0}}, 1/8)+{{\boldsymbol{c}}_{1}}+{{\boldsymbol{c}}_{2}}) \\ HomNOT\left( \boldsymbol{c} \right)=({\bf{0}}, 1/4)-\boldsymbol{c} \\ \end{array} $ |
其中, 0表示维度为n的零向量, Bootstrapping为自举过程。
2 同态数值比较器 2.1 单比特同态数值比较器单比特数值比较器通过比较2个输入端的单比特二进制数的大小, 在输出端输出不同比较结果的逻辑电路, 具体如下。
输入:2个单比特二进制数A、B。
计算:
1) out1=A·B。
2) out2=(A·B)
3) out3=A·B。
其中, ·表示AND运算,
![]() |
下载CSV 表 1 单比特数值比较器真值表 |
逻辑输出为:
1) out1=1, 表示A小于B。
2) out2=1, 表示A等于B。
3) out3=1, 表示A大于B。
在单比特明文数值比较器的设计过程中, 可以抽象出数值比较器的基本特征。对于密文状态下的单比特数值, 只需通过如下同态操作即可实现比较运算:
明文m0、m1∈Z2, 定义密文上的运算AND、XNOR、NOT满足如下同态性质:
1) dec(AND(enc(m0), enc(m1)))=AND(m0, m1)。
2) dec(XNOR(enc(m0), enc(m1)))=XNOR(m0, m1)。
3) dec(NOT(enc(m)))=NOT(m)。
结合以上操作, 参照已经实现的单比特明文数值比较器, 设计单比特同态数值比较器, 其运算过程如算法2所示。
算法2 单比特同态比较算法
输入 m0, m1, pk, sk
输出 out1, out2, out3
1.M0=enc(m0, pk), M1=enc(m1, pk)
2.out1=(NOT(M0))AND(M1)
3.out2=(NOT(M0)AND(M1))
XNOR((M0)AND NOT(M1))
4.out3=(NOT(M0))AND(M1)
5.return out1, out2, out3
单比特同态数值比较器的真值表如表 2所示, 其中, 方框表示在密文上进行该运算。
![]() |
下载CSV 表 2 单比特同态数值比较器真值表 |
对输出结果进行解密:
1) out1=1, 表示A小于B。
2) out2=1, 表示A等于B。
3) out3=1, 表示A大于B。
2.2 并行多比特同态数值比较器通过逐比特地调用单比特比较器并将结果发回客户端, 可以实现多比特比较运算, 但其涉及过多的解密运算, 通信开销较大, 且未利用硬件的并行优势, 导致复杂度较高, 效率较低。本文在单比特同态比较器的基础上, 利用CPU多线程技术, 通过调用基于GPU的单比特数值比较器来实现并行多比特数值的比较运算, 从而构造一种任意比特长度的多比特数值比较器。因为该过程只需对单比特明文进行加密, 所以其明文空间为Z2。定义密文上的运算XOR满足如下同态性质:
$ dec(~XOR(~enc\left( {{m}_{0}} \right), enc({{m}_{1}})~)~)=XOR({{m}_{0}}, {{m}_{1}}) $ |
并行多比特数值的比较运算过程如下:
1) 选取2个二进制明文m=(x0, x1, …, xn), n=(y0, y1, …, yn), 分别对这2个明文逐位使用全同态方案CGGI的加密算法进行加密, 得到对应密文M=enc(m, pk), N=enc(n, pk)。
2) 对上述2个密文使用多线程技术, 并行调用单比特同态数值比较器进行同态比较运算, 并保存结果。
3) 对保存的结果进行相应的AND和XOR门电路操作, 得到最终结果。
对2个输入长度为n比特的二进制字符串, 从高位到低位依次调用单比特同态数值比较器进行运算后可得到OUT, 将OUT解密为out后, 程序结束并输出m≥n或m < n。并行多比特明文同态比较算法描述如下:
算法3 多比特同态比较算法
输入 m=(x0, x1, …, xn), n=(y0, y1, …, yn), pk, sk
输出 OUT
1.parallel for i=0 to n
2.Mi=enc(xi, pk), Ni=enc(yi, pk)
3.FLeveli, 1=(NOT(Mi))AND(Ni)
4.FLeveli, 2=(NOT(Mi)AND(Ni))
XNOR((Mi)AND NOT(Ni))
5.SLevel0=FLevel1, 2, OUT=FLevel1, 1
6.for i=1 to n
7.SLeveli=(SLeveli-1)AND(FLeveli, 1)
8.OUT=(OUT)XOR(SLeveli)
9.return OUT
并行多比特同态比较器的真值表如表 3所示。
![]() |
下载CSV 表 3 多比特同态比较器真值表 |
本文在cuFHE全同态加密库的基础上, 编写单比特同态比较函数, 利用CPU多线程技术和GPU硬件, 设计一种并行多比特同态比较器。本次实验分别对比较器的加解密时间、自举过程时间、单比特比较器运行时间和多组多比特比较运算时间进行测试。
实验环境:硬件采用Intel(R) Core(TM) i7-8700 3.20 GHz CPU, 8 GB内存, NVIDIA GTX1080 8 GB显卡, 软件系统运行Ubuntu 16.04 LTS 64位操作系统(Linux kernel 4.13), 测试程序基于CUDA 9.2平台, 使用gcc 7.2编译器进行编译。
3.1 加解密与自举过程测试在实验过程中, 首先对单比特输入进行加解密操作并测试时间, 对于每比特的输入输出, 加密和解密所需平均时间均不足0.01 ms。然后对单比特自举过程的时间进行测试, 结果显示, 自举过程所需时间为3 ms。
3.2 单比特比较算法在实验过程中, 对多组0、1输入进行加密, 对密文做同态比较运算, 测量总时间后求平均值得到运算时间, 结果显示, 对单比特明文进行同态比较运算所需的时间为10 ms。
3.3 多比特比较算法在实验过程中, 测量在GPU(CUDA平台)上同态比较器的运行时间。针对不同长度的二进制明文比特串, 同态比较器运算所需的时间如表 4所示。
![]() |
下载CSV 表 4 多比特同态比较器运行时间结果 |
比较器运算时间与明文长度的关系如图 1所示。
![]() |
Download:
|
图 1 比较器运算时间与明文长度的关系 |
从图 1可以看出, 基于CPU多线程技术与GPU硬件, 在1 s内可完成对100 bit明文的同态比较运算, 且比较器支持对任意比特长度的明文进行同态比较运算。具体应用时对电路规模进行比较的需求通常不大, 本文所设计的同态比较器基本能够满足实际需求。
4 结束语本文在cuFHE全同态加密库的基础上, 设计一种高效的多比特同态比较器。实验结果表明, 该同态比较器可比较任意比特长度的明文, 且运算速度较高。下一步将降低自举过程的计算量, 以提升该比较器的运算效率。
[1] |
陈智罡.基于格的全同态加密研究与设计[D].南京: 南京航空航天大学, 2015. http://cdmd.cnki.com.cn/Article/CDMD-10287-1016752032.htm
( ![]() |
[2] |
GENTRY C.Fully homomorphic encryption using ideal lattices[C]//Proceedings of the 41st Annual ACM Symposium on Theory of Computing.New York, USA: ACM Press, 2009: 169-178.
( ![]() |
[3] |
BRAKERSKI Z, VAIKUNTANATHAN V.Fully homo-morphic encryption from Ring-LWE and security for key dependent messages[C]//Proceedings of the 31st Annual Cryptology Conference on Advances in Cryptology.Berlin, Germany: Springer, 2011: 15-23.
( ![]() |
[4] |
GENTRY C, SAHAI A, WATERS B.Homomorphic encryption from learning with errors: conceptually-simpler, asymptotically-faster, attribute-based[C]//Proceedings of CRYPTO'13.Berlin, Germany: Springer, 2013: 75-92.
( ![]() |
[5] |
CHILLOTTI I, GAMA N, GEORGIEVA M, et al.Faster fully homomorphic encryption: bootstrapping in less than 0.1 seconds[C]//Proceedings of International Conference on the Theory and Application of Cryptology and Information Security.Berlin, Germany: Springer, 2016: 3-33.
( ![]() |
[6] |
CHILLOTTI I, GAMA N, GEORGIEVA M, et al.Faster packed homomorphic operations and efficient circuit bootstrapping for TFHE[C]//Proceedings of International Conference on the Theory and Application of Cryptology and Information Security.Berlin, Germany: Springer, 2017: 377-408.
( ![]() |
[7] |
李宗育, 桂小林, 顾迎捷, 等. 同态加密技术及其在云计算隐私保护中的应用[J]. 软件学报, 2018, 29(7): 8-29. ( ![]() |
[8] |
杨晓元, 丁义涛, 周潭平. 基于CPU多核的FHEW并行算法[J]. 密码学报, 2017, 4(6): 620-626. ( ![]() |
[9] |
游林, 梁家豪. 基于同态加密与生物特征的安全身份认证研究[J]. 信息网络安全, 2018, 18(4): 1-8. DOI:10.3969/j.issn.1671-1122.2018.04.001 ( ![]() |
[10] |
蒋林智, 许春香, 王晓芳, 等. 全同态加密在基于密文计算模型中的应用[J]. 密码学报, 2017, 4(6): 596-610. ( ![]() |
[11] |
孙爽, 吴文渊, 王会勇. 基于HElib的并行多比特明文同态比较模型[J]. 计算机应用, 2015, 35(S2): 53-56, 69. ( ![]() |
[12] |
OWENS J D, HOUSTON M, LUEBKE D, et al. GPU computing[J]. Proceedings of the IEEE, 2008, 96(5): 879-899. DOI:10.1109/JPROC.2008.917757 ( ![]() |
[13] |
李传朋, 秦品乐, 张晋京. 基于深度卷积神经网络的图像去噪研究[J]. 计算机工程, 2017, 43(3): 253-260. DOI:10.3969/j.issn.1000-3428.2017.03.042 ( ![]() |
[14] |
杨志刚, 吴俊敏, 徐恒, 等. 基于虚拟化的多GPU深度神经网络训练框架[J]. 计算机工程, 2018, 44(2): 68-74, 83. DOI:10.3969/j.issn.1000-3428.2018.02.011 ( ![]() |
[15] |
杨鑫, 许端清, 赵磊. 基于多核架构的大图像实时浏览技术[J]. 中国图象图形学报, 2018, 16(2): 152-160. ( ![]() |
[16] |
卢兴敬, 刘雷, 贾海鹏, 等. ParaC:面向GPU平台的图像处理领域的编程框架[J]. 软件学报, 2017, 28(7): 1655-1675. ( ![]() |
[17] |
温万里, 游林. 基于混沌和比特级置乱的并行图像加密算法[J]. 信息网络安全, 2014, 14(4): 40-45. DOI:10.3969/j.issn.1671-1122.2014.04.008 ( ![]() |
[18] |
成娟娟, 郑昉昱, 林璟锵, 等. Curve25519椭圆曲线算法GPU高速实现[J]. 信息网络安全, 2017, 17(9): 122-127. DOI:10.3969/j.issn.1671-1122.2017.09.029 ( ![]() |
[19] |
CUDA-accelerated fully homomorphic encryption library[EB/OL].[2018-12-20].https://github.com/vernamlab/cuFHE.
( ![]() |
[20] |
DAI Wei, SUNAR B.cuHE: a homomorphic encryption accelerator library[C]//Proceedings of International Conference on Cryptography and Information Security in the Balkans.Berlin, Germany: Springer, 2015: 169-186
( ![]() |