1.一种基于身份代理重加密的云存储数据去重方法,其特征在于,包括如下步骤:S1:设置系统参数并初始化系统,所述系统参数包括:加法群G1,素数阶p,具有相同阶p的循环乘法群G2,双线性映射:五个安全的Hash函数H1:{0,1}*→G1、/>H3:G2×{0,1}*→G1、H4:G2×G1×{0,1}*→G1、/>参数/>P为群G1的生成元;PKG随机选择的主密钥/>计算Ppub=sP;PKG公开系统参数保密主密钥s,所述/>表示不包括0的整数群;
S2:对于用户ID1、ID2,PKG分别计算用户私钥并以一个安全的方式发送给用户,其中,/> S3:生成数据标签,用户ID1生成数据M的标签,发送/>至CSP,并保存h1=H2(M),用来解密收敛密文;
S4:重复性检查:CSP接收到x1,在数据库中查找该标签是否已存在;若未查找到,则通知用户上传数据,数据所有者ID1首先使用h1=H2(M)作为密钥对数据M进行对称加密得到密文c1=ENC(h1,M),然后基于身份的代理重加密算法用对密文c1加密得到一级密文发送至CSP,CSP保存/>至数据库,并将用户ID1添加至标签x1的用户列表,并设置为数据的最高权限者;若被查找到,且是同一个用户上传,则通知用户这一情况;若被查找到,且是不同用户上传,则进行下面的步骤;
S5:重复数据上传和检查:若用户ID2试图以S3和S4的方式上传相同的数据M,即发送至CSP,由于CSP中已存在x2,便对用户ID2进行所有权挑战;
S6:所有权挑战及数据去重:CSP随机选取作为挑战信息发送给用户ID2,用户ID2计算/>发送给CSP,CSP计算/>并与x2比较,若相等,挑战通过,将用户ID2加入x2,即x1标签的用户列表中,重复数据去重成功;
S7:用户下载:当用户ID2下载数据时,发送下载请求至CSP,CSP检查用户ID2是否存在用户列表内,若存在,则请求PKG基于身份的代理重加密算法生成代理重加密密钥并以一种安全的方式发送给CSP,CSP使用/>对密文/>加密得到二级密文R为代理重加密的重加密算法;发送给用户ID2,ID2使用自己的私钥/>解密/>得到/>D为代理重加密的解密算法,继而使用本地保存的h2解密得到数据M;当用户ID1下载数据,CSP检查其在用户列表且为最高权限者后,直接将/>发送给用户ID1,用户ID1验证/>的完整性后,使用它的私钥/>解密/>得到/>继而使用h1解密得到数据M;
S8:删除CSP中的数据:若用户IDi向CSP发送删除请求:IDi,xi,想要删除存储在CSP中的数据,CSP检查请求的有效性后,在此数据用户列表中删除用户IDi的信息,并阻止IDi以后对数据的访问;CSP进一步检查数据的用户记录是否为空,若为空,删除此数据以及相关信息。
2.根据权利要求1所述的基于身份代理重加密的云存储数据去重方法,其特征在于,所述S4与S7中基于身份的代理重加密算法包括如下步骤:S2.1:加密ENCPr:用户ID1随机选取一个随机数并使用自己的公钥/>计算代理重加密算法的第一层密文/> S2.2:代理重加密密钥生成RG:由于PKG为用户生成公私钥,因此在实际应用中PKG可代替用户ID1,为其生成代理重加密密钥 S2.3:执行重加密R:CSP使用计算代理重加密算法的二重密文/> S2.4:执行解密D:给出第一层密文用户ID1首先计算C'3=H4(C1,C2,ID1),并检查等式/>是否成立;若上式成立,用户计算/>恢复出数据,若不成立,则云服务器中存储的密文出现错误;给出第二层密文/>用户ID2计算/>
3.根据权利要求1所述的基于身份代理重加密的云存储数据去重方法,其特征在于,所述S6中所有权挑战及数据去重是基于身份的认证方法,其包括以下步骤:S3.1:用户ID1选择计算k=H5(gx),发送给用户ID2;
S3.2:用户ID2随机选择发送给用户ID1;
S3.3:用户ID1计算发送给用户ID2;
S3.4:用户ID2根据S计算出
S3.5:如果k'=k,用户ID1的数据所有权证明通过,否则,返回错误符号⊥。