全同态加密

一、背景介绍

同态加密(Homomorphic Encryption,HE)一种能够使第三方在不知晓数据真实内容的情况下盲目处理数据的加密方法,即允许对加密的数据进行计算,数据在处理过程中保持机密,这种特性使得在不可信环境中的数据能够完成有用的任务。在分布式计算和异构网络中,这是非常有意义的研究领域。
Rivest、Shamir和Adleman在1978提出的RSA密码系统,这是同态加密研究的开端,而第一个可行的同态加密方案在三十年之后才被提出,也就是Gentry在2009年提出了第一个全同态加密方案。从那时起,同态加密引起了人们极大的兴趣,并根据Gentry的思想提出了关于FHE的新结构,其中最具代表性的是BGV、BFV、TFHE和CKKS。

二、全同态加密

同态加密分为全同态加密和半同态加密,半同态加密包含了仅支持一种同态加密特性的同态加密方案(乘法同态加密,加法同态加密等),以及限级同态加密。
同态加密方案基于误差学习范式,这是一个基于噪声的计算问题。当我们不断地对加密数据应用计算时,噪声会累积,最终会“爆炸”,使数据无法解密。限级同态加密(Leveled Homomorphic Encryption,LHE)方案只允许有限数量的操作(操作)以防止噪音爆炸,因此只支持简单的工作负载。
现有的全同态加密方案基于格密码学,它通过向攻击者提出复杂的数学挑战来保护数据,这些挑战即使在量子计算机上也极难解决。加密需要添加一些噪声或错误,以保证一定级别的安全性。包含小幅度噪声的密文被称为新鲜密文。每次同态操作时,噪声以一定的控制速率增长。只要噪声在一定的幅度下,解密就会返回给定计算的正确结果。然而,当全同态加密被用于执行密集的计算时,例如,那些机器学习训练所需的计算,噪声可能会累积到不再可能从现在耗尽的密文中恢复原始的底层明文。从本质上说,这些数据已经丢失了。一种被称为自举的计算密集型过程有助于减轻这种噪声积累,并将耗尽的密文转换为可以进一步计算的新密文。
同态加密的“自举”(Bootstrap)操作可以用来降低噪声水平,并允许对加密的数据进行无限数量的操作。这类能够自举的同态加密方案被称为全同态加密(Fully Homomorphic Encryption,FHE)。
自举可以理解为全同态加密方案解密函数的同态评估。正常的解密需要密文和密钥,并确保明文消息作为输出。相比之下,自举需要对密钥和密文进行加密,并确保作为输出的相同密文——在两个密文加密相同的消息上,而自举的输出密文具有较低的噪声,即可以用于进一步的计算。在自举过程中,加密的密钥永远不会被解密,这也就意味着密钥永远不会被公开。自举是全同态加密方案中主要的性能关键操作,因为它需要大量的计算资源。

三、全同态加密的应用

尽管同态加密的速度仍然很慢,但它已经被提出用于一些实际应用。
定制广告:Jeckmans等人提出了一个为用户获取他人产品推荐的系统,该系统基于一个社交网络设计,采用了同态加密技术,允许用户在不知晓推荐者身份的情况下获得推荐。
Armknecht和Strufe提出了一个推荐系统,用户在系统不知道内容的情况下得到推荐。该系统建立在一个非常简单但高效的同态加密方案的基础上,允许在广告保持加密时为每个用户选择广告。
医疗应用:Naehrig等人提出了一种方案,允许将患者的医疗数据以加密的形式(连续地)上传到服务提供商。用户是数据所有者,因此数据将根据用户的公钥进行加密,只有用户才能解密。然后,服务提供商计算加密的数据,这些数据可能包括血压、心率、体重或血糖读数,以预测某些健康状况发生的可能性。这里的主要好处是允许基于来自不同来源的读数进行实时健康分析,而不必向任何一个来源披露这些数据。Lauter描述了微软对心脏病发作预测的实际实现。
全同态加密方案还可用于构造零知识证明、签名、MAC和多方计算实现等加密工具。
零知识证明:Gentry在他的论文中表明,同态加密可以用于构造小尺寸的非交互式零知识(NIZK)证明。
委托计算:外包计算是云计算中除外包数据之外的第二大支柱。用户可能希望将计算委托给服务器,但是服务器可能是恶意的,或者容易发生故障,这意味着用户可能不信任计算的结果。用户想要证明计算是正确的,验证这个证明也应该比用户进行的计算更有效。Chung等人使用完全同态加密设计委托计算方案,改进了Gennaro等人的结果,而van Dijk和Juels研究了全同态加密单独解决云计算中隐私问题的不可行性。委托计算的一个例子是消息身份验证器,外包了数据集计算的用户可能想要检查返回值是否真的是正确的结果,这里标记应该独立于原始数据集的大小,并且只能对私钥的持有者进行验证。Gennaro和Wichs提出了这样一种基于完全同态加密方案的方案,可以认为是全同态签名的对称密钥版本,它只支持有限数量的验证查询。
签名:Gorbunov等人提出了一个限级完全同态签名方案的构造。该方案可以对签名数据上具有最大深度d的任意电路进行评估,并同态地产生一个短签名,任何人都可以使用公共验证密钥进行验证。用户上传已签名的数据,然后服务器对数据运行一些函数,从而产生。此外,服务器还会发布签名来验证计算。
多方计算:多方计算需要参与者之间的交互。Damgard等人描述了在计算期间如何使用同态方案来构造离线乘法,参与者在预处理阶段使用同态方案,但在计算阶段回到更有效的多方计算技术。
机器学习:机器学习(Machine Learning,ML)是全同态加密最重要和最有前途的应用领域之一。机器学习是人工智能的一个子领域,涉及开发利用数据建立基于训练数据(训练阶段)的模型,以便从新的未知数据(测试/推断阶段)做出预测或推断。近年来,机器学习发展迅速,应用数量不断增加,包括医学、金融、交通、自然语言处理,以及其他传统算法无法执行所需任务的其他领域。通常机器学习需要几个各方之间的协作:例如,一方开发机器学习模型,并将它们作为云服务(推理作为服务)提供给其他人。需要对敏感数据进行处理和分析(上面提到的使用状态)会造成数据泄露和IP盗窃的漏洞,即开发人员的机器学习模型被盗。鉴于所涉及的数据的敏感性,使用全同态加密执行机器学习是一个强大的解决方案,支持对加密数据进行计算,并保护私人和个人信息。
全同态加密在应用场景中主要有以下限制:
多用户支持:假设有来自同一系统(依赖于一个在计算中使用的内部数据库)的许多用户,他们希望保护他们的个人数据不暴露给运营商。一种解决方案是让运营商为每个用户提供一个单独的数据库,并根据该用户的公钥进行加密,如果这个数据库非常大,并且有很多用户,该方法就会变得不可行。Lopez-Alt等人通过定义和构建多密钥全同态加密,已经揭示出了解决这个问题的良好方向。
运行效率:如今所有的完全同态加密方案都有很大的计算开销,相较于直接对数据进行计算处理慢了太多。虽然全同态加密的时间复杂度是多项式大小,但其开销往往是一个相当大的多项式,复杂函数的同态计算往往不可行,需要对全同态加密的运行进行加速优化。

四、全同态加密的加速

在加密数据上的同态计算通常比明文计算慢几个数量级(通常有4到6个数量级)。但是全同态加密工作负载表现出高水平的任务和数据并行性,这可以被并行处理器加速。目前可行的方案有图形处理单元(GPU)、现场可编程门阵列(FPGA)和应用特定的集成电路(ASIC)。
FPGA:使用FPGA可以加速在全同态加密方案中常见的关键计算瓶颈,相较于通用计算机,这些瓶颈可以在“自定义”的非常规计算机上更快地执行,尤其是加速复杂且计算密集的数学操作。对于性能影响较大的操作,FPGA优化方案在运行时间上可以有两个数量级的改进。
GPU:最近可用GPU技术的巨大进步使得全同态加密所需的高位宽操作更接近现实。GPU对云计算商品市场有显著的渗透能力,因此,这可能是加速全同态加密的一个有价值的实现平台。相比基于单线程传统CPU的实现,GPU实现提供了两个数量级的加速,这可能是理想的云环境解决方案。
ASIC:美国国防高级计划局(Defense Advanced Projects Agency,DARPA)最近授予四个团队合同,开发用于完全同态加密的ASIC加速器,作为其虚拟环境数据保护(data protection in virtual environments,DPRIVE)项目的一部分。为期3.5年的DPRIVE项目的目标是能够在当前未加密计算的计算时间的一个数量级内对全同态加密的数据进行计算,也就是提供相较于目前CPU实现四个数量级的性能优化。相较于前两种方案,ASIC方案更加复杂,成本更高。

五、总结与展望

我们介绍了同态加密,重点介绍了全同态加密。全同态加密是现代密码学最受欢迎的一种加密方案,它允许对加密数据进行任意计算和操作,而全同态加密通过自举解决了限级同态加密操作次数限制的问题。
同态加密在过去的十多年中一直是一个广泛的研究领域。自2009年Gentry首次提出该方案以来,由于隐私保护技术的发展,已经出现了几代方案。同态加密还参与了其它研究领域(如机器学习)和其它加密协议(如安全的多方计算)的变革。尽管具有巨大的潜力,目前的全同态加密方案还是存在局限性,阻碍了其在实际环境中的适用性。较高的计算复杂度使得全同态加密不适合延迟敏感或带宽有限的应用,目前对于全同态加密加速的研究重心已经从算法原理方面逐渐转移到了使用特定的运算单元进行并行优化。
参考文献
[1] Marcolla C, Sucasas V, Manzano M, et al. Survey on Fully Homomorphic Encryption, Theory, and Applications[J]. Proceedings of the IEEE, 2022, 110(10): 1572-1609.
[2] Lee J W, Kang H C, Lee Y, et al. Privacy-preserving machine learning with fully homomorphic encryption for deep neural network[J]. IEEE Access, 2022, 10: 30039-30054.
[3] Fan J, Vercauteren F. Somewhat practical fully homomorphic encryption[J]. Cryptology ePrint Archive, 2012.
[4] Gentry C. A fully homomorphic encryption scheme[M]. Stanford university, 2009.
[5] Armknecht F, Boyd C, Carr C, et al. A guide to fully homomorphic encryption[J]. Cryptology ePrint Archive, 2015.
[6] Martins P, Sousa L, Mariano A. A survey on fully homomorphic encryption: An engineering perspective[J]. ACM Computing Surveys (CSUR), 2017, 50(6): 1-33.

posted @ 2023-03-10 10:14  TenderRun  阅读(1155)  评论(0编辑  收藏  举报