1.一种支持细粒度访问的云数据确定性删除方法,其特征在于:包括下列步骤:步骤S100.系统建立,生成系统参数:选择安全参数k,可信权威中心生成系统的公开参数;
步骤S200.云用户私钥申请与生成:
云用户向可信权威中心提出私钥申请,可信权威中心根据所述系统公开参数、云用户的访问结构W和随机数r生成中间私钥SKW返回给所述云用户;然后所述云用户选择一对签名密钥{spk,ssk}和随机数α,云用户的私钥为SK=(SKW,ssk,α);
其中,云用户的访问结构W中包括可访问性的属性,数据所有者包含在云用户中;
步骤S300.数据所有者将数据加密与存储后上传至云服务器:
步骤S301.数据加密与存储:数据所有者为将要上传的数据M选择一组属性集γ和随机数s,对数据M进行加密,得到密文CT=(C1,C2,C3),然后以C3中的各元素为叶子结点构建Merkle哈希树,使用所述签名密钥ssk对Merkle哈希树的根节点R签名得到sigssk(R);
其中,属性集γ中包括可访问性的属性,且属性值为可访问;
步骤S302.数据所有者上传数据至云服务器:数据所有者为将要上传的数据M选择一个标识符fname,然后设置ind为可访问性属性对应的密文 在Merkle哈希树中的位置,设置AAI为可访问性属性对应的密文 在Merkle哈希树中的辅助认证信息,数据所有者为所述将要上传的数据M计算一个标签值σ,最后上传{fname,ind,CT,σ,AAI,sigssk(R)}至云服务器;
步骤S400.云用户访问云服务器中的数据:
不同云用户请求访问云服务器中的数据并获得所述密文CT,若所述密文CT对应的属性满足云用户的所述私钥SK的访问结构,则云用户解密该密文CT进行访问;
步骤S500.数据所有者对存储在云服务器中的数据进行确定性删除:步骤S501.数据所有者向可信权威中心发送删除请求DR,可信权威中心返回删除密钥rk给数据所有者。
步骤S502.数据所有者将删除密钥rk发送给云服务器,云服务器返回可访问性属性对应的密文 对应的信息给数据所有者,数据所有者验证 和Ωind是否为有效信息;其中,Ωind表示ind的辅助认证信息;
步骤S503.云服务器通过重加密部分所需删除的数据密文CT改变包含在所需删除的数据密文CT中的属性值以实现数据删除,然后重新计算新的Merkle哈希树的根节点 将 作为删除证明返回给数据所有者;
步骤S504.数据所有者通过重构新的Merkle哈希树验证云服务器是否已将所需删除的数据确定性地删除。
2.根据权利要求1所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:所述步骤S100的具体步骤为:
步骤S101:选择一个安全参数k,可信权威中心选择两个以素数p为阶的乘法循环群G1和G2,选择g作为群G1的一个生成元,e:G1×G1→G2表示双线性映射;
其中,属性全集为Ω={att1,att2,…attn},Ai={υi,1,υi,2,…υi,ni}为属性Ai的所有可能的值,属性Ai包含ni个可能的值;
云用户的访问结构为W={ω1,ω2,…ωk},密文对应的属性集合为γ=[γ1,γ2,…γt],H为抗碰撞的Hash函数,H∶{0,1}*→Zp,Zp为模p的循环群;
步骤S102:可信权威中心选择一个随机数h∈G1和系统私钥y∈Zp,计算公共参数Y=e(g,h)y,然后可信权威中心选择一个随机数ti,j∈Zp(i∈[1,n],j∈[1,ni]),计算公共参数生成系统公钥 和主密钥步骤S103:可信权威中心公开系统参数
3.根据权利要求2所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:所述步骤S200的具体步骤为,云用户向可信权威中心提出私钥申请,可信权威中心选择一个随机数r∈Zp,根据所述系统参数、用户的访问结构W和随机数r计算gr和r返回中间私钥SKW=(g ,Dw,W)给所述云用户;所述云用户生成一对签名密钥{spk,ssk},并选择随机数α←Zp计算属性v=gα,云用户的私钥为SK=(SKW,ssk,α)。
4.根据权利要求3所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:所述步骤S301的具体步骤为:数据所有者为将要上传的数据M选择一组属性集γ和随机数s∈ZP,计算C1=M·Ys,C2=gs, 则将要上传的数据M的密文CT=(C1,C2,C3);同时数据所有者构建Merkle哈希树,其叶子节点为哈希值H(Xi,j)的有序集合,其中Xi,j∈C3,使用签名密钥ssk对Merkle哈希树的根节点R签名得到sigssk(R)。
5.根据权利要求4所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:所述步骤S302的具体步骤为:数据所有者为将要上传的数据M选择一个标识符fname,并为将要上传的数据M计算一个标签值 上传{fname,ind,CT,σ,AAI,sigssk(R)}至云服务器;
其中,表示C3中可访问性属性对应的密文,ind表示Merkle哈希树中可访问性属性对应的叶子结点的索引,AAI表示 在Merkle哈希树中对应于可访问性属性的叶子结点的辅助认证信息。
6.根据权利要求5所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:步骤S400的具体步骤为:
不同云用户请求访问云服务器中的数据并获得所述密文CT和系统公钥PK,其中,云用户属性集合 AS=W;使用私钥SK进行计算,若则云用户解密该密文CT进行访问。
7.根据权利要求6所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:步骤S501的具体步骤为:数据所有者向可信权威中心发送删除请求DR=(fname,atti,vi,j,vi′,j);其中,atti表示可访问性属性,vi,j表示可访问的,vi′,j表示不可访问的,DR=(fname,atti,vi,j,vi′,j)表示将密文中的可访问性属性由可访问的改为不可访问的,可信权威中心选择一个随机数ti′,j,并计算 然后将删除密钥rk=(fname,atti,cki)返回给数据所有者。
8.根据权利要求7所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:步骤S502的具体步骤为:
步骤S502-1:数据所有者将删除密钥rk=(fname,atti,cki)发送给云服务器,云服务器返回与可访问性属性atti对应的元组 Ωind表示节点ind的辅助认证信息;
步骤S502-2:数据所有者验证 是否成立,若成立,
则 是密文可访问性属性对应的密文;
步骤S502-3:数据所有者根据 和Ωind生成Merkle哈希树新的根节点 验证等式sigssk(R)=sigssk(R′)是否成立,若成立,则Ωind是 的有效辅助认证信息AAI。
9.根据权利要求8所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:步骤S503的具体步骤为:
步骤S503-1:云服务器根据删除请求DR=(fname,atti,vi,j,vi′,j)找出所需删除的数据密文CT,可访问性属性atti∈rk,云服务器计算 用 取代所需删除的数据密文CT中的步骤S503-2云服务器输出一个新的密文CT′=(C1,C2,C3′,γ′)。γ′设置为重加密后密文对应的属性集合;
步骤S503-3云服务器计算 生成Merkle哈希树的一个新的根节点 将 作为删除证明返回给数据所有者。
10.根据权利要求9所述的一种支持细粒度访问的云数据确定性删除方法,其特征在于:步骤S504的具体步骤为:数据所有者使用所述删除密钥rk重加密 得到 数据所有者接收到新的根节点 时,根据 和从云服务器收到的Ωind生成Merkle哈希树的新的根节点将新的根节点 所述云服务器发来的根节点 进行比较,若 则云服务器确认已将数据删除。