1.一种基于哈希二叉树的边缘计算数据审计系统,其特征在于:所述系统包括DO、MS、CSP和TPA;所述DO把要发送到CSP上的数据划分为若干个数据块,并为这些数据块生成签名,然后把这些数据块和签名发送到MS中;所述MS收到数据后,验证数据来源,验证合法后,保存所有数据块的标签和DO常用的数据块,然后再把数据块发送给云服务器;当审计周期来临时,TPA生成一组挑战信息并发送给MS,MS收到挑战信息后,根据自己缓存的数据块和数据标签生成一部分证据,再把另一部分的挑战信息发送给CSP,CSP生成证据后发送给MS,MS把混合后的证据发送给TPA完成审计。
2.一种基于哈希二叉树的边缘计算数据审计方法,其特征在于:所述方法包括以下步骤:
S1.初始化参数:DO生成密钥对,私钥为SK={α,ssk},公钥为PK={y,g,μ,spk},其中(ssk,spk)是DO随机选择的一个非对称加密密钥对;
α
其中,α∈Zp是DO随机挑选的值,g和μ是群G1上的随机元素,y=g 是G1上的元素;G1和G2为有素数阶p的两个乘法循环群,e:G1×G1→G2为双线性对映射;
S2.生成数据块的审计签名:DO的外包数据F被划分为n个数据块M={m1,m2,...,mn},DO按照公式 为mi生成同态可验证签名,则同态签名集合为Φ={σi},1≤i≤n,数据块哈希值集合为θ={H(mi)},1≤i≤n;
H:{0,1}*→G1为安全的把二进制数映射到群G1上的哈希函数;
计算t=name||n||SSigssk(name||n)为外包数据F的标签,其中name为外包数据F的唯一标识符,DO发送{M,Φ,t}给MS,同时发送θ给TPA,CSP和TPA收到相关数据后,DO本地删除{M,Φ,θ};
S3.验证外包文件标签,确认DO身份:当MS收到数据{M,Φ,t}时,使用DO的公钥spk验证外包数据标签;如果验证失败,MS要求DO重新发送数据,反之,MS存储签名集合Φ,并把外包数据与其表示{F,name}发送给CSP;
S4.生成审计用的挑战信息:当到达审计时间时,TPA检查HBBT是否本地构建成功,如果没有成功,则使用θ生成HBBT;TPA在外包数据顺序号集合中随机选择c个挑战数据块,生成集合I={s1,s2,...,sc}1≤c≤n,然后TPA再为每个挑战数据块随机挑选c个随机数vi,{vi∈Zp}i∈I,组成挑战数据集合 发送给MS;
S5.MS生成审计证据:MS收到来自TPA的挑战信息后,先把挑战数据集划分为两个子集chal={C1,C2},C1挑战信息中的挑战数据块顺序号所表示的外包数据块缓存在MS中,C2是包含剩余的挑战信息,表示CSP要审计的外包数据块;挑战数据划分完成后,MS再给CSP发送挑战子集C2,然后根据chal生成签名证据Θ,根据子集C1生成数据块证据S6.CSP收到MS发送的挑战子集C2后生成数据证据 计算公式如下:
CSP给MS发送数据证据
S7.MS收到CSP的数据证据 后,聚合数据证据 和
MS给TPA发送证据{Θ,U};
S8.TPA收到MS发送的证据{Θ,U}后,先从HBBT树中找到挑战数据块顺序号对应的哈希值{H(mi)}(i∈chal),计算 再利用双线性对性质审计按如下等式审计挑战数据块:如果等式左右两端相等,TPA输出TRUE,反之TPA输出FALSE。
3.根据权利要求2所述的基于哈希二叉树的边缘计算数据审计方法,其特征在于:所述步骤S4中,所述TPA根据DO外包数据块的最新哈希值生成哈希平衡二叉树(HBBT),并存储在本地;所述HBBT的节点包含两个部分,分别是数据块序号i和数据块哈希值H(mi);所述TPA收到DO发送的{i,H(mi)}后,按照AVL树的要求,以i的大小作为HBBT数据块的排序标准,生成HBBT。
4.根据权利要求3所述的基于哈希二叉树的边缘计算数据审计方法,其特征在于:所述HBBT树的数据块序号为(1,2,3,...,k,i,j,...n),其中k,i,j是按顺序排列,分为以下几种情况插入:(1)当需要i和j之间插入一个数据块时,顺序号可变为(1,2,3,...k,i,i-1,j,...n),其中i
1,i-2,i-3-1,i-3,j,...n),其中i-2
5.根据权利要求2所述的基于哈希二叉树的边缘计算数据审计方法,其特征在于:所述步骤S4中,所述TPA收到DO发送的θ后,构建HBBT,当DO需要把第i号数据块mi修改为m′i时,修改过程为:DO生成字符串γ=Mo||i||N,其中Mo表示修改操作,N∈Zp是一个随机数;DO根据γ计算H(mi'||h(γ)),生成待修改数据块m′i的签名 然后DO发送{Mo,i,H(mi'||h(γ))}给TPA,发送{γ,mi′,σi′}给MS;TPA收到来自DO的数据后,根据i检索本地HBBT,找到对应的结点,并使用H(mi'||h(γ))替换结点的H(mi);MS收到来自DO的数据后,使用σi′更新数据块mi的签名,并发送{γ,mi′,σi′}给CSP,CSP验证更新数据块:如果等式相等,CSP令mi′=mi′||h(γ),使用mi′替换mi,反之拒绝修改操作。
6.根据权利要求2所述的基于哈希二叉树的边缘计算数据审计方法,其特征在于:所述步骤S4中,所述TPA收到DO发送的θ后,构建HBBT,当DO需要把数据块mx插入到数据块mi和mi+1之间时,修改过程为:DO生成字符串γ=I||i||y||N,其中I表示修改操作,y表示数据块的插入标号,N∈Zp是一个随机数;DO根据γ计算H(mx||h(γ)),生成待插入数据块mx的签名然后DO发送{I,i,y,H(mx||h(γ))}给TPA,发送{γ,mx,σx}给
MS;TPA收到来自DO的数据后,生成一个新的节点nox,使用{y,H(mx||h(γ))}初始化该结点;
TPA根据i检索本地HBBT,找到相应的结点noi,把nox插入noi之后,按照AVL树的要求调整HBBT;MS收到来自DO的数据后,本地存储σx,并发送{γ,mx,σx}给CSP,CSP验证更新数据块:如果等式相等,CSP令mx=mx|h(γ),把mx插入mi之后,反之拒绝插入操作。
7.根据权利要求2所述的基于哈希二叉树的边缘计算数据审计方法,其特征在于:所述步骤S4中,所述TPA收到DO发送的θ后,构建HBBT,当DO需要删除第i号数据块mi时,修改过程为:DO生成字符串γ=D||i||N,其中D表示修改操作,N∈Zp是一个随机数;DO根据γ计算H(γ),生成插入操作签名σD=(H(γ))α,然后DO发送{D,i,H(γ)}给TPA,发送{γ,i,σD}给MS;TPA收到{D,i,H(γ)}后,根据i检索本地HBBT,找到对应的结点并删除该结点,TPA按照AVL树的要求调整HBBT;MS收到来自DO的数据后,删除对应结点的签名σi,并把数据{D,i,H(γ)}再发送给CSP,CSP验证更新数据块:如果等式相等,CSP删除数据块mi之后,反之拒绝删除操作。