一种具有问责性的动态完整性验证方法技术

技术编号:30823094 阅读:19 留言:0更新日期:2021-11-18 12:11
本发明专利技术公开了一种具有问责性的动态完整性验证方法。该方案在审计中引入了一个随机数,排除了TPA提取原始数据的可能性,通过BLS签名对用户的每一次读写操作进行签名,服务器就可以证明用户是否进行了拒绝攻击。该方案通过计算数据的度量,使其可以以O(λ

【技术实现步骤摘要】
一种具有问责性的动态完整性验证方法


[0001]本专利技术属于信息安全领域,涉及一种具有问责性的完整性验证方法。

技术介绍

[0002]根据是否可以恢复损坏的数据,现有的完整性验证方案可以分为可证明数据拥有(PDP)模型和可检索性证明(POR)模型。但是,这些方案很少考虑在数据损坏时如何让服务器承担责任。此外,许多方案引入了第三方审计者(TPA)来执行审计任务,以减轻用户的负担。然而,在实际场景中不应该完全信任TPA。恶意TPA可以从重复的审计任务中提取原始数据。更重要的是,几乎所有的方案都默认用户是可信的,但他们可能会否认他们的行为并使服务器承担数据丢失的惩罚。尤其是在动态运行环境,具有读写权限的恶意用户可以发起拒绝攻击。例如,云服务提供商的恶意竞争对手冒充用户,否认自己删除了部分数据,并将责任转移给了云服务提供商。
[0003]Yumerefendi等人(Yumerefendi AR,Chase J S.Strong accountability for network storage[J].ACM Transactions on Storage(TOS),2007,3(3):11

es.)首次提出参与者应对存储网络负责,但该方案依赖于经过身份验证的数据结构,由于通信和计算成本昂贵,因此效率不高。Ateniese等人(Ateniese G,Goodrich M T,Lekakis V,et al.Accountable Storage[C]//International Conference on Applied Cryptography and Network Security.Springer,Cham,2017.)提出了一个负责任的存储方案。然而,他们的方案只让云服务器负责,并没有考虑在动态环境中让其他方负责。此外,该方案会在审核成功后暴露其本地存储信息,这可能无法追究服务器的责任。

技术实现思路

[0004]为了解决上述问题,我们提出了一种具有问责性的动态完整性验证方案。我们定义,如果一个方案为每个参与者提供检测或消除不当行为的方法,则它是有问责性的。通过审计算法,审计人员可以检查远程数据是否完好。然后我们在审计中引入了一个随机数,排除了TPA提取原始数据的可能性。最后,通过BLS签名对用户的每一次读写操作进行签名,服务器就可以证明用户是否进行了拒绝攻击。此外,通过计算数据的度量存储在本地;当数据遭到损坏时,利用度量恢复出损坏的数据,然后计算损坏数据与原始数据之间的马氏距离,得到损坏数据的损坏程度。用户可以根据损坏程度向云服务提供商索赔。
[0005]本专利技术技术方案如下:
[0006]本专利技术提供了一种具有问责性的动态完整性验证方法,其包括如下步骤:
[0007]1)客户端C将数据M切片为n个块,通过KeyGen算法生成密钥(pk=(g,g
x
,u),sk=x),其中g是乘法群生成元,u是乘法群随机数,x是随机整数;然后通过StateGen算法,输出序列ID、数据签名SIG、块的同态验证标签(HVL)序列Φ={σ
i
}
1≤i≤n
和一个度量B;客户端C将pk、SIG、M、Φ发送到云服务提供商S进行存储并删除M和Φ在本地的存储;
[0008]所述StateGen算法以(pk,sk)和数据M={m1,m2,...,m
n
}作为输入,对于数据M,为
每个块生成一个id
i
=H
id
(m
i
),其中1≤i≤n,并形成序列ID={id1,id2,...,id
n
},计算每个块的HVL,并运行updateB算法生成度量B,然后计算R=id1·
id2·
,...,
·
id
n
及其签名SIG=R
x
,输出(ID,SIG,Φ={σ
i
}
1≤i≤n
,B);
[0009]2)第三方审计TPA根据安全参数κ生成随机数k1和k2,并设置抽样数量c以确保一定的置信概率,生成挑战chal=(c,k1,k2)并将其发送到云服务提供商S;云服务提供商根据Response算法得到完整性证明P并返回给TPA,其中Response算法为:选择一个秘密随机数r

Z
p
,根据chal=(c,k1,k2),对于1≤j≤c,利用伪随机置换函数和伪随机函数计算出随机审查位置和随机数对于随机审查位置i1,i2,...,i
c
,计算聚合HVL,和隐私保护参数μ=u
μ

·
g
r
∈G,其中数据块的线性组合Response算法输出完整性证明P=(σ,μ);
[0010]第三方审计运行CheckProof算法检查完整性证明的有效性,其中,CheckProof算法根据挑战chal=(c,k1,k2),对于1≤j≤c,计算和对于I={i1,i2,...,i
c
},验证方程如下,
[0011][0012]如果验证通过,则输出1;否则,输出0;
[0013]如果输出为0,客户端将取回所有的数据,运行updateB算法对保持完整的数据块生成度量B2,并于本地存储的度量B结合运行extractB算法提取原始数据,计算原数据和损失数据的马氏距离作为损失度量;
[0014]3)客户端C通过UPrequest算法生成更新请求并将其发送到云服务提供商S,根据更新请求,云服务提供商S进行更新操作,并运行UPresponse算法以获取响应消息RM,最后客户端C运行UPover算法获得新的度量B
new
,并存储新的度量B
new

[0015]优选的,度量B是一个表格,每个单元格都包含三个字段,Count、ID和DataSum,Count表示映射到单元格的块数;ID代表所有区块的id的乘积;DataSum表示所有块的异或;
[0016]所述updateB算法,具体为:
[0017]将度量单元格的数量初始化为b=(k+1)λ,每个单元格的三个字段初始为零,对于1≤i≤n,首先生成id
i
=H
id
(m
i
),然后使用散列集分别将块m
i
映射到度量的k个不同单元格,通过设置z=1或z=

1来确定是插入数据还是删除数据,计算k个不同单元格的字段:Count=Count+z,ID=ID
·
id
z
,当所有的数据块计算进度量B后,存储在本地。
[0018]优选的,所述extractB算法具体为:
[0019]对于两个度量B和B2,拥有相同的b个单元格数量,对于每个单元格执行:B.Count=B.Count

B2.Cou本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种具有问责性的动态完整性验证方法,其特征在于,包括如下步骤:1)客户端C将数据M切片为n个块,通过KeyGen算法生成密钥(pk=(g,g
x
,u),sk=x),其中g是乘法群生成元,u是乘法群随机数,x是随机整数;然后通过StateGen算法,输出序列ID、数据签名SIG、块的同态验证标签(HVL)序列Φ={σ
i
}
1≤i≤n
和一个度量B;客户端C将pk、SIG、M、Φ发送到云服务提供商S进行存储并删除M和Φ在本地的存储;所述StateGen算法以(pk,sk)和数据M={m1,m2,...,m
n
}作为输入,对于数据M,为每个块生成一个id
i
=H
id
(m
i
),其中1≤i≤n,并形成序列ID={id1,id2,...,id
n
},计算每个块的HVL,并运行updateB算法生成度量B,然后计算R=id1·
id2·
,...,
·
id
n
及其签名SIG=R
x
,输出(ID,SIG,Φ={σ
i
}
1≤i≤n
,B);2)第三方审计TPA根据安全参数κ生成随机数k1和k2,并设置抽样数量c以确保一定的置信概率,生成挑战chal=(c,k1,k2)并将其发送到云服务提供商S;云服务提供商根据Response算法得到完整性证明P并返回给TPA,其中Response算法为:选择一个秘密随机数r

Z
p
,根据chal=(c,k1,k2),对于1≤j≤c,利用伪随机置换函数和伪随机函数计算出随机审查位置和随机数对于随机审查位置i1,i2,...,i
c
,计算聚合HVL,和隐私保护参数μ=u
μ

·
g
r
∈G,其中数据块的线性组合Response算法输出完整性证明P=(σ,μ);第三方审计运行CheckProof算法检查完整性证明的有效性,其中,CheckProof算法根据挑战chal=(c,k1,k2),对于1≤j≤c,计算和对于I={i1,i2,...,i
c
},验证方程如下,如果验证通过,则输出1;否则,输出0;如果输出为0,客户端将取回所有的数据,运行updateB算法对保持完整的数据块生成度量B2,并于本地存储的度量B结合运行extractB算法提取原始数据,计算原数据和损失数据的马氏距离作为损失度量;3)客户端C通过UPrequest算法生成更新请求并将其发送到云服务提供商S,根据更新请求,云服务提供商S进行更新操作,并运行UPresponse算法以获取响应消息RM,最后客户端C运行UPover算法获得新的度量B
new
,并存储新的度量B
new
。2.根据权利要求1所述的具有问责性的动态完整性验证方法,其特征在于,度量B是一个表格,每个单元格都包含三个字段,Count、ID和DataSum,Count表示映射到单元格的块数;ID代表所有区块的id的乘积;DataSum表示所有块的异或;所述updateB算法,具体为:将度量单元格的数量初始化为b=(k+1)λ,每个单元格的三个字段初始为零,对于1≤i≤n,首先生成id
i
=H
id
(m
i
),然后使用散列集分别将块m
i
映射到度量的k个不同单元格,通过设置z=1或z=

1来确定是插入数据还是删除数据,计算k个不同单元格的字段:Co...

【专利技术属性】
技术研发人员:周泽全罗喜伶柏艺王晓超
申请(专利权)人:北京航空航天大学杭州创新研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1