1.一种云存储密文检索方法,其特征在于,所述方法包括以下步骤:
S1,通过一密钥生成中心PKG生成公钥PK和私钥SK,并将所述公钥PK公开发布于云存储服务器,将所述私钥SK发送至检索端;
S2,使用所述公钥PK对文件进行加密,生成数据密文CD和索引密文CI,并将所述数据密文CD和所述索引密文CI上传至所述云存储服务器;
S3,检索端根据所述私钥SK和检索策略P生成检索陷门TP,并将所述检索陷门TP发送至所述云存储服务器;
S4,所述云存储服务器使用所述检索陷门TP对所述索引密文CI进行匹配运算,若所述检索陷门TP与所述索引密文CI满足匹配关系,则返回所述数据密文CD至检索端,若所述检索陷门TP与所述索引密文CI不满足匹配关系,则返回空值;
S5,检索端根据所述私钥SK解密所述数据密文CD,恢复所述文件的内容M;
其中,在所述步骤S1中,所述公钥PK和所述私钥SK按如下方法生成:
从公钥函数数据库中选取一套参数,包括两个阶为合数N的循环群G和GT,双线性对e:G×G→GT,设 和 依次为群G中阶为p1、p2、p3和p4的子群,且满足N=p1p2p3p4;
从群 中随机选取g,u1,…,un,在群 中随机选取X3,在群 中随机选取X4,h1,…,
hn,其中,n为文件的关键字域的个数;
计算公钥PK={N、g、gα、{Hi}1≤i≤n、X4},私钥SK={{ui}1≤i≤n、α、X3},其中,α为群ZN中随机选取的一个整数,参数Hi=uihi。
2.根据权利要求1所述的云存储密文检索方法,其特征在于,在所述步骤S2中,数据密文CD的计算方法为:
CD={CD,1,CD,2},其中CD,1为采用随机密钥RK和标准对称加密算法加密文件内容M的结果,CD,2为采用检索者的公钥PK和标准公钥加密算法加密随机密钥RK的结果。
3.根据权利要求1所述的方法,其特征在于,在所述步骤S2中,索引密文CI的计算方法为:
CI={C0,1,C0,2,{Ci}1≤i≤n),其中,C0,1=e(g,g)αs、C0,2=(gh)s·Z0、 s为
群ZN中随机选取一个整数,h,Z0,Z1,1,…,Z1,n为从群 中随机选取的元素,wi为文件各关键字域中的关键字。
4.根据权利要求3所述的云存储密文检索方法,其特征在于,在所述步骤S3中,检索陷门TP按如下方式生成:
利用德摩根定律对检索策略P中的NOT运算符下推,让NOT运算符仅与关键字相连,将与NOT运算符相连的关键字标记为否定关键字,否则标记为肯定关键字;
将检索策略P映射为一个线性秘密共享LSSS表达A=(A,ρ,T),其中A表示l×m的矩阵,ρ表示一个将矩阵A的每一行映射到一个关键字域的函数,T={tρ(1),…,tρ(l)}且tρ(i)表示关键字域ρ(i)中的关键字;
计算检索陷门TP=((A,ρ,T),{D1,i,D2,i,D3,i}1≤i≤l),其中,
其中,Ai为矩阵A的第i行组成的向量,υ为群ZN中m个随
机元素组成的向量并必须满足1·υ=α,{ri}1≤i≤l为群ZN随机选择的元素,{V1,i,V2,i,V3,i}1≤i≤l为群 中随机选择的元素。
5.根据权利要求4所述的云存储密文检索方法,其特征在于,在所述步骤S4中,检索陷门TP与索引密文CI的匹配方法为:
当存在某个集合I∈{1,...,l},使得 成立,则匹配成功,否则匹配失败,
其中,σi满足∑i∈IσiAi=(1,0,...,0),且当tρ(i)表示肯定关键字时,Ui=e(D1,i,C0,2)/e(D2,i,Ci);当tρ(i)表示否定关键字时,等式e(C0,2,D3,i)=e(Ci,D2,i)无法成立,此时Ui=e(D1,i,C0,2)/e(D3,i,C0,2)。
6.根据权利要求2所述的云存储密文检索方法,其特征在于,在所述步骤S5中,利用私钥SK和数据密文CD={CD,1,CD,2}恢复文件内容,按如下方式进行:
利用私钥SK和步骤2)中所述公钥算法解密密文CD,2,恢复出对称密钥RK;
利用对称密钥RK和所述对称加密算法解密密文CD,1,恢复出文件的内容M。
7.一种云存储密文检索系统,其特征在于,所述系统包括在密钥生成中心PKG运行的密钥生成子系统;在贡献端运行的加密子系统;在检索端运行的检索准备与解密子系统;在云存储服务器中运行的云存储子系统;
所述密钥生成子系统为检索者生成公钥PK和私钥SK;
所述加密子系统包括:数据加密模块、索引加密模块,其中,数据加密模块使用所述公钥PK为文件生成数据密文CD,索引加密模块使用所述公钥PK为文件生成索引密文CI;
所述检索准备与解密子系统包括:陷门生成模块、解密模块,其中,陷门生成模块根据所述私钥SK和检索策略P生成检索陷门TP,解密模块根据所述私钥SK解密数据密文CD;
所述云存储子系统包括公钥公布模块、存储模块、检索实施模块,其中公钥公布模块将密钥生成子系统产生的各检索者的公钥PK公开发布;存储模块存储贡献者加密后的数据密文CD和索引密文CI;检索实施模块将检索陷门TP和索引密文CI进行匹配运算,返回满足检索条件的数据密文CD;
其中,所述密钥生成子系统按如下方法生成所述公钥PK和所述私钥SK:
从公钥函数数据库中选取一套参数,包括两个阶为合数N的循环群G和GT,双线性对e:G×G→GT,设 和 依次为群G中阶为p1、p2、p3和p4的子群,且满足N=p1p2p3p4;
从群 中随机选取g,u1,…,un,在群 中随机选取X3,在群 中随机选取X4,h1,…,hn,其中,n为文件的关键字域的个数;
计算公钥PK={N、g、gα、{Hi}1≤i≤n、X4},私钥SK={{ui}1≤i≤n、α、X3},其中,α为群ZN中随机选取的一个整数,参数Hi=uihi。
一种云存储密文检索方法及其系统
技术领域
[0001] 本发明涉及云存储技术领域,尤其涉及一种云存储密文检索方法及其系统。
背景技术
[0002] 当前,用户对数据的安全性担忧成为了阻碍云存储发展的至关重要因素。因为用户将数据外包给云存储服务提供商后,失去了对数据的直接物理控制,数据将面临着外部网络攻击和内部云存储管理员的双重安全威胁。
[0003] 采用加密技术是解决上述安全问题的一种方法,即用户在本地将数据加密后再上传至云存储服务器,访问数据时将数据下载到本地后再解密。然而,密文数据的无序性,为用户检索这些数据带来了极大的困扰。因为云存储服务器在没有解密密钥的情况下,无法获得描述文档的关键字信息(如发送者、重要性、时间等),从而无法快速的实现类似于SQL的查询。为了获得期望的数据,用户需要下载所有的加密数据,在本地进行解密和检索。这一过程不仅需要较大的带宽支持,而且需要客户端具有较大的存储和计算能力,不满足云环境下瘦客户端的特点。此外,为了满足用户的个性化检索需求,云存储系统往往需要支持复杂的检索策略。这样既可帮助用户精确的获得所需数据,又可降低传输的代价。因此,研究云存储中安全、高效并可支持复杂检索策略的密文检索方法具有重要的现实意义。
[0004] 按照应用场景的不同,密文检索方法可以分为两类:对称密文检索和非对称密文检索。前者在数据加密与数据检索时使用的是同一密钥;后者在数据加密时使用的是公钥,数据检索时使用的是私钥。
[0005] 现有云环境下的密文检索方法大多是对称密文检索,仅适用贡献者与检索者为同一人的应用场景(单一用户模型)。如果要支持检索者不是贡献者的应用场景(多用户模型),就必须要为两者建立某种安全信道,贡献者通过该安全信道将密钥发送给数据接收者。
[0006] 在云存储中用户量巨大的情况下,这样建立一对一的安全信道的代价是非常昂贵的。此外,现有的密文检索方法的策略表达集中在单关键字等值检索、单关键字模糊检索、多个关键字的AND连接检索等,而不能够支持AND、OR、NOT等逻辑词嵌套的检索策略(例如:
检索“(‘发送者:Alice’OR‘重要性:紧急’)AND(NOT‘时间:9月’)。
发明内容
[0007] 针对现有技术中,云存储服务提供商对用户数据进行加密后,无法快速的实现查询操作,而将所有用户数据下载到本地后再进行解密和解锁,则往往需要消耗较大的带宽资源以及处理资源,同时,现有的云环境下的密文检索方法大多是对称密文检索,不支持多用户模型,以及现有的检索技术存在的效率低且表达能力有限的缺陷,本发明提出了一种云存储密文检索方法及其系统。
[0008] 本发明解决现有技术问题所采用的技术手段是构造一种云存储密文检索方法,该方法包括以下步骤:
[0009] S1,通过一密钥生成中心PKG生成公钥PK和私钥SK,并将所述公钥PK公开发布于云存储服务器,将所述私钥SK发送至检索端;
[0010] S2,使用所述公钥PK对文件进行加密,生成数据密文CD和索引密文CI,并将所述数据密文CD和所述索引密文CI上传至所述云存储服务器;
[0011] S3,检索端根据所述私钥SK和检索策略P生成检索陷门TP,并将所述检索陷门TP发送至所述云存储服务器;
[0012] S4,所述云存储服务器使用所述检索陷门TP对所述索引密文CI进行匹配运算,若所述检索陷门TP与所述索引密文CI满足匹配关系,则返回所述数据密文CD至检索端,若所述检索陷门TP与所述索引密文CI不满足匹配关系,则返回空值;
[0013] S5,检索端根据所述私钥SK解密所述数据密文CD,恢复所述文件的内容M。
[0014] 在本方法中,所述公钥PK和所述私钥SK按如下方法生成:
[0015] 从公钥函数数据库中选取一套参数,包括两个阶为合数N的循环群G和GT,双线性对e:G×G→GT。设 和 依次为群G中阶为p1、p2、p3和p4的子群,且满足N=
p1p2p3p4;
[0016] 从群 中随机选取g,u1,…,un,在群 中随机选取X3,在群 中随机选取X4,
h1,…,hn。其中,n为文件的关键字域的个数;
[0017] 计算公钥PK={N、g、gα、{Hi}1≤i≤n、X4},私钥SK={{ui}1≤i≤n、α、X3}。其中,α为群ZN中随机选取的一个整数,参数Hi=uihi。
[0018] 在本方法中,数据密文CD的计算方法为:
[0019] CD={CD,1,CD,2},其中CD,1为采用随机密钥RK和标准对称加密算法加密文件内容M的结果,CD,2为采用检索者的公钥PK和标准公钥加密算法加密随机密钥RK的结果。
[0020] 在本方法中,索引密文CI的计算方法为:
[0021] CI={C0,1,C0,2,{Ci}1≤i≤n),其中,C0,1=e(g,g)αs、C0,2=(gh)s·Z0、s为群ZN中随机选取一个整数,h,Z0,Z1,1,…,Z1,n为从群 中随机选取的元素,wi为文件各关键字域中的关键字。
[0022] 在本方法中,检索陷门TP按如下方式生成:
[0023] 利用德摩根定律对检索策略P中的NOT运算符下推,让NOT运算符仅与关键字相连,将与NOT运算符相连的关键字标记为否定关键字,否则标记为肯定关键字;
[0024] 将检索策略P映射为一个线性秘密共享(LSSS)表达A=(A,ρ,T),其中A表示l×m的矩阵,ρ表示一个将矩阵A的每一行映射到一个关键字域的函数,T={tρ(1),…,tρ(l)}且tρ(i)表示关键字域ρ(i)中的关键字;
[0025] 计算检索陷门TP=((A ,ρ,T) ,{D1,i ,D2,i,D3,i}1≤i≤l)。其中,
其中,Ai为矩阵A的第i行组成
的向量,υ为群ZN中m个随机元素组成的向量(必须满足1·υ=α),{ri}1≤i≤l为群ZN随机选择的元素,{V1,i,V2,i,V3,i}1≤i≤l为群 中随机选择的元素。
[0026] 在本方法中,检索陷门TP与索引密文CI的匹配方法为:
[0027] 当存在某个集合I∈{1,...,l},使得 成立,则匹配成功,否则匹配失
败。在上述式子中,σi满足∑i∈IσiAi=(1,0,...,0),且当tρ(i)表示肯定关键字时,Ui=e(D1,i,C0,2)/e(D2,i,Ci);当tρ(i)表示否定关键字时,等式e(C0,2,D3,i)=e(Ci,D2,i)无法成立,此时Ui=e(D1,i,C0,2)/e(D3,i,C0,2)。
[0028] 在本方法中,利用私钥SK和数据密文CD={CD,1,CD,2}恢复文件内容,按如下方式进行:
[0029] 利用私钥SK和步骤2)中所述公钥算法解密密文CD,2,恢复出对称密钥RK;
[0030] 利用对称密钥RK和所述对称加密算法解密密文CD,1,恢复出文件的内容M。
[0031] 一种云存储密文检索系统,所述系统包括在密钥生成中心PKG运行的密钥生成子系统;在贡献者端运行的加密子系统;在检索者端运行的检索准备与解密子系统;在云存储服务器中运行的云存储子系统。
[0032] 所述密钥生成子系统为检索者生成公钥和私钥。
[0033] 所述加密子系统包括:数据加密模块、索引加密模块,其中,数据加密模块为文件生成数据密文,索引加密模块为文件生成索引密文。
[0034] 所述检索准备与解密子系统包括:陷门生成模块、解密模块,其中,陷门生成模块生成检索陷门,解密模块解密数据密文。
[0035] 所述云存储子系统包括公钥公布模块、存储模块、检索实施模块,其中公钥公布模块将密钥生成中心PKG产生的各检索者的公钥公开发布;存储模块存储贡献者加密后的数据密文和索引密文;检索实施模块将检索陷门和索引密文进行匹配运算,返回满足检索条件的数据密文。
[0036] 实施本发明,使得云存储密文检索支持AND、OR、NOT等逻辑词嵌套的检索策略,可以帮助用户精确的获得所需数据,降低传输代价,具有过程简单、计算效率高的优点。本发明采用合数阶群和双线性配对进行构造,有效的避免了已知明文分布规律攻击和针对访问模式的攻击,安全性较高。同时,由于采用合数阶群和双线性配对进行构造,一方面,保证了相同关键字其密文索引不同,避免了已知明文关键字分布规律的背景攻击;另一方面,保证了相同的检索策略其检索陷门不同,避免了根据检索结果与检索陷门对应性造成的检索模式的泄漏。
附图说明
[0037] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038] 图1是本发明较佳实施例提供的存储密文检索方法流程图;
[0039] 图2是本发明另一实施例提供的存储密文检索方法流程图;
[0040] 图3是本发明较佳实施例提供的存储密文检索系统的结构框图。
具体实施方式
[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 首先,对本发明相关的数学基础进行如下说明:
[0043] 1.合数阶群上的双线性对:
[0044] 令N=p1p2p3p4(p1,p2,p3,p4为素数且两两不同),G和GT为N阶循环群,双线性对e:G×G>GT是一个满足双线性、非退化性和可计算性的映射,它把群G中的两个元素映射到群GT中的一个元素。需要注意的是,合数阶群上的双线性对还满足如下性质:令
分别代表群G中阶为p1、p2、p3、p4的子群,设 若i≠j,则有e(hi,
hj)=1。
[0045] 下面结合附图1以及附图2的实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
[0046] 如图1所示,本发明提供的云存储密文检索方法包括以下五个步骤:
[0047] S1,检索端的公钥与私钥生成步骤:通过一密钥生成中心PKG生成公钥PK和私钥SK,并将上述公钥PK公开发布于云存储服务器,将上述私钥SK发送至检索端。可以理解,上述密钥生成中心PKG是一个完全可信的第三方安全机构,负责为每个检索端(或检索者)生成一对与之对应的公钥和私钥。同时,密钥生成中心PKG将公钥广播给系统中所有用户,并将私钥通过加密信道传输至检索端。其中,公钥与私钥均是一定长度的二进制码。
[0048] 密钥生成中心PKG生成公钥PK和私钥SK后,将前者公开发布在云存储服务器,该云端存储器对上述公钥PK采用较低的访问权限,本云存储的注册用户均有访问该公钥PK的权限。同时,将后者经加密后发送至检索端,检索端包括第三方检索机构或者需要进行检索操作的普通用户。具体过程如下:
[0049] 1.从公钥函数数据库中选取一套参数,包括两个阶为合数N的循环群G和GT,双线性对e:G×G→GT。设 和 依次为群G中阶为p1、p2、p3和p4的子群,且满足N=
p1p2p3p4;
[0050] 2.从群 中随机选取g,u1,…,un,在群 中随机选取X3,在群 中随机选取X4,
h1,…,hn。其中,n为文件的关键字域的个数;
[0051] 3.计算公钥PK={N、g、gα、{Hi}1≤i≤n、X4},私钥SK={{ui}1≤i≤n、α、X3}。其中,α为群ZN中随机选取的一个整数,参数Hi=uihi。
[0052] S2,加密步骤:使用上述公钥PK对文件进行加密,生成数据密文CD和索引密文CI,并将上述数据密文CD和所述索引密文CI上传至上述云存储服务器。
[0053] 其中,索引密文是指贡献者通过对关键字进行加密后生成的密文,该密文保存在服务器端。服务器使用索引密文与用户发送的检索陷门进行匹配运算,并根据匹配运算的结果获知对应的数据密文是否满足检索策略。数据密文则是指通过对数据内容进行加密后生成的密文。检索者得到了满足检索策略的数据密文后,便可通过自己的私钥解密数据密文,从而获得数据的内容。
[0054] 贡献端利用从云存储服务器获得的检索端的公钥PK,对文件进行加密,生成数据密文CD和索引密文CI。具体过程如下:
[0055] 1.随机选取256位对称密钥RK,并用AES算法加密文件内容M生成密文CD,1。采用ElGamal公钥算法和公钥PK,加密对称密钥RK并生成密文CD,2;
[0056] 2.从群ZN中随机选取一个整数s,从群 中随机选取h,Z0,Z1,1,,Z1,n;
[0057] 3.计算数据密文CD={CD,1,CD,2},索引密文CI={C0,1,C0,2,{Ci}1≤i≤n)。其中,C0,1=eαs s
(g,g) 、C0,2=(gh)·Z0、 wi为文件各关键字域中的关键字。
[0058] S3,检索陷门生成步骤:检索端根据上述私钥SK和检索策略P生成检索陷门TP,并将上述检索陷门TP发送至上述云存储服务器。其中,上述检索策略可看作是由关键字通过AND、OR、NOT等逻辑词连接起来的,表示检索者想要检索什么样的数据。例如,检索策略P=(‘Alice’OR‘紧急’)AND(NOT‘AVI’),其中Alice、紧急、AVI是关键字,代表用户想检索所有包含‘alice’或者‘紧急’关键字,且不包含‘avi’关键字的文档。
[0059] 检索端利用自己的私钥SK和检索策略P,生成检索陷门TP,并将检索陷门发送给云存储服务器。具体过程如下:
[0060] 1.利用德摩根定律对检索策略P中的NOT运算符下推,让NOT运算符仅与关键字相连。将与NOT运算符相连的关键字标记为否定关键字,否则标记为肯定关键字。
[0061] 2.将检索策略P映射为一个线性秘密共享(LSSS)表达A=(A,ρ,T),其中A表示l×m的矩阵,ρ表示一个将矩阵A的每一行映射到一个关键字域的函数,T={tρ(1),…,tρ(l)}且tρ(i)表示关键字域ρ(i)中的关键字。
[0062] 3.从群ZN中随机选取m个元素组成向量υ,并保证1·υ=α。从群ZN中随机选择{ri}1≤i≤l,从群Gp3中随机选择{V1,i,V2,i,V3,i}1≤i≤l;
[0063] 4.计算检索陷门TP=((A,ρ,T),{D1,i,D2,i,D3,i}1≤i≤l)。其中,
[0064] S4,检索实施步骤:上述云存储服务器使用上述检索陷门TP对所述索引密文CI进行匹配运算,若上述检索陷门TP与所述索引密文CI满足匹配关系,则返回所述数据密文CD至检索端,若所述检索陷门TP与所述索引密文CI不满足匹配关系,则返回空值。
[0065] 匹配运算的具体过程如下:
[0066] 1.当存在某个集合I∈{1,...,l},使 成立,则匹配成功,否则匹配失
败。在上述式子中,σi满足∑i∈IσiAi=(1,0,...,0),且当tρ(i)表示肯定关键字时,Ui=e(D1,i,C0,2)/e(D2,i,Ci);当tρ(i)表示否定关键字时,等式e(C0,2,D3,i)=e(Ci,D2,i)无法成立,此时Ui=e(D1,i,C0,2)/e(D3,i,C0,2)。
[0067] S5,解密步骤:检索端根据上述私钥SK解密所述数据密文CD,恢复所述文件的内容M。具体过程如下:
[0068] 1.利用私钥SK和ElGamal公钥算法解密密文CD,2,恢复出对称密钥RK。
[0069] 2.利用对称密钥RK和AES算法解密密文CD,1,恢复出文件内容M。
[0070] 可以理解,在现有技术中,已知明文关键字分布规律的背景攻击:是指敌手拥有一些明文关键字分布规律的背景知识,并可通过这些知识进行攻击。例如:敌手知道6个关键字中,3个是关键字A,2个是关键字B,一个是关键字C。在一般的密文检索中,由于是采用对称加密算法加密关键字,所以相同关键字对应的索引是相同的。因此,即使敌手无法直接破解6个密文索引,但是他可以确定有3个相同的便对应关键字A,有2个相同的便对应关键字B,剩余的1个便对应关键字C。而本发明所提供的方法可以避免这种攻击,因为相同的关键字对应的密文索引是不同的,所以6个密文索引是完全随机不相同的,敌手便无法实施上述的攻击。
[0071] 更进一步地,现有技术中可能会出现检索模式泄漏的事故,该检索模式泄露是指在一般的密文检索中,对于同一个检索策略,检索者生成的检索陷门是相同的。因此,假设敌手可通过判断两个检索陷门是否相同,便可获得检索者两次的检索策略是否相同。通过对检索陷门进行大量的统计,敌手便可以检索者的检索模式上的统计规律。而本发明所提供的方法可以避免检索模式的泄露,因为相同的检索策略对应的检索陷门是不同的,所以检索陷门是完全随机不相同的,敌手便无法实施上述的统计。
[0072] 如图3所示,本发明提供的云存储密文检索系统包括以下四个部分:
[0073] 在密钥生成中心PKG运行的密钥生成子系统20;在贡献者端运行的加密子系统30;
在检索端运行的检索准备与解密子系统40;在云存储服务器中运行的云存储子系统10。
[0074] 其中,在密钥生成中心PKG运行的密钥生成子系统20为检索者生成公钥和私钥,并将公钥发布于云存储服务器,私钥发送给检索端。
[0075] 在贡献端运行的加密子系统30包括:数据加密模块31、索引加密模块32。数据加密模块31与云存储服务器进行交互,获得检索者的公钥,并利用该公钥加密文件,得到数据密文。索引加密模块32利用该公钥对文件的各关键字域中的关键字进行加密,得到索引密文,并将数据密文与索引密文上传至云存储服务器。
[0076] 在检索端运行的检索准备与解密子系统40包括:陷门生成模块41、解密模块42。陷门生成模块41利用检索端的私钥和检索策略生成检索陷门,并将上述检索陷门发送至云存储服务器。解密模块42利用检索端的私钥对检索返回的数据密文进行解密,恢复出文件的内容。
[0077] 在云存储服务器中运行的云存储子系统10包括:公钥公布模块11、存储模块12、检索实施模块13。公钥公布模块11将密钥生成中心PKG产生的各检索端的公钥公开发布。存储模块12存储贡献者加密后的数据密文和索引密文;检索实施模块13将检索陷门和索引密文进行匹配运算,返回满足检索策略的数据密文。
[0078] 如图2是本发明的另一个实施例。
[0079] 在本实施例中,文件的关键字域个数n=4,其中,每个域依次表示发送者、重要性、主题、文件类型。在本实施例的具体流程如下:
[0080] 1)密钥生成中心PKG运行的密钥生成子系统,生成检索者B的公钥PK和私钥SK,并将元组{B、PK}发送至云存储服务器子系统,云存储子系统中的公钥公布模块公开发布{B、PK}。密钥生成中心PKG将私钥SK发送至检索者B。
[0081] 2)若贡献者拥有三个文件1、2、3。其中,
[0082] 文件1的各个关键字域的关键字依次为:Alice、紧急、高三试题、PDF;
[0083] 文件2的各个关键字域的关键字依次为:Alice、一般、电影、AVI;
[0084] 文件3的各个关键字域的关键字依次为:Alice、一般、音乐、MP3。
[0085] 为了对文件加密,贡献者首先运行加密子系统,与云存储子系统中进行交互,获得检索者B的公钥PK。然后利用公钥PK,依次对三个文件进行加密,得到他们的数据密文CDi和索引密文CIi。最后将{CDi、CIi}(i=1,2,3)发送至云存储子系统。
[0086] 3)云存储子系统收到贡献者的存储请求后,将上传的数据存储在该云存储子系统的存储模块中,或者链接存储到第三方安全存储机构。
[0087] 4)检索者运行检索准备与解密子系统中的陷门生成模块,该模块根据检索策略P=(‘Alice’OR‘紧急’)AND(NOT‘AVI’)和检索者B的私钥SK,生成检索陷门TP。检索者将检索陷门TP发送至云存储子系统。
[0088] 5)云存储子系统收到检索者发起的检索请求后,运行检索实施模块,该模块将检索陷门TP与存储模块中的索引密文CI1、CI2、CI3依次进行匹配运算。匹配运算完成后,检索实施模块将数据密文CD1和CD2返回至检索者。
[0089] 6)检索者收到返回的数据密文后,运行准备与解密子系统中的解密模块。该模块根据检索者B的私钥SK和数据密文CDi(i=1,2),恢复出文件1和文件2的内容。
[0090] 由上述实施例可知,本发明与现有技术相比,具有如下优势:
[0091] 1.考虑到存储中数据量大的特点,本发明在加密时采用了混合加密机制,先用随机的对称密钥加密数据密文,然后用公钥加密对称密钥和关键字集合,这样可以最大程度的降低加密过程的计算代价。
[0092] 2.考虑到云环境中建立安全信道的昂贵代价,本发明通过设计非对称的密文检索技术,贡献端与检索端在整个过程中无需密钥的传递与交互,降低了方法的实现代价。
[0093] 3.本发明巧妙的利用德摩根定律和线性秘密共享LSSS技术,支持了AND、OR、NOT等逻辑词嵌套的检索策略,帮助用户精确的获得所需数据,降低传输的代价。
[0094] 4.本发明的安全性高。由于采用合数阶群和双线性配对进行构造,一方面,保证了相同关键字其密文索引不同,避免了已知明文关键字分布规律的背景攻击;另一方面,保证了相同的检索策略其检索陷门不同,避免了根据检索结果与检索陷门对应性造成的检索模式的泄漏。
[0095] 可以理解,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0096] 本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0097] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。