IBM成功完成全同态加密的现场试验

2020-07-31 19:02:31

昨天,ARS与IBM高级研究科学家Flavio Bergamaschi谈论了该公司最近成功的完全同态加密的现场试验。我们怀疑你们中的许多人会有和我们一样的问题-从";什么是完全同态加密开始?";

FHE是一种允许对加密数据进行直接数学运算的加密类型。解密后,结果将是正确的。例如,您可以加密2、3和7,然后将这三个加密值发送给第三方。如果您随后要求第三方将第一个和第二个值相加,然后将结果乘以第三个值并将结果返回给您,那么您就可以解密该结果-并得到35。

您不必与进行计算的第三方共享密钥;数据仍然使用第三方从未收到的密钥进行加密。因此,当第三方执行您要求它执行的操作时,它永远不知道输入或输出的值。您还可以要求第三方将加密数据与未加密数据进行数学或逻辑运算-例如,在伪代码中,fhe_deccrypt(fhe_crypt(2)*5)等于10。

Fhe最明显的含义是我喜欢称之为sysadmin问题的解决方案-如果您在由第三方管理的系统上进行计算,则第三方的root特权操作员通常可以访问数据。静态加密可防止访问特定时刻正在进行的任何计算范围之外的数据-但使用root权限,系统操作员可以扫描或更改RAM的内容,以获得对当前正在操作的任何数据的访问权限。

使用FHE,您可以执行这些计算,而根本不会将实际数据公开给远程系统。显然,这相当彻底地解决了sysadmin问题-当机器本身无法访问解密的数据时,其操作员也无法访问。

当然,这并不是系统管理员问题的第一个解决方案-AMD的安全加密虚拟化系统是另一个解决方案,它的效率要高得多。启用SEV后,在主机系统上具有root权限的操作员无法检查或有意义地更改该系统上运行的虚拟机正在使用的RAM内容。SEV实际上是免费的-受SEV保护的虚拟机的运行速度不会比未受保护的虚拟机慢。

然而,完全同态加密提供了安全加密虚拟化所不能提供的许多可能性。由于所有的数学和逻辑运算都可以从加法和乘法运算中构建,这实际上意味着可以对加密的数据执行任何计算。这打开了一系列令人眼花缭乱的可能性:人们可能会搜索数据库,而不会让数据库所有者知道您搜索的是什么或结果是什么。双方可能会发现各自持有的数据集的交集,而任何一方都不会将其数据的实际内容透露给另一方。

安全外包是这些原型中唯一可以在没有完全同态加密的情况下实现的。我们值得把大部分时间花在其他三个确实需要关注的问题上,因为这需要付出巨大的代价。

尽管完全同态加密使事情成为可能,否则是不可能的,但它会带来高昂的成本。在上面,我们可以看到一些图表,表明在加密的机器学习模型上运行所需的额外计算能力和内存资源-大约是在未加密的模型上执行相同工作所需的计算量的40-50倍和RAM的10-20倍。

在下一张图中,我们可以看到,无论是对明文数据还是对加密数据进行操作,机器学习预测任务的结果曲线都非常接近相同。我们想知道剩下的不同之处-是不是有点有损?贝加马斯基解释说,不完全是。正在使用的模型是基于浮点数据,而不是整数-而且浮点本身有点有损,而不是加密。

对浮点值执行的每一次操作都会稍微降低其精度-加法运算的精确度很小,乘法运算的精确度较大。由于加密和解密本身都是数学运算,因此这会给浮点值的精确度增加少量的额外降级。

我们应该强调的是,这些图表只直接适用于机器学习,并不是每一个借给FHE的任务都是机器学习任务。然而,其他任务也有其自身的局限性-例如,我们花了一些时间反复研究盲目搜索(搜索操作员既不知道您搜索的内容,也不知道它给您的结果)是如何工作的。

通常,如果您查询数据库,数据库不需要对正在查询的表中的每一行进行全文搜索-表将被索引,使用这些索引可以极大地加快搜索速度。但是,如果您正在使用完全加密值运行盲搜索,您的加密查询必须针对查询表中的每个全文行进行屏蔽。

通过这种方式,您既可以提交查询,又可以获得结果,而数据库操作员不了解这两种情况-但至少可以说,针对查询表中每一行的全文读取和掩码操作不能很好地扩展。这在很大程度上是一个问题,这在很大程度上取决于要查询的数据的类型以及有多少数据-但我们可能会再次考虑机器学习的50:1计算损失和20:1内存损失,如果不是更糟的话。

尽管FHE的性能惩罚可能令人望而生畏,但它们远远低于有用性的门槛--Bergamaschi告诉我们,IBM最初估计,使FHE在现实世界中有用的最低效率约为1000:1。由于惩罚远低于100:1,IBM与一家美国大型银行和一家欧洲大型银行签订了合同,使用实时数据进行FHE技术的真实现场试验。

所涉及的美国试验是基于使用机器学习模型来预测发放贷款的可能性,并为一大群客户提供对零售银行、贷款和投资信息的访问权限。数据集由364,000个条目组成,具有数百个特征-模型需要识别数据集中相对罕见的事件(约1%)。试验的成功是基于加密的预测具有与基线类似的准确性、变量选择具有类似的准确性以及可接受的计算开销。

关于欧洲的这项研究,我们没有太多的细节,因为它仍然处于保密协议之下--但美国的研究结果已经在2019年发表,可以在Cryptology ePrint档案中查看详细信息。

IBM的同态加密算法使用基于网格的加密,具有很强的量子计算抵抗力,可以作为Linux、MacOS和iOS的开源库使用。对Android的支持即将到来。