CN113630234A - 使用同态加密的加密方法及装置 - Google Patents
使用同态加密的加密方法及装置 Download PDFInfo
- Publication number
- CN113630234A CN113630234A CN202110400670.2A CN202110400670A CN113630234A CN 113630234 A CN113630234 A CN 113630234A CN 202110400670 A CN202110400670 A CN 202110400670A CN 113630234 A CN113630234 A CN 113630234A
- Authority
- CN
- China
- Prior art keywords
- polynomial
- target
- points
- processor
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供了使用同态加密的加密方法及装置以及执行同态加密方案的装置。使用同态加密的加密方法可以包括:通过对数据进行加密来生成密文;以及,通过针对与密文相对应的模基于对一个或多个目标点的选择执行模约减,来对密文进行自举。
Description
相关申请的交叉引用
本申请要求于2020年5月8日提交的美国临时专利申请No.63/021,761以及于2020年10月26日在韩国知识产权局提交的韩国专利申请No.10-2020-0139444的优先权,其全部公开内容通过引用并入本文以用于所有目的。
技术领域
以下描述涉及使用同态加密的加密方法及装置。
背景技术
全同态加密是使得能够对经加密的数据执行任意逻辑运算或数学运算的加密方案。全同态加密方法在数据处理中保持了安全性。
然而,在常规的加密方法中,难以处理经加密的数据,因此不足以保护客户的隐私。
全同态加密能够在保护隐私的同时使得客户能够接收许多服务。
发明内容
提供本发明内容以用简化形式介绍在下文的具体实施方式中进一步描述的构思的选择。本发明内容不旨在标识所请求保护的主题的关键特征或基本特征,也不旨在帮助确定所请求保护的主题的范围。
在一个总体方面中,一种使用同态加密的加密方法,包括:通过对数据进行加密来生成密文;以及,通过针对与密文相对应的模基于对一个或多个目标点的选择执行模约减,来对密文进行自举。
进行自举可以包括:通过逼近与模约减相对应的函数,对密文进行自举。
通过逼近与模约减相对应的函数对密文进行自举可以包括:生成逼近与模约减相对应的函数的目标逼近多项式。
生成目标逼近多项式可以包括:基于目标逼近多项式的次数,确定一个或多个参考点;基于一个或多个参考点,确定任意多项式;以及,基于根据所述任意多项式选择的一个或多个极值点,生成目标逼近多项式。
所述确定可以包括:确定经过一个或多个参考点的分段连续函数;以及,通过生成多项式来确定所述任意多项式,所生成的多项式使得:所述多项式与所述分段连续函数之间在所述一个或多个参考点处的误差的绝对值是预定值。
通过生成多项式来确定所述任意多项式可以包括:通过生成如下多项式来确定所述任意多项式,所生成的多项式使得:在所述一个或多个参考点中包括的第一参考点处的误差与在邻近所述第一参考点的第二参考点处的误差具有不同的符号,并且在第一参考点处的误差的绝对值和在第二参考点处的误差的绝对值是所述预定值。
基于根据所述任意多项式选择的所述一个或多个极值点生成目标逼近多项式可以包括:从所述任意多项式与经过所述一个或多个参考点的分段连续函数之间的误差的极值点之中,确定绝对值大于或等于预定值的候选点;从所述候选点之中选择目标点,其中,所述目标点的数量基于所述目标逼近多项式的次数;以及,基于所述目标点生成所述目标逼近多项式。
选择所述目标点可以包括:从所述候选点之中选择使得最大值与最小值交替出现的目标点。
选择所述目标点可以包括:选择使得所述任意多项式与所述分段连续函数之间的误差的绝对值之和被最大化的目标点。
基于根据所述任意多项式选择的所述一个或多个极值点生成目标逼近多项式可以包括:生成针对所述一个或多个极值点的绝对值之中的最大值与最小值之间的相对误差小于阈值的情况的多项式,作为所述目标逼近多项式。
所述目标逼近多项式的基可以是切比雪夫多项式的基。
一种可以存储指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时,配置所述一个或多个处理器执行上述方法。
在另一个总体方面中,一种使用同态加密的加密装置,包括:一个或多个处理器,被配置为:通过对数据进行加密来生成密文,以及,通过针对与密文相对应的模基于对一个或多个目标点的选择执行模约减,来对所述密文进行自举。
所述加密装置还可以包括:存储器,被配置为存储指令。所述一个或多个处理器还可以被配置为执行所述指令以配置所述一个或多个处理器执行以下操作:通过对数据进行加密来生成密文,以及通过针对与所述密文相对应的模基于对一个或多个目标点的选择执行模约减,来对所述密文进行自举。
所述一个或多个处理器可以被配置为:通过逼近与所述模约减相对应的函数,对所述密文进行自举。
所述一个或多个处理器可以被配置为:生成逼近与所述模约减相对应的函数的目标逼近多项式。
所述一个或多个处理器可以被配置为:基于所述目标逼近多项式的次数,确定一个或多个参考点;基于所述一个或多个参考点确定任意多项式;以及,基于根据所述任意多项式选择的一个或多个极值点,生成所述目标逼近多项式。
所述一个或多个处理器可以被配置为:确定经过所述一个或多个参考点的分段连续函数;以及,通过生成多项式来确定所述任意多项式,所生成的多项式使得:所述多项式与所述分段连续函数之间在所述一个或多个参考点处的误差的绝对值是预定值。
所述一个或多个处理器可以被配置为:通过生成多项式来确定所述任意多项式,所生成的多项式使得:在所述一个或多个参考点中包括的第一参考点处的误差与在邻近所述第一参考点的第二参考点处的误差具有不同的符号,并且在第一参考点处的误差的绝对值和在第二参考点处的误差的绝对值是所述预定值。
所述一个或多个处理器可以被配置为:从所述任意多项式与经过所述一个或多个参考点的分段连续函数之间的误差的极值点之中,确定绝对值大于或等于预定值的候选点;从所述候选点之中选择目标点,其中,所述目标点的数量基于所述目标逼近多项式的次数;以及,基于所述目标点生成所述目标逼近多项式。
所述一个或多个处理器可以被配置为:从所述候选点之中选择使得最大值与最小值交替出现的目标点。
所述一个或多个处理器可以被配置为:选择使得所述任意多项式与所述分段连续函数之间的误差的绝对值之和被最大化的目标点。
所述一个或多个处理器可以被配置为:生成针对所述一个或多个极值点的绝对值之中的最大值与最小值之间的相对误差小于阈值的情况的多项式,作为所述目标逼近多项式。
所述目标逼近多项式的基可以是切比雪夫多项式的基。
在另一个总体方面中,一种被配置为执行全同态加密方案的装置,包括:一个或多个处理器,被配置为:通过对数据进行加密来生成密文;通过针对与所述密文相对应的模基于对一个或多个目标点的选择执行与模约减相对应的函数的逼近,来对所述密文进行自举;以及,生成被配置为逼近与所述模约减相对应的所述函数的目标逼近多项式。
所述目标逼近多项式可以使用切比雪夫变换定理来生成。
所述一个或多个处理器还可以被配置为:基于所述目标逼近多项式的次数,确定一个或多个参考点;基于所述一个或多个参考点确定任意多项式;以及,基于根据所述任意多项式选择的一个或多个极值点,生成所述目标逼近多项式。
其他特征和方面通过以下具体实施方式、附图和权利要求将变得清楚。
附图说明
图1示出了加密装置的示例。
图2A示出了用于通过图1的加密装置生成目标逼近多项式的算法的示例。
图2B示出了用于通过图1的加密装置生成目标逼近多项式的算法的示例。
图2C示出了通过图1的加密装置生成目标逼近多项式的示例。
图3示出了通过图1的加密装置搜索极值点的示例。
图4A示出了用于通过图1的加密装置选择目标点的算法的示例。
图4B示出了通过图1的加密装置选择目标点的示例。
图5示出了图1的加密装置的总体操作的示例。
在整个附图和具体实施方式中,除非另外描述或提供,否则相同的附图标记应被理解为指代相同的元件、特征和结构。附图可以不按比例绘制,并且为了清楚、说明和方便,可以放大附图中的元件的相对尺寸、比例和描绘。
具体实施方式
提供以下详细描述以帮助读者获得对本文描述的方法、装置和/或系统的全面理解。然而,在理解本申请的公开内容以后,本文描述的方法、装置和/或系统的各种改变、修改和等同物将是显而易见的。例如,本文描述的操作的顺序仅仅是示例,并且不限于本文阐述的那些,而是可以改变,如在理解本申请的公开内容以后将显而易见的,但是必须以特定顺序发生的操作除外。此外,为了更清楚和简洁,可以省略在理解本申请的公开内容以后已知的特征的描述。
本文描述的特征可以以不同的形式体现,并且不应被解释为限于本文描述的示例。相反,提供本文描述的示例仅是为了说明实现本文描述的方法、装置和/或系统的许多可能的方式中的一些,这些方式在理解本申请的公开内容以后将是显而易见的。
在整个说明书中,当诸如层、区域或基板之类的元件被描述为在另一元件“上”、“连接到”或“耦接到”另一元件时,其可以直接在另一元件“上”、直接“连接到”或“耦接到”另一元件,或者在它们之间可能存在一个或多个其他元件。相反,当一个元件被描述为“直接在”另一元件“上”、“直接连接到”或“直接耦接到”另一元件时,在它们之间可以没有其他元件。
如本文中所使用的,术语“和/或”包括关联列出项目中的任何一个和任何两个或更多个的任何组合。
尽管在本文中可以使用诸如“第一”、“第二”和“第三”之类的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开来。因此,在不脱离本文描述的示例的教导的情况下,示例中提及的第一构件、组件、区域、层或部分也可以被称为第二构件、组件、区域、层或部分。
为了便于描述,本文中可以使用诸如“上方”、“上部”、“下方”和“下部”之类的空间相关术语来描述如附图中所示的一个元件与另一元件的关系。除了在附图中描绘的取向以外,这些空间相关术语意在涵盖设备在使用或操作中的不同取向。例如,如果附图中的设备被翻转,那么被描述为相对于另一元件在“上方”或“上部”的元件将变为相对于该另一元件在“下方”或“下部”。因此,根据设备的空间取向,术语“上方”涵盖上方取向和下方取向两者。所述设备也可以以其他方式取向(例如,旋转90度或处于其他取向),并且在本文使用的空间相关术语应作相应地解释。
本文中使用的术语仅仅用于描述各个示例,而不是用于限制本公开。冠词“一”、“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。术语“包括”、“包含”和“具有”表示存在所陈述的特征、数字、操作、构件、元件和/或其组合,但并不排除存在或添加一个或多个其他特征、数字、操作、构件、元件和/或其组合。
在理解本申请的公开内容以后将显而易见的是,可以以各种方式组合本文描述的示例的特征。此外,虽然本文描述的示例具有多种配置,但是在理解本申请的公开内容以后将显而易见的是,其他配置也是可能的。
图1示出了加密装置的示例。
在图1中,加密装置10可以对数据进行加密。加密装置10可以通过对数据进行加密来生成经加密的数据。在下文中,经加密的数据可以被称为密文。本文针对示例或实施例使用术语“可以”(例如,关于示例或实施例可以包括或实现什么)表示存在在其中包括或实现这样的特征的至少一个示例或实施例,但是所有示例不限于此。
加密装置10可以提供用于在计算机和/或服务器中执行操作(例如,通过对使用全同态加密而被加密的数据执行计算,而无需首先对其进行解密)的加密技术。所述操作的结果是经加密的形式,并且当所述操作的输出被解密时,输出与已对未加密数据执行操作所得输出相同。加密装置10即使在与第三方共享数据时也允许保留数据保密性,因为当第三方使用数据或对数据进行计算时,数据可以保持加密。
加密装置10可以提供用于对使用同态加密而被加密的数据执行操作(例如,计算)而无需首先对其进行解密的加密技术。在示例中,加密装置10可以对通过对使用同态加密而被加密的数据进行操作而得到的结果进行解密,由此得到与对明文的数据进行操作而得到的结果相同的结果。加密装置10可以提供用于实数或复数的同态加密操作。
加密装置10可以执行同态加密所需的自举(bootstrapping)。加密装置10可以生成目标逼近多项式,目标逼近多项式逼近与同态加密所需的模约减相对应的函数。
加密装置10可以找到针对最优极小极大逼近多项式的每一次数(degree)的极小极大逼近误差。
加密装置10可以通过目标逼近多项式找到最优逼近多项式,由此提供在同态加密的极小极大逼近误差方面的极好的性能。
加密装置10可以基于用于逼近模约减函数的逼近区域信息,生成逼近模约减函数的目标逼近多项式。
加密装置10包括处理器100和存储器200。
处理器100可以处理存储在存储器中的数据。处理器100可以执行存储在存储器200中的计算机可读代码(例如,软件)和由处理器100触发的指令。
处理器100可以是由硬件实现的数据处理设备,硬件包括具有用于执行期望的操作的物理结构的电路。例如,期望的操作可以包括程序中包括的指令或代码。
例如,硬件实现的数据处理设备可以包括微处理器、中央处理单元(CPU)、处理器核、多核处理器、多处理器、专用集成电路(ASIC)和现场可编程门阵列(FPGA)。
处理器100可以通过对数据进行加密生成密文。处理器100可以通过对与所生成的密文相对应的模执行模约减,来对密文进行自举。
处理器100可以通过逼近与模约减相对应的函数,对密文进行自举。处理器100可以生成逼近与模约减相对应的函数的目标逼近多项式。
处理器100可以基于目标逼近多项式的次数,确定一个或多个参考点。
处理器100可以基于所确定的一个或多个参考点,获得任意多项式。处理器100可以获得经过所述一个或多个参考点的分段连续函数。处理器100可以通过生成如下多项式来获得所述任意多项式,所述多项式使得该多项式与分段连续函数之间在一个或多个参考点处的误差的绝对值是预定值。
处理器100可以通过生成如下多项式来获得任意多项式,在所述多项式中:在一个或多个参考点中包括的第一参考点处的误差与在邻近第一参考点的第二参考点处的误差具有不同的符号,并且在第一参考点处的误差的绝对值和在第二参考点处的误差的绝对值是预定值。
处理器100可以基于根据任意多项式选择的一个或多个极值点,生成目标逼近多项式。具体地,处理器100可以从任意多项式与经过一个或多个参考点的分段连续函数之间的误差的极值点之中,获得绝对值大于或等于预定值的候选点。
处理器100可以从所获得的候选点之中选择目标点,其中,目标点的数量基于目标逼近多项式的次数。处理器100可以从候选点之中选择使得最大值与最小值交替出现的目标点。处理器100可以选择使得任意多项式与经过一个或多个参考点的分段连续函数之间的误差的绝对值之和被最大化的目标点。
处理器100可以基于所选择的目标点生成目标逼近多项式。处理器100可以生成针对一个或多个极值点的绝对值之中的最大值与最小值之间的相对误差小于阈值的情况的多项式,作为目标逼近多项式。
在这个示例中,目标逼近多项式的基可以是切比雪夫多项式的基。
存储器200可以存储可由处理器执行的指令(或程序)。例如,所述指令可以包括:用于执行处理器的操作和/或处理器的每个元件的操作的指令。
存储器200可以被实现为易失性存储器设备或非易失性存储器设备。
易失性存储器设备可以被实现为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(T-RAM)、零电容器RAM(Z-RAM)或双晶体管RAM(TTRAM)。
非易失性存储器设备可以被实现为电可擦除可编程只读存储器(EEPROM)、闪存、磁RAM(MRAM)、自旋转移扭矩(STT)-MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻式RAM(RRAM)、纳米管RRAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器设备或绝缘体电阻改变存储器。
在下文中,将参考图2A至图2C更详细地描述通过加密装置10来执行加密和进行自举的过程。具体地,将描述通过加密装置10执行的加密操作,然后将更详细地描述自举过程。
图2A和图2B示出了用于通过图1的加密装置生成目标逼近多项式的算法的示例,并且图2C示出了通过图1的加密装置生成目标逼近多项式的示例。
在图2A至图2C中,处理器100可以对数据进行加密。
在下文中,将描述用于描述处理器100的加密操作的符号。
round(x)表示输出最接近x的整数的函数。对于M(其为2的幂),ΦM(X)=XN+1表示第M个分圆多项式(cyclotomic polynomial),其中M=2N。
切比雪夫多项式Tn(x)通过cos nθ=Tn(cosθ)定义。下面描述的对数的底是2。
在下文中,将描述通过处理器100执行的加密操作。
处理器100可以支持用于实数或复数的经加密的数据的若干操作。因为加密装置10通常处理实数,保证加密方案的安全性的噪声可以被包含在数据的有效数字外部。
[公式1]
加密装置10可以生成密钥。对于给定的安全参数λ,加密装置10可以选择2的幂M、整数h、整数P、正实数α、新密文模qL、以及大密文模Q,其将是最大密文模。
新密文可以是未对其执行操作的经加密的数据或首次被加密的数据。
处理器100可以设置公钥pk和私钥sk,如公式2所示。
[公式2]
处理器100可以设置求值密钥(evaluation key),如公式3所示。
[公式3]
[公式4]
c=v·pk+(m+e0,e1)mod qL
[公式5]
cadd=c1+c2 mod ql
[公式6]
此处,(d0,d1,d2):=(b1b2,a1b2+a2b1,a1a2) mod ql。
[公式7]
每个密文可以具有表示无自举的可能的乘法的最大数量的级别(level)l。针对级别l的每个密文的模ql可以具有值plq0,其中p是缩放因子,并且q0是基模(base modulus)。
此外,处理器100可以执行旋转操作和复数共轭操作,这两个操作用于自举中的同态线性变换。
在下文中,将描述由加密装置10执行的自举操作。
自举的目的可以是:将不能再执行乘法的级别0的密文刷新成具有相同消息的级别L的新密文。
密文可以是经加密的数据。密文的级别可以是无自举的可能的乘法的数量。
自举可以包括四个操作。首先,自举可以包括模提高操作,其次,自举可以包括同态线性变换操作。第三,自举可以包括同态模约减操作,第四,自举可以包括同态线性变换操作。
此处,sk的系数包括小的数字,因此I的系数的绝对值可以很小。例如,I的系数的绝对值可以小于12。
处理器100可以通过对级别0的密文进行自举,生成满足<ct′,sk>≈m mod qL的ct′。为此,处理器100可以执行同态线性变换和模约减函数的同态求值。
在下文中,将描述通过处理器100执行的同态线性变换。在模提高以后的密文ct可以被考虑为对m+q0I进行加密的密文。处理器100可以同态地对消息多项式的系数执行模约减。
这些操作均是针对位置进行的,不是针对消息多项式的系数进行的。因此,为了对系数执行有意义的操作,处理器100可以将ct转换成根据m+q0I的位置对其系数进行加密的密文。
在对同态模约减函数进行求值以后,处理器100可以将这个密文逆转换成另一密文ct′,该密文ct′根据先前密文的消息的系数对其位置进行加密。在下文中,这些转换操作和反转换操作分别被称作COEFFTOSLOT和SLOTTOCOEFF。
上面描述的这两种转换操作可以被视为消息的编码和解码的同态求值,其可以是通过ΦM(x)的根的范德蒙德矩阵的一些变型的线性变换。此外,转换操作可以通过通用同态矩阵乘法或类似FFT的运算执行。
处理器100可以执行同态模约减(或模约减)操作。具体地,处理器100可以使用同态模约减函数执行模约减操作。
在执行COEFFTOSLOT转换以后,处理器100可以在模q0中的每个位置上同态地执行模约减。在下文中,这个过程可以被称作EVALMOD。
通过限制消息的范围以使m/q0足够小,处理器100可以将逼近区域限制在q0的几倍附近。通过这种范围限制,处理器100可以更高效地执行模约减。
在下文中,将详细描述图2A的算法。
处理器100可以通过使用图2A的算法1,找到用于区间[a,b]上的任意连续函数的极小极大逼近多项式,来生成目标逼近多项式。处理器100可以使用切比雪夫变换定理来生成满足等振荡条件的目标逼近多项式。
处理器100可以生成基函数{g1,…,gn}满足Haar条件的目标逼近多项式。为了生成次数为d的目标逼近多项式,处理器100可以通过幂基{1,x,…,xd}选择基函数{g1,…,gn}。此处,n=d+1。
处理器100可以初始化参考点的集合,所述参考点收敛到极小极大逼近多项式的极值点。处理器100可以关于参考点的集合,获得极小极大逼近多项式。因为参考点的集合是[a,b]中的有限个点的集合,所以其可以是[a,b]的闭子集,因此,对于参考点的集合,可以满足切比雪夫变换定理。
当f(x)是[a,b]上的连续函数时,参考点的集合上的极小极大逼近多项式可以是对于某个E满足公式8的条件的具有基{g1,…,gn}的广义多项式p(x)。
[公式8]
p(xi)-f(xi)=(-1)iE i=1,...,d+2
处理器100可以使用公式8获得任意多项式p(x)。根据公式8,具有n+1个方程以及p(x)的n个系数和E的n+1变量的线性方程组、以及线性方程根据Haar条件是非奇异的,因此处理器100可以获得满足公式8的条件的多项式p(x)。
处理器100可以获得在xi与xi+1之间的p(x)-f(x)的n个零点zi,条件是z0=a、zn+1=b和i=1,2,…,n,并且可以获得在每个[zi-1,zi]中的p(x)-f(x)的n+1个极值点y1,…,yn+1。
如果p(xi)-f(xi)<0,处理器100可以选择在[zi-1,zi]中的p(x)-f(x)的最小点;并且如果p(xi)-f(xi)>0,可以选择在[zi-1,zi]中的p(x)-f(x)的最大点。
通过如此操作,处理器100可以选择新的极值点y1,…,yn+1的集合作为候选点。如果这些候选点满足等振荡条件,则处理器100可以通过根据切比雪夫变换定理返回极小极大逼近多项式,生成目标逼近多项式。
此外,处理器100可以利用通过上述过程获得的新的极值点y1,…,yn+1的集合替换参考点的集合,并且迭代地执行上述多项式生成过程。
图2A中示出的算法1可以被扩展到一个区间的多个子区间。当应用被扩展到多个子区间的算法1时,可以改变图2A的步骤3和步骤4。
对于每次迭代,处理器100可以获得误差函数p-f的所有局部极值点,其绝对误差值可以大于当前参考点处的绝对误差值。
然后,处理器100可以从所有获得的局部极值点之中选择满足以下两个准则的n+1个新的极值点:
1、误差值的符号交替变化。
2、新的极值点的集合包括全局极值点。
上述两个准则可以保证收敛到极小极大广义多项式。
图2B和图2C示出了根据图2A的算法修改的多项式生成方法。处理器100可以修改从所有局部极值点之中选择新极值点的方法。
图2B的算法可以被示出为图2C的流程图。在操作210中,处理器100可以在逼近区域中设置d+2个点。这d+2个点可以是上述一个或多个参考点。
处理器100可以基于这d+2个参考点获得任意多项式。例如,在操作220中,处理器100可以找到满足公式8的多项式p(x)和E的值。
在操作230中,处理器100可以从p(x)-f(x)的局部最大点和局部最小点之中获得绝对值大于或等于E的点。此处,E的值可以是上述预定值,并且所获得的局部最大点和局部最小点可以是上述候选点。
在操作240中,处理器100可以从所获得的点之中选择使得最大值和最小值交替出现的d+2个点,其中,这d+2个点可以被选择为使p(x)-f(x)的绝对值之和被最大化。使绝对值之和被最大化的这d+2个点可以是上述目标点。将参考图4A和图4B详细描述选择使绝对值之和被最大化的d+2个点的过程。
在操作250中,处理器100可以确定所选择的d+2个目标点之中的绝对值的最大值与最小值之间的相对误差是否小于δ。δ可以是上述阈值。
在操作260中,如果与目标点相对应的绝对值的最大值与最小值之间的相对误差小于δ,则处理器100可以输出任意多项式p(x)作为目标逼近多项式。否则,处理器100可以迭代地执行操作220至操作250的过程。
在下文中,将更详细地描述图2B和图2C的操作。
要通过处理器100逼近的函数可以是仅在近乎有限多个整数中定义的归一化模约减函数,如公式9所示。
[公式9]
公式9可以表示针对模约减函数的域和范围两者缩放的模约减函数。
处理器100可以使用余弦函数用于逼近normod(x),以将二倍角公式用于高效的同态求值。
如果二倍角公式被使用l次,则需要逼近公式10中的余弦函数。
[公式10]
为了逼近包括公式9和公式10中的函数在内的分段连续函数,处理器100可以假设在有限多个闭区间的并集上定义的通用分段连续函数,其作为公式11给出。
[公式11]
此处,ai<bi<ai+1<bi+1对于所有的i=1,…,t-1成立。
为了在公式11的D上利用具有小于或等于d的次数的多项式逼近给定的分段连续函数,处理器100可以设置用于从多个极值点之中选择新的d+2个参考点的准则。
处理器100可以通过使用在[a,b]上满足Haar条件的{g1,…,gn}作为多项式的基,来生成目标逼近多项式。处理器100可以针对每次迭代关于参考点的集合获得极小极大逼近多项式,并且选择用于下次迭代的新的参考点的集合。
可以存在许多情况,其中,处理器100从使用利用参考点的集合获得的任意多项式而求得的误差函数的极值点之中,选择n+1个点。处理器100可以在加密过程期间考虑许多区间,因此可能存在许多候选极值点。
处理器100可以针对每次迭代从许多候选点之中选择n+1个目标点,以最小化迭代的次数。通过如此操作,处理器100可以通过对针对每次迭代生成的逼近多项式进行收敛,生成极小极大逼近多项式。
为了设置用于选择n+1个目标点的准则,处理器100可以定义公式12的函数。
[公式12]
此处,p(x)表示在每次迭代中获得的任意多项式,并且f(x)表示要被逼近的分段连续函数。为了方便,μp,f可以在下文中被称为μ。
处理器100可以将p(x)-f(x)的所有的极值点形成为集合B。B可以是有限集合,并且被表示为B={x1,x2,…,xm}。处理器100可以在B中的一个区间中选择点。
假设B按照升序排序,x1<x2<…<xm,则μ的值可以是1或-1。极值点的数量可以满足m≥n+1。
[公式13]
处理器100可以设置用于选择n+1个极值点的三个准则。
处理器100可以将局部极值条件设置为第一条件。如果E是在参考点的集合处的绝对误差,则可以设置公式14的条件。
[公式14]
为了满足局部极值条件,如果p(x)-f(x)的局部最大值为负或p(x)-f(x)的局部最小值为正,则处理器100可以去除极值点。
其次,处理器100可以设置交替变化条件。换言之,可以设置公式15的条件。具体地,如果两个邻近的极值点中的一个极值点具有局部最大值,则另一极值点可以具有局部最小值。
[公式15]
μ(xσ(i))·μ(xσ(i+1))=-1对于i=1,…,n
第三,处理器100可以设置最大绝对和条件。处理器100可以从满足局部极值条件和交替变化条件的σ之中,选择最大化公式16的值的σ。
[公式16]
在当前参考点x1,…,xn+1处的绝对误差值可以小于极小极大逼近误差,并且随着迭代次数的增加,收敛到极小极大逼近误差。
此外,在当前参考点处的绝对误差值可以是前次迭代中的逼近多项式在x1,…,xn+1处的绝对误差值的加权平均。
处理器100可以使用最大绝对和条件,帮助在当前参考点处的绝对误差值快速地收敛到极小极大逼近误差。
局部极值条件和交替变化条件可以被应用到图2A的算法和图2B的算法两者,并且最大绝对和条件可以被应用到图2B的算法2。处理器100可以应用最大绝对和条件,由此促进收敛到极小极大逼近多项式。
处理器100可以更高效地执行图2B的算法2的步骤2、步骤3和步骤4,如下所述。处理器100可以针对连续函数f(x)在当前参考点处利用幂基找到逼近多项式的系数。
即,处理器100可以通过获得公式17中的系数cj的值,来生成目标逼近多项式。
[公式17]
此处,E在线性方程中可能是未知的。随着逼近多项式的基的次数增大,系数会减小。处理器100可能需要为更高次数的基的系数设置更高的精度。
因此,处理器100可以通过将切比雪夫多项式的基用作目标逼近多项式的基,来有效地解决精度问题。因为利用切比雪夫基的多项式的系数通常具有几乎相同的量级,所以处理器110可以使用切比雪夫基而不是幂基来生成目标逼近多项式。
切比雪夫多项式满足上述Haar条件,并且处理器100可以通过经由使用d+2个参考点对公式18的d+2个线性方程的组进行求解计算cj和E,来获得目标逼近多项式。
[公式18]
图3示出了通过图1的加密装置搜索极值点的示例。
在图3中,处理器100可以基于参考点获得任意多项式,并且搜索任意多项式与经过参考点的分段连续函数之间的误差的极值点。处理器100可以从任意多项式与经过参考点的分段连续函数之间的误差的极值点之中,获得绝对值大于或等于预定值的候选点。在下文中,将描述通过由处理器100搜索极值点获得候选点的过程。
处理器100可以通过利用小的扫描步长扫描任意多项式与分段连续函数之间的误差p(x)-f(x),获得增大和减小交换的极值点。
通常,小的扫描步长可以提高搜索极值点的精度,但是会引起长的扫描时间。更具体地,这会占用与2l成比例的时间来获得具有l比特精度的极值点。
然而,通过将在下面描述的搜索操作,处理器100可以在l的线性时间而不是2l的时间之内搜索极值点。
处理器100可以使用二分搜索,减少针对增大和减小交换的极值点的搜索时间。在下文中,任意多项式与分段连续函数之间的误差可以被表示为r(x)=p(x)-f(x),并且sc表示扫描步长。
处理器100可以搜索满足μ(x0)r(x0)≥|E|和(r(x0)-r(x0-sc))(r(x0+sc)-r(x0))≤0的x0,并且通过连续地执行公式19的过程l次,获得第i个极值点。
[公式19]
通过公式19的过程,处理器100可以获得具有O(log(sc)+l)比特的精度的极值点。
在下文中,将详细描述通过上述极值点搜索获得候选点的过程。在操作310中,处理器100可以在逼近区域中获得最小点x。在操作320中,如果x是最大值,则处理器100可以确定r(x)是否大于或等于E的绝对值;以及如果x是最小值,则确定r(x)是否小于或等于通过将E的绝对值乘以-1获得的值。
如果操作320的条件满足,则在操作321中,处理器100可以将x0添加到数组B。如果操作320的条件不满足,则在操作330中,处理器100可以利用x+sc替换x。
然后,在操作340中,处理器100可以确定x是否被包括在逼近区域中。如果x被包括在逼近区域中,则在操作350中,处理器100可以确定r(x)-r(x-sc)与r(x+sc)-r(x)在符号上是否不同。
如果x未被包括在逼近区域中,则在操作341中,处理器100可以利用对应区间中的最大值替换x。在这种情况下,在操作342中,如果x是最大值,则处理器100可以确定r(x)是否大于或等于E的绝对值;以及,如果x是最小值,则确定r(x)是否小于或等于通过将E的绝对值乘以-1获得的值。
如果操作342的条件满足,则在操作343中,处理器100可以将x0添加到数组B。如果操作342的条件不满足,则在操作344中,处理器100可以确定x是否是逼近区域中的最大值。在这个示例中,如果x是逼近区域中的最大值,则处理器100可以终止操作。如果x不是逼近区域中的最大值,则在操作345中,处理器100可以利用后续区间中的最小值替换x。
如果r(x)-r(x-sc)和r(x+sc)-r(x)具有相同符号,则处理器100可以再次执行操作330。如果r(x)-r(x-sc)和r(x+sc)-r(x)具有不同的符号,则在操作360中,处理器100可以利用0替换l,并且利用sc/2替换t。
在操作370中,处理器100可以确定r(x)-r(x-sc)的值是否大于0。如果操作370的条件满足,则在操作371中,处理器100可以从x-t、x和x+t之中选择具有r(x)的最大值的一项,并且利用所选择的一项替换x。然后,在操作372中,处理器100可以利用l+1替换l,并且利用t/2替换t。
在操作373和操作374中,处理器100可以确定l是否是精度值。如果l不是精度值,则处理器100可以再次执行操作371。如果操作370的条件不满足或在操作374中l不是精度值,则处理器100可以在操作375中从x-t、x和x+t之中选择具有r(x)的最小值的一项,并且利用所选择的一项替换x。然后,在操作376中,处理器100可以利用l+1替换l,并且利用t/2替换t。
如果操作373的条件和操作374的条件满足,则处理器100可以再次执行操作320。最后,处理器100可以获得数组B中的极值点作为候选点。
如果sc的值足够小,则|r(x)|可以运算类似于a(x-x*)2+b(a>0且b接近x*)。通过这样的运算,如果b接近x*,|x1-x*|>|x2-x*|,则处理器100可以保证|r(x1)|>|r(x2)|;并且如果|x1-x*|<|x2-x*|,则处理器100可以保证|r(x1)|<|r(x2)|。
经由通过上述极值点搜索获得候选点的操作,处理器100可以通过在线性时间l而不是2l之内搜索具有l比特精度的极值点,获得候选点。
图4A示出了用于通过图1的加密装置选择目标点的算法的示例,并且图4B示出了通过图1的加密装置选择目标点的示例。
在图4A和图4B中,处理器100可以从通过图3的搜索操作获得的候选点之中选择目标点,其中,目标点的数量基于目标逼近多项式的次数。
处理器100可以从候选点之中选择使得最大值与最小值交替出现的目标点,以及选择使误差的绝对值之和被最大化的目标点。目标点可以是后续迭代操作中的新参考点。
在下文中,将详细描述获得目标点的过程。处理器100可以采用朴素方法,选择满足局部极值条件、交替变化条件和最大绝对和条件的点,以找到目标点(或新参考点)。
与朴素方法相比,处理器100可以通过图4A和图4B的操作减少用于选择目标点的时间。在下文中,将描述高效地选择目标点的操作。
处理器100可以通过针对每次迭代从候选点消除一些元素,最终获得n+1个目标点。如果m>n+1,则至少一个元素可以不被包括在目标点中。
通过图4A的算法,处理器100可以在时间O(m log m)之内选择目标点。换言之,处理器100可以在准线性时间之内选择目标点。
每当经排序的集合B中的元素被去除时,可以对其余的元素进行排列,并且可以按照升序重新标记索引。
当在图4A的算法3中对值进行比较以去除一些极值点时,所比较的值可能相等,或者最小的元素可能多于一个。在这种情况下,处理器100可以随机地去除这些元素。
图4B的流程图示出了图4A的算法中的操作的序列。通过图4A和图4B的操作,处理器100可以获得将目标点作为元素的数组B。
在操作410中,处理器100可以利用1替换i。在操作420中,处理器100可以确定xi和xi+1两者是否是最大值或最小值。
如果操作420的条件满足,则在操作421中,处理器100可以从数组中去除xi和xi+1中具有较小的|r(x)|的一项,并且重新排列数组中的其余元素。|r(x)|的值可以是上述任意多项式与分段连续函数之间的误差的值。如果操作420的条件不满足,则在操作422中,处理器100可以利用i+1替换i。
在重新排列以后,在操作430中,处理器100可以确定xi是否是数组B中的最大点。如果xi不是最大点,则处理器100可以再次执行操作420。
操作410至操作430可以对应于图4A的算法3的步骤1至步骤7中的操作。
如果xi是最大点,则在操作440中,处理器100可以确定B中的元素的数量是否是d+2。如果B中的元素的数量是d+2,则处理器100可以终止选择目标点的操作。
如果B中的元素的数量不是d+2,则在操作450中,处理器100可以将每两个邻近的点的|r(x)|值之和插入到数组T,并且排列数组T。即,|r(x1)|+|r(x2)|,|r(x2)|+|r(x3)|,|r(x3)|+|r(x4)|,…可以被插入到T,并且可以对T进行排列。
操作440和操作450可以对应于图4A的算法3的步骤9和步骤10中的操作。
在操作460中,处理器100可以确定B中的元素的数量是否是d+3。如果B中的元素的数量是d+3,则在操作461中,处理器100可以从数组中去除x1和xd+3中的具有较小的|r(x)|的一项,重新排列数组,并且终止操作。
在操作470中,处理器100可以确定B中的元素的数量是否是d+4。如果B中的元素的数量是d+4,则在操作471中,处理器100可以将添加到T,并且重新排列T。在这以后,在操作472中,处理器100可以从B中去除与T中的最小值相对应的两个点,重新排列B,并终止操作。
如果B中的元素的数量不是d+4,则在操作480中,处理器100可以确定两个端点中的一个是否被包括在与T中的最小值相对应的两个点中。如果操作480的条件满足,则在操作481中,处理器100可以从B中去除两个端点中的一个,并且重新排列B。如果操作480的条件不满足,则在操作482中,处理器100可以从B中去除与T中的最小值相对应的两个点两者,并且重新排列B。
在这以后,在操作490中,处理器100可以从T中去除包括已去除的元素的值,将两个新邻近的点的|r(x)|的值之和添加到T,并且重新排列T,以及再次执行操作460。操作460至操作490可以对应于图4A的算法3的步骤11至步骤23中的操作。
在图4A的算法的最后部分描述了去除极值点x2的示例,T={|r(x1)|+|r(x2)|,|r(x2)|+|r(x3)|,|r(x3)|+|r(x4)|,…}可以被改变为T={|r(x1)|+|r(x3)|,|r(x3)|+|r(x4)|,…}。
通过图4A和图4B的选择目标点的操作,处理器100可以在准线性时间之内从候选点之中选择目标点。
处理器100可以基于所选择的目标点,生成最优地逼近模约减函数的目标逼近多项式。换言之,处理器100可以生成经过所选择的目标点的次数d的多项式,作为目标逼近多项式。
图5示出了图1的加密装置的总体操作的示例。
处理器100可以使用同态加密对数据进行加密。在操作510中,处理器100可以通过对数据进行加密来生成密文。
在操作530中,处理器100可以通过针对与所生成的密文相对应的模基于对一个或多个目标点的选择执行模约减,对密文进行自举。
处理器100可以通过逼近与模约减相对应的函数,对密文进行自举。处理器100可以生成逼近与模约减相对应的函数的目标逼近多项式。
处理器100可以基于目标逼近多项式的次数,确定一个或多个参考点。处理器100可以基于所确定的一个或多个参考点,获得任意多项式。
具体地,处理器100可以获得经过一个或多个参考点的分段连续函数;以及,通过生成如下多项式来获得任意多项式,所述多项式使得该多项式与分段连续函数之间在一个或多个参考点处的误差的绝对值是预定值。
处理器100可以通过生成如下多项式来获得任意多项式,所述多项式使得在一个或多个参考点中包括的第一参考点处的误差与在邻近第一参考点的第二参考点处的误差具有不同的符号,并且在第一参考点处的误差的绝对值和在第二参考点处的误差的绝对值是预定值。
处理器100可以基于从所获得的任意多项式中选择的一个或多个极值点,生成目标逼近多项式。处理器100可以从任意多项式与经过一个或多个参考点的分段连续函数之间的误差的极值点之中,获得绝对值大于或等于预定值的候选点。
处理器100可以从所获得的候选点之中选择目标点,其中,目标点的数量基于目标逼近多项式的次数。具体地,处理器100可以从候选点之中选择使得最大值与最小值交替出现的目标点。处理器100可以选择使得任意多项式与分段连续函数之间的误差的绝对值之和被最大化的目标点。
处理器100可以基于所选择的目标点生成目标逼近多项式。处理器100可以生成针对一个或多个极值点的绝对值之中的最大值与最小值之间的相对误差小于阈值的情况的多项式,作为目标逼近多项式。
在这个示例中,目标逼近多项式的基可以是切比雪夫多项式的基。
仅作为非穷举示例,本文所述的终端可以是:移动设备,例如,蜂窝电话、智能电话、可穿戴智能设备(例如,戒指、手表、一副眼镜、手镯、脚链、皮带、项链、耳环、束发带、头盔或嵌入衣服中的设备);便携式个人计算机(PC)(例如,膝上型计算机、笔记本计算机、小笔记本计算机、上网本或超便携式PC(UMPC)、平板PC(平板计算机)、平板手机、个人数字助理(PDA)、数码相机、便携式游戏机、MP3播放器、便携式/个人多媒体播放器(PMP)、手持式电子书、全球定位系统(GPS)导航设备或传感器;或固定设备,例如,台式PC、高清电视(HDTV)、DVD播放器、蓝光播放器、机顶盒或家用电器;或被配置为执行无线或网络通信的任何其他移动或固定设备。在一个示例中,可穿戴设备是被设计成可直接安置在用户的身体上的设备,例如,一副眼镜或手镯。在另一个示例中,可穿戴设备是使用附接设备安置在用户的身体上的任何设备,例如,使用臂带附接到用户的手臂或使用挂绳挂在用户的脖子上的智能手机或平板计算机。
执行本申请中描述的操作的图1至图5中的加密装置10、处理器100和存储器200通过硬件组件实现,所述硬件组件被配置为执行本申请中描述的操作。适当时可用于执行本申请中描述的操作的硬件组件的示例包括:控制器、传感器、发生器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器、以及被配置为执行本申请中描述的操作的任何其他电子组件。在其他示例中,执行本申请中描述的操作的一个或多个硬件组件通过计算硬件(例如,通过一个或多个处理器或计算机)实现。处理器或计算机可以通过一个或多个处理元件来实现,例如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以所定义的方式响应和执行指令以获得希望的结果的任何其他设备或设备的组合。在一个示例中,处理器或计算机包括或被连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。通过处理器或计算机实现的硬件组件可以执行指令或软件,例如,操作系统(OS)和在OS上运行的一个或多个软件应用,以执行本申请中描述的操作。响应于指令或软件的执行,所述硬件组件还可以访问、操纵、处理、创建和存储数据。为了简单起见,在本申请中所描述的示例的描述中可以使用单数术语“处理器”或“计算机”,但是在其他示例中,可以使用多个处理器或计算机,或者一个处理器或计算机可以包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件或者两个或更多个硬件组件可以通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可以通过一个或多个处理器、或处理器和控制器来实现,并且一个或多个其他硬件组件可以通过一个或多个其他处理器、或另一处理器和另一控制器来实现。一个或多个处理器、或处理器和控制器可以实现单个硬件组件、或两个或更多个硬件组件。硬件组件可以具有任何一种或多种不同的处理配置,其示例包括单处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
执行本申请中描述的操作的图1至图5中所示的方法通过计算硬件(例如,通过如上所述被实现为执行指令或软件以执行本申请中所述的通过所述方法执行的操作的一个或多个处理器或计算机硬件)来执行。例如,单个操作或两个或更多个操作可以通过单个处理器、或两个或更多个处理器、或处理器和控制器来执行。一个或多个操作可以通过一个或多个处理器、或处理器和控制器来执行,并且一个或多个其他操作可以通过一个或多个其他处理器、或另一处理器和另一控制器来执行。一个或多个处理器、或处理器和控制器可以执行单个操作、或两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并且执行如上所述的方法的指令或软件可以被编写为计算机程序、代码段、指令或其任意组合,以用于单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行通过如上所述的硬件组件和方法执行的操作。在一个示例中,所述指令或软件包括由一个或多个处理器或计算机直接执行的机器码,例如,通过编译器产生的机器码。在另一个示例中,所述指令或软件包括由一个或多个处理器或计算机使用解译器执行的高级代码。可以基于附图中示出的框图和流程图以及说明书中的相应描述(其公开了用于执行由上述硬件组件和方法执行的操作的算法),使用任何编程语言来编写指令或软件。
可以在一个或多个非暂时性计算机可读存储介质之中或之上记录、存储或固定用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件和执行如上所述的方法的指令或软件、以及任何关联的数据、数据文件和数据结构。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-RLTH、BD-RE、磁带、软盘、磁光数据存储设备、光数据存储设备、硬盘、固态磁盘、以及被配置为以非暂时性方式存储指令或软件、以及任何关联的数据、数据文件和数据结构并且将所述指令或软件、以及任何关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机以使所述一个或多个处理器或计算机可以执行所述指令的任何其他设备。在一个示例中,所述指令或软件、以及任何关联的数据、数据文件和数据结构分布在经网络耦接的计算机系统上,以使通过一个或多个处理器或计算机以分布式方式存储、访问和执行所述指令和软件、以及任何关联的数据、数据文件和数据结构。
虽然本公开包括特定的示例,但是在理解本申请的公开内容之后将清楚,可以在不脱离权利要求及其等同物的精神和范围的情况下,在这些示例中做出形式和细节上的各种改变。本文描述的示例应被理解为仅是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可应用于其他示例中的类似特征或方面。如果所描述的技术以不同的顺序执行和/或如果所描述的系统、架构、设备或电路中的组件以不同的方式组合和/或被其他组件或其等同物替换或补充,则可以获得合适的结果。因此,本公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有变化都应被解释为被包括在本公开中。
Claims (27)
1.一种处理器实现的使用同态加密的加密方法,所述加密方法包括:
通过对数据进行加密来生成密文;以及
通过针对与所述密文相对应的模基于对一个或多个目标点的选择执行模约减,来对所述密文进行自举。
2.根据权利要求1所述的加密方法,其中所述进行自举包括:通过逼近与所述模约减相对应的函数,对所述密文进行自举。
3.根据权利要求2所述的加密方法,其中通过逼近与所述模约减相对应的函数对所述密文进行自举包括:生成逼近与所述模约减相对应的所述函数的目标逼近多项式。
4.根据权利要求3所述的加密方法,其中生成所述目标逼近多项式包括:
基于所述目标逼近多项式的次数,确定一个或多个参考点;
基于所述一个或多个参考点确定任意多项式;以及
基于根据所述任意多项式选择的一个或多个极值点,生成所述目标逼近多项式。
5.根据权利要求4所述的加密方法,其中,基于所述一个或多个参考点确定任意多项式包括:
确定经过所述一个或多个参考点的分段连续函数;以及
通过生成多项式来确定所述任意多项式,所生成的多项式使得:所述多项式与所述分段连续函数之间在所述一个或多个参考点处的误差的绝对值是预定值。
6.根据权利要求5所述的加密方法,其中通过生成多项式来确定所述任意多项式包括:
通过生成多项式来确定所述任意多项式,所生成的多项式使得:在所述一个或多个参考点中包括的第一参考点处的误差与在邻近所述第一参考点的第二参考点处的误差具有不同的符号,并且在第一参考点处的误差的绝对值和在第二参考点处的误差的绝对值是所述预定值。
7.根据权利要求4所述的加密方法,其中基于根据所述任意多项式选择的一个或多个极值点生成所述目标逼近多项式包括:
从所述任意多项式与经过所述一个或多个参考点的分段连续函数之间的误差的极值点之中,确定绝对值大于或等于预定值的候选点;
从所述候选点之中选择目标点,其中,所述目标点的数量基于所述目标逼近多项式的次数;以及
基于所述目标点生成所述目标逼近多项式。
8.根据权利要求7所述的加密方法,其中选择所述目标点包括:从所述候选点之中选择使得最大值与最小值交替出现的所述目标点。
9.根据权利要求7所述的加密方法,其中选择所述目标点包括:选择使得所述任意多项式与所述分段连续函数之间的误差的绝对值之和被最大化的目标点。
10.根据权利要求4所述的加密方法,其中基于根据所述任意多项式选择的一个或多个极值点生成所述目标逼近多项式包括:
生成针对所述一个或多个极值点的绝对值之中的最大值与最小值之间的相对误差小于阈值的情况的多项式,作为所述目标逼近多项式。
11.根据权利要求3所述的加密方法,还包括:所述目标逼近多项式的基是切比雪夫多项式的基。
12.一种存储指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时,配置所述一个或多个处理器执行根据权利要求1所述的加密方法。
13.一种使用同态加密的加密装置,所述加密装置包括:
一个或多个处理器,被配置为:
通过对数据进行加密来生成密文;以及
通过针对与所述密文相对应的模基于对一个或多个目标点的选择执行模约减,来对所述密文进行自举。
14.根据权利要求13所述的加密装置,还包括:
存储器,被配置为存储指令;
其中,所述一个或多个处理器还被配置为执行所述指令以配置所述一个或多个处理器执行以下操作:
通过对数据进行加密来生成密文;以及
通过针对与所述密文相对应的模基于对一个或多个目标点的选择执行模约减,来对所述密文进行自举。
15.根据权利要求13所述的加密装置,其中,所述一个或多个处理器还被配置为:通过逼近与所述模约减相对应的函数,对所述密文进行自举。
16.根据权利要求15所述的加密装置,其中所述一个或多个处理器还被配置为:生成逼近与所述模约减相对应的所述函数的目标逼近多项式。
17.根据权利要求16所述的加密装置,其中,所述一个或多个处理器还被配置为:
基于所述目标逼近多项式的次数,确定一个或多个参考点;
基于所述一个或多个参考点确定任意多项式;以及
基于根据所述任意多项式选择的一个或多个极值点,生成所述目标逼近多项式。
18.根据权利要求17所述的加密装置,其中,所述一个或多个处理器还被配置为:
确定经过所述一个或多个参考点的分段连续函数;以及
通过生成多项式来确定所述任意多项式,所生成的多项式使得:所述多项式与所述分段连续函数之间在所述一个或多个参考点处的误差的绝对值是预定值。
19.根据权利要求18所述的加密装置,其中,所述一个或多个处理器还被配置为:
通过生成多项式来确定所述任意多项式,所生成的多项式使得:在所述一个或多个参考点中包括的第一参考点处的误差与在邻近所述第一参考点的第二参考点处的误差具有不同的符号,并且在第一参考点处的误差的绝对值和在第二参考点处的误差的绝对值是所述预定值。
20.根据权利要求17所述的加密装置,其中,所述一个或多个处理器还被配置为:
从所述任意多项式与经过所述一个或多个参考点的分段连续函数之间的误差的极值点之中,确定绝对值大于或等于预定值的候选点;
从所述候选点之中选择目标点,其中,所述目标点的数量基于所述目标逼近多项式的次数;以及
基于所述目标点生成所述目标逼近多项式。
21.根据权利要求20所述的加密装置,其中,所述一个或多个处理器还被配置为:从所述候选点之中选择使得最大值与最小值交替出现的目标点。
22.根据权利要求20所述的加密装置,其中,所述一个或多个处理器还被配置为:选择使得所述任意多项式与所述分段连续函数之间的误差的绝对值之和被最大化的目标点。
23.根据权利要求17所述的加密装置,其中,所述一个或多个处理器还被配置为:生成针对所述一个或多个极值点的绝对值之中的最大值与最小值之间的相对误差小于阈值的情况的多项式,作为所述目标逼近多项式。
24.根据权利要求16所述的加密装置,其中所述目标逼近多项式的基是切比雪夫多项式的基。
25.一种被配置为执行同态加密方案的装置,包括:
一个或多个处理器,被配置为:
通过针对与经加密的数据的密文相对应的模基于对一个或多个目标点的选择执行与模约减相对应的函数的逼近,来对所述密文进行自举;以及
生成被配置为逼近与所述模约减相对应的所述函数的目标逼近多项式。
26.根据权利要求25所述的装置,其中所述目标逼近多项式是使用切比雪夫变换定理生成的。
27.根据权利要求25所述的装置,其中,所述一个或多个处理器还被配置为:
基于所述目标逼近多项式的次数,确定一个或多个参考点;
基于所述一个或多个参考点确定任意多项式;以及
基于根据所述任意多项式选择的一个或多个极值点,生成所述目标逼近多项式。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063021761P | 2020-05-08 | 2020-05-08 | |
US63/021,761 | 2020-05-08 | ||
KR1020200139444A KR20210136815A (ko) | 2020-05-08 | 2020-10-26 | 동형 암호를 이용한 암호화 방법 및 장치 |
KR10-2020-0139444 | 2020-10-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113630234A true CN113630234A (zh) | 2021-11-09 |
Family
ID=75659968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110400670.2A Pending CN113630234A (zh) | 2020-05-08 | 2021-04-14 | 使用同态加密的加密方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210351913A1 (zh) |
EP (1) | EP3907926A1 (zh) |
JP (1) | JP2021177239A (zh) |
CN (1) | CN113630234A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553394A (zh) * | 2022-04-22 | 2022-05-27 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于多密钥全同态方案的补码运算器及运算方法 |
CN114745116A (zh) * | 2022-04-27 | 2022-07-12 | 浙江数秦科技有限公司 | 一种安全交换秘钥的方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102304992B1 (ko) * | 2021-04-07 | 2021-09-27 | 서울대학교산학협력단 | 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법 |
US20220416995A1 (en) * | 2021-06-28 | 2022-12-29 | Duality Technologies, Inc. | Accelerated division of homomorphically encrypted data |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9083526B2 (en) * | 2011-04-29 | 2015-07-14 | International Business Machines Corporation | Fully homomorphic encryption |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
KR102614616B1 (ko) * | 2017-04-11 | 2023-12-15 | 더 가버닝 카운슬 오브 더 유니버시티 오브 토론토 | 동형 암호화에 의한 보안 계산 가속화를 위한 동형 처리 유닛(hpu) |
US11032061B2 (en) * | 2018-04-27 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enabling constant plaintext space in bootstrapping in fully homomorphic encryption |
-
2021
- 2021-03-31 US US17/218,790 patent/US20210351913A1/en active Pending
- 2021-04-14 CN CN202110400670.2A patent/CN113630234A/zh active Pending
- 2021-04-30 JP JP2021077713A patent/JP2021177239A/ja active Pending
- 2021-05-03 EP EP21171810.1A patent/EP3907926A1/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553394A (zh) * | 2022-04-22 | 2022-05-27 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于多密钥全同态方案的补码运算器及运算方法 |
CN114553394B (zh) * | 2022-04-22 | 2022-08-16 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于多密钥全同态方案的补码运算器及运算方法 |
CN114745116A (zh) * | 2022-04-27 | 2022-07-12 | 浙江数秦科技有限公司 | 一种安全交换秘钥的方法 |
CN114745116B (zh) * | 2022-04-27 | 2024-04-05 | 浙江数秦科技有限公司 | 一种安全交换秘钥的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210351913A1 (en) | 2021-11-11 |
JP2021177239A (ja) | 2021-11-11 |
EP3907926A1 (en) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jung et al. | Over 100x faster bootstrapping in fully homomorphic encryption through memory-centric optimization with GPUs | |
CN113630234A (zh) | 使用同态加密的加密方法及装置 | |
Boemer et al. | nGraph-HE2: A high-throughput framework for neural network inference on encrypted data | |
US8756410B2 (en) | Polynomial evaluation delegation | |
US11558172B2 (en) | Encryption method and apparatus based on homomorphic encryption using composition of functions | |
JP7327510B2 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
CN115834018A (zh) | 一种保护隐私的多方数据处理方法、系统和设备 | |
JP2024517800A (ja) | 完全準同型暗号化で使用するためのブラインド回転 | |
US20240106632A1 (en) | Method and apparatus with homomorphic encryption | |
US20230246807A1 (en) | Apparatus and method with homomorphic encryption using automorphism | |
JP7233265B2 (ja) | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム | |
KR20210136815A (ko) | 동형 암호를 이용한 암호화 방법 및 장치 | |
US11722290B2 (en) | Method and apparatus for modulus refresh in homomorphic encryption | |
US20220385461A1 (en) | Encryption key generating method, appratus, ciphertext operation method and apparatus using the generated encryption key | |
US11671239B2 (en) | Encryption method and apparatus based on homomorphic encryption using odd function property | |
JP2023064757A (ja) | 暗号処理装置、暗号処理方法、及び暗号処理プログラム | |
CN115174035A (zh) | 数据处理方法及装置 | |
US20240340158A1 (en) | Apparatus and method with homomorphic encryption operation | |
US11146397B2 (en) | Encoding abelian variety-based ciphertext with metadata | |
US20230327849A1 (en) | Apparatus and method with homomorphic encryption operation | |
US20240348421A1 (en) | Apparatus and method with homomorphic encryption | |
JP7158635B2 (ja) | 暗号システム、暗号化装置、復号装置及び鍵生成装置 | |
US20240313945A1 (en) | Apparatus and method with homomorphic encryption | |
US20240129106A1 (en) | Apparatus and method with homomorphic encryption operation | |
US20230171085A1 (en) | Homomorphic encryption apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |