一种基于双线性对的可搜索加密方法与流程

文档序号:11263514阅读:319来源:国知局
一种基于双线性对的可搜索加密方法与流程
本发明涉及网络信息安全领域,特别是涉及一种基于双线性对的可搜索加密方法。
背景技术
:随着云计算的飞速发展,越来越多的企业和个人选择将数据存储在云服务器上,以实现更优化的资源配置和更高效的管理。为了保护数据的隐私和安全,用户将数据上传到云服务器之前,通常要对数据进行加密。但是,当用户需要对这些加密数据进行搜索时,用户就要从服务器上下载所有存储的数据到本地,然后对所有加密的数据进行解密,再进一步找到想要的数据。这将消耗巨大的计算代价和通信代价,同时对于拥有有限本地存储空间的用户来说也是一种极大的负担。为了解决直接对加密数据进行检索且不泄露用户任何数据信息的问题,现有技术中提出了可搜索加密方案。可搜索加密方案主要分为对称可搜索加密方案和公钥可搜索加密方案两大类。对称可搜索加密允许用户把自己的加密数据上传到云服务器,当用户想要搜索含有某个关键字的文档时,用户用自己的私钥生成一个该关键字的门限,然后让服务器利用这个门限进行查找。但是对称可搜索加密只能满足用户对自己加密的数据进行搜索,而对于来自第三方的数据,用户则不能进行关键字搜索。这个局限使得对称可搜索加密在很多实际应用中不能被使用,比如邮件系统。在邮件系统中,为了确保邮件内容的隐私和安全,用户在发送之前,通常需要利用发送者的公钥对邮件进行加密,而当接收者想要搜索这些加密邮件时,例如含有“紧急”关键字的邮件,则无法通过对称可搜索加密来完成。为了解决这个问题,大量的基于公钥的关键字可搜索加密方案被提出,该方案能够有效地搜索来自第三方的加密数据。但是,现存的很多公钥可搜索加密方案,都存在着一些不足之处,主要体现在效率问题和安全问题两方面。例如,有很多公钥可搜索加密方案的门限在传递的过程中需要建立一个安全信道,而建立一个安全信道往往需要较大的计算代价和通信代价。而对于不需要建立安全信道的公钥可搜索加密方案,往往只能够满足密文的安全性而不能满足门限的安全性。技术实现要素:本发明所要解决的技术问题是:提供一种基于双线性对的可搜索加密方法,解决公钥可搜索加密方案中效率和安全不能同时保证的问题。为了解决上述技术问题,本发明采用的技术方案为:提供一种基于双线性对的可搜索加密方法,其特征在于,包括步骤:s100、初始化;s101、服务器生成服务器公私钥对,将服务器公钥发送给发送端和接收端;s102、接收端生成接收端公私钥对,将接收端公钥发送给发送端;s103、发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,生成关键字密文,并将生成的关键字密文附加在加密的消息上作为可搜索密文,发送给服务器;s104、接收端基于双线性对用接收端私钥和服务器公钥加密要搜索的消息中包含的关键字,生成所述要搜索的消息中包含的关键字的门限,将所述门限通过公共信道发送给服务器;s105、服务器根据所述门限以及服务器密钥查找可搜索密文中是否存在与所述要搜索的关键字匹配的关键字密文,如果存在,则将与所述关键字密文对应的加密消息发送给接收端;否则,结束。本发明的有益效果在于:服务器持有自己的公私钥对,由发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,当接收端想要搜索包含某个关键字的消息时,则基于双线性对利用服务器的公钥和接收端的私钥加密所述关键字,生成该关键字的门限,由此接收端可以通过公共信道将所述门限传递给服务器。因为只有服务器持有能够匹配接收端所指定关键字的门限的私钥,而攻击者因没有服务器的私钥则无法进行所述匹配。因此,该方法不仅能够满足用户搜索来自第三方的加密数据,而且无需建立服务器与接受者之间的安全信道,攻击者窃取门限后无法进行攻击,保证了密文的安全性和门限的安全性,有效地提高了该方法在实际应用中的效率,很好地保护了用户的个人隐私。附图说明图1为基于双线性对的可搜索加密方法的流程图;图2为基于双线性对的可搜索加密方法在实际应用中的流程图。具体实施方式为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。本发明最关键的构思在于:由发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,接收端基于双线性对用接收端私钥和服务器公钥加密要搜索的消息中包含的关键字。请参照图1,一种基于双线性对的可搜索加密方法,其特征在于,包括步骤:s100、初始化;s101、服务器生成服务器公私钥对,将服务器公钥发送给发送端和接收端;s102、接收端生成接收端公私钥对,将接收端公钥发送给发送端;s103、发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,生成关键字密文,并将生成的关键字密文附加在加密的消息上作为可搜索密文,发送给服务器;s104、接收端基于双线性对用接收端私钥和服务器公钥加密要搜索的消息中包含的关键字,生成所述要搜索的消息中包含的关键字的门限,将所述门限通过公共信道发送给服务器;s105、服务器根据所述门限以及服务器密钥查找可搜索密文中是否存在与所述要搜索的关键字匹配的关键字密文,如果存在,则将与所述关键字密文对应的加密消息发送给接收端;否则,结束。进一步的,所述步骤s100具体包括:选择一个双线性对映射以及三个单向抗碰撞的哈希函数h2:g2→{0,1}logq,其中,(g1,+)和(g2,×)分别是阶为素数q的加法循环群和乘法循环群,{0,1}*是任意长度的二进制字符串集合,{0,1}logq是长度为logq的二进制字符串集合,logq是以2为底q的对数,g是g1的生成元;所述步骤s101中服务器生成服务器公私钥对具体包括:选取一个随机数计算y=yg,生成服务器的公钥pks=y,以及服务器的私钥sks=y;所述步骤s102中接收端生成接收端公私钥对具体包括:选取一个随机数计算x=xg,生成接收端的公钥pkr=x,以及接收端的私钥skr=x。进一步的,所述步骤s103中生成关键字密文具体包括:选取两个随机数计算u=r1h1(w)g+r1x,v=r2g,生成关键字密文(u,v,c),其中,w为关键字。进一步的,所述步骤104中生成关键字门限具体包括:选取一个随机数计算t1=h(r'y)·(x+h1(w'))-1g,t2=r'g,生成关键字门限tw=[t1,t2],其中,w'为要搜索的消息中包含的关键字。进一步的,所述步骤105中服务器根据所述门限以及服务器密钥查找可搜索密文中是否存在与所述要搜索的关键字匹配的关键字密文具体包括:服务器用服务器私钥计算u=h(yt2),t=t1/u,测试是否成立,如果等式成立,则存在与所述要搜索的关键字匹配的关键字密文;否则,不存在。从上述描述可知,本发明的有益效果在于:服务器持有自己的公私钥对,由发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,当接收端想要搜索包含某个关键字的消息时,则基于双线性对利用服务器的公钥和接收端的私钥加密所述关键字,生成该关键字的门限,由此接收端可以通过公共信道将所述门限传递给服务器。因为只有服务器持有能够匹配接收端所指定关键字的门限的私钥,而攻击者因没有服务器的私钥则无法进行所述匹配,进而保证了在无安全通道下门限的安全性,并且由于采用公共信道进行门限的传递,不需要专门的安全信道,因此,也保证了效率。并且,在本发明中,接收端利用一个随机数去更新门限,攻击者无法区分不同的门限是否来自同一个关键字,进一步保证了门限的安全性。因此,本发明设计的方法是一个既无需安全信道又能够满足密文安全性和门限安全性,在保证效率的同时又很好的保护了用户的隐私安全。实施例一一种基于双线性对的可搜索加密方法,其特征在于,包括步骤:步骤s100、初始化;选择一个双线性对映射以及三个单向抗碰撞的哈希函数h2:g2→{0,1}logq,其中,(g1,+)和(g2,×)分别是阶为素数q的加法循环群和乘法循环群,{0,1}*是任意长度的二进制字符串集合,{0,1}logq是长度为logq的二进制字符串集合,logq是以2为底q的对数,g是g1的生成元,是g2的生成元;步骤s101、服务器生成服务器公私钥对,将服务器公钥发送给发送端和接收端;其中,服务器生成服务器公私钥对具体包括:选取一个随机数计算y=yg,生成服务器的公钥pks=y,以及服务器的私钥sks=y;s102、接收端生成接收端公私钥对,将接收端公钥发送给发送端;其中,接收端生成接收端公私钥对具体包括:选取一个随机数计算x=xg,生成接收端的公钥pkr=x,以及接收端的私钥skr=x;s103、发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,生成关键字密文,并将生成的关键字密文附加在加密的消息上作为可搜索密文,发送给服务器;其中,生成关键字密文具体包括:选取两个随机数计算u=r1h1(w)g+r1x,v=r2g,生成关键字密文(u,v,c),其中,w为关键字;s104、接收端基于双线性对用接收端私钥和服务器公钥加密要搜索的消息中包含的关键字,生成所述要搜索的消息中包含的关键字的门限,将所述门限通过公共信道发送给服务器;其中,生成关键字门限具体包括:选取一个随机数计算t1=h(r'y)·(x+h1(w'))-1g,t2=r'g,生成关键字门限tw=[t1,t2],其中,w'为要搜索的消息中包含的关键字;s105、服务器根据所述门限以及服务器密钥查找可搜索密文中是否存在与所述要搜索的关键字匹配的关键字密文,如果存在,则将与所述关键字密文对应的加密消息发送给接收端;否则,结束;其中,服务器根据所述门限以及服务器密钥查找可搜索密文中是否存在与所述要搜索的关键字匹配的关键字密文具体包括:服务器用服务器私钥计算u=h(yt2),t=t1/u,测试是否成立,如果等式成立,则存在与所述要搜索的关键字匹配的关键字密文;否则,不存在;其中,如果w‘=w,则其计算过程具体如下:实施例二在邮件系统中对本发明所设计的基于双线性对的可搜索加密方法进行测试,测试所采用的仿真平台的配置如下:操作系统:ubuntu10.10;cpu:pentium(r)t4400;内存:2.00gbram;硬盘:250gb/5400rpm;编程语言:c。参照图2,邮件发送者在接收到邮件服务器的公钥和邮件接受者的公钥后,按照实施例一步骤s103的方式对邮件的关键字进行加密,然后向邮件服务器发送加密的邮件并附上加密的关键字;当邮件接受者想要搜索包含某个关键字的邮件时,基于从邮件服务器接收到的服务器公钥及自身私钥按照实施例一步骤s104的方式加密所述关键字,生成关键字的门限,发送关键字的门限至邮件服务器;邮件服务器按照实施例一步骤s105的方式测试与所述关键字匹配的加密邮件,如果存在与所述关键字匹配的加密文件,则邮件服务器向邮件接受者返回相应的加密邮件。表1所示的是测试中所测得的基于双线性对的可搜索加密方法各个步骤的运行时间。表1基于双线性对的可搜索加密方法各个步骤的运行时间实施案例密钥生成关键字密文生成门限生成测试匹配邮件最大时间0.027s0.108s0.069s0.018s最小时间0.009s0.100s0.044s0.011s平均时间0.019s0.103s0.058s0.014s综上所述,本发明提供的基于双线性对的可搜索加密方法中,服务器持有自己的公私钥对,由发送端基于双线性对用接收端公钥和服务器公钥加密消息的关键字,当接收端想要搜索包含某个关键字的消息时,则基于双线性对利用服务器的公钥和接收端的私钥加密所述关键字,生成该关键字的门限,由此接收端可以通过公共信道将所述门限传递给服务器。因为只有服务器持有能够匹配接收端所指定关键字的门限的私钥,而攻击者因没有服务器的私钥则无法进行所述匹配,进而保证了在无安全通道下门限的安全性,并且由于采用公共信道进行门限的传递,不需要专门的安全信道,因此,也保证了效率。并且,在本发明中,接收端利用一个随机数去更新门限,攻击者无法区分不同的门限是否来自同一个关键字,进一步保证了门限的安全性。因此,本发明设计的方法是一个既无需安全信道又能够满足密文安全性和门限安全性,在保证效率的同时又很好的保护了用户的隐私安全。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1