CN114124349B - 一种用于同态加密方案的快速解密方法 - Google Patents
一种用于同态加密方案的快速解密方法 Download PDFInfo
- Publication number
- CN114124349B CN114124349B CN202111399432.0A CN202111399432A CN114124349B CN 114124349 B CN114124349 B CN 114124349B CN 202111399432 A CN202111399432 A CN 202111399432A CN 114124349 B CN114124349 B CN 114124349B
- Authority
- CN
- China
- Prior art keywords
- decryption
- ciphertext
- plaintext
- encryption
- tree
- 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
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000011084 recovery Methods 0.000 claims abstract description 10
- 238000004364 calculation method Methods 0.000 claims description 32
- 238000012795 verification Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 241000544061 Cuculus canorus Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及数据安全技术领域,具体涉及一种同态加密方案的快速解密方法,该方法包括:加密用户与解密用户事先约定使用的同态加密方案,双方用户端预计算系统参数;解密用户端接收经过加密后的密文;解密用户端接收到密文后计算密文参数;根据获取的系统参数采用改进的BSGS算法对密文参数进行明文恢复,得到明文;若同态加密方案的解密算法需要对解密结果进行校验,则进行密文校验,即校验结果正确,则输出解密结果,校验结果错误,则解密失败;本发明能在幂指数较小时快速求解离散对数问题,具有一定通用性;相比于传统的此类同态加密方案,本发明所提出的快速解密方法能将此类同态加密方案的解密速度提升10倍以上。
Description
技术领域
本发明涉及数据安全技术领域,具体涉及一种用于同态加密方案的快速解密方法。
背景技术
同态加密是一种基于数学难题的计算复杂性理论的密码学技术;即对经过同态加密的数据进行解密,得到的解密结果与用同一方法处理未加密的原始数据得到的结果一样。常用的解密方法是采用BSGS算法将密文恢复为明文;但是在采用该算法恢复明文过程中,由于计算乘法逆元的开销较大,使得恢复明文过程中效率低,不利于明文的恢复。因此急需一种能快速对同态加密的密文进行快速解密的方法。
发明内容
为解决以上现有技术存在的问题,本发明提出了一种用于同态加密方案的快速解密方法,该方法包括:获取加密用户与解密用户采用的同态加密方案,加密用户端和解密用户端根据同态加密方案预计算系统参数;解密用户端接收经过加密用户端加密后的密文,根据加密后的密文计算密文参数;根据系统参数采用改进的BSGS算法对密文参数进行明文恢复,得到明文;解密用户对恢复的明文进行校验,若校验结果正确,则输出解密结果,若校验结果错误,则解密失败。
优选的,加密用户端与解密用户端采用的同态加密方案为椭圆曲线的同态加密方法或者实数域的加密方法。
优选的,加密用户端和解密用户端根据同态加密方案预计算系统参数的过程包括:获取系统公共参数;确定加密用户端对明文进行加密的方案;若加密方案为公钥同态加密方案,则加密用户端获取加密公钥pk,解密用户端获取解密私钥sk,解密用户端根据加密公钥和解密私钥得到表T1和表T2;若加密方案为基于身份的同态加密方案,则引入密钥生成中心KGC,密钥生成中心KGC生成加密主密钥对;用户端直接得到解密用户端的身份标识ID,KGC生成解密私钥skID,并发送给解密用户端,解密用户端根据解密私钥skID得到预计算表T1和T2。
进一步的,若是一般的公钥同态加密方案,加密用户端得到加密公钥pk,解密用户端需计算解密私钥sk的过程包括:解密用户端随机生成解密私钥sk;解密用户端计算加密公钥pk,然后将加密公钥pk公开,保存解密私钥sk。
进一步的,若是基于身份的同态加密方案,引入密钥生成中心KGC,KGC生成解密用户的解密私钥skID发送给解密用户端的过程包括:KGC生成加密主密钥对(mpk,msk),其中mpk为加密主密钥,msk为加密主私钥,公开mpk,保存msk;KGC利用加密主私钥msk、解密用户端身份标识ID等参数计算解密用户的解密私钥skID发送给解密用户端。
进一步的,预计算表T1和表T2的过程包括:
步骤1:自定义正整数ilen和jlen,使得mlen=ilen+jlen成立;其中,ilen表示表T1的长度取2的对数值,jlen表示表T2的长度取2的对数值,mlen表示明文空间的比特长度;
步骤2:根据自定义正整数ilen和jlen构建键值对型数据结构,将构建得到的数据进行保存,得到预计算表T1;
步骤3:根据自定义正整数ilen和jlen构建集合型数据结构,将构建得到的数据进行保存,得到预计算表T2;其中,T2表示集合型数据结构。
进一步的,解密用户端接收经加密后的密文的过程包括:判断密文的加密方案,若为公钥同态加密方案,则加密用户端使用加密公钥pk加密明文m得到密文c;若为基于身份的同态加密方案,加密用户端使用解密用户标识ID加密明文m得到密文c;加密用户端将密文c安全的发送给解密用户端。
优选的,用户端计算密文参数的过程包括:根据同态加密方案采用对应的的解密算法对密文进行解密,得到密文参数[m]G或gmmod N;其中,[m]G是椭圆曲线点G的m倍点,gmmod N是群元素g的m次幂模阶数N,mod N表示模阶数N,分别代表了求解椭圆曲线上的离散对数问题与求解实数域上的椭圆曲线问题。
优选的,采用改进的BSGS算法对密文参数进行明文恢复的过程包括:解密用户端判断同态加密方法;若为椭圆曲线的同态加密方法,则采用基于椭圆曲线的BSGS算法对密文参数进行明文恢复;若为实数域的加密方法,则采用基于实数域的BSGS算法对密文参数进行明文恢复。
进一步的,采用基于椭圆曲线的BSGS算法对密文参数进行明文恢复的过程包括:
步骤31:计算[m]G与T2[j]的横坐标之差并保存,其中j∈[0,2jlen-1];计算过程为:设置循环次数j∈[0,2jlen-1];计算zj=xT2[j]-x[m]G,其中xT2[j]是椭圆曲线点T2[j]的横坐标,x[m]G是椭圆曲线点[m]G的横坐标,zj为椭圆曲线点[m]G与椭圆曲线点T2[j]的横坐标之差,将横坐标之差存入表L:{zj},L为椭圆曲线点[m]G与椭圆曲线点T2[j]的横坐标之差的集合,重复上述计算过程,直到跳出循环;其中,j表示BSGS算法的循环次数,m表示明文,G表示椭圆曲线基点,T2[j]表示表T2的第j个元素,zj表示第j个横坐标之差;
步骤32:以L为叶子结点,根据位于父节点下一级的两个子节点数据的乘积作为该父节点数据的生成规则,从下至上生成“乘法二叉树”Tree1,并记Tree1的根值为A;
步骤33:计算Tree1的根值A关于p的逆元A-1,以A-1为初始节点从上至下生成“逆元二叉树”Tree2,生成规则为当前子节点等于该子节点的父节点的值乘以Tree1在兄弟节点位置的节点值;Tree2的叶子节点Tree2[j]为L[j]模p的逆元,j∈[0,2jlen-1];p表示大素数;
步骤34:执行BSGS算法,计算m′,其中m′为通过密文还原的明文。
进一步的,采用基于实数域的BSGS算法对密文参数进行明文恢复的过程包括:
S31:设表T2中的元素为“乘法二叉树”Tree1的叶子结点,以位于父节点下一级的两个子节点数据在模N下的积作为父节点中的数据为生成规则,从下至上生成Tree1,并记Tree1的根值为A;
S32:计算Tree1根值A关于N的逆元A-1,以A-1为初始节点从上至下生成“逆元二叉树”Tree2,生成规则为当前子节点等于该子节点的父节点的值乘以Tree1在兄弟节点位置的节点值;Tree2的所有叶子节点Tree2[j]为T2[j]模N的逆元,j∈[0,2jlen-1];
S33:执行BSGS算法;计算m′,其中m′为通过密文还原的明文。
进一步的,对明文进行校验的过程包括:对解密后的明文采用与解密前相同的加密算法进行加密,计算重新加密后的密文参数;根据重新计算的密文参数与原始计算的密文参数进行对比,若密文参数相同,则解密得到的明文正确,否则解密失败。
本发明的有益效果:采用本发明提出的方法能够在明文长度相对较短时解决同态加密方案解密速度较慢的问题,同时该方法也能在指数较小时快速求解椭圆曲线上的离散对数问题,具有一定通用性;相比于一般常用的解密算法,本发明所提出的快速解密方法能将同态加密方案的解密速度提升10倍以上。
附图说明
图1为本发明的一种采用SM2同态加密方案的解密流程图;
图2为本发明的一种采用SM2同态加密方案的“乘法二叉树”的结构示意图;
图3为本发明的一种采用SM2同态加密方案的“逆元二叉树”的结构示意图;
图4为本发明的一种采用SM2同态加密方案BSGS算法流程图;
图5为本发明的一种采用SM9同态加密方案的解密流程图;
图6为本发明的一种采用SM9同态加密方案的“乘法二叉树”的结构示意图;
图7为本发明的一种采用SM9同态加密方案的“逆元二叉树”的结构示意图;
图8为本发明的一种采用SM9同态加密方案BSGS算法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种用于同态加密方案的快速解密方法,该方法包括::获取加密用户与解密用户采用的同态加密方案,加密用户端和解密用户端根据同态加密方案预计算系统参数;解密用户端接收经过加密用户端加密后的密文,根据加密后的密文计算密文参数;根据系统参数采用改进的BSGS算法对密文参数进行明文恢复,得到明文;解密用户对恢复的明文进行校验,若校验结果正确,则输出解密结果,若校验结果错误,则解密失败。
一种用于同态加密方案的快速解密方法的具体实施方式,该实施例中,采用同态SM2加密算法对消息m进行加密。如图1所示,快速解密方法的过程包括:接收密文,计算[m]G,恢复明文以及解密校验四个部分组成;具体包括:
步骤1:接收密文;在用户端接收密文前包括系统建立、预计算表T1与T2、密钥生成、加密、将密文发送至解密用户五个过程。
步骤2:计算[m]G;用户端接收到密文后从密文中计算出[m]G。
步骤3:恢复明文;用户端根据预计算表T1与T2从[m]G中恢复出明文m。
步骤4:解密校验;解密用户对恢复的明文m进行校验,检查是否解密正确。
在SM2加密方案中,推荐的曲线方程为y2=x3+ax+b,参数a,b分别为
a:787968B4 FA32C3FD 2417842E 73BBFEFF 2F3C848B 6831D7E0 EC65228B3937E498。
b:8542D69E 4C044F18 E8B92435 BF6FF7DE 45728391 5C45517D 722EDB8B08F1DFC3。
在接收密文阶段系统进行的对应的处理过程包括:
系统建立:此过程用于生成系统公开参数,向系统输入安全参数l,随后系统输出公共参数pp。用户提前设定与系统输出的公共参数相同的参数pp,其中p是大素数,E为定义在有限域Fp上的椭圆曲线,G是椭圆曲线的q阶基点的坐标(xG,yG),明文空间M的比特长度mlen设为40比特,若[k]G代表椭圆曲线基点G的k倍点;/>表示与q互素且小于等于q的正整数集合,其取值为{1,2,…,q}。可选的,明文空间M的比特长度mlen的取值范围为(0,50)。
预计算表:生成BSGS算法所需的表T1与表T2,两个表均仅需生成一次并永久保存。具体步骤包括:
步骤1:自定义正整数ilen,jlen使得mlen=ilen+jlen成立,其中ilen越大,本方法的解密速度越快,但需要的额外内存空间更多。
步骤2:计算键值对型数据结构T1<H([i]G),i>,i∈[1,2i],并永久保存。H(·)为哈希函数,可只取前Hlen比特,如Hlen可取64;i表示选取表T1中的第i个数据,G表示椭圆曲线基点。
优选的,在计算键值对型数据结构过程中,采用Cuckoo hashing处理数据之间的碰撞,得到表T1;即使用两个hash函数来处理碰撞,从而使得每个key对应到两个位置。具体的,对key值进行hash操作,生成两个hash key值hashk1和hashk2;在生成的两个hash key值中,若对应的两个位置有一个为空,则直接将key值插入到为空的位置上;否则任选一个位置将key值插入到该位置上,并将已经存在该位置的key值提出来,被踢出来的key值重新插入,直到没有key值被踢出来为止,得到最终的表T1。
步骤3:计算集合型数据结构T2([-2ilen·j]G),j∈[0,2jlen-1],并永久保存。
密钥生成:用户计算自身的公私钥对(pk,sk);随机选择计算pk=[sk]G。用户保存私钥sk,将公钥pk公开。
加密:加密用户使用解密用户的公钥pk加密明文m,得到密文c。
将密文发送至解密用户:加密用户将明文m加密并安全的发送给解密用户。具体过程包括:随机选择根据随机选择的r计算密文第一部分c1=[r]G;根据随机数r与公钥pk计算密文第二部分c2,根据第一密文和第二密文得到发送到解密用户端的密文c(c1,c2);计算密文第二部分c2的公式为:
c2=[m]G+[r]pk
其中,m表示明文,G表示椭圆曲线的q阶基点,r表示选取的随机数,pk表示解密用户端的公钥。
解密用户端接收到密文后从密文中计算出[m]G的过程包括:
步骤21:根据解密用户端接收的密文计算椭圆曲线点[sk]c1。
步骤22:根据椭圆曲线点计算[m]G,其公式为:[m]G=c2-[sk]c1。
从[m]G中恢复出明文m的具体过程包括:
步骤31:计算[m]G与T2[j]的横坐标之差并保存,其中j∈[0,2jlen-1];计算过程为:设置循环次数j∈[0,2jlen-1];计算其中/>是椭圆曲线点T[j]的横坐标,x[m]G是椭圆曲线点[m]G的横坐标,zj为椭圆曲线点[m]G与椭圆曲线点T2[j]的横坐标之差,将其存入表L{zj},L为椭圆曲线点[m]G与椭圆曲线点T2[j]的横坐标之差的集合;重复上述计算过程,直到跳出循环;其中,j表示BSGS算法的循环次数,m表示明文,G表示椭圆曲线基点,T2[j]表示表T2的第j个元素,zj表示第j个横坐标之差。
步骤32:以L为叶子结点,根据位于父节点下一级的两个子节点数据的乘积作为该父节点数据的生成规则,从下至上生成“乘法二叉树”Tree1,并记Tree1的根值为A,如图2所示。
步骤33:计算Tree1的根值A关于p的逆元A-1,以A-1为初始节点从上至下生成“逆元二叉树”Tree2,生成规则为当前子节点等于该子节点的父节点的值乘以Tree1在兄弟节点位置的节点值。Tree2的叶子节点Tree2[j]为L[j]模p的逆元,j∈[0,2jlen-1],如图3所示。
步骤34:执行BSGS算法。如图4所示,具体的过程包括:
计算T2[j]与[m]G的纵坐标差值h,其中j∈[0,2jlen-1];计算公式为:
根据T2[j]与[m]G的纵坐标差值h计算λ;λ的计算公式为:
λ=h·Tree2[j]mod p
其中,λ代表椭圆曲线点T2[j]与[m]G之间的斜率,mod p表示模运算,保证λ在域Fp内。
根据计算得到的λ计算Qj;其计算公式为:
其中,Qj表示椭圆曲线点[m]G横坐标与椭圆曲线点T2[j]横坐标之和,x[m]G表示[m]G的横坐标,表示T2[j]的横坐标,T2[j]表示表T2的第j个元素。
选取H(Qj)的前Hlen比特,重复上述过程,直到选取完所有的j值。查找T1中是否存在H(Qj),若存在,取键H(Qj)在T1中对应的i,计算m′=j·2ilen+i,其中m′为通过密文还原的明文,其中,H(Qj)表示,j表示,i表示。
进行解密校验的具体过程包括:
步骤41:计算[m′]G,判断[m′]G=[m]G是否成立。
步骤42:若成立,输出m′为解密结果。若不成立,输出⊥代表解密失败。
一种用于同态加密方案的快速解密方法的具体实施方式,该实施例中,采用同态SM9加密算法对信息进行加密。如图5所示,快速解密方法的过程包括:接收密文,计算gm,恢复明文以及解密校验四个部分组成。具体包括:
S1、收到密文:该部分主要描述解密用户在拿到密文前的整个过程,其中包括系统建立、预计算表T1与T2、密钥生成、加密、将密文发送至解密用户五个过程。
S2、计算gm:当解密用户拿到密文后,首先需要从密文中计算出gm。
S3、恢复明文:利用改进的BSGS算法从gm中恢复出明文m。
S4、解密校验:解密用户对恢复的明文m进行校验,检查是否解密正确。
在SM9加密方案中,群G1、G2中元素均为椭圆曲线上的点,曲线方程采用y2=x3+5。
在接收密文阶段系统进行的对应的处理过程包括:
系统建立:此过程用于生成系统公开参数,KGC提前设定公开参数pp,其中G1、G2为阶是素数N的加法循环群,P1、P2是它们的生成元,GT为阶是素数N的乘法循环群,hid是加密私钥生成函数识别符。e是从G1×G2到GT的双线性对,明文空间M的比特长度mlen为40比特(也可是其他的比特长度,但尽量控制在50比特以内)。对若u是随机数,[u]P代表群G1、G2中元素P的u倍。密码杂凑函数随机选择msk∈[1,N-1]作为加密主私钥,计算G1中的元素mpk=[msk]P1作为加密主公钥,则加密主密钥对为(msk,mpk)。KGC保存msk,公开mpk。g为群GT元素e(mpk,P2)。
预计算表:生成BSGS算法所需的预计算表T1与T2,两个表均仅需生成一次并永久保存。具体的计算过程包括:
步骤1:自定义正整数ilen,jlen使得mlen=ilen+jlen成立,其中ilen越大,本方法的解密速度越快,但需要的额外内存空间更多。
步骤2:计算键值对型数据结构T1<H(gi),i>,i∈[1,2ilen],并永久保存。H(·)为哈希函数,可只取前Hlen比特,如Hlen=64。
步骤3:计算集合型数据结构并永久保存。
用户密钥生成:设解密用户的标识为ID,KGC在有限域FN上计算t1=H1(ID||hid,N)+msk,若t1=0则需重新执行系统建立算法,否则计算解密用户的解密私钥skID=[t2]P2。其中,t1表示计算解密私钥中间值,H1表示密码杂凑函数,hid表示加密私钥生成函数识别符,N表示素数,msk表示加密主私钥,t2表示计算解密私钥中间值。
加密:加密用户使用解密用户的标识ID加密明文m,得到密文c。
将密文发送至解密用户:加密用户将密文安全的发送给解密用户。具体的过程包括:
步骤1:计算群G1中的元素Q=H1(ID||hid,N)P1+mpk。其中,H1表示密码杂凑函数,ID表示解密用户的标识,hid表示加密私钥生成函数识别符,N表示素数,P1表示加法循环群G1的生成元,mpk表示加密主公钥。
步骤2:选择随机数r∈[1,N-1],计算群G1中的元素c1=[r]Q、群GT中的元素w=gr;。
步骤3:根据明文m以及群GT中的元素计算c2=gm×w。
步骤4:输出密文c=(c1,c2)。
从密文中计算出gm的具体过程包括:
S21:验证c1∈G1是否成立,若不成立则报错并退出,若成立,则执行步骤S22。
S22:计算群GT中的元素w′=e(c1,skID)。
S23:根据元素w′计算gm=c2×w′-1。。
利用BSGS算法从gm中恢复出明文m,如图8所示。具体过程包括:
S31:设表T2中的元素为叶子结点,以位于父节点下一级的两个子节点数据在模N下的积作为父节点中的数据为生成规则,从下至上生成第一颗二叉树Tree1,并记Tree1的根值为A,如图6所示。
S32:计算Tree1根值A关于N的逆元A-1,以A-1为初始节点从上至下生成“逆元二叉树”Tree2,生成规则为当前子节点等于该子节点的父节点的值乘以Tree1在兄弟节点位置的节点值。Tree2的所有叶子节点Tree2[j]为T[j]模N的逆元,j∈[0,2jlen-1],如图7所示。
S33:执行BSGS算法。循环j∈[0,2jlen-1],计算gm与Tree2[j]的乘积,Uj=gm·Tree2[j]modN,H(Uj)的前Hlen比特。查找T1中是否存在H(Uj),若存在,取键H(Uj)在T1中对应的i,计算m′=j·2ilen+i。其中,Uj表示逆元二叉树中第j个加密后的值gm·Tree2[j],H(Uj)表示Uj的哈希值。
解密用户对恢复的明文m进行校验的过程包括:
S41:计算gm′,判断gm′≡gmmodN是否成立。
S42:若成立,输出m′为解密结果。若不成立,输出⊥代表解密失败。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种用于同态加密方案的快速解密方法,其特征在于,包括:获取加密用户与解密用户采用的同态加密方案,加密用户端和解密用户端根据同态加密方案预计算系统参数;解密用户端接收经过加密用户端加密后的密文,根据加密后的密文计算密文参数;根据系统参数采用改进的BSGS算法对密文参数进行明文恢复,得到明文;解密用户对恢复的明文进行校验,若校验结果正确,则输出解密结果,若校验结果错误,则解密失败;
采用改进的BSGS算法对密文参数进行明文恢复包括:解密用户端判断同态加密方法;若为椭圆曲线的同态加密方法,则采用基于椭圆曲线的BSGS算法对密文参数进行明文恢复;若为实数域的加密方法,则采用基于实数域的BSGS算法对密文参数进行明文恢复;
采用基于椭圆曲线的BSGS算法对密文参数进行明文恢复的过程包括:
步骤31:计算[m]G与T2[j]的横坐标之差并保存,其中j∈[0,2jlen-1];计算过程为:设置循环次数j∈[0,2jlen-1];计算zj=xT2[j]-x[m]G,其中xT2[j]是椭圆曲线点T2[j]的横坐标,x[m]G是椭圆曲线点[m]G的横坐标,zj为椭圆曲线点[m]G与椭圆曲线点T2[j]的横坐标之差,将横坐标之差存入表L:{zj},L为椭圆曲线点[m]G与椭圆曲线点T2[j]的横坐标之差的集合,重复上述计算过程,直到跳出循环;其中,j表示BSGS算法的循环次数,m表示明文,G表示椭圆曲线基点,T2[j]表示表T2的第j个元素,zj表示第j个横坐标之差;
步骤32:以L为叶子结点,根据位于父节点下一级的两个子节点数据的乘积作为该父节点数据的生成规则,从下至上生成“乘法二叉树”Tree1,并记Tree1的根值为A;
步骤33:计算Tree1的根值A关于p的逆元A-1,以A-1为初始节点从上至下生成“逆元二叉树”Tree2,生成规则为当前子节点等于该子节点的父节点的值乘以Tree1在兄弟节点位置的节点值;Tree2的叶子节点Tree2[j]为L[j]模p的逆元,j∈[0,2jlen-1];p表示大素数;
步骤34:执行BSGS算法,计算m′,其中m′为通过密文还原的明文;
采用基于实数域的BSGS算法对密文参数进行明文恢复的过程包括:
S31:设表T2中的元素为“乘法二叉树”Tree1的叶子结点,以位于父节点下一级的两个子节点数据在模N下的积作为父节点中的数据为生成规则,从下至上生成Tree1,并记Tree1的根值为A;
S32:计算Tree1根值A关于N的逆元A-1,以A-1为初始节点从上至下生成“逆元二叉树”Tree2,生成规则为当前子节点等于该子节点的父节点的值乘以Tree1在兄弟节点位置的节点值;Tree2的所有叶子节点Tree2[j]为T2[j]模N的逆元,j∈[0,2jlen-1];
S33:执行BSGS算法,计算m′,其中m′为通过密文还原的明文;
得到表T1和表T2的过程包括:
步骤1:自定义正整数ilen和jlen,使得mlen=ilen+jlen成立;其中,ilen表示表T1的长度取2的对数值,jlen表示表T2的长度取2的对数值,mlen表示明文空间的比特长度;
步骤2:根据自定义正整数ilen和jlen构建键值对型数据结构,将构建得到的数据进行保存,得到预计算表T1;
步骤3:根据自定义正整数ilen和jlen构建集合型数据结构,将构建得到的数据进行保存,得到预计算表T2;其中,T2表示集合型数据结构。
2.根据权利要求1所述的一种用于同态加密方案的快速解密方法,其特征在于,加密用户端与解密用户端采用的同态加密方案为椭圆曲线的同态加密方法或者实数域的加密方法。
3.根据权利要求1所述的一种用于同态加密方案的快速解密方法,其特征在于,加密用户端和解密用户端根据同态加密方案预计算系统参数的过程包括:获取系统公共参数;确定加密用户端对明文进行加密的方案;若加密方案为公钥同态加密方案,则加密用户端获取加密公钥pk,解密用户端获取解密私钥sk,并预计算表T1和表T2;若加密方案为基于身份的同态加密方案,则引入密钥生成中心KGC,密钥生成中心KGC生成加密主密钥对;用户端直接得到解密用户端的身份标识ID,KGC生成解密私钥skID,并发送给解密用户端,解密用户端预计算表T1和T2。
4.根据权利要求1所述的一种用于同态加密方案的快速解密方法,其特征在于,解密用户端接收经加密后的密文的过程包括:判断密文的加密方案,若为公钥同态加密方案,则加密用户端使用加密公钥pk加密明文m得到密文c;若为基于身份的同态加密方案,加密用户端使用解密用户标识ID加密明文m得到密文c;加密用户端将密文c安全的发送给解密用户端。
5.根据权利要求1所述的一种用于同态加密方案的快速解密方法,其特征在于,解密用户端计算密文参数的过程包括:根据同态加密方案采用对应的解密算法对密文进行解密,得到密文参数[m]G或gmmodN;其中,[m]G是椭圆曲线点G的m倍点,gmmodN是群元素g的m次幂模阶数N,modN表示模阶数N。
6.根据权利要求1所述的一种用于同态加密方案的快速解密方法,其特征在于,对明文进行校验的过程包括:对解密后的明文采用与解密前相同的加密算法进行加密,计算重新加密后的密文参数;根据重新计算的密文参数与原始计算的密文参数进行对比,若密文参数相同,则解密得到的明文正确,否则解密失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111399432.0A CN114124349B (zh) | 2021-11-19 | 2021-11-19 | 一种用于同态加密方案的快速解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111399432.0A CN114124349B (zh) | 2021-11-19 | 2021-11-19 | 一种用于同态加密方案的快速解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114124349A CN114124349A (zh) | 2022-03-01 |
CN114124349B true CN114124349B (zh) | 2024-04-09 |
Family
ID=80440753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111399432.0A Active CN114124349B (zh) | 2021-11-19 | 2021-11-19 | 一种用于同态加密方案的快速解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124349B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584284B (zh) * | 2022-04-15 | 2024-10-15 | 支付宝(杭州)信息技术有限公司 | 同态加密操作方法、装置和电子设备 |
CN114826552A (zh) * | 2022-05-07 | 2022-07-29 | 上海阵方科技有限公司 | 一种同态加密隐私集合求交下的密文还原方法 |
CN115361113A (zh) * | 2022-06-21 | 2022-11-18 | 福建师范大学 | 基于sm9支持大属性集合的秘钥策略属性基加密系统及方法 |
CN115459898B (zh) * | 2022-08-23 | 2024-09-17 | 西安电子科技大学 | 一种基于GPU的Paillier同态加解密计算方法及系统 |
CN115549891B (zh) * | 2022-11-24 | 2023-03-10 | 北京信安世纪科技股份有限公司 | 同态加密方法、同态解密方法、同态计算方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013125039A (ja) * | 2011-12-13 | 2013-06-24 | Fujitsu Ltd | 暗号処理方法、復号処理方法、装置及びプログラム |
CN107147484A (zh) * | 2017-05-12 | 2017-09-08 | 南京邮电大学 | 一种面向隐私保护的浮点数全同态加密方法 |
CN112152813A (zh) * | 2020-09-11 | 2020-12-29 | 中南民族大学 | 一种支持隐私保护的无证书内容提取签密方法 |
CN113141247A (zh) * | 2021-04-25 | 2021-07-20 | 重庆都会信息科技有限公司 | 一种同态加密方法、装置、系统及可读存储介质 |
CN113162751A (zh) * | 2021-04-25 | 2021-07-23 | 重庆都会信息科技有限公司 | 具备加同态性的加密方法、系统及可读存储介质 |
-
2021
- 2021-11-19 CN CN202111399432.0A patent/CN114124349B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013125039A (ja) * | 2011-12-13 | 2013-06-24 | Fujitsu Ltd | 暗号処理方法、復号処理方法、装置及びプログラム |
CN107147484A (zh) * | 2017-05-12 | 2017-09-08 | 南京邮电大学 | 一种面向隐私保护的浮点数全同态加密方法 |
CN112152813A (zh) * | 2020-09-11 | 2020-12-29 | 中南民族大学 | 一种支持隐私保护的无证书内容提取签密方法 |
CN113141247A (zh) * | 2021-04-25 | 2021-07-20 | 重庆都会信息科技有限公司 | 一种同态加密方法、装置、系统及可读存储介质 |
CN113162751A (zh) * | 2021-04-25 | 2021-07-23 | 重庆都会信息科技有限公司 | 具备加同态性的加密方法、系统及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
基于椭圆曲线的公钥密码及其应用研究;梁伍七;;安徽广播电视大学学报(第01期) * |
椭圆曲线密码体制安全性分析;李佟鸿;麦永浩;;网络安全技术与应用;20070715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114124349A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114124349B (zh) | 一种用于同态加密方案的快速解密方法 | |
CN111106936B (zh) | 一种基于sm9的属性加密方法与系统 | |
US7853016B2 (en) | Signature schemes using bilinear mappings | |
Yasuda et al. | Packed homomorphic encryption based on ideal lattices and its application to biometrics | |
EP3402118A1 (en) | Key agreement devices and method | |
CN110011995B (zh) | 多播通信中的加密和解密方法及装置 | |
CN112564907B (zh) | 密钥生成方法及装置、加密方法及装置、解密方法及装置 | |
CN101925942A (zh) | 验证装置 | |
US11075748B2 (en) | Encryption for low-end devices through computation offloading | |
CN113271209A (zh) | 一种基于非交互式零知识证明的可托管公钥加密系统及方法 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN110798313B (zh) | 基于秘密动态共享的包含秘密的数的协同生成方法及系统 | |
Boneh et al. | Identity-based encryption with eth residuosity and its incompressibility | |
CN112835554B (zh) | 群组内基于不均匀随机源的随机数生成、再生、追踪方法及电子装置 | |
Cheng et al. | Cryptanalysis and improvement of a certificateless encryption scheme in the standard model | |
Andreevich et al. | On Using Mersenne Primes in Designing Cryptoschemes | |
Moldovyan et al. | Randomized pseudo-probabilistic encryption algorithms | |
JP4565632B2 (ja) | 秘密計算方法及びシステム、並びにプログラム | |
CN115549905B (zh) | Sm2密钥生成法及相关方法、计算机设备和存储介质 | |
JPWO2020058806A5 (zh) | ||
CN117714074B (zh) | 基于tlcp的身份认证系统、方法、存储介质及电子设备 | |
EP1921790A1 (en) | Signature schemes using bilinear mappings | |
JP2005316038A5 (zh) | ||
RU2494553C2 (ru) | Способ защиты информации |
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 |