首页 > 其他分享 >什么是全同态加密(FHE)中的自举(Bootstrapping)?

什么是全同态加密(FHE)中的自举(Bootstrapping)?

时间:2023-12-06 10:57:26浏览次数:36  
标签:自举 同态 FHE CGGI Bootstrapping CKKS 操作

PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。

全同态加密(Fully Homomorphic Encryption,FHE)中经常提到的一个术语是“自举”(Bootstrapping)。任何读过FHE初级材料的人都知道,自举是FHE方案中最复杂和计算密集的组成部分。然而,除了在领域内工作的密码学家之外,很少有人真正理解自举操作是什么,以及存在各种不同的自举方法,每种方法都有其自己的权衡考虑。本文将揭开自举概念的神秘面纱,纠正该领域常见的误解,并比较常见FHE方案中的自举方法。

全同态加密的概念最早由Rivest、Adleman和Dertouzos于1978年首次提出,并提出了以下问题:“是否可能具有一种带有大量操作的隐私同态,其安全性非常高?”

然而,这个问题在30年内都没有得到解决,直到2008年底,斯坦福大学的博士生克雷格·根特里(Craig Gentry)提出了第一个全同态加密方案。这不仅是密码学领域的重大突破,还是理论计算机科学领域的突破;而自举操作则是它的关键组成部分。

现在,让我们来回答三个基本问题来介绍自举操作:“它是什么?”,“为什么需要它?”以及“它是如何工作的?”

什么是自举操作?

首先,让我们看一下牛津词典对自举(bootstrap)的定义:“通过自己的靴带将自己拉起”。当我们说一个HE方案是可自举的时,这意味着它可以在至少进行一项额外操作的同时,同态地评估自己的解密过程。

如图所示,在经典意义上评估解密过程需要一个密文和一个秘密密钥作为输入,并确保输出明文。然而,在FHE中,我们处理的是解密过程的同态评估,即自举操作,它使用了一个加密的秘密密钥和一个密文来生成一个“等效”的密文,我们可以进一步进行计算。加密的秘密密钥,也称为自举密钥或刷新密钥,是由秘密密钥持有者作为公钥材料的一部分提供的。

为社么在FHE中使用自举操作?

所有常见的FHE方案都基于嘈杂的加密(噪音是保证新加密安全性的因素),在其中进行同态操作会增加噪音幅度并降低密文的质量,即计算预算。自举操作的主要用途是将一个用尽的密文转换为“等效”的刷新密文。用尽的密文包含高噪音,无法进一步操作,而刷新的密文可以支持进一步的同态操作。自举操作的次要目的是在自举操作期间对加密消息评估函数。在这种情况下,自举操作的输出密文加密了明文消息的函数,而不仅仅是消息本身,除了减小输入密文的噪音。这种形式的自举操作被称为功能性或可编程自举操作。

自举操作在FHE中的作用

在FHE中的作用是验证加密方案的正确性。常见的自举方法遵循Craig Gentry引入的相同框架,即对自己的解密过程进行同态计算。然而,FHE方案中的自举机制在不同的方案之间有所不同。在我们的白皮书中,我们描述了DM(FHEW)/ CGGI(TFHE),CKKS和BGV/BFV FHE方案中的自举机制,突出了各种方法之间的主要区别,并基于OpenFHE库的计时实验结果和同行评议科学文献报告评估了它们的性能。

基于这一分析,我们提供了一些实践指南。请注意,截至撰写本文前,OpenFHE已经包括了CKKS、DM和CGGI方案的自举实现。BFV/BGV的自举实现目前正在开发中,并将包含在未来的OpenFHE版本中。

实践指南

我们总结了我们对CGGI、CKKS和BGV方案的自举性能分析,有关性能结果的更详细分析可在白皮书中找到。之所以选择CGGI而不是DM,是因为对于均匀三元秘密分布的典型安全设置,CGGI比DM稍快。BGV和BFV自举的复杂性非常相似,因此只需考虑BGV即可。在使用OpenFHE中的CGGI和CKKS实现运行实验后,对于BGV,我们使用了报告的结果,也就是安全参数的选择与128位安全级别相对应。

建议和总结

经过详细的实验,对于不同的自举操作进行建议总结:

  • 当密文包含大量槽位(超过100个)和/或需要更高精度(超过3-8位)时,CKKS自举操作性能最佳。

  • 当槽位数量较少(最多100个)且需要低精度(最多3-8位)时,DM/CGGI自举操作更有效率。

  • DM/CGGI自举操作可以用于高效地评估小整数上的任意函数(使用查找表),而CKKS可以评估相对平滑的函数(使用多项式,如切比雪夫插值)。

  • BGV/BFV自举操作在槽位摊销时间上略快于DM/CGGI,但比CKKS慢。但是,BGV自举操作不支持本来就具有任意函数评估的功能。

  • 硬件加速可以应用于所有这些自举方法,可用的文献表明,对于所有这些方法,预期的加速速度应该相似。在更高层次上,我们可以使用以上的见解来制定关于每个FHE方案何时最有用的建议:

  • CKKS对于处理实数的应用效率最高,实际上通常以浮点数表示。因此,CKKS是许多实际机器学习问题的最佳选择,如逻辑回归训练、卷积神经网络推断和统计计算等。

  • DM和CGGI(也称为FHEW和TFHE)是需要在小整数上进行任意函数评估的应用的最佳选择。一个常见示例是评估布尔电路。另一个示例是某些模型的机器学习推断。

  • BGV和BFV通常用于处理大量小整数的应用。常见示例包括私人信息检索和私人集合交集,这些应用经常用于安全数据库查询应用程序。

许多应用可能需要处理大问题规模(CKKS效果好)和任意函数评估(CGGI效果好),例如,决策树训练。在这种情况下,从CKKS切换到CGGI方案,然后再切换回来可能是有益的。OpenFHE团队目前正在向库中添加这种功能,并将在2023年提供。

原文地址:Bootstrapping in Fully Homomorphic Encryption (FHE)
原文作者:Yuriy Polyakov and Ahmad Al Badawi
翻译 & 整理:开放隐私计算 & PrimiHub

标签:自举,同态,FHE,CGGI,Bootstrapping,CKKS,操作
From: https://www.cnblogs.com/primihub/p/17879029.html

相关文章

  • closemuRUnlockIfHeldByScan
     2023/10/0904:24:37tick[mysql]2023/10/0904:24:37packets.go:37:readtcp192.100.1.15:60029->47.113.12.126:3309:wsarecv:Aconnectionattemptfailedbecausetheconnectedpartydidnotproperlyrespondafteraperiodoftime,orestablishedconne......
  • 使用 FHE 实现加密大语言模型
    近来,大语言模型(LLM)已被证明是提高编程、内容生成、文本分析、网络搜索及远程学习等诸多领域生产力的可靠工具。大语言模型对用户隐私的影响尽管LLM很有吸引力,但如何保护好输入给这些模型的用户查询中的隐私这一问题仍然存在。一方面,我们想充分利用LLM的力量,但另一方面......
  • 全同态(Fully Homomorphic Encryption, FHE)和半同态(Partially Homomorphic Encryption,
    全同态(FullyHomomorphicEncryption,FHE)和半同态(PartiallyHomomorphicEncryption,PHE)全同态加密(FHE)是指一种加密方案,可以在加密状态下进行任意多次的加法和乘法运算,并且可以得到与明文数据相同的结果。这意味着可以在加密的数据上进行复杂的计算,而无需解密数据。FHE是同态......
  • 带加权的贝叶斯自举法 Weighted Bayesian Bootstrap
    在去年的文章中我们介绍过BayesianBootstrap,今天我们来说说WeightedBayesianBootstrapBayesianbootstrap贝叶斯自举法(Bayesianbootstrap)是一种统计学方法,用于在缺乏......
  • 自举电路的说明及相关计算
    自举电路 说起自举电路估计离不开mos管,先来了解一下MOS管,MOS有N沟道和P沟道之分。对于N沟道的MOS管,导通时需要Ugs>Ugs(th),P沟道则相反,Ugs<Ugs(th)时导通。下面来看看P沟......
  • 强化学习(七):n步自举法(多步引导法)
    强化学习(七):n步自举法(多步引导法)  在之前,我们知道求解有限马尔可夫决策过程可以通过蒙特卡洛和时序差分来通过与环境多次交互从经验中学习,然而,蒙特卡洛方法在一些不满足分......
  • TLS Bootstrapping原理
    1.1 Kubelet启动过程TLSBootStrapping官方文档:https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#initialization-p......
  • MIT6.828 Lab 1: C, Assembly, Tools, and Bootstrapping
    前置准备实现机器为VMWare的虚拟机,操作系统为Debian-11(无桌面版本),内核版本为5.10.0,指令集为AMD64(i79700K),编译器为GCC-10QEMU虚拟化支持理论上只需要qemu提......
  • hctf2016_fheap
    hctf2016_fheap保护测略程序分析只有两个程序功能,创建和删除这道题每申请一个chunk前会创造一个用于存放信息的chunk,这类的题一般是控制或改变用于存放信息的chunk来......
  • FHE学习笔记 #2 多项式环
    https://en.wikipedia.org/wiki/Polynomial_ringhttps://zhuanlan.zhihu.com/p/419266064这篇知乎文章讲的比较透彻,但是不易理解,可以结合以下视频学习。无尽沙砾大佬的......