CN113312574A - 一种基于区块链的云数据完整性审计方法 - Google Patents
一种基于区块链的云数据完整性审计方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012550 audit Methods 0.000 claims abstract description 53
- 241000122205 Chamaeleonidae Species 0.000 claims abstract description 37
- 238000003780 insertion Methods 0.000 claims abstract description 17
- 230000037431 insertion Effects 0.000 claims abstract description 17
- 238000012986 modification Methods 0.000 claims abstract description 11
- 230000004048 modification Effects 0.000 claims abstract description 11
- 238000012217 deletion Methods 0.000 claims abstract description 10
- 230000037430 deletion Effects 0.000 claims abstract description 10
- 238000012795 verification Methods 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000013524 data verification Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000013502 data validation Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000013496 data integrity verification Methods 0.000 abstract description 7
- 230000006872 improvement Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 238000002507 cathodic stripping potentiometry Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash 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的群;
所述步骤二具体为:
步骤2.1:普通用户CO先将数据M进行加密,之后平均分成n块,M表示要存储到云端的数据文件,M=m1||m2||…||mn,mi表示均分成的第i个数据块,i∈[1,n];
步骤2.2.1:对每一个数据块mi,计算bi=H(mi),bi为数据块mi的哈希值,H(mi)为相应的哈希函数;
所述步骤三具体为:
步骤3.1:普通用户CO生成以每个数据块的变色龙哈希值为叶子节点的MHT,并对MHT的叶子节点进行签名;
步骤3.2:普通用户CO将数据M的数据分块信息组合成一个Nodei,并利用底层MHT算法构建本地数据UBM,普通用户CO对数据块mi进行签名 为普通用户CO进行数据加密的私钥,然后将本地数据UBM发送到云服务提供商CSP,与其对应的证据数据发送给授权用户DO;
所述步骤四具体为:
步骤4.1:授权用户DO收到普通用户CO对外包数据M的验证请求之后,向云服务提供商CSP提出挑战;
步骤4.2:云服务提供商CSP返回M的数据标签,授权用户DO通过公钥spk来验证数据标签是否正确;
步骤5.3:云服务提供商CSP对所需验证的数据块证据采用随机置换函数进行加密处理,选择随机元素r←Zp,利用随机函数r=fi(chal),其中i为云服务提供商CSP每次应对挑战随机生成的随机函数密钥,u←G,计算:
步骤6.2:根据等式判断存储在云服务提供商CSP中用户数据的完整性,若等式成立,则表示数据内容被完整的保存,通知相应的普通用户CO并将审计结构记录在审计链中;rh(R)为对证据信息进行加密的随机值,v为普通用户CO的公钥,vi为数据块mi对应的随机数,vi的下标i为随机选择验证的节点编号;
步骤6.3:若等式不成立,利用辅助信息αi中Nodei查到挑战分块文件在授权用户DO中的LM以及DataHash,通过比较LM?=LMi和DataHash?=DataHashi来定位数据的具体错误位置;
其中LM为数据块在底层MHT中的位置,DataHash为相关辅助节点的Hash值。
所述步骤七中在云服务提供商CSP上数据更新的发送方为普通用户CO,接收方为云服务提供商CSP,普通用户CO将数据块m1修改为m1由Block*中的所表示,在底层MHT中的位置是LM,数据更新的步骤为:
步骤7.1.2:普通用户CO通过变色龙哈希函数求出陷门值:
步骤7.1.5.1:根据BlockID,LM找到更新数据的位置Node1;
步骤7.1.5.3:更新MHT树中相应节点的数据信息;
步骤7.1.5.4:发送信息Update_finish={Time,BlockID,LM}给授权用户DO;Time为时间戳;
步骤7.1.6:授权用户DO针对更新后的数据文件M3随机选择包含更新数据块的部分数据的哈希值,并通知云服务提供商CSP发送同样的数据,通过对比判断云服务提供商CSP是否作恶,在动态操作链中记录操作信息,并通知普通用户CO结果。
所述步骤七中在云服务提供商CSP上数据删除的发送方为为普通用户CO,接收方为云服务提供商CSP,设普通用户CO删除数据块m1,其中m1由Block*中的所表示,m1在底层MHT中的位置是LM,数据删除的步骤为:
步骤7.2.2:普通用户CO通过变色龙哈希函数求出门限值:
r1 *=forge(SK,(b1+σ1),r1null);
步骤7.2.3:普通用户CO广播删除操作Delete_DO={r1 *,BlockID,LM}给全部的授权用户DO,发送删除操作Delete_CSP={r1 *,BlockID,LM}给云服务提供商CSP;
步骤7.2.4.1:根据BlockID,LM找到删除数据的位置Node1;
步骤7.2.4.2:验证等式CHash(PK,(b1+σ1),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*中所表示,在底层MHT的位置是LM,数据插入的步骤为:
步骤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.1:根据找到插入数据块的位置Insert_position;
步骤7.3.5.2:验证等式CHash(PK,(b5+σ5),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和相应系数定义伪随机置换函数和伪随机函数fkey{0,1}*×K→Zp,其中key∈ID,数据块编号
标签生成和变色龙哈希生成阶段过程为:CO先将数据M进行加密,之后平均分成n块,M=m1||m2||…||mn,M表示要存储到云端的数据文件,mi表示均分成的第i个数据块,i∈[1,n]。假设数据M的标识为每一个数据块的标号执行下面的步骤生成标签,也即为每一数据块生成签名,用于检查数据的完整性。
(1)对每一数据块mi,计算bi=H(mi)。
区块生成阶段与部署阶段的具体过程为:CO生成以每个数据块的变色龙哈希值为叶子节点的MHT,并且对MHT的叶子节点进行签名。CO将数据M的数据分块信息组合成一个Nodei,并利用底层MHT算法构建UBM,CO对数据块mi进行签名然后将UBM发送到CSP,与其对应的证据发送给授权用户DO。CO删除本地数据UBM,保留对应的证据数据方便日后对数据进行增加、删除、修改、查询的动态数据操作。DO定期打包CO发送的生成区块文件并上链。CSP在同样的周期内将CO发送的原始数据UBM打包,利用顶层MHT算法构建文件并存储。
为确保CSP已正确存储数据,授权用户DO与CSP进行交互验证。DO读取已生成区块的头文件Hash值,CSP返回同一ID对应区块的头文件Hash值。若DO的Hash值和CSP返回的Hash值相等,则表示CSP如实保存了用户数据,DO利用自身私钥发送签署信息完成对CSP中对应区块的签署,其中Time为时间戳,DOi表示该数据由谁签署。
挑战阶段的具体过程为:授权用户DO收到普通用户CO对外包数据M的验证请求之后,向CSP提出挑战。CSP返回M的数据标签,DO通过公钥spk来验证数据标签是否正确。若等式不成立,说明数据已被修改,结束程序,通知用户结果,否则执行下列三步骤生成挑战信息:
为避免DO从证据信息中推导出CO的数据信息,CSP对所需验证的数据块证据采用随机置换函数进行加密处理,从而达到保护用户数据的隐私。选择随机元素r←Zp,利用随机函数r=fi(chal),其中i是CSP每次应对挑战随机生成的随机函数密钥,u←G,之后计算:
(1)R=ur∈G
其次,依据等式(2)判断存储在CSP中用户数据的完整性。
若等式(2)验证成立,则表示数据内容被完整的保存,通知相应的普通用户CO并将审计结果记录在审计链中。否则,利用辅助信息αi中Nodei查到挑战分块文件在授权用户DO中的LM以及DataHash,通过比较LM?=LMi和DataHash?=DataHashi来定位数据的具体错误位置。
对式(2)的正确性分析式(3)所示:
动态操作包括数据的修改操作、插入操作和删除操作,为支持动态操作,区块链存储每一个数据块的哈希标签,而不是只存储MHT的根。下面对动态操作进行详细描述。
a.根据BlockID,LM找到更新数据的位置Node1。
c.更新MHT树中相应节点的数据信息,并通知DO修改完成。
2.CO通过变色龙哈希算法求出陷门值r1 *=forge(SK,(b1+σ1),r1,null)。
3.CO广播删除操作Delete_DO={r1 *,BlocID,LM}给全部DO,发送删除操作Delete_CSP={r1 *,BlocID,LM}给CSP。
a.根据BlockID,LM找到删除数据的位置Node1。
5.验证CH(PK,b1+σ1),r1)=CH(PK,null,r1 *)是否成立。验证不通过结束程序,通知普通用户CO,验证通过执行如下步骤。
6.删除MHT树中相应节点的数据信息,只保留变色龙哈希算法的相关信息。
b.发送信息Delete_finish={Time,BlockID,LM}给DO。
7.DO将删除操作记录到动态操作链中,并通知普通用户CO结果。
插入数据操作:CO欲在m4位置插入新的数据块m5,其中m4由Block*中所表示,在底层MHT的位置是LM(LocationMessage)。算法3:CSP上数据插入算法发送方为CO,接收方为CSP。
3.CO通过变色龙哈希函数求出陷门值Hd=CH(PK,(Hg+Hr),r*)。
4.CO广播插入操作Insert_DO={r*,Node5,BlockID,LM}给全部DO,发送插入操作Insert_CSP={r*,Node5,BlockID,LM}给CSP。
a.根据BlockID,LM找到插入数据块m5的位置Insert_position。
b.验证CHash(PK,(b5+σ5),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(·)。
假设给定的r相同,敌手会返回P*roof=(μ*,σ*,R)给DO,并同样要满足等式(8):
很明显,μ≠μ*,否则就有σ=σ*,Proof=P*roof。定义Δμ=μ*-μ。令等式(8)除以等式(7)得:
对于所有的验证等式,假定r是相同的,则有:
DO将u=gahb带入等式(11)得:
整理得到等式(12):
由双线性特性,从等式(12)中可得等式分析能否通过解答等式(12)得到只需计算b·Δμ=0modp即可。由于b是由仿真者DO选择并且对敌手CSP隐藏,所以等式b·Δμ=0modp成立的概率仅为1/p。由于p是循环群的阶数,且处理的数据量多大,所以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的群;
3.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤二具体为:
步骤2.1:普通用户CO先将数据M进行加密,之后平均分成n块,M表示要存储到云端的数据文件,M=m1||m2||…||mn,mi表示均分成的第i个数据块,i∈[1,n];
步骤2.2.1:对每一个数据块mi,计算bi=H(mi),bi为数据块mi的哈希值,H(mi)为相应的哈希函数;
4.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤三具体为:
步骤3.1:普通用户CO生成以每个数据块的变色龙哈希值为叶子节点的MHT,并对MHT的叶子节点进行签名;
步骤3.2:普通用户CO将数据M的数据分块信息组合成一个Nodei,并利用底层MHT算法构建本地数据UBM,普通用户CO对数据块mi进行签名 为普通用户CO进行数据加密的私钥,然后将本地数据UBM发送到云服务提供商CSP,与其对应的证据数据发送给授权用户DO;
5.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤四具体为:
步骤4.1:授权用户DO收到普通用户CO对外包数据M的验证请求之后,向云服务提供商CSP提出挑战;
步骤4.2:云服务提供商CSP返回M的数据标签,授权用户DO通过公钥spk来验证数据标签是否正确;
步骤5.3:云服务提供商CSP对所需验证的数据块证据采用随机置换函数进行加密处理,选择随机元素r←Zp,利用随机函数r=fi(chal),其中i为云服务提供商CSP每次应对挑战随机生成的随机函数密钥,u←G,计算:
步骤6.2:根据等式判断存储在云服务提供商CSP中用户数据的完整性,若等式成立,则表示数据内容被完整的保存,通知相应的普通用户CO并将审计结构记录在审计链中;rh(R)为对证据信息进行加密的随机值,ν为普通用户CO的公钥,νi为数据块mi对应的随机数,νi的下标i为随机选择验证的节点编号;
步骤6.3:若等式不成立,利用辅助信息αi中Nodei查到挑战分块文件在授权用户DO中的LM以及DataHash,通过比较LM?=LMi和DataHash?=DataHashi来定位数据的具体错误位置;
其中LM为数据块在底层MHT中的位置,DataHash为相关辅助节点的Hash值。
8.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤七中在云服务提供商CSP上数据更新的发送方为普通用户CO,接收方为云服务提供商CSP,普通用户CO将数据块m1修改为m1由Block*中的所表示,在底层MHT中的位置是LM,数据更新的步骤为:
步骤7.1.2:普通用户CO通过变色龙哈希函数求出陷门值:
步骤7.1.5.1:根据BlockID,LM找到更新数据的位置Node1;
步骤7.1.5.3:更新MHT树中相应节点的数据信息;
步骤7.1.5.4:发送信息Update_finish={Time,BlockID,LM}给授权用户DO;Time为时间戳;
9.根据权利要求1所述的一种基于区块链的云数据完整性审计方法,其特征在于:所述步骤七中在云服务提供商CSP上数据删除的发送方为为普通用户CO,接收方为云服务提供商CSP,设普通用户CO删除数据块m1,其中m1由Block*中的所表示,m1在底层MHT中的位置是LM,数据删除的步骤为:
步骤7.2.2:普通用户CO通过变色龙哈希函数求出门限值:
步骤7.2.4.1:根据BlockID,LM找到删除数据的位置Node1;
步骤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*中所表示,在底层MHT的位置是LM,数据插入的步骤为:
步骤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.1:根据找到插入数据块的位置Insert_position;
步骤7.3.5.2:验证等式CHash(PK,(b5+σ5),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结果。
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)
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)
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 | 桂林电子科技大学 | 一种支持完整性验证的外包数据安全迁移方法与系统 |
-
2021
- 2021-05-21 CN CN202110558829.3A patent/CN113312574A/zh active Pending
Patent Citations (3)
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)
Title |
---|
周坚 等: "基于嵌套Merkle Hash tree 区块链的云数据动态审计模型", 《计算机应用》 * |
Cited By (14)
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 |