CN115865348B - 数据加密方法、同态计算方法及设备 - Google Patents

数据加密方法、同态计算方法及设备 Download PDF

Info

Publication number
CN115865348B
CN115865348B CN202310132981.4A CN202310132981A CN115865348B CN 115865348 B CN115865348 B CN 115865348B CN 202310132981 A CN202310132981 A CN 202310132981A CN 115865348 B CN115865348 B CN 115865348B
Authority
CN
China
Prior art keywords
encryption
ciphertext
encrypted
target
encrypted ciphertext
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
Application number
CN202310132981.4A
Other languages
English (en)
Other versions
CN115865348A (zh
Inventor
秦体红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Infosec Technologies Co Ltd
Original Assignee
Beijing Infosec Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Infosec Technologies Co Ltd filed Critical Beijing Infosec Technologies Co Ltd
Priority to CN202310132981.4A priority Critical patent/CN115865348B/zh
Publication of CN115865348A publication Critical patent/CN115865348A/zh
Application granted granted Critical
Publication of CN115865348B publication Critical patent/CN115865348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例提供一种数据加密方法、同态计算方法及设备,所述方法包括:生成第一随机数和第二随机数,基于第一随机数,对待加密数据进行加密,获得第一加密密文。基于椭圆曲线参数和第二随机数,生成第二加密密文中的第一部分,基于公钥和第二随机数,生成椭圆曲线点,并确定椭圆曲线点所对应的类函数。基于类函数对第一随机数进行加密,获得第二加密密文中的第二部分,基于第一加密密文、第二加密密文中的第一部分、以及第二加密密文中的第二部分,确定待加密数据所对应的目标加密密文,实现了提数据加密性能的提高,有助于提升隐私保护以及安全多方计算效率。并且使得加密密文具备任意次同态加法计算和一次同态乘法运算的特性。

Description

数据加密方法、同态计算方法及设备
技术领域
本发明涉及信息安全数据处理技术领域,尤其涉及一种数据加密方法、同态计算方法及设备。
背景技术
随着云计算的广泛应用,如何安全有效地保护用户隐私与安全成为当今密码学研究领域的热点。若数据以明文形式进行存储则有可能将敏感数据暴露给云服务商,会给用户机密数据带来一系列的安全问题。为解决这一问题,同态加密方案应运而生,利用同态加密方案对用户数据进行加密,再将密文发送到云端,数据在云端可以进行一系列的上传、下载、删除、更新、检索等操作,且操作的均是密文。这样操作既避免了数据在传输过程中被拦截、复制、窜改或伪造等风险,也避免了数据存储方将数据泄露或在服务器端被攻破的危险。
然而,现有paillier同态加密方法,不仅存在计算效率较低的问题,而且这种同态加密方法只支持密文数据的加法同态计算,那么就无法利用同态加密得到的密文数据进行n维向量内积计算的同态计算,从而限制了云端对密文的操作。
发明内容
本发明实施例提供一种数据加密方法、同态计算方法及设备,用以提高数据加密性能。
第一方面,本发明实施例提供一种数据加密方法,该方法包括:
获取待加密数据、用于对所述待加密数据进行加密的公钥、以及椭圆曲线参数;
生成第一随机数和第二随机数;
基于所述第一随机数,对所述待加密数据进行加密,获得第一加密密文;
基于所述椭圆曲线参数和所述第二随机数,生成第二加密密文中的第一部分,所述第二加密密文由两部分组成;
基于所述公钥和所述第二随机数,生成椭圆曲线点,并确定所述椭圆曲线点所对应的类函数;
基于所述类函数对所述第一随机数进行加密,获得第二加密密文中的第二部分;
基于所述第一加密密文、所述第二加密密文中的第一部分、以及所述第二加密密文中的第二部分,确定所述待加密数据所对应的目标加密密文。
第二方面,本发明实施例提供一种数据加密装置,该装置包括:
获取模块,用于获取待加密数据、用于对所述待加密数据进行加密的公钥、以及椭圆曲线参数;
第一生成模块,用于生成第一随机数和第二随机数;
加密模块,用于基于所述第一随机数,对所述待加密数据进行加密,获得第一加密密文;
第二生成模块,用于基于所述椭圆曲线参数和所述第二随机数,生成第二加密密文中的第一部分,所述第二加密密文由两部分组成;
第一确定模块,用于基于所述公钥和所述第二随机数,生成椭圆曲线点,并确定所述椭圆曲线点所对应的类函数;
获得模块,用于基于所述类函数对所述第一随机数进行加密,获得第二加密密文中的第二部分;
第二确定模块,用于基于所述第一加密密文、所述第二加密密文中的第一部分、以及所述第二加密密文中的第二部分,确定所述待加密数据所对应的目标加密密文。
第三方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的数据加密方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的数据加密方法。
在本发明实施例提供的数据加密方案中,通过生成第一随机数和第二随机数,基于第一随机数,对所述待处理信息进行加密,获得第一加密密文。接着基于椭圆曲线参数和第二随机数,生成第二加密密文中的第一部分,第二加密密文由两部分组成,而后基于公钥和第二随机数,生成椭圆曲线点,并确定椭圆曲线点所对应的类函数。基于类函数对所述第一随机数进行加密,获得第二加密密文中的第二部分,基于第一加密密文、第二加密密文中的第一部分、以及第二加密密文中的第二部分,确定待加密数据所对应的目标加密密文。利用本方案对待加密数据进行加密处理,能够很好的提高数据加密性能,有助于提升人工智能、隐私保护以及安全多方计算效率。并且这样的数据加密方法,可以使得加密密文具备一次乘法的特点,从而实现了加密密文可以计算任意次同态加法运算和一次乘法同态运算。
第五方面,本发明实施例提供一种数据解密方法,所述方法包括:
获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
若所述加密层次为一型加密层次,则基于所述私钥和第二加密密文中的第一部分,确定椭圆曲线点以及所述椭圆曲线点所对应的类函数,基于所述类函数对第二加密密文中的第二部分进行解密,获得明文第一部分,并基于所述加密密文的第一加密密文和所述明文第一部分,获得所述加密密文所对应的明文,所述一型加密层次是指所述加密密文由第一加密密文和第二加密密文两个元素组成;
若所述加密层次为二型加密层次,则分别基于所述私钥、第一加密密文中的第一部分、第二加密密文中的第一部分、第三加密密文中的第一部分,对第一加密密文中的第二部分、第二加密密文中的第二部分、第三加密密文中的第二部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于所述明文第二部分、明文第三部分、明文第四部分,获得所述加密密文所对应的明文,所述二型加密层次是指所述加密密文由第一加密密文、第二加密密文以及第三加密密文三个元素组成。
第六方面,本发明实施例提供一种数据解密装置,所述装置包括:
获取模块,用于获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定模块,用于确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
第一解密模块,用于若所述加密层次为一型加密层次,则基于所述私钥和第二加密密文中的第一部分,确定椭圆曲线点以及所述椭圆曲线点所对应的类函数,基于所述类函数对第二加密密文中的第二部分进行解密,获得明文第一部分,并基于所述加密密文的第一加密密文和所述明文第一部分,获得所述加密密文所对应的明文,所述一型加密层次是指所述加密密文由第一加密密文和第二加密密文两个元素组成;
第二解密模块,用于若所述加密层次为二型加密层次,则分别基于所述私钥、第一加密密文中的第一部分、第二加密密文中的第一部分、第三加密密文中的第一部分,对第一加密密文中的第二部分、第二加密密文中的第二部分、第三加密密文中的第二部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于所述明文第二部分、明文第三部分、明文第四部分,获得所述加密密文所对应的明文,所述二型加密层次是指所述加密密文由第一加密密文、第二加密密文以及第三加密密文三个元素组成。
第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的数据解密方法。
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的数据解密方法。
在本发明实施例提供的数据解密方案中,通过确定加密密文所对应的加密层次,加密层次用于表示执行乘法运算的深度,基于加密密文所对应的加密层次对加密密文采取不同的解密处理操作,使得该解密方法不仅可以对直接进行上述数据加密后得到的加密密文进行解密,还可以直接对进行同态运算后得到的加密密文进行解密,并且同时还可以提高解密效率,使得解密过程更加简单。
第九方面,本发明实施例提供一种同态计算方法,所述方法包括:
获取第一目标加密密文和第二目标加密密文;
基于目标加密密文中的加密密文数量,确定所述第一目标加密密文所对应的第一加密层次以及所述第二目标加密密文所对应的第二加密层次,所述加密层次用于表示执行乘法运算的深度;
基于目标加密密文中的各个加密密文的位置信息,确定所述第一目标加密密文中的各个加密密文与所述第二目标加密密文中的各个加密密文之间的对应关系;
基于所述第一加密层次、所述第二加密层次以及所述对应关系,对所述第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。
第十方面,本发明实施例提供一种同态计算装置,所述装置包括:
获取模块,用于获取第一目标加密密文和第二目标加密密文;
第一确定模块,用于基于目标加密密文中的加密密文数量,确定所述第一目标加密密文所对应的第一加密层次以及所述第二目标加密密文所对应的第二加密层次,所述加密层次用于表示执行乘法运算的深度;
第二确定模块,用于基于目标加密密文中的各个加密密文的位置信息,确定所述第一目标加密密文中的各个加密密文与所述第二目标加密密文中的各个加密密文之间的对应关系;
获得模块,用于基于所述第一加密层次、所述第二加密层次以及所述对应关系,对所述第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。
第十一方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第九方面所述的同态计算方法。
第十二方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第九方面所述的同态计算方法。
本发明实施例提供的同态计算方案中,获取第一目标加密密文和第二目标加密密文,并基于目标加密密文中的加密密文数量,确定第一目标加密密文所对应的第一加密层次以及第二目标加密密文所对应的第二加密层次,加密层次用于表示执行乘法运算的深度。然后基于目标加密密文中的各个加密密文的位置信息,确定第一目标加密密文中的各个加密密文与第二目标加密密文中的各个加密密文之间的对应关系,而后基于第一加密层次、第二加密层次以及对应关系,对第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。在上述方案中,不仅实现了对多个加密密文的同态运算,还可以提高加密密文之间的同态计算效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据加密方法的流程图;
图2为本发明实施例提供的一种数据解密方法的流程图;
图3为本发明实施例提供的一种同态计算方法的流程图;
图4为本发明实施例提供的一种n维向量内积的同态计算方法的流程图;
图5为本发明实施例提供的一种数据加密装置的结构示意图;
图6为与图5所示实施例提供的数据加密装置对应的电子设备的结构示意图;
图7为本发明实施例提供的一种数据解密装置的结构示意图;
图8为与图7所示实施例提供的数据解密装置对应的电子设备的结构示意图;
图9为本发明实施例提供的一种同态计算装置的结构示意图;
图10为与图9所示实施例提供的同态装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
随着互联网的发展和云计算技术的广泛应用,尤其是云计算服务器上的大量电子商务交易,如何安全有效地保护用户隐私与安全成为当今密码学研究领域的热点。如果将用户的数据直接以明文形式进行传输存储,可能会将一些敏感数据(如用户身份信息)暴露给云服务商,进而给用户机密数据带来一系列的安全问题。为保证数据传输过程中的安全,需要对数据进行加密保护,然而,在对数据进行加密处理后,原始数据的原有的数据结构就遭到破坏了,从而容易使得加密后的数据失去了信息处理的功能。这时,同态加密(Homomorphic Encryption)变得更加重要。
同态加密是一类具有特殊自然属性的加密方法,与一般加密算法相比,同态加密除了能实现基本的加密操作之外,还能实现密文间的多种计算功能,即先计算后解密可等价于先解密后计算。本质上,同态加密是指这样一种加密函数,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。由于这个良好的性质,人们可以委托第三方对数据进行处理而不泄露信息。例如,在实际应用中,可以利用同态加密技术方案来对数据进行加密得到相应的密文数据,再将密文数据发送到云端,当在云端针对数据进行的一系列操作,比如上传、下载、删除、更新、检索、计算等,将均是密文数据,这样既可以避免数据在传输过程中被拦截、复制、篡改或伪造等风险,也可以避免数据存储方将数据泄露或在服务器端被攻破的危险。
目前,现有的同态加密方案虽然多种多样,但仍存在加密性能低的问题。另外,现存在的同态加密方案中,基于paillier算法的同态加密,存在计算效率较低的问题,并且这种同态加密只支持加法同态计算,那么就无法利用同态加密得到的密文数据进行n维向量内积计算的同态计算,从而限制了云端对密文的操作。另外,基于SM2算法扩展到剩余类环上的同态加密算法,不能同时支持乘法同态计算和加法同态计算,限制了该方法的使用范围。并且,在实际应用中,同态加密方案会导致加密密文膨胀,从而造成加密密文占用了大量了存储空间和通信带宽的问题。为了解决上述技术问题,本发明各实施例提供了一种数据加密方法、数据解密方法、同态计算方法及设备。利用本发明提供的数据加密方法,不仅可以有效提高数据加密性能,而且可以使得加密后获得的加密密文支持任意次同态加法运算以及一次同态乘法运算的特点。另外,本发明还提供了一种新的同态计算方法,该方法不仅实现对n维向量内积的同态计算,还可以可以有效的提高同态计算效率,从而有助于提升人工智能、隐私保护以及安全多方计算的效率。
为了使本技术领域的人员更好地理解本发明,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。本发明实施例提供的数据加密方法、数据解密方法、同态计算方法可以由一电子设备来执行,该电子设备可以为同一电子设备,也可以为不同的电子设备,并且电子设备可以是诸如PC机、笔记本电脑、智能手机等终端设备。
图1为本发明实施例提供的一种数据加密方法的流程图;参考附图1所示,本发明实施例提供了一种数据加密方法,具体的,该数据加密方法可以包括如下步骤:
步骤101、获取待加密数据、用于对待加密数据进行加密的公钥、以及椭圆曲线参数。
步骤102、生成第一随机数和第二随机数。
步骤103、基于第一随机数,对待处理信息进行加密,获得第一加密密文。
步骤104、基于椭圆曲线参数和第二随机数,生成第二加密密文中的第一部分,第二加密密文由两部分组成。
步骤105、基于公钥和第二随机数,生成椭圆曲线点,并确定椭圆曲线点所对应的类函数。
步骤106、基于类函数对第一随机数进行加密,获得第二加密密文中的第二部分。
步骤107、基于第一加密密文、第二加密密文中的第一部分、以及第二加密密文中的第二部分,确定待加密数据所对应的目标加密密文。
由于Paillier同态加密算法中的加密密文的长度较长,计算效率较低,然而SM2加密算法的加密密钥较短,计算效能较高。然而,SM2加密算法不支持密文的同态加法运算,也不支持密文的同态乘法运算,那么利用该数据加密方法无法完成对n维向量内积等隐私计算,限制了该数据加密方法的使用范围。基于此,本发明实施例提供了一种新的数据加密方法,该数据加密方法是在SM2算法的基础上,对SM2加密算法进行改进,使得该数据加密方法中的加密密钥的长度较短,计算效率较高,并且还可以支持密文的任意次同态加法运算以及一次同态乘法运算。
其中,本发明实施例中提供的数据加密方法可以用于对各种待加密的数据进行加密处理,在对待加密数据进行加密时,首先获取待加密数据、用于对待加密数据进行加密的公钥、以及用于对待加密数据进行加密的椭圆曲线参数。其中,待加密数据可以为消息、文本、视频、图片、音频等。另外,在实际应用中,在获取用于对待加密数据进行加密的公钥之前,该数据加密方法还可以包括生成加密公钥的过程。具体的,生成第三随机数,并将第三随机数确定为用于对目标加密密文进行解密的私钥;基于私钥和椭圆曲线参数,生成用于对待加密数据进行加密的公钥。
在本发明实施例中,可以基于SM2算法来生成用于对待加密数据进行加密的公钥,其中,私钥
Figure SMS_1
是一个0到q-1之间的一个随机整数,另外,q指是SM2曲线参数中的阶,即/>
Figure SMS_2
。并且可以使用公式/>
Figure SMS_3
计算公钥/>
Figure SMS_4
,其中G是SM2曲线参数中的基点,/>
Figure SMS_5
,/>
Figure SMS_6
表示定义在有限域/>
Figure SMS_7
上的椭圆曲线。由于本发明实施例中用于对待加密数据进行加密的公钥是基于SM2椭圆曲线生成的,那么该公钥与同态加密算法中的公钥相比,其公钥的长度较短,那么可以有效地提高数据加密的计算性能以及后续加密密文的同态计算效率,并且可以有效地避免加密密文地膨胀。
在生成加密密钥之后,接着,生成第一随机数和第二随机数。其中,第一随机数属于明文空间内的一个随机数,并且为了安全性考虑,第一随机数的长度和待处理信息的长度相等。第二随机数为一个0到q-1的一个随机整数。并且第一随机数主要用于对待加密数据进行加密,第二随机数主要用于对第一随机数进行加密,以起到混淆的作用。具体的,基于第一随机数,对待处理信息进行加密,获得第一加密密文。其中,基于第一随机数,对待加密数据进行加密,获得第一加密密文的具体实现方式可以包括:获取待加密数据与第一随机数的差值,并对差值进行模运算,获得模运算结果,最后将模运算结果确定为第一加密密文。通过该方法获得的第一加密密文,可以使得该数据加密方法获得的加密密文具备一次同态乘法的性质。
具体的,假设待加密数据为消息m,生成的第一随机数为r,获取待加密数据m与第一随机数r的差值为m-r,对该差值进行模p运算,获得模运算结果为(m-r)mod p,并将模运算结果确定为第一加密密文,即第一加密密文为(m-r)mod p。其中,p为SM2曲线的域参数,
并且p=
Figure SMS_8
本发明实施例提供的数据加密方法,其加密过程由两部分组成,第一部分是基于第一随机数,对待加密数据进行加密,获得第一加密数据,第二部分数对第一随机数进行加密,获得第二加密密文。其中,第二加密密文由两部分组成。具体的,第二加密密文的生成过程的实现方式可以为:基于椭圆曲线参数和第二随机数,生成第二加密密文中的第一部分。而后,基于公钥和第二随机数,生成椭圆曲线点,并确定椭圆曲线点所对应的类函数,基于类函数对第一随机数进行加密,获得第二加密密文中的第二部分。
在一可选实施例中,基于SM2曲线的剩余类环上的同态加密算法对第一随机数进行加密生成第二加密密文的过程具体可以包括:随机生成第二随机数r,并且且r为0-q-1之间的一个随机整数,其中,q为SM2曲线参数中的阶。获取椭圆曲线中的基点G,基于第二随机数和椭圆曲线基点计算第二加密密文中的第一部分
Figure SMS_10
,然后,基于公钥和第二随机数确定椭圆曲线点/>
Figure SMS_12
。接着,计算椭圆曲线的剩余类环上的椭圆曲线点/>
Figure SMS_14
所对应的点函数/>
Figure SMS_11
,并基于该类函数对第一随机数进行加密,获得第二加密密文中的第二部分
Figure SMS_13
,最后输出第二加密密文/>
Figure SMS_15
。其中,/>
Figure SMS_16
表示椭圆曲线点,f(.)表示剩余类环上的椭圆曲线群到目标群的群同态映射,q表示有限域上的椭圆曲线的阶,/>
Figure SMS_9
表示有限域上的椭圆曲线群到剩余类环上的椭圆曲线群的群同态映射。/>
最后,基于第一加密密文、第二加密密文中的第一部分、以及第二加密密文中的第二部分,确定待加密数据所对应的目标加密密文。其中,待加密数据所对应的目标加密密文是由第一加密密文和第二加密密文构成,在保证数据加密方法的安全性的基础上,该数据加密方法不仅提高了数据加密性能,同时还可以使得该数据加密方法可以同时支持同态加法运算和同态乘法运算。
具体应用时,假设待加密数据为消息m,用于对待加密数据m进行加密的公钥为pk,对待加密数据m进行加密时,生成一个随机数r,且r
Figure SMS_17
,对待加密数据m进行加密获得第一加密密文/>
Figure SMS_18
,并基于SM2曲线的剩余类环上同态加密算法,对第一随机随机数进行加密获得第二加密密文/>
Figure SMS_19
,基于第一加密密文和第二加密密文获得目标加密密文C,即/>
Figure SMS_20
。其中,
Figure SMS_21
满足加法同态性质,即/>
Figure SMS_22
本发明实施例提供的数据加密方法,通过生成第一随机数和第二随机数,基于第一随机数,对待加密数据进行加密,获得第一加密密文,并基于椭圆曲线参数和第二随机数,生成第二加密密文中的第一部分,基于公钥和第二随机数,生成椭圆曲线点,并确定椭圆曲线点所对应的类函数,而后基于类函数对第一随机数进行加密,获得第二加密密文中的第二部分,基于第一加密密文、第二加密密文中的第一部分、以及第二加密密文中的第二部分,确定待加密数据所对应的目标加密密文,使得待加密数据所对应的目标加密密文由两部分构成,使得目标加密密文具备一次乘法的特点,从而实现了目标加密密文可以计算任意次加法同态计算和一次乘法同态计算,从而能够很好的提高数据加密性能,有助于提升人工智能、隐私保护以及安全多方计算的效率。
上述实施例介绍了对待加密数据进行数据加密的方法,那同样地,在很多应用场景中,对待加密数据进行加密后,用户需要使用私钥对加密密文进行解密,以获得目标加密密文所对应的明文。因此,本发明实施例中还提出一种数据解密方法。
图2为本发明实施例提供的一种数据解密方法的流程图;参考附图2所示,本发明实施例提供了一种数据解密方法,具体的,该数据解密方法可以包括如下步骤:
步骤201、获取待处理的加密密文以及用于对加密密文进行解密的私钥。
步骤202、确定加密密文所对应的加密层次,加密层次用于表示执行乘法运算的深度。
步骤203、若加密层次为一型加密层次,则基于私钥和第二加密密文中的第一部分,确定椭圆曲线点所对应的类函数,基于类函数对第二加密密文中的第二部分进行解密,获得明文第一部分,并基于加密密文的第一加密密文和明文第一部分,获得加密密文所对应的明文,一型加密层次是指加密密文由第一加密密文和第二加密密文两个元素组成。
步骤204、若加密层次为二型加密层次,则分别基于私钥、第一加密密文中的第一部分、第二加密密文中的第一部分、第三加密密文中的第一部分,对第一加密密文中的第二部分、第二加密密文中的第二部分、第三加密密文中的第二部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于明文第二部分、明文第三部分、明文第四部分,获得加密密文所对应的明文,二型加密层次是指加密密文由第一加密密文、第二加密密文以及第三加密密文三个元素组成。
在对待处理的加密密文进行解密处理时,首先获取待处理的加密密文以及用于对加密密文进行解密的私钥。其中,待处理的加密密文可以指直接对待加密数据进行数据加密后获得的目标加密密文,也可以时指对加密后的多个目标加密密文进行同态运算后获得的加密密文,在本发明实施例中不对加密密文的类型进行限定。
由于待处理的加密密文对应有多种类型,为了更高效地完成对待处理的加密密文的解密处理,那么在对待处理的加密密文进行解密时,可以先确定待处理的加密密文所对应的加密层次,这样可以按照加密密文所对应的加密层次,对加密密文采用不同的解密过程,可以以提高解密效率。其中,加密层次用于表示执行乘法运算的深度,也就是说,可以根据是否执行同态乘法运算来确定加密密文所对应的加密层次。例如,可以定义执行一次同态乘法运算后获得的加密密文所对应的加密层次为二型加密层次,其他情况下的加密密文都为一型加密层次,具体可以包括:执行任意次同态加法运算后获得的加密密文其所对应的加密层次为一型加密层次;或者定义没有进行任何同态运算,直接由明文进行同态加密后获得的加密密文其所对应的加密层次为一型加密层次。
具体的,在获取到待处理的加密密文之后,确定加密密文所对应的加密层次。其中,确定加密密文所对应的加密层次的具体实现方式可以包括:判断加密密文中所包括的密文数量(加密密文中所包括的元素数量),来确定该加密密文所对应的加密层次。比如,若获取到的加密密文中包括两个密文,即待处理的加密密文中包括第一加密密文、第二加密密文,则该加密密文所对应的加密层次为一型加密层次;若获取到的加密密文中包括3个加密密文,即待处理的加密密文中包括第一加密密文、第二加密密文、第三加密密文,则该加密密文所对应的加密层次为二型加密层次。
在确定出待处理的加密密文所对应的加密层次后,基于待处理的加密密文所对应的加密层次采用不同的解密方法,具体的,若待处理的加密密文所对应的加密层次为一型加密层次,则基于私钥和第二加密密文中的第一部分,确定椭圆曲线点所对应的类函数,基于类函数对第二加密密文中的第二部分进行解密,获得明文第一部分,并基于加密密文的第一加密密文和明文第一部分,获得加密密文所对应的明文。若待处理的加密密文所对应的加密层次为二型加密层次,则分别基于私钥、第一加密密文中的第一部分、第二加密密文中的第一部分、第三加密密文中的第一部分,对第一加密密文中的第二部分、第二加密密文中的第二部分、第三加密密文中的第二部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于明文第二部分、明文第三部分、明文第四部分,获得加密密文所对应的明文。利用该方法对加密密文进行解密,不仅可以使得解密过程更简单,还可以提高解密效率。
具体的,假设加密密文为
Figure SMS_23
,该加密密文所对应的加密层次为一型加密层次,则只需要对加密密文中的第二加密密文/>
Figure SMS_29
进行解密即可。具体的,基于私钥对加密密文中的第二加密密文进行解密,获得明文第一部分/>
Figure SMS_32
,并基于加密密文的密文第一部分/>
Figure SMS_25
和明文第一部分/>
Figure SMS_27
,获得加密密文所对应的明文/>
Figure SMS_30
。其中,可以基于SM2曲线的剩余类环上的同态解密方法对加密密文中的第二加密密文进行解密,具体的实现过程可以包括:基于私钥d和第二加密密文中的第一部分/>
Figure SMS_33
,计算椭圆曲线点/>
Figure SMS_26
,并计算椭圆曲线点所对应的类函数/>
Figure SMS_28
,并基于类函数/>
Figure SMS_31
对第二加密密文中的第二部分/>
Figure SMS_34
进行解密,获得明文第一部分即明文第一部分为/>
Figure SMS_24
在一可选实施例中,假设加密密文为
Figure SMS_35
,该加密密文所对应的加密层次为二型加密层次,则需要对加密密文中的第一加密密文、第二加密密文、以及第三加密密文都进行解密。具体的,基于私钥对加密密文中的第一加密密文进行解密,获得明文第二部分/>
Figure SMS_36
,基于私钥对加密密文中的第二加密密文进行解密,获得明文第三部分/>
Figure SMS_37
,基于私钥对加密密文中的第三加密密文进行解密,获得明文第四部分
Figure SMS_38
,并基于明文第二部分、明文第三部分、明文第四部分,获得加密密文所对应的明文m,即/>
Figure SMS_39
。具体的,分别基于私钥、第一加密密文中的第一部分、第二加密密文中的第一部分、第三加密密文中的第一部分,对第一加密密文中的第二部分、第二加密密文中的第二部分、第三加密密文中的第二部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于明文第二部分、明文第三部分、明文第四部分,获得加密密文所对应的明文的具体实现过程可以参考上述实施例中的基于SM2曲线的剩余类环上的同态解密方法对加密密文中的第一加密密文、第二加密密文、以及第三加密密文分别进行解密。
由上述描述可知:对加密密文进行解密时,首先根据加密密文所对应的加密层次,选择不同的解密方式,可以更快速地完成各种加密密文的解密过程。另外,上述解密方法中,采用根据加密密文的特点,对加密密文中的各个元素进行解密,可以提高解密效率,从而使得整个解密性能得到提高。
在本发明实施例提供的数据解密方案中,通过确定待处理的加密密文的加密层次,并基于加密层次采取不同的解密方法分别对加密密文进行解密,使得该解密方法不仅可以对直接进行同态加密后得到的加密密文进行解密,也可以直接对进行同态运算后得到的加密密文进行解密,并且可以使得解密过程更简单。
利用本发明实施例所提供的数据加密方法,对待加密数据进行数据加密后所得到的加密密文,可以支持如乘法、加法等形式的计算。为了便于对各个加密密文进行计算,本发明实施例还提供了一种同态计算方法。
图3为本发明实施例提供的一种同态计算方法的流程图;参考附图3所示,本发明实施例提供了一种同态计算方法,具体的,该同态计算方法可以包括如下步骤:
步骤301、获取第一目标加密密文和第二目标加密密文。
步骤302、基于目标加密密文中所包括的加密密文数量,确定第一目标加密密文所对应的第一加密层次以及第二目标加密密文所对应的第二加密层次,加密层次用于表示执行乘法运算的深度。
步骤303、基于目标加密密文中的各个加密密文的位置信息,确定第一目标加密密文中的各个加密密文与第二目标加密密文中的各个加密密文之间的对应关系。
步骤304、基于第一加密层次、第二加密层次以及对应关系,对第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。
在本发明实施例提供的同态计算方法可以用于对多种类型的加密密文进行同态计算,并且,对于不同类型的加密密文提供了不同的计算方式。具体的,利用上述数据加密方法获得的目标加密密文后,可以对多个目标加密密文进行同态计算,在对多个目标加密密文进行同态计算时,首先获取第一目标加密密文和第二目标加密密文。其中,第一目标加密密文和第二目标加密密文可以是利用上述实施例中的数据加密方法,分别对第一待加密数据和第二待加密数据进行数据加密后获得的,也可以是基于上述实施例中数据加密方法后获得的目标加密密文进行同态运算后得到的加密密文,其对第一目标加密密文和第二目标加密密文的类型不做限定。
为了提高加密密文同态计算效率,针对不同类型的加密密文采用不同的同态计算方式。在本发明实施例中,可以通过加密密文所对应的加密层次来区分不同类型的加密密文。因此,在获取到第一目标加密密文和第二目标加密密文之后,基于目标密文中所包括的加密密文数量,确定第一目标加密密文所对应的第一加密层次以及第二目标加密密文所对应的第二加密层次。即基于第一目标加密密文中所包括的加密密文数量确定第一目标加密密文所对应的第一加密层次,基于第二目标加密密文中所包括的加密密文数量确定第二目标加密密文所对应的第二加密层次。其中,确定第一目标加密密文所对应的第一加密层次以及第二加密密文所对应的第二加密层次的具体实现方式可以参考上述发明实施例中的相关描述,在此不再赘述。
在确定出第一目标加密密文所对应的第一加密层次以及第二目标加密密文所对应的第二加密层次之后,基于目标加密密文中的各个加密密文的位置信息,确定第一目标加密密文中的各个加密密文与第二目标加密密文中的各个加密密文之间的对应关系。即根据第一目标加密密文中的各个加密密文的位置信息和第二目标加密密文中的各个加密密文位置信息,确定第一目标加密密文中各个加密密文与第二目标加密密文中各个加密密文之间的对应关系。每个目标加密密文都由多个加密密文组成,并且在对待加密数据进行加密生成目标加密密文按照生成各个加密密文的顺序依次存储在目标加密密文中,那么可以按照存储顺序为目标加密密文中的各个加密密文标记上位置信息。例如,目标加密密文中第一个存储的密文标记为第一加密密文,第二个存储的密文标记为第二加密密文,第三个存储的密文标记为第三加密密文等等。由于第一目标加密密文和第二加密密文都是基于上述发明实施例中的数据加密方法获得的或者基于上述发明实施例中的数据加密方法获得后进行同态运算后获得的,那么第一目标加密密文和第二目标加密密文中所包括的各个加密密文之间存在一定的对应关系。
为了便于对第一目标加密密文和第二加密密文进行同态计算,那么在对第一目标加密密文和第二加密密文进行同态计算时,基于第一目标加密密文所对应的第一加密层次、第二加密密文所对应的第二加密层次以及第一目标加密密文中的各个加密密文和第二目标加密密文中的各个加密密文之间的对应关系,对第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。其中,同态运算可以包括:同态加法运算、同态乘法运算、同态标量乘等运算。
具体的,若同态运算为同态加法运算,那么基于第一加密层次、第二加密层次以及所述对应关系,对第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果的具体实现过程可以包括:若第一加密层次和第二加密层次均为一型加密层次,则获取第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第一和值,获取第一目标加密密文中的第二加密密文与第二目标加密密文中的第二加密密文的第二和值,基于第一和值和第二和值,确定同态运算结果。其中,一型加密层次是指目标加密密文由两个密文组成。
具体的,对明文m1、m2分别进行数据加密,获得第一目标加密密文
Figure SMS_40
和第二目标加密密文/>
Figure SMS_41
。并且第一目标加密密文和第二目标加密密文所对应的加密层次均为一型加密层次,则计算第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的和值即第一和值为/>
Figure SMS_42
,计算第一目标加密密文中的第二加密密文与第二目标加密密文中的第二加密密文的和值,即第二和值为/>
Figure SMS_43
,最后基于第一和值和第二和值,确定同态运算结果为
Figure SMS_44
其中
Figure SMS_45
,从而确定出:
Figure SMS_46
。其中,/>
Figure SMS_47
是指基于SM2曲线的剩余类环上同态加密算法,具体实现过程可以参考上述发明实施例中的描述。
为了保证上述同态计算方法对第一目标加密密文和第二目标加密密文进行同态运算所得到的同态运算结果正确性,还可以对同态运算结果的正确性进行验证。由于上述数据加密算法具有对待加密数据进行数据加密处理得到相应密文数据之后,对密文数据进行特定的计算,得到的密文数据计算结果,并对密文数据计算结果进行对应的数据解密后获得的明文,等同于直接对明文数据进行相同的特定计算的特点。那么可以根据该特点来验证同态计算结果的正确性。具体的,对上述第一目标加密密文和第二目标加密密文进行同态加法运算后获得的同态运算结果
Figure SMS_48
进行解密,由于同态运算结果所对应的加密层次为一型加密层次,可以利用上述实施例中的一型加密层次所对应的解密方法直接对同态运算结果进行解密。由于对第一目标加密密文和第二目标加密密文进行同态加法运算后获得的同态运算结果进行解密后获得的结果与直接对第一目标加密密文所对应的明文和第二目标加密密文所对应的明文进行加法运算后,获得的结果是一致的,则可以确定上述同态加密的计算方式是正确的。
另外,对第一目标加密密文和第二目标加密密文进行同态加法运算,获得同态运算结果时,第一目标加密密文和第二目标加密密文所对应的加密层次可能为二型加密层次。那么具体的,若第一加密层次和第二加密层次均为二型加密层次,则获取第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第三和值,获取第一目标加密密文中的第二加密密文与第二目标加密密文中的第二加密密文的第四和值,获取第一目标加密密文中的第三加密密文与第二目标加密密文中的第三加密密文的第五和值,最后基于第三和值、第四和值、以及第五和值,确定同态运算结果。其中,二型加密层次是指目标加密密文由三个密文组成。
具体的,以第一目标加密密文为
Figure SMS_50
,第二目标加密密文为
Figure SMS_55
进行举例说明。获取第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的和值/>
Figure SMS_58
,即第三和值为/>
Figure SMS_52
,接着获取第一目标加密密文中的第二加密密文与第二目标加密密文中的第二加密密文的和值/>
Figure SMS_54
,即第四和值为/>
Figure SMS_57
,获取第一目标加密密文中的第三加密密文与第二目标加密密文中的第三加密密文的和值/>
Figure SMS_60
,即第五和值为/>
Figure SMS_49
,最后基于第三和值、第四和值、以及第五和值,确定同态运算结果/>
Figure SMS_56
=(/>
Figure SMS_59
,/>
Figure SMS_61
Figure SMS_51
)。/>
Figure SMS_53
是指基于SM2曲线的剩余类环上同态加密算法。
为了保证上述同态计算方法对第一目标加密密文和第二目标加密密文进行同态运算所得到的同态运算结果正确性,还可以对同态运算结果的正确性进行验证。具体的,
Figure SMS_62
为m1*m2所对应的密文,即/>
Figure SMS_63
=/>
Figure SMS_64
,/>
Figure SMS_65
为m3*m4所对应的密文,即/>
Figure SMS_66
=
Figure SMS_67
,对同态运算结果/>
Figure SMS_68
进行解密,由于同态运算结果所对应的加密层次为二型加密层次,可以利用上述实施例中的二型加密层次所对应的解密方法直接对同态运算结果进行解密。由于对第一目标加密密文和第二目标加密密文进行同态加法运算后获得的同态运算结果进行解密后获得的结果与直接对第一目标加密密文所对应的明文和第二目标加密密文所对应的明文进行加法运算后,获得的结果是一致的,则可以确定上述同态加密的计算方式是正确的。
在实际应用中,还可能会出现第一加密层次为一型加密层次、第二加密层次为二型加密层次的情况,那么对第一目标加密密文和第二目标加密密文进行同态加法运算,获得同态运算结果的具体实现方式可以为:对第二目标加密密文中的第二加密密文和第三加密密文进行处理,获得第二目标加密密文所对应的目标第二加密密文,并获取第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第六和值,获取第一目标加密密文中的第二加密密文与第二目标加密密文中的目标第二加密密文的第七和值,基于第六和值和第七和值,确定同态运算结果。
以上内容主要介绍了第一目标加密密文和第二目标加密密文进行同态加法运算的具体计算方式。但是在实际应用中,还会面临第一目标加密密文和第二目标加密密文的同态乘法运算,本发明实施例还提供了一种同态乘法运算的方法,基于第一加密层次、第二加密层次以及对应关系,对第一目标加密密文和第二目标加密密文进行同态乘法运算,获得同态运算结果。具体的,若第一加密层次和第二加密层次都为一型加密层次,则获取目标加密密文所对应的公钥,基于公钥对第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第一乘积值进行加密,获得第一加密结果,接着基于公钥对第一目标加密密文中的第一加密密文进行加密,获得第二加密结果,并获取第二加密结果与第二目标加密密文中的第二加密密文的第二乘积值,然后基于公钥对第二目标加密密文中的第一加密密文进行加密,获得第三加密结果,并获得第三加密结果与第一目标加密密文中的第二加密密文的第三乘积值,而后获取第一加密结果、第二乘积值、以及第三乘积值的第八和值,最后基于第八和值、第一目标加密密文中的第二加密密文、第二目标加密密文中的第二加密密文,确定同态运算结果。
在一可选实施例中,基于第八和值、第一目标加密密文中的第二加密密文、第二目标加密密文中的第二加密密文,确定同态运算结果的具体实现过程可以包括:利用SM2曲线的剩余类环上同态加密方法,基于公钥对第一目标加密密文中的第二加密密文进行加密,获得第四加密结果,接着基于公钥对第二目标加密密文中的第二加密密文进行加密,获得第五加密结果,最后基于第八和值、第四加密结果、第五加密结果,确定同态乘法运算结果。
具体的,以第一目标加密密文为
Figure SMS_77
,第二目标加密密文
Figure SMS_71
为进行举例说明。利用上述发明实施例中的数据加密方法对明文m1、m2分别进行数据加密,获得第一目标加密密文/>
Figure SMS_74
和第二目标加密密文
Figure SMS_72
。获取加密密文所对应的公钥为pk,基于公钥对第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第一乘积值进行加密,获得第一加密结果/>
Figure SMS_75
。基于公钥对第一目标加密密文中的第一加密密文进行加密,获得第二加密结果/>
Figure SMS_79
,并获取第二加密结果与第二目标加密密文中的第二加密密文的第二乘积值/>
Figure SMS_83
。基于公钥对第二目标加密密文中的第一加密密文进行加密,获得第三加密结果/>
Figure SMS_80
,并获得第三加密结果与第一目标加密密文中的第二加密密文的第三乘积值/>
Figure SMS_84
。计算第一加密结果、第二乘积值、以及第三乘积值的第八和值/>
Figure SMS_69
。然后,基于公钥对第一目标加密密文中的第二加密密文进行加密,获得第四加密结果/>
Figure SMS_76
,接着基于公钥对第二目标加密密文中的第二加密密文进行加密,获得第五加密结果
Figure SMS_78
,最后基于第八和值、第四加密结果、第五加密结果,确定同态乘法运算结果/>
Figure SMS_81
=(/>
Figure SMS_82
Figure SMS_85
,/>
Figure SMS_70
)。其中,/>
Figure SMS_73
是一种基于SM2曲线的剩余类环上同态加密算法。
其中,利用SM2曲线的剩余类环上同态加密算法,基于公钥对第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的乘积值进行加密,获得第一加密结果的具体实现过程可以包括:获取第一目标加密密文中的第一加密密文与第二加密密文中的第一加密密文的第一乘积值,生成第四随机数;基于椭圆曲线参数和第四随机数,生成第一加密结果中的第一部分,第一加密结果由两部分组成;基于公钥和四随机数,生成椭圆曲线点,并确定椭圆曲线点所对应的类函数;基于类函数对第一乘积值进行加密,获得第一加密结果中的第二部分;基于第一部分和第二部分,确定第一加密结果。另外,本发明实施例中,利用SM2曲线的剩余类环上同态加密算法,基于公钥对第一目标加密密文中的第一加密密文进行加密,获得第二加密结果;基于公钥对第二目标加密密文中的第一加密密文进行加密,获得第三加密结果;基于公钥对第一目标加密密文中的第二加密密文进行加密,获得第四加密结果;基于公钥对第二目标加密密文中的第二加密密文进行加密,获得第五加密结果等加密过程都可以参考上述具体实现过程,在此不再赘述。
为了保证上述同态计算方法对第一目标加密密文和第二目标加密密文进行同态运算所得到的同态运算结果正确性,还可以对同态运算结果的正确性进行验证。具体的,对上述第一目标加密密文和第二目标加密密文进行同态乘法运算后获得的同态运算结果进行解密,由于同态运算结果所对应的加密层次为一型加密层次,可以利用上述实施例中的一型加密层次所对应的解密方法直接对同态运算结果进行解密。由于对第一目标加密密文和第二目标加密密文进行同态乘法运算后获得的同态运算结果进行解密后获得的结果与直接对第一加密密文所对应的明文和第二加密密文所对应的明文进行乘法运算后,获得的结果是一致的,则可以确定上述同态加密的计算方式是正确的。
由于本发明实施例中的公钥和私钥的长度相比于paillier加密算法中的公钥和私钥的长度都变短了,那么利用公钥获得到的第一目标加密密文和第二目标加密密文的长度也将变短,那么在对第一目标加密密文和第二目标加密密文进行同态运算时,其运算效率也会得到明显提高。
本发明实施例提供的同态计算方案中,首先获取第一目标加密密文和第二目标加密密文,基于目标加密密文中所包括的加密密文数量,确定第一目标加密密文所对应的第一加密层次以及第二目标加密密文所对应的第二加密层次,基于目标加密密文中的各个加密密文的位置信息,确定第一目标加密密文中的各个加密密文与第二目标加密密文中的各个加密密文之间的对应关系,最后基于第一加密层次、第二加密层次以及对应关系,对第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果,从而不仅实现了对加密密文的同态运算,还可以提高加密密文之间的同态计算效率。
在实际应用中,安全隐私计算中不仅会涉及加密密文的同态加法运算、同态乘法运算,也会涉及到加密密文的同态标量乘运算,那么为了提高安全隐私计算效率,本发明实施例还提供了一种目标加密密文的同态标量乘运算的计算方法。具体的,利用上述实施例中的数据加密方法对明文m1进行数据加密,获得目标加密密文
Figure SMS_86
。并且目标加密密文所对应的加密层次为一型加密层次,则目标加密密文的/>
Figure SMS_87
倍标量乘
Figure SMS_88
,其中/>
Figure SMS_89
。另外,若目标加密密文为/>
Figure SMS_90
,其目标加密密文所对应的加密层次为二型加密层次,则目标加密密文的/>
Figure SMS_91
倍标量乘/>
Figure SMS_92
。/>
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
图4为本发明实施例提供的一种n维向量内积的同态计算方法的流程图;参考附图4所示,本发明实施例提供了一种n维向量内积的同态计算方法,具体的,该同态计算方法可以包括如下步骤:
步骤401、获取待处理的第一向量和待处理的第二向量,第一向量和第二向量均为n维向量。
步骤402、确定第一向量所包含的各个项与第二向量中所包含的各个项之间的对应关系。
步骤403、分别对第一向量、第二向量中的各个项分别进行数据加密,获得各个项所对应的加密密文。
步骤404、利用同态计算方法,对第一向量和第二向量中存在对应关系的各个项所对应的加密密文进行同态乘法运算,获得各个项所对应的同态乘法运算结果。
步骤405、利用同态计算方法,分别对各个项所对应的同态乘法运算结果进行同态加法运算,获得同态加法运算结果。
步骤406、根据同态加法运算结果,确定第一向量和第二向量内积所对应的同态运算结果。
本发明实施例提供的多项式同态计算方法适应于对n维向量进行同态计算。其中,待处理的向量可以为n维向量,比如,n维向量
Figure SMS_94
。在对两个n维向量进行安全内积运算时,首先获取待处理的第一向量和第二向量,然后确定第一向量所包含的各个项与第二向量所包括的各个项之间的对应关系。例如,n维向量
Figure SMS_97
。其中,/>
Figure SMS_99
与/>
Figure SMS_95
存在对应关系、/>
Figure SMS_96
与/>
Figure SMS_98
存在对应关系.../>
Figure SMS_100
与/>
Figure SMS_93
存在对应关系。同时,基于上述实施例中的数据加密方法对第一向量中的各个项进行数据加密,获得第一向量中各个项所对应的加密密文,并基于上述实施例中的数据加密方法对第二向量中的各个项进行数据加密,获得第二向量中各个项所对应的加密密文。
接着,利用上述实施例中提供的同态计算方法,对第一向量和第二向量中存在对应关系的各个项所对应的加密密文进行同态乘法运算,获得各个项所对应的同态乘法运算结果。接着利用上述实施例中提供的同态计算方法,分别对各个项所对应的同态乘法运算结果进行同态加法运算,获得同态加法运算结果。最后,根据同态加法运算结果,确定第一向量和第二向量内积所对应的同态运算结果。
为了更好理解上述所描述的内容,下面以两个n维向量
Figure SMS_103
进行举例说明。并假设向量/>
Figure SMS_105
。利用公钥pk分别对每个/>
Figure SMS_109
和/>
Figure SMS_102
进行加密,得到:/>
Figure SMS_106
。基于各个项之间的对应关系,利用同态计算中的步骤进行密文同态乘法计算,分别计算每个/>
Figure SMS_110
和/>
Figure SMS_113
所对应的加密密文的乘积,即/>
Figure SMS_101
,例如/>
Figure SMS_108
、/>
Figure SMS_112
.....。接着利用同态计算中的步骤对各个加密密文的乘积进行密文同态加法计算,
Figure SMS_115
+/>
Figure SMS_104
+....确定两个n维向量所对应的加密密文内积的计算结果即/>
Figure SMS_107
+/>
Figure SMS_111
+..../>
Figure SMS_114
本发明实施例提供了一种n维向量内积安全计算方法,通过确定第一向量所包含的各个项与第二向量中所包含的各个项之间的对应关系,分别对第一向量、第二向量中的各个项分别进行数据加密,获得各个项所对应的加密密文。利用上述同态计算方法,对第一向量和第二向量中存在对应关系的各个项所对应的加密密文进行同态乘法运算,获得各个项所对应的同态乘法运算结果。利用上述同态计算方法,分别对各个项所对应的同态乘法运算结果进行同态加法运算,获得同态加法运算结果。根据同态加法运算结果,确定第一向量和第二向量内积所对应的同态运算结果,实现了对内积安全隐私计算。
具体应用时,本应用实施例提供了一种数据加密方法、数据解密方法、同态计算方法、n维向量内积所对应的同态计算方法,具体的,可以包括以下步骤:
一、密钥生成过程:
步骤1:随机生成私钥
Figure SMS_116
,其中q是sm2曲线参数中的阶即
Figure SMS_117
步骤2:计算用于对待加密数据进行加密的公钥
Figure SMS_118
,其中/>
Figure SMS_119
,G是sm2曲线参数中的基点,/>
Figure SMS_120
表示定义在有限域/>
Figure SMS_121
上的椭圆曲线。
步骤3:输出输出私钥sk=d,公钥PK=Q。
二、同态加密过程
步骤1:对消息m加密,
Figure SMS_122
,随机选择一个随机数r,/>
Figure SMS_123
,基于随机数r对消息m进行加密,获得目标加密密文/>
Figure SMS_124
Figure SMS_125
Figure SMS_126
表示一种基于SM2曲线的剩余类环上的同态加密算法对随机数r进行加密后获得的加密密文,其具体的加密过程可以参考上述实施例中相关描述。/>
Figure SMS_127
、b分别表示为加密后的加密密文,其/>
Figure SMS_128
、b也分别表示一个椭圆曲线点。
三、同态解密方法
步骤1:对于加密层次为level-1型密文
Figure SMS_129
,利用私钥sk对密文解密:
Figure SMS_130
,其中,/>
Figure SMS_131
表示基于SM2曲线的剩余类环上的同态解密算法对密文/>
Figure SMS_132
进行解密后获得的明文,其具体的解密过程可以参考上述实施例中相关描述。
步骤2:对于加密层次为level-2型密文
Figure SMS_133
解密,有:/>
Figure SMS_134
,/>
Figure SMS_135
表示基于SM2曲线的剩余类环上的同态解密算法对密文/>
Figure SMS_136
进行解密后获得的明文,其具体的解密过程可以参考上述实施例中相关描述。
四、同态计算过程
步骤1:当加密层次level =1时,密文同态加法计算:
对于明文
Figure SMS_137
分别加密,获得的目标加密密文分别为
Figure SMS_138
Figure SMS_139
,其中/>
Figure SMS_140
显然有:
Figure SMS_141
Figure SMS_142
,/>
Figure SMS_143
步骤2:当加密层次 level =1时,密文同态标量乘法:计算对于常数
Figure SMS_144
密文
Figure SMS_145
,有:/>
Figure SMS_146
步骤3:同态乘法计算:对于明文
Figure SMS_147
分别加密,获得目标加密密文分别为
Figure SMS_148
Figure SMS_149
Figure SMS_150
步骤4:当加密层次 level =2时,密文同态加法计算:对于密文
Figure SMS_151
,/>
Figure SMS_152
.有:
Figure SMS_153
其中:
Figure SMS_154
步骤5:当加密层次 level =2时,标量乘计算:当加密层次 level =2时,密文同态标量乘计算:对于常数
Figure SMS_155
,密文/>
Figure SMS_156
,有:
Figure SMS_157
五、n维向量内积的同态计算过程
步骤1:给定两个n维向量
Figure SMS_158
步骤2:利用公钥pk分别对每个
Figure SMS_159
和/>
Figure SMS_160
进行加密,得到:
Figure SMS_161
步骤3:利用同态计算中步骤4进行同态密文乘法计算
Figure SMS_162
,然后利用同态计算中步骤5计算每个/>
Figure SMS_163
和/>
Figure SMS_164
密文的乘积/>
Figure SMS_165
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
以下将详细描述本发明的一个或多个实施例的数据存储装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图5为本发明实施例提供的一种数据加密装置的结构示意图,该装置位于一电子设备,如图5所示,该装置包括:获取模块11、第一生成模块12、加密模块13、第二生成模块14、第一确定模块15、获得模块16、第二确定模块17。
获取模块11,用于获取待加密数据、用于对所述待加密数据进行加密的公钥、以及椭圆曲线参数;
第一生成模块12,用于生成第一随机数和第二随机数;
加密模块13,用于基于所述第一随机数,对所述待加密数据进行加密,获得第一加密密文;
第二生成模块14,用于基于所述椭圆曲线参数和所述第二随机数,生成第二加密密文中的第一部分,所述第二加密密文由两部分组成;
第一确定模块15,用于基于所述公钥和所述第二随机数,生成椭圆曲线点,并确定所述椭圆曲线点所对应的类函数;
获得模块16,用于基于所述类函数对所述第一随机数进行加密,获得第二加密密文中的第二部分;
第二确定模块17,用于基于所述第一加密密文、所述第二加密密文中的第一部分、以及所述第二加密密文中的第二部分,确定所述待加密数据所对应的目标加密密文。
可选地,所述装置还可以包括第三生成模块,第三生成模块具体用于:生成第三随机数,并将所述第三随机数确定为用于对所述目标加密密文进行解密的私钥;基于所述私钥和所述椭圆曲线参数,生成用于对待加密数据进行加密的公钥。
可选地,所述加密模块13具体可以用于:获取所述待加密数据与所述第一随机数的差值;对所述差值进行模运算,获得模运算结果;将所述模运算结果确定为所述第一加密密文。
图5所示装置可以执行前述实施例中数据加密方法的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图5所示数据加密装置的结构可实现为一电子设备,如图6所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中数据加密方法中的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的数据加密方法。
图7为本发明实施例提供的一种数据解密装置的结构示意图,如图7所示,该装置包括:获取模块31、确定模块32、第一解密模块33、第二解密模块34。
获取模块31,用于获取待处理的加密密文以及用于对所述加密密文进行解密的私钥;
确定模块32,用于确定所述加密密文所对应的加密层次,所述加密层次用于表示执行乘法运算的深度;
第一解密模块33,用于若所述加密层次为一型加密层次,则基于所述私钥和第二加密密文中的第一部分,确定椭圆曲线点以及所述椭圆曲线点所对应的类函数,基于所述类函数对第二加密密文中的第二部分进行解密,获得明文第一部分,并基于所述加密密文的第一加密密文和所述明文第一部分,获得所述加密密文所对应的明文,所述一型加密层次是指所述加密密文由第一加密密文和第二加密密文两个元素组成;
第二解密模块34,用于若所述加密层次为二型加密层次,则分别基于所述私钥、第一加密密文中的第一部分、第二加密密文中的第一部分、第三加密密文中的第一部分,对第一加密密文中的第二部分、第二加密密文中的第二部分、第三加密密文中的第二部分进行解密,获得明文第二部分、明文第三部分、明文第四部分,并基于所述明文第二部分、明文第三部分、明文第四部分,获得所述加密密文所对应的明文,所述二型加密层次是指所述加密密文由第一加密密文、第二加密密文以及第三加密密文三个元素组成。
图7所示装置可以执行前述实施例中数据解密方法中的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图7所示数据解密装置的结构可实现为一电子设备,如图8所示,该设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中数据解密方法中的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的数据解密方法。
图9为本发明实施例提供的一种同态计算装置的结构示意图,如图10所示,该装置包括:获取模块51、第一确定模块52、第二确定模块53、获得模块54。
获取模块51,用于获取第一目标加密密文和第二目标加密密文;
第一确定模块52,用于基于目标加密密文中的加密密文数量,确定所述第一目标加密密文所对应的第一加密层次以及所述第二目标加密密文所对应的第二加密层次,所述加密层次用于表示执行乘法运算的深度;
第二确定模块53,用于基于目标加密密文中的各个加密密文的位置信息,确定所述第一目标加密密文中的各个加密密文与所述第二目标加密密文中的各个加密密文之间的对应关系;
获得模块54,用于基于所述第一加密层次、所述第二加密层次以及所述对应关系,对所述第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。
可选地,所述同态运算包括同态加法运算,所述获得模块54具体可以用于:若所述第一加密层次和所述第二加密层次均为一型加密层次,则获取所述第一目标加密密文中的第一加密密文与所述第二目标加密密文中的第一加密密文的第一和值;获取所述第一目标加密密文中的第二加密密文与所述第二目标加密密文中的第二加密密文的第二和值;基于所述第一和值和所述第二和值,确定同态运算结果;其中,所述一型加密层次是指所述目标加密密文由两个密文组成。
可选地,所述同态运算包括同态加法运算,所述获得模块54具体可以用于:若所述第一加密层次和所述第二加密层次均为二型加密层次,则获取所述第一目标加密密文中的第一加密密文与所述第二目标加密密文中的第一加密密文的第三和值;获取所述第一目标加密密文中的第二加密密文与所述第二目标加密密文中的第二加密密文的第四和值;获取所述第一目标加密密文中的第三加密密文与所述第二目标加密密文中的第三加密密文的第五和值;基于所述第三和值、所述第四和值、以及所述第五和值,确定同态运算结果;其中,所述二型加密层次是指所述目标加密密文由三个密文组成。
可选地,所述同态运算包括同态加法运算,所述获得模块54具体可以用于:若所述第一加密层次为一型加密层次、所述第二加密层次为二型加密层次,则对所述第二目标加密密文中的第二加密密文和第三加密密文进行处理,获得所述第二目标加密密文所对应的目标第二加密密文;获取所述第一目标加密密文中的第一加密密文与所述第二目标加密密文中的第一加密密文的第六和值;获取所述第一目标加密密文中的第二加密密文与第二目标加密密文中的目标第二加密密文的第七和值;基于所述第六和值和所述第七和值,确定同态运算结果。
可选地,所述同态运算包括同态乘法运算,所述获得模块54具体可以用于:若所述第一加密层次和所述第二加密层次都为一型加密层次,则获取目标加密密文所对应的公钥;基于所述公钥对第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第一乘积值进行加密,获得第一加密结果;基于所述公钥对第一目标加密密文中的第一加密密文进行加密,获得第二加密结果,并获取所述第二加密结果与第二目标加密密文中的第二加密密文的第二乘积值;基于所述公钥对第二目标加密密文中的第一加密密文进行加密,获得第三加密结果,并获得所述第三加密结果与第一目标加密密文中的第二加密密文的第三乘积值;获取所述第一加密结果、所述第二乘积值、以及所述第三乘积值的第八和值;基于所述第八和值、第一目标加密密文中的第二加密密文、第二目标加密密文中的第二加密密文,确定同态运算结果。
可选地,所述同态运算包括同态乘法运算,所述获得模块54具体还可以用于:获取第一目标加密密文中的第一加密密文与第二加密密文中的第一加密密文的第一乘积值;生成第四随机数;基于所述椭圆曲线参数和所述第四随机数,生成第一加密结果中的第一部分,所述第一加密结果由两部分组成;基于所述公钥和所述第四随机数,生成椭圆曲线点,并确定所述椭圆曲线点所对应的类函数;基于所述类函数对所述第一乘积值进行加密,获得第一加密结果中的第二部分;基于所述第一部分和所述第二部分,确定所述第一加密结果。
图9所示装置可以执行前述实施例中同态计算方法中的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图9所示同态计算装置的结构可实现为一电子设备,如图10所示,该设备可以包括:第三处理器61、第三存储器62、第三通信接口63。其中,第三存储器62上存储有可执行代码,当所述可执行代码被第三处理器61执行时,使第三处理器61至少可以实现如前述实施例中同态计算方法中的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的同态计算方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据加密方法,其特征在于,包括:
获取待加密数据、用于对所述待加密数据进行加密的公钥、以及椭圆曲线参数;
生成第一随机数和第二随机数;
基于所述第一随机数,对所述待加密数据进行加密,获得第一加密密文;
基于所述椭圆曲线参数和所述第二随机数,生成第二加密密文中的第一部分,所述第二加密密文由两部分组成;
基于所述公钥和所述第二随机数,生成椭圆曲线点,并基于剩余类环上的椭圆曲线群到目标群的群同态映射、有限域上的椭圆曲线的阶以及有限域上的椭圆曲线群到剩余类环上的椭圆曲线群的群同态映射,确定所述椭圆曲线点所对应的类函数;
基于所述类函数对所述第一随机数进行加密,获得第二加密密文中的第二部分;
基于所述第一加密密文、所述第二加密密文中的第一部分、以及所述第二加密密文中的第二部分,确定所述待加密数据所对应的目标加密密文。
2.根据权利要求1所述的数据加密方法,其特征在于,所述获取用于对所述待加密数据进行加密的公钥之前,所述方法还包括:
生成第三随机数,并将所述第三随机数确定为用于对所述目标加密密文进行解密的私钥;
基于所述私钥和所述椭圆曲线参数,生成用于对待加密数据进行加密的公钥。
3.根据权利要求1所述的数据加密方法,其特征在于,所述基于所述第一随机数,对所述待加密数据进行加密,获得第一加密密文,包括:
获取所述待加密数据与所述第一随机数的差值;
对所述差值进行模运算,获得模运算结果;
将所述模运算结果确定为所述第一加密密文。
4.一种同态计算方法,其特征在于,包括:
获取第一目标加密密文,所述第一目标加密密文由第一加密密文和第二加密密文构成,所述第一加密密文是基于第一随机数,对第一待加密数据进行加密获得,所述第二加密密文由第二加密密文的第一部分和第二加密密文的第二部分组成,所述第二加密密文中的第一部分是基于椭圆曲线参数和第二随机数获得,所述第二加密密文中的第二部分是基于类函数对所述第一随机数进行加密获得,其中,所述第一随机数和第二随机数是随机生成的,所述类函数是基于公钥和所述第二随机数,生成第一椭圆曲线点,并基于所述第一椭圆曲线点、剩余类环上的椭圆曲线群到目标群的群同态映射、有限域上的椭圆曲线的阶、以及有限域上的椭圆曲线群到剩余类环上的椭圆曲线群的群同态映射获得;
获取第二目标加密密文,所述第二目标加密密文由第三加密密文和第四加密密文构成,所述第三加密密文是基于第三随机数,对第二待加密数据进行加密获得,所述第四加密密文由第四加密密文的第一部分和第四加密密文的第二部分组成,所述第四加密密文中的第一部分是基于椭圆曲线参数和第四随机数获得,所述第四加密密文中的第二部分是基于类函数对所述第三随机数进行加密获得,其中,所述第三随机数和第四随机数是随机生成的,所述类函数是基于公钥和所述第四随机数,生成第二椭圆曲线点,并基于所述第二椭圆曲线点、剩余类环上的椭圆曲线群到目标群的群同态映射、有限域上的椭圆曲线的阶、以及有限域上的椭圆曲线群到剩余类环上的椭圆曲线群的群同态映射获得;
基于目标加密密文中所包括的加密密文数量,确定所述第一目标加密密文所对应的第一加密层次以及所述第二目标加密密文所对应的第二加密层次,所述加密层次用于表示执行乘法运算的深度;
基于目标加密密文中的各个加密密文的位置信息,确定所述第一目标加密密文中的各个加密密文与所述第二目标加密密文中的各个加密密文之间的对应关系;
基于所述第一加密层次、所述第二加密层次以及所述对应关系,对所述第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果。
5.根据权利要求4所述的同态计算方法,其特征在于,所述同态运算包括同态加法运算,所述基于所述第一加密层次、所述第二加密层次以及所述对应关系,对所述第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果,包括:
若所述第一加密层次和所述第二加密层次均为一型加密层次,则获取所述第一目标加密密文中的第一加密密文与所述第二目标加密密文中的第一加密密文的第一和值;
获取所述第一目标加密密文中的第二加密密文与所述第二目标加密密文中的第二加密密文的第二和值;
基于所述第一和值和所述第二和值,确定同态运算结果;
其中,所述一型加密层次是指所述目标加密密文由两个密文组成。
6.根据权利要求5所述的同态计算方法,其特征在于,所述方法还包括:
若所述第一加密层次和所述第二加密层次均为二型加密层次,则获取所述第一目标加密密文中的第一加密密文与所述第二目标加密密文中的第一加密密文的第三和值;
获取所述第一目标加密密文中的第二加密密文与所述第二目标加密密文中的第二加密密文的第四和值;
获取所述第一目标加密密文中的第三加密密文与所述第二目标加密密文中的第三加密密文的第五和值;
基于所述第三和值、所述第四和值、以及所述第五和值,确定同态运算结果;
其中,所述二型加密层次是指所述目标加密密文由三个密文组成。
7.根据权利要求6所述的同态计算方法,其特征在于,所述方法还包括:
若所述第一加密层次为一型加密层次、所述第二加密层次为二型加密层次,则对所述第二目标加密密文中的第二加密密文和第三加密密文进行处理,获得所述第二目标加密密文所对应的目标第二加密密文;
获取所述第一目标加密密文中的第一加密密文与所述第二目标加密密文中的第一加密密文的第六和值;
获取所述第一目标加密密文中的第二加密密文与第二目标加密密文中的目标第二加密密文的第七和值;
基于所述第六和值和所述第七和值,确定同态运算结果。
8.根据权利要求4所述的同态计算方法,其特征在于,所述同态运算包括同态乘法运算,所述基于所述第一加密层次、所述第二加密层次以及所述对应关系,对所述第一目标加密密文和第二目标加密密文进行同态运算,获得同态运算结果,包括:
若所述第一加密层次和所述第二加密层次都为一型加密层次,则获取目标加密密文所对应的公钥;
基于所述公钥对第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的第一乘积值进行加密,获得第一加密结果;
基于所述公钥对第一目标加密密文中的第一加密密文进行加密,获得第二加密结果,并获取所述第二加密结果与第二目标加密密文中的第二加密密文的第二乘积值;
基于所述公钥对第二目标加密密文中的第一加密密文进行加密,获得第三加密结果,并获得所述第三加密结果与第一目标加密密文中的第二加密密文的第三乘积值;
获取所述第一加密结果、所述第二乘积值、以及所述第三乘积值的第八和值;
基于所述第八和值、第一目标加密密文中的第二加密密文、第二目标加密密文中的第二加密密文,确定同态运算结果。
9.根据权利要求8所述的同态计算方法,其特征在于,所述基于所述公钥对第一目标加密密文中的第一加密密文与第二目标加密密文中的第一加密密文的乘积值进行加密,获得第一加密结果,包括:
获取第一目标加密密文中的第一加密密文与第二加密密文中的第一加密密文的第一乘积值;
生成第四随机数;
基于椭圆曲线参数和所述第四随机数,生成第一加密结果中的第一部分,所述第一加密结果由两部分组成;
基于所述公钥和所述第四随机数,生成椭圆曲线点,并确定所述椭圆曲线点所对应的类函数;
基于所述类函数对所述第一乘积值进行加密,获得第一加密结果中的第二部分;
基于所述第一部分和所述第二部分,确定所述第一加密结果。
10.一种电子设备,其特征在于,包括:存储器和处理器,其中,
所述存储器,用于存储一条或多条计算机程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述一条或多条计算机程序,以用于实现上述权利要求1至3中任一项所述的数据加密方法中的步骤,或者实现上述权利要求4至9中任一项所述的同态计算方法中的步骤。
CN202310132981.4A 2023-02-09 2023-02-09 数据加密方法、同态计算方法及设备 Active CN115865348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310132981.4A CN115865348B (zh) 2023-02-09 2023-02-09 数据加密方法、同态计算方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310132981.4A CN115865348B (zh) 2023-02-09 2023-02-09 数据加密方法、同态计算方法及设备

Publications (2)

Publication Number Publication Date
CN115865348A CN115865348A (zh) 2023-03-28
CN115865348B true CN115865348B (zh) 2023-06-06

Family

ID=85658394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310132981.4A Active CN115865348B (zh) 2023-02-09 2023-02-09 数据加密方法、同态计算方法及设备

Country Status (1)

Country Link
CN (1) CN115865348B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117595979A (zh) * 2023-11-20 2024-02-23 北京信安世纪科技股份有限公司 数据处理方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147495A (zh) * 2017-05-25 2017-09-08 广东工业大学 二元扩域上sm2加密算法的实现方法
CN115549891A (zh) * 2022-11-24 2022-12-30 北京信安世纪科技股份有限公司 同态加密方法、同态解密方法、同态计算方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102251697B1 (ko) * 2014-04-23 2021-05-14 삼성전자주식회사 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
CN109274503B (zh) * 2018-11-05 2022-01-04 北京仁信证科技有限公司 分布式协同签名方法及分布式协同签名装置、软盾系统
CN113254985B (zh) * 2021-07-15 2021-12-21 北京信安世纪科技股份有限公司 数据加密方法、数据处理方法、数据解密方法及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147495A (zh) * 2017-05-25 2017-09-08 广东工业大学 二元扩域上sm2加密算法的实现方法
CN115549891A (zh) * 2022-11-24 2022-12-30 北京信安世纪科技股份有限公司 同态加密方法、同态解密方法、同态计算方法及设备

Also Published As

Publication number Publication date
CN115865348A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
US11843687B2 (en) Systems, devices, and processes for homomorphic encryption
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
CA2717622C (en) White-box implementation
US20140233727A1 (en) Method for secure substring search
Das Secure cloud computing algorithm using homomorphic encryption and multi-party computation
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
US10826694B2 (en) Method for leakage-resilient distributed function evaluation with CPU-enclaves
CN115102688B (zh) 数据处理方法、多项式计算方法及电子设备
CN109726567B (zh) 一种基于全同态加密的移动目标加密方法
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
US20180302220A1 (en) User attribute matching method and terminal
CN108985102A (zh) 数据完整性验证方法、装置、系统及存储介质
JP4737334B2 (ja) 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体
JP5670365B2 (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
JP2004336794A (ja) 暗号システム内でユーザ定義idに基づく公開鍵を発生する方法と機器
CN115865348B (zh) 数据加密方法、同态计算方法及设备
CN114142996B (zh) 一种基于sm9密码算法的可搜索加密方法
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
US10075290B2 (en) Operator lifting in cryptographic algorithm
Kanagavalli Secured data storage in cloud using homomorphic encryption
CN116303551B (zh) 隐匿查询方法及设备
Krishnegowda et al. Efficient matrix key homomorphic encryption of medical images
WO2019079353A2 (en) METHODS AND SYSTEMS FOR ENHANCED HOMOMORPHIC ENCRYPTION SEARCH BASED ON DATA USING GEOMETRIC ALGEBRA
CN117595979A (zh) 数据处理方法及设备
Das A hybrid algorithm for secure cloud computing

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