加密值的多项式乘法的制作方法
- 国知局
- 2024-08-02 14:44:24
当前公开的主题涉及一种计算机实施的加密计算方法、一种计算密文的表示的计算机实施的方法、相应的设备、以及计算机可读介质。
背景技术:
1、同态密码学允许人们执行加密计算:由一方对加密数据执行该计算(例如,电路评估)而该方无法解密。例如,输入数据和计算结果可以以加密形式接收和返回。中间数据(例如,计算的内部状态)也可以采用加密形式。
2、即使计算的结果以加密形式返回,在解密时,预计输出会与对未加密数据执行运算相同或非常接近。同态加密可被用于保护隐私的外包存储和计算。这允许数据被加密且被外包到云环境,以进行处理和/或存储,同时加密。
3、例如,同态密码学可被应用在诸如医学保健的领域中,在这些领域中,隐私法规可能使得共享明文数据变得困难,但是对加密医学数据的计算可能是允许的。例如,被开发如用于对医学数据进行分类的医学模型可以被配置为从第三方(如,医院)接收加密形式的医学数据。医学模型可以例如将医学数据分类为例如正常的或异常的,或者分类为具有某种特定的医学综合征、疾病或其他病症。使用同态加密,医学模型可被应用于接收加密形式的医学数据。这意味着提供医学模型的一方无法访问与加密医学数据相对应的明文医学数据。该服务的用户可以对医学模型应用的结果进行解密。
4、特别是,存在至少在原理上可用于计算加密数据的任何函数的同态密码技术。此类技术被称为“全同态加密”(fhe)技术。
5、出于安全原因,fhe的已知实施方式使用噪声密文。例如,数据项的加密可以包括将数据项映射到密钥相关格中的点,向该点添加噪声。特别是,fhe的许多已知实施方式使用基于广义容错学习(glwe)的密文,例如环容错学习(rlwe)密文,其安全性取决于广义容错学习问题的加密难度,特别是基于rlwe的密文的环容错学习(rlwe)问题。这种“基于glwe””或“glwe类型”的密文可以包含一个或多个掩码多项式加上由掩码多项式和明文导出且包含噪声的主体多项式。
6、当数据项刚刚被加密时,噪声很低——加密是新近的。例如,噪声量很低,使得如果要解密数据项,则可以在解密过程中的某个点去除噪声,例如通过舍入。另一方面,噪声应该足够高,以使对系统的攻击足够困难。例如,在假设没有噪声的情况下,许多同态加密方案可能会受到线性代数或其他有效算法(例如,格规约算法)的攻击。当数据项被加密时,会添加经过选择的噪声,使得攻击是困难的,同时仍然可以执行同态运算。
7、大多数同态运算都会增加同态加密数据项中固有的噪声。当许多这样的运算被执行时,噪声可能达到不再可能进行唯一解密的水平。一般来说,已知使用称为自举的技术来降低同态加密值的噪声。自举可以使用称为自举密钥的公钥。通过在需要时使用自举来降低噪声,原理上可以计算任何所需数目的同态运算。
8、一种特殊类别的全同态加密方案是tfhe类同态加密方案。这样的方案在i.chillotti等人的“tfhe:fast fully homomorphic encryption over the torus”,j.cryptol.,33(1):34-91,2020(通过引用纳入本文)中进行了描述。tfhe类方案与其他fhe方案的不同之处在于,它们支持一种相对非常高效的用于自举的技术。这种自举技术可以通过对glwe加密单项式的指数中的lwe解密进行同态评估来减少lwe加密输入值中的噪声,从而产生具有与lwe加密输入值中的噪声无关的噪声量的lwe加密输出值。tfhe自举也是可编程的,因为输出值可以是将函数应用于输入值的结果。这种可编程自举的实施例在i.chillotti等人的“programmable bootstrapping enables efficient homomorphicinference of deep neural networks”,cyber security cryptography and machinelearning(cscml 2021),lecture notes in computer science的第12716卷,第1-19页,springer,2021(通过引用纳入本文)中进行了描述。
9、tfhe可编程自举依赖于ggsw类型(广义gsw类型,例如(rgsw类型)密文c与基于glwe的密文c的所谓外积的计算。一般来说,对明文进行加密的ggsw类型密文c(例如在“programmable bootstrapping enables efficient homomorphic inference of deepneural networks”中所描述的)包括多个相应基于glwe的密文ci,所述密文对基于明文的相应值进行加密。外积的计算涉及将相应基于glwe的密文ci与基于glwe的密文c的相应被乘数多项式相乘,利用所述基于glwe的密文c计算ggsw类型密文。为了有效地执行这些多项式乘法,tfhe对复数采用快速傅里叶变换(fft),使用单位根ωj,其中并且ωm=1,其中1≤j<m。外积产生ggsw类型密文c和基于glwe的密文c的乘积的加密。可编程自举基于包含多个此类ggsw类型加密的自举密钥,并涉及使用这些ggsw类型密文重复计算外积。
10、由于用于可编程自举的自举密钥包含大量ggsw类型密文,而这些密文本身又包含大量基于glwe的密文,因此自举密钥的存储和传输相对较大。例如,对于典型的tfhe参数,自举密钥大小可以约为62mb。然而,可以通过将掩码多项式的系数定义为伪随机函数的输出来减小这个大小,在伪随机函数中只有种子然后需要被存储。当使用密钥时,然后评估伪随机函数以获得掩码多项式的系数,并且将这个表示转换为对执行fft的复数单位根的掩码多项式的复数评估。例如,当使用环lwe时,对于典型参数,自举密钥的大小可以减少约两倍至31mb左右。
技术实现思路
1、根据本发明的一方面,提供了如权利要求所定义的一种计算机实施的加密计算方法。根据本发明的另一方面,提供了如权利要求所定义的一种计算密文的表示的计算机实施的方法。根据另一些方面,提供了如权利要求所定义的用于这些计算机实施的方法的设备。根据另一方面,提供了如权利要求所定义的一种计算机可读介质。
2、该计算方法可涉及基于glwe的密文的多项式乘法,例如作为包括密文的ggsw类型密文的外积的一部分来执行。密文可以包括一个或多个随机掩码多项式,以及由掩码多项式和明文导出的主体多项式。多项式乘法可涉及将密文的掩码多项式和主体多项式乘以相应被乘数多项式,例如,乘以公共被乘数多项式。
3、密文可以作为数据存储在存储器中。例如,可以从持久存储器(诸如硬盘)中检索数据,或者可以将数据存储在易失性存储器(例如ram)中,该数据先前已从另一方(例如,已经计算密文的一方)接收。在任何情况下,如果存储的数据尽可能小则是可取的。如上所讨论的,如果计算密文的一方使用伪随机数生成器(prng;优选是加密prng)来生成掩码多项式的系数,则可以相对有效地存储密文。然后可以存储种子,而不是将掩码多项式包含在存储的数据中。然而,为了使用fft有效地计算多项式乘法,首先需要将掩码多项式的系数转换到傅里叶域,即,转换到复数单位根处这些多项式的估值。
4、发明人有两个重要的认识。首先,还可以这样定义密文的存储数据,使得prng不会以掩码多项式的常规系数表示生成掩码多项式,而是生成掩码多项式在傅里叶域中的表示,例如,作为估值集合中多项式的估值。为此,在执行明文的加密时,可以这样计算主体多项式,使得密文是针对根据prng在傅里叶域中生成的掩码多项式的明文的正确加密,而不是针对从prng获得其系数的掩码多项式的明文的正确加密。
5、具体而言,为了执行加密,可以根据种子应用prng以生成掩码多项式在傅里叶域中的表示。这些表示可以转换为它们的常规系数表示。系数表示可用于基于本身已知的随机掩码多项式来加密明文,从而产生以系数表示的主体多项式。然后可以将主体多项式转换回到傅里叶域,并与种子一起输出作为密文的表示。
6、要对以这种方式表示的密文进行多项式乘法,通过根据种子使用伪随机数生成器直接在傅里叶域中生成掩码多项式的表示就足以扩展表示。然后可以在傅里叶域中有效地计算掩码多项式和主体多项式与相应被乘数多项式的多项式乘积。多项式乘积可能产生计算的多项式乘积在傅里叶域中的表示。然后可以输出这些表示,例如以其傅里叶域表示,或根据需要转换回到系数表示。有趣的是,使用过程中不再需要将密文转换到傅里叶域,从而使得更有效地使用密文。这种转换现在在密文加密过程中已有效完成。不过,通过存储种子,可以有效地存储密文。因为一旦加密,这样的密文就可以被重复使用多次和/或被许多不同方重复使用,例如,当用于自举密钥或类似物时,这是一个值得的权衡。
7、发明人的第二个重要认识是,出于安全原因,有益的是使用数论变换的傅里叶域,而不是像当今的tfhe类方案那样使用复数fft的傅里叶域。数论变换是一种本身已知的在多项式环中执行有效乘法的技术。为了使用ntt执行多项式乘法,多项式可以用ntt的傅里叶域表示来表示。通常,多项式的傅里叶域表示包括多项式在多个相应估值点中的多个相应估值。当采用傅里叶域表示时,多项式可以有效地相乘,例如,通过估值的逐点乘法。此外,使用ntt,可以从多项式的系数表示来有效地计算其傅里叶域表示(通过应用数论变换本身),并从傅里叶域表示来有效地计算系数表示(使用逆数论变换)。
8、多种数论变换本身都是已知的,包括离散傅里叶变换(以其标准形式定义为商多项式xn-1以及质数幂模数q,其中n|q-1),参见例如在j.von zur gathen和j.gerhard的“modern computer algebra”,剑桥大学出版社,第3版,2013年,第8章(就离散傅里叶变换的描述而言,通过引用纳入本文),算法和nussbaumer算法,参见d.j.bernstein的“multidigit multiplication for mathematicians”,未发表的手稿(可在https://cr.yp.to/papers.html#m3获得)(就这两个算法的描述而言,通过引用纳入本文)。因此,“使用数论变换”执行多项式乘法通常可以指在数论变换的傅里叶域中执行多项式乘法,可选地结合使用ntt和/或其逆从该傅里叶域表示转换多项式或将多项式转换为该傅里叶域表示。
9、使用数论变换的优点是,随机生成数论变换的傅里叶域表示,并将其转换为多项式,可能会产生随机多项式,换句话说,正如系数单独随机生成时一样随机的多项式。对于复数fft来说情况并非如此,其中均匀随机多项式的傅里叶表示不是均匀分布的。
10、因此,使用prng生成掩码多项式在数论变换的傅里叶域中的表示,可能会产生具有与以随机生成系数的常规方式构造的密文相同的概率分布的密文,而复数fft则不是这种情况。因此,可以避免密文的分布可能泄露有关底层明文的信息的问题。这样,就可以获得安全且紧凑表示的密文,同时允许有效的多项式乘法。
11、从glwe推广,所提供的技术适用于“glwe类”密文,意指包括随机掩码多项式和主体多项式的密文。该技术可适用于这样的glwe类密文的掩码多项式和主体多项式要与相应被乘数多项式相乘的情况。具体而言,所提供的技术适用于使用包括此类密文的存储密钥材料的加密计算技术,其中通过将密钥材料乘以相应多项式来使用密钥材料。
12、在一个实施方案中,该技术应用于“tfhe类”加密计算。这种tfhe类加密计算的特征在于使用可编程自举运算,该可编程自举运算基于对加密单项式的指数的解密进行评估。具体而言,可编程自举可以包括盲旋转,所述盲旋转产生测试多项式和自举单项式的加密多项式乘积,其中自举单项式将明文值表示为指数。这个估值是使用自举密钥的ggsw类型密文的外积计算的。这样的ggsw类型密文可以包括多个glwe类密文,外积的计算可能涉及将ggsw类型密文的相应密文乘以相应多项式。在这样的tfhe类设置中,自举密钥是相对大的,因此可以更有效地存储和传输它们是非常重要的,同时,可编程自举是一项重要且相对繁重的运算,因此能够有效地执行它也非常重要。使用所提供的技术,可以更有效地存储自举密钥,同时仍然允许有效地应用可编程自举。
13、在一个实施方案中,该技术用于基于ggsw密文而不经意地选择第一glwe密文或第二glwe密文。这种不经意选择可以通过计算ggsw密文以及第一glwe密文和第二glwe密文之间的差的外积来执行。然后可以将第一glwe密文添加到计算的乘积中。此运算也称为受控选择器门或受控多路复用器,cmux。cmux运算可以是可编程自举的一部分,但也可以直接用作例如同态电路评估中的门。
14、在一个实施方案中,可以获得相应被乘数多项式的系数,并可以应用数论变换将相应被乘数多项式的系数转换到傅里叶域中。这样,基于glwe的密文就可以与系数形式可得的被乘数多项式相乘。通常,傅里叶域中的乘法比系数域中的乘法更有效地实现,即使包含此类转换时也是如此。在到傅里叶域的转换和多项式乘法之间可以有附加运算,例如,可以在乘法之前将加法或乘法(乘以常数或另一傅里叶域表示的多项式)在傅里叶域中应用至被乘数多项式。
15、在一个实施方案中,可以应用逆数论变换将计算的多项式乘积在傅里叶域中的表示转换为计算的多项式乘积的系数。这样,就可以获得系数表示,其可用于后续计算,例如样本提取、密钥切换等。另外这里,可以在乘积的计算和逆数论变换的应用之间在傅里叶域中执行附加运算,诸如加法或乘法。
16、在一个实施方案中,表示基于glwe的密文的扩展存储数据可以保存在内存中。扩展的存储数据可用于计算掩码多项式和主体多项式与另外的被乘数多项式的另外的多项式乘积。因此,对于这些另外的多项式乘积,不需要重新进行存储数据的扩展,从而导致效率的提高。尽管如此,当需要再次存储基于glwe的密文时,或者当期望减少其内存占用时,这可以通过丢弃掩码多项式并仅存储用于生成它们的种子来实现。
17、一般来说,本文所描述的多项式(例如主体多项式和掩码多项式)可被定义为按商多项式p(x)取模的多项式。例如,可以通过将多项式定义为多项式商环r[x]/(p(x))的元素,在环上定义所述多项式。或者,可以通过将多项式定义为(离散的)环面(注意)上的中的多项式来定义模上的多项式。具体来说,任何多项式(其中)可以与多项式(其中)相关联,其中通常,期望商多项式p(x)是不可约多项式,因为这通常有利于加密安全。
18、在一个实施方案中,商多项式p(x)除以正整数m的多项式xm-1,例如,等于xm-1,或者是严格除以它的低次多项式。多项式定义在其上的集合的元素q的数目(例如,或)可以被选择,使得包括m次本原单位根。在这种情况下,傅里叶域中的多项式乘法可以特别有效地实现,因为按xn-1取模的多项式乘法可以实现为本原单位根的幂的集合中被乘数多项式的估值的逐点乘法。在整个此说明书中,术语“本原单位根”是如j.von zurgathen和j.gerhard的“modern computer algebra”(剑桥大学出版社,第3版,2013年)中所定义的(就该定义而言,通过引用纳入本文)。傅里叶域中的其他有效多项式乘法实施包括nussbaumer方法或方法;有趣的是,对于这些变体,参数m和q的条件转化为按q取模可逆。
19、例如,商多项式可以是任何除以xm-1的商多项式p(x),而多项式的傅里叶表示可被定义为该多项式在m次本原单位根的幂的集合中的估值的集合。所述傅里叶表示可以与对m次本原单位根的相应幂的估值的逐点乘法相乘。为了在系数表示与傅里叶域表示之间进行有效的转换,有利的是,如果m包含2的一次或多次幂和/或3的一次或多次幂,例如,m是2的幂或m是3的幂。
20、在一些情况下,多项式的傅里叶表示可以包括单位根的每个幂的估值。然而,这不是必需的。在多种情况下,使用幂的子集就足够了,导致更有效的傅里叶域表示。如果商多项式等于(xm-1)/(xd-1),则尤其如此,其中m=hd且d=m-n(因此n=m-d=(h-1)d)。例如,对于h=2的情况,商多项式可以是(x2d-1)/(xd-1)=(xd+1)=(xn+1),或者对于h=3的情况,商多项式可以是(x3d-1)/(xd-1)=(x2d+xd+1)=(xn+xn/2+1)。在这种情况下,多项式的傅里叶域表示可被定义为仅在m次本原单位根ω的幂的子集中对多项式的估值,例如,对于h=2的情况,幂ω,ω3,…,ω2d-1,对于h=3的情况,幂(ω,ω2),(ω4,ω5),…,(ω3d-2,ω3d-1)。为了乘以多项式,只需对单位根的幂的这个子集进行估值就足够了,导致更有效的多项式乘法。尽管如此,有效的数论变换以及逆是可以的。
21、例如,商多项式xn+1可以与2n次本原单位根结合使用。例如,可以选择元素q的数目,使得环是元素数目为q≡1mod 2n的质数域商多项式xn+1(特别是其中n是2的幂)是有益的,因为许多已知的同态加密方案(例如tfhe方案)都是根据这个商多项式定义的,因此可以很容易地与所提出的技术结合使用。选择质数q=264-232+1特别有益,因为在此域中的运算可以在使用32位和/或64位整数算法的计算机处理器上特别有效地实现。
22、商多项式xn+xn/2+1可以与偶数个元素q(例如2的幂)结合使用。这是有益的,因为它允许高效的算术,并且因为某些应用程序需要使用2的幂。
23、在一个实施方案中,可以生成多个基于glwe的密文,以生成ggsw类型密文。例如,可以生成多个这样的ggsw类型密文来生成用于tfhe类型可编程自举的自举密钥,例如,通过生成对解密密钥的相应部分进行加密的相应ggsw类型密文。一般来说,ggsw类型密文可以定义为包括多个基于glwe的密文的密文,所述基于glwe的密文基于明文对相应值进行加密。在这种情况下,多个基于glwe的密文可以基于相同的种子,例如,可以使用相同的种子为相应密文生成相应的不同的随机掩码多项式。因此,例如,每个ggsw类型密文或甚至每个自举密钥仅存储一个种子就足够了,从而进一步减少存储要求。
24、所提供的用于改进对加密数据的计算的技术可被应用于广泛的实际应用。此类实际应用包括在无需访问明文数据的情况下对软件程序进行加密评估。例如,人们可以评估关于医学数据的医学诊断软件,而无需实际访问医学数据。医学数据可以包括医学图像。医学图像可以包括例如通过多种获取方式所获取的多维图像数据,例如二维(2d)、三维(3d)或四维(4d)图像,所述多种获取方式诸如但不限于标准x射线成像、计算机断层扫描(ct)、磁共振成像(mri)、超声(us)、正电子发射断层扫描(pet)、单光子发射计算机断层扫描(spect)以及核医学(nm)。
25、在一个实施方案中,所提供的技术可用于评估关于加密输入的神经网络。评估神经网络的一方可能会或可能不会以明文方式访问神经网络的训练参数,例如权重和偏差。总体上,本文所提供的技术(例如,改进的多项式乘法、可编程自举以及外积)提高了评估神经网络的效率和/或减少了所用密文或密钥材料的存储和传输要求。
26、本方法的一个实施方案可作为计算机实施的方法而在计算机上被实施,或者在专用硬件中实施,或者在这二者的组合中实施。用于该方法的一个实施方案的可执行代码可被存储在计算机程序产品上。计算机程序产品的实施例包括内存设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上的非暂时性程序代码,用于当所述程序产品在计算机上执行时执行该方法的一个实施方案。在一个实施方案中,该计算机程序包括计算机程序代码,当计算机程序在计算机上运行时,该计算机程序代码适于执行该方法的一个实施方案的全部或部分步骤。优选地,该计算机程序被实施在计算机可读介质上。
本文地址:https://www.jishuxx.com/zhuanli/20240801/243822.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表