当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于身份的不使用双线性对的密文等值判定方法技术

技术编号:21551958 阅读:25 留言:0更新日期:2019-07-07 00:03
本发明专利技术公开了一种基于身份的不使用双线性对的密文等值判定方法,首先,KGC执行系统初始化算法生成系统相关参数;其次,用户向KGC发送注册请求,KGC产生用户的公私钥对并通过安全信道发送给用户;然后,用户A和B对分别明文MA和MB进行加密得到密文CA和CB,并根据自身需求选择相应的授权方式Authi,产生对应的陷门tdA和tdR,将密文CA,CB和陷门tdA,tdB分别发送给服务器;最后,服务器选择相应的测试算法Testi执行等值判定操作,若输出1,则表明MA和MB相同,否则不同。发明专利技术避免了使用计算性能较差的双线性对操作,大幅提高了协议的计算效率,同时,本发明专利技术提供了四种不同级别的细粒度的授权机制,使得用户具有更灵活多样的授权方式,从而保护用户隐私信息。

An Identity-based Ciphertext Equivalence Decision Method without Bilinear Pairs

【技术实现步骤摘要】
一种基于身份的不使用双线性对的密文等值判定方法
本专利技术属于信息安全
,涉及一种身份的密文等值判定方法,特别涉及一种用于比对两段不同密文所对应的明文是否相同的方法。
技术介绍
可搜索加密技术(PublicKeyEncryptionwithKeywordSearch)是一种密文检索技术,在云计算环境中,通过将用户上传的密文数据授权给云服务提供商进行检索,同时不泄露用户隐私。可搜索加密协议通常由三个参与方协同完成,分别为数据拥有者、数据用户、服务器。数据拥有者将自己持有的数据及其对应的关键字索引加密并上传到服务器。当用户希望搜索某关键字时,将该关键字对应的陷门随搜索请求一起发送给服务器。服务器利用陷门和已存储的密文进行计算,寻找匹配项,并将结果返回给用户。需要注意的是,这里的数据持有者和用户可以是同一角色。密文等值判定协议(PublicKeyEncryptionwithEqualityTest)是一种能够在不泄露明文信息的前提下判断两个不同密文是否对应了同一明文的技术。已有的协议较多的使用了双线性对以及HashToPoint操作,这两个操作的性能较差,限制了协议在某些场景中的高效应用,特别是在嵌入式设备、智能卡等轻量级设备中的应用。
技术实现思路
本专利技术的目的是在不使用双线性对的情况下,设计更细粒度的密文等值判定方法,大幅提高密文等值判定操作的性能。本专利技术所采用的技术方案是:一种基于身份的不使用双线性对的密文等值判定方法,由密钥生成中心KGC、用户和服务器S三个参与方共同执行;其特征在于,包括以下步骤:步骤1:密钥生成中心KGC对系统进行初始化,生成系统相关参数;步骤2:用户向密钥生成中心KGC发送注册请求,密钥生成中心KGC产生用户的公私钥对并通过安全信道发送给用户;步骤3:用户A和B对分别明文MA和MB进行加密得到密文CA和CB,并根据自身需求选择相应的授权方式Authi,产生陷门tdA和tdB,将密文CA、CB和陷门tdA、tdB分别发送给服务器S;步骤4:服务器S解密;步骤5:服务器S选择相应的测试算法Testi执行等值判定操作,若输出1,则MA和MB相同,否则不同。本专利技术与现有技术相比具有如下优点和有益效果:(1)目前现有的密文等值判定协议都使用了双线性对操作,该操作性能较差,较为耗时,而本协议未使用双线性对操作,具有更好的性能。(2)与现有的密文等值判定协议相比,本专利技术具有更细粒度的访问控制功能,能更好的保护用户隐私。(3)本专利技术使用公钥加密算法替代哈希算法来存储口令,实现了更高的存储安全性。同时,本专利技术使用双服务器架构代替单服务器架构来认证口令,提高了系统的稳定性和可靠性。附图说明图1为本专利技术实施例的流程图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图及实施例对本专利技术作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本专利技术,并不用于限定本专利技术。请见图1,本专利技术提供的一种基于身份的不使用双线性对的密文等值判定方法,由密钥生成中心KGC、用户和服务器S三个参与方共同执行;包括以下步骤:步骤1:密钥生成中心KGC对系统进行初始化,生成系统相关参数;具体实现包括以下子步骤:步骤1.1:密钥生成中心KGC选定λ∈Z*作为安全参数,其中Z*表示正整数集合;选定阶为素数q∈Z*的加法循环群G,P为G的生成元;随机选择作为系统主密钥;选择哈希函数h1,h2,h3,h4,h5,h6,h7,其中h1:{0,1}*×{0,1}*→{0,1}*,hi(i=2,3,4,5,6):{0,1}*→{0,1}*,h7:{0,1}*×{0,1}*×{0,1}*→{0,1}*;步骤1.2:KGC公布参数Params=(G,P,q,h1,h2,h3,h4,h5,h6,h7)并将msk秘密保存。步骤2:用户向密钥生成中心KGC发送注册请求,密钥生成中心KGC产生用户的公私钥对并通过安全信道发送给用户;具体实现过程是:用户以身份ID向密钥生成中心KGC发送注册请求,密钥生成中心KGC计算用户私钥SK=(ska,skb),其中ska=h1(msk||ID||1),skb=h1(msk||ID||2),计算用户公钥PK=(PKa,PKb),其中PKa=ska·P,PKb=skb·P;其中,x||y表示x与y的拼接,x和y是比特串或字节串。步骤3:用户A和B对分别明文MA和MB进行加密得到密文CA和CB,并根据自身需求选择相应的授权方式Authi,产生陷门tdA和tdB,将密文CA、CB和陷门tdA、tdB分别发送给服务器S;其中,加密方法的具体实现包括以下子步骤:步骤3.1:计算点p1=(h2(M),h3(M)),点p2=(h4(M),h5(M)),计算经过点p1、p2的直线f(x);其中,明文M∈{0,1}*;步骤3.2:选择随机数并计算y1=f(x1),y2=f(x2);若x1=0或者x2=0,则重新执行此步骤;步骤3.3:选择随机数并计算C1=r·P,其中,表示x与y的异或,x和y是比特串或字节串;a·Q表示点乘,a是整数,Q是循环群G上的点;步骤3.4:输出密文C=(C1,C2,C3)。步骤4:服务器S解密;具体实现过程为:给定私钥SK=(ska,skb)和密文C=(C1,C2,C3),计算和用步骤3中的方法构建直线f(x),并检查等式y1=f(x1)和y2=f(x2)是否成立。步骤4:服务器S选择相应的测试算法Testi执行等值判定操作,若输出1,则MA和MB相同,否则不同;具体实现过程为:假设用户A和B的公私钥对分别为(PKi,SKi)和(PKj,SKj),Ci和Cj是各自对应的密文,用户A记为Ui,用户B记为Uj;为了对Ci和Cj进行细粒度的等值判定操作,定义以下四种授权机制,每种授权机制包括授权Auth和测试Test两种操作;类型一:Auth1算法:用户Ui执行此算法并输出td1,i=skb,i作为陷门;Test1算法:给定(Ci,td1,i,Cj,td1,j),此算法计算fi(x)←((x1,i,y1,i),(x2,i,y2,i)),fj(x)←((x1,j,y1,j),(x2,j,y2,j)),检查fi(x)=fi(x)是否成立,若成立,则输出1,表明Ci和Cj对应的明文相同,否则输出0,表明Ci和Cj所对应的明文不相同;类型二:Auth2算法:Ui执行此算法并输出td2,i=skb,i·C1,i作为陷门;Test2算法:给定(Ci,td2,i,Cj,td2,j),此算法计算fi(x)←((x1,i,y1,i),(x2,i,y2,i)),fj(x)←((x1,j,y1,j),(x2,j,y2,j)),检查fi(x)=fj(x)是否成立,若成立,则输出1,表明Ci和Cj对应的明文相同,否则输出0,表明Ci和Cj所对应的明文不相同;类型三:Auth3算法:Ui执行此算法并输出作为陷门;Test3算法:给定(Ci,td3,i,Cj,td3,j),此算法计算根据Shamir秘密共享协议,有检查Zi=Zj是否成立,若成立,则输出1,表明Ci和Cj对应的明文相同,否则输出0,表明Ci和Cj所对应的明文不相同.类型四:Auth4算法:用户Ui的陷门为td4,i=skb,i·C1本文档来自技高网...

【技术保护点】
1.一种基于身份的不使用双线性对的密文等值判定方法,由密钥生成中心KGC、用户和服务器S三个参与方共同执行;其特征在于,包括以下步骤:步骤1:密钥生成中心KGC对系统进行初始化,生成系统相关参数;步骤2:用户向密钥生成中心KGC发送注册请求,密钥生成中心KGC产生用户的公私钥对并通过安全信道发送给用户;步骤3:用户A和B对分别明文MA和MB进行加密得到密文CA和CB,并根据自身需求选择相应的授权方式Authi,产生陷门tdA和tdB,将密文CA、CB和陷门tdA、tdB分别发送给服务器S;步骤4:服务器S解密;步骤5:服务器S选择相应的测试算法Testi执行等值判定操作,若输出1,则MA和MB相同,否则不同。

【技术特征摘要】
1.一种基于身份的不使用双线性对的密文等值判定方法,由密钥生成中心KGC、用户和服务器S三个参与方共同执行;其特征在于,包括以下步骤:步骤1:密钥生成中心KGC对系统进行初始化,生成系统相关参数;步骤2:用户向密钥生成中心KGC发送注册请求,密钥生成中心KGC产生用户的公私钥对并通过安全信道发送给用户;步骤3:用户A和B对分别明文MA和MB进行加密得到密文CA和CB,并根据自身需求选择相应的授权方式Authi,产生陷门tdA和tdB,将密文CA、CB和陷门tdA、tdB分别发送给服务器S;步骤4:服务器S解密;步骤5:服务器S选择相应的测试算法Testi执行等值判定操作,若输出1,则MA和MB相同,否则不同。2.根据权利要求1所述的基于身份的不使用双线性对的密文等值判定方法,其特征在于,步骤1的具体实现包括以下子步骤:步骤1.1:密钥生成中心KGC选定λ∈Z*作为安全参数,其中Z*表示正整数集合;选定阶为素数q∈Z*的加法循环群G,P为G的生成元;随机选择作为系统主密钥;选择哈希函数h1,h2,h3,h4,h5,h6,h7,其中h1:{0,1}*×{0,1}*→{0,1}*,hi(i=2,3,4,5,6):{0,1}*→{0,1}*,h7:{0,1}*×{0,1}*×{0,1}*→{0,1}*;步骤1.2:KGC公布参数Params=(G,P,q,h1,h2,h3,h4,h5,h6,h7)并将msk秘密保存。3.根据权利要求2所述的基于身份的不使用双线性对的密文等值判定方法,其特征在于,步骤2的具体实现过程是:用户以身份ID向密钥生成中心KGC发送注册请求,密钥生成中心KGC计算用户私钥SK=(ska,skb),其中ska=h1(msk||ID||1),skb=h1(msk||ID||2),计算用户公钥PK=(PKa,PKb),其中PKa=ska·P,PKb=skb·P;其中,x||y表示x与y的拼接,x和y是比特串或字节串。4.根据权利要求3所述的基于身份的不使用双线性对的密文等值判定方法,其特征在于,步骤3中所述的加密,其具体实现包括以下子步骤:步骤3.1:计算点p1=(h2(M),h3(M)),点p2=(h4(M),h5(M)),计算经过点p1、p2的直线f(x);其中,明文M∈{0,1}*;步骤3.2:选择随机数并计算y1=f(x1),y2=f(x2);若x1=0或者x2=0,则重新执行此步骤;步骤3.3:选择随机数并计算C1=r·P,C2=M⊕h6(r·PKa),C3=(x1||x2||y1||y2)⊕h7(r·PKb,C1,C2);其中,x⊕y表示x与y的异或,x和y是比特串或字节串;a·Q表示点乘,a是整数,Q是循环群G上的点;步骤3.4:输出密文C=(C1,C2,C3)。5.根据权利要求4所述的基于身份的不使用双线性对的密文等值判定方法,其特征在于,步骤4的具体实现过程为:给定私钥SK=(ska,skb)和密文C=(C1,C2,C3),计算M←C2⊕h6(ska·C1)和x1||x2||y1||y2←C3⊕h7(sk2·C1,C1...

【专利技术属性】
技术研发人员:吴黎兵张宇波王婧夏振厂吴煜
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1