CN113312574A - 一种基于区块链的云数据完整性审计方法 - Google Patents

一种基于区块链的云数据完整性审计方法 Download PDF

Info

Publication number
CN113312574A
CN113312574A CN202110558829.3A CN202110558829A CN113312574A CN 113312574 A CN113312574 A CN 113312574A CN 202110558829 A CN202110558829 A CN 202110558829A CN 113312574 A CN113312574 A CN 113312574A
Authority
CN
China
Prior art keywords
data
block
csp
information
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110558829.3A
Other languages
English (en)
Inventor
高改梅
高茂林
秦泽峰
刘春霞
党伟超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiyuan University of Science and Technology
Original Assignee
Taiyuan University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taiyuan University of Science and Technology filed Critical Taiyuan University of Science and Technology
Priority to CN202110558829.3A priority Critical patent/CN113312574A/zh
Publication of CN113312574A publication Critical patent/CN113312574A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明一种基于区块链的云数据完整性审计方法,属于基于区块链的云数据完整性审计方法技术领域;所要解决的技术问题为:提供一种基于区块链的云数据完整性审计方法的改进;解决上述技术问题采用的技术方案为:CO将数据文件分块并生成数据标签和变色龙哈希值等审计数据;CO向DO提出审计请求;DO向CSP提出审计挑战;CSP执行证据生成算法生成相应证据并返回给DO;DO利用本地存储的数据信息通过双线性对,在不需要解密的前提下完成数据完整性验证;CO进行数据修改、插入和删除操作时,利用私钥求出变色龙陷门值,并发送操作请求给DO和CSP;CSP按照请求完成数据更新,DO按照请求完成数据标签的更新并将操作记录到区块链中;本发明应用于云数据完整性审计。

Description

一种基于区块链的云数据完整性审计方法
技术领域
本发明一种基于区块链的云数据完整性审计方法,属于基于区块链的云数据完整性审计方法技术领域。
背景技术
云存储是应用最为广泛的云计算服务之一,个人或者企业将数据外包存储到云端,节省本地存储开销,通过远程访问外包数据,提高使用数据的灵活性。然而,由于用户失去了对数据的直接控制,云存储中的任何故障都可能引起数据泄露、丢失等数据安全问题。例如,云服务提供商(CSP,Cloud Service Provider)为了自身利益,私自删除用户不常使用的冷数据;为节省成本,减少维护,导致外包数据被内部或外部攻击摧毁,但不通知数据存储用户。不完整的数据会破坏数据的价值,甚至误导基于数据内容的决策,因此数据完整性验证至关重要,也成为云存储安全策略的重要组成部分。
可证明数据占有机制(PDP,Provable Data Possession)和可恢复性证明机制(POR,Proofs of Retrievability)是两种典型的审计云存储数据完整性的静态模型。2007年,Ateniese等人基于RSA同态验证标签技术提出可证明数据占有机制PDP,该机制将文件划分成几个数据块,每一数据块对应各自的同态标签,然后随机抽取一定数量的数据块,通过验证同态标签,证明信息的有效性来判断数据的完整性。但是,该PDP只考虑静态数据存储,也没进行足够的安全性分析。Juels等人提出可恢复性证明机制POR,该POR通过密码技术对数据块进行伪装,通过验证隐藏哨兵数据块的有效性来判断外包数据的完整性。该机制假设用户的查询次数是固定的,只支持静态数据存储。
2015年,Erway等人提出一种动态PDP方案。该方案将数据文件划分为等长的数据块,并且为每一数据块生成一个数据标签,来进行数据完整性验证,支持云中完全动态的数据更新。在该方案中,数据块是数据更新(包括修改、插入和删除)的最小单位,通过使用带有等级信息的验证表来验证和维护数据标签的有效性。该方案即使实现了对动态数据的验证,但无法支持公开验证。以上介绍的静态模型和动态模型在计算、存储和数据通信等方面消耗了数据拥有者(用户)大量的资源。
在实际的云存储应用中,为了节省用户的计算、通信等开销,并保证验证结果的公平性,通常由用户委托第三方审计员(TPA,Third Party Auditor)代表自己执行公共审计来验证数据的完整性。但是,TPA的存在也带来了新的安全风险,好奇而诚实的TPA可能在审计过程中搜集外包数据的信息,因此,保证数据隐私不受TPA的影响也成为用户关注的安全问题。针对TPA的可信问题,Zhu等人研究了TPA在公开验证过程中避免窃取用户数据的策略,即外包数据在被验证之前进行加密处理,任何TPA都无法读取用户的原始数据,因此,增强了公共审计的安全性。2017年,Fu等人通过构造同态可验证群签名,提出一种面向共享云数据的感知公共审计机制。该方案存在不足,一旦TPA受到攻击,来自TPA的审计服务可能会中断,此外,用户还可以伪造一个安全问题来骗取CSP的补偿。
近年来,区块链技术已应用到数据存储、完整性验证、公共审计、数据溯源、边缘计算以及雾计算等方面。在数据完整性验证中,2018年,Yue等人提出基于区块链的P2P云存储数据完整性验证框架,通过合理的抽样策略使抽样验证更有效。该框架主要关注P2P云存储和抽样策略。2019年,Zhang等人提出一种针对拖延审计员的无证书公共审计方案,该方案包括一个固定的TPA和一个密钥生成中心(KGC,Key Generation Center),主要关注在审计过程中如何避免拖延TPA。2019年,Xue等人提出了基于身份的云存储公共审计方案,通过区块链技术对抗恶意审计员。该方案包括私钥生成器和TPA两类实体,只在区块链上存储默克尔哈希树的根。
综上所述,数据完整性验证是云存储必须考虑的安全问题之一,现有的静态模型、动态模型、公共审计模型以及基于区块链技术的审计模型随着云存储系统的日新月异,需要更进一步的研究。本发明提出一种基于区块链的云数据完整性审计方法,将原始数据分块进行加密处理后外包存储到云端,同时将文件块的数据标签存储在区块链上,通过MHT验证外包数据的完整性。
发明内容
本发明为了克服现有技术中存在的不足,所要解决的技术问题为:提供一种基于区块链的云数据完整性审计方法的改进。
为了解决上述技术问题,本发明采用的技术方案为:一种基于区块链的云数据完整性审计方法,包括如下步骤:
步骤一:数据分块存储:分布式网络中的所有普通用户CO执行DPos共识算法,推选出授权用户DO,同时确定区块的生成顺序和审计任务;普通用户CO将要保存到云服务提供商CSP中的数据文件进行处理后上传到云服务提供商CSP,同时生成数据文件相关审计数据信息发送给授权用户DO,同时删除本地数据,只保留元数据信息;
步骤二:数据标签生成及变色龙哈希生成;
步骤三:区块生成与签署:授权用户DO把元数据相关的审计信息按照约定打包成区块,将区块上链形成审计链;
授权用户DO生成区块之后,向云服务提供商CSP发起区块签署挑战请求,根据云服务提供商CSP返回的证据判断云服务提供商CSP是否如实保存了一段时间内普通用户CO上传的数据并完成签署工作;
步骤四:审计挑战:授权用户DO为验证其存储的区块所代表用户数据的完整性,根据智能合约,向云服务提供商CSP发起区块审计挑战,验证存储于云服务提供商CSP端数据的完整性;
步骤五:证据生成:云服务提供商CSP收到审计挑战请求后,执行证据生成算法,并将生成的证据信息发送给授权用户DO;
步骤六:证据验证:授权用户DO根据云服务提供商CSP发来的证据信息,执行证据验证算法,完成对数据完整性的验证并将审计结果记录在审计链中;
步骤七:动态操作:当普通用户CO需要修改、删除或者增加外包存储到云服务提供商CSP中的数据时,执行动态操作算法完成对远程数据的修改并将该操作记录在操作链中。
所述步骤一具体为:
步骤1.1:普通用户CO执行初始化算法产生私钥对和公钥对;
步骤1.2:参数初始化:初始化输入的安全参数λ,生成阶数为P的乘法循环群G和GT,且存在双线性映射关系为:e:G×G→GT,其中G的生成元为gCO和gDO,G中选取一个辅助变量u←G;
选择散列函数:H:{0,1}*→G,h(·):G→Zp,上式中Zp为阶数P的群;
定义伪随机置换函数:
Figure BDA0003078321570000031
定义伪随机函数:fkey{0,1}*×K→Zp,其中key∈ID,数据块编号
Figure BDA0003078321570000032
K为编号ID;
步骤1.3:密钥生成:普通用户CO选择随机数
Figure BDA0003078321570000033
Figure BDA0003078321570000034
Figure BDA0003078321570000035
为阶数为P的乘法循环群,计算
Figure BDA0003078321570000036
生成公钥对<PK,v>,私钥对
Figure BDA0003078321570000037
授权用户DO选择随机数x,
Figure BDA0003078321570000038
计算
Figure BDA0003078321570000039
生成公钥对<SPK,y>,私钥对<SSK,x>。
所述步骤二具体为:
步骤2.1:普通用户CO先将数据M进行加密,之后平均分成n块,M表示要存储到云端的数据文件,M=m1||m2||…||mn,mi表示均分成的第i个数据块,i∈[1,n];
步骤2.2:假设数据M的标识为
Figure BDA00030783215700000310
每一个数据块的标号为
Figure BDA00030783215700000311
执行下面的步骤生成标签,也即为每一数据块生成签名,用于检查数据的完整性;
步骤2.2.1:对每一个数据块mi,计算bi=H(mi),bi为数据块mi的哈希值,H(mi)为相应的哈希函数;
步骤2.2.2:对每一个数据块mi,生成对应的标签
Figure BDA0003078321570000041
标签集合为
Figure BDA0003078321570000042
u为G中选取的辅助变量,
Figure BDA0003078321570000043
为进行数据签名的私钥;
步骤2.2.3:对每一个数据块mi,找一个相应的随机数
Figure BDA0003078321570000044
计算mi的变色龙哈希
Figure BDA0003078321570000045
gc
Figure BDA0003078321570000046
的生成元,
Figure BDA0003078321570000047
r为变色龙陷门值ri进行加密后的结果。
所述步骤三具体为:
步骤3.1:普通用户CO生成以每个数据块的变色龙哈希值为叶子节点的MHT,并对MHT的叶子节点进行签名;
步骤3.2:普通用户CO将数据M的数据分块信息
Figure BDA0003078321570000048
组合成一个Nodei,并利用底层MHT算法构建本地数据UBM,普通用户CO对数据块mi进行签名
Figure BDA0003078321570000049
Figure BDA00030783215700000410
为普通用户CO进行数据加密的私钥,然后将本地数据UBM发送到云服务提供商CSP,与其对应的证据数据
Figure BDA00030783215700000411
发送给授权用户DO;
步骤3.3:普通用户CO删除本地数据UBM,保留对应的证据数据
Figure BDA00030783215700000412
步骤3.4:授权用户DO定期打包普通用户CO发送的证据数据
Figure BDA00030783215700000413
生成区块文件并上链,云服务提供商CSP在同样的周期内将普通用户CO发送的原始本地数据UBM打包,利用顶层MHT算法构建文件并存储。
所述步骤四具体为:
步骤4.1:授权用户DO收到普通用户CO对外包数据M的验证请求之后,向云服务提供商CSP提出挑战;
步骤4.2:云服务提供商CSP返回M的数据标签,授权用户DO通过公钥spk来验证数据标签是否正确;
步骤4.3:若等式
Figure BDA00030783215700000414
不成立,则数据已被修改,结束程序,通知用户结果;
步骤4.4:若等式
Figure BDA00030783215700000415
成立,执行如下步骤生成挑战信息:
步骤4.4.1:授权用户DO选择数据Mi所属的区块,该区块包含m个
Figure BDA00030783215700000416
文件,确定每个
Figure BDA00030783215700000417
文件要进行挑战的子集I={Nodei}1≤i≤c
步骤4.4.2:利用随机置换函数π(·)key计算NodeIDi=πk1(NodeIDi),利用随机函数fkey(·)计算
Figure BDA00030783215700000418
步骤4.4.3:组成一个
Figure BDA00030783215700000419
相对应的挑战块
Figure BDA00030783215700000420
m个
Figure BDA00030783215700000421
组成上述区块的挑战
Figure BDA0003078321570000051
所述步骤五当云服务提供商CSP收到授权用户DO发送的挑战请求
Figure BDA0003078321570000052
后,云服务提供商CSP执行如下步骤完成证据生成:
步骤5.1:根据blocki找到被挑战的区块,根据
Figure BDA0003078321570000053
找到被挑战的NodeIDi所对应的数据块文件,相关辅助信息为
Figure BDA0003078321570000054
c个辅助信息构成合集β={αi}1≤i≤c
步骤5.2:针对每一个
Figure BDA0003078321570000055
求标签
Figure BDA0003078321570000056
Figure BDA0003078321570000057
为数据Mi持有证据,vj为数据块mj对应的随机数;
步骤5.3:云服务提供商CSP对所需验证的数据块证据采用随机置换函数进行加密处理,选择随机元素r←Zp,利用随机函数r=fi(chal),其中i为云服务提供商CSP每次应对挑战随机生成的随机函数密钥,u←G,计算:
R=ur∈G,
Figure BDA0003078321570000058
R为辅助变量u加密处理值;
步骤5.4:每一个
Figure BDA0003078321570000059
所对应的挑战证据为
Figure BDA00030783215700000510
Figure BDA00030783215700000511
为数据Mi数据验证的辅助信息集;
步骤5.5:云服务提供商CSP将m个
Figure BDA00030783215700000512
对应的证据整合为一个证据
Figure BDA00030783215700000513
发送给授权用户DO。
所述步骤六授权用户DO收到云服务提供商CSP发来的证据信息
Figure BDA00030783215700000514
后,根据如下步骤进行数据验证:
步骤6.1:首先对其中的每一个
Figure BDA00030783215700000515
根据等式
Figure BDA00030783215700000516
判断数据签名的完整性,若等式成立,则表示数据标签没有被修改过;
步骤6.2:根据等式
Figure BDA00030783215700000517
判断存储在云服务提供商CSP中用户数据的完整性,若等式成立,则表示数据内容被完整的保存,通知相应的普通用户CO并将审计结构记录在审计链中;rh(R)为对证据信息进行加密的随机值,v为普通用户CO的公钥,vi为数据块mi对应的随机数,vi的下标i为随机选择验证的节点编号;
步骤6.3:若等式
Figure BDA00030783215700000518
不成立,利用辅助信息αi中Nodei查到挑战分块文件在授权用户DO中的LM以及DataHash,通过比较LM?=LMi和DataHash?=DataHashi来定位数据的具体错误位置;
其中LM为数据块在底层MHT中的位置,DataHash为相关辅助节点的Hash值。
所述步骤七中在云服务提供商CSP上数据更新的发送方为普通用户CO,接收方为云服务提供商CSP,普通用户CO将数据块m1修改为
Figure BDA0003078321570000061
m1由Block*中的
Figure BDA0003078321570000062
所表示,在底层MHT中的位置是LM,数据更新的步骤为:
步骤7.1.1:普通用户CO读取
Figure BDA0003078321570000063
中存储的信息r1、u、b1,找到更新数据块在Block*中的位置LM,r1为变色龙陷门值、u为变色龙哈希值中的辅助变量、b1为数据块m1的哈希值;
步骤7.1.2:普通用户CO通过变色龙哈希函数求出陷门值:
Figure BDA0003078321570000064
σ1为数据块m1的数据标签;
Figure BDA0003078321570000065
为修改后的数据
Figure BDA0003078321570000066
的哈希值;
Figure BDA0003078321570000067
Figure BDA0003078321570000068
的数据标签;
步骤7.1.3:普通用户CO计算数据块
Figure BDA0003078321570000069
的数据标签
Figure BDA00030783215700000610
和哈希值
Figure BDA00030783215700000611
步骤7.1.4:普通用户CO广播更新操作
Figure BDA00030783215700000612
给全部的授权用户DO,发送更新操作
Figure BDA00030783215700000613
给云服务提供商CSP;
步骤7.1.5:云服务提供商CSP接收到更新信息Update_CSP后,验证信息的签名
Figure BDA00030783215700000614
验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.1.5.1:根据BlockID,LM找到更新数据的位置Node1
步骤7.1.5.2:验证等式
Figure BDA00030783215700000615
CHash为变色龙哈希值;验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.1.5.3:更新MHT树中相应节点的数据信息;
步骤7.1.5.4:发送信息Update_finish={Time,BlockID,LM}给授权用户DO;Time为时间戳;
步骤7.1.6:授权用户DO针对更新后的数据文件M3随机选择包含更新数据块
Figure BDA00030783215700000616
的部分数据的哈希值,并通知云服务提供商CSP发送同样的数据,通过对比判断云服务提供商CSP是否作恶,在动态操作链中记录操作信息,并通知普通用户CO结果。
所述步骤七中在云服务提供商CSP上数据删除的发送方为为普通用户CO,接收方为云服务提供商CSP,设普通用户CO删除数据块m1,其中m1由Block*中的
Figure BDA0003078321570000071
所表示,m1在底层MHT中的位置是LM,数据删除的步骤为:
步骤7.2.1:普通用户CO读取
Figure BDA0003078321570000072
中存储的信息r1、b1,找到腰删除的数据块在Block*中的位置LM;
步骤7.2.2:普通用户CO通过变色龙哈希函数求出门限值:
r1 *=forge(SK,(b11),r1null);
步骤7.2.3:普通用户CO广播删除操作Delete_DO={r1 *,BlockID,LM}给全部的授权用户DO,发送删除操作Delete_CSP={r1 *,BlockID,LM}给云服务提供商CSP;
步骤7.2.4:云服务提供商CSP接收到删除信息Delete_CSP后,验证信息的签名
Figure BDA0003078321570000076
验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.2.4.1:根据BlockID,LM找到删除数据的位置Node1
步骤7.2.4.2:验证等式CHash(PK,(b11),r1)=CHash(PK,null,r1 *)是否成立;验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.2.4.3:删除MHT树中相应节点的数据信息,只保留变色龙哈希算法的相关信息;
步骤7.2.4.4:发送信息Delete_finish={Time,BlockID,LM}给授权用户DO;
步骤7.2.5:授权用户DO将删除操作记录到动态操作链中,并通知普通用户CO结果。
所述步骤七中在云服务提供商CSP上数据插入的发送方为为普通用户CO,接收方为云服务提供商CSP,设普通用户CO在m4位置插入新的数据块m5,其中m4由Block*
Figure BDA0003078321570000078
所表示,在底层MHT的位置是LM,数据插入的步骤为:
步骤7.3.1:普通用户CO读取
Figure BDA0003078321570000079
中存储的信息r4,找到数据块m4在Block*中的位置LM;
步骤7.3.2:普通用户CO计算数据块的数据标签
Figure BDA00030783215700000710
哈希值Hash,变色龙哈希值
Figure BDA00030783215700000711
陷门值
Figure BDA00030783215700000712
相关信息组合成Node5;gc为G中生成元;
步骤7.3.3:普通用户CO通过变色龙哈希函数求出陷门值Hd=CH(PK,(Hg+Hr),r*);
步骤7.3.4:普通用户CO广播插入操作Insert_DO={r*,Node5,BlockID,LM}给授权用户DO,发送插入操作Insert_CSP={r*,Node5,BlockID,LM}给云服务提供商CSP;
步骤7.3.5:云服务提供商CSP接收到插入信息Insert_CSP后,验证信息的签名
Figure BDA0003078321570000081
验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.3.5.1:根据找到插入数据块的位置Insert_position;
步骤7.3.5.2:验证等式CHash(PK,(b55),r5)=CHash(PK,(Hg+Hr),r*)是否成立,验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤;
步骤7.3.5.3:若Insert_position<MHT.high,且插入位置为叶子节点,即当前位置可以直接插入Node5
步骤7.3.5.4:若Insert_position=MHT.high,且插入位置为叶子节点,即需开辟新的空间保存Node4,当前位置作为根节点,左右孩子各存放Node4和Node5信息,并建立关联;
步骤7.3.5.5:若Insert_position为非叶子节点,即为删除信息后的节点,直接存放Node5信息;
步骤7.3.5.6:发送信息Insert_finish={Time,BlockID,LM}给授权用户DO;
步骤7.3.6:授权用户DO针对动态操作后的数据文件M3随机选择包含Insert_position的部分数据的哈希值,并通知云服务提供商CSP发送同样的数据,通过对比判断云服务提供商CSP是否作恶,在动态操作链中记录操作信息,并通知普通用户CO结果。
本发明相对于现有技术具备的有益效果为:本发明提供的基于区块链的云数据完整性审计方法,提出基于变色龙哈希算法构造的区块链底层数据结构,利用嵌套的MHT结构保证了数据文件在逻辑上和物理上的正确性和稳定性,叶子节点保存数据的变色龙哈希值,使得数据发生修改之后MHT结构不会发生变化。通过随机置换函数,加密算法保证了在审计过程中数据不发生泄露。通过数据签名,共识机制有效避免了恶意用户的非法请求。通过区块链记录审计结果和各种动态操作记录,使得各种操作是公开透明、可追溯的。
附图说明
下面结合附图对本发明做进一步说明:
图1为本发明的审计模型的结构示意图;
图2为本发明的数据存储结构示意图;
图3为本发明数据更新操作的算法流程图;
图4为本发明数据删除操作的算法流程图;
图5为本发明数据插入操作的算法流程图。
具体实施方式
如图1至图5所示,本发明提供一种可修改的区块链技术来完成对云存储中数据完整性审计的方法,包括:普通用户CO(Common Owner)将数据文件分块并生成数据标签和变色龙哈希值等审计数据,数据以MHT结构存储于云端,数据标签以MHT结构存储于授权用户DO(Delegate Owner);CO向DO提出审计请求;DO向CSP提出审计挑战;CSP执行证据生成算法生成相应证据并返回给DO;DO利用本地存储的数据信息通过双线性对,在不需要解密的前提下完成数据完整性验证;发生错误时,DO通过辅助信息精确定位错误发生位置;CO进行数据修改、插入和删除操作时,利用私钥求出变色龙陷门值,并发送操作请求给DO和CSP;CSP按照请求完成数据更新,DO按照请求完成数据标签的更新,并将操作记录到区块链中。
本发明还提出一种基于区块链的云数据完整性审计模型涉,主要包括:用户(Owner)和云服务提供商CSP(Cloud Service Provider),包括两条数据链:数据完整性审计链和动态操作链。模型框架结构如图1所示。
(1)用户(Owner)
用户也即数据拥有者,可以是个人或者公司,所有用户构成一个分布式网络,通过外包服务将数据存储到CSP,并且删除原始数据,只保留相关的审计信息。所有用户组成区块链网络,用户分为普通用户CO(Common Owner)和授权用户DO(Delegate Owner),其中授权用户DO通过DPos共识产生,DO负责监测CO全网发送的元数据信息,为全网CO提供数据完整性审计服务。
(2)云服务提供商(CSP)
云服务提供商是具有超强计算能力和超大存储空间的实体,为用户提供云存储服务。主要将数据上传到云服务器CS中存储,CS还支持外包数据完整性检查。本模型使用区块链平台存储数据标签和操作记录,提出相应的数据结构和动态操作算法,实现了区块链的可修改性,基于双线性对进行完整性验证。本模型有效解决了区块链的不可修改性特征,提高了验证数据过程的安全性。
数据完整性审计链负责存储完整性审计信息,而动态操作链存储对数据的动态操作记录和认证结果。
本发明的数据存储结构如下:普通用户CO将数据块外包存储到CSP上,同时将数据标签和审计任务等信息上传到审计链。为实现基于区块链的动态数据完整性验证,区块链底层数据结构采用嵌套MHT数据结构,其结构如图2所示。在该结构中,顶层MHT保证多个数据块文件的完整性和空间位置的正确性,其叶子结点保存用户存储在CSP的加密数据文件,非叶子结点存储通过变色龙哈希函数计算得到的哈希值。底层MHT保证物理存储的单个文件的数据完整性和空间位置的正确性,其叶子结点保存用户存储在CSP的数据文件的分块数据标签,非叶子节点存储通过变色龙哈希函数计算得到的哈希值。用户只能操作底层MHT结构数据,底层数据通过变色龙哈希算法进行处理,使得底层MHT结构即使发生改变也不影响顶层MHT结构,因此解决了区块链不可篡改性与云数据动态性之间的矛盾。
本发明方法的执行过程描述如下:
(1)分布式网络中的所有普通用户CO执行DPos共识算法,推选出授权用户DO,同时确定区块的生成顺序和审计任务。CO将要保存到CSP中的数据文件进行处理后上传到CSP,同时生成数据文件相关审计数据信息发送给DO,同时删除本地数据,只保留元数据信息以便之后对数据进行增、删、改、查等操作。DO把元数据等相关的审计信息按照约定打包成区块,将区块上链形成审计链。
(2)区块签署:DO生成区块之后,向CSP发起区块签署挑战请求,根据CSP返回的证据判断CSP是否如实的保存了一段时间内CO上传的数据并完成签署工作。
(3)审计挑战:DO为了验证其存储的区块所代表用户数据的完整性,根据智能合约,向CSP发起区块审计挑战,验证存储于CSP端数据的完整性。
(4)证据生成:收到审计挑战请求后,CSP执行证据生成算法,并将生成的证据信息发送给DO。
(5)证据验证:DO根据CSP发来的证据信息,执行证据验证算法,完成对数据完整性的验证并将审计结果记录在审计链中。
(6)动态操作:当普通用户CO需要修改、删除或者增加外包存储到CSP中的数据时,执行动态操作算法完成对远程数据的修改并将该操作记录在操作链中。
本发明具体包括五个阶段:初始化、标签生成和变色龙哈希生成阶段、区块生成与部署阶段、挑战阶段、证据生成和验证阶段。
具体初始化过程为:CO执行Setup()算法产生私钥对和公钥对,用于加密和解密数据块。参数初始化:输入安全参数λ,生成阶数为P的乘法循环群G和GT。双线性映射e:G×G→GT,gCO和gDO为G的生成元,辅助变量u←G。选择散列函数H:{0,1}*→G,h(·):G→Zp。为了生成随机挑战索引Sj和相应系数
Figure BDA0003078321570000101
定义伪随机置换函数
Figure BDA0003078321570000102
和伪随机函数fkey{0,1}*×K→Zp,其中key∈ID,数据块编号
Figure BDA0003078321570000103
密钥生成:普通用户CO选择随机数
Figure BDA0003078321570000111
Figure BDA0003078321570000112
计算
Figure BDA0003078321570000113
生成公钥对<PK,v>,私钥对
Figure BDA0003078321570000114
授权用户DO选择随机数x,
Figure BDA0003078321570000115
计算
Figure BDA0003078321570000116
生成公钥对<SPK,y>,私钥对<SSK,x>。
标签生成和变色龙哈希生成阶段过程为:CO先将数据M进行加密,之后平均分成n块,M=m1||m2||…||mn,M表示要存储到云端的数据文件,mi表示均分成的第i个数据块,i∈[1,n]。假设数据M的标识为
Figure BDA0003078321570000117
每一个数据块的标号
Figure BDA0003078321570000118
执行下面的步骤生成标签,也即为每一数据块生成签名,用于检查数据的完整性。
(1)对每一数据块mi,计算bi=H(mi)。
(2)对每一个数据块mi,生成对应的标签
Figure BDA0003078321570000119
标签集合
Figure BDA00030783215700001110
(3)对每一个数据块mi,找一个相应的随机数
Figure BDA00030783215700001111
计算mi的变色龙哈希
Figure BDA00030783215700001112
gc
Figure BDA00030783215700001113
的生成元,
Figure BDA00030783215700001114
区块生成阶段与部署阶段的具体过程为:CO生成以每个数据块的变色龙哈希值为叶子节点的MHT,并且对MHT的叶子节点进行签名。CO将数据M的数据分块信息
Figure BDA00030783215700001115
组合成一个Nodei,并利用底层MHT算法构建UBM,CO对数据块mi进行签名
Figure BDA00030783215700001116
然后将UBM发送到CSP,与其对应的证据
Figure BDA00030783215700001117
发送给授权用户DO。CO删除本地数据UBM,保留对应的证据数据
Figure BDA00030783215700001118
方便日后对数据进行增加、删除、修改、查询的动态数据操作。DO定期打包CO发送的
Figure BDA00030783215700001119
生成区块文件并上链。CSP在同样的周期内将CO发送的原始数据UBM打包,利用顶层MHT算法构建文件并存储。
为确保CSP已正确存储数据,授权用户DO与CSP进行交互验证。DO读取已生成区块的头文件Hash值,CSP返回同一ID对应区块的头文件Hash值。若DO的Hash值和CSP返回的Hash值相等,则表示CSP如实保存了用户数据,DO利用自身私钥发送签署信息
Figure BDA00030783215700001120
完成对CSP中对应区块的签署,其中
Figure BDA00030783215700001121
Time为时间戳,DOi表示该数据由谁签署。
挑战阶段的具体过程为:授权用户DO收到普通用户CO对外包数据M的验证请求之后,向CSP提出挑战。CSP返回M的数据标签,DO通过公钥spk来验证数据标签是否正确。若等式
Figure BDA00030783215700001122
不成立,说明数据已被修改,结束程序,通知用户结果,否则执行下列三步骤生成挑战信息:
(1)DO选择数据Mi所属的区块,该区块包含m个
Figure BDA0003078321570000121
文件,确定每个
Figure BDA0003078321570000122
文件要进行挑战的子集I={Nodei}1≤i≤c
(2)利用随机置换函数π(·)key计算NodeIDi=πk1(NodeIDi),随机函数fkey(·)计算
Figure BDA0003078321570000123
(3)组成一个
Figure BDA0003078321570000124
相对应的挑战块
Figure BDA0003078321570000125
m个
Figure BDA0003078321570000126
组成这个区块的挑战
Figure BDA0003078321570000127
证据生成阶段的具体过程为:当CSP收到DO发送的挑战请求
Figure BDA0003078321570000128
后,CSP执行下面的步骤来完成证据生成。
(1)根据blocki找到被挑战的区块,根据
Figure BDA0003078321570000129
找到被挑战的NodeIDi所对应的数据块文件,相关辅助信息
Figure BDA00030783215700001210
c个辅助信息构成集合β={αi}1≤i≤c
(2)针对每一个
Figure BDA00030783215700001211
Figure BDA00030783215700001212
为避免DO从证据信息中推导出CO的数据信息,CSP对所需验证的数据块证据采用随机置换函数进行加密处理,从而达到保护用户数据的隐私。选择随机元素r←Zp,利用随机函数r=fi(chal),其中i是CSP每次应对挑战随机生成的随机函数密钥,u←G,之后计算:
(1)R=ur∈G
(2)
Figure BDA00030783215700001213
每一个
Figure BDA00030783215700001214
所对应的挑战证据
Figure BDA00030783215700001215
CSP将m个
Figure BDA00030783215700001216
对应的证据
Figure BDA00030783215700001217
整合为一个证据
Figure BDA00030783215700001218
发送给授权用户DO。
证据验证阶段的具体过程为:DO收到CSP发来的证据信息
Figure BDA00030783215700001219
后,首先,对其中的每一个
Figure BDA00030783215700001220
依据式(1)判断数据签名的完整性,若等式(1)成立,则表示数据标签没有被人修改过。
Figure BDA00030783215700001221
其次,依据等式(2)判断存储在CSP中用户数据的完整性。
Figure BDA00030783215700001222
若等式(2)验证成立,则表示数据内容被完整的保存,通知相应的普通用户CO并将审计结果记录在审计链中。否则,利用辅助信息αi中Nodei查到挑战分块文件在授权用户DO中的LM以及DataHash,通过比较LM?=LMi和DataHash?=DataHashi来定位数据的具体错误位置。
对式(2)的正确性分析式(3)所示:
Figure BDA0003078321570000131
动态操作包括数据的修改操作、插入操作和删除操作,为支持动态操作,区块链存储每一个数据块的哈希标签,而不是只存储MHT的根。下面对动态操作进行详细描述。
数据的更新操作:CO欲将数据块m1修改为
Figure BDA0003078321570000132
m1由Block*中的
Figure BDA0003078321570000133
所表示,在底层MHT中的位置是LM(LocationMessage)。算法1:CSP上数据更新算法,发送方为CO,接收方为CSP。
1.CO读取
Figure BDA0003078321570000134
中存储的信息r1,u,b1找到更新数据块在Block*中的位置LM。
2.CO通过变色龙哈希函数求出陷门值
Figure BDA0003078321570000135
3.CO计算数据块m1的数据标签
Figure BDA0003078321570000136
和哈希值
Figure BDA0003078321570000137
4.CO广播更新操作
Figure BDA0003078321570000138
给全部的DO,发送更新操作
Figure BDA0003078321570000139
给CSP。
5.CSP接受到更新信息Update_CSP后,验证信息的签名
Figure BDA00030783215700001310
验证通过,执行下一步:
a.根据BlockID,LM找到更新数据的位置Node1
b.验证:
Figure BDA00030783215700001311
c.更新MHT树中相应节点的数据信息,并通知DO修改完成。
DO针对更新后的数据文件M3随机选择部分数据(包含更新数据块
Figure BDA0003078321570000141
)的哈希值,并通知CSP发送同样的数据,通过对比判断CSP是否做恶,在动态操作链中记录操作信息,并通知普通用户CO结果。
数据的删除操作:CO欲删除数据块m1,其中m1由Block*中的
Figure BDA0003078321570000142
所表示,m1在底层MHT中的位置是LM(LocationMessage)。算法2:CSP上数据删除算法发送方为CO,接收方为CSP。
1.CO读取
Figure BDA0003078321570000143
中存储的信息r1,b1,找到要删除的数据块在Block*的位置LM。
2.CO通过变色龙哈希算法求出陷门值r1 *=forge(SK,(b11),r1,null)。
3.CO广播删除操作Delete_DO={r1 *,BlocID,LM}给全部DO,发送删除操作Delete_CSP={r1 *,BlocID,LM}给CSP。
4.CSP接受到删除信息Delete_CSP后,验证信息的签名
Figure BDA0003078321570000147
验证通过,执行下一步:
a.根据BlockID,LM找到删除数据的位置Node1
5.验证CH(PK,b11),r1)=CH(PK,null,r1 *)是否成立。验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤。
6.删除MHT树中相应节点的数据信息,只保留变色龙哈希算法的相关信息。
b.发送信息Delete_finish={Time,BlockID,LM}给DO。
7.DO将删除操作记录到动态操作链中,并通知普通用户CO结果。
插入数据操作:CO欲在m4位置插入新的数据块m5,其中m4由Block*
Figure BDA0003078321570000149
所表示,在底层MHT的位置是LM(LocationMessage)。算法3:CSP上数据插入算法发送方为CO,接收方为CSP。
1.CO读取
Figure BDA00030783215700001410
中存储的信息r4,找到数据块m4在Block*中的位置LM。
2.CO计算数据块m5的数据标签
Figure BDA00030783215700001411
哈希值Hash,变色龙哈希值
Figure BDA00030783215700001412
陷门值
Figure BDA00030783215700001413
相关信息组合成Node5
3.CO通过变色龙哈希函数求出陷门值Hd=CH(PK,(Hg+Hr),r*)。
4.CO广播插入操作Insert_DO={r*,Node5,BlockID,LM}给全部DO,发送插入操作Insert_CSP={r*,Node5,BlockID,LM}给CSP。
5.CSP接受到插入信息Insert_CSP后,验证信息的签名
Figure BDA00030783215700001414
验证通过,执行下一步:
a.根据BlockID,LM找到插入数据块m5的位置Insert_position。
b.验证CHash(PK,(b55),r5)=CHash(PK,(Hg+Hr),r*)是否成立。成立执行步骤c,否则丢弃插入操作,通知用户。
c.若Insert_position<MHT.high,且插入位置为叶子节点,即当前位置可以直接插入Node5
d.若Insert_position=MHT.high,且插入位置为叶子节点,即需开辟新的空间保存Node4,当前位置作为根节点,左右孩子各存放Node4和Node5信息,并建立关联。
e.若Insert_position为非叶子节点,即为删除信息后的节点,直接存放Node5信息。
f.通知DO插入操作完成并返回插入位置Insert_position。
DO针对动态操作后的数据文件M3随机选择部分数据(包含Insert_position)的哈希值,并通知CSP发送同样的数据,通过对比判断CSP是否做恶,在动态操作链中记录操作信息,并通知用户操作结果。
对于审计模型的安全性验证,给出如下定理及其证明结果:
定理1:基于双线性对和Diffie-Hellman问题,本发明的模型在随机预言模型中可以保证数据的完整性。
证明:在这里,CSP被认为是敌手,DO认为是仿真者,其控制着随机预言机H(·)。
给定
Figure BDA0003078321570000151
仿真者即DO需要输出
Figure BDA0003078321570000152
Figure BDA0003078321570000153
a,b←Zp为DO选取的随机值。在每次挑战中i,DO选取ri←Zp,并执行随机预言模型:
Figure BDA0003078321570000154
当u=gahb时,DO可以计算签名
Figure BDA0003078321570000155
Figure BDA0003078321570000156
Figure BDA0003078321570000157
诚实的CSP会返回
Figure BDA0003078321570000158
给DO,并满足等式(7)如下所示:
Figure BDA0003078321570000159
假设给定的r相同,敌手会返回P*roof=(μ**,R)给DO,并同样要满足等式(8):
Figure BDA0003078321570000161
很明显,μ≠μ*,否则就有σ=σ*,Proof=P*roof。定义Δμ=μ*-μ。令等式(8)除以等式(7)得:
Figure BDA0003078321570000162
对于所有的验证等式,假定r是相同的,则有:
Figure BDA0003078321570000163
DO将u=gahb带入等式(11)得:
Figure BDA0003078321570000164
整理得到等式(12):
Figure BDA0003078321570000165
由双线性特性,从等式(12)中可得等式
Figure BDA0003078321570000166
分析能否通过解答等式(12)得到
Figure BDA0003078321570000167
只需计算b·Δμ=0modp即可。由于b是由仿真者DO选择并且对敌手CSP隐藏,所以等式b·Δμ=0modp成立的概率仅为1/p。由于p是循环群
Figure BDA0003078321570000168
的阶数,且处理的数据量多大,所以1/p≈0。
关于本发明具体结构需要说明的是,本发明采用的各部件模块相互之间的连接关系是确定的、可实现的,除实施例中特殊说明的以外,其特定的连接关系可以带来相应的技术效果,并基于不依赖相应软件程序执行的前提下,解决本发明提出的技术问题,本发明中出现的部件、模块、具体元器件的型号、连接方式除具体说明的以外,均属于本领域技术人员在申请日前可以获取到的已公开专利、已公开的期刊论文、或公知常识等现有技术,无需赘述,使得本案提供的技术方案是清楚、完整、可实现的,并能根据该技术手段重现或获得相应的实体产品。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于区块链的云数据完整性审计方法,其特征在于:包括如下步骤:
步骤一:数据分块存储:分布式网络中的所有普通用户CO执行DPos共识算法,推选出授权用户DO,同时确定区块的生成顺序和审计任务;普通用户CO将要保存到云服务提供商CSP中的数据文件进行处理后上传到云服务提供商CSP,同时生成数据文件相关审计数据信息发送给授权用户DO,同时删除本地数据,只保留元数据信息;
步骤二:数据标签生成及变色龙哈希生成;
步骤三:区块生成与签署:授权用户DO把元数据相关的审计信息按照约定打包成区块,将区块上链形成审计链;
授权用户DO生成区块之后,向云服务提供商CSP发起区块签署挑战请求,根据云服务提供商CSP返回的证据判断云服务提供商CSP是否如实保存了一段时间内普通用户CO上传的数据并完成签署工作;
步骤四:审计挑战:授权用户DO为验证其存储的区块所代表用户数据的完整性,根据智能合约,向云服务提供商CSP发起区块审计挑战,验证存储于云服务提供商CSP端数据的完整性;
步骤五:证据生成:云服务提供商CSP收到审计挑战请求后,执行证据生成算法,并将生成的证据信息发送给授权用户DO;
步骤六:证据验证:授权用户DO根据云服务提供商CSP发来的证据信息,执行证据验证算法,完成对数据完整性的验证并将审计结果记录在审计链中;
步骤七:动态操作:当普通用户CO需要修改、删除或者增加外包存储到云服务提供商CSP中的数据时,执行动态操作算法完成对远程数据的修改并将该操作记录在操作链中。
2.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤一具体为:
步骤1.1:普通用户CO执行初始化算法产生私钥对和公钥对;
步骤1.2:参数初始化:初始化输入的安全参数λ,生成阶数为P的乘法循环群G和GT,且存在双线性映射关系为:e:G×G→GT,其中G的生成元为gCO和gDO,G中选取一个辅助变量u←G;
选择散列函数:H:{0,1}*→G,h(·):G→Zp,上式中Zp为阶数P的群;
定义伪随机置换函数:
Figure FDA0003078321560000011
定义伪随机函数:fkey{0,1}*×K→Zp,其中key∈ID,数据块编号
Figure FDA0003078321560000012
K为编号ID;
步骤1.3:密钥生成:普通用户CO选择随机数
Figure FDA0003078321560000013
Figure FDA0003078321560000014
为阶数为P的乘法循环群,计算
Figure FDA0003078321560000021
生成公钥对<PK,v>,私钥对
Figure FDA0003078321560000022
授权用户DO选择随机数x,
Figure FDA0003078321560000023
计算
Figure FDA0003078321560000024
生成公钥对<SPK,y>,私钥对<SSK,x>。
3.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤二具体为:
步骤2.1:普通用户CO先将数据M进行加密,之后平均分成n块,M表示要存储到云端的数据文件,M=m1||m2||…||mn,mi表示均分成的第i个数据块,i∈[1,n];
步骤2.2:假设数据M的标识为
Figure FDA0003078321560000025
每一个数据块的标号为
Figure FDA0003078321560000026
执行下面的步骤生成标签,也即为每一数据块生成签名,用于检查数据的完整性;
步骤2.2.1:对每一个数据块mi,计算bi=H(mi),bi为数据块mi的哈希值,H(mi)为相应的哈希函数;
步骤2.2.2:对每一个数据块mi,生成对应的标签
Figure FDA0003078321560000027
标签集合为
Figure FDA0003078321560000028
u为G中选取的辅助变量,
Figure FDA0003078321560000029
为进行数据签名的私钥;
步骤2.2.3:对每一个数据块mi,找一个相应的随机数
Figure FDA00030783215600000210
计算mi的变色龙哈希
Figure FDA00030783215600000211
gc
Figure FDA00030783215600000212
的生成元,
Figure FDA00030783215600000213
r为变色龙陷门值ri进行加密后的结果。
4.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤三具体为:
步骤3.1:普通用户CO生成以每个数据块的变色龙哈希值为叶子节点的MHT,并对MHT的叶子节点进行签名;
步骤3.2:普通用户CO将数据M的数据分块信息
Figure FDA00030783215600000214
组合成一个Nodei,并利用底层MHT算法构建本地数据UBM,普通用户CO对数据块mi进行签名
Figure FDA00030783215600000215
Figure FDA00030783215600000216
为普通用户CO进行数据加密的私钥,然后将本地数据UBM发送到云服务提供商CSP,与其对应的证据数据
Figure FDA00030783215600000217
发送给授权用户DO;
步骤3.3:普通用户CO删除本地数据UBM,保留对应的证据数据
Figure FDA00030783215600000218
步骤3.4:授权用户DO定期打包普通用户CO发送的证据数据
Figure FDA00030783215600000219
生成区块文件并上链,云服务提供商CSP在同样的周期内将普通用户CO发送的原始本地数据UBM打包,利用顶层MHT算法构建文件并存储。
5.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤四具体为:
步骤4.1:授权用户DO收到普通用户CO对外包数据M的验证请求之后,向云服务提供商CSP提出挑战;
步骤4.2:云服务提供商CSP返回M的数据标签,授权用户DO通过公钥spk来验证数据标签是否正确;
步骤4.3:若等式
Figure FDA0003078321560000031
不成立,则数据已被修改,结束程序,通知用户结果;
步骤4.4:若等式
Figure FDA0003078321560000032
成立,执行如下步骤生成挑战信息:
步骤4.4.1:授权用户DO选择数据Mi所属的区块,该区块包含m个
Figure FDA0003078321560000033
文件,确定每个
Figure FDA0003078321560000034
文件要进行挑战的子集I={Nodei}1≤i≤c
步骤4.4.2:利用随机置换函数π(·)key计算NodeIDi=πk1(NodeIDi),利用随机函数fkey(·)计算
Figure FDA0003078321560000035
步骤4.4.3:组成一个
Figure FDA0003078321560000036
相对应的挑战块
Figure FDA0003078321560000037
m个
Figure FDA0003078321560000038
组成上述区块的挑战
Figure FDA0003078321560000039
6.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤五当云服务提供商CSP收到授权用户DO发送的挑战请求
Figure FDA00030783215600000310
后,云服务提供商CSP执行如下步骤完成证据生成:
步骤5.1:根据blocki找到被挑战的区块,根据
Figure FDA00030783215600000311
找到被挑战的NodeIDi所对应的数据块文件,相关辅助信息为
Figure FDA00030783215600000312
c个辅助信息构成合集β={αi}1≤i≤c
步骤5.2:针对每一个
Figure FDA00030783215600000313
求标签
Figure FDA00030783215600000314
Figure FDA00030783215600000319
为数据Mi持有证据,vj为数据块mj对应的随机数;
步骤5.3:云服务提供商CSP对所需验证的数据块证据采用随机置换函数进行加密处理,选择随机元素r←Zp,利用随机函数r=fi(chal),其中i为云服务提供商CSP每次应对挑战随机生成的随机函数密钥,u←G,计算:
R=ur∈G,
Figure FDA00030783215600000315
R为辅助变量u加密处理值;
步骤5.4:每一个
Figure FDA00030783215600000316
所对应的挑战证据为
Figure FDA00030783215600000317
Figure FDA00030783215600000318
为数据Mi数据验证的辅助信息集;
步骤5.5:云服务提供商CSP将m个
Figure FDA0003078321560000041
对应的证据整合为一个证据
Figure FDA0003078321560000042
发送给授权用户DO。
7.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤六授权用户DO收到云服务提供商CSP发来的证据信息
Figure FDA0003078321560000043
后,根据如下步骤进行数据验证:
步骤6.1:首先对其中的每一个
Figure FDA0003078321560000044
根据等式
Figure FDA0003078321560000045
判断数据签名的完整性,若等式成立,则表示数据标签没有被修改过;
步骤6.2:根据等式
Figure FDA0003078321560000046
判断存储在云服务提供商CSP中用户数据的完整性,若等式成立,则表示数据内容被完整的保存,通知相应的普通用户CO并将审计结构记录在审计链中;rh(R)为对证据信息进行加密的随机值,ν为普通用户CO的公钥,νi为数据块mi对应的随机数,νi的下标i为随机选择验证的节点编号;
步骤6.3:若等式
Figure FDA0003078321560000047
不成立,利用辅助信息αi中Nodei查到挑战分块文件在授权用户DO中的LM以及DataHash,通过比较LM?=LMi和DataHash?=DataHashi来定位数据的具体错误位置;
其中LM为数据块在底层MHT中的位置,DataHash为相关辅助节点的Hash值。
8.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤七中在云服务提供商CSP上数据更新的发送方为普通用户CO,接收方为云服务提供商CSP,普通用户CO将数据块m1修改为
Figure FDA0003078321560000048
m1由Block*中的
Figure FDA0003078321560000049
所表示,在底层MHT中的位置是LM,数据更新的步骤为:
步骤7.1.1:普通用户CO读取
Figure FDA00030783215600000410
中存储的信息r1、u、b1,找到更新数据块在Block*中的位置LM,r1为变色龙陷门值、u为变色龙哈希值中的辅助变量、b1为数据块m1的哈希值;
步骤7.1.2:普通用户CO通过变色龙哈希函数求出陷门值:
Figure FDA00030783215600000411
σ1为数据块m1的数据标签;
Figure FDA00030783215600000412
为修改后的数据
Figure FDA00030783215600000413
的哈希值;
Figure FDA00030783215600000414
Figure FDA00030783215600000415
的数据标签;
步骤7.1.3:普通用户CO计算数据块
Figure FDA00030783215600000416
的数据标签
Figure FDA00030783215600000417
和哈希值
Figure FDA00030783215600000418
步骤7.1.4:普通用户CO广播更新操作
Figure FDA0003078321560000051
给全部的授权用户DO,发送更新操作
Figure FDA0003078321560000052
给云服务提供商CSP;
步骤7.1.5:云服务提供商CSP接收到更新信息Update_CSP后,验证信息的签名
Figure FDA0003078321560000053
验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.1.5.1:根据BlockID,LM找到更新数据的位置Node1
步骤7.1.5.2:验证等式
Figure FDA0003078321560000054
CHash为变色龙哈希值;验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.1.5.3:更新MHT树中相应节点的数据信息;
步骤7.1.5.4:发送信息Update_finish={Time,BlockID,LM}给授权用户DO;Time为时间戳;
步骤7.1.6:授权用户DO针对更新后的数据文件M3随机选择包含更新数据块
Figure FDA0003078321560000055
的部分数据的哈希值,并通知云服务提供商CSP发送同样的数据,通过对比判断云服务提供商CSP是否作恶,在动态操作链中记录操作信息,并通知普通用户CO结果。
9.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤七中在云服务提供商CSP上数据删除的发送方为为普通用户CO,接收方为云服务提供商CSP,设普通用户CO删除数据块m1,其中m1由Block*中的
Figure FDA0003078321560000056
所表示,m1在底层MHT中的位置是LM,数据删除的步骤为:
步骤7.2.1:普通用户CO读取
Figure FDA0003078321560000057
中存储的信息r1、b1,找到腰删除的数据块在Block*中的位置LM;
步骤7.2.2:普通用户CO通过变色龙哈希函数求出门限值:
Figure FDA0003078321560000058
步骤7.2.3:普通用户CO广播删除操作
Figure FDA0003078321560000059
给全部的授权用户DO,发送删除操作
Figure FDA00030783215600000510
给云服务提供商CSP;
步骤7.2.4:云服务提供商CSP接收到删除信息Delete_CSP后,验证信息的签名
Figure FDA00030783215600000511
验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.2.4.1:根据BlockID,LM找到删除数据的位置Node1
步骤7.2.4.2:验证等式
Figure FDA00030783215600000512
是否成立;验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.2.4.3:删除MHT树中相应节点的数据信息,只保留变色龙哈希算法的相关信息;
步骤7.2.4.4:发送信息Delete_finish={Time,BlockID,LM}给授权用户DO;
步骤7.2.5:授权用户DO将删除操作记录到动态操作链中,并通知普通用户CO结果。
10.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤七中在云服务提供商CSP上数据插入的发送方为为普通用户CO,接收方为云服务提供商CSP,设普通用户CO在m4位置插入新的数据块m5,其中m4由Block*
Figure FDA0003078321560000061
所表示,在底层MHT的位置是LM,数据插入的步骤为:
步骤7.3.1:普通用户CO读取
Figure FDA0003078321560000062
中存储的信息r4,找到数据块m4在Block*中的位置LM;
步骤7.3.2:普通用户CO计算数据块的数据标签
Figure FDA0003078321560000063
哈希值Hash,变色龙哈希值
Figure FDA0003078321560000064
陷门值
Figure FDA0003078321560000065
相关信息组合成Node5;gc为G中生成元;
步骤7.3.3:普通用户CO通过变色龙哈希函数求出陷门值Hd=CH(PK,(Hg+Hr),r*);
步骤7.3.4:普通用户CO广播插入操作Insert_DO={r*,Node5,BlockID,LM}给授权用户DO,发送插入操作Insert_CSP={r*,Node5,BlockID,LM}给云服务提供商CSP;
步骤7.3.5:云服务提供商CSP接收到插入信息Insert_CSP后,验证信息的签名
Figure FDA0003078321560000066
验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤:
步骤7.3.5.1:根据找到插入数据块的位置Insert_position;
步骤7.3.5.2:验证等式CHash(PK,(b55),r5)=CHash(PK,(Hg+Hr),r*)是否成立,验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤;
步骤7.3.5.3:若Insert_position<MHT.high,且插入位置为叶子节点,即当前位置可以直接插入Node5
步骤7.3.5.4:若Insert_position=MHT.high,且插入位置为叶子节点,即需开辟新的空间保存Node4,当前位置作为根节点,左右孩子各存放Node4和Node5信息,并建立关联;
步骤7.3.5.5:若Insert_position为非叶子节点,即为删除信息后的节点,直接存放Node5信息;
步骤7.3.5.6:发送信息Insert_finish={Time,BlockID,LM}给授权用户DO;
步骤7.3.6:授权用户DO针对动态操作后的数据文件M3随机选择包含Insert_position的部分数据的哈希值,并通知云服务提供商CSP发送同样的数据,通过对比判断云服务提供商CSP是否作恶,在动态操作链中记录操作信息,并通知普通用户CO结果。
CN202110558829.3A 2021-05-21 2021-05-21 一种基于区块链的云数据完整性审计方法 Pending CN113312574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110558829.3A CN113312574A (zh) 2021-05-21 2021-05-21 一种基于区块链的云数据完整性审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110558829.3A CN113312574A (zh) 2021-05-21 2021-05-21 一种基于区块链的云数据完整性审计方法

Publications (1)

Publication Number Publication Date
CN113312574A true CN113312574A (zh) 2021-08-27

Family

ID=77374115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110558829.3A Pending CN113312574A (zh) 2021-05-21 2021-05-21 一种基于区块链的云数据完整性审计方法

Country Status (1)

Country Link
CN (1) CN113312574A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114372296A (zh) * 2021-12-31 2022-04-19 华南理工大学 一种基于区块链的用户行为数据审计方法及系统
CN115037530A (zh) * 2022-05-25 2022-09-09 淮阴工学院 基于区块链的密文去重和去中心化审计方法
CN115208628A (zh) * 2022-06-10 2022-10-18 长春理工大学 基于区块链的数据完整性验证方法
CN115955489A (zh) * 2023-03-15 2023-04-11 中国民航大学 一种面向云存储的机载软件持有性证明方法
CN116484398A (zh) * 2023-03-15 2023-07-25 香港理工大学深圳研究院 一种基于变色龙哈希的加密验证方法和系统
CN116781427A (zh) * 2023-08-23 2023-09-19 国网江西省电力有限公司信息通信分公司 一种云存储数据完整性验证方法
CN117555864A (zh) * 2024-01-11 2024-02-13 华侨大学 一种基于可信执行环境的云数据安全删除方法
WO2024088082A1 (zh) * 2022-10-24 2024-05-02 郑州师范学院 一种数据完整性审计方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601605A (zh) * 2015-02-28 2015-05-06 北方工业大学 云存储中基于变色龙哈希函数的高效隐私保护审计方案
CN111898164A (zh) * 2020-07-02 2020-11-06 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法
CN111949602A (zh) * 2020-07-16 2020-11-17 桂林电子科技大学 一种支持完整性验证的外包数据安全迁移方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601605A (zh) * 2015-02-28 2015-05-06 北方工业大学 云存储中基于变色龙哈希函数的高效隐私保护审计方案
CN111898164A (zh) * 2020-07-02 2020-11-06 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法
CN111949602A (zh) * 2020-07-16 2020-11-17 桂林电子科技大学 一种支持完整性验证的外包数据安全迁移方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周坚 等: "基于嵌套Merkle Hash tree 区块链的云数据动态审计模型", 《计算机应用》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114372296B (zh) * 2021-12-31 2023-03-21 华南理工大学 一种基于区块链的用户行为数据审计方法及系统
CN114372296A (zh) * 2021-12-31 2022-04-19 华南理工大学 一种基于区块链的用户行为数据审计方法及系统
CN115037530B (zh) * 2022-05-25 2024-03-26 淮阴工学院 基于区块链的密文去重和去中心化审计方法
CN115037530A (zh) * 2022-05-25 2022-09-09 淮阴工学院 基于区块链的密文去重和去中心化审计方法
CN115208628A (zh) * 2022-06-10 2022-10-18 长春理工大学 基于区块链的数据完整性验证方法
CN115208628B (zh) * 2022-06-10 2023-04-21 长春理工大学 基于区块链的数据完整性验证方法
WO2024088082A1 (zh) * 2022-10-24 2024-05-02 郑州师范学院 一种数据完整性审计方法、设备及存储介质
CN116484398A (zh) * 2023-03-15 2023-07-25 香港理工大学深圳研究院 一种基于变色龙哈希的加密验证方法和系统
CN116484398B (zh) * 2023-03-15 2024-04-02 香港理工大学深圳研究院 一种基于变色龙哈希的加密验证方法和系统
CN115955489A (zh) * 2023-03-15 2023-04-11 中国民航大学 一种面向云存储的机载软件持有性证明方法
CN116781427B (zh) * 2023-08-23 2023-11-03 国网江西省电力有限公司信息通信分公司 一种云存储数据完整性验证方法
CN116781427A (zh) * 2023-08-23 2023-09-19 国网江西省电力有限公司信息通信分公司 一种云存储数据完整性验证方法
CN117555864A (zh) * 2024-01-11 2024-02-13 华侨大学 一种基于可信执行环境的云数据安全删除方法
CN117555864B (zh) * 2024-01-11 2024-04-16 华侨大学 一种基于可信执行环境的云数据安全删除方法

Similar Documents

Publication Publication Date Title
CN113312574A (zh) 一种基于区块链的云数据完整性审计方法
CN109829326B (zh) 基于区块链的跨域认证与公平审计去重云存储系统
Ambrosin et al. SANA: Secure and scalable aggregate network attestation
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
Zhu et al. Dynamic audit services for outsourced storages in clouds
Wang et al. Enabling public auditability and data dynamics for storage security in cloud computing
CN109376528B (zh) 一种基于区块链的可信身份管理系统和方法
Yu et al. Improved security of a dynamic remote data possession checking protocol for cloud storage
CN109525403B (zh) 一种支持用户全动态并行操作的抗泄露公开云审计方法
CN114139203B (zh) 基于区块链的异构身份联盟风险评估系统、方法及终端
CN112565264B (zh) 一种基于区块链的云存储数据完整性检测方法
CN115208628B (zh) 基于区块链的数据完整性验证方法
CN106611136A (zh) 云存储中一种数据篡改验证方法
Guo et al. Accountable attribute-based data-sharing scheme based on blockchain for vehicular ad hoc network
CN117155644A (zh) 链上链下相协作的医疗数据分级访问控制与共享方法
CN108156139A (zh) 无证书的可验证多关键字密文查询系统及方法
Xie et al. A novel blockchain-based and proxy-oriented public audit scheme for low performance terminal devices
CN113094335A (zh) 云环境下基于改进多分支树的完整性动态审计方法
CN116527322A (zh) 基于区块链和隐私计算的联合征信方法及装置
Zou et al. Dynamic provable data possession based on ranked merkle hash tree
CN113992389A (zh) 一种基于动态频率表的sgx数据完整性审计方法
Junxiang et al. Dynamic provable data possession with batch-update verifiability
Zhao et al. Secure outsourced VANET data in clouds with designated supervisor
Zhang et al. Data Integrity Verification Scheme Based on Blockchain Smart Contract
Zhang et al. Attribute Based Conjunctive Keywords Search with Verifiability and Fair Payment Using Blockchain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210827