一种基于关键字搜索的代理重加密方案的制作方法

文档序号:13696568阅读:157来源:国知局
技术领域本发明涉及云计算及密码学领域,具体涉及一种带关键字搜索的代理重加密方案,该方案支持在密文数据库上进行关键字搜索,可用于信息处理系统的存储管理以及文件检索。

背景技术:
近些年,随着云计算技术的广泛使用,越来越多的用户以及企业选择将数据存储到云服务器上。与传统存储方式相比,将数据存储到云服务器端,本地不需要存储介质,不仅节省本地存储的开销,而且可以提高存取效率和增加存储数据的安全性。随着越来越多的数据存储到云服务器,其存储数据量呈指数增长,而在这些海量数据中包括用户和企业的个人隐私和商业机密等敏感信息,如何更好地保护、检索和合法使用而不被非法用户获取,是目前云环境下数据存储面临的一个很大的安全挑战。在云服务器上对用户的数据进行加密存储是对用户数据的一种有效保护。但对于请求访问加密数据的用户而言,如何在云服务器端对数据进行密文检索是一个难题。有两种思路来解决这个问题,最简单的思路是将云服务器端的所有密文数据下载到本地,本地用户再进行解密操作后,在明文数据上完成相应的关键字搜索工作。这种思路的缺点是不仅浪费大量的网络资源和存取开销,而且用户在本地对密文数据的解密和搜索操作也会浪费大量的计算开销;另一种更安全的思路是用户将经过加密的密钥和搜索的关键字发送给云服务器,云服务器根据密钥对密文数据进行解密操作后,在明文上完成关键字搜索工作。但是这种思路又使得数据重新以明文形式存储于云服务器端,对用户隐私和企业机密等信息的安全产生巨大威胁。因此,研究在云环境下对密文数据进行关键字搜索具有理论价值与现实意义。近些年,随着云计算技术的广泛使用,越来越多的用户以及企业选择将数据存储到云存储服务器上。与一些传统的存储方式相比,将数据存储到云端,本地不需要存储介质,不仅大大节省了本地存储的开销,并且提高了存取效率。由于越来越多的数据存储到云服务器,因此云服务器端的数据量逐渐增加。其中包括很多企业的商业机密和个人用户的隐私等关键信息。如何更好地保护这些敏感信息不被非法用户获取,是目前云环境下数据存储面临的一个很大的挑战。在云服务器上对用户的数据进行加密是对用户数据的一种有效保护。但是经过加密的数据,对于请求访问数据的用户来说,如何在云端对数据进行关键字密文检索是一个难题。面对这个问题,最简单的一种方法是将云服务器上的所有密文数据下载到本地,本地用户再进行解密操作,之后在明文数据上完成相关的关键字搜索工作。但是这种方法会浪费大量的网络资源和存取开销,而且用户本地对密文数据进行解密和搜索过程中也会造成大量的计算开销。还有一种极端的方法是用户将内容加密密钥和搜索的关键字发送给云服务器,云服务器根据密钥对密文数据进行解密操作,之后在明文上完成关键字搜索。但是这种方法又使得数据重新以明文形式曝光于云服务器和非法用户的视线之下,对企业的机密和用户隐私的安全产生巨大的威胁。因此,研究在云环境下对密文数据进行关键字搜索是一项具有研究价值与意义的方向。

技术实现要素:
本发明针对现有技术对云服务器上的文件进行加密存在浪费大量的网络资源和存取开销,而且用户本地对密文数据进行解密和搜索过程中也会造成大量的计算开销,或者存在数据重新以明文形式曝光于云服务器和非法用户的视线之下,对企业的机密和用户隐私的安全产生巨大的威胁等问题,提出一种带关键字搜索的代理重加密方案。本发明的技术方案是:一种带关键字搜索的代理重加密方案,包括服务器端S和客户端A、客户端B,客户端A、客户端B均与服务器端S进行双向通信,所述带关键字搜索的代理重加密方案的具体实施步骤为:步骤1:服务器为每个用户生成公私钥对;步骤2:数据拥有者用对称加密算法对文件内容进行加密,并根据服务器的公钥、安全参数和对称算法中使用的对称密钥生成文件标识符密文,采用服务器的公钥和自己的私钥对文件内容所匹配的关键字进行加密得到关键字密文,将文件密文、文件标识符密文以及关键字密文发送给服务器;步骤3:需要检索文件时,用户将自己的私钥进行哈希计算,将生成的摘要发送给数据拥有者,由数据拥有者为其生成重加密密钥;步骤4:服务端依据重加密密钥对关键字密文进行重加密,得到重加密后的关键字密文;步骤5:用户利用自己的私钥和查询关键字,通过陷门生成算法生成陷门,并将陷门发送给服务器;步骤6:服务器根据收到的陷门和陷门检验算法,判断所存储的文件中是否包含所查找的关键字信息,检验成功后,将目标文件密文和文件标识符发送给用户;步骤7:用户对目标文件标识符进行解密得到对称加密密钥,通过此密钥解密得到文件明文。所述的带关键字搜索的代理重加密方案,所述步骤一生成公私密钥对的方法是,服务器S依据密钥生成算法生成客户端A的公钥pka、私钥ska,客户端B的公钥pkb、私钥skb和服务器S的公钥pks,私钥sks;其中,所有公钥公开,私钥由各自秘密保存。所述的带关键字搜索的代理重加密方案,所述步骤2的具体步骤为:步骤2-1:客户端A根据对称加密算法产生对称密钥ki,使用ki对文件明文M进行加密,得到文件密文C;步骤2-2:客户端A根据对称密钥ki、服务器S的公钥pks和随机安全参数xi,输出文件标识符的密文FID;步骤2-3:客户端A采用服务器S的公钥pks,自己的私钥ska对文件M匹配的关键字ωi进行加密,得到关键字密文步骤2-4:客户端A将文件密文C,文件标识符密文FID和关键字密文发送至服务器S,由服务器进行存储。所述的带关键字搜索的代理重加密方案,所述步骤3中重密钥生成的方法为:步骤3-1:客户端B将自己的私钥skb进行Hash之后,将生成的消息摘要发送给客户端A;步骤3-4:客户端A利用重加密密钥生成算法计算重加密密钥RkA→B,并将RkA→B发送给服务器。所述的带关键字搜索的代理重加密方案,所述步骤4中重加密的具体方法是:服务器S通过重加密密钥RkA→B对关键字密文进行重加密,并计算重加密后的关键字密文所述的带关键字搜索的代理重加密方案,所述步骤5的陷门产生的具体方法是:客户端B利用自己的私钥skb和查询关键字ω,通过陷门生成算法输出相伴于关键字ω的陷门Tω,并将陷门发送给服务器。陷门不会泄露任何关于关键字或数据的信息。所述的带关键字搜索的代理重加密方案,所述步骤6中陷门检验的具体方法为:步骤6-1:服务器通过客户端B发送的陷门Tω和陷门检验算法Γ,判断所存储的文件中是否包含所查找的关键字信息。步骤6-2:检验成功后,服务器S将文件标识符密文FID发送给客户端B;步骤6-3:根据FID找到所对应的文件密文,将文件密文C发送给客户端B。所述的带关键字搜索的代理重加密方案,所述步骤7中用户对目标文件进行解密的具体方法是:步骤7-1:根据客户端B的私钥skb和yi,解密文件标识符密文FID得到对称加密密钥ki;步骤7-2:客户端B输入对称密钥ki和文件密文C,解密得到文件明文M,完成通信。所述的带关键字搜索的代理重加密方案,所述步骤2-2中文件标识符密文FID生成的方法为:步骤2-2-1:客户端A产生随机数xi,通过客户端B的公钥采用非对称加密算法计算yi,并将yi发送给客户端B;步骤2-2-2:客户端A根据服务器S的公钥pks、随机数xi和对称密钥ki,生成文件标识符密文FID。本发明的有益效果是:1、本发明提供的方案对关键字进行重加密,避免了对整个文件进行重加密,提高了计算效率,同时服务器不能获取任何明文信息,也不需要安全信道来传输,保证在云环境下更加安全有效。同时,通过重加密计算使得整个通信过程无需在安全信道中进行,节省了通信代价。2、本发明对文件对应的关键字密文进行重加密,在计算效率上有一定程度的提高;整个过程中服务器不能获取任何明文信息,也不需要安全信道来传输,节省了通信代价;方案设计满足陷门的不可区分性,即可有效地抵抗选择关键字攻击。具体实施方式实施例1:一种带关键字搜索的代理重加密方案,包括服务器端S和客户端A、客户端B,客户端A、客户端B均与服务器端S进行双向通信,其特征在于:所述带关键字搜索的代理重加密方案的具体实施步骤为:步骤1:服务器为每个用户生成公私钥对;生成公私密钥对的方法是,服务器S依据密钥生成算法生成客户端A的公钥pka、私钥ska,客户端B的公钥pkb、私钥skb和服务器S的公钥pks,私钥sks;其中,所有公钥公开,私钥由各自秘密保存。步骤2:数据拥有者用对称加密算法对文件内容进行加密,并根据服务器的公钥、安全参数和对称算法中使用的对称密钥生成文件标识符密文,采用服务器的公钥和自己的私钥对文件内容所匹配的关键字进行加密得到关键字密文,将文件密文、文件标识符密文以及关键字密文发送给服务器;密文生成的具体步骤为:步骤2-1:客户端A根据对称加密算法产生对称密钥ki,使用ki对文件明文M进行加密,得到文件密文C;步骤2-2:客户端A根据对称密钥ki、服务器S的公钥pks和随机安全参数xi,输出文件标识符的密文FID;步骤2-3:客户端A采用服务器S的公钥pks,自己的私钥ska对文件M匹配的关键字ωi进行加密,得到关键字密文步骤2-4:客户端A将文件密文C,文件标识符密文FID和关键字密文发送至服务器S,由服务器进行存储。步骤2-2中文件标识符密文FID生成的方法为:步骤2-2-1:客户端A产生随机数xi,通过客户端B的公钥采用非对称加密算法计算yi,并将yi发送给客户端B;步骤2-2-2:客户端A根据服务器S的公钥pks、随机数xi和对称密钥ki,生成文件标识符密文FID。步骤3:需要检索文件时,用户将自己的私钥进行哈希计算,将生成的摘要发送给数据拥有者,由数据拥有者为其生成重加密密钥;重密钥生成的方法为:步骤3-1:客户端B将自己的私钥skb进行Hash之后,将生成的消息摘要发送给客户端A;步骤3-4:客户端A利用重加密密钥生成算法计算重加密密钥RkA→B,并将RkA→B发送给服务器。步骤4:服务端依据重加密密钥对关键字密文进行重加密,得到重加密后的关键字密文;重加密的具体方法是:服务器S通过重加密密钥RkA→B对关键字密文进行重加密,并计算重加密后的关键字密文步骤5:用户利用自己的私钥和查询关键字,通过陷门生成算法生成陷门,并将陷门发送给服务器;陷门产生的具体方法是:客户端B利用自己的私钥skb和查询关键字ω,通过陷门生成算法输出相伴于关键字ω的陷门Tω,并将陷门发送给服务器。陷门不会泄露任何关于关键字或数据的信息。步骤6:服务器根据收到的陷门和陷门检验算法,判断所存储的文件中是否包含所查找的关键字信息,检验成功后,将目标文件密文和文件标识符发送给用户;陷门检验的具体方法为:步骤6-1:服务器通过客户端B发送的陷门Tω和陷门检验算法Γ,判断所存储的文件中是否包含所查找的关键字信息。步骤6-2:检验成功后,服务器S将文件标识符密文FID发送给客户端B;步骤6-3:根据FID找到所对应的文件密文,将文件密文C发送给客户端B。步骤7:用户对目标文件标识符进行解密得到对称加密密钥,通过此密钥解密得到文件明文。用户对目标文件进行解密的具体方法是:步骤7-1:根据客户端B的私钥skb和yi,解密文件标识符密文FID得到对称加密密钥ki;步骤7-2:客户端B输入对称密钥ki和文件密文C,解密得到文件明文M,完成通信。实施例2:假定G1和G2是阶同为p的循环群,g为G1中的一个生成元,e:G1×G1→G2是双线性对,H1:{0,1
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1