用于全同态评估的计算网络转换的制作方法

文档序号:36903123发布日期:2024-02-02 21:33阅读:16来源:国知局
用于全同态评估的计算网络转换的制作方法

本公开的主题涉及用于将第一计算网络转换为第二计算网络的计算机实施的方法、计算机可读介质、用于第一计算网络转换为第二计算网络的系统,所述第一计算网络是被布置用于计算一个函数的运算的第一计算网络,所述第二计算网络是被布置用于计算同一函数的全同态加密运算的第二计算网络。


背景技术:

1、自从craig gentry的突破性论文“fully homomorphic encryption using ideallattices”(完整版在commun.acm 53(3):97-105,2010中;通过引入的方式纳入本文)以来,人们一直在努力使全同态加密(fhe)对现实世界的应用足够安全和有效。fhe允许人们在不能够解密的情况下在加密数据上进行计算(例如,评估电路)。例如,输入数据及计算结果可以加密形式被接收和返回。中间数据(例如,计算的内部状态)也可以是加密形式。

2、即使计算的结果以加密形式返回,当解密时,输出如同在未加密数据上进行运算的输出是相同的。同态加密可被用于隐私保护的外包存储和计算。这允许数据被加密且被外包到云环境中进行处理和/或存储,所有这些都是加密的。

3、例如,同态密码可被应用于诸如医疗保健的领域中,在这些领域中,隐私规则可能使其难以共享明文数据(plain data),但对加密医学数据的计算可能是允许的。例如,为(例如)对医学数据进行分类而开发的医学模型可被配置为从第三方(例如医院)接收加密形式的医学数据。医学模型可例如将医学数据分类为(例如)正常的或异常的,或者分类为具有某种具体的医学综合征、疾病或其他病症。使用同态加密,医学模型可被应用于以加密形式接收的医学数据。这意味着评估医学模型的一方没有权限访问对应于加密医学数据的明文医学数据。该服务的用户可对医学模型应用的结果进行解密。

4、支持在密文上的任意计算的密码系统被称为全同态加密(fhe)方案。这样的方案使得能够评估大范围的函数,且可在加密输入上运行,以产生结果的加密。例如,一旦与门及或门的组合可用,就可获得所谓的功能完整性,因为这允许人们实施任何布尔电路。这种电路可由不可信的一方运行,而不暴露其输入、内部状态及输出。全同态加密可以是分级的,在这种情况下,某些运算的数目不能超过一个预定阈值。分级的全同态方案可通过执行自举运算而被转换为非分级的fhe方案。自举运算增加了可在加密数据项上所执行的运算的数目。

5、全同态加密方案可支持以某种特殊形式(例如作为布尔电路或算术电路)表达的计算。例如,分级的全同态加密方案可支持任意但具有有界的、预定的深度的电路的评估。非分级的全同态加密(fhe)允许具有无界的深度的任意电路的评估。通过周期性地对数据执行自举运算,分级的fhe方案可被转换为非分级的fhe方案。已知如何以电路的形式编译计算(例如,函数)。

6、自从gentry的论文以来,已开发出许多fhe方案,使计算时间减少了多个数量级。现在,许多fhe方案是已知的。ilaria chillotti等人的论文“tfhe:fast fullyhomomorphic encryption over the torus”(j.cryptology 33(1):34-91,2020)(通过引用的方式纳入本文)中描述了一个较新的fhe方案的示例。

7、在ilaria chillotti、marc joye和pascal paillier的论文“programmablebootstrapping enables efficient homomorphic inference of deep neuralnetworks”(参见cryptology eprint archive:report 2021/091,通过引用的方式纳入本文)中描述了一种优选的fhe方案。此论文在环面元素上运行,例如它是环面型fhe方案(tfhe)。

8、随着高效的fhe方案变得日益可用,对将最初针对常规非加密评估而开发的计算转换为使用fhe的计算的兴趣越来越大。这种转换始终是可能的,尤其是随着所谓的可编程自举(pbs)的发展,自举运算还执行能够由fhe计算的设计者所选定的预定函数。尽管如此,所期望的是在无需使用可编程自举的情况下,将原始计算中的尽可能多的运算运行为能直接地在加密值上执行。

9、不幸地,许多fhe方案(特别地,tfhe方案)对能够直接在加密值上执行的运算施加了限制,例如,作为加密运算的计算成本与原始非加密计算相当。例如,两个加密值的相加通常直接是可能的,特别地,这在基于环面的方案中是可能的。明文整数(plain integer)与加密值之间的相乘通常也是可能的;这是可被预期的,因为与整数n相乘可被看作是加密值的n个副本的重复相加。例如在tfhe(其中,“t”表示环面)中,加法和整数乘法本身是可能的。加密方案tfhe使用一种称为环面的数学结构。环面的一个实施例是例如实数按1取模(其他模数是可能的,但1是方便的)。在实际应用中,环面上的值通常被表示为合适的有限环,例如其中m是模数,例如整数按一个模数取模。整数模数m典型地是2的幂,例如2q,其中q可以是例如32或64,且q通常小于或等于128。对环面值的加密可如具体方案中那样来实现,例如如上面所引用的论文“programmable bootstrapping enablesefficient homomorphic inference of deep neural networks”中那样来实现。

10、然而,明文非整数值与加密值的相乘并不总是可能的。具体地,在基于环面的方案中,已知的困难是,与作为加密值的非整数相乘未被限定。

11、不幸地,在称作神经网络的一大类计算中,与非整数相乘经常发生,例如作为多重求和、矩阵乘法、卷积、批归一化等的一部分。诸如神经网络的计算网络向fhe计算型网络的转换需要改进。


技术实现思路

1、期望的是,使用fhe运算来在加密数据上运行计算网络,所述计算网络比如为第一计算型网络,未必限制于基于常规算术运算的神经网络。为了提高这种经转换的计算型网络(例如,第二计算网络)的效率,期望的是,运算直接地在加密值上运行,而不需要例如使用可编程自举。

2、例如,使用常规运算的第一计算网络可包括多个实值矩阵运算(y=w.x)以及多个另外的运算,所述多个实值矩阵运算(y=w.x)包括实值矩阵乘法,所述多个另外的运算具体是使用矩阵运算的结果作为输入的运算。目的可以是转换矩阵运算,从而避免实数与加密值之间的乘法,且替代地使用整数乘以加密值。被转换为仅使用加密值与明文整数的乘法以及加密值与明文整数或明文实数的加法的运算可在第二计算网络中被实施作为本机fhe操作,例如在没有可编程自举情况下的fhe操作。第一计算网络中的矩阵运算(例如,乘法或加法)中的实数可以是浮点数或定点数。

3、典型地,限定运算的实数在第一计算网络以及第二计算网络中都可以是未加密的。在一个典型的实施方案中,第一计算网络中的运算中的大多数实数不是整数,例如限定运算(例如,矩阵运算)的至少50%、75%或基本上所有实数。如本文所示出的,对于线性运算,这种转换总是可以的。对于其他运算,避免与实数相乘会总是可能的或期望的。第一计算网络中可能存在的另外的运算然后可使用一个或多个可编程自举被转换。

4、转换矩阵运算以避免实数与加密值之间的乘法的一种方式是将矩阵乘法的矩阵与称为扩展因子(典型地表示为alpha)的实值常数相乘,然后对矩阵进行舍入。直接对值进行舍入可能会大大降低精度。因此,矩阵乘法所产生的值也乘以扩展因子;然而,其他运算可能会为此进行调整。例如,需要与乘法结果相加的实值也可以与扩展因子相乘:例如,如果运算是具有偏置的矩阵乘法(y=w.x+b),则b也与扩展因子相乘,使得由具有偏置的矩阵乘法所得到的值仍然是原始值乘以扩展因子。其他的运算(例如,另外的运算)可被调整,以期望已经乘以扩展因子的输入。例如,这种函数可被调整为原始函数除以扩展因子的组合(例如,函数a(x)可替换为a(x/α)))。注意,fhe方案可能不直接支持除以扩展因子,但是如果另外的运算被实施为可编程自举,则这不是问题。

5、在一个实施方案中,确定经转换的第二计算网络的精度量度。通过扩展因子进行转换可能会引入不精确性,因为舍入运算即使在与扩展因子相乘之后也不会产生完全相同的值。对于较大的扩展因子,这种不精确性较小。换句话说,增大扩展因子会提高精度,例如使第二计算网络的精度更接近第一网络的精度。另一方面,在某一点处,如果扩展因子太大,则精度开始下降,因为值趋向于会变大,从而出现其他精度问题。除此之外,并非所有运算都会对最终结果产生相同的影响。因此,对于一些运算,高的扩展因子比其他运算更重要。可以通过迭代地优化扩展因子的集合以获得可接受的精度(例如,足够接近第一网络的精度的精度),来方便地找到一组好的扩展因子。

6、转换计算网络并不限制于神经网络,尽管神经网络是可以通过这种方式被很好地转换的一类重要的函数。神经网络通常对计算过程所引入的小不精确性不敏感。因此,使用一个实施方案,神经网络趋向于转换成特别高效的第二计算网络。

7、fhe方案中的加密值典型地被限制为固定位数。在本文中,术语实数或实用于指示未必是整数的数字。尽管使用了“实”一词,但在fhe中,这种数字典型地以包含多个数位的数字格式表示。典型地,定点精度用于表示实数,而不是浮点数。例如,在tfhe中,加密值可以是被限制在一个区间(典型地,在0(包含)与1(不包含)之间)的数字。例如,实数可以是0与1之间的具有固定精度(例如,32位或64位)的值。即使环面上的值位于一个区间内(例如,按1取模),环面上的值也可由该区间以外的值表示,但应理解,如果两个值x和y等于按1取模,则它们表示相同的环面。

8、在实施方案中,实数以有限数字实数表示来表示,典型地表示实数的有理近似。浮点或定点表示是这种实数表示的典型实施例。实值矩阵乘法可包括由实值矩阵所表示的实值矩阵乘法,以及可选地由实值向量所表示的实值向量加法。在一个实施方案中,实值矩阵的一个或多个或所有元素以有限数字实数表示来表示。在一个实施方案中,实值向量的一个或多个或所有元素以有限数字实数表示来表示。在一个实施方案中,实值矩阵以及实值向量的所有元素都以有限数字实数表示来表示;然而,这不是必需的,且混合表示矩阵和/或向量是可能的。浮点数格式在例如ieee 754中进行了描述。

9、一旦选择了扩展因子的集合,人们就可以将实值矩阵乘法转换为整数值矩阵乘法、实值加法转换为实值加法,但其中实乘数可能与扩展因子相乘。对卷积进行相同的转换。具有由实数组成的实值核的实值卷积被转换为具有由整数组成的整数值核的整数值卷积。实值核可以通过将其乘以扩展因子且进行舍入来转换。还可以对批归一化进行相同的转换。批归一化典型地是仿射函数,例如y=f*x+b,其中f和b是实值常数。实值的批归一化可被转换为另一仿射函数,如y=f’*x+b’,其中f’为整数常数,b’为实数常数。大多数其他操作可被转换为一个或多个可编程自举。一些操作仍然可在加密值上执行;例如,仅改变值顺序的运算,例如展平、拼接运算或线性运算(例如,两个向量的加法或减法等)。

10、扩展因子本身典型地是实值数。扩展因子可以以固定精度符号、浮点等表示。包括扩展因子的实数也可被表示为一对分子和分母,指示近似实数的有理数。

11、扩展因子通常大于1,但这不是必需的。典型地,第一计算网络中的每个运算都具有一个扩展因子,这仅意味着预定值与加密值之间的整数值乘法以及整数或实值加法。

12、可通过符号地分配扩展因子且通过第一计算网络传播符号输入来找到扩展因子。在一个先进实施方案中,解决了所谓的联合运算,这是组合来自不同来源的值的特定操作,但不使用可编程自举,例如加法、减法以及拼接运算。联合运算也可以是整数加权加法,例如整数线性组合。例如,联合运算从两个或多个运算接收两个或多个加密值向量。如果加密值乘以相同的扩展因子,则可直接在加密值上执行这种联合运算。因此,联合运算对我们需要求解的扩展因子施加了约束,以获得同质的且给出正确结果的第二网络。

13、实值矩阵运算组合了乘法以及加法。所述矩阵运算可被视为具有线性部分以及加法部分。例如,矩阵运算可以是wx+b或wx+b,其中w、x、b是矩阵以及x、b是向量。许多运算可被视为这样的矩阵运算,例如,实值矩阵运算可包括以下中的一项或多项:与实值核的卷积、与实值权重矩阵的矩阵乘法、与实值标量的批归一化。例如,卷积可被视为预定的核权重向量与卷积的输入值向量(后者在第二计算网络中被加密)之间的重复相乘。如果方便,数据可以多种类型的表格进行表示,例如2维或两维或更高维的核。输入值同样可以更高维度的张量被组织。然而,这种不同的数据组织归入矩阵运算。

14、转换的一个特别有用的应用是允许在隐私数据上执行计算。例如,诸如图像的医学评估或其他医学数据的计算。

15、医学数据可包括医学图像。医学图像可包括例如多维图像数据,例如二维(2d)、三维(3d)或四维(4d)图像,这些图像通过多种采集模式获取,所述采集模式诸如为但不限于标准x射线成像、计算机断层扫描(ct)、磁共振成像(mri)、超声(us)、正电子发射断层扫描(pet)、单光子发射计算机断层扫描(spect)以及核医学(nm)。

16、方法的一个实施方案可作为计算机实施的方法而在计算机上被实施,或者在专用硬件中实施,或者在两者的组合中实施。用于该方法的一个实施方案的可执行代码可被存储在计算机程序产品上。计算机程序产品的实施例包括内存设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上的非暂时性程序代码,用于当所述程序产品在计算机上执行时执行该方法的一个实施方案。

17、在一个实施方案中,该计算机程序包括计算机程序代码,当计算机程序在计算机上运行时,该计算机程序代码适于执行该方法的一个实施方案的全部或部分步骤。优选地,该计算机程序被实施在计算机可读介质上。

18、另一方面是根据一个实施方案的被配置用于转换的电子系统或设备,例如计算机。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1