CN110519039B - 一种数据的同态处理方法、设备和介质 - Google Patents
一种数据的同态处理方法、设备和介质 Download PDFInfo
- Publication number
- CN110519039B CN110519039B CN201910688259.2A CN201910688259A CN110519039B CN 110519039 B CN110519039 B CN 110519039B CN 201910688259 A CN201910688259 A CN 201910688259A CN 110519039 B CN110519039 B CN 110519039B
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- ciphertext
- group
- result
- 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.)
- Active
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
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种数据的同态处理方法。本发明的技术方案,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组并输出。在获得密文结果组后,根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果。以取模运算作为加密函数,其运算处理简单,加密效率高,可以满足大量数据的加密处理需求。而且,通过取模运算可以获得一个明文对应多个密文的加密结果,给密文增加一定的复杂度,提高解密的难度,有效确保明文的安全性。另外,基础密钥和解密密钥不需要随同密文一起传输,可以防止在数据传输或计算处理过程中发生信息泄露,避免明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。
Description
技术领域
本发明涉及数据加密技术领域,具体涉及一种数据的同态处理方法。
背景技术
现今,数据处理的需求越来越大。对一些不具备大量的数据处理能力的用户来说,使用云计算服务可以有效地解决大量数据的复杂计算问题。但是,现有技术中,用户需要把原始数据上传至云计算服务商,才能够获得准确的数据计算结果。在原始数据传输或计算过程中,有可能造成原始数据泄露,影响用户的数据隐私性,无法对原始数据进行有效地保护。
同态加密算法可以很好的解决上述问题。同态加密算法是一种可以对密文进行计算处理,但仍可以恢复明文的加密算法。例如,对经过同态加密的数据即密文进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据即明文得到的输出结果一样。
但是,现有的同态加密算法复杂度高,其实用性不强。而且,现有的同态加密算法构造的加密函数和解密函数较为复杂,无法满足大量数据的加密计算处理要求。因此,需要一种简单且能够满足大量数据隐私保护需求的同态加密算法。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据的同态处理方法。
依据本发明的一个方面,提供了一种数据的同态处理方法,应用于客户端侧,该方法包括:
生成包含预设数量的加密密钥的加密密钥组;
根据所述加密密钥组生成一个基础密钥和与所述加密密钥组对应的解密密钥组;
接收输入的明文,将明文对所述加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组并输出;
接收对所述密文组进行计算处理得到的密文结果组,根据所述基础密钥和所述解密密钥组完成对所述密文结果组的解密,获得所述明文的处理结果。
可选地,所述生成包含预设数量的加密密钥的加密密钥组包括:
确定计算维度,根据所述计算维度生成包含对应数量的加密密钥的加密密钥组。
可选地,所述根据所述计算维度生成包含对应数量的加密密钥的加密密钥组包括:
从素数集合中选取对应数量的素数生成加密密钥组。
可选地,所述加密密钥组中的各加密密钥均小于明文。
可选地,所述根据所述加密密钥组生成一个基础密钥和解密密钥组包括:
将所述加密密钥组中所有加密密钥的乘积作为基础密钥;所述基础密钥大于明文。
可选地,所述根据所述加密密钥组生成一个基础密钥和解密密钥组包括:
将所述基础密钥分别除以各加密密钥获得密钥商组;将密钥商组中的各密钥商的倍数对对应的加密密钥进行取模运算;若取模运算结果为1,则将该密钥商的倍数作为对应的加密密钥的解密密钥;获得各解密密钥生成与所述加密密钥组对应的所述解密密钥组。
可选地,所述根据所述基础密钥和所述解密密钥组完成对所述密文结果组的解密,获得所述明文的处理结果包括:
计算所述密文结果组中的各密文结果与所述解密密钥组中对应的解密密钥的乘积,获得所有乘积的和;
将所述所有乘积的和对所述基础密钥进行取模运算,将所述取模运算的结果作为所述明文的处理结果。
可选地,所述计算维度不小于3。
依据本发明的再一方面,提供了一种数据的同态处理***,该***包括一个或多个上述任一项所述的同态处理装置,以及一个或多个服务器;
所述服务器,用于对密文组进行计算处理,获得密文结果组并返回至所述同态处理装置。
依据本发明的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明的技术方案,通过生成包含预设数量的加密密钥的加密密钥组;根据加密密钥组生成一个基础密钥和与加密密钥组对应的解密密钥组;接收输入的明文,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组并输出;接收对密文组进行计算处理得到的密文结果组,根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果。以取模运算作为加密函数,其运算处理简单,加密效率高,可以满足大量数据的加密处理需求。而且,通过取模运算可以获得一个明文对应多个密文的加密结果,给密文增加一定的复杂度,提高解密的难度,有效确保明文的安全性。另外,基础密钥和解密密钥不需要随同密文一起传输,可以防止在数据传输或计算处理过程中发生信息泄露,避免明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种数据的同态处理方法的流程示意图;
图2示出了根据本发明一个实施例的一种数据的同态处理装置的结构示意图;
图3示出了根据本发明一个实施例的一种数据的同态处理***的结构示意图;
图4示出了根据本发明一个实施例的电子设备的结构示意图;
图5示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
背景技术中提出了现有的同态加密算法复杂度高,也就是其构造的加密函数和解密函数较为复杂,无法满足大量数据的加密需求的问题。为了解决该问题,本发明的同态处理方法将取模运算作为加密函数,结合孙子定理中的基于同余方程组的解法求解基础密钥和解密密钥,构造出相应的解密函数,实现数据的同态处理。以取模运算为加密函数,其运算处理简单,加密效率高,可以满足大量数据的加密处理需求。下面对本发明的技术方案进行详细的介绍。
图1示出了根据本发明一个实施例的一种数据的同态处理方法的流程示意图。如图1所示,该方法应用于客户端侧,具体包括:
步骤S110,生成包含预设数量的加密密钥的加密密钥组;根据加密密钥组生成一个基础密钥和与加密密钥组对应的解密密钥组。
本实施例的数据同态处理方法基于孙子定理的思想,构造加密函数和解密函数。具体地,加密函数通过明文对加密密钥进行取模运算,以取模运算结果作为密文,实现明文的加密效果。而以预设数量的加密密钥组成的加密密钥组,可以增加密文的数量,给密文增加一定的复杂度。预设数量可以预先设置,也可以由用户实时输入,增加其灵活性。
解密函数需要根据加密密钥组中的各加密密钥对解密密钥组和基础密钥进行求解,解密密钥组中的各解密密钥与加密密钥组中的各加密密钥一一对应。基础密钥和解密密钥组中的各解密密钥的求解基于同余方程组的解法进行求解。
在一个具体的实施例中,为了进一步确保加密密钥、解密密钥和基础密钥的隐私安全,每次生成的密钥均区别于之前生成的密钥。也就是说,每次生成的密钥均是新的密钥,这样就可以有效的确保密钥的隐私安全。当然,在其他的实施例中,为了方便,也可以使用固定的密钥组合,定期对密钥组合进行更新,确保密钥的隐私安全。
步骤S120,接收输入的明文,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组并输出。
明文是需要被加密的数据。明文经过加密处理得到密文,将密文上传至服务器使用其提供的计算服务,这样就可以防止明文在传输或使用计算服务过程中发生信息泄露,保护数据安全。在该步骤中,对明文进行加密的具体方式为,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组进行输入。
在一个具体的实施例中,明文数据为M,加密密钥组具有3个不重复的加密密钥[EK1,EK2,EK3]。明文M对各个加密密钥分别进行取模运算,如明文 M对加密密钥EK1的取模运算结果为C1,对加密密钥EK2的取模运算结果为 C2,对加密密钥EK3的取模运算结果为C3,得到运算结果[C1,C2,C3]。由于运算结果经过取模运算的加密,可以将该运算结果[C1,C2,C3]作为密文组直接输出,也就是密文组为[C1,C2,C3]。当然,为了数据传输方便,也可以将运算结果[C1,C2,C3]进一步处理为一个密文数据,如将三个密文顺序排列成一个密文数据,将密文数据输出上传至服务器,简化数据传输的难度,提高数据处理效率。
该加密方式,可以使一个明文可以对应多个密文,给密文增加一定的复杂度,从而提高解密的难度,确保明文安全。该加密函数可以采用软件算法实现,也可以采用由硬件模块实现。
在一个具体的实施例中,采用硬件模块实现的具体方式为,采用模运算模块完成一个明文对多个加密密钥的取模运算。具体地,可以采用一个模运算模块逐一实现明文对各加密密钥进行取模运算,顺序获得多个密文构成密文组。也可以采用多个模运算模块并行进行取模运算,如3个模运算模块同时实现明文对3个加密密钥的取模运算,同时获得3个密文构成密文组。
步骤S130,接收对密文组进行计算处理得到的密文结果组,根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果。
在上述步骤S120中,密文组输出至服务器中,服务器对密文组进行计算处理,具体为服务器对密文组中的各密文均执行相同的计算处理,这样就获得与密文组一一对应的密文结果组。如上述具体的例子中服务器对密文组 [C1,C2,C3]中的每一个密文均执行用户需要的计算处理,获得包含3个密文结果的密文结果组返回。由于对密文解密可以获得明文,也就是说密文中包含有明文的数据信息。同样的,密文的计算结果中也包含有明文的计算结果的数据信息。
对密文结果组的具体解密方式为,使用基础密钥和解密密钥对密文结果组进行同态解密,获得密文结果组中包含的明文的计算处理结果。由于加密函数根据孙子定理中的取模运算构造而成,因此对密文结果组进行同态解密与同余方程组的求解思想一致。也就是说,该同态解密是基于同余方程组的求解方法获得的解密方式。
由于只需要将密文组上传至服务器进行计算处理,而不需要将同时传输加密密钥、基础密钥和解密密钥,因此可以有效避免加密密钥、基础密钥和解密密钥的信息泄露,进一步防止明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。
在一个具体的实施例中,明文的加密过程和密文结果组的解密过程可以由同一个对象处理实现,也可以由不同的对象处理实现。例如,用户A拥有明文M,用户A对明文M进行加密后将密文组发送至服务器。服务器完成密文组的计算,将相应的密文结果组返回至用户A,用户A对其进行解密以获得对应的明文的计算处理结果。
而在另外的实施例中,用户A拥有明文M,而用户B需要获取明文M 的计算处理结果。用户A对明文M进行加密后将密文组发送至服务器,同时将相应的基础密钥和解密密钥发送至用户B。服务器完成密文组的计算,将相应的密文结果组返回至用户B,用户B对其进行解密以获得对应的明文的计算处理结果。
本发明实施例提供的数据的同态处理方法,首先对数据进行加密,利用密文组中的密文数据完成计算处理,避免明文发生信息泄露,或被破解,确保明文的保密性。另外,对密文的计算结果进行同态解密,也就是对密文的计算处理结果进行解密,以获得相应的明文的计算处理结果。
本发明的技术方案,以取模运算作为加密函数,其运算处理简单,加密效率高,可以满足大量数据的加密处理需求。而且,通过取模运算可以获得一个明文对应多个密文的加密结果,给密文增加一定的复杂度,提高解密的难度,有效确保明文的安全性。另外,基础密钥和解密密钥不需要随同密文一起传输,可以防止在数据传输或计算处理过程中发生信息泄露,避免明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。
在本发明的一个实施例中,如图1所示的方法中,步骤S110中的生成包含预设数量的加密密钥的加密密钥组包括:确定计算维度,根据计算维度生成包含对应数量的加密密钥的加密密钥组。
计算维度确定了加密密钥的数量,例如计算维度为3,则生成3个加密密钥,该3个加密密钥构成一个加密密钥组。计算维度越高,加密密钥越多,经过加密处理的数据的保密性更好。计算维度可以采用默认数值,也可以由用户确定并输入。
在一个具体的例子中,计算维度为3,则根据计算维度生成的加密密钥组为[EK1,EK2,EK3],根据加密密钥组中的各加密密钥生成基础密钥N,解密密钥组[DK1,DK2,DK3]。为了获得更高的数据保密性,计算维度应不小于3。同时,计算维度越高,也可以提高同态处理结果的可信度。
在本发明的一个实施例中,上述方法中,根据计算维度生成包含对应数量的加密密钥的加密密钥组包括:从素数集合中选取对应数量的素数生成加密密钥组。
本实施例提供了生成加密密钥组的具体实现方式。具体地,孙子定理中的一般对素数进行求余运算,基于该思想,本实施例提供的加密密钥组中的各加密密钥也是由素数组成。也就是说,各加密密钥均为素数,且各加密密钥均不重复,以确保能够实现数据的同态处理。
加密密钥的数量由计算维度确定,当计算维度由用户进行输入时,加密密钥的数量具有随机性。通过设置随机数发生器,用于生成若干个随机数,并对若干个随机数进行预处理,如去除大于明文的随机数。对若干个随机数进行素数验证,以及根据计算维度进行密钥筛选,确定符合条件的对应数量的加密密钥。如上述实施例中,加密密钥[EK1,EK2,EK3]中的EK1、EK2、EK3均为素数,且EK1、EK2、EK3均不相同。
在本发明的一个实施例中,上述方法中,加密密钥组中的各加密密钥均小于明文。
本发明的同态处理方法,将取模运算作为加密函数,同时基于同余方程组的求解构造相应的解密函数。该同态处理方法,对加密密钥具有一定的要求。符合要求的加密密钥组,以根据其生成的解密密钥组和基础密钥,对密文结果组进行解密,才能获得更加准确的解密结果,可信度也越高。具体的要求为,各加密密钥均小于明文;基础密钥大于明文。这样,在采用取模运算加密的过程中,所获得的密文才能小于明文,防止解密结果发散,确保解密结果准确。
在本发明的一个实施例中,如图1所示的方法中,步骤S110中的根据加密密钥组生成一个基础密钥和解密密钥组包括:将加密密钥组中所有加密密钥的乘积作为基础密钥;基础密钥大于明文。
本实施例提供了生成基础密钥的具体实现方式。结合孙子定理中同余方程组的解法,确定基础密钥为加密密钥组中各加密密钥的乘积,如上述例子中基础密钥N=EK1×EK2×EK3。
在本发明的一个实施例中,如图1所示的方法中,步骤S110中的根据加密密钥组生成一个基础密钥和解密密钥组包括:将基础密钥分别除以各加密密钥获得密钥商组;将密钥商组中的各密钥商的倍数对对应的加密密钥进行取模运算;若取模运算结果为1,则将该密钥商的倍数作为对应的加密密钥的解密密钥;获得各解密密钥生成与加密密钥组对应的解密密钥组。
本实施例提供了生成解密密钥组的具体实现方式。结合孙子定理中同余方程组的解法,解密密钥组中的各解密密钥需要结合基础密钥和加密密钥进行确定。具体地,解密密钥为对对应加密密钥的取模运算结果为1,而对其余加密密钥的取模运算结果为0的数。例如,解密密钥DK1需要同时满足 DK1≡1(modEK1)DK1≡0(modEK2)DK1≡0(modEK3),解密密钥DK2需要同时满足 DK2≡0(modEK1)DK2≡1(modEK2)DK2≡0(modEK3),其余解密密钥同理。加密密钥和解密密钥中均带有标识,如加密密钥组和解密密钥组通过数组存储,则数组中各个数据的下标即是密钥的标识,通过该标识匹配对应的加密密钥和解密密钥。
而由于加密密钥均为素数,则对其余加密密钥的取模运算结果为0的数即为其余加密密钥的公倍数。因此,将基础密钥N除以对应的加密密钥得到的密钥商,就是其余加密密钥的最小公倍数。在实际操作过程中,由于除法运算的较为复杂,且容错率较差,因此一般采用乘法运算对其进行代替。也就是说,其余加密密钥的最小公倍数,采用乘法运算将对应加密密钥以外的所有加密密钥进行乘积,如加密密钥EK1对应的密钥商,实际操作中的计算为EK2×EK3,而并非使用基础密钥计算N/EK1。若最小公倍数对对应加密密钥的取模运算结果为1,则该最小该公倍数即是对应加密密钥的解密密钥。若否,则将该最小公倍数依次增大一定的倍数获得公倍数,直至找到一个公倍数对对应的加密密钥的取模运算结果为1,则确定该公倍数为对应加密密钥的解密密钥。
在一个具体的例子中,计算维度为3,经过素数验证和密钥筛选后,确定加密密钥组为[3,5,7]。为了确保同态处理的准确性,加密密钥尽量避免重复,也就是说,各个加密密钥均不相同。根据加密密钥组确定的基础密钥 N为105。
确定解密密钥组时,首先确定密钥商组,将基础密钥分别除以各加密密钥,即105/[3,5,7]获得密钥商组[35,21,15]。在实际操作中,直接采用乘法运算,也就是密钥商组为[5×7,3×7,3×5]=[35,21,15]。当存在任意正整数A,使得(35*A)mod3=1,则(35*A)为加密密钥3对应的解密密钥。为了便于求解(35*A),在硬件电路层面,可以采用乘法逆元模块进行求解。也就是直接求取35mod3的乘法逆元,获得A的值,从而实现35*A的求解。当然,在软件算法层面,可以从1开始依次增大A的数值,计算(35*A)mod3=1 进行求解。A的取值顺序依次增大,为1,2,3...。在该实施例中,当A=2时, 35*A=70对3的取模运算结果为1,因此确定加密密钥3对应的解密密钥为 70。
同样的,当存在任意正整数B,使得(21*B)mod5=1,则21*B为加密密钥5对应的解密密钥。在该实施例中,当B等于1时,21对加密密钥5的取模运算结果为1,因此确定加密密钥5对应的解密密钥为21。采用同样的方法确定加密密钥7对应的解密密钥为15,从而确定加密密钥组[3,5,7]对应的解密密钥组为[70,21,15]。
从上述可知,确定加密密钥、基础密钥和解密密钥需要重复多次进行乘法运算和取模运算。在一个具体的实施例中,可以采用单运算模块或运算阵列模块实现多个取模运算。
具体地,单运算模块由单运算IP、选通器和循环控制器组成,单运算IP 由一个乘运算模块、一个加运算模块和一个模运算模块构成,逐一完成各解密密钥的求解。
运算阵列模块由运算IP阵列、选通器和循环控制器组成,可以进行串行、并行、串并行结合三种操作模式,如以一个乘运算模块、一个加运算模块和一个模运算模块为一组,运算IP阵列中设置3组计算阵列,则可以同时完成 3个解密密钥的求解。
单运算模块成本低,计算效率也低;运算阵列模块成本高,计算效率高,具体可以结合需求选取。
在本发明的一个实施例中,如图1所示的方法中,步骤S110中的根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果包括:计算密文结果组中的各密文结果与解密密钥组中对应的解密密钥的乘积,获得所有乘积的和;将所有乘积的和对基础密钥进行取模运算,将取模运算的结果作为明文的处理结果。
本实施例提供了对密文结果组进行同态解密的具体实现方式。具体地,用户需要获取明文M进行f(x)=2x+5的计算处理结果。服务器对密文组中的各个密文均进行上述计算处理,获得密文结果组。如明文23经过加密密钥组 [3,5,7]获得的密文组为[2,3,2]。服务器经过f(x)=2x+5的计算处理,获得的密文结果组为[9,11,9]。
采用基础密钥和解密密钥组对密文结果组进行解密。具体地,首先计算对应的密文结果和解密密钥的乘积,如第一密文结果9对应的解密密钥为70,其乘积为630。第二密文结果11对应的解密密钥为21,其乘积为231。第三密文结果9对应的解密密钥为15,其乘积为135。密文结果组中各密文结果均带有标识,如数字下标,通过标识匹配对应的解密密钥。
然后计算所有乘积的和,即630+231+135=996。将该所有乘积的和对基础密钥进行取模运算,996mod105=51,该取模运算结果51即为明文23经过 f(x)=2x+5的计算处理结果。
采用该同态解密方式,不需要将明文上传至服务器,也能够准确获得明文的计算处理结果,有效地保护了用户的隐私数据安全。
需要说明的是,为了确保同态解密结果的正确性,对密文组进行的计算处理仅限于算术运算处理,或任何能够分解为算术运算的计算处理也可以采用本实施例的同态加密和同态解密方法。
在本发明的一个实施例中,如图1所示的方法中,步骤S110中的计算维度不小于3。
在上述实施例中,为了获得更高的数据保密性,同时提高同态处理结果的可信度,计算维度应不小于3,如确定计算维度为4、5或10等。当然,计算维度越高,同态处理的所占用的资源也越多,处理效率也相应降低。在实际操作中,计算维度为3能够获得较高的处理效率和准确的同态处理结果。
在本发明的一个实施例中,如图1所示的方法中,步骤S120中的根据运算结果确定密文组并输出包括:对运算结果进行传统加密,将加密结果作为密文组并输出。
在本实施例中,明文对加密密钥组中的各加密密钥进行取模运算的运算结果,需要进一步加密,以该加密结果作为密文组。具体地,对取模运算结果进一步进行传统加密,将传统加密后的加密结果作为密文组输出。该传统加密是现有技术中常用的加密技术,例如古典加密、凯撒加密或单表代替加密等,可以选用其中的一种或多种对密文组进行进一步加密。
在同态加密中,服务器不需要对密文组进行解密,而是直接对密文组进行计算处理。但是经过传统加密的密文组,服务器需要对该加密结果进行对应的传统解密,获得取模运算的结果后,再对取模运算结果进行计算处理。同时,服务器在返回密文结果组时,需要采用对密文结果组进行相同的传统加密,以返回经过进一步加密的密文结果组。
由于传统加密经过验证,可以确保数据在传输链路中的保密性,因此对密文组设置传统加密,可以保证密文组在传输链路过程中的数据安全。
在本发明的一个实施例中,如上述方法中,传统加密包括如下的至少一种:古典加密;凯撒加密;单表代替加密。
具体地,古典加密采用代替和置换两种该方式,例如重新对密文组进行排列,由[C1,C2,C3]变换为[C2,C3,C1]。
凯撒加密使用增大或减小数据的规则,使明文转化为密文,例如使用 [C1+3,C2+3,C3+3]替换[C1,C2,C3]。
单表代替加密采用简单重新排列明文字母表来作为密码表且每个相同的明文字母总是被同一个密文字母所替换。
上述传统加密方法,经过传统加密的密文组仍然以组的形式进行数据传输。而在另外的实施例中,为了简化传输过程,传统加密方式还可以是将取模运算的结果合成为一个结果,如上述密文组[2,3,2]经过传统加密,获得一个密文232,以232进行传输,相比于[2,3,2],可以简化传输过程,提高工作效率。
在本发明的一个实施例中,如上述方法中,步骤S130中的根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果包括:对密文结果组进行与传统加密对应的传统解密,获得中间密文结果组;计算中间密文结果组中的各密文结果与解密密钥组中对应的解密密钥的乘积,获得所有乘积的和;将所有乘积的和对基础密钥进行取模运算,将取模运算的结果作为明文的操作结果。
在上述实施例中,取模运算的运算结果经过传统加密获得密文组。同样的,服务器返回的密文结果组也经过相同的传统加密。因此,在进行同态解密之前,需要对密文结果组进行对应的传统解密。具体地,若密文组是经过凯撒加密的运算结果,如将运算结果[2,3,2]经过凯撒加密获得密文组[5,6, 5]上传至服务器。则在解密时,首先需要对密文结果组中的各密文结果进行凯撒解密,即将各密文结果均减去3,以获得中间密文结果组[9,11,9]。然后再对[9,11,9]进行同态解密。中间密文结果组的同态解密方式与上述实施例的同态解密方式相同,具体参考上述实施例,此处不再赘述。
图2示出了根据本发明一个实施例的一种数据的同态处理装置。该同态处理装置200应用于客户端侧,具体地,该装置200包括:
加密密钥生成单元210,用于生成包含预设数量的加密密钥的加密密钥组。
解密密钥生成单元220,用于根据加密密钥组生成一个基础密钥和与加密密钥组对应的解密密钥组。
本实施例的数据同态处理装置基于孙子定理的思想,构造加密函数和解密函数。具体地,加密函数通过明文对加密密钥进行取模运算,以取模运算结果作为密文,实现明文的加密效果。而以预设数量的加密密钥组成的加密密钥组,可以增加密文的数量,给密文增加一定的复杂度。预设数量可以预先设置,也可以由用户实时输入,增加其灵活性。
解密函数需要根据加密密钥组中的各加密密钥对解密密钥组和基础密钥进行求解,解密密钥组中的各解密密钥与加密密钥组中的各加密密钥一一对应。基础密钥和解密密钥组中的各解密密钥的求解基于同余方程组的解法进行求解。
在一个具体的实施例中,为了进一步确保加密密钥、解密密钥和基础密钥的隐私安全,每次生成的密钥均区别于之前生成的密钥。也就是说,每次生成的密钥均是新的密钥,这样就可以有效的确保密钥的隐私安全。当然,在其他的实施例中,为了方便,也可以使用固定的密钥组合,定期对密钥组合进行更新,确保密钥的隐私安全。
加密单元230,用于接收输入的明文,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组并输出。
明文是需要被加密的数据。明文经过加密处理得到密文,将密文上传至服务器使用其提供的计算服务,这样就可以防止明文在传输或使用计算服务过程中发生信息泄露,保护数据安全。在该步骤中,对明文进行加密的具体方式为,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组进行输入。
在一个具体的实施例中,明文数据为M,加密密钥组具有3个不重复的加密密钥[EK1,EK2,EK3]。明文M对各个加密密钥分别进行取模运算,如明文 M对加密密钥EK1的取模运算结果为C1,对加密密钥EK2的取模运算结果为 C2,对加密密钥EK3的取模运算结果为C3,得到运算结果[C1,C2,C3]。由于运算结果经过取模运算的加密,可以将该运算结果[C1,C2,C3]作为密文组直接输出,也就是密文组为[C1,C2,C3]。当然,为了数据传输方便,也可以将运算结果[C1,C2,C3]进一步处理为一个密文数据,如将三个密文顺序排列成一个密文数据,将密文数据输出上传至服务器,简化数据传输的难度,提高数据处理效率。
该加密方式,可以使一个明文可以对应多个密文,给密文增加一定的复杂度,从而提高解密的难度,确保明文安全。该加密函数可以采用软件算法实现,也可以采用由硬件模块实现。
在一个具体的实施例中,采用硬件模块实现的具体方式为,采用模运算模块完成一个明文对多个加密密钥的取模运算。具体地,可以采用一个模运算模块逐一实现明文对各加密密钥进行取模运算,顺序获得多个密文构成密文组。也可以采用多个模运算模块并行进行取模运算,如3个模运算模块同时实现明文对3个加密密钥的取模运算,同时获得3个密文构成密文组。
解密单元240,用于接收对密文组进行计算处理得到的密文结果组,根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果。
在上述步骤S120中,密文组输出至服务器中,服务器对密文组进行计算处理,具体为服务器对密文组中的各密文均执行相同的计算处理,这样就获得与密文组一一对应的密文结果组。如上述具体的例子中服务器对密文组 [C1,C2,C3]中的每一个密文均执行用户需要的计算处理,获得包含3个密文结果的密文结果组返回。由于对密文解密可以获得明文,也就是说密文中包含有明文的数据信息。同样的,密文的计算结果中也包含有明文的计算结果的数据信息。
对密文结果组的具体解密方式为,使用基础密钥和解密密钥对密文结果组进行同态解密,获得密文结果组中包含的明文的计算处理结果。由于加密函数根据孙子定理中的取模运算构造而成,因此对密文结果组进行同态解密与同余方程组的求解思想一致。也就是说,该同态解密是基于同余方程组的求解方法获得的解密方式。
由于只需要将密文组上传至服务器进行计算处理,而不需要将同时传输加密密钥、基础密钥和解密密钥,因此可以有效避免加密密钥、基础密钥和解密密钥的信息泄露,进一步防止明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。
在一个具体的实施例中,明文的加密过程和密文结果组的解密过程可以由同一个对象处理实现,也可以由不同的对象处理实现。例如,用户A拥有明文M,用户A对明文M进行加密后将密文组发送至服务器。服务器完成密文组的计算,将相应的密文结果组返回至用户A,用户A对其进行解密以获得对应的明文的计算处理结果。
而在另外的实施例中,用户A拥有明文M,而用户B需要获取明文M 的计算处理结果。用户A对明文M进行加密后将密文组发送至服务器,同时将相应的基础密钥和解密密钥发送至用户B。服务器完成密文组的计算,将相应的密文结果组返回至用户B,用户B对其进行解密以获得对应的明文的计算处理结果。
本发明实施例提供的数据的同态处理方法,首先对数据进行加密,利用密文组中的密文数据完成计算处理,避免明文发生信息泄露,或被破解,确保明文的保密性。另外,对密文的计算结果进行同态解密,也就是对密文的计算处理结果进行解密,以获得相应的明文的计算处理结果。
本发明的技术方案,以取模运算作为加密函数,其运算处理简单,加密效率高,可以满足大量数据的加密处理需求。而且,通过取模运算可以获得一个明文对应多个密文的加密结果,给密文增加一定的复杂度,提高解密的难度,有效确保明文的安全性。另外,基础密钥和解密密钥不需要随同密文一起传输,可以防止在数据传输或计算处理过程中发生信息泄露,避免明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。
在本发明的一个实施例中,如图2所示的装置200中,加密密钥生成单元210,进一步用于确定计算维度,根据计算维度生成包含对应数量的加密密钥的加密密钥组。
计算维度确定了加密密钥的数量,例如计算维度为3,则生成3个加密密钥,该3个加密密钥构成一个加密密钥组。计算维度越高,加密密钥越多,经过加密处理的数据的保密性更好。计算维度可以采用默认数值,也可以由用户确定并输入。
在一个具体的例子中,计算维度为3,则根据计算维度生成的加密密钥组为[EK1,EK2,EK3],根据加密密钥组中的各加密密钥生成基础密钥N,解密密钥组[DK1,DK2,DK3]。为了获得更高的数据保密性,计算维度应不小于3。同时,计算维度越高,也可以提高同态处理结果的可信度。
在本发明的一个实施例中,如图2所示的装置200中,加密密钥生成单元210,进一步用于从素数集合中选取对应数量的素数生成加密密钥组。
本实施例提供了生成加密密钥组的具体实现方式。具体地,孙子定理中的一般对素数进行求余运算,基于该思想,本实施例提供的加密密钥组中的各加密密钥也是由素数组成。也就是说,各加密密钥均为素数,且各加密密钥均不重复,以确保能够实现数据的同态处理。
加密密钥的数量由计算维度确定,当计算维度由用户进行输入时,加密密钥的数量具有随机性。通过设置随机数发生器,用于生成若干个随机数,并对若干个随机数进行预处理,如去除大于明文的随机数。对若干个随机数进行素数验证,以及根据计算维度进行密钥筛选,确定符合条件的对应数量的加密密钥。如上述实施例中,加密密钥[EK1,EK2,EK3]中的EK1、EK2、EK3均为素数,且EK1、EK2、EK3均不相同。
在本发明的一个实施例中,上述装置200中,加密密钥组中的各加密密钥均小于明文。
同态处理装置200所采用的同态处理方法,将取模运算作为加密函数,同时基于同余方程组的求解构造相应的解密函数。该同态处理方法,对加密密钥具有一定的要求。符合要求的加密密钥组,以根据其生成的解密密钥组和基础密钥,对密文结果组进行解密,才能获得更加准确的解密结果,可信度也越高。具体的要求为,各加密密钥均小于明文。这样,在采用取模运算加密的过程中,所获得的密文才能小于明文,防止解密结果发散,确保解密结果准确。
在本发明的一个实施例中,如图2所示的装置200中,解密密钥生成单元220,进一步用于将加密密钥组中所有加密密钥的乘积作为基础密钥;基础密钥大于明文。
本实施例提供了生成基础密钥的具体实现方式。结合孙子定理中同余方程组的解法,确定基础密钥为加密密钥组中各加密密钥的乘积,如上述例子中基础密钥N=EK1×EK2×EK3。
在本发明的一个实施例中,如图2所示的装置200中,解密密钥生成单元220,进一步用于将基础密钥分别除以各加密密钥获得密钥商组;将密钥商组中的各密钥商的倍数对对应的加密密钥进行取模运算;若取模运算结果为1,则将该密钥商的倍数作为对应的加密密钥的解密密钥;获得各解密密钥生成与加密密钥组对应的解密密钥组。
本实施例提供了生成解密密钥组的具体实现方式。结合孙子定理中同余方程组的解法,解密密钥组中的各解密密钥需要结合基础密钥和加密密钥进行确定。具体地,解密密钥为对对应加密密钥的取模运算结果为1,而对其余加密密钥的取模运算结果为0的数。例如,解密密钥DK1需要同时满足 DK1≡1(modEK1)DK1≡0(modEK2)DK1≡0(modEK3),解密密钥DK2需要同时满足 DK2≡0(modEK1)DK2≡1(modEK2)DK2≡0(modEK3),其余解密密钥同理。加密密钥和解密密钥中均带有标识,如加密密钥组和解密密钥组通过数组存储,则数组中各个数据的下标即是密钥的标识,通过该标识匹配对应的加密密钥和解密密钥。
而由于加密密钥均为素数,则对其余加密密钥的取模运算结果为0的数即为其余加密密钥的公倍数。因此,将基础密钥N除以对应的加密密钥得到的密钥商,就是其余加密密钥的最小公倍数。在实际操作过程中,由于除法运算的较为复杂,且容错率较差,因此一般采用乘法运算对其进行代替。也就是说,其余加密密钥的最小公倍数,采用乘法运算将对应加密密钥以外的所有加密密钥进行乘积,如加密密钥EK1对应的密钥商,实际操作中的计算为EK2×EK3,而并非使用基础密钥计算N/EK1。若最小公倍数对对应加密密钥的取模运算结果为1,则该最小该公倍数即是对应加密密钥的解密密钥。若否,则将该最小公倍数依次增大一定的倍数获得公倍数,直至找到一个公倍数对对应的加密密钥的取模运算结果为1,则确定该公倍数为对应加密密钥的解密密钥。
在一个具体的例子中,计算维度为3,经过素数验证和密钥筛选后,确定加密密钥组为[3,5,7]。为了确保同态处理的准确性,加密密钥尽量避免重复,也就是说,各个加密密钥均不相同。根据加密密钥组确定的基础密钥 N为105。
确定解密密钥组时,首先确定密钥商组,将基础密钥分别除以各加密密钥,即105/[3,5,7]获得密钥商组[35,21,15]。在实际操作中,直接采用乘法运算,也就是密钥商组为[5×7,3×7,3×5]=[35,21,15]。当存在任意正整数A,使得(35*A)mod3=1,则(35*A)为加密密钥3对应的解密密钥。为了便于求解(35*A),在硬件电路层面,可以采用乘法逆元模块进行求解。也就是直接求取35mod3的乘法逆元,获得A的值,从而实现35*A的求解。当然,在软件算法层面,可以从1开始依次增大A的数值,计算(35*A)mod3=1 进行求解。A的取值顺序依次增大,为1,2,3...。在该实施例中,当A=2时, 35*A=70对3的取模运算结果为1,因此确定加密密钥3对应的解密密钥为 70。
同样的,当存在任意正整数B,使得(21*B)mod5=1,则21*B为加密密钥5对应的解密密钥。在该实施例中,当B等于1时,21对加密密钥5的取模运算结果为1,因此确定加密密钥5对应的解密密钥为21。采用同样的方法确定加密密钥7对应的解密密钥为15,从而确定加密密钥组[3,5,7]对应的解密密钥组为[70,21,15]。
从上述可知,确定加密密钥、基础密钥和解密密钥需要重复多次进行乘法运算和取模运算。在一个具体的实施例中,可以采用单运算模块或运算阵列模块实现多个取模运算。
具体地,单运算模块由单运算IP、选通器和循环控制器组成,单运算IP 由一个乘运算模块、一个加运算模块和一个模运算模块构成,逐一完成各解密密钥的求解。
运算阵列模块由运算IP阵列、选通器和循环控制器组成,可以进行串行、并行、串并行结合三种操作模式,如以一个乘运算模块、一个加运算模块和一个模运算模块为一组,运算IP阵列中设置3组计算阵列,则可以同时完成 3个解密密钥的求解。
单运算模块成本低,计算效率也低;运算阵列模块成本高,计算效率高,具体可以结合需求选取。
在本发明的一个实施例中,如图2所示的装置200中,解密单元240,进一步用于计算密文结果组中的各密文结果与解密密钥组中对应的解密密钥的乘积,获得所有乘积的和;将所有乘积的和对基础密钥进行取模运算,将取模运算的结果作为明文的处理结果。
本实施例提供了对密文结果组进行同态解密的具体实现方式。具体地,用户需要获取明文M进行f(x)=2x+5的计算处理结果。服务器对密文组中的各个密文均进行上述计算处理,获得密文结果组。如明文23经过加密密钥组 [3,5,7]获得的密文组为[2,3,2]。服务器经过f(x)=2x+5的计算处理,获得的密文结果组为[9,11,9]。
采用基础密钥和解密密钥组对密文结果组进行解密。具体地,首先计算对应的密文结果和解密密钥的乘积,如第一密文结果9对应的解密密钥为70,其乘积为630。第二密文结果11对应的解密密钥为21,其乘积为231。第三密文结果9对应的解密密钥为15,其乘积为135。密文结果组中各密文结果均带有标识,如数字下标,通过标识匹配对应的解密密钥。
然后计算所有乘积的和,即630+231+135=996。将该所有乘积的和对基础密钥进行取模运算,996mod105=51,该取模运算结果51即为明文23经过 f(x)=2x+5的计算处理结果。
采用该同态解密方式,不需要将明文上传至服务器,也能够准确获得明文的计算处理结果,有效地保护了用户的隐私数据安全。
需要说明的是,为了确保同态解密结果的正确性,对密文组进行的计算处理仅限于算术运算处理,或任何能够分解为算术运算的计算处理也可以采用本实施例的同态加密和同态解密方法。
在本发明的一个实施例中,如上述的装置200中,计算维度不小于3。
在上述实施例中,为了获得更高的数据保密性,同时提高同态处理结果的可信度,计算维度应不小于3,如确定计算维度为4、5或10等。当然,计算维度越高,同态处理的所占用的资源也越多,处理效率也相应降低。在实际操作中,计算维度为3能够获得较高的处理效率和准确的同态处理结果。
在本发明的一个实施例中,如图2所示的装置200中,加密单元230,进一步用于对运算结果进行传统加密,将加密结果作为密文组并输出。
在本实施例中,明文对加密密钥组中的各加密密钥进行取模运算的运算结果,需要进一步加密,以该加密结果作为密文组。具体地,对取模运算结果进一步进行传统加密,将传统加密后的加密结果作为密文组输出。该传统加密是现有技术中常用的加密技术,例如古典加密、凯撒加密或单表代替加密等,可以选用其中的一种或多种对密文组进行进一步加密。
在同态加密中,服务器不需要对密文组进行解密,而是直接对密文组进行计算处理。但是经过传统加密的密文组,服务器需要对该加密结果进行对应的传统解密,获得取模运算的结果后,再对取模运算结果进行计算处理。同时,服务器在返回密文结果组时,需要采用对密文结果组进行相同的传统加密,以返回经过进一步加密的密文结果组。
由于传统加密经过验证,可以确保数据在传输链路中的保密性,因此对密文组设置传统加密,可以保证密文组在传输链路过程中的数据安全。
在本发明的一个实施例中,上述装置200中,传统加密包括如下的至少一种:古典加密;凯撒加密;单表代替加密。
具体地,古典加密采用代替和置换两种该方式,例如重新对密文组进行排列,由[C1,C2,C3]变换为[C2,C3,C1]。
凯撒加密使用增大或减小数据的规则,使明文转化为密文,例如使用 [C1+3,C2+3,C3+3]替换[C1,C2,C3]。
单表代替加密采用简单重新排列明文字母表来作为密码表且每个相同的明文字母总是被同一个密文字母所替换。
上述传统加密方法,经过传统加密的密文组仍然以组的形式进行数据传输。而在另外的实施例中,为了简化传输过程,传统加密方式还可以是将取模运算的结果合成为一个结果,如上述密文组[2,3,2]经过传统加密,获得一个密文232,以232进行传输,相比于[2,3,2],可以简化传输过程,提高工作效率。
在本发明的一个实施例中,上述装置200中,解密单元240,进一步用于对密文结果组进行与传统加密对应的传统解密,获得中间密文结果组;计算中间密文结果组中的各密文结果与解密密钥组中对应的解密密钥的乘积,获得所有乘积的和;将所有乘积的和对基础密钥进行取模运算,将取模运算的结果作为明文的操作结果。
在上述实施例中,取模运算的运算结果经过传统加密获得密文组。同样的,服务器返回的密文结果组也经过相同的传统加密。因此,在进行同态解密之前,需要对密文结果组进行对应的传统解密。具体地,若密文组是经过凯撒加密的运算结果,如将运算结果[2,3,2]经过凯撒加密获得密文组[5,6, 5]上传至服务器。则在解密时,首先需要对密文结果组中的各密文结果进行凯撒解密,即将各密文结果均减去3,以获得中间密文结果组[9,11,9]。然后再对[9,11,9]进行同态解密。中间密文结果组的同态解密方式与上述实施例的同态解密方式相同,具体参考上述实施例,此处不再赘述。
图3示出了本发明实施例提供的一种数据的同态处理***。如图3所示,,该***300包括一个或多个上述中任一项所述的同态处理装置200,以及一个或多个服务器310。该服务器310,用于对密文组进行计算处理,获得密文结果组并返回至同态处理装置200。
同态处理装置200和服务器的实现方式和功能具体参见上述实施例,此处不再赘述。
综上所述,本发明的技术方案,通过生成包含预设数量的加密密钥的加密密钥组;根据加密密钥组生成一个基础密钥和与加密密钥组对应的解密密钥组;接收输入的明文,将明文对加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组并输出;接收对密文组进行计算处理得到的密文结果组,根据基础密钥和解密密钥组完成对密文结果组的解密,获得明文的处理结果。以取模运算作为加密函数,其运算处理简单,加密效率高,可以满足大量数据的加密处理需求。而且,通过取模运算可以获得一个明文对应多个密文的加密结果,给密文增加一定的复杂度,提高解密的难度,有效确保明文的安全性。另外,基础密钥和解密密钥不需要随同密文一起传输,可以防止在数据传输或计算处理过程中发生信息泄露,避免明文或明文的处理结果被破解,确保信息安全,提高数据的隐私保护。需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据的同态处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图4示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备400包括处理器410和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器420。存储器420可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器420具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码431的存储空间430。例如,用于存储计算机可读程序代码的存储空间430 可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码431。计算机可读程序代码431可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图5所述的计算机可读存储介质。图5示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质500存储有用于执行根据本发明的方法步骤的计算机可读程序代码 431,可以被电子设备400的处理器410读取,当计算机可读程序代码431 由电子设备400运行时,导致该电子设备400执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码431 可以执行上述任一实施例中示出的方法。计算机可读程序代码431可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (7)
1.一种数据的同态处理方法,应用于客户端侧,其特征在于,该方法包括:
确定计算维度,根据所述计算维度生成包含对应数量的加密密钥的加密密钥组,所述加密密钥组是从素数集合中选取与计算维度对应数量的素数生成的,所述加密密钥每次不同;
根据所述加密密钥组生成一个基础密钥和与所述加密密钥组对应的解密密钥组;
接收输入的明文,将明文对所述加密密钥组中的各加密密钥逐一进行取模运算,根据运算结果确定密文组,将密文组转化为密文数据并输出,所述基础密钥和所述解密密钥组不随同密文一起传输,用于防止信息泄露;
接收对所述密文组进行计算处理得到的密文结果组,计算所述密文结果组中的各密文结果与所述解密密钥组中对应的解密密钥的乘积,获得所有乘积的和;将所述所有乘积的和对所述基础密钥进行取模运算,将所述取模运算的结果作为所述明文的处理结果。
2.如权利要求1所述的方法,其特征在于,所述加密密钥组中的各加密密钥均小于明文。
3.如权利要求1所述的方法,其特征在于,所述根据所述加密密钥组生成一个基础密钥和与所述加密密钥组对应的解密密钥组包括:
将所述加密密钥组中所有加密密钥的乘积作为基础密钥;所述基础密钥大于明文。
4.如权利要求1所述的方法,其特征在于,所述根据所述加密密钥组生成一个基础密钥和与所述加密密钥组对应的解密密钥组包括:
将所述基础密钥分别除以各加密密钥获得密钥商组;将密钥商组中的各密钥商的倍数对对应的加密密钥进行取模运算;若取模运算结果为1,则将该密钥商的倍数作为对应的加密密钥的解密密钥;获得根据各解密密钥生成的与所述加密密钥组对应的所述解密密钥组。
5.如权利要求1所述的方法,其特征在于,所述计算维度不小于3。
6.一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-5中任一项所述的方法。
7.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910688259.2A CN110519039B (zh) | 2019-07-29 | 2019-07-29 | 一种数据的同态处理方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910688259.2A CN110519039B (zh) | 2019-07-29 | 2019-07-29 | 一种数据的同态处理方法、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110519039A CN110519039A (zh) | 2019-11-29 |
CN110519039B true CN110519039B (zh) | 2022-11-18 |
Family
ID=68624062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910688259.2A Active CN110519039B (zh) | 2019-07-29 | 2019-07-29 | 一种数据的同态处理方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110519039B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906038B (zh) * | 2021-03-26 | 2023-04-07 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
CN113794548A (zh) * | 2021-09-13 | 2021-12-14 | 深圳前海微众银行股份有限公司 | 同态加密方法、设备、介质及计算机程序产品 |
CN114039785B (zh) * | 2021-11-10 | 2024-02-27 | 奇安信科技集团股份有限公司 | 数据加密、解密、处理方法、装置、设备和存储介质 |
CN114070558B (zh) * | 2021-11-18 | 2023-11-24 | 抖音视界有限公司 | 一种数据传输方法及装置 |
CN114301664A (zh) * | 2021-12-27 | 2022-04-08 | 中国电信股份有限公司 | 通信加密方法、通信解密方法、装置及非易失性存储介质 |
CN115189881B (zh) * | 2022-09-07 | 2022-11-29 | 广东名阳信息科技有限公司 | 一种基于边缘计算的物联网数据接入及处理***及方法 |
CN115801228B (zh) * | 2023-01-09 | 2023-04-28 | 佰聆数据股份有限公司 | 交互信息加密的方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984574B (zh) * | 2010-11-29 | 2012-09-05 | 北京卓微天成科技咨询有限公司 | 一种数据加解密方法及装置 |
CN103248650B (zh) * | 2012-02-09 | 2016-12-14 | 中兴通讯股份有限公司 | 一种文件下载方法及*** |
CN104917611B (zh) * | 2014-03-13 | 2019-04-23 | 航天信息股份有限公司 | 用于云计算的数据加解密处理方法和装置 |
CN104009835A (zh) * | 2014-05-16 | 2014-08-27 | 南京邮电大学 | 一种云存储***中可并行计算的文件加密解密方法 |
-
2019
- 2019-07-29 CN CN201910688259.2A patent/CN110519039B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110519039A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110519039B (zh) | 一种数据的同态处理方法、设备和介质 | |
CN110519038B (zh) | 一种数据的同态处理装置和*** | |
CN110493201B (zh) | 一种数据的处理方法、装置和*** | |
CN110348231B (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
Saarinen | HILA5: On reliability, reconciliation, and error correction for Ring-LWE encryption | |
JP4938766B2 (ja) | プログラム難読化システム、プログラム難読化装置及びプログラム難読化方法 | |
EP2701337B1 (en) | Secret sharing method and system | |
WO2019098941A1 (en) | System and method for private integration of datasets | |
Wiener | The full cost of cryptanalytic attacks | |
DE60316586T2 (de) | Effiziente arithmetik in galois-feldern ungerader charakterstik auf binärer hardware | |
JP2020074039A (ja) | データを暗号化する方法およびシステム | |
RU2598327C2 (ru) | Утройство для криптографической обработки данных, способ криптографической обработки данных и программа | |
KR20010087344A (ko) | 암호화 장치 및 방법과, 복호화 장치 및 방법, 기록매체및, 연산장치 | |
CN107872322A (zh) | 基于同态加密的数字签名协同生成方法及*** | |
CN101911009B (zh) | 用于以签名方案进行非对称加密的对策方法和设备 | |
JP5230439B2 (ja) | 情報管理システム | |
JP4835831B2 (ja) | 多数の入力から関数を計算する方法および装置 | |
WO2016148281A1 (ja) | 秘匿文字列計算システム及び方法と装置並びにプログラム | |
US10326596B2 (en) | Techniques for secure authentication | |
Ahmad et al. | A secure network communication protocol based on text to barcode encryption algorithm | |
CN112272082B (zh) | 图像加密/解密的方法及装置、电子设备、存储介质 | |
CN108599951B (zh) | 加密方法、加密装置、计算设备及计算机存储介质 | |
EP3231125B1 (en) | Electronic generation device | |
CN116861477A (zh) | 基于隐私保护的数据处理方法、***、终端及存储介质 | |
Oder | Efficient and side-channel resistant implementation of lattice-based cryptography |
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 |