1.一种基于属性的密文检索方法,其特征在于:基于由可信第三方服务器、云服务器、各数据共享者、以及各数据访问者参与的目标系统,通过步骤A‑C,各数据共享者对持有的文档进行加密存储至云服务器中;由数据共享者和数据访问者构成的数据检索者,通过步骤D‑E,对云服务器中的文档进行检索访问:步骤A:针对目标系统,可信第三方服务器生成目标系统公共参数、目标系统主私钥;
步骤B:基于目标系统公共参数、目标系统主私钥,结合该目标系统对应的访问树,可信第三方服务器为目标系统中的各数据访问者、以及各数据共享者分别分配对应的解密密钥;
步骤C:针对各数据共享者持有的文档,基于目标系统公共参数、文档中的各关键词、该目标系统对应的访问树、以及该目标系统中各数据共享者、各数据访问者对应的属性集,对文档中各关键词进行加密,获得文档中各关键词分别对应的关键词密文,更新各文档,并将各文档提交至云服务器;
所述步骤C中,针对各数据共享者持有的文档,执行以下步骤,将各文档提交至云服务器:步骤1:针对数据共享者上传云服务器的文档,为该文档生成一个指定的标识符id,提取出文档中所有关键词,得到关键词集合w,并将目标系统剩余更新次数ctr减一;
步骤2:分别针对每个关键词w,若云服务器的文档中不含有该关键词,则执行步骤3;若云服务器的文档中含有该关键词,则执行步骤4;
步骤3:针对该关键词生成一条空链,链的头节点为(F,id1,ls),F是关键词密文,id1表示包含这个关键词的第一个文档的标识符,ls是连接头节点和下一节点的字符串;
步骤4:对云服务器中该关键词对应的链进行更新,在该链的尾部加上该关键词对应的一个节点;链的头节点为(F,id1,ls),余下的每个节点存放(lso,ido,lso+1),其中lso和lso+1分别是第o个文档连接上一节点和下一节点的字符串,ido表示第o个文档的标识符;
步骤5:数据共享者将每个关键词对应的链发送至云服务器进行存储,并将各文档提交至云服务器进行存储;
步骤D:针对云服务中的文档,数据检索者基于检索关键词、检索者对应的解密密钥,生成搜索请求陷门,并将搜索请求陷门提交至云服务器;
步骤E:云服务器基于数据检索者提交的搜索请求陷门,对云服务器中的文档进行搜索,把满足搜索请求陷门的数据发送给数据检索者。
2.根据权利要求1所述一种基于属性的密文检索方法,其特征在于:所述步骤A中,目标系统公共参数为:Pub=(go,g1,g2,u1,…,un+1);目标系统主私钥为:Msk:(z,β);
其中,双线性对e:G1×G1→G2,G1是阶为p的乘法循环群,g为G1的任意一个生成元;G2是阶为q的乘法循环群,p、q是两个预设素数;可信第三方服务器选取两个随机数z,β∈Zp,Zp为β z元素个数为p的有限域,即集合{0,1,...,p‑1};g0=g ,g1=g ,g2∈G1,(u1,u2,…un+1)∈G1,n指的是该目标系统中各数据共享者、各数据访问者对应的属性集γ中的属性总数。
3.根据权利要求2所述一种基于属性的密文检索方法,其特征在于:所述步骤B中,可信第三方服务器为用户分配其对应的解密密钥具体过程如下:步骤B1:目标系统访问树Γ中的每个节点x分别对应一个多项式rx,节点x对应的多项式rx的阶数与该节点的门限阈值相差1;
步骤B2:基于目标系统访问树Γ中各节点的多项式,常数项为0时,对于根节点x=root,rroot(0)=z;对于其他节点,rx(0)=rparentnode(x)(index(x));其中,parentnode(x)表示目标系统访问树Γ中节点x的父节点,index(x)表示返回节点x的编号;
步骤B3:基于目标系统公共参数Pub以及目标系统主密钥Msk,每个节点x分别对应秘密值privx=(Ex,Sx);其中, vx是节点x在Zp中随机选择的数,att(x)表示叶子节点x的属性, 定义拉格朗日系数
T是由Zp中元素构成的集合,T∈Zp;
步骤B4:可信第三方服务器基于目标系统访问树Γ中每个节点对应的秘密值,为目标系统中的各数据访问者以及各数据共享者分别分配对应的解密密钥(β,{privx}x∈Γ)。
4.根据权利要求3所述的一种基于属性的密文检索方法,其特征在于:所述步骤C中,关t t t键词密文F=(γ,F'=H2(u)·e(g1,g2) ,F”=g ,{FX=U(X) }X∈Γ);
ctr
其中, stw为关键词w的更新令牌,stw=H3
(ktw),ktw=PRF(k,w),H、H1、H2、H3均为预设hash函数,H:{0,1}*→{0,1},H1:{0,1}*→G1,H2:λ λ * λ
G2→G2,H3:{0,1}*→{0,1} ,PRF为预设伪随机函数,PRF:{0,1}×{0,1} →{0,1} ,λ为预设安全参数,随机选择t∈Zp,ctr表示该目标系统剩余更新次数,初始值为预设常数clen。
5.根据权利要求4所述的一种基于属性的密文检索方法,其特征在于:所述步骤D中,搜索请求陷门为Uw=[SW,{privx}x∈Γ];
其中,SW为检索关键词w的检索令牌,
k为预设关键词密钥。
6.根据权利要求4所述的一种基于属性的密文检索方法,其特征在于:所述步骤E中,具体执行以下步骤,基于数据检索者提交的搜索请求陷门、以及云服务器中的关键词密文,对云服务器中的文档进行搜索,把满足搜索请求陷门的数据发送给数据检索者:步骤E1:云服务器针对搜索请求陷门,基于云服务器中的关键词密文,验证数据检索者的访问树是否满足目标系统访问树;若满足,则执行步骤E2;若不满足,返回个空值给数据检索者;
步骤E2:基于用户搜索请求的时间,将当前目标系统ctr值通过安全信道传输给用户,并基于预设递归算法遍历云服务器中的各关键词密文,判断搜索请求陷门中的关键词与云服务器中的各关键词是否相同,若相同,则将该关键词对应的文件传输给用户;若不相同,则返回空值给用户。
7.根据权利要求6所述的一种基于属性的密文检索方法,其特征在于:所述步骤E2中,基于预设递归算法判断搜索请求陷门中的关键词与云服务器中的关键词是否相同的具体过程如下;
步骤E2.1:基于关键词密文F,搜索请求陷门Uw和目标系统访问树,定义预设递归算法DecNode(F,Uw,x),当x为叶子节点时,
其中,
当x为非叶子节点时,对于x节点所有的子节点a来说,Tx为x节点的子节点总数,调用Ga=DecNode(F,Uw,a),J=index(x),T'x={index(a):a∈Tx};
z·t t
步骤E2.2:综上,获得DecNode(F,Uw,root)=e(g,g2) =e(g1,g2) ,检查访问树对于是否均成立,若成立,则将该关键词对应的文件传输给用户;若不成立,则返回空值给用户。