什么是全同态加密(FHE)中的自举(Bootstrapping)?
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)中的自举(Bootstrapping)?的更多相关文章
- 同态加密-Homomorphic encryption
同态加密(Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样.换言之,这项技术令人 ...
- 【云安全与同态加密_调研分析(8)】同态加密技术及其应用分析——By Me
◆同态加密技术(Homomorphic Encryption, HE)及其应用◆ ◆加密方案◆ ◆应用领域◆ ◆厂商◆ ◆同态加密现有产品形态和工程实现◆ ◆参考链接◆ ◆备注(其他参考信息)◆ 同态 ...
- 同态加密与 Paillier/RSA
本文作者: wdxtub 本文链接: http://wdxtub.com/flt/flt-03/2020/12/02/ 白话同态加密 虽然同态加密即使现在听起来也很陌生,但是其实这个概念来自 1978 ...
- android全磁盘加密
android 全磁盘加密 什么是全磁盘加密? 全磁盘加密是使用一个密钥来为android设备上全部的用户数据加密的过程.一旦设备被加密,全部的用户创建的数据都将会在提交的磁盘之前自己主动加密,在读取 ...
- Paillier同态加密的介绍以及c++实现
我们先来简短认识一下Paillier同态加密算法: 如果就这么按照定义来用最简朴的c++程序写 就像这样: #include <iostream> #include <math.h& ...
- node.js+react全栈实践-Form中按照指定路径上传文件并
书接上回,讲到“使用同一个新增弹框”中有未解决的问题,比如复杂的字段,文件,图片上传,这一篇就解决文件上传的问题.这里的场景是在新增弹出框中要上传一个图片,并且这个上传组件放在一个Form中,和其他文 ...
- Paillier同态加密实现
一.C++(该方案只实现了加密以及解密) 1.git clone https://github.com/klei0229/paillier.git 2.下载GMP与NTL包: 下载版本以及操作参见ht ...
- 【云安全与同态加密_调研分析(7)】安全技术在云计算中的安全应用分析——By Me
我司安全技术在云计算中的安全应用分析 1. 基于云计算参考模型,分析我司安 ...
- .net 反射访问私有变量和私有方法 如何创建C# Closure ? C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密 C#中的foreach和yield 数组为什么可以使用linq查询 C#中的 具名参数 和 可选参数 显示实现接口 异步CTP(Async CTP)为什么那样工作? C#多线程基础,适合新手了解 C#加快Bitmap的访问速度 C#实现对图片文件的压
以下为本次实践代码: using System; using System.Collections.Generic; using System.ComponentModel; using System ...
- Linux学习66 运维安全-通信加密和解密技术入门
一.Linux Service and Security 1.OpenSSL(ssl/tls)协议 2.OpenSSH(ssh)协议 3.bind(dns) 4.web(http):httpd(apa ...
随机推荐
- easycom自动导入自定义组件
使用时要先创建一个这样的结构 相当于定义一个方法,所有的页面引用就可以了
- hbase报错 ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
hbase报错:hbase shell能打开 网页也能打开 但是一执行命令就开始报错. 原因:hadoop的安全模式打开. 解决方法:关闭安全模式 ,再重新启动HBase就可以了. 具体的命令: 1. ...
- 【scikit-learn基础】--『预处理』之 分类编码
数据的预处理是数据分析,或者机器学习训练前的重要步骤.通过数据预处理,可以 提高数据质量,处理数据的缺失值.异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据,数据的来源和结构可能多种多样, ...
- 生成式AI:未来的发展方向是什么?
生成式AI的问世标志着人工智能领域迎来了一个全新时代的开启.今年,ChatGPT的面世引起了广泛的热议和关注,许多人认为这标志着人工智能领域进入了一个大规模探索的时代.然而,事实上,这只是生成式AI发 ...
- 华企盾DSC控制台无法登录常见处理方法
1.查看服务器服务是否正常运行 2.服务器电脑的防火墙关闭了 3.telnet服务器IP和端口(服务器端口和数据库端口)是否是通的 4.如果是外网需要再控制台安装目录改setting配置文件 5.my ...
- 华企盾DSC编辑文件不加密常见问题
1.先查看客户端日志主进程是否是加密进程.日志中是不是勾选智能半透明.加密类型是否有添加 2.用procmon监控保存的文件找出writefile的进程是否有添加,进程树是否有父进程,加密类型是否正确 ...
- 文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题
四.一次聚会需要邀请多少人,才能让其中 3 人的生日很可能相同? 文心一言: 为了解决这个问题,我们需要先计算出所有可能的生日组合数,然后计算出其中生日相同的组合数. 已知需要邀请的人数为:23人 根 ...
- 浏览器工作原理和实践(二)——JavaScript
<浏览器工作原理与实践>是极客时间上的一个浏览器学习系列,在学习之后特在此做记录和总结. 一.执行流程 实际上变量和函数声明在代码里的位置是不会改变的,而且是在编译阶段被 JavaScri ...
- 十分钟从入门到精通(下)——OBS权限配置
上一篇我们介绍了OBS权限管理中统一身份认证和企业项目管理,本期我们继续介绍OBS权限管理中的高级桶策略和ACL应用. 您是否也遇到过类似的问题或者困扰? 1.隔壁的主账户给了子用户创建一个桶,但 ...
- 加快脑动脉瘤检测,AI来了
摘要:华为云EI创新孵化Lab联合华中科技大学电信学院.华中科技大学同济医学院附属协和医院放射科在放射学领域的国际顶级期刊Radiology(<放射学>)上共同发表了最新研究成果. 日前, ...