CN115765966A - 应用于同态加密系统的数据编码方法及装置 - Google Patents
应用于同态加密系统的数据编码方法及装置 Download PDFInfo
- Publication number
- CN115765966A CN115765966A CN202211403579.7A CN202211403579A CN115765966A CN 115765966 A CN115765966 A CN 115765966A CN 202211403579 A CN202211403579 A CN 202211403579A CN 115765966 A CN115765966 A CN 115765966A
- Authority
- CN
- China
- Prior art keywords
- data
- original data
- encoding
- ciphertext
- range
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开提供了一种应用于同态加密系统的数据编码方法、装置、电子设备及存储介质,其中,该方法包括:获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种应用于同态加密系统的数据编码方法及装置。
背景技术
同态加密是一种隐私保护的数据处理技术,它支持在不泄漏原始数据的前提下,以密文的形式对数据进行算术运算,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
然而,目前同态加密技术存在计算开销大、密文尺寸膨胀等问题,导致加密效率较低。
发明内容
本公开实施例至少提供一种应用于同态加密系统的数据编码方法、装置以及系统。
第一方面,本公开实施例提供了一种应用于同态加密系统的数据编码方法,包括:
获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配;
基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;
针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;
对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
一种可选的实施方式中,所述确定所述原始数据对应的编码范围及缩放比例,包括:
基于所述原始数据对应的输入数据范围与所述编码处理的预计输出数据范围中的最大取值,确定所述编码范围;以及
基于所述同态加密中使用的最小加密参数,确定所述缩放比例。
一种可选的实施方式中,所述基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据,包括:
基于所述原始数据以及所述编码范围的最小取值,确定缩放基准值;
基于所述缩放比例与所述编码范围的最大取值,确定缩放权重;
基于所述缩放权重及所述缩放基准值,确定初始缩放值;
基于所述缩放比例,确定修正值;
基于所述初始缩放值、所述修正值以及所述原始数据在所述同态加密中使用的加密参数,确定所述原始数据对应的所述编码数据。
一种可选的实施方式中,所述对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,包括:
对所述多组原始数据分别对应的所述目标数据进行多项式变换,得到所述多组原始数据对应的明文多项式;
对所述明文多项式进行同态加密,得到所述多组原始数据对应的密文多项式;
将所述多组原始数据对应的密文多项式作为所述多组原始数据对应的密文数据。
一种可选的实施方式中,所述方法还包括:
将所述密文数据发送至数据处理端,以使所述数据处理端对所述密文数据进行预设计算,得到所述密文数据对应的密文计算结果;
对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果,包括:
对所述密文计算结果进行同态解密,得到所述密文计算结果对应的明文计算结果;
基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果,包括:
针对所述明文计算结果中的各个待处理数据,分别对所述待处理数据与所述同态加密中使用的各个加密参数进行取模运算,得到所述待处理数据对应的初始还原结果;
基于各个初始还原结果对应的取值范围,以及所述初始还原结果对应的加密参数,确定所述初始还原结果对应的目标还原结果;
将各个目标还原结果作为对所述多组原始数据进行所述预设计算的目标计算结果。
第二方面,本公开实施例还提供一种应用于同态加密系统的数据编码装置,包括:
获取模块,用于获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配;
缩放模块,用于基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;
合并模块,用于针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;
加密模块,用于对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
一种可选的实施方式中,所述获取模块在确定各个所述原始数据对应的编码范围及缩放比例时,用于:
基于所述原始数据对应的输入数据范围与所述编码处理的预计输出数据范围中的最大取值,确定所述编码范围;以及
基于所述同态加密中使用的最小加密参数,确定所述缩放比例。
一种可选的实施方式中所述缩放模块具体用于:
基于所述原始数据以及所述编码范围的最小取值,确定缩放基准值;
基于所述缩放比例与所述编码范围的最大取值,确定缩放权重;
基于所述缩放权重及所述缩放基准值,确定初始缩放值;
基于所述缩放比例,确定修正值;
基于所述初始缩放值、所述修正值以及所述原始数据在所述同态加密中使用的加密参数,确定所述原始数据对应的所述编码数据。
一种可选的实施方式中,所述加密模块具体用于:
对所述多组原始数据分别对应的所述目标数据进行多项式变换,得到所述多组原始数据对应的明文多项式;
对所述明文多项式进行同态加密,得到所述多组原始数据对应的密文多项式;
将所述多组原始数据对应的密文多项式作为所述多组原始数据对应的密文数据。
一种可选的实施方式中,所述装置还包括解密模块,用于:
将所述密文数据发送至数据处理端,以使所述数据处理端对所述密文数据进行预设计算,得到所述密文数据对应的密文计算结果;
对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述解密模块在对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果时,包括:
对所述密文计算结果进行同态解密,得到所述密文计算结果对应的明文计算结果;
基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述解密模块在基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果时,用于:
针对所述明文计算结果中的各个待处理数据,分别对所述待处理数据与所述同态加密中使用的各个加密参数进行取模运算,得到所述待处理数据对应的初始还原结果;
基于各个初始还原结果对应的取值范围,以及所述初始还原结果对应的加密参数,确定所述初始还原结果对应的目标还原结果;
将各个目标还原结果作为对所述多组原始数据进行所述预设计算的目标计算结果。
第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的应用于同态加密系统的数据编码方法、装置、电子设备及存储介质,利用编码范围及缩放比例对原始数据进行缩放,得到编码数据,然后对编码数据进行合并,得到具有同态运算属性的目标数据,最后再对目标数据进行同态加密,得到原始数据对应的密文数据,使一组密文数据中能够包含更多的原始数据,降低加密文本的膨胀程度,从而在保证数据有效性不受影响的情况下,提高加密的效率,相应地,解密的效率也会同步提升。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种应用于同态加密系统的数据编码方法的流程图;
图2示出了本公开实施例所提供的另一种应用于同态加密系统的数据编码方法的流程图;
图3示出了本公开实施例所提供的一种应用于同态加密系统的数据编码装置的示意图;
图4示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
同态加密是一种隐私保护的数据处理技术,对数据进行同态加密后得到的密文结果可以进行同态运算,得到的计算结果在解密后与原数据进行相同计算的结果一致,该特性能够有效保护数据安全,比如,在数据提供方需要将数据发送至数据处理方进行计算时,数据提供方可以先对数据进行同态加密,数据处理方法利用加密后的数据进行计算并返回给数据提供方,数据提供方仅需要对返回的数据进行解密,即可得到加密前的数据经过数据处理方计算后的结果,原始数据也没有泄漏给数据计算方。然而,同态加密的方法通常需要较大的计算开销,由于同态加密的特性,加密后得到的密文尺寸也会膨胀较多,占用更多的存储空间,对其计算时也需要更多的计算资源。
基于上述研究,本公开提供了一种应用于同态加密系统的数据编码方法,利用编码范围及缩放比例对原始数据进行缩放,得到编码数据,然后对编码数据进行合并,得具有同态运算属性的目标数据,最后再对目标数据进行同态加密,得到原始数据对应的密文数据,使一组密文数据中能够包含更多的原始数据,降低加密文本的膨胀程度,提高加密与解密的效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种应用于同态加密系统的数据编码方法进行详细介绍,本公开实施例所提供的应用于同态加密系统的数据编码方法的执行主体一般为具有一定计算能力的计算机设备。在一些可能的实现方式中,该应用于同态加密系统的数据编码方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的应用于同态加密系统的数据编码方法的流程图,所述方法包括步骤S101~S104,其中:
S101、获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配。
该步骤中,可以先获取待加密数据,并对待加密数据进行分组,得到多组原始数据,各组原始数据中可以包含有多个字节,一个字节可以视为一个原始数据,在获取到多组原始数据后,可以确定各个原始数据对应的编码范围及缩放比例,其中,编码范围是指原始数据在完成缩放后所处的范围,缩放比例可以为对原始数据进行缩放的权重,可以是一个比值。编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,缩放比例与同态加密中使用的加密参数相匹配。
示例性的,针对各个原始数据,可以基于该原始数据对应的输入数据范围与编码处理的预计输出数据范围中的最大取值,确定编码范围;编码范围的最大取值与编码范围的最小取值之和等于0;基于同态加密中使用的最小加密参数,确定缩放比例。
其中,原始数据可以经过预先的归一化处理,使得原始数据的输入数据范围在一个固定的区间,如[-1,1],同组原始数据中各个原始数据的编码范围可以相同,也可以不同。针对不同原始数据设置不同的编码范围,可以使编码处理的精确度更高。
在实际应用场景中,每组原始数据中的字节数量可以为m个,可以预选出m个互质的整数{p1,p2,…pm},作为同态加密中使用的加密参数,并设置同态加密的明文模数为p=∏i∈{1,…,m}pi,对于每个pi,可以将一个浮点数(即实数)xi通过一个预设的编码范围和一个缩放比例编码到(即编码到{0,1,…,pi-1})中,其中xi可以为需要缩放的原始数据,可以设置编码范围为[-zi,zi],缩放比例为Δi。
其中,在设备编码范围时,需要使原始数据和最终结果的范围为编码范围的自己,示例性的,当输入数据范围是[-ai,ai],编码处理的预计输出数据范围为[-bi,bi]时,可以设置zi=max(ai,bi)。
在设置缩放比例Δi时,需要保证Δi<pi,示例性的,可以设置对于所有的pi都选取相同的缩放比例Δ1=…=Δm=min(p1,…,pm)-1,这样,可以在编码多个相同的原始数据时,节省后续模数计算的开销。
S102、基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值。
该步骤中,针对各组中的任一原始数据,可以利用其对应的编码范围即缩放比例对原始数据进行编码处理,得到原始数据对应的编码数据。具体的,可以先基于原始数据,以及编码范围的最小值,确定缩放基准值,再基于缩放比例,及编码范围的最大取值,确定缩放权重,然后,基于缩放权重及缩放基准值确定初始缩放值,之后,基于初始缩放值、修正值,以及原始数据在所述同态加密中使用的加密参数,确定原始数据对应的所述编码数据。
示例性的,可以基于下述公式对原始数据进行编码处理:
其中,mod pi表示使用pi作为模数进行取模运算,输出{0,1,…,pi-1}中的一个整数,pi即为上述加密参数。即为编码处理后得到的编码数据,通过对原始数据、编码范围的最小取值求差,得到缩放基准值(xi-(-zi))=(xi+zi),然后确定缩放比例与编码范围的最大取值的二倍求比,得到缩放权重再将缩放权重与缩放基准值求积,得到初始缩放值然后使用缩放比例除以2作为修正值最后利用初始缩放值减去修正值并进行模运算,得到编码数据。
S103、针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性。
通过上述编码处理,使得原始数据变为了符合中国剩余定理要求的整数,之后,可以利用中国剩余定理对各组原始数据进行合并,中国剩余定理又称中国余数定理或孙子定理,用于解决同余方程组问题,可以将m个小数域Zpi中的数据{xi|1≤i≤m}转化为大整数域Zp中的整数X,并且,在大整数域Zp内进行的加法、乘法运算,相当于对每个小数域Zpi的数据分别进行加法、乘法运算,符合同态运算的特征,这样,对Zp进行同态加密后,再进行同态运算,就相当于对Zpi中各个数据进行同态运算。
上述Zpi与Zp共同组成一个剩余数系统,该系统由一定数量互质的模数组成{xi|1≤i≤m},并对应一个更大的模数p=∏i∈{1,…,m}pi,由正逆两种运算,其中,正运算为Zp内的整数X可以通过模运算转换为小数域中的数据xi=X mod pi,逆运算则为上述通过中国剩余定理的运算。
其中,经过中国剩余定理的运算得到的目标数据支持同态运算属性,同态运算属性即变换后的数据经过运算得到的结果,再经过逆变换,与变换前的数据经过相同运算的结果一致。
这样,就将一组原始数据中的各个原始数据编码为了一个整数,减少了同态加密需要输入的数据量,便于后续的同态加密。
S104、对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
该步骤中,可以对得到的多个目标数据进行同态加密,示例性的,同态加密的方法可以使用取模加密系统,如BGV密码系统,将明文与密文标识为N阶多项式,明文多项式系数使用模数p取模,密文多项式使用另一个模数q取模,通常,q>>p,一个n阶明文/密文多项式可以编码n个整数数据,并支持加法、乘法、步长变换的同态运算,由于本公开实施例已经预先将多个原始数据编码处理至一个目标数据中,因此,对目标数据的同态加密得到的结果中,实际加密的数据量是m*n个,同样数量的原始数据加密后的密文数据量更少。
示例性的,可以先分别对多组原始数据分别对应的目标数据进行多项式变换,利用同态加密的加密规则,得到多组原始数据对应的明文多项式,其中,一个明文多项式中可以对应有多组原始数据,根据多项式变换的规则,可以得到一个或多个明文多项式,然后,根据加密规则对明文多项式进行同态加密,得到多组原始数据对应的密文多项式,最后,可以将原始数据对应的密文多项式作为多组原始数据对应的密文数据。
在得到密文数据之后,即可对密文数据进行使用,比如,可以将密文数据发送至数据处理端,由数据处理端利用预设的计算规则或神经网络模型等方式进行预设计算,得到密文数据对应的密文计算结果,然后,通过对数据处理端反馈的密文计算结果进行解密,能够得到对多组原始数据进行预设计算的目标计算结果,相当于直接对原始数据进行上述预设计算。
与加密过程相似,对密文计算结果的解密过程中需要对数据进行编码处理的逆运算,示例性的,可以先利用同态加密对应的解密方式,对密文计算结果进行同态解密,得到密文计算结果对应的明文计算结果,然后,利用编码范围即缩放比例对明文计算结果进行还原,得到目标计算结果。
对于同态解密过程,可以先进行加密的逆运算,得到明文多项式,再解密得到明文多项式中对应的各个待处理数据。
进一步的,针对明文计算结果中的各个待处理数据,可以分别对待处理数据与同态加密中使用的各个加密参数进行取模运算,得到待处理数据对应的初始还原结果;然后,基于各个初始还原结果对应的取值范围,以及初始还原结果对应的加密参数,确定初始还原结果对应的目标还原结果;最后将各个目标还原结果作为对多组原始数据进行预设计算的目标计算结果。
示例性的,可以根据以下公式对明文计算结果进行取模运算:
之后,可以通过上述编码范围[-zi,zi]及缩放比例为Δi,利用以下公式对计算结果进行还原,得到目标计算结果yi:
本公开实施例提供的应用于同态加密系统的数据编码方法、装置、电子设备及存储介质,利用编码范围及缩放比例对原始数据进行缩放,得到编码数据,然后对编码数据进行合并,得到能够进行同态运算的目标数据,最后再对目标数据进行同态加密,得到原始数据对应的密文数据,使一组密文数据中能够包含更多的原始数据,降低加密文本的膨胀程度,从而在保证数据有效性不受影响的情况下,提高加密的效率,相应地,解密的效率也会同步提升。
参见图2所示,为本公开实施例提供的另一种应用于同态加密系统的数据编码方法的流程图,该方法首先确定原始数据xi对应的编码范围[-zi,zi]及缩放比例为Δi,并将其利用加密参数pi编码处理,得到编码数据再利用中国剩余定理进行合并,得到目标整数Xk。再通过同态加密的多项式数据编码方式,将整数Xk编码到明文多项式中,并加密得到密文多项式。在同态加密系统中,一个明文多项式可编码n个整数,并且在密文多项式中,存在n个数据槽{slot 1,…,slot n}分别对应n个编码后的整数{X1,…,Xn}。这样,一组原始数据被编码为一个目标数据,多个目标数据再合并到一个明文多项式中,多个明文多项式被加密为多个密文多项式,相较于其他加密方式,本公开实施例中相同的密文多项式可以包含更多的原始数据。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与应用于同态加密系统的数据编码方法对应的应用于同态加密系统的数据编码装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用于同态加密系统的数据编码方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图3所示,为本公开实施例提供的一种应用于同态加密系统的数据编码装置的示意图,所述装置包括:
获取模块310,用于获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配;
缩放模块320,用于基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;
合并模块330,用于针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;
加密模块340,用于对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
一种可选的实施方式中,所述获取模块310在确定各个所述原始数据对应的编码范围及缩放比例时,用于:
基于所述原始数据对应的输入数据范围与所述编码处理的预计输出数据范围中的最大取值,确定所述编码范围;以及
基于所述同态加密中使用的最小加密参数,确定所述缩放比例。
一种可选的实施方式中,所述缩放模块320具体用于:
基于所述原始数据以及所述编码范围的最小取值,确定缩放基准值;
基于所述缩放比例与所述编码范围的最大取值,确定缩放权重;
基于所述缩放权重及所述缩放基准值,确定初始缩放值;
基于所述缩放比例,确定修正值;
基于所述初始缩放值、所述修正值以及所述原始数据在所述同态加密中使用的加密参数,确定所述原始数据对应的所述编码数据。
一种可选的实施方式中,所述加密模块340具体用于:
对所述多组原始数据分别对应的所述目标数据进行多项式变换,得到所述多组原始数据对应的明文多项式;
对所述明文多项式进行同态加密,得到所述多组原始数据对应的密文多项式;
将所述多组原始数据对应的密文多项式作为所述多组原始数据对应的密文数据。
一种可选的实施方式中,所述装置还包括解密模块350,用于:
将所述密文数据发送至数据处理端,以使所述数据处理端对所述密文数据进行预设计算,得到所述密文数据对应的密文计算结果;
对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述解密模块350在对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果时,包括:
对所述密文计算结果进行同态解密,得到所述密文计算结果对应的明文计算结果;
基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述解密模块350在基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果时,用于:
针对所述明文计算结果中的各个待处理数据,分别对所述待处理数据与所述同态加密中使用的各个加密参数进行取模运算,得到所述待处理数据对应的初始还原结果;
基于各个初始还原结果对应的取值范围,以及所述初始还原结果对应的加密参数,确定所述初始还原结果对应的目标还原结果;
将各个目标还原结果作为对所述多组原始数据进行所述预设计算的目标计算结果。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的应用于同态加密系统的数据编码方法,本公开实施例还提供了一种电子设备400,如图4所示,为本公开实施例提供的电子设备400结构示意图,包括:
处理器41、存储器42、和总线43;存储器42用于存储执行指令,包括内存421和外部存储器422;这里的内存421也称内存储器,用于暂时存放处理器41中的运算数据,以及与硬盘等外部存储器422交换的数据,处理器41通过内存421与外部存储器422进行数据交换,当所述电子设备400运行时,所述处理器41与所述存储器42之间通过总线43通信,使得所述处理器41执行以下指令:
获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配;
基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;
针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;
对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
一种可选的实施方式中,所述处理器41执行的指令中,所述确定各个所述原始数据对应的编码范围及缩放比例,包括:
基于所述原始数据对应的输入数据范围与所述编码处理的预计输出数据范围中的最大取值,确定所述编码范围;以及
基于所述同态加密中使用的最小加密参数,确定所述缩放比例。
一种可选的实施方式中,所述处理器41执行的指令中,所述基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据,包括:
基于所述原始数据以及所述编码范围的最小取值,确定缩放基准值;
基于所述缩放比例与所述编码范围的最大取值,确定缩放权重;
基于所述缩放权重及所述缩放基准值,确定初始缩放值;
基于所述缩放比例,确定修正值;
基于所述初始缩放值、所述修正值以及所述原始数据在所述同态加密中使用的加密参数,确定所述原始数据对应的所述编码数据。
一种可选的实施方式中,所述处理器41执行的指令中,所述对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,包括:
对所述多组原始数据对应的目标数据进行多项式变换,得到所述多组原始数据对应的明文多项式;
对各个所述明文多项式进行同态加密,得到所述多组原始数据对应的密文多项式;
将所述原始数据对应的密文多项式作为所述原始数据对应的密文数据。
一种可选的实施方式中,所述处理器41执行的指令中,还包括:
将所述密文数据发送至数据处理端,以使所述数据处理端对所述密文数据进行预设计算,得到所述密文数据对应的密文计算结果;
对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述处理器41执行的指令中,所述对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果,包括:
对所述密文计算结果进行同态解密,得到所述密文计算结果对应的明文计算结果;
基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果。
一种可选的实施方式中,所述处理器41执行的指令中,所述基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果,包括:
针对所述明文计算结果中的各个待处理数据,分别对所述待处理数据与所述同态加密中使用的各个加密参数进行取模运算,得到所述待处理数据对应的初始还原结果;
基于各个初始还原结果对应的取值范围,以及所述初始还原结果对应的加密参数,确定所述初始还原结果对应的目标还原结果;
将各个目标还原结果作为对所述多组原始数据进行所述预设计算的目标计算结果。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的应用于同态加密系统的数据编码方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的应用于同态加密系统的数据编码方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种应用于同态加密系统的数据编码方法,其特征在于,包括:
获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配;
基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;
针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;
对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
2.根据权利要求1所述的方法,其特征在于,所述确定所述原始数据对应的编码范围及缩放比例,包括:
基于所述原始数据对应的输入数据范围与所述编码处理的预计输出数据范围中的最大取值,确定所述编码范围;以及
基于所述同态加密中使用的最小加密参数,确定所述缩放比例。
3.根据权利要求1所述的方法,其特征在于,所述基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据,包括:
基于所述原始数据以及所述编码范围的最小取值,确定缩放基准值;
基于所述缩放比例与所述编码范围的最大取值,确定缩放权重;
基于所述缩放权重及所述缩放基准值,确定初始缩放值;
基于所述缩放比例,确定修正值;
基于所述初始缩放值、所述修正值以及所述原始数据在所述同态加密中使用的加密参数,确定所述原始数据对应的所述编码数据。
4.根据权利要求1所述的方法,其特征在于,所述对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,包括:
对所述多组原始数据分别对应的所述目标数据进行多项式变换,得到所述多组原始数据对应的明文多项式;
对所述明文多项式进行同态加密,得到所述多组原始数据对应的密文多项式;
将所述多组原始数据对应的密文多项式作为所述多组原始数据对应的密文数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述密文数据发送至数据处理端,以使所述数据处理端对所述密文数据进行预设计算,得到所述密文数据对应的密文计算结果;
对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果。
6.根据权利要求5所述的方法,其特征在于,所述对所述数据处理端反馈的所述密文计算结果进行解密,得到对所述多组原始数据进行所述预设计算的目标计算结果,包括:
对所述密文计算结果进行同态解密,得到所述密文计算结果对应的明文计算结果;
基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果。
7.根据权利要求6所述的方法,其特征在于,所述基于所述编码范围及缩放比例,对所述明文计算结果进行还原,得到对所述多组原始数据进行所述预设计算的目标计算结果,包括:
针对所述明文计算结果中的各个待处理数据,分别对所述待处理数据与所述同态加密中使用的各个加密参数进行取模运算,得到所述待处理数据对应的初始还原结果;
基于各个初始还原结果对应的取值范围,以及所述初始还原结果对应的加密参数,确定所述初始还原结果对应的目标还原结果;
将各个目标还原结果作为对所述多组原始数据进行所述预设计算的目标计算结果。
8.一种应用于同态加密系统的数据编码装置,其特征在于,包括:
获取模块,用于获取待进行同态运算的多组原始数据,并针对每组所述原始数据,确定所述原始数据对应的编码范围及缩放比例;所述编码范围与所述原始数据对应的输入数据范围和编码处理后的预计输出数据范围相匹配,所述缩放比例与同态加密中使用的加密参数相匹配;
缩放模块,用于基于所述原始数据对应的编码范围及缩放比例,对所述原始数据进行编码处理,得到所述原始数据对应的编码数据;所述编码数据的取值小于或等于所述编码范围的最大取值;
合并模块,用于针对每组所述原始数据对应的编码数据,将该组原始数据对应的编码数据进行合并得到该组原始数据对应的目标数据;所述目标数据支持同态运算属性;
加密模块,用于对所述多组原始数据各自对应的目标数据进行同态加密得到密文数据,所述密文数据用于进行同态运算。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的应用于同态加密系统的数据编码方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的应用于同态加密系统的数据编码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211403579.7A CN115765966B (zh) | 2022-11-10 | 2022-11-10 | 应用于同态加密系统的数据编码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211403579.7A CN115765966B (zh) | 2022-11-10 | 2022-11-10 | 应用于同态加密系统的数据编码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115765966A true CN115765966A (zh) | 2023-03-07 |
CN115765966B CN115765966B (zh) | 2025-02-28 |
Family
ID=85368120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211403579.7A Active CN115765966B (zh) | 2022-11-10 | 2022-11-10 | 应用于同态加密系统的数据编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115765966B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190363871A1 (en) * | 2017-12-15 | 2019-11-28 | Seoul National University R&Db Foundation | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
US20200097256A1 (en) * | 2016-12-20 | 2020-03-26 | Koninklijke Philips N.V. | A calculation device for encoded addition |
-
2022
- 2022-11-10 CN CN202211403579.7A patent/CN115765966B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200097256A1 (en) * | 2016-12-20 | 2020-03-26 | Koninklijke Philips N.V. | A calculation device for encoded addition |
US20190363871A1 (en) * | 2017-12-15 | 2019-11-28 | Seoul National University R&Db Foundation | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
Non-Patent Citations (2)
Title |
---|
傅海军;蔡斌;向宏;桑军;: "对称三进制编码的同态加密算术运算研究", 密码学报, no. 03, 15 June 2018 (2018-06-15) * |
邓家先;任玉莉;: "基于改进零树编码的图像联合压缩加密算法", 光子学报, no. 01, 15 January 2013 (2013-01-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN115765966B (zh) | 2025-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253234A1 (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
US20210256165A1 (en) | Protecting parallel multiplication operations from external monitoring attacks | |
CN112152788A (zh) | 用于后量子密码安全xmss和lms基于散列的签名和验证的加速器 | |
CN112152793A (zh) | 用于认证路径计算的奇数索引预计算 | |
JP2008293034A (ja) | タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置 | |
CN108923907B (zh) | 一种基于模容错学习问题的同态内积方法 | |
Lemire et al. | Strongly universal string hashing is fast | |
CN112152784A (zh) | 用于基于散列的签名算法的并行处理技术 | |
CN113452527A (zh) | 用于有状态的基于散列的签名的鲁棒状态同步 | |
CN107534549B (zh) | 可读存储介质、用于数据流字块加密的方法及系统 | |
CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
CN116545621A (zh) | 密钥交换过程中椭圆曲线多标量乘快速实现方法及系统 | |
EP4133682A1 (en) | Methods and systems for compressed encryption | |
CN109951275B (zh) | 密钥生成方法、装置、计算机设备及存储介质 | |
CN115765966A (zh) | 应用于同态加密系统的数据编码方法及装置 | |
CN111967026A (zh) | 兑换码的加密和解密方法及装置及计算机设备 | |
CN117764189A (zh) | 经由经掩蔽压缩比较保护多项式拒绝 | |
CN113722746B (zh) | 电缆施工图纸的混沌加密方法及系统 | |
WO2023232951A1 (en) | Method and circuit for securely mapping a masked variable | |
RU2708439C1 (ru) | Вычислительное устройство и способ | |
CN116361344A (zh) | 数据查询方法、装置、设备及介质 | |
CN116846557A (zh) | 数据加密方法、装置、计算机设备和存储介质 | |
CN114499860A (zh) | 签名公钥压缩方法、装置、计算机设备及存储介质 | |
CN103973446B (zh) | 用于验证电子签名的方法和数据处理设备 | |
US20170352296A1 (en) | Encoding device |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |