云存储中基于双线性对的多用户多关键词可搜索加密方法
技术领域
本发明属于信息安全技术领域,具体涉及一种云存储中基于双线性对的多用户多关键词可搜索加密方法。
背景技术
云计算作为一种新的计算模型,能够提供成本较低、可扩展的各种先进的计算服务,为了节省存储及管理数据的代价,企业和个人可以将数据外包到云存储服务器。云存储服务提供的数据具有可用性和可靠性等优势,但是其也有一个很明显的缺点,即数据不在用户的管理及控制之下,那么如何维护数据的机密性和完整性便成为用户迫切关注的问题。
虽然企业相信云存储服务提供商(Cloud Storage Service Provider,CSSP)的可靠性、可用性、容错性等,但是人们无法确信CSSP不将托管的数据用于其他目的;同样对于个人用户而言,他们希望自己的数据只能由自己或指定的人访问而不能被CSSP访问。这将导致两方面的问题:一方面,从用户的角度看,他们无法找到让他们完全可信的CSSP来存储和管理他们的数据;另一方面从CSSP的角度看,在没有解决上述问题的情况下将会丢失大量的客户。因此,数据的机密性及完整性将阻碍云存储的推广及使用。
鉴于以上的实际问题,云存储中数据必须在传输到CSSP之前,由用户自己加密,并且也只能由用户自己进行解密,这样将会减轻用户数据泄漏的危险。但这将引入一个新的问题,如用户需要包含某个关键字的文档,那么用户是否能很快的获得他们想要的数据并保证数据对CSSP的机密性?
发明内容
本发明的目的是提供一种云存储中基于双线性对的多用户多关键词可搜索加密方法,解决了现有技术中存在的云存储数据加密后不能实现关键词检索的问题。
本发明所采用的技术方案是,云存储中基于双线性对的多用户多关键词可搜索加密方法,具体按照以下步骤实施:
步骤1、系统参数初始化;
步骤2、添加用户;
步骤3、文件拥有者对文件加密和安全索引生成;
步骤4、服务器对索引重加密;
步骤5、用户关于关键词搜索令牌的生成;
步骤6、云存储服务器关于密文关键词的搜索;
步骤7、用户关于密文的解密;
步骤8、撤销用户。
本发明的特点还在于,
步骤1具体按照以下步骤实施:
步骤(1.1)、由文件加密者Ent输入安全参数k,输出两个阶为素数q的乘法循环群G1和G2,g1为G1的生成元,g2为G2的生成元;
步骤(1.2)、选择双线性映射
步骤(1.3)、随机均匀地选择x∈Zq作为文件加密者Ent的主密钥,记为其中计算h=g1 x∈G1;
步骤(1.4)、选择两个伪随机函数和任意选择两个随机种子s′,s″∈R{0,1}k;
步骤(1.5)、选择对称加密算法SKE={SKE.Gen(1k),SKE.ENC(.),SKE.DE(.)},随机均匀地选择一个加密密钥ek←SKE.Gen(1k);
步骤(1.6)、文件加密者Ent公开系统参数为保密系统私钥为随机种子s′,s″∈R{0,1}k及文件加密密钥ek。
步骤2具体按照以下步骤实施:
步骤(2.1)、输入系统用户管理者UM的主密钥和一个用户身份uID,输出用户uID的密钥和辅助密钥这里是在中随机选择的,即
步骤(2.2)、将安全地发送给用户uID,用户uID保密
步骤(2.3)、将安全地发送给服务器Serv,Serv在其用户列表U-ComK中加入并保密用户列表U-ComK。
步骤3具体按照以下步骤实施:
步骤(3.1)、输入用户uID密钥加密密钥ek、随机种子s′、文档Di及其关键词列表随机选择ri∈RZq;
步骤(3.2)、计算和计算1≤j≤im,令记将发送给云服务器Serv。
步骤4具体按照以下步骤实施:
步骤(4.1)、输入用户身份uID和接收到的服务器Serv在用户列表U-ComK中查找若无,则返回,否则根据中的计算得到新的索引Ii,计算如下:
步骤(4.2)、将密文及索引Ci=(Encek(Di),Ii)存储在服务器Serv上。
步骤5具体按照以下步骤实施:
步骤(5.1)、由系统用户uID执行,得到d(d≥1)个关键词w′1,…,w′d的搜索令牌计算如下:
随机选择计算
步骤(5.2)、将任意d(d≥1)个关键词w′1,…,w′d的搜索令牌T=(uID,T11,…,T1d,T2,T3)发送给云存贮服务器Serv。
步骤6具体按照以下步骤实施:
步骤(6.1)、输入搜索令牌T=(uID,T11,…,T1d,T2,T3),Serv首先在U-ComK中查找是否存在若无,则返回;否则Serv根据密文Ci=(Encek(Di),Ii)中的索引结构做出判断;
步骤(6.2)、首先初始化搜索结果Ω为空集,对Ci=(Encek(Di),Ii),其中判断如下等是否至少有d个成立:
其中,
如果Ci中含有该d个关键词w′1,…,w′d,,其中d≥1,则Ω=Ω∪{Ci},继续搜索下一个密文Ci+1=(Encek(Di+1),Ii+1),否则,该密文与关键词不匹配,继续搜索下一个Ci+1=(Encek(Di+1),Ii+1);
步骤(6.3)、当服务器对所有的存贮的密文检索后,将最终的搜索结果Ω发送给用户uID。
步骤7具体为:
输入对称密钥ek及接收到的搜索结果Ω,对,计算Di=Decek(Ei),得到含有d(d≥1)个关键词w′1,…,w′d的解密数据Di。
步骤8具体为:
输入用户身份uID,用户管理机构UM向云存贮服务器Serv发送撤销用户uID的命令,服务器Serv在用户列表U-ComK中删除用户uID注册项目更新
本发明的有益效果是,云存储中基于双线性对的多用户多关键词可搜索加密方法,数据用户可以将自己的数据加密后,存放到云存储服务器,需要时候,可以通过关键词检索令牌检索到需要的密文数据,然后下载解密,同时,云存储服务器并不知道用户检索的关键词,确保用户的数据信息隐私性,通过与现有方案相比较,本发明方法在通信和计算代价,即搜索陷门大小、关键词加密和搜索的速度等方面的综合效率得到提高,而且本发明是适合多用户环境的,可以增加和撤销用户,用户增加可以通过算法Enroll(kUM,uID)实现,用户的撤销可以通过算法RevokeUser(uID)实现。
具体实施方式
下面结合具体实施方式对本发明进行详细说明。
本发明云存储中基于双线性对的多用户多关键词可搜索加密方法,具体按照以下步骤实施:
步骤1、系统参数初始化:
具体按照以下步骤实施:
步骤(1.1)、由文件加密者Ent输入安全参数k,输出两个阶为素数q的乘法循环群G1和G2,g1为G1的生成元,g2为G2的生成元;
步骤(1.2)、选择双线性映射
步骤(1.3)、随机均匀地选择x∈Zq作为文件加密者Ent的主密钥,记为其中计算h=g1 x∈G1;
步骤(1.4)、选择两个伪随机函数和任意选择两个随机种子s′,s″∈R{0,1}k;
步骤(1.5)、选择对称加密算法SKE={SKE.Gen(1k),SKE.ENC(.),SKE.DE(.)},随机均匀地选择一个加密密钥ek←SKE.Gen(1k);
步骤(1.6)、文件加密者Ent公开系统参数为保密系统私钥为随机种子s′,s″∈R{0,1}k及文件加密密钥ek。
步骤2、添加用户:
具体按照以下步骤实施:
步骤(2.1)、输入系统用户管理者UM的主密钥和一个用户身份uID,输出用户uID的密钥和辅助密钥这里是在中随机选择的,即
步骤(2.2)、将安全地发送给用户uID,用户uID保密
步骤(2.3)、将安全地发送给服务器Serv,Serv在其用户列表U-ComK中加入并保密用户列表U-ComK。
步骤3、文件拥有者对文件加密和安全索引生成:
具体按照以下步骤实施:
步骤(3.1)、输入用户uID密钥加密密钥ek、随机种子s′、文档Di及其关键词列表随机选择ri∈RZq;
步骤(3.2)、计算和计算1≤j≤im,令记将发送给云服务器Serv。
步骤4、服务器对索引重加密:
具体按照以下步骤实施:
步骤(4.1)、输入用户身份uID和接收到的服务器Serv在用户列表U-ComK中查找若无,则返回,否则根据中的计算得到新的索引Ii,计算如下:
步骤(4.2)、将密文及索引Ci=(Encek(Di),Ii)存储在服务器Serv上。
步骤5、用户关于关键词搜索令牌的生成:
具体按照以下步骤实施:
步骤(5.1)、由系统用户uID执行,得到d(d≥1)个关键词w′1,…,w′d的搜索令牌计算如下:
随机选择计算
T3=f″(s″,t2);
步骤(5.2)、将任意d(d≥1)个关键词w′1,…,w′d的搜索令牌T=(uID,T11,…,T1d,T2,T3)发送给云存贮服务器Serv;
步骤6、云存储服务器关于密文关键词的搜索:
具体按照以下步骤实施:
步骤(6.1)、输入搜索令牌T=(uID,T11,…,T1d,T2,T3),Serv首先在U-ComK中查找是否存在若无,则返回;否则Serv根据密文Ci=(Encek(Di),Ii)中的索引结构做出判断;
步骤(6.2)、首先初始化搜索结果Ω为空集,对Ci=(Encek(Di),Ii),其中判断如下等是否至少有d个成立:
其中,
如果Ci中含有该d个关键词w′1,…,w′d,,其中,d≥1,则Ω=Ω∪{Ci},继续搜索下一个密文Ci+1=(Encek(Di+1),Ii+1),否则,该密文与关键词不匹配,继续搜索下一个Ci+1=(Encek(Di+1),Ii+1);
步骤(6.3)、当服务器对所有的存贮的密文检索后,将最终的搜索结果Ω发送给用户uID;
步骤7、用户关于密文的解密:
具体为:
输入对称密钥ek及接收到的搜索结果Ω,对计算Di=Decek(Ei),得到含有d(d≥1)个关键词w′1,…,w′d的解密数据Di。
步骤8、撤销用户:
具体为:
输入用户身份uID,用户管理机构UM向云存贮服务器Serv发送撤销用户uID的命令,服务器Serv在用户列表U-ComK中删除用户uID注册项目更新
下面证明本发明云存储中基于双线性对的多用户多关键词可搜索加密方法的安全性:
证明:若所有数据都是按照本发明描述生成的,Ci=(Encek(Di),Ii),并且如果其中1≤lk≤im,则有:
因此一定至少存在d个l1,…,ld∈{1,…,im}使得下式成立:
证毕
对本发明的总结:
本发明云存储中基于双线性对的多用户多关键词可搜索加密方法,能够在加密的数据集合上进行搜索查询,具体方法是,先为文件集合生成索引集合,再使用可搜索加密对这些索引进行加密以隐藏索引内容,并且加密要满足如下性质:1)给定一个关键字(即索引)的令牌,可以获得包含该关键字的所有文件的指针;2)没有令牌,索引的内容是隐藏的;3)只有具有相关密钥的用户才能生成令牌;4)检索过程除了暴露了哪些文件共享某个关键字外,不会暴露任何有关文件和关键字的具体信息。可搜索加密的核心作用是为云存储服务提供:一是用户自己控制其数据;二是数据的安全性质可以通过密码学原理验证,而不是通过法律、物理设备来确定安全性。
本发明云存储中基于双线性对的多用户多关键词可搜索加密方法,在云存储服务中,用户可以使用可搜索的加密方案对数据加密后,外包到云存储服务器。可搜索加密方案使得用户能够有选择的访问其密文数据,同时还能确保用户搜索数据的机密性,基于连接关键词(即多个关键词的布尔组合)的可搜索加密方案因其更高的搜索精度在安全存储服务中有着重要的应用价值。本发明采用授权用户和存储服务器先后对关键词加密的方式提出了一种可搜索多个关键词的加密方法,使得授权用户能够利用连接关键词的陷门搜索加密文档。通过与现有方案相比较,提出的方案在通信和计算代价,即搜索陷门大小、关键词加密和搜索的速度,等方面的综合效率得到提高。此外,提出的方案支持多用户,即能够动态的增加和撤销用户,使得用户能够直接在存储服务器上进行数据共享。