CN117857004A - 具有同态加密操作的装置和方法 - Google Patents
具有同态加密操作的装置和方法 Download PDFInfo
- Publication number
- CN117857004A CN117857004A CN202311147039.1A CN202311147039A CN117857004A CN 117857004 A CN117857004 A CN 117857004A CN 202311147039 A CN202311147039 A CN 202311147039A CN 117857004 A CN117857004 A CN 117857004A
- Authority
- CN
- China
- Prior art keywords
- key
- ciphertext
- vector
- operand
- homomorphic encryption
- 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
- 238000000034 method Methods 0.000 title claims description 51
- 239000013598 vector Substances 0.000 claims abstract description 173
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 36
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100162203 Aspergillus parasiticus (strain ATCC 56775 / NRRL 5862 / SRRC 143 / SU-1) aflG gene Proteins 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005442 molecular electronic Methods 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000003643 water by type Substances 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
一种具有同态加密操作的装置,包括:一个或多个处理器,被配置为:基于盲旋转操作的输出密文的多项式的阶数和盲旋转操作的操作数密文的模数,通过预处理盲旋转操作的操作数密文的向量分量,生成修改的向量;基于用于执行盲旋转操作的公共密钥和修改的向量,通过执行盲旋转操作来生成同态加密操作结果。
Description
相关申请的交叉引用
本申请要求于2022年10月4日向韩国知识产权局提交的韩国专利申请No.10-2022-0126564以及于2022年12月8日向韩国知识产权局提交的韩国专利申请No.10-2022-0170614的优先权,所述申请的全部公开内容通过引用合并于此以用于所有目的。
技术领域
以下描述涉及具有同态加密操作的装置和方法。
背景技术
同态加密是一种能够在加密数据之间进行任意操作的加密方法。利用同态加密可以在不对加密数据进行解密的情况下实现对加密数据的任意操作,并且同态加密可以是基于晶格的,因此抵抗量子算法并且是安全的。
盲旋转操作技术可以用于在同态加密中对密文信息执行任意函数操作,并为操作结果提供高精度,但可能具有公共密钥的大小明显较大的缺点。
盲旋转操作可能需要大量存储器,并且当同态加密操作所需的公共密钥的大小减小时,计算量可能大大增加。
发明内容
提供本发明内容以用简化形式介绍对下面在具体实施方式中进一步描述的构思的选择。本发明内容不意在标识所请求保护的主题的关键特征或基本特征,也不意在用作帮助确定所请求保护的主题的范围。
在一个或多个总体方面,一种具有同态加密操作的装置包括:一个或多个处理器,被配置为:基于盲旋转操作的输出密文的多项式的阶数和盲旋转操作的操作数密文的模数,通过预处理盲旋转操作的操作数密文的向量分量,生成修改的向量;基于用于执行盲旋转操作的公共密钥和修改的向量,通过执行盲旋转操作来生成同态加密操作结果。
公共密钥可以包括盲旋转密钥、自同构密钥和密钥切换密钥。
公共密钥可以是基于修改的向量和秘密密钥来生成的。
针对生成修改的向量,一个或多个处理器可以被配置为:将模数和输出密文的阶数进行比较;以及基于该比较的结果来生成修改的向量。
针对生成修改的向量,一个或多个处理器可以被配置为:基于操作数密文的向量分量的一部分来生成第一集合;以及
基于第二集合来生成修改的向量,其中,第一集合和第二集合是不相交的。
针对生成同态加密操作结果,一个或多个处理器可以被配置为:响应于操作数密文的向量分量的生成器是独有的,基于该生成器来确定循环索引;以及基于循环索引来执行盲旋转操作。
针对生成同态加密操作结果,一个或多个处理器可以被配置为:基于操作数密文的第一集合来执行第一盲操作;以及基于操作数密文的第二集合来执行第二盲操作。
针对生成同态加密操作结果,一个或多个处理器可以被配置为:基于修改的向量,通过执行递增操作、自同构操作和密钥切换操作来执行盲旋转操作。
针对生成同态加密操作结果,一个或多个处理器可以被配置为:确定操作数密文的向量分量中的奇数的数量和偶数的数量;以及基于奇数的数量和偶数的数量的比较结果,将操作数密文的向量分量加“1”。
针对生成同态加密操作结果,一个或多个处理器可以被配置为:响应于操作数密文的向量分量为偶数,基于盲旋转密钥来执行盲旋转操作,该盲旋转密钥基于公共密钥的秘密密钥的向量分量、秘密密钥的向量分量的负和、以及秘密密钥的向量分量之中的连续向量分量的和。
该装置可以包括接收器,该接收器被配置为接收公共密钥和操作数密文。
在一个或多个总体方面,一种处理器实现的具有同态加密操作的方法包括:基于盲旋转操作的输出密文的多项式的阶数和盲旋转操作的操作数密文的模数,通过预处理盲旋转操作的操作数密文的向量分量,生成修改的向量;以及基于用于执行盲旋转操作的公共密钥,通过对修改的向量执行盲旋转操作来生成同态加密操作结果。
公共密钥可以包括盲旋转密钥、自同构密钥和密钥切换密钥。
公共密钥是基于修改的向量和秘密密钥来生成的。
生成修改的向量可以包括:将模数和输出密文的阶数进行比较;以及基于该比较的结果来生成修改的向量。
生成修改的向量可以包括:基于操作数密文的向量分量的一部分来生成第一集合;以及基于第二集合来生成修改的向量,其中,第一集合和第二集合是不相交的。
生成同态加密操作结果可以包括:响应于操作数密文的向量分量的生成器是独有的,基于该生成器来确定循环索引;以及基于循环索引来执行盲旋转操作。
生成同态加密操作结果可以包括:基于操作数密文的第一集合来执行第一盲操作;以及基于操作数密文的第二集合来执行第二盲操作。
生成同态加密操作结果可以包括:基于修改的向量,通过执行递增操作、自同构操作和密钥切换操作来执行盲旋转操作。
生成同态加密操作结果可以包括:确定操作数密文的向量分量中的奇数的数量和偶数的数量;以及基于奇数的数量和偶数的数量的比较结果,将操作数密文的向量分量加“1”。
生成同态加密操作结果可以包括:响应于操作数密文的向量分量为偶数,基于盲旋转密钥来执行盲旋转操作,该盲旋转密钥基于公共密钥的秘密密钥的向量分量、秘密密钥的向量分量的负和、以及秘密密钥的向量分量之中的连续向量分量的和。
其他特征和方面将通过以下详细描述、附图和权利要求变得清楚明白。
附图说明
图1示出了同态加密操作装置的示例。
图2示出了同态加密操作装置的实现示例。
图3至图6示出了同态加密操作装置的同态加密操作的示例。
图7示出了同态加密操作装置的密钥生成操作的示例。
图8示出了同态加密操作装置的操作的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图标记将被理解为指代相同的元件、特征和结构。附图可以不按比例绘制,并且为了清楚、说明和方便,可以扩大附图中元件的相对尺寸、比例和描绘。
具体实施方式
提供以下详细描述以帮助读者获得对本文描述的方法、装置和/或系统的全面理解。然而,在理解了本申请的公开之后,本文中描述的方法、装置和/或系统的各种改变、修改和等同物将是显而易见的。例如,本文中描述的操作序列仅仅是示例,并且不限于在本文中阐述的那些操作序列,而是可以在理解了本申请的公开之后明显改变,除了必须以一定顺序发生的操作之外。此外,为了更加清楚和简洁,可以省略在理解本申请的公开之后己知的特征的描述。
在下文中,将参考附图来详细描述示例。然而,可以对示例做出各种变化和修改。这里,示例不被解释为限于本公开。示例应被理解为包括本公开的构思和技术范围内的所有改变、等同物和替换。
本文中使用的术语仅仅是为了描述具体示例的目的,而不是为了限制示例。单数形式“一”、“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。作为非限制性示例,术语“包括”或“包括有”、“包含”或“包含有”以及“具有”或“具备”表示存在所阐述的特征、数目、操作、构件、元件和/或其组合,但并不排除存在或添加一个或多个其他特征、数目、操作、构件、元件和/或其组合。
除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员基于对本申请的公开的理解通常所理解的含义相同的含义。还将理解的是,诸如在常用词典中定义的术语应被解释为其含义与在相关技术和本申请的公开的上下文中的含义一致,而不应将其解释为理想的或过于正式的含义,除非本文明确如此定义。
当参考附图描述示例时,相同的附图标记表示相同的组成元件,并且将省略与其相关的重复描述。在对示例的描述中,当认为对公知的相关结构或功能的详细描述将导致对本公开的模糊解释时,将省略这样的描述。
尽管本文中可以使用诸如“第一”、“第二”和“第三”或“A”、“B”、(a)、(b)等术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语的限制。例如,这些术语中的每一个不用于限定对应的构件、组件、区域、层或部分的实质、顺序或序列,而是仅用于将对应的构件、组件、区域、层或部分与其他构件、组件、区域、层或部分区分开来。因此,在不脱离示例的教导的情况下,本文中描述的示例中提及的第一构件、组件、区域、层或部分也可以称为第二构件、组件、区域、层或部分。
贯穿说明书,当组件或元件被描述为在另一组件、元件或层“上”、“连接到”、“耦接到”或“接合到”另一组件、元件或层时,它可以直接(例如,与该另一组件或元件接触)在该另一组件、元件或层“上”、“连接到”、“耦接到”或“接合到”该另一组件、元件或层,或者可以合理地存在介于其间的一个或多个其他组件、元件、层。当组件或元件被描述为“直接在另一组件或元件上”、“直接连接到”、“直接耦接到”或“直接接合到”另一组件或元件时,可以不存在介于其间的其他元件。同样,也可以如前所述解释例如“在……之间”和“直接在……之间”以及“与……相邻”和“与……紧邻”的表述。
如本文中所使用的,术语“和/或”包括关联列出的项目中的任何一个和任何两个或更多个的任何组合。短语“A、B和C中的至少一个”、“A、B或C中的至少一个”等意在具有分离意义,并且这些短语“A、B和C中的至少一个”、“A、B或C中的至少一个”等还包括这样的示例,即其中,除非对应的描述和实施例需要将这种列表(例如,“A、B和C中的至少一个”)解释为具有联合意义,否则可以存在A、B和/或C中的每一个的一个或多个(例如,A、B和C中的每一个的一个或多个的任意组合)。
相同的名称可以用于描述上述示例中包括的元件和具有普通功能的元件。除非另有说明,否则对示例的描述可以适用于下文的示例,因此,为了简明起见,将省略重复的描述。
本文描述的特征可以以不同形式来实施,并且不应被解释为限于本文描述的示例。相反,提供本文描述的示例仅仅是为了说明实现本文描述的方法、装置和/或系统的许多可行方式中的一些,在理解了本申请的公开之后,这些方式将是显而易见的。在本文中,关于示例或实施例(例如,关于示例或实施例可以包括或实现什么)的术语“可以”的使用意味着存在其中包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
图1示出了同态加密操作装置的示例。
参考图1,同态加密操作装置10可以使用同态加密来执行加密和解密。同态加密操作装置10可以针对同态加密操作执行盲旋转操作。一个或多个实施例的同态加密操作装置10可以减小公共密钥的大小,从而通过减小同态加密的计算量来改进同态加密技术。
同态加密操作装置10可以通过执行同态加密操作来生成操作结果。同态加密操作装置10可以生成用于执行盲旋转操作的密文(例如,操作数密文)。同态加密操作装置10可以生成秘密密钥和公共密钥。公共密钥可以包括密钥切换密钥、盲旋转密钥和/或自同构密钥。
同态加密操作装置10可以使用生成的秘密密钥、密文和/或盲旋转密钥来执行盲旋转操作。
同态加密可以指代被配置为允许在加密时对数据执行各种操作的加密方法。在同态加密中,使用密文的操作的结果可以变为新的密文,并且通过对该密文进行解密而获得(例如,确定或生成)的明文可以与加密之前的原始数据的操作结果相同。
在下文中,加密数据或加密文本可以称为密文。密文可以是多项式或包括多项式的向量的形式。
同态加密操作装置10可以执行基于具有错误的环学习(RLWE)问题的同态加密操作,该同态加密操作支持对密文的操作,包括二进制数的明文被加密为该密文。同态加密操作装置10可以执行基于RLWE问题的同态加密操作,该同态加密操作支持对密文的操作,包括整数的明文被加密为该密文。同态加密操作装置10可以执行基于RLWE问题的近似同态加密操作,该近似同态加密操作支持对密文的操作,包括实数和/或复数的明文被加密为该密文。
同态加密操作装置10可以通过使用同态加密对处于加密状态的数据进行操作而获得的结果进行解密,来导出与对明文的数据执行操作而获得的结果相同的结果。
同态加密操作装置10可以对密文执行操作,并可以执行盲旋转操作(例如,查找表(LUT)操作)和密钥生成。同态加密操作装置10可以在同态加密中使用盲旋转方法来对非多项式函数执行操作。
同态加密操作装置10可以在隐私保护机器学习(PPML)和应用服务中执行对输入数据进行加密的加密过程。在PPML和应用服务中,同态加密操作装置10可以在对输入值进行加密的加密过程中使用。
一个或多个实施例的同态加密操作装置10可以通过消除对用于存储秘密密钥的空间的限制来改进同态加密技术,从而调整秘密密钥的向量的大小,并使用同态加密来增加PPML和应用服务中的密码安全性。
同态加密操作装置10可以调整用于存储服务器和客户端所使用的密钥(例如,秘密密钥、密钥切换密钥、自同构密钥或盲旋转密钥)的存储空间和用于同态加密操作的计算量。
同态加密操作装置10可以以芯片形式来实现,并安装在利用同态加密的硬件加速器上。同态加密操作装置10可以以芯片或实现软件的芯片的形式来实现,以减小各种操作装置的存储器使用。一个或多个实施例的同态加密操作装置10可以通过减小针对同态加密操作的计算量来改进同态加密技术,从而减小服务器的总计算量。
一个或多个实施例的同态加密操作装置10可以通过调整秘密密钥的向量的大小来提供高密码稳定性,以改进同态加密技术。同态加密操作装置10可以对同态加密操作的输入数据执行加密。
同态加密操作装置10可以是个人计算机(PC)、数据服务器和/或便携式设备,或者在个人计算机(PC)、数据服务器和/或便携式设备中实现。
便携式设备可以是以下设备或在以下设备中实现:膝上型计算机、移动电话、智能电话、平板PC、移动互联网设备(MID)、个人数字助理(PDA)、企业数字助理(EDA)、数字静止相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持式游戏控制台、电子书、智能设备、智能手表、智能手环和/或智能戒指。
同态加密操作装置10可以包括接收器100和处理器200(例如,一个或多个处理器)。同态加密操作装置10还可以包括存储器300(例如,一个或多个存储器)。
接收器100可以包括接收接口。接收器100可以从外部或从存储器300接收用于执行同态加密操作的数据。该数据可以是用于执行同态加密操作的操作数数据(例如,操作数密文)或密钥(例如,秘密密钥、密钥切换密钥、自同构密钥和/或盲旋转密钥)。
盲旋转密钥可以是基于环金特里(Gentry)、萨海(Sahai)、沃特斯(Waters)(RGSW)密文或具有错误的环学习(RLWE′)密文来生成的。密钥切换密钥可以是基于RLWE′密文来生成的。操作数密文可以是基于具有错误的学习(LWE)密文来生成的。
接收器100可以接收用于执行盲旋转操作的公共密钥和盲旋转操作的操作数密文。公共密钥可以包括盲旋转密钥、自同构密钥和密钥切换密钥。接收器100可以将接收到的公共密钥和操作数密文输出到处理器200。
处理器200可以处理存储在存储器300中的数据。处理器200可以执行存储在存储器300中的计算机可读指令和由处理器200触发的指令。
“处理器200”可以是数据处理硬件设备,该数据处理硬件设备包括具有执行期望的操作的物理结构的电路。例如,期望的操作可以包括程序中包括的代码或指令。
数据处理硬件设备可以包括例如微处理器、中央处理单元(CPU)、处理器核、多核处理器、多处理器、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。
处理器200可以基于盲旋转操作的输出密文的多项式的阶数和操作数密文的模数,通过预处理操作数密文的向量分量,生成修改的向量。
处理器200可以将输出密文的阶数与操作数密文的模数进行比较。处理器200可以基于比较的结果来生成修改的向量。
处理器200可以基于操作数密文的向量分量的一部分来生成第一集合。处理器200可以基于第二集合来生成修改的向量,其中,第一集合和第二集合是不相交的。
处理器200可以基于公共密钥和修改的向量,通过执行盲旋转操作来生成同态加密操作结果。公共密钥可以是基于修改的向量和秘密密钥来生成的。
当操作数密文的向量分量的生成器是独有的时,处理器200可以基于该生成器来确定循环索引。处理器200可以基于循环索引来执行盲旋转操作。
处理器200可以基于操作数密文的第一集合来执行第一盲操作。处理器200可以基于操作数密文的第二集合来执行第二盲操作。
处理器200可以基于修改的向量,通过执行递增操作、自同构操作和密钥切换操作来执行盲旋转操作。
处理器200可以获得操作数密文的向量分量中的奇数的数量和偶数的数量。处理器200可以基于奇数的数量和偶数的数量的比较结果,将操作数密文的向量分量加“1”。
当操作数密文的向量分量为偶数时,处理器200可以基于盲旋转密钥来执行盲旋转操作,该盲旋转密钥基于公共密钥的秘密密钥的向量分量、秘密密钥的向量分量的负和、以及秘密密钥的向量分量之中的连续向量分量的和。
存储器300可以存储能够由处理器200执行的指令(或程序)。例如,该指令可以包括用于执行处理器200的操作和/或处理器200的每个组件的操作的指令。例如,存储器300可以包括存储指令的非暂时性计算机可读存储介质,当该指令由处理器200执行时,配置处理器200执行本文中参考图1至图8描述的操作和/或方法中的任一个、任何组合或全部。
存储器300可以实现为易失性存储器件或非易失性存储器件。
易失性存储器件可以实现为动态随机存取存储器(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)、全息存储器、分子电子存储器件和/或绝缘体电阻变化存储器。
图2示出了同态加密操作装置(例如,图1的同态加密操作装置)的操作的示例。
参考图2,由处理器(例如,图1的处理器200)用于同态加密操作的密文可以如下定义。
在LWE密文中,消息(或明文)m的密文可以表示为密文可以被解密为由表示。/>可以表示使用秘密密钥/>对消息m进行加密。
在RLWE密文中,消息m的密文可以表示为密文可以被解密为由a·z+b=m+e(mod Q)表示。RLWEz(m)可以表示使用秘密密钥z对消息m进行加密。
例如,消息m的使用秘密密钥z的RLWE密文可以定义为通过以下等式1表示。
等式1:
RLWEn)=(a,α·z+e+m)
这里,a表示模数Q的多项式,并且e表示具有较小系数的误差多项式。当执行每个加密时,可以随机生成a和e。
例如,消息m的针对秘密密钥s的RLWE′密文可以定义为通过以下等式2表示。
等式2:
RLWE′(m)=(RLWE(g0·m),RLWE(g1·m),…,RLWE(gd-1·m))
这里,(g0,g1,...,gd-1)可以为预先定义的用于分解任意整数的向量,并且可以以针对任意整数B的(1,B,B2,...,Bd-1)的形式或以针对的的形式进行设置。
例如,消息m的针对秘密密钥z的RGSW密文可以由两个RLWE′密文定义为通过以下等式3表示。
等式3:
RGSW(m)=(RLWE′(-zm),RLWE′(m))
由处理器200执行的同态加密操作可以如下定义。
在RLWE密文的自同构操作中,多项式环的自同构ψt可以相对于多项式环的元素a(X)来输出a(Xt),并且域空间和上域(codomain)空间可以相同。在RLWE密文中,处理器200可以通过自同构操作相对于输入来输出/>
处理器200可以通过密钥切换操作根据与秘密密钥z1相对应的密文来获得与新秘密密钥z2相对应的密文。处理器200可以使用密钥切换密钥相对于输入密文获得具有z2作为秘密密钥的新密文该密钥切换密钥/>为公共密钥。
处理器200可以执行盲旋转操作。处理器200可以使用盲旋转密钥相对于密文和任意函数f(X)∈RQ执行盲旋转操作,并输出
整数上的奇数生成器可以如下定义。可以是从“0”至“q-1”的整数,并且可以定义加法和乘法,/>为模数为q的整数环。
可以是模数为q的整数环的子集,其具有针对乘法的逆元素。在/>的子集中,可以是具有针对乘法的逆元素的集合。如果/>能够通过gis的幂来表示,则gis可以称为的生成器。
处理器200通常可以考虑q为“2”的幂的情况。在这种情况下,可以具有小于或等于q且与“2”互质的所有奇数的集合。当q是“2”的幂时,所有奇数可以通过“5”和“-1”的幂来表示。例如,奇数可以表示为/>因此,该奇数可以表示为
不相交的集合族可以指代不具有共同元素的两个集合。如果具有“2”的幂作为模数的任意向量的分量αi被划分为/>和/>则/>和/>可以是不相交的集合族。
处理器200可以使用盲旋转密钥从LWE密文计算(例如,确定)从而执行对在/>中应用了函数f的消息的操作结果进行计算的盲旋转操作,该LWE密文为操作数密文。一个或多个实施例的处理器200可以通过减小公共密钥的大小和用于盲旋转操作的过程的计算量来改进同态加密技术。
处理器200可以利用密钥切换密钥,根据模数q和基于RLWE密文的阶数的2N的比较结果,仅使用akg和ak-g来执行盲旋转操作,该密钥切换密钥不具有针对所有奇数t的akt。
处理器200可以通过执行预处理过程将基于LWE密文的的向量分量αi的2N、模数q和RLWE密文的阶数进行比较来生成盲旋转密钥和密钥切换密钥。
在执行盲旋转操作的过程中,处理器200可以基于模数q和2N之间的比较来生成修改的向量模数q是/>的向量分量和LWE密文的向量分量的范围,2N是RLWE密文的阶数的两倍。
处理器200可以基于修改的向量的分量ωi的特性,通过执行自同构操作、递增操作和密钥切换操作来更新RLWE密文。
当根据在预处理过程中生成的修改的向量的值使用附加操作时,处理器200可以通过执行递增操作来更新RLWE密文。
处理器200可以输出作为同态加密操作结果。
处理器200可以包括操作器250。作为非限制性示例,密钥生成器210和操作器250可以在不同的设备上实现。例如,密钥生成器210可以在客户端上实现,而操作器250可以在服务器上实现。
在示例中,处理器200可以包括操作器250,并且不包括密钥生成器210。然而,在一些示例中,处理器200可以包括密钥生成器210。
在操作211中,密钥生成器210可以生成秘密密钥。在操作213中,密钥生成器210可以基于秘密密钥来生成公共密钥。公共密钥可以包括密钥切换密钥或盲旋转密钥。密钥生成器210可以针对LWE密文和RLWE密文生成秘密密钥。密钥生成器210可以基于生成的秘密密钥来生成LWE密文。
密钥生成器210可以将生成的公共密钥输出到接收器230和/或操作器250。密钥生成器210可以无线地或有线地发送生成的公共密钥。
接收器230可以是图1的接收器100、包括图1的接收器100和/或以与图1的接收器100相同的方式进行操作。接收器230可以接收操作数密文(例如,LWE密文)并将该操作数密文输出到操作器250。
操作器250可以通过预处理操作数密文来生成修改的向量。操作器250可以接收LWE密文并执行盲旋转操作。操作器250可以使用/>来计算消息相对于函数f的操作结果。
在操作251中,操作器250可以基于LWE密文,通过执行预处理来生成修改的向量。操作器250可以将修改的向量输出到密钥生成器210。
密钥生成器210可以比较和分析基于LWE密文的向量/>的每个向量分量αi的2N、模数q和RLWE密文的阶数。
密钥生成器210可以验证用于生成比较和分析结果αi的生成器,生成需作为验证结果的盲旋转密钥和密钥切换密钥,并向操作器250发送盲旋转密钥和密钥切换密钥。
在操作253中,操作器250可以基于从密钥生成器210接收的公共密钥重复执行盲旋转操作。操作器250可以执行递增操作、自同构操作和密钥切换操作。
操作器250可以将修改的向量的分量ωi划分为不相交的第一集合和第二集合。第一集合可以是/>并且第二集合可以是/>操作器250可以对/>中的向量分量执行盲旋转操作,对与/>相对应的向量分量执行盲旋转操作,然后对与/>相对应的向量分量执行盲旋转操作。根据示例,这些操作可以以不同的顺序执行。将参考图3至图6详细描述盲旋转操作的过程。
在操作255中,操作器250可以对由向量和修改的向量/>之间的差异所引起的部分执行最终递增操作。操作器250可以输出RLWE密文/>作为最终操作结果。
图3示出了同态加密操作装置(例如,图1的同态加密操作装置)的同态加密操作的示例。图3的操作311至345可以顺序地执行,但不必须顺序地执行。例如,操作311至345的顺序可以改变,并且操作311至345中的两个或更多个操作可以并行或同时执行。此外,在不脱离所示示例的精神和范围的情况下,可以省略操作311至345中的一个或多个操作。
参考图3,图3的示例示出了当给出的LWE密文的所有向量分量为奇数时的盲旋转操作的过程。
密钥生成器(例如,图2的密钥生成器210)可以将输入LWE密文生成为密钥生成器210可以生成盲旋转密钥/>该盲旋转密钥是与每个秘密密钥相对应的RGSW密文。密钥生成器210可以生成与g和-g相对应的自同构密钥akg和ak-g。密钥生成器210可以生成用于将s(X-g)改变为s(X)的密钥切换密钥。密钥生成器210可以将生成的LWE密文、盲旋转密钥、自同构密钥和密钥切换密钥输出到操作器(例如,图2的操作器250)。
在操作311中,操作器250可以设置初始值。操作器250可以以环元素的形式设置初始值。
操作器250可以将修改的向量的分量ωi划分为和在操作313中,操作器250可以设置/>以对/>中的向量分量执行盲旋转操作
在操作315中,操作器250可以针对满足的i执行盲旋转操作的循环。在操作317中,操作器250可以对RGSW执行递增操作。在操作319中,操作器250可以对g执行自同构操作,并且执行用于将秘密密钥恢复为原始秘密密钥的密钥切换操作。
操作器250可以通过操作321和323来验证己针对除了j=0之外的所有执行了操作313至319。
在操作325中,操作器250可以针对满足的i执行盲旋转操作的循环。在操作327中,操作器250可以针对/>的向量分量执行递增操作。在操作329中,操作器250可以对-g执行自同构操作,并且执行用于将秘密密钥恢复为原始秘密密钥的密钥切换操作。
在操作331中,操作器250可以设置在操作333中,操作器250可以针对满足/>的i执行盲旋转操作的循环。在操作335中,操作器250可以针对/>的向量分量执行递增操作。在操作337中,操作器250可以对-g执行自同构操作,并且执行用于将秘密密钥恢复为原始秘密密钥的密钥切换操作。
操作器250可以通过操作339和341来验证己针对除了j′=0之外的所有执行了操作331至337。操作器250可以通过操作343和345来执行递增操作,并输出RLWE密文作为百旋转操作结果。
使用图3的示例,当LWE密文的向量分量为奇数时,无论向量分量的大小如何,一个或多个实施例的同态加密操作装置(例如,图1的同态加密操作装置10)可以通过以下来改进同态加密技术:在盲旋转操作期间通过使用自同构最小化自同构密钥和密钥切换密钥的数量来执行同态加密操作。
图4示出了同态加密操作装置(例如,图1的同态加密操作装置)的同态加密操作的示例。图4的操作411至443可以顺序地执行,但不必须顺序地执行。例如,操作411至443的顺序可以改变,并且操作411至443中的两个或更多个操作可以并行或同时执行。此外,在不脱离所示示例的精神和范围的情况下,可以省略操作411至443中的一个或多个操作。
参考图4,示出了当LWE密文包括偶数的向量分量时的盲旋转操作的过程。
密钥生成器(例如,图2的密钥生成器210)可以将输入LWE密文生成为密钥生成器210可以生成盲旋转密钥/>该盲旋转密钥是与每个秘密密钥相对应的RGSW密文。密钥生成器210可以生成与秘密密钥的向量分量的负和相对应的RGSW密文/>作为盲旋转密钥。/>
密钥生成器210可以生成与g和-g相对应的自同构密钥akg和ak-g。密钥生成器210可以生成用于将s(X-g)改变为s(X)的密钥切换密钥。密钥生成器210可以将生成的LWE密文、盲旋转密钥、自同构密钥和密钥切换密钥输出到操作器(例如,图2的操作器250)。
在操作411中,操作器250可以设置初始值。操作器250可以以环元素的形式设置初始值。在操作413中,操作器250可以获得并比较操作数密文的向量分量之中的奇数的数量和偶数的数量。
当偶数的数量更大时,在操作415中,操作器250可以使用来执行递增操作。在操作417中,操作器250可以将LWE密文/>改变为/>
当奇数的数量更大时,在操作419中,操作器250可以将LWE密文保持为其原始形式。在操作421中,操作器250可以设置i=0。在操作423中,从i=0开始,操作器250可以针对满足i<n的i验证向量分量是否为偶数。
当向量分量为偶数时,在操作425中,操作器250可以基于来生成修改的向量。当向量分量为奇数时,在操作427中,操作器250可以基于/>来生成修改的向量。在操作429中,操作器250可以增加i。在操作431中,操作器250可以确定是否i<n。操作器250可以通过操作423至431来生成修改的向量/>该修改的向量的所有向量分量为奇数。
在操作433中,操作器250可以基于修改的向量和秘密密钥/>来执行盲旋转操作。执行盲旋转操作的过程可以与图3的过程相同。
当LWE操作的向量分量为偶数时,操作器250可以通过操作435至443附加地执行RGSW密文的递增操作。在操作437中,操作器250可以确定是否为偶数。如果是偶数,则在操作439中,操作器250可以执行/>的递增操作。在操作441中,操作器250可以增加i。在操作443中,操作器250可以确定是否i<n。如果/>是奇数,则操作器250可以执行操作443。
操作器250可以输出RLWE密文作为最终操作结果。
使用图4的示例,当偶数被包括在LWE密文的向量分量中时,一个或多个实施例的操作器250可以通过以下来改进同态加密技术:通过仅添加一个盲旋转操作密钥来有效地使用存储器的存储空间。操作器250可以使用RGSW密文最大次来执行递增操作,从而调整存储器和操作之间的权衡关系。
图5示出了同态加密操作装置(例如,图1的同态加密操作装置)的同态加密操作的示例。图5的操作511至533可以顺序地执行,但不必须顺序地执行。例如,操作511至533的顺序可以改变,并且操作511至533中的两个或更多个操作可以并行或同时执行。此外,在不脱离所示示例的精神和范围的情况下,可以省略操作511至533中的一个或多个操作。
参考图5,图5的示例示出了当偶数分量被包括在LWE密文的向量分量中时的盲旋转操作的过程。
密钥生成器(例如,图2的密钥生成器210)可以将输入LWE密文生成为密钥生成器210可以生成盲旋转密钥/>该盲旋转密钥是与每个秘密密钥相对应的RGSW密文。密钥生成器210可以生成与秘密密钥的向量分量的负和相对应的RGSW密文/>作为盲旋转密钥。密钥牛成器210可以基于连续向量分量的和来牛成RGSW密文作为盲旋转密钥。
密钥生成器210可以生成与g和-g相对应的自同构密钥akg和ak-g。密钥生成器210可以生成用于将s(X-g)改变为s(X)的密钥切换密钥。密钥生成器210可以将生成的LWE密文、盲旋转密钥、自同构密钥和密钥切换密钥输出到操作器(例如,图2的操作器250)。
在操作511中,操作器250可以设置初始值。操作器250可以以环元素的形式设置初始值。在操作513中,操作器250可以确定LWE密文的向量分量的第一分量是否为偶数。
当第一分量为偶数时,在操作515中,操作器250可以使用来执行递增操作。在操作517中,操作器250可以将LWE密文/>改变为/>当第一分量为奇数时,在操作519中,操作器250可以将LWE密文保持为其原始形式。
操作器250可以执行操作521至531,以将LWE密文的向量分量改变为适合于自同构操作的值。在操作521中,操作器250可以从i=0开始操作。
在操作523中,操作器250可以确定向量分量是否为奇数。当为奇数时,在操作525中,操作器250可以将秘密密钥向量和修改的向量分别设置为S′i=Si和/>
当为偶数时,在操作527中,操作器250可以将秘密密钥向量和修改的向量分别设置为s′i=si+si+1和
在操作529中,操作器250可以增加i。在操作531中,操作器250可以确定是否i<n-1。当未满足操作531的条件时,操作器250可以使用修改的向量和新的秘密密钥向量/>来执行盲旋转操作。该盲旋转操作可以以与图3中描述的方式相同的方式来执行。
操作器250可以输出RLWE密文作为最终操作结果。
使用图5的示例,当偶数被包括在LWE密文的向量分量中时,根据第一向量分量是否为奇数,操作器250可以仅使用RGSW密文附加地执行一次递增操作。因此,一个或多个实施例的操作器250可以通过减小计算量有效地执行同态加密操作来改进同态加密技术。此时,可以生成N+1个附加的盲旋转密钥,因此,权衡可以发生在存储器和计算量之间。
图6示出了同态加密操作装置(例如,图1的同态加密操作装置)的同态加密操作的示例。图6的操作611至627可以顺序地执行,但不必须顺序地执行。例如,操作611至627的顺序可以改变,并且操作611至627中的两个或更多个操作可以并行或同时执行。此外,在不脱离所示示例的精神和范围的情况下,可以省略操作611至627中的一个或多个操作。
参考图6,图6的示例示出了当执行盲旋转操作时的情况或用于生成LWE密文的向量分量的生成器是独有的为g′的情况。在这种情况下,当除以“4”时,所有向量分量可以具有“1”的余数,可以具有g′k的形式,并且可以不具有负数的形式。
密钥生成器(例如,图2的密钥生成器210)可以将输入LWE密文生成为密钥生成器210可以生成盲旋转密钥/>该盲旋转密钥是与每个秘密密钥相对应的RGSW密文。密钥生成器210可以生成aka′和用于将s(Xg′)改变为s(X)的密钥切换密钥。密钥生成器210可以将生成的LWE密文、盲旋转密钥、自同构密钥和密钥切换密钥输出到操作器(例如,图2的操作器250)。
在操作611中,操作器250可以设置初始值。操作器250可以以环元素的形式设置初始值。在操作613中,操作器250可以将每个向量分量ωi除以并设置j=ord-1,以从/>中的向量分量开始盲旋转操作。Ord可以表示满足g′ord=1的最小正整数。
在操作615中,操作器250可以针对中的所有分量执行盲旋转操作。在操作617中,操作器250可以对RGSW执行递增操作。在操作619中,操作器250可以对g′执行自同构操作,并执行用于将秘密密钥恢复为原始秘密密钥的密钥切换操作。
操作器250可以通过操作621和623来验证是否己针对除j=0之外的所有执行了操作615至619。
在操作627中,操作器250可以通过操作625针对的所有向量分量执行递增操作。操作器250可以输出RLWE密文作为盲旋转操作结果。
一个或多个实施例的同态加密操作装置(例如,图1的同态加密操作装置10)可以根据LWE密文的向量分量或同态加密的参数值来应用图6的示例,从而通过仅使用一个自同态密钥有效地执行同态加密操作来改进同态加密技术。
作为另一示例,当操作器250将LWE密文的向量分量划分为和时,/>和/>两者可以为针对一些j的空集。在这种情况下,一个或多个实施例的操作器250可以针对生成器生成和使用多个自同构密钥,从而通过减小盲旋转操作的不必要地执行的次数来改进同态加密技术。例如,操作器250可以生成akg、…、akgb和ak-g作为自同构密钥。生成多个自同构密钥的示例可以应用于图3至图6的所有示例。
图7示出了同态加密操作装置(例如,图1的同态加密操作装置)的密钥生成操作的示例。图7的操作711至725可以顺序地执行,但不必须顺序地执行。例如,操作711至725的顺序可以改变,并且操作711至725中的两个或更多个操作可以并行或同时执行。此外,在不脱离所示示例的精神和范围的情况下,可以省略操作711至725中的一个或多个操作。
参考图7,在的情况下或在用于生成操作数密文(例如,LWE密文)/>的向量分量的生成器作为g′是独有的情况下,密钥生成器(例如,图2的密钥生成器210)可以基于用于生成LWE密文的向量分量的生成器g′的值来生成/>和akg′,并生成用于将s(Xg′)改变为s(X)的密钥切换密钥,以执行图6的示例中所示的盲旋转操作。
在操作711中,密钥生成器250可以确定是否或者生成器作为g′是否是独有的。当满足操作711的条件时,在操作713中,密钥生成器250可以生成/>和akg′,并生成用于将s(Xg′)改变为s(X)的密钥切换密钥。在操作725中,密钥生成器250可以向操作器(例如,图2的操作器250)发送在操作713中生成的公共密钥。
当生成器不是独有的时,密钥生成器250可以确定偶数是否被包括在向量分量中,并生成如图3的示例中的公共密钥。备选地或附加地,密钥生成器250可以确定存储器效率和计算效率的重要性,生成如图4和图5的示例中的公共密钥,并向操作器250发送公共密钥。
当不满足操作711的条件时,在操作715中,密钥生成器250可以确定是否为奇数。当/>为奇数时,在操作717中,密钥生成器250可以生成/>akg和ak-g。在操作725中,密钥生成器250可以向操作器250发送在操作717中生成的公共密钥。
当为偶数时,在操作719中,密钥生成器250可以在存储器效率和计算效率之间选择具有更高重要性的一个。当存储器效率的重要性较高时,在操作721中,密钥生成器250可以生成盲旋转密钥/>和/>并生成自同构密钥akg和ak-g。在操作725中,密钥生成器250可以向操作器250发送在操作721中生成的公共密钥。
当计算效率的重要性较高时,在操作723中,密钥生成器250可以生成盲旋转密钥和/>并生成自同构密钥akg和ak-g。在操作725中,密钥生成器250可以向操作器250发送在操作723中生成的公共密钥。
图8示出了同态加密操作装置(例如,图1的同态加密操作装置)的操作示例。图8的操作810至850可以顺序地执行,但不必须顺序地执行。例如,可以改变操作810至850的顺序,并且可以并行或同时执行操作810至850中的两个或更多个操作。此外,在不脱离所示示例的精神和范围的情况下,可以省略操作810至850中的一个或多个操作。
参考图8,在操作810中,接收器(例如,图1的接收器100)可以接收用于执行盲旋转操作的公共密钥和盲旋转操作的操作数密文。公共密钥可以包括盲旋转密钥、自同构密钥和密钥切换密钥。
在操作830中,处理器200可以基于盲旋转操作的输出密文的多项式的阶数和操作数密文的模数,通过预处理操作数密文的向量分量,生成修改的向量。
处理器200可以将输出密文的阶数与操作数密文的模数进行比较。处理器200可以基于比较的结果来生成修改的向量。
处理器200可以基于操作数密文的向量分量的一部分来生成第一集合。处理器200可以基于第二集合来生成修改的向量,其中,第一集合和第二集合是不相交的。
在操作850中,处理器200可以基于公共密钥和修改的向量,通过执行盲旋转操作来生成同态加密操作结果。公共密钥可以是基于修改的向量和秘密密钥生成的。
当操作数密文的向量分量的生成器是独有的时,处理器200可以基于该生成器来确定循环索引。处理器200可以基于循环索引来执行盲旋转操作。
处理器200可以基于操作数密文的第一集合来执行第一盲操作。处理器200可以基于操作数密文的第二集合来执行第二盲操作。
处理器200可以基于修改的向量,通过执行递增操作、自同构操作和密钥切换操作来执行盲旋转操作。
处理器200可以获得操作数密文的向量分量中的奇数的数量和偶数的数量。处理器200可以基于奇数的数量和偶数的数量的比较结果,将操作数密文的向量分量加“1”。
当操作数密文的向量分量为偶数时,处理器200可以基于盲旋转密钥来执行盲旋转操作,该盲旋转密钥基于公共密钥的秘密密钥的向量分量、秘密密钥的向量分量的负和、以及秘密密钥的向量分量之中的连续向量分量的和。
同态加密操作装置、接收器、处理器、存储器、密钥生成器、操作器、同态加密操作装置10、接收器100、处理器200、存储器300、密钥生成器210、接收器230、操作器250以及本文参考图1至图8公开和描述的其他装置、设备、单元、模块和组件由硬件组件来实现或表示硬件组件。如上所述,或除了上面的描述之外,在适当的情况下可以用于执行本申请中描述的操作的硬件组件的示例包括控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器、以及被配置为执行本申请中描述的操作的任何其他电子组件。在其他示例中,执行本申请中描述的操作的一个或多个硬件组件由计算硬件(例如,由一个或多个处理器或计算机)实现。处理器或计算机可以由一个或多个处理元件(例如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器、或被配置为以定义的方式响应并执行指令以实现期望的结果的任何其他设备或设备的组合)来实现。在一个示例中,处理器或计算机包括(或连接到)存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可以执行指令或软件(例如,操作系统(OS)和在OS上运行的一个或多个软件应用),以执行本申请中描述的操作。硬件组件还可以响应于指令或软件的执行来访问、操纵、处理、创建和存储数据。为了简洁起见,在本申请中描述的示例的描述中可以使用单数术语“处理器”或“计算机”,但在其他示例中可以使用多个处理器或计算机,或者处理器或计算机可以包括多个处理元件、或者多种类型的处理元件或两者。例如,单个硬件组件或者两个或更多个硬件组件可以由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可以由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可以由一个或多个其他处理器或另一处理器和另一控制器来实现。一个或多个处理器或者处理器和控制器可以实现单个硬件组件、或者两个或更多个硬件组件。如上所述,或除了上面的描述之外,示例硬件组件可以具有不同的处理配置中的任何一种或多种,该处理配置的示例包括单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
执行本申请中描述的操作的图1至图8所示的方法由计算硬件来执行,例如,由一个或多个处理器或计算机来执行,其中计算硬件如上所述地实现为实现指令或软件,以执行本申请中描述的由这些方法执行的操作。例如,单个操作或者两个或更多个操作可以由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可以由一个或多个处理器或者处理器和控制器来执行,并且一个或多个其他操作可以由一个或多个其它处理器或者另一处理器和另一控制器来执行。一个或多个处理器或者处理器和控制器可以执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可以被编写为计算机程序、代码段、指令或其任何组合,用于单独或共同指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行由上述硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码,例如,由编译器产生的机器代码。在另一示例中,该指令或软件包括由一个或多个处理器或计算机使用解释器执行的更高级的代码。可以基于附图中所示的框图和流程图以及本文中的对应描述(其公开了用于执行由硬件组件执行的操作和如上所述的方法的算法),使用任何编程语言来编写该指令或软件。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可以被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或其上,并且因此,其自身不是信号。如上所述,或除了上面的描述之外,非暂时性计算机可读存储介质的示例包括以下中的任何一种或多种:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、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-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡类型的存储器(例如,多媒体卡或微型卡(例如,安全数字(SD)或极限数字(XD)))、磁带、软盘、磁光数据存储设备、光学数据存储设备、硬盘、固态盘、以及被如下配置的任何其它设备:以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构,并且向一个或多个处理器或计算机提供指令或软件以及任何相关联的数据、数据文件和数据结构,使得一个或多个处理器或计算机可以执行该指令。在一个示例中,该指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得一个或多个处理器或计算机以分布方式存储、访问和执行该指令和软件以及任何相关联的数据、数据文件和数据结构。
尽管本公开包括特定示例,但在理解了本申请的公开内容之后将显而易见的是,在不脱离权利要求及其等同物的精神和范围的情况下,可以对这些示例进行形式和细节上的各种改变。本文中描述的示例应仅被认为是描述性的,而不是为了限制的目的。每个示例中的特征或方面的描述被认为适用于其他示例中的类似特征或方面。如果所描述的技术以不同的顺序执行和/或如果所描述的系统、架构、设备或电路中的组件以不同的方式组合和/或被其他组件或其等同物替换或补充,则可以实现合适的结果。
因此,除了上面和所有附图公开之外,本公开的范围还包括权利要求及其等同物,即在权利要求及其等同物范围内的所有变化应被解释为包括在本公开中。
Claims (21)
1.一种具有同态加密操作的装置,所述装置包括:
一个或多个处理器,被配置为:
基于盲旋转操作的输出密文的多项式的阶数和盲旋转操作的操作数密文的模数,通过预处理所述盲旋转操作的所述操作数密文的向量分量,生成修改的向量;以及
基于用于执行所述盲旋转操作的公共密钥和所述修改的向量,通过执行所述盲旋转操作来生成同态加密操作结果。
2.根据权利要求1所述的装置,其中,所述公共密钥包括盲旋转密钥、自同构密钥和密钥切换密钥。
3.根据权利要求1所述的装置,其中,所述公共密钥是基于所述修改的向量和秘密密钥来生成的。
4.根据权利要求1所述的装置,其中,针对生成所述修改的向量,所述一个或多个处理器被配置为:
将所述模数和所述输出密文的所述阶数进行比较;以及
基于所述比较的结果来生成所述修改的向量。
5.根据权利要求1所述的装置,其中,针对生成所述修改的向量,所述一个或多个处理器被配置为:
基于所述操作数密文的所述向量分量的一部分来生成第一集合;以及
基于第二集合来生成所述修改的向量,其中,所述第一集合和所述第二集合是不相交的。
6.根据权利要求1所述的装置,其中,针对生成所述同态加密操作结果,所述一个或多个处理器被配置为:
响应于所述操作数密文的所述向量分量的生成器是独有的,基于所述生成器来确定循环索引;以及
基于所述循环索引来执行所述盲旋转操作。
7.根据权利要求1所述的装置,其中,针对生成所述同态加密操作结果,所述一个或多个处理器被配置为:
基于所述操作数密文的第一集合来执行第一盲操作;以及
基于所述操作数密文的第二集合来执行第二盲操作。
8.根据权利要求1所述的装置,其中,针对生成所述同态加密操作结果,所述一个或多个处理器被配置为:基于所述修改的向量,通过执行递增操作、自同构操作和密钥切换操作来执行所述盲旋转操作。
9.根据权利要求1所述的装置,其中,针对生成所述同态加密操作结果,所述一个或多个处理器被配置为:
确定所述操作数密文的所述向量分量中的奇数的数量和偶数的数量;以及
基于所述奇数的数量和所述偶数的数量的比较结果,将所述操作数密文的所述向量分量加“1”。
10.根据权利要求1所述的装置,其中,针对生成所述同态加密操作结果,所述一个或多个处理器被配置为:响应于所述操作数密文的所述向量分量为偶数,基于盲旋转密钥来执行所述盲旋转操作,所述盲旋转密钥基于所述公共密钥的秘密密钥的向量分量、所述秘密密钥的所述向量分量的负和、以及所述秘密密钥的所述向量分量之中的连续向量分量的和。
11.根据权利要求1所述的装置,还包括接收器,所述接收器被配置为接收所述公共密钥和所述操作数密文。
12.一种处理器实现的具有同态加密操作的方法,所述方法包括:
基于盲旋转操作的输出密文的多项式的阶数和盲旋转操作的操作数密文的模数,通过预处理所述盲旋转操作的所述操作数密文的向量分量,生成修改的向量;以及
基于用于执行所述盲旋转操作的公共密钥,通过对所述修改的向量执行所述盲旋转操作来生成同态加密操作结果。
13.根据权利要求12所述的方法,其中,所述公共密钥包括盲旋转密钥、自同构密钥和密钥切换密钥。
14.根据权利要求12所述的方法,其中,所述公共密钥是基于所述修改的向量和秘密密钥来生成的。
15.根据权利要求12所述的方法,其中,生成所述修改的向量包括:
将所述模数和所述输出密文的所述阶数进行比较;以及
基于所述比较的结果来生成所述修改的向量。
16.根据权利要求12所述的方法,其中,生成所述修改的向量包括:
基于所述操作数密文的所述向量分量的一部分来生成第一集合;以及
基于第二集合来生成所述修改的向量,其中,所述第一集合和所述第二集合是不相交的。
17.根据权利要求12所述的方法,其中,生成所述同态加密操作结果包括:
响应于所述操作数密文的所述向量分量的生成器是独有的,基于所述生成器来确定循环索引;以及
基于所述循环索引来执行所述盲旋转操作。
18.根据权利要求12所述的方法,其中,生成所述同态加密操作结果包括:
基于所述操作数密文的第一集合来执行第一盲操作;以及
基于所述操作数密文的第二集合来执行第二盲操作。
19.根据权利要求12所述的方法,其中,生成所述同态加密操作结果包括:基于所述修改的向量,通过执行递增操作、自同构操作和密钥切换操作来执行所述盲旋转操作。
20.根据权利要求12所述的方法,其中,生成所述同态加密操作结果包括:
确定所述操作数密文的所述向量分量中的奇数的数量和偶数的数量;以及
基于所述奇数的数量和所述偶数的数量的比较结果,将所述操作数密文的所述向量分量加“1”。
21.根据权利要求12所述的方法,其中,生成所述同态加密操作结果包括:响应于所述操作数密文的所述向量分量为偶数,基于盲旋转密钥来执行所述盲旋转操作,所述盲旋转密钥基于所述公共密钥的秘密密钥的向量分量、所述秘密密钥的所述向量分量的负和、以及所述秘密密钥的所述向量分量之中的连续向量分量的和。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0126564 | 2022-10-04 | ||
KR1020220170614A KR20240047280A (ko) | 2022-10-04 | 2022-12-08 | 동형 암호 연산 장치 및 방법 |
KR10-2022-0170614 | 2022-12-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857004A true CN117857004A (zh) | 2024-04-09 |
Family
ID=90529858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311147039.1A Pending CN117857004A (zh) | 2022-10-04 | 2023-09-06 | 具有同态加密操作的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857004A (zh) |
-
2023
- 2023-09-06 CN CN202311147039.1A patent/CN117857004A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200366460A1 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
WO2018118660A1 (en) | Integrated security and data redundancy | |
CN113630234A (zh) | 使用同态加密的加密方法及装置 | |
JP7327510B2 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
JP2023063430A (ja) | 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム | |
US20230246807A1 (en) | Apparatus and method with homomorphic encryption using automorphism | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
US11722290B2 (en) | Method and apparatus for modulus refresh in homomorphic encryption | |
US9182943B2 (en) | Methods and devices for prime number generation | |
US20220385461A1 (en) | Encryption key generating method, appratus, ciphertext operation method and apparatus using the generated encryption key | |
JP7233265B2 (ja) | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム | |
JP6367959B2 (ja) | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム | |
Lapworth | Parallel encryption of input and output data for HPC applications | |
CN117857004A (zh) | 具有同态加密操作的装置和方法 | |
KR20230078510A (ko) | 동형 암호 연산 장치 및 방법 | |
US20220052848A1 (en) | Method and apparatus with encryption based on error variance in homomorphic encryption | |
JP5875717B1 (ja) | 乱数生成装置、乱数生成方法、およびプログラム | |
US20240129106A1 (en) | Apparatus and method with homomorphic encryption operation | |
US20230171085A1 (en) | Homomorphic encryption apparatus and method | |
US20230327849A1 (en) | Apparatus and method with homomorphic encryption operation | |
US20240121076A1 (en) | Apparatus and method with homomorphic encryption | |
CN116894254A (zh) | 使用同态加密运算的装置和方法 | |
US20230171084A1 (en) | Appratus and method with homomorphic encryption | |
US20220271922A1 (en) | Method and apparatus with homomorphic encryption | |
US20230269067A1 (en) | Homomorphic encryption operation accelerator, and operating method of homomorphic encryption operation accelerator |
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 |