CN115549891A - 同态加密方法、同态解密方法、同态计算方法及设备 - Google Patents
同态加密方法、同态解密方法、同态计算方法及设备 Download PDFInfo
- Publication number
- CN115549891A CN115549891A CN202211479292.2A CN202211479292A CN115549891A CN 115549891 A CN115549891 A CN 115549891A CN 202211479292 A CN202211479292 A CN 202211479292A CN 115549891 A CN115549891 A CN 115549891A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- encryption
- homomorphic
- encrypted
- prime number
- 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
- 238000000034 method Methods 0.000 title claims abstract description 121
- 238000004364 calculation method Methods 0.000 title claims abstract description 94
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 27
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000002360 explosive Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种同态加密方法、同态解密方法、同态计算方法及设备,所述方法包括:获取待处理信息以及用于对所述待处理信息进行同态加密的公钥,生成第一随机数。基于所述第一随机数,对所述待处理信息进行加密,获得密文第一部分。基于所述公钥,对所述第一随机数进行加密,获得密文第二部分。基于所述密文第一部分和所述密文第二部分,确定所述待处理信息所对应的加密密文,这样可以使得加密密文具备一次乘法的特点,从而实现了加密密文可以计算任意次加法同态计算和一次乘法同态计算,有效地提高了同态加密性能,有助于提升人工智能、隐私保护以及安全多方计算的效率。
Description
技术领域
本发明涉及信息安全数据处理技术领域,尤其涉及一种同态加密方法、同态解密方法、同态计算方法及设备。
背景技术
随着互联网络技术的不断发展,数据呈现爆发式增长的态势,海量数据往往以委托计算服务的模式保存在云服务器中。存储在云端的一些数据往往含有隐私信息,然而,云端的保密机制不完善容易泄露一部分数据信息。因此,需要对隐私数据进行加密保护,这样在对数据进行加密处理后,原始数据的原有的数据结构就遭到破坏了,从而容易使得加密后的数据失去了信息处理的功能。
为此,可以采用同态加密算法来对数据进行处理,同态加密算法既能对数据进行加密,又能对加密后的数据进行信息处理。然而,传统的加法同态加密算法,计算效率较低,并且只支持密文数据的加法同态计算,将无法对二次多项式进行隐私计算等。
发明内容
本发明实施例提供一种同态加密方法、同态解密方法、同态计算方法及设备,用以提高同态加密性能。
第一方面,本发明实施例提供一种同态加密方法,该方法包括:
获取待处理信息以及用于对所述待处理信息进行同态加密的公钥;
生成第一随机数;
基于所述第一随机数,对所述待处理信息进行加密,获得密文第一部分;
基于所述公钥,对所述第一随机数进行加密,获得密文第二部分;
基于所述密文第一部分和所述密文第二部分,获得所述待处理信息所对应的加密密文。
第二方面,本发明实施例提供一种同态加密装置,该装置包括:
获取模块,用于获取待处理信息以及用于对所述待处理信息进行同态加密的公钥;
生成模块,用于生成第一随机数;
第一加密模块,用于基于所述第一随机数,对所述待处理信息进行加密,获得密文第一部分;
第二加密模块,用于基于所述公钥,对所述第一随机数进行加密,获得密文第二部分;
确定模块,用于基于所述密文第一部分和所述密文第二部分,确定所述待处理信息所对应的加密密文。
第三方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的同态加密方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的同态加密方法。
在本发明实施例提供的同态加密方案中,通过基于第一随机数,对待处理信息进行加密,获得密文第一部分,基于公钥,对第一随机数进行加密,获得密文第二部分,并基于密文第一部分和密文第二部分,获得待处理信息所对应的加密密文,利用本方案对待处理信息进行同态加密,能够很好的提高同态加密性能,有助于提升人工智能、隐私保护以及安全多方计算的效率。并且这样的加密方法,可以使得加密密文具备一次乘法的特点,从而实现了加密密文可以计算任意次加法同态计算和一次乘法同态计算。
第五方面,本发明实施例提供一种同态解密方法,所述方法包括:
获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
根据所述加密层次和所述私钥,对所述加密密文进行解密,获得所述加密密文所对应的明文。
第六方面,本发明实施例提供一种同态解密装置,所述装置包括:
获取模块,用于获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定模块,用于确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
解密模块,用于根据所述加密层次和所述私钥,对所述加密密文进行解密,获得所述加密密文所对应的明文。
第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的同态解密方法。
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的同态解密方法。
在本发明实施例提供的同态解密方案中,获取待处理的加密密文以及用于对加密密文进行解密的私钥,确定加密密文所对应的加密层次,其中,加密层次用于表示执行乘法运算的深度,根据加密层次和私钥,对加密密文进行解密,获得加密密文所对应的明文。在上述方案中,通过确定加密密文所对应的加密层次,并根据加密层次和私钥,对加密密文进行解密,使得该解密方法不仅可以对直接进行同态加密后得到的加密密文进行解密,也可以直接对进行同态运算后得到的加密密文进行解密,并且可以使得解密过程更简单。
第九方面,本发明实施例提供一种同态计算方法,所述方法包括:
获取第一加密密文和第二加密密文;
确定所述第一加密密文所对应的第一加密层次以及所述第二加密密文所对应的第二加密层次;
根据所述第一加密层次和第二加密层次,对所述第一加密密文和所述第二加密密文进行同态运算,获得同态运算结果。
第十方面,本发明实施例提供一种同态计算装置,所述装置包括:
获取模块,用于获取第一加密密文和第二加密密文;
确定模块,用于确定所述第一加密密文所对应的第一加密层次以及所述第二加密密文所对应的第二加密层次;
运算模块,用于根据所述第一加密层次和第二加密层次,对所述第一加密密文和所述第二加密密文进行同态运算,获得同态运算结果。
第十一方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的同态计算方法。
第十二方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的同态计算方法。
本发明实施例提供的同态计算方案中,首先获取第一加密密文和第二加密密文,其中第一加密密文和第二加密密文是利用公钥分别对第一待处理信息和第二待处理信息进行同态加密得到的,之后,进一步地确定第一加密密文所对应的第一加密层次以及第二加密密文所对应的第二加密层次,从而根据第一加密层次和第二加密层次,对第一加密密文和第二加密密文进行同态运算,获得同态运算结果,从而不仅实现了对加密密文的同态运算,还可以提高加密密文之间的同态计算效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种同态加密方法的流程图;
图2为本发明实施例提供的确定公钥系数的流程示意图;
图3为本发明实施例提供的一种同态解密方法的流程图;
图4为本发明实施例提供的一种同态计算方法的流程图;
图5为本发明实施例提供的一种多项式的同态计算方法的流程图;
图6为本发明实施例提供的一种同态加密装置的结构示意图;
图7为与图6所示实施例提供的同态加密装置对应的电子设备的结构示意图;
图8为本发明实施例提供的一种同态解密装置的结构示意图;
图9为与图8所示实施例提供的同态解密装置对应的电子设备的结构示意图;
图10为本发明实施例提供的一种同态计算装置的结构示意图;
图11为与图10所示实施例提供的同态装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
随着互联网的发展和云计算技术的广泛应用,尤其是云计算服务器上的大量电子商务交易,如何安全有效地保护用户隐私与安全成为当今密码学研究领域的热点。如果将用户的数据直接以明文形式进行传输存储,可能会将一些敏感数据(如用户身份信息)暴露给云服务商,进而给用户机密数据带来一系列的安全问题。为保证数据传输过程中的安全,需要对数据进行加密保护,然而,在对数据进行加密处理后,原始数据的原有的数据结构就遭到破坏了,从而容易使得加密后的数据失去了信息处理的功能。这时,同态加密(Homomorphic Encryption)变得更加重要。
同态加密是一类具有特殊自然属性的加密方法,与一般加密算法相比,同态加密除了能实现基本的加密操作之外,还能实现密文间的多种计算功能,即先计算后解密可等价于先解密后计算。这个特性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,由此可平衡各方的计算代价;利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性。
本质上,同态加密是指这样一种加密函数,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。由于这个良好的性质,人们可以委托第三方对数据进行处理而不泄露信息。例如,在实际应用中,可以利用同态加密技术方案来对数据进行加密得到相应的密文数据,再将密文数据发送到云端,当在云端针对数据进行的一系列操作,比如上传、下载、删除、更新、检索、计算等,将均是密文数据,这样既可以避免数据在传输过程中被拦截、复制、篡改或伪造等风险,也可以避免数据存储方将数据泄露或在服务器端被攻破的危险。
目前,现有的同态加密方案虽然多种多样,但仍存在加密性能低的问题。另外,现存在的同态加密方案中,虽然具有在加密后的密文数据上进行计算二次多项式,但是计算效率较低。为了解决上述技术问题,本发明各实施例提供了一种同态加密方法、同态解密方法、同态计算方法及设备。利用本发明提供的技术方案,可以有效提高同态加密性能,并且还提供了一种新的同态计算方法,该方法不仅实现对二次多项式同态计算,还可以可以有效的提高同态计算效率,从而有助于提升人工智能、隐私保护以及安全多方计算的效率。
为了使本技术领域的人员更好地理解本发明,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。本发明实施例提供的同态加密方法、同态解密方法、同态计算方法可以由一电子设备来执行,该电子设备可以为同一电子设备,也可以为不同的电子设备,并且电子设备可以是诸如PC机、笔记本电脑、智能手机等终端设备。
本发明实施例提供的同态加密方法是在原加法同态加密算法(paillier算法)的基础上进行改进,使得改进后的同态加密方法具备同态乘法的功能,可以计算任意次加法同态计算和一次乘法同态计算,如可以实现对二次多项式的隐私计算、向量内积的隐私计算等,使得该同态加密方法可以应用于更多应用场景中,并且相较于原有的paillier加密算法具有更好的计算效率。
在对本发明实施例提供的同态加密方法进行详细介绍之前,为了便于理解本方案,先对原同态加密算法进行详细介绍说明。
Paillier加密算法是一种同态加密,满足加法和数乘同态。paillier加密算法主要包括密钥生成过程、加密过程以及解密过程。具体的密钥生成过程如下:
步骤1、随机生成两个k比特长的大素数p和q,满足p-1和q-1均与3互素,其中,k≥1024;
步骤2、计算RSA模数N=pq和λ=lcm(p−1,q−1),其中lcm表示最小公倍数;
步骤4、公钥为(N,g);私钥为(λ,μ)。
具体得解密过程包括:对于密文c∈Z_{N2}*$,计算得到明文m = D (c) = L(cλmodN2)/L (gλmod N2) mod N其中L(x)=(x−1)/N。
图1为本发明实施例提供的一种同态加密方法的流程图;参考附图1所示,本发明实施例提供了一种同态加密方法,具体的,该同态加密方法可以包括如下步骤:
步骤101、获取待处理信息以及用于对待处理信息进行同态加密的公钥。
步骤102、生成第一随机数。
步骤103、基于第一随机数,对待处理信息进行加密,获得密文第一部分。
步骤104、基于公钥,对第一随机数进行加密,获得密文第二部分。
步骤105、基于密文第一部分和密文第二部分,确定待处理信息所对应的加密密文。
本发明实施例中提供的同态加密方法可以用于对各种待处理信息进行加密,其中待处理信息可以为消息、文本、视频、图片、音频等。在对待处理消息进行同态加密时,首先获取待处理消息以及用于对待处理信息进行同态加密的公钥。
在获取用于对待处理信息进行同态加密的公钥之前,该方法还可以包括密钥生成。其中生成密钥的具体实现过程可以包括:获取安全参数,其中安全参数用于表征密钥的安全程度,之后基于安全参数,随机生成第一素数和第二素数,并且第一素数与第二素数的长度相等。接着基于第一素数和第二素数,确定公钥系数,而后生成第二随机数,最后基于公钥系数和第二随机数,生成公钥。基于第一素数和第二素数,生成私钥。其中,安全参数用于表征密钥的安全程度,安全参数越大,其密钥的安全性越高,或者说安全参数越大,其加密算法的安全性越高。在实际应用中,用户可以根据安全需求,设置安全参数。比如,为了保持原有paillier加密算法的安全性,可以设置安全参数n≥2048比特,l≥448比特。
在获取到安全参数之后,基于安全参数,随机生成相同比特大小的第一素数和第二素数。其中,第一素数和第二素数是用于生成公钥的参数,并且第一素数和第二素数为相同比特大小的随机两个素数,例如,第一素数和第二素数为l/2比特大小的素数。第一素数和第二素数的长度大小相等或相近,可以使得加密方法的安全性更高。另外,随机生成第一素数和第二素数的主要目的是为了生成同态加密的密钥,在原paillier加密算法,其主要基于随机生成的大素数来生成密钥,然而大素数为较大比特长度的素数,那么基于两个大素数生成的公钥和私钥的长度将较长,这样将会使得同态加密和同态解密的计算效率较低,从而也会影响加密密文的同态计算效率。因此,在本发明实施例中,在保持原有安全性的基础上,采用长度较短的第一素数和第二素数来生成公钥和私钥。
在生成第一素数和第二素数之后,基于第一素数和第二素数,确定公钥系数。之
后,再生成第二随机数,其中第二随机数可以为正整数集合中任意一个整数。最后,基于公
钥系数和第二随机数,生成公钥。同时直接基于第一素数和第二素数生成私钥。例如,假设
第一素数为p,第二素数为q,公钥系数为λ,第二随机数为,生成公钥,私钥。由于第一素数和第二素数的长度明显变短,那么基于第一素数和第二素数生成的
公钥和私钥的长度也会变短,从而基于公钥和私钥进行加密和解密时,其计算效率将明显
提高,从而还可以使得加密密文的同态计算效率得到明显提高,可以提高整个加密性能。
生成密钥之后,可以直接获取到用于对待处理信息进行同态加密的公钥。接着,生成第一随机数,第一随机数属于明文空间内的一个随机数,并且为了安全性考虑,第一随机数的长度和待处理信息的长度相等。之后,基于第一随机数,对待处理信息进行加密,获得密文第一部分。其中,基于第一随机数,对待处理信息进行加密,获得密文第一部分的具体实现方式可以包括:获取待处理信息与第一随机数的差值,并将差值确定为密文第一部分。通过该方法获得的密文第一部分具有一次乘法的特点,可以使得该同态加密方法具备一次同态乘法的性质。
接着,基于公钥,对第一随机数进行加密,获得密文第二部分,并基于密文第一部分和密文第二部分,获得待处理信息所对应的加密密文。待处理信息所对应的加密密文是由密文第一部分和密文第二部分构成,在保证同态加密方法的安全性的基础上,该同态加密方法不仅提高了同态加密性能,同时还可以使得该同态加密方法可以同时支持同态加法运算和同态乘法运算。
具体的,假设待处理信息为消息m,用于对消息m进行公钥加密的公钥为pk,从明文
空间中随机选取一个随机数b,首先使用随机数b对消息m进行加密,获得加密密文中的密文
第一部分,接着使用公钥pk对随机数b进行加密,获得加密密文中的密文
第二部分,基于密文第一部分和密文第二部分,获得消息m对应的加密密文,
即。
在一可选实施例中,基于第一随机数,对待处理信息进行加密,获得密文第一部分的具体实现方式可以包括:获取待处理信息与第一随机数的和值,并将和值确定为密文第一部分。通过该方法获得的密文第一部分具有一次乘法的特点,可以使得该同态加密方法具备一次同态乘法的性质。接着,基于公钥,对第一随机数进行加密,获得密文第二部分,并基于密文第一部分和密文第二部分,获得待处理信息所对应的加密密文。
具体的,假设待处理信息为消息m,用于对消息m进行公钥加密的公钥为pk,从明文
空间中随机选取一个随机数b,首先使用随机数b对消息m进行加密,获得加密密文中的密文
第一部分,接着使用公钥pk对随机数b进行加密,获得加密密文中的密文
第二部分,基于密文第一部分和密文第二部分,获得消息m对应的加密密文,
即。由上述描述可知:利用本发明实施例提供的同态加密方法进行加密
后,获得的加密密文包括两个元素(两部分)即密文第一部分和密文第二部分。
本发明实施例提供的同态加密方法,通过生成第一随机数,并基于第一随机数,对待处理信息进行加密,获得密文第一部分,基于公钥,对第一随机数进行加密,获得密文第二部分,基于密文第一部分和密文第二部分,获得待处理信息所对应的加密密文。在上述方案中,分别对待处理信息和第一随机数进行加密,使得加密密文由两部分构成,使得加密密文具备一次乘法的特点,从而实现了加密密文可以计算任意次加法同态计算和一次乘法同态计算,从而能够很好的提高同态加密性能,有助于提升人工智能、隐私保护以及安全多方计算的效率。
图2为本发明实施例提供的确定公钥系数的流程示意图;在上述实施例的基础上,参考附图2所示,本实施例提供了一种基于第一素数和第二素数,确定公钥系数的实现方式,具体的可以包括:
步骤201、基于安全参数,生成与第一素数相对应的第三随机数以及与第二素数相对应的第四随机数,第三随机数和第四随机数的长度相同。
步骤202、基于第一素数和第三随机数,确定第一大素数,第一大素数的长度大于第一素数的长度。
步骤203、基于第二素数和第四随机数,确定第二大素数,第二大素数的长度大于第二素数的长度。
步骤204、基于第一素数、第二素数、第一大素数、以及第二大素数,确定公钥系数。
为了保持原有paillier加密算法的安全性,不能直接基于第一素数和第二素数直接生成公钥系数。因此,在本发明实施例中,引入与第一素数相对应的第三随机数以及与第二素数相对应的第四随机数,以使得基于第一素数和第三随机数可以获得原paillier加密算法中的大素数P,以及基于第二素数和第四随机数获得原paillier加密算法中的大素数Q。
具体的,首先基于安全参数,生成与第一素数相对应的第三随机数以及与第二素数相对应的第四随机数。其中,第三随机数和第四随机数可以为任意整数,不做限定,但是生成的第三随机数的长度与第四随机数的长度要相等。为了使得第一素数和第三随机数获得原paillier加密算法中的大素数P,以及第二素数和第四随机数获得原paillier加密算法中的大素数Q,其中第一素数的长度与第三随机数的长度具有一定的对应关系,第二素数的长度与第四随机数的长度具有一定的对应关系。例如,生成的第一素数和第二素数的长度为l/2比特,生成的第三随机数和第四随机数的长度为(n-l)/2-1比特。
基于第一素数和第三随机数,确定第一大素数。其中,第一大素数的长度大于第一
素数的长度,比如第一大素数的长度为n比特。基于第一素数和第三随机数,确定第一大素
数的具体实现方式可以为:获取第一素数与第三随机数、以及2的第一乘积值;将第一乘积
值与1的和值确定为第一大素数。在实际应用中,例如,假设生成的第一素数为p,第三随机
数为,则第一乘积值为2p,接着获取第一乘积值与1的和值为2p+1,则确定出第一大
素数,即。
接着,基于第二素数和第四随机数,确定第二大素数。其中,第二大素数的长度大
于第二素数的长度,且满足第一大素数的长度与第二大素数的长度相等,比如第二大素数
的长度为n比特。另外,第一大素数和第二大素数还满足模3同余的特点。在一可选实施例
中,基于第二素数和第四随机数,确定第二大素数的具体实现方式可以为:获取第二素数与
第四随机数、以及2的第二乘积值,将第二乘积值与1的和值确定为第二大素数。具体的,假
设生成的第二素数为q,第三随机数为,则第二乘积值为2q,接着获取第二乘积值与1的
和值为2q+1,则确定出第二大素数Q,即Q=2q+1。
在确定出第一大素数和第二大素数之后,基于第一素数、第二素数、第一大素数、
以及第二大素数,确定公钥系数。具体的,获取第一大素数与1的第一差值以及第二大素数
与1的第二差值,获取第一差值与第二差值的第三乘积值,获取第一素数、第二素数、以及4
的第四乘积值,将第三乘积值与第四乘积值的比值确定为公钥系数。具体应用时,假设第一
素数为p,第二素数为q,第一大素数,第二大素数Q,则获取第一大素数与1的第一差值为
-1,第二大素数与1的第二差值为Q-1,获取第一差值与第二差值的第三乘积值为(-1)(Q-
1),接着获取第一素数、第二素数、以及4的第四乘积值为4pq,将第三乘积值与第四乘积值
的比值确定为公钥系数λ,即λ=(-1)(Q-1)/4pq。由上述方法获得的公钥系数,公钥系数的
长度也明显比原paillier加密算法中的生成公钥的系数明显变短,这样基于公钥系数,生
成的公钥长度也明显变短。
本发明实施例中,通过基于安全参数,生成与第一素数相对应的第三随机数以及与第二素数相对应的第四随机数,第三随机数和第四随机数的长度相同。基于第一素数和第三随机数,确定第一大素数,第一大素数的长度大于第一素数的长度。基于第二素数和第四随机数,确定第二大素数,第二大素数的长度大于第二素数的长度。基于第一素数、第二素数、第一大素数、以及第二大素数,确定公钥系数,从而实现了保持原有paillier加密算法的安全性的基础上,获得较短长度的公钥系数,从而可以获得较短长度的公钥。
上述实施例介绍了对待处理信息进行同态加密的方法,那同样地,在很多应用场景中,对待处理信息进行加密后,用户需要使用私钥对加密密文进行解密,以获得加密密文所对应的明文。因此,本发明实施例中还提出一种同态解密方法。
图3为本发明实施例提供的一种同态解密方法的流程图;参考附图3所示,本发明实施例提供了一种同态解密方法,具体的,该同态解密方法可以包括如下步骤:
步骤301、获取待处理的加密密文以及用于对加密密文进行解密的私钥。
步骤302、确定加密密文所对应的加密层次,加密层次用于表示执行乘法运算的深度。
步骤303、根据加密层次和私钥,对加密密文进行解密,获得加密密文所对应的明文。
在对待处理的加密密文进行解密时,首先获取待处理的加密密文以及用于对加密密文进行解密的私钥。其中,待处理的加密密文可以是对待处理信息直接进行加密后获得的加密密文,也可以为多个加密密文进行同态运算后,获得的加密密文,在此不对加密密文的类型进行限定。
由于加密密文的类型可能为多种,那么为了便于对加密密文进行解密处理,在获得待处理的加密密文之后,可以先确定加密密文所对应的加密层次,这样可以按照加密密文所对应的加密层次,对加密密文采用不同的解密过程,以提高解密效率。其中,加密层次用于表示执行乘法运算的深度,也就是说,可以根据是否执行同态乘法运算来确定加密密文所对应的加密层次。例如,可以定义执行一次同态乘法运算后获得的加密密文所对应的加密层次为二型加密层次,其他情况下的加密密文都为一型加密层次,具体可以包括:执行任意次同态加法运算后获得的加密密文其所对应的加密层次为一型加密层次;或者定义没有进行任何同态运算,直接由明文进行同态加密后获得的加密密文其所对应的加密层次为一型加密层次。
那么,在获取到待处理的加密密文之后,可以先确定加密密文所对应的加密层次。其中,确定加密密文所对应的加密层次的具体实现方式可以为:通过判断加密密文中密文所包括的元素数量,来确定该加密密文所对应的加密层次。比如,若获取到的加密密文其密文是由2个元素组成的,即密文第一部分、密文第二部分,则该加密密文所对应的加密层次为一型加密层次;若获取到的加密密文其密文是由3个元素组成的,即密文第一部分、密文第二部分、密文第三部分,则该加密密文所对应的加密层次为二型加密层次。
在确定出加密密文所对应的加密层次之后,可以根据加密层次以及私钥,对加密密文进行解密,获得加密密文所对的待处理信息。针对不同的加密密文,选择不同的解密方式,具体的,若加密密文所对应的加密层次为一型加密层次,则基于私钥对加密密文的密文第二部分进行解密,获得明文第一部分,并基于加密密文的密文第一部分和明文第一部分,获得加密密文所对应的明文。若加密密文所对应的加密层次为二型加密层次,则基于私钥分别对加密密文的密文第一部分、密文第二部分、密文第三部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于明文第二部分、明文第三部分、明文第四部分,获得加密密文所对应的明文。利用该方法对加密密文进行解密,不仅可以使得解密过程更简单,还可以提高解密效率。
具体的,假设加密密文为,该加密密文所对应的加密层次为一型加密层
次,则只需要对加密密文中的密文第二部分进行解密即可。具体的,基于私钥对加密密文的
密文第二部分进行解密,获得明文第一部分,并基于加密密文的密文第一部分和
明文第一部分,获得加密密文所对应的明文。假设加密密文为,该加密密文所对应的加密层次为二型加密层次,则需要对加密密文
中的密文第一部分、密文第二部分、密文第三部分都进行解密。具体的,基于私钥对加密密
文的密文第一部分进行解密,获得明文第二部分,基于私钥对加密密文的密文第二
部分进行解密,获得明文第三部分,基于私钥对加密密文的密文第三部分进行解
密,获得明文第四部分,并基于明文第二部分、明文第三部分、明文第四部分,获得
加密密文所对应的明文m,即。
由上述描述可知:对加密密文进行解密时,首先根据加密密文所对应的加密层次,选择不同的解密方式,可以更快速地完成各种加密密文的解密过程。另外,上述解密方法中,采用根据加密密文的特点,对加密密文中的各个元素进行解密,可以提高解密效率,从而使得整个解密性能得到提高。
在本发明实施例提供的同态解密方案中,获取待处理的加密密文以及用于对加密密文进行解密的私钥,确定加密密文所对应的加密层次,其中,加密层次用于表示执行乘法运算的深度,根据加密层次和私钥,对加密密文进行解密,获得加密密文所对应的明文。在上述方案中,通过确定加密密文所对应的加密层次,并根据加密层次和私钥,对加密密文进行解密,使得该解密方法不仅可以对直接进行同态加密后得到的加密密文进行解密,也可以直接对进行同态运算后得到的加密密文进行解密,并且可以使得解密过程更简单。
利用本发明实施例所提供的同态加密方法,对待处理信息进行同态加密后所得到的加密密文,可以支持如乘法、加法等形式的计算。为了便于对各个加密密文进行计算,本发明实施例还提供了一种同态计算方法。
图4为本发明实施例提供的一种同态计算方法的流程图;参考附图4所示,本发明实施例提供了一种同态计算方法,具体的,该同态计算方法可以包括如下步骤:
步骤401、获取第一加密密文和第二加密密文。
步骤402、确定第一加密密文所对应的第一加密层次以及第二加密密文所对应的第二加密层次。
步骤403、根据第一加密层次和第二加密层次,对第一加密密文和第二加密密文进行同态运算,获得同态运算结果。
在本发明实施例提供的同态计算方法可以适应于对多种类型的加密密文进行同态计算,并且,对于不同类型的加密密文提供了不同的计算方式。具体的,在对加密进行同态计算时,首先获取第一加密密文和第二加密密文。其中,第一加密密文和第二加密密文可以是利用上述实施例中的同态加密方法,分别对第一待处理信息和第二待处理信息进行同态加密得到的,也可以是基于上述实施例中同态加密方法后获得的加密密文进行同态运算后得到的加密密文,其对第一加密密文和第二加密密文的类型不做限定。
为了提高加密密文同态计算效率,针对不同类型的加密密文采用不同的同态计算方式。在本发明实施例中,可以通过加密密文所对应的加密层次来区分不同类型的加密密文。因此,在获取到第一加密密文和第二加密密文之后,确定第一加密密文所对应的第一加密层次以及第二加密密文所对应的第二加密层次。其加密层次的确定方式可以参考上述发明实施例中的,在此不再赘述。
最后,根据第一加密层次和第二加密层次,对第一加密密文和第二加密密文进行同态运算,获得同态运算结果。其中,同态运算可以包括:同态加法运算、同态乘法运算、同态标量乘等运算。具体的,若同态运算为同态加法运算,那么根据第一加密层次和第二加密层次,对第一加密密文和第二加密密文进行同态运算,获得同态运算结果的具体实现过程可以包括:若第一加密层次和第二加密层次均为一型加密层次,则获取第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的第一和值,接着获取第一加密密文中的密文第二部分与第二加密密文中的密文第二部分的第一乘积值,最后基于第一和值和第一乘积值,确定同态运算结果。
具体的,对明文m1、m2分别进行同态加密,获得第一加密密文和第二
加密密文。并且第一加密密文和第二加密密文所对于的加密层次均为一型加
密层次,则计算第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的和值
即第一和值为,计算第一加密密文中的密文第二部分与第二加密密文中的密文第
二部分的乘积,即第一乘积值为,最后基于第一和值和第一乘积值,确定同态运算结
果为。其中,
从而确定出:。
为了保证上述对第一加密密文和第二加密密文进行同态运算所得到的同态运算
结果正确性,还可以对同态运算结果的正确性进行验证。由于同态加密算法具有数据经过
同态加密得到相应密文数据之后,对密文数据进行特定的计算,得到的密文数据计算结果
在进行对应的同态解密后的明文,等同于对明文数据直接进行相同的计算的特点。那么可
以根据该特点来验证同态计算结果的正确性。具体的,对上述第一加密密文和第二加密密
文进行同态加法运算后获得的同态运算结果进行解密,由于
同态运算结果所对应的加密层次为一型加密层次,可以利用上述实施例中的一型加密层次
所对应的解密方法直接对同态运算结果进行解密。其具体的解密过程为:利用私钥sk对密
文解密,=++()=++(+)=+-(+)+((+)=+。由于对第一加密密文和第二加密
密文进行同态加法运算后获得的同态运算结果进行解密后获得的结果与直接对第一加密
密文所对应的明文和第二加密密文所对应的明文进行加法运算后,获得的结果是一致的,
则可以确定上述同态加密的计算方式是正确的。
另外,对第一加密密文和第二加密密文进行同态加法运算,获得同态运算结果时,第一加密密文和第二加密密文所对应的加密层次可能为二型加密层次。那么具体的,若第一加密层次和第二加密层次均为二型加密层次,则获取第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的第二乘积值,获取第一加密密文中的密文第二部分与第二加密密文中的密文第二部分的第三乘积值,获取第一加密密文中的密文第三部分与第二加密密文中的密文第三部分的第四乘积值,基于第二乘积值、第三乘积值、以及第四乘积值,确定同态运算结果。
具体的,以第一加密密文为,第二加密密文为进
行举例说明。获取第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的第
二乘积值,即第二乘积值为,获取第一加密密文中的密文第二部分与第二加密
密文中的密文第二部分的第三乘积值,即第三乘积值为,获取第一加密密文
中的密文第三部分与第二加密密文中的密文第三部分的第四乘积值,即第四乘积值为,基于第二乘积值、第三乘积值、以及第四乘积值,确定同态运算结果=(,,)。
为了保证上述对第一加密密文和第二加密密文进行同态运算所得到的同态运算
结果正确性,还可以对同态运算结果的正确性进行验证。具体的,为m1*m2所对应的密文,
即=,为m3*m4所对应的密文,即=,对同态运算结果进行解密,由于同态运算结果所对应的加密层次为二型加密层次,可以利
用上述实施例中的二型加密层次所对应的解密方法直接对同态运算结果进行解密。其具体
的解密过程为:=
=m1*m2+m3*m4。由于对第一加密密文和第二加密密文进行同态加法运算后获得的同态运算
结果进行解密后获得的结果与直接对第一加密密文所对应的明文和第二加密密文所对应
的明文进行加法运算后,获得的结果是一致的,则可以确定上述同态加密的计算方式是正
确的。
在实际应用中,还可能会出现第一加密层次为一型加密层次、第二加密层次为二型加密层次的情况,那么对第一加密密文和第二加密密文进行同态加法运算,获得同态运算结果的具体实现方式可以为:若第一加密层次为一型加密层次、第二加密层次为二型加密层次,则对第二加密密文中的密文第二部分和密文第三部分进行处理,获得第二加密密文所对应的目标密文第二部分,接着获取第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的第二和值,之后获取第一加密密文中的密文第二部分与第二加密密文中的目标密文第二部分的第五乘积值,最后基于第二和值和第五乘积值,确定同态运算结果。
以上内容主要介绍了第一加密密文和第二加密密文进行同态加法运算的具体计算方式。但是在实际应用中,还会出现第一加密密文和第二加密密文进行同态乘法运算,本发明实施例还提供了一种同态乘法运算的方法,根据第一加密层次和第二加密层次,对第一加密密文和第二加密密文进行同态乘法运算,获得同态运算结果。具体的,若第一加密层次和第二加密层次都为一型加密层次,则获取加密密文所对应的公钥,基于公钥分别对第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的乘积值、第一加密密文中的密文第一部分与第二加密密文中的密文第二部分、以及第二加密密文中的密文第一部分与第一密文中的密文第二部分进行同态加密,获得第一加密结果,基于公钥对第一加密密文中的密文第二部分进行同态加密,获得第二加密结果,基于公钥对第二加密密文中的密文第二部分进行同态加密,获得第三加密结果,基于第一加密结果、第二加密结果、以及第三加密结果,确定同态运算结果。
具体的,以第一加密密文为,第二加密密文为进行举例
说明。对明文m1、m2分别进行同态加密,获得第一加密密文和第二加密密文。获取加密密文所对应的公钥为pk,基于公钥分别对第一加密密文中的密文
第一部分与第二加密密文中的密文第一部分的乘积值、第一加密密文中的密文第一部分与
第二加密密文中的密文第二部分、以及第二加密密文中的密文第一部分与第一密文中的密
文第二部分进行同态加密,获得第一加密结果,即。
基于公钥对第一加密密文中的密文第二部分进行同态加密,获得第二加密结果,即。基于公钥对第二加密密文中的密文第二部分进行同态加密,获得第三加密
结果,即。基于第一加密结果、第二加密结果、以及第三加密结果,确定同态
运算结果。
为了保证上述对第一加密密文和第二加密密文进行同态运算所得到的同态运算
结果正确性,还可以对同态运算结果的正确性进行验证。具体的,对上述第一加密密文和第
二加密密文进行同态加法运算后获得的同态运算结果进行解密,由于同态运算结果所对应
的加密层次为二型加密层次,可以利用上述实施例中的二型加密层次所对应的解密方法直
接对同态运算结果进行解密。其具体的解密过程为:利用私钥sk对密文解密,=+++=(m1-)(m2-)+(m1-)
+(m2-)=m1m2。由于对第一加密密文和第二加密密文进行同态加法运算后获得的同态
运算结果进行解密后获得的结果与直接对第一加密密文所对应的明文和第二加密密文所
对应的明文进行加法运算后,获得的结果是一致的,则可以确定上述同态加密的计算方式
是正确的。
由于本发明实施例中的公钥和私钥的长度相比于原paillier加密算法中的公钥和私钥的长度都变短了,那么利用公钥获得到的第一加密密文和第二加密密文的长度也将变短,那么在对第一加密密文和第二加密密文进行同态运算时,其运算效率也会得到明显提高。
本发明实施例提供的同态计算方案中,首先获取第一加密密文和第二加密密文,其中第一加密密文和第二加密密文是利用公钥分别对第一待处理信息和第二待处理信息进行同态加密得到的,之后,进一步地确定第一加密密文所对应的第一加密层次以及第二加密密文所对应的第二加密层次,从而根据第一加密层次和第二加密层次,对第一加密密文和第二加密密文进行同态运算,获得同态运算结果,从而不仅实现了对加密密文的同态运算,还可以提高加密密文之间的同态计算效率。
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
图5为本发明实施例提供的一种多项式的同态计算方法的流程图;参考附图5所示,本发明实施例提供了一种多项式的同态计算方法,具体的,该同态计算方法可以包括如下步骤:
步骤501、获取待处理的多项式,待处理的多项式为有限的二次多项式。
步骤502、确定多项式所包含的各个项以及各个项之间的运算关系。
步骤503、对多项式中的各个项分别进行同态加密,获得各个项所对应的加密密文。
步骤504、基于各个项之间的运算关系,对各个项所对应的加密密文进行同态运算,获得同态运算结果。
步骤505、根据同态运算结果,确定多项式所对应的同态计算结果。
接着,基于各个项之间的运算关系,对各个项所对应的加密密文进行同态运算,获得同态运算结果。根据同态运算结果,确定多项式所对应的同态计算结果。具体的,可以基于多个项之间的运算关系对多个项进行分组,得到至少一个组项,然后,再按上文图4示出的本发明一实施例提供的所述同态计算方法,对各组项所含项对应的密文数据进行同态运算,以此获得各组项对应的同态运算结果,进而后续根据各组项对应的同态运算结果来确定多项式的计算结果。
为了更好理解上述所描述的内容,下面以二次多项式进行举例说明。并假设对二次多项式包含的多
个项分别为和。利用公钥pk分别对每个和进行加密,得到:。基于各个项之间的运算关系,利用同态计算
中的步骤进行密文同态乘法计算,计算每个和所对应的密文的和,即,例
如、.....。接着利用同态计算中的步骤对各个密文的和进
行密文同态加法计算,+确定多项式的计算结果即++....。
具体应用时,本应用实施例提供了一种同态加密方法、同态解密方法、同态计算方法、二次多项式同态计算方法,具体的,可以包括以下步骤:
一、密钥生成过程:
二、同态加密过程
三、同态解密方法
四、同态计算过程
步骤1:当加密层次level =1时,密文同态加法计算:
五、二次多项式同态计算过程
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
以下将详细描述本发明的一个或多个实施例的数据存储装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种同态加密装置的结构示意图,该装置位于一电子设备,如图6所示,该装置包括:获取模块11、生成模块12、第一加密模块13、第二加密模块14、确定模块15。
获取模块11,用于获取待处理信息以及用于对所述待处理信息进行同态加密的公钥;
生成模块12,用于生成第一随机数;
第一加密模块13,用于基于所述第一随机数,对所述待处理信息进行加密,获得密文第一部分;
第二加密模块14,用于基于所述公钥,对所述第一随机数进行加密,获得密文第二部分;
确定模块15,用于基于所述密文第一部分和所述密文第二部分,确定所述待处理信息所对应的加密密文。
可选地,所述装置还可以包括密钥生成模块,具体可以用于:获取安全参数,所述安全参数用于表征密钥的安全程度;基于所述安全参数,随机生成第一素数和第二素数,所述第一素数与所述第二素数的长度相等;基于所述第一素数和第二素数,确定公钥系数;生成第二随机数;基于所述公钥系数和所述第二随机数,生成公钥。
可选地,所述密钥生成模块具体还可以用于:基于所述安全参数,生成与所述第一素数相对应的第三随机数以及与所述第二素数相对应的第四随机数,所述第三随机数的长度与第四随机数的长度相等;基于所述第一素数和所述第三随机数,确定第一大素数,所述第一大素数的长度大于所述第一素数的长度;基于所述第二素数和所述第四随机数,确定第二大素数,所述第二大素数的长度大于所述第二素数的长度;基于所述第一素数、所述第二素数、所述第一大素数、以及所述第二大素数,确定公钥系数。
可选地,所述密钥生成模块具体还可以用于:获取所述第一素数与所述第三随机数、以及2的第一乘积值;将所述第一乘积值与1的和值确定为所述第一大素数。
可选地,所述密钥生成模块具体还可以用于:获取所述第二素数与所述第四随机数、以及2的第二乘积值;将所述第二乘积值与1的和值确定为所述第二大素数。
可选地,所述密钥生成模块具体还可以用于:获取所述第一大素数与1的第一差值以及所述第二大素数与1的第二差值;获取所述第一差值与所述第二差值的第三乘积值;获取所述第一素数、所述第二素数、以及4的第四乘积值;将所述第三乘积值与所述第四乘积值的比值确定为所述公钥系数。
可选地,所述第一加密模块13具体可以用于:获取所述待处理信息与所述第一随机数的差值;将所述差值确定为所述密文第一部分。
图6所示装置可以执行前述实施例中同态加密方法的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图6所示同态加密装置的结构可实现为一电子设备,如图7所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中同态加密方法中的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的同态加密方法。
图8为本发明实施例提供的一种同态解密装置的结构示意图,如图8所示,该装置包括:获取模块31、确定模块32、解密模块33。
获取模块31,用于获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定模块32,用于确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
解密模块33,用于根据所述加密层次和所述私钥,对所述加密密文进行解密,获得所述加密密文所对应的明文。
可选地,所述获取模块31具体可以用于:获取第一素数和第二素数;基于所述第一素数和所述第二素数,生成所述私钥。
可选地,所述获取模块31具体可以用于:获取第一素数与所述第二素数的乘积值;将所述乘积值确定为私钥。
可选地,所述解密模块33具体可以用于:若所述加密层次为一型加密层次,则基于所述私钥对所述加密密文的密文第二部分进行解密,获得明文第一部分,并基于所述加密密文的密文第一部分和所述明文第一部分,获得所述加密密文所对应的明文,所述一型加密层次是指所述加密密文由两个元素组成;若所述加密层次为二型加密层次,则基于所述私钥分别对所述加密密文的密文第一部分、密文第二部分、密文第三部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于所述明文第二部分、明文第三部分、明文第四部分,获得所述加密密文所对应的明文,所述二型加密层次是指所述加密密文由三个元素组成。
图8所示装置可以执行前述实施例中同态解密方法中的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图8所示同态解密装置的结构可实现为一电子设备,如图9所示,该设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中同态解密方法中的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的同态解密方法。
图10为本发明实施例提供的一种同态计算装置的结构示意图,如图10所示,该装置包括:获取模块51、确定模块52、运算模块53。
获取模块51,用于获取第一加密密文和第二加密密文,所述第一加密密文和第二加密密文是利用公钥分别对所述第一待处理信息和第二待处理信息进行同态加密得到的;
确定模块52,用于确定所述第一加密密文所对应的第一加密层次以及所述第二加密密文所对应的第二加密层次;
运算模块53,用于根据所述第一加密层次和第二加密层次,对所述第一加密密文和所述第二加密密文进行同态运算,获得同态运算结果。
可选地,所述同态运算包括同态加法运算,所述运算模块53具体可以用于:若所述第一加密层次和所述第二加密层次均为一型加密层次,则获取所述第一加密密文中的密文第一部分与所述第二加密密文中的密文第一部分的第一和值;获取第一加密密文中的密文第二部分与第二加密密文中的密文第二部分的第一乘积值;基于所述第一和值和所述第一乘积值,确定同态运算结果。
可选地,所述同态运算包括同态加法运算,所述运算模块53具体可以用于:若所述第一加密层次和所述第二加密层次均为二型加密层次,则获取所述第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的第二乘积值;获取所述第一加密密文中的密文第二部分与所述第二加密密文中的密文第二部分的第三乘积值;获取所述第一加密密文中的密文第三部分与所述第二加密密文中的密文第三部分的第四乘积值;基于所述第二乘积值、所述第三乘积值、以及第四乘积值,确定同态运算结果。
可选地,所述同态运算包括同态加法运算,所述运算模块53具体可以用于:若所述第一加密层次为一型加密层次、所述第二加密层次为二型加密层次,则对所述第二加密密文进行预处理,获得所述第二加密密文所对应的目标密文第一部分和目标密文第二部分;获取所述第一加密密文中的密文第一部分与所述第二加密密文中的目标密文第一部分的第二和值;获取第一加密密文中的密文第二部分与第二加密密文中的目标密文第二部分的第五乘积值;基于所述第二和值和所述第五乘积值,确定同态运算结果。
可选地,所述同态运算包括同态乘法运算,所述运算模块53具体可以用于:若所述第一加密层次和所述第二加密层次都为一型加密层次,则获取加密密文所对应的公钥;基于所述公钥分别对第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的乘积值、第一加密密文中的密文第一部分与第二加密密文中的密文第二部分、以及第二加密密文中的密文第一部分与第一密文中的密文第二部分进行同态加密,获得第一加密结果;基于所述公钥对所述第一加密密文中的密文第二部分进行同态加密,获得第二加密结果;基于所述公钥对所述第二加密密文中的密文第二部分进行同态加密,获得第三加密结果;基于所述第一加密结果、所述第二加密结果、以及所述第三加密结果,确定同态运算结果。
图10所示装置可以执行前述实施例中同态计算方法中的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图10所示同态计算装置的结构可实现为一电子设备,如图11所示,该设备可以包括:第三处理器61、第三存储器62、第三通信接口63。其中,第三存储器62上存储有可执行代码,当所述可执行代码被第三处理器61执行时,使第三处理器61至少可以实现如前述实施例中同态计算方法中的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的同态计算方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (17)
1.一种同态加密方法,其特征在于,包括:
获取待处理信息以及用于对所述待处理信息进行同态加密的公钥;
生成第一随机数;
基于所述第一随机数,对所述待处理信息进行加密,获得密文第一部分;
基于所述公钥,对所述第一随机数进行加密,获得密文第二部分;
基于所述密文第一部分和所述密文第二部分,确定所述待处理信息所对应的加密密文。
2.根据权利要求1所述的方法,其特征在于,获取用于对所述待处理信息进行同态加密的公钥之前,所述方法还包括:
获取安全参数,所述安全参数用于表征密钥的安全程度;
基于所述安全参数,随机生成第一素数和第二素数,所述第一素数与所述第二素数的长度相等;
基于所述第一素数和第二素数,确定公钥系数;
生成第二随机数;
基于所述公钥系数和所述第二随机数,生成公钥。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一素数和第二素数,确定公钥系数,包括:
基于所述安全参数,生成与所述第一素数相对应的第三随机数以及与所述第二素数相对应的第四随机数,所述第三随机数的长度与第四随机数的长度相等;
基于所述第一素数和所述第三随机数,确定第一大素数,所述第一大素数的长度大于所述第一素数的长度;
基于所述第二素数和所述第四随机数,确定第二大素数,所述第二大素数的长度大于所述第二素数的长度;
基于所述第一素数、所述第二素数、所述第一大素数、以及所述第二大素数,确定公钥系数。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一素数和所述第三随机数,确定第一大素数,包括:
获取所述第一素数与所述第三随机数、以及2的第一乘积值;
将所述第一乘积值与1的和值确定为所述第一大素数。
5.根据权利要求3所述的方法,其特征在于,所述基于所述第二素数和所述第四随机数,确定第二大素数,包括:
获取所述第二素数与所述第四随机数、以及2的第二乘积值;
将所述第二乘积值与1的和值确定为所述第二大素数。
6.根据权利要求3所述的方法,其特征在于,所述基于所述第一素数、所述第二素数、所述第一大素数、以及所述第二大素数,确定公钥系数,包括:
获取所述第一大素数与1的第一差值以及所述第二大素数与1的第二差值;
获取所述第一差值与所述第二差值的第三乘积值;
获取所述第一素数、所述第二素数、以及4的第四乘积值;
将所述第三乘积值与所述第四乘积值的比值确定为所述公钥系数。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第一随机数,对所述待处理信息进行加密,获得密文第一部分,包括:
获取所述待处理信息与所述第一随机数的差值;
将所述差值确定为所述密文第一部分。
8.一种同态解密方法,其特征在于,包括:
获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
根据所述加密层次和所述私钥,对所述加密密文进行解密,获得所述加密密文所对应的明文。
9.根据权利要求8所述的方法,其特征在于,获取用于对所述加密密文进行解密的私钥,包括:
获取第一素数和第二素数;
基于所述第一素数和所述第二素数,生成所述私钥。
10.根据权利要求9所述的方法,其特征在于,所述基于第一素数和第二素数,生成私钥,包括:
获取第一素数与所述第二素数的乘积值;
将所述乘积值确定为私钥。
11.根据权利要求8所述的方法,其特征在于,所述根据所述加密层次以及所述私钥,对所述加密密文进行解密,获得所述加密密文所对应的明文,包括:
若所述加密层次为一型加密层次,则基于所述私钥对所述加密密文的密文第二部分进行解密,获得明文第一部分,并基于所述加密密文的密文第一部分和所述明文第一部分,获得所述加密密文所对应的明文,所述一型加密层次是指所述加密密文由两个元素组成;
若所述加密层次为二型加密层次,则基于所述私钥分别对所述加密密文的密文第一部分、密文第二部分、密文第三部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于所述明文第二部分、明文第三部分、明文第四部分,获得所述加密密文所对应的明文,所述二型加密层次是指所述加密密文由三个元素组成。
12.一种同态计算方法,其特征在于,包括:
获取第一加密密文和第二加密密文;
确定所述第一加密密文所对应的第一加密层次以及所述第二加密密文所对应的第二加密层次;
根据所述第一加密层次和第二加密层次,对所述第一加密密文和所述第二加密密文进行同态运算,获得同态运算结果。
13.根据权利要求12所述的方法,其特征在于,所述同态运算包括同态加法运算,根据所述第一加密层次和第二加密层次,对所述第一加密密文和所述第二加密密文进行同态运算,获得同态运算结果,包括:
若所述第一加密层次和所述第二加密层次均为一型加密层次,则获取所述第一加密密文中的密文第一部分与所述第二加密密文中的密文第一部分的第一和值;
获取第一加密密文中的密文第二部分与第二加密密文中的密文第二部分的第一乘积值;
基于所述第一和值和所述第一乘积值,确定同态运算结果。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
若所述第一加密层次和所述第二加密层次均为二型加密层次,则获取所述第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的第二乘积值;
获取所述第一加密密文中的密文第二部分与所述第二加密密文中的密文第二部分的第三乘积值;
获取所述第一加密密文中的密文第三部分与所述第二加密密文中的密文第三部分的第四乘积值;
基于所述第二乘积值、所述第三乘积值、以及第四乘积值,确定同态运算结果。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
若所述第一加密层次为一型加密层次、所述第二加密层次为二型加密层次,则对所述第二加密密文中的密文第二部分和密文第三部分进行处理,获得所述第二加密密文所对应的目标密文第二部分;
获取所述第一加密密文中的密文第一部分与所述第二加密密文中的密文第一部分的第二和值;
获取第一加密密文中的密文第二部分与第二加密密文中的目标密文第二部分的第五乘积值;
基于所述第二和值和所述第五乘积值,确定同态运算结果。
16.根据权利要求12所述的方法,其特征在于,所述同态运算包括同态乘法运算,所述根据所述第一加密层次和第二加密层次,对所述第一加密密文和所述第二加密密文进行同态运算,获得同态运算结果,包括:
若所述第一加密层次和所述第二加密层次都为一型加密层次,则获取加密密文所对应的公钥;
基于所述公钥分别对第一加密密文中的密文第一部分与第二加密密文中的密文第一部分的乘积值、第一加密密文中的密文第一部分与第二加密密文中的密文第二部分、以及第二加密密文中的密文第一部分与第一密文中的密文第二部分进行同态加密,获得第一加密结果;
基于所述公钥对所述第一加密密文中的密文第二部分进行同态加密,获得第二加密结果;
基于所述公钥对所述第二加密密文中的密文第二部分进行同态加密,获得第三加密结果;
基于所述第一加密结果、所述第二加密结果、以及所述第三加密结果,确定同态运算结果。
17.一种电子设备,其特征在于,包括:存储器和处理器,其中,
所述存储器,用于存储一条或多条计算机程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述一条或多条计算机程序,以用于实现上述权利要求1至7中任一项所述的同态加密方法中的步骤,或者实现上述权利要求8至11中任一项所述的同态解密方法中的步骤,或者实现上述权利要求12至16中任一项所述的同态计算方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479292.2A CN115549891B (zh) | 2022-11-24 | 2022-11-24 | 同态加密方法、同态解密方法、同态计算方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479292.2A CN115549891B (zh) | 2022-11-24 | 2022-11-24 | 同态加密方法、同态解密方法、同态计算方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115549891A true CN115549891A (zh) | 2022-12-30 |
CN115549891B CN115549891B (zh) | 2023-03-10 |
Family
ID=84720417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479292.2A Active CN115549891B (zh) | 2022-11-24 | 2022-11-24 | 同态加密方法、同态解密方法、同态计算方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115549891B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785306A (zh) * | 2021-01-28 | 2021-05-11 | 武汉天喻聚联科技有限公司 | 基于Paillier的同态加密方法及应用系统 |
CN115865348A (zh) * | 2023-02-09 | 2023-03-28 | 北京信安世纪科技股份有限公司 | 数据加密方法、同态计算方法及设备 |
CN117728963A (zh) * | 2024-02-18 | 2024-03-19 | 深圳市纽创信安科技开发有限公司 | 零知识证明方法、安全多方计算系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082790A (zh) * | 2010-12-27 | 2011-06-01 | 北京握奇数据系统有限公司 | 一种数字签名的加/解密方法及装置 |
CN110784300A (zh) * | 2019-11-08 | 2020-02-11 | 中国电子科技网络信息安全有限公司 | 一种基于乘法同态加密的密钥合成方法 |
CN110855421A (zh) * | 2019-10-25 | 2020-02-28 | 高秀芬 | 一种改进的全同态加密方法 |
CN111901123A (zh) * | 2020-07-15 | 2020-11-06 | 浙江军盾信息科技有限公司 | 一种sm2签名的生成方法、存储介质和终端 |
US20210036849A1 (en) * | 2019-08-01 | 2021-02-04 | X-Logos, LLC | Methods and systems for encryption and homomorphic encryption systems using geometric algebra and hensel codes |
CN114124349A (zh) * | 2021-11-19 | 2022-03-01 | 北京数牍科技有限公司 | 一种用于同态加密方案的快速解密方法 |
CN114584278A (zh) * | 2022-02-14 | 2022-06-03 | 北京信安世纪科技股份有限公司 | 数据同态加密方法及装置、数据传输方法及装置 |
CN114785480A (zh) * | 2022-04-12 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 多方安全计算的方法、装置及系统 |
CN115102688A (zh) * | 2022-08-24 | 2022-09-23 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115361109A (zh) * | 2022-07-08 | 2022-11-18 | 暨南大学 | 一种支持双向代理重加密的同态加密方法 |
-
2022
- 2022-11-24 CN CN202211479292.2A patent/CN115549891B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082790A (zh) * | 2010-12-27 | 2011-06-01 | 北京握奇数据系统有限公司 | 一种数字签名的加/解密方法及装置 |
US20210036849A1 (en) * | 2019-08-01 | 2021-02-04 | X-Logos, LLC | Methods and systems for encryption and homomorphic encryption systems using geometric algebra and hensel codes |
CN110855421A (zh) * | 2019-10-25 | 2020-02-28 | 高秀芬 | 一种改进的全同态加密方法 |
CN110784300A (zh) * | 2019-11-08 | 2020-02-11 | 中国电子科技网络信息安全有限公司 | 一种基于乘法同态加密的密钥合成方法 |
CN111901123A (zh) * | 2020-07-15 | 2020-11-06 | 浙江军盾信息科技有限公司 | 一种sm2签名的生成方法、存储介质和终端 |
CN114124349A (zh) * | 2021-11-19 | 2022-03-01 | 北京数牍科技有限公司 | 一种用于同态加密方案的快速解密方法 |
CN114584278A (zh) * | 2022-02-14 | 2022-06-03 | 北京信安世纪科技股份有限公司 | 数据同态加密方法及装置、数据传输方法及装置 |
CN114785480A (zh) * | 2022-04-12 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 多方安全计算的方法、装置及系统 |
CN115361109A (zh) * | 2022-07-08 | 2022-11-18 | 暨南大学 | 一种支持双向代理重加密的同态加密方法 |
CN115102688A (zh) * | 2022-08-24 | 2022-09-23 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785306A (zh) * | 2021-01-28 | 2021-05-11 | 武汉天喻聚联科技有限公司 | 基于Paillier的同态加密方法及应用系统 |
CN112785306B (zh) * | 2021-01-28 | 2023-08-15 | 武汉天喻聚联科技有限公司 | 基于Paillier的同态加密方法及应用系统 |
CN115865348A (zh) * | 2023-02-09 | 2023-03-28 | 北京信安世纪科技股份有限公司 | 数据加密方法、同态计算方法及设备 |
CN115865348B (zh) * | 2023-02-09 | 2023-06-06 | 北京信安世纪科技股份有限公司 | 数据加密方法、同态计算方法及设备 |
CN117728963A (zh) * | 2024-02-18 | 2024-03-19 | 深圳市纽创信安科技开发有限公司 | 零知识证明方法、安全多方计算系统 |
CN117728963B (zh) * | 2024-02-18 | 2024-04-16 | 深圳市纽创信安科技开发有限公司 | 零知识证明方法、安全多方计算系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115549891B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106161034B (zh) | 使用乘法秘密共享的rsa解密 | |
CN110235409B (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
CA3049531C (en) | Homomorphic white box system and method for using same | |
CN115549891B (zh) | 同态加密方法、同态解密方法、同态计算方法及设备 | |
CA1171490A (en) | Fast real-time public key cryptography | |
Das | Secure cloud computing algorithm using homomorphic encryption and multi-party computation | |
US10826694B2 (en) | Method for leakage-resilient distributed function evaluation with CPU-enclaves | |
US11323255B2 (en) | Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes | |
CN110851845B (zh) | 一种轻量级单用户多数据的全同态数据封装方法 | |
US20190044697A1 (en) | Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra | |
CN112737764B (zh) | 一种轻量级多用户多数据的全同态数据加密封装方法 | |
CN115102688B (zh) | 数据处理方法、多项式计算方法及电子设备 | |
CN108985102A (zh) | 数据完整性验证方法、装置、系统及存储介质 | |
Gupta et al. | Compendium of data security in cloud storage by applying hybridization of encryption algorithm | |
Yousif et al. | Information security for big data using the NTRUEncrypt method | |
US10075290B2 (en) | Operator lifting in cryptographic algorithm | |
US20130058483A1 (en) | Public key cryptosystem and technique | |
CN115865348B (zh) | 数据加密方法、同态计算方法及设备 | |
Mohamed | New Frontiers in Cryptography | |
Sasikumar et al. | Comprehensive Review and Analysis of Cryptography Techniques in Cloud Computing | |
Das | A hybrid algorithm for secure cloud computing | |
CN117595979B (zh) | 数据处理方法及设备 | |
Dodmane | A new hybrid symmetric-key technique to enhance data security of textual information using random number generator | |
CN118018204B (zh) | 一种基于椭圆曲线的消息处理系统以及消息处理方法 | |
CN113783682B (zh) | 一种支持打包的门限全同态数据封装方法 |
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 |