文章

同态加密加速

FPGA加速实现了这一独特的解决方案,允许对加密数据进行计算,而无需解密或共享密钥

密码背景上的密钥

传统的加密限制

加密数据是医疗文件或财务等敏感信息的必要条件,这些信息的数量正在成倍增长。理想情况下,这些数据将被存储在经济的公共云基础设施中,包括处理功能,如在数据库中查找记录。然而,由于加密,这意味着云存储供应商将需要私人密钥,而且能够看到搜索条件和结果。这种共享密钥和暴露于私人信息的做法带来了巨大的安全风险。

使用云存储和计算的传统加密技术

标准云搜索

在上面的例子中,一个加密的数据库存储在一个公共云服务器上。为了检索数据,如搜索,云系统必须既拥有解密数据库的私钥,又能看到搜索词和结果。虽然这些数据在通过不安全的链接之前已经被加密,但风险在于,云供应商拥有私人密钥,安全性依赖于他们的系统不被破坏。

由于这些限制,许多类型的高度安全数据,如医疗记录,不能利用公共云基础设施。

同态加密

然而,一项已有几十年历史的技术允许处理加密数据,如文本搜索,而不需要解密或提供对私钥的访问。它还允许对处理请求(例如搜索词)和结果也进行加密。存储供应商可以存储和处理敏感的加密数据,而没有风险。

同态云搜索

这种技术被称为同态加密(HE),并有几个级别的计算需求在不断增加。事实上,在像BittWare的IA-440i这样强大的FPGA卡出现之前,同态加密所需的计算量严重限制了实际的使用情况。

同态加密的使用案例

虽然我们提到了在数据库上的搜索,但同态加密还有许多其他的潜在用途:

  • 多个用户在加密数据上协同工作,数据本身没有暴露的风险,因为它从未以明文存储或甚至传输。
  • 组织可以自由地在站点之间共享敏感数据,而不需要承担共享解密密钥的风险。
  • 数据库可以在完全加密的状态下存储在公共云上,并且仍然被积极使用;对云的破坏只会暴露出加密的数据,而无法接触到私钥。
  • 机器学习的图像或音频搜索可以由公共推理计算资源执行,搜索本身、结果甚至数据源池都无法从计算/存储提供者那里分辨出来。

它是如何工作的

同态加密方案通常遵循两种方法中的一种:

高等职业教育均衡化计划

这种方法允许在所有HE方案中都存在的内部误差变得太大之前进行一定量的处理。如果事先知道所需的处理深度,用户可以创建一个具有适当容忍度的HE方案。这样做的好处是确保只进行最小量的处理,增加吞吐量。

全面高等教育计划(FHE)

这个方案也受到噪音增加的影响,但它使用了一种叫做 "引导 "的技术来消除任何错误的积累,在它变得太大之前。引导是非常缓慢的,尽管最近在加速 这一性能瓶颈方面有一些进展。

选择使用HE方案在很大程度上取决于用户的问题案例。因此,不太可能有一种解决方案适合所有的情况。在HE中处理加密数据也非常慢,需要明显的加速才能发挥作用。幸运的是,FPGA在加密方案所需的计算类型方面非常出色,而且足够灵活,可以有效地处理任何适合的HE方案。

FPGA加速的同态加密系统

人工智能多 HE 系统存储
IA-440i PCIe 卡
BittWare IA-440i FPGA加速卡

使用具有以太网功能的FPGA卡,用户可以发送加密的数据库请求。FPGA上的HE逻辑将该请求转换为存储在附加持久性存储器中的加密数据库中的适当查询。黑客在任何时候都不能提取有用的信息,允许数据库在公共领域内免费使用。由于数据库是加密格式的,如果非法访问数据,就不能提取敏感信息或算法IP。

使用同态加密的机器学习推理

同态加密并不限于基于文本的数据库应用。 上述相同的FPGA加速系统可以为计算提供加速服务,如机器学习(ML)推理。例如在医疗领域,病人的X射线(作为图像)可以被发送至基于云的ML模型来检测异常情况。然而,与数据库的例子一样,这样的查询需要将个人医疗信息(X射线图像)发送给共享的ML模型提供者,后者必须解密图像以执行推理。相反,请看下图,它显示了一个FPGA加速的HE和推理系统,为一些用户提供安全的查询:

人工智能多同态加密系统框图

在这个HE-安全系统中,病人的X光片、训练有素的ML模型和结果将在共享供应商的系统中保持加密状态。 与数据库搜索的例子一样,理想的主机将在一个共享资源上处理许多用户和查询。为了保证这样一个系统的安全,同态加密的布局与数据库搜索的例子非常相似。

今天的性能限制

请注意,即使有FPGA的高性能加速,今天的HE系统也要慢上几个数量级。 数量级的速度比未加密的同等系统慢几个数量级。因此,需要做更多的工作来缩小这一性能差距,以便更广泛地采用。

深入了解:同态加密的简史

在完全同态加密(FHE)实现之前,一些著名的加密方案已经表现出一些部分同态能力。加密方案RSA表现出乘法同构性,即两个加密的密码文本可以相乘,并在解密时返回相等的明文乘法结果。

RSA 倍增同态加密
方程:RSA对信息m的乘法同构性

而Paillier密码系统是一个加法加密方案的例子。这可以写成如下...

Paillier 同态加密
方程式:加法同态的Paillier密码系统

如前所述,完全同态加密(FHE)方案是一种既能进行加法运算又能进行乘法运算的方案。在这种情况下,允许对密码文本进行重复的乘法或加法运算,同时仍然允许恢复原始明文。

完全同态
一个完全同态的加密方案的描述

如果一个HE方案同时允许乘法和加法,那么它就能够执行逻辑NAND门,从而能够执行任何逻辑电路。 

DGHV全同态加密方案

最早的FHE方案之一是DGHV方案。这依赖于极其庞大的密码文本以确保良好的安全性。加密和解密方案由以下公式表示。

DGHV 信息加密 m
Equation: DGHV Encryption of message m to ciphertext c for m ∈{0,1}, p is the sercret key, q and r are random numbers
DGHV 密文解密
方程式:DGHV解密密码文本到信息m。

为了达到良好的加密效果,密码文本必须非常大,有1000万比特,秘钥P有几千比特,噪声值很大。为了确保加密方案不受线性代数攻击的影响,必须考虑引入噪声(r)。这一点在下文中有所描述。

DGHV 密文大小
如果加入随机噪音,DGHV密码文大小说明

使用如此大的密码文本显然有性能问题,一个比特的明文扩展到数百万个密码文本比特,使其在现实世界的使用案例中不切实际。然而,这是最早创建的功能性HE方案之一,重新启动了对HE的学术研究。

DGHV方案的另一个问题是噪音的增长,这是由所需的随机因素添加到加密中产生的。在这种情况下,密码文本的增加会使这种噪音增加一个比特,然而,每次应用时,乘法会使噪音加倍。

噪声的指数增长
加密数据上的乘法的指数式噪声增长

图中说明了相对于密匙大小q而言,乘法噪声ρ加倍。一旦噪声超过q,就不能再无误地恢复明文。这意味着我们只能在程序崩溃之前处理有限的操作。

为了解决这种错误的增长,使用了一种叫做引导的技术。引导技术可以通过将密码文本通过加密逻辑,使用共享的公共密钥进行加密来消除噪音。这相当于解密密码文本(消除了噪音)并重新加密,但数据在整个过程中仍然是私有的,因为公共密钥不能用于恢复原始明文。这个过程的计算成本很高,但可以消除噪音,允许无限数量的加密计算:一个完全同态加密(FHE)方案。

通过刷新进行引导
通过刷新右边的加密明文与左边的密码文本解密来进行引导的例子

带着错误学习(LWE)

带错误学习(LWE)方案是基于多项式评估,其中加密密钥现在是N度多项式的系数。多项式的系数在一个字数为q的有限域中。为了增加安全性,必须在系统中加入噪声(e),否则该方案很容易用线性代数解决。

信息 M 的加密函数
信息m的加密函数f,其中s(→)是一个系数数组,e是引入的噪声,q是质数。

两个多项式相加会产生第三个相同程度的多项式;但是两个多项式相乘会产生一个系数为(n+1)2的二次多项式。为了纠正多项式条款数量的增长,使用了一种叫做重新线性化的技术。多项式的二次项被公开,然后可以用二元分解法从结果中减去,将扩展后的多项式再次还原为(n+1)个系数。这种乘法受到与DGHV相同的噪声增长的影响,但是可以使用一种称为模数转换的技术来减少其影响。

可以证明,用一个新的素数缩放系数,使新的系数 "c "等价,使cnew=c mod 2,解密结果保持不变。这种关系可以用来把噪音的指数增长变成线性增长,在噪音增长过大之前允许对密码文本进行更多的操作(见下图)。

模数转换
模数转换的例子,将指数型噪声增长降低为线性噪声增长

这就是所谓的Levelled FHE。如果我们知道计算的深度,我们可以选择初始模数的大小,使其对给定的问题来说足够大,从而避免昂贵的引导阶段。

带错误的环形学习(RLWE)。

LWE方案的一个扩展是使用一个多项式环,其中N是2的一个幂。 .在这种情况下,两个多项式相加或相乘,系数仍由质数模子减少。乘法后,2N个系数被除以(X)时的余数所减少。N + 1).

多项式的乘法是这种HE实现的主要瓶颈,因为系数的数量通常在N=[210,214]的范围内。多项式乘法的一个优化是否定式数论变换(NTT)。这将计算次数从NN减少到Nlog(N)。NTT是在一个有限的整数域上的快速傅里叶变换(FFT)。

将两个多项式f(x)和g(x)相乘就变成...

隐性NTT (FwdNTT(f(x))* FwdNTT(g(x)))

公共领域的API

在公共领域有多个HE API,大部分是针对CPU优化的。这里有一些例子:

随着性能的提高和更快技术的实现,大多数都处于不断变化的状态。

英特尔HEXL - FPGA

英特尔在其HEXL库中也有一个并行的FPGA分支。英特尔用于FPGA的同态加密加速库(HEXL-fpga)是一个开源库,提供一些HE函数的FPGA实现实例。

目前包含在FPGA API中的运算符如下:

  • 二元乘法:两个多项式的乘法
  • KeySwitch:切换公共加密密钥或参数
  • 正向和反向负数论变换(NTT)

这些使用户能够在FPGA上试验不同的HE工作流程。BittWare USM(统一共享存储器)BSP与该库兼容。

总结

同态加密的潜在好处是巨大的;能够更好地利用公共的高风险数据的共享资源,如用于医疗和金融领域。同态加密正在不断发展,以解决新技术的性能问题。

由于FPGA具有高度灵活和高性能的架构,因此它是帮助实现HE采用的理想技术。像IA-440i这样的BittWare卡非常适合帮助客户推动同态加密从学术研究向现实世界部署的转变。

了解更多关于我们由Agilex驱动的FPGA加速器卡的信息→。

缩略语

HE:同态加密

RSA:Rivest, Shamir和Adleman

FHE: 完全同态加密

DGHV: Digi Gentry Halevi Vaikuntanathan

RLWE:有误差的环形学习

关于同态加密的视频资源