1.一种基于数据源和数据主隐藏的匿名数据共享方法,其特征在于:涉及以下主体:隐藏数据源模块,隐藏数据主模块和保证前向安全性的重加密模块,所述隐藏数据主模块包括验证模块和追溯模块;具体步骤如下:(1)在向共享数据群组中成员共享数据之前,用户通过隐藏数据源模块与隐藏数据主模块建立Tor电路;
(2)用户通过步骤(1)构建的电路向隐藏数据主模块发起注册申请,隐藏数据主模块反馈用户的私钥(xi,Ai)给用户,并记录下私钥与用户身份的对应关系;用户在进行数据文件发起相应操作请求时,在操作请求中增加根据签名生成算法用私钥完成的签名σ;
(3)验证模块对数据文件操作请求(IDgm,IDf,σ)进行验证,若验证通过,则允许执行,若验证不通过,则拒绝请求;其中,如果数据文件发起的操作是下载请求,则在验证通过后,生成授权信息;其中,IDgm为隐藏数据主模块的ID,IDf为数据文件的ID;
(4)在用户发起上传文件操作请求时,且验证模块验证通过后,保证前向安全性的加密模块对上传数据文件进行再次加密,生成密钥信息,并将加密文件和密钥信息上传至云端,当共享数据群组的成员发生变动时,即有新用户加入或者旧用户被撤销权力时,进行密钥更新,生成新的加密密钥,并且更新云端文件的加密;
(5)追溯模块通过签名计算出用户私钥,用私钥对应出用户身份信息,撤销相应用户,并将其维护在撤销列表中;
所述步骤(2)的具体步骤为:
(2.1)用户通过Tor电路将自己的IDi发送给群管理员用于注册;
(2.2)生成一个双线性映射群系统 G1是阶数为q的加法循环群,G2是阶数为q的乘法循环群,G1×G1→G2代表一个双线性映射;随机从加法循环群G1中选择一个元素H∈G1和从素数域中选取两个整数ξ1, 然后,群管理员计算出两个辅助验证元素 随机选择一个生成元g∈G1和整数 并计算P=γ·g,W=γ·P;此外,群管理员选择一个散列函数h;公布参数(g,P,H,U,V,W,h),其中这些参数分别代表生成元、五个辅助计算与验证的元素和一个散列函数,且用于生成签名和签名验证,以及通过签名追溯用户身份,(γ,ξ1,ξ2)作为群管理员的主密钥进行秘密保存;
(2.3)群管理员随机选择一个数 并计算 则用户的私钥是(xi,Ai),群管理员将用户私钥与身份的对应关系(xi,Ai,IDi)保存在本地;
(2.4)如果用户发起上传数据文件操作请求,用户先对数据文件进行AES‑256对称加密,生成密文C,再使用私钥(xi,Ai)通过签名生成算法对消息进行签名生成σ,最终生成的请求为(IDgm,IDf,C,σ),IDgm为隐藏数据主模块的ID,IDf为数据文件的ID;
(2.5)在签名生成阶段,算法输入用户的私钥(Ai,xi)、公开的系统参数(P,U,V,H,W,h)和信息M,选择随机整数 计算δ1=xiα和δ1=xiα,并计算中间辅助元素T1=α·U、T2=β·V、T3=Ai+(α+β)·H、R1=tα·U、R2=tβ·V、和 以生成
哈希值c=h(M,T1,T2,T3,R1,R2,R3,R4,R5),最终生成用户对明文的签名其中Sα=tα+cα、Sβ=tβ+cβ、Sx=tx+cx、(2.6)如果用户发起的是下载请求,最终生成的请求为(IDgm,IDf,σ)。
2.根据权利要求1所述的基于数据源和数据主隐藏的匿名数据共享方法,其特征在于:所述步骤(1)的具体步骤为:
(1.1)隐藏数据源模块从权威目录服务器上下载节点信息;
(1.2)隐藏数据源模块根据路由选择算法选择三个节点;
(1.3)隐藏数据源模块通过DH握手协议在三个节点之间构建Tor电路与隐藏数据主模块建立连接;
(1.4)用户通过隐藏数据源模块与隐藏数据主模块进行通信。
3.根据权利要求1所述的基于数据源和数据主隐藏的匿名数据共享方法,其特征在于:所述步骤(3)的具体步骤为:
(3.1)在验证模块中,群管理员先通过签名验证算法对签名进行验证,如果验证不通过,拒绝这次请求,如果通过,再根据撤销列表验证用户是否被撤销,如果用户为撤销用户,那么拒绝这次请求,如果为有效用户,那么允许这次请求;
(3.2)在签名验证阶段,输入信息M和其对应的签名σ以及公开的系统参数(P,U,V,H,W,h),通过计算中间辅助元素
以生成哈希值 并通过与原有哈希值c=h(M,T1,T2,T3,R1,R2,R3,R4,R5)的对比判断验证是否通过,若相等则验证通过,否则验证不通过;
(3.3)如果是下载请求,那么群管理员会生成授权信息 其中xi源于用户的d
私钥(xi,Ai),用户通过使用自己的私钥中的部分信息xi,授权信息Ad和密钥信息m=(g ,d·Z)获取解密密钥d: 其中
4.根据权利要求1所述的基于数据源和数据主隐藏的匿名数据共享方法,其特征在于:所述步骤(4)的具体步骤为:
(4.1)在重加密模块中,群管理员对数据文件进行基于RSA的重加密,群管理员生成的公钥为(e,n),私钥为(d,n),群管理员使用公钥(e,n)对密文C进行重加密,重加密后得到的e
新密文为C′:C′=C;
d
(4.2)计算生成密钥信息m=(g,d·Z), 将(C′,m)上传给云;
(4.3)如果数据共享群组中成员发生变动,那么群管理者执行密钥更新,新的公私钥对* * *
为(e ,n),(d ,n) ,撤回之前的加密文件C ′,更新文件加密得到C ′:更新密钥信息
* *
(4.4)将C′和m上传到云端,并代替之前的C′和m。
5.根据权利要求1所述的基于数据源和数据主隐藏的匿名数据共享方法,其特征在于:所述步骤(5)的具体步骤为:
(5.1)追溯模块在追溯模块中,群管理员通过用户签名σ和(ξ1,ξ2)计算出Ai=T3‑(ξ1·T1+ξ2·T2),其中T1,T2,T3为生成签名所产生的参数,是用于通过签名计算出可以关联用户身份的参数;
(5.2)数据共享群组管理员通过本地维护的用户的私钥和身份的对应关系(xi,Ai,IDi),找出用户;
(5.3)如果用户为恶意用户,那么撤销用户权力,并将其维护在撤销列表中,撤销列表由一系列的(Ar,xr,tr)组成,代表在tr时刻,撤销了私钥为(Ar,xT)的用户r。
6.一种实现权利要求1至5任意一项所述的基于数据源和数据主隐藏的匿名数据共享方法的系统,其特征在于:包括隐藏数据源模块,隐藏数据主模块和保证前向安全性的重加密模块,隐藏数据主模块包括为验证模块和追溯模块;
所述隐藏数据源模块隐藏用户与隐藏数据主模块进行交互时的用户IP地址;所述验证模块验证用户是否有权力对共享数据文件进行操作的权力实现有效的访问控制;注册时通过所述追溯模块给用户分发私钥让用户通过签名实现匿名认证,并且在本地保存用户身份与私钥的对应关系,用于找出恶意用户,撤销其共享数据的权力,并将其维护在撤销列表中;所述保证前向安全性的重加密模块用于对上传文件进行重加密并生成密钥信息,只有通过验证模块的用户凭借生成的授权信息才能获取解密重加密的密钥,保证方案的前向安全性,并在群组动态阶段进行密钥更新以及更新云端文件的加密,减少本地开销。
7.根据权利要求6所述的实现基于数据源和数据主隐藏的匿名数据共享方法的系统,其特征在于:所述隐藏数据源模块从文件目录服务器上下载节点信息,根据路由选择算法,选择三个节点,通过DH握手协议构建Tor电路与隐藏数据主模块进行通信;
所述验证模块,用户对共享文件发起操作请求时,验证其是否有权力进行相应操作,若验证通过,则允许执行,若验证不通过,则拒绝执行;
当用户通过隐藏数据源模块在数据主模块进行注册,反馈私钥给用户时,会记录私钥与用户信息的对应关系,所述追溯模块通过签名计算出用户私钥,从私钥对应出用户信息,撤销相应用户;
通过保证前向安全性的加密模块对用户要进行共享的数据文件进行再次加密,生成密钥信息,将加密文件和密钥信息一起上传到云,成员发生变动后进行密钥更新,以及对云端文件更新加密。