CN114726582B - 基于区块链的外包数据完整性验证中的公平支付方法 - Google Patents

基于区块链的外包数据完整性验证中的公平支付方法 Download PDF

Info

Publication number
CN114726582B
CN114726582B CN202210232195.7A CN202210232195A CN114726582B CN 114726582 B CN114726582 B CN 114726582B CN 202210232195 A CN202210232195 A CN 202210232195A CN 114726582 B CN114726582 B CN 114726582B
Authority
CN
China
Prior art keywords
data file
data
cloud server
identifier
owner
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.)
Active
Application number
CN202210232195.7A
Other languages
English (en)
Other versions
CN114726582A (zh
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.)
Xian University of Technology
Original Assignee
Xian University of 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 Xian University of Technology filed Critical Xian University of Technology
Priority to CN202210232195.7A priority Critical patent/CN114726582B/zh
Publication of CN114726582A publication Critical patent/CN114726582A/zh
Application granted granted Critical
Publication of CN114726582B publication Critical patent/CN114726582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开的基于区块链的外包数据完整性验证中的公平支付方法,包括以下步骤:步骤1、建立包括由数据拥有者DO、云服务器CS、区块链和智能合约组成的***,***初始化;步骤2、数据文件外包存储处理;步骤3、数据文件验证支付,如果数据没有被损坏,那么直接由步骤3数据文件验证支付进入步骤5;否则执行步骤3数据文件验证支付,依次进入步骤4及步骤5;步骤4.索赔阶段;步骤5.数据文件更新。该方法实现了数据拥有者和云服务器之间的公平支付。

Description

基于区块链的外包数据完整性验证中的公平支付方法
技术领域
本发明属于密码学与信息安全技术领域,具体涉及一种基于区块链的外包数据完整性验证中的公平支付方法。
背景技术
随着大数据时代的到来,用户和企业的数据量不断增长,这给本地资源受限的用户和企业带来很多负担。外包服务作为一种新型商业模式,可以解决资源受限用户的计算和存储问题。当前,外包服务中,云存储吸引了越来越多的用户和企业,他们将大量数据存储到云服务器,以节省本地的存储空间,但是用户需要向云服务器支付相应的服务费用。目前,现有的公平支付方案大多采用传统的支付机制并且要依赖于可信第三方。然而第三方的存在会对***造成潜在的威胁,例如第三方可能会与云服务器串通欺骗数据拥有者的服务费以及第三方的存在会消耗巨大的计算能力。所以,进一步研究消除第三方的研究具有重要意义。
2008年中本聪团队首次引入区块链技术以来,很多研究人员开始把区块链技术应用在各个方面进一步研究。区块链是一个去中心化的,开放的,自治的,不可篡改的,匿名的分布式账本技术,它的去中心化的结构在现实中可以节省很多的中介花销。1995年NickSzabo首次提出智能合约的概念,区块链中的智能合约是两方或多方之间的一个协议,由计算机代码执行。智能合约是区块链应用中最重要的功能之一,它实现了无需第三方的可信交易。基于以上特性,将区块链技术和智能合约应用到安全外包服务公平支付方法具有重要意义。
近年来,大量学者已经把区块链技术的去中心、不可篡改等特性融入到支付方案中解决双方之间的不公平问题。但是已有研究中,要么只是提出一些框架,而这些框架只适用于一部分服务,具有局限性。另一方面,一些方案并没有具体实现用户和云服务器之间的公平支付。因此研究云存储中基于区块链的去中心化的公平支付方法具有很大意义。
发明内容
本发明的目的是提供一种基于区块链的外包数据完整性验证中的公平支付方法,实现了数据拥有者和云服务器之间的公平支付。
本发明所采用的技术方案是,基于区块链的外包数据完整性验证中的公平支付方法,包括以下步骤:
步骤1、建立包括由数据拥有者DO、云服务器CS、区块链和智能合约组成的***,***初始化;
步骤2、数据文件外包存储处理;
步骤3、数据文件验证支付,如果数据没有被损坏,那么直接由步骤3数据文件验证支付进入步骤5;否则执行步骤3数据文件验证支付,依次进入步骤4及步骤5;
步骤4.索赔阶段;
步骤5.数据文件更新。
本发明的特征还在于,
步骤1具体按照以下步骤实施:
步骤1.1、数据拥有者DO从密钥空间SK中选择对称加密算法AES的密钥K,秘密选择随机数集合r,其中r={rj},1≤j≤n,rj表示随机数集合r中的一个随机数且数据拥有者DO对随机数集合r保密;
步骤1.2、数据拥有者DO在以太坊区块链上部署验证支付智能合约并调用合约方法storeDeposit(depositDO)向此合约中存放足够的服务费,depositDO表示预先设定好的服务费数量;
步骤1.3、云服务器CS在以太坊区块链上部署惩罚智能合约并调用合约方法storeDeposit(depositCS)向合约中存放足够数量的赔偿金,depositCS表示预先设定好的赔偿金数量;后续阶段,如果云服务器CS损坏了数据拥有者DO上传的数据文件密文的情况下,由数据拥有者DO调用惩罚智能合约方法向云服务器CS索要赔偿,从而保证数据拥有者DO和云服务器CS之间支付的公平性。
步骤2具体按照以下步骤实施:
步骤2.1:设数据拥有者DO持有的数据文件为DF;数据拥有者DO对数据文件DF计算标识符df=H(DF),划分数据文件DF={fi},1≤i≤n;
数据拥有者DO为每个数据文件fi生成数据文件标识符di,其中di=H(fi),最后得到数据文件标识符集合D={di},1≤i≤n;注意DF的标识符df和数据文件标识符di都是唯一的;
数据拥有者DO对每个数据文件fi使用对称加密算法AES的密钥K计算密文ci=AES.Enc(K,fi),最后得到数据文件密文集合C={ci},1≤i≤n;
数据拥有者DO使用数据拥有者的私钥skDO对DF的标识符df签名得到α=SigskDO(df),对每个数据文件密文ci和对应的数据文件标识符di签名得到σi=SigskDO(ci,di),最后获得签名集合β={σi},1≤i≤n;
数据拥有者DO对数据文件密文ci和对应数据文件标识符di使用安全哈希函数H计算哈希,最后获得哈希集合Htag={hi=H(ci,di)},1≤i≤n,hi表示由数据文件密文ci和对应数据文件标识符di计算的n个哈希中的其中一个;最终,数据拥有者DO把数据包S={DOID,df,C,D,α,β}上传至云服务器CS,其中DOID表示数据拥有者的标识符、df表示DF的标识符、C表示数据文件密文集合、D表示数据文件标识符集合、α表示对df签名、β表示数据文件密文ci和对应的数据文件标识符di签名构成的集合;
步骤2.2:收到数据拥有者DO上传的数据包S={DOID,df,C,D,α,β}之后,云服务器CS把数据拥有者的标识符DOID记录到快速查找表T对应的key字段;
云服务器CS使用数据拥有者的公钥pkDO验证签名α是否成立,成立云服务器CS把DF的标识符df存入快速查找表T对应的value;云服务器CS使用数据拥有者的公钥pkDO验证签名集合β中的每个签名σi=SigskDO(ci,di)是否成立,成立则云服务器CS把数据文件密文ci和对应的数据文件标识符di存入快速查找表T对应的value;如果验证不成立,云服务器CS拒绝存储;当存储好之后,云服务器CS计算每个数据文件密文ci和对应的数据文件标识符di的哈希hi'=H(ci,di),最后获得哈希集合Htag'={hi'=H(ci,di)},1≤i≤n;其次云服务器CS使用云服务器的私钥skCS对哈希集合Hta'g中的每个哈希hi'签名得到σ(hi)=Sigskcs(hi′),最终得到签名集合α'={σ(hi)},1≤i≤n;云服务器CS对DF的标识符df计算哈希得到ρ'=H(df),使用云服务器的私钥skCS对ρ'签名得到γ=SigskCS(ρ'),最后云服务器CS把签名集合α'中的每个签名和签名γ存入区块链,并记录交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id;
步骤2.3:云服务器CS把步骤2.2中交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ发送给数据拥有者DO,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id;
步骤2.4:一旦收到步骤2.3交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ后,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id,数据拥有者DO就会去区块链上读取交易最终得到签名集合α'={σ(hi)},1≤i≤n和签名γ=SigskCS(ρ');
数据拥有者DO使用云服务器的公钥pkCS验证签名γ和验证每个签名σ(hi)=SigskCS(hi')是否成立,验证通过之后获得哈希ρ'=H(df)和哈希集合Htag'={hi'=H(ci,di)},1≤i≤n,hi表示由数据文件密文ci和对应数据文件标识符di计算的n个哈希中的其中一个;
数据拥有者DO重新计算ρ=H(df),其中ρ表示使用安全哈希函数H对DF的标识符df计算的哈希值,然后数据拥有者DO比较步骤2.1中Htag中的每个哈希值是否和Htag'中的哈希值一致即hi=hi'其中i∈[1,n]、哈希值ρ'是否和ρ一致即ρ'=ρ;如果验证结果正确,则证明数据文件密文ci,数据文件标识符di和DF的标识符df已经成功存储至云服务器CS建立的快速查找表T;
步骤2.5:当步骤2.1、2.2、2.3和2.4成功执行之后,云服务器CS返回给数据拥有者DO数据文件密文的存放路径集合sp={DOID/df/(di),1≤i≤n},其中DOID表示数据拥有者的标识符、df表示DF的标识符、di表示数据文件标识符且di可以有多个,这样的存放路径可以保证云服务器CS快速查找到数据拥有者DO上传的数据文件密文的存放位置;
步骤3具体按照以下步骤实施:
步骤3.1:数据拥有者DO使用安全哈希函数H对随机数集合r中任选的随机数rj,j∈[1,n]和发起挑战请求的数据文件标识符集合D'={di},1≤i≤c中的数据文件标识符对应的每个数据文件密文ci计算哈希hi”=H(rj,ci),最后获得哈希集合Htag″={hi″=H(rj,ci)},1≤i≤c;然后数据拥有者DO计算结果哈希值result=H(h1”||h2”,...,hc”),对结果哈希值result生成标识符rdh=H(result),最终数据拥有者DO调用验证支付智能合约中的方法storeH(result,rdh)把结果哈希值result和标识符rdh存储到区块链;
步骤3.2:数据拥有者DO随机选择一个挑战请求chal=(DOID,df,D',rj),其中发起挑战请求的数据文件标识符集合D'={d1,d2,...,dc},也就是说D'中包含随机选择的c个数据文件标识符,rj,j∈[1,n]是从集合r中随机选择的一个随机数;数据拥有者DO向云服务器CS发送挑战请求chal,请求验证发起挑战请求的数据文件标识符集合D'中包含的c个数据文件密文的正确性与完整性;
步骤3.3:一旦云服务器CS收到步骤3.2的挑战请求chal后,就会根据数据拥有者的标识符DOID、DF的标识符df和发起挑战请求的数据文件标识符集合D'到快速查找表T中查找并获得D'中包含的c个数据文件标识符对应的数据文件密文{c1,c2,...,cc};云服务器CS对每个数据文件密文计算哈希hi”'=H(rj,ci),最终获得哈希集合Htag”'={hi”'=H(rj,ci)},1≤i≤c,其中rj,j∈[1,n]是发起挑战请求的chal中选择的一个随机数,ci是发起挑战请求的chal中数据文件标识符集合D'包含的c个数据文件密文;然后云服务器CS根据上述计算的c个哈希hi”'计算结果哈希标记result'=H(h1”'||h2”',...,hc”');最后云服务器CS调用验证支付智能合约中的方法verity(rdh,accountCS,result',fee)验证步骤3.1中数据拥有者DO存入区块链的结果哈希值result是否和结果哈希标记result'一致即result=result',fee是预先定义好给云服务器CS支付的服务费;如果验证结果相等即返回true,那么验证支付智能合约自动给云服务器CS支付相应数据存储服务费。支付完成后进入步骤5数据文件更新阶段;如果验证结果不相等即返回false,进入步骤4索赔阶段,最后进入步骤5数据文件更新阶段。
步骤4具体按照以下步骤实施:
云服务器CS存在恶意行为,此时,数据拥有者DO向云服务器CS发起索要正确文件请求,如果请求失败,由数据拥有者DO直接调用惩罚智能合约方法惩罚云服务器CS;作为惩罚,云服务器CS存入惩罚智能合约中的赔偿金会自动执行返回给数据拥有者DO。
数据拥有者和云服务器CS存在的恶意行为有两种情况:
情况1:我们的支付方案是在结果验证正确之后由验证支付智能合约立即向云服务器CS支付;
情况2:只要云服务器CS存在恶意行为,那么直接由数据拥有者DO调用惩罚合约方法punishCS(accountDO,intervalTime,punishFee,startTime)目的是获得相应赔偿。
步骤5具体按照以下步骤实施:
实际使用场景中,数据拥有者DO对上传到云服务器CS的文件必然有添加、修改和删除的需求,因此考虑以下3种情况:
情况1:添加文件:数据拥有者DO产生新数据文件newFile={nf1,nf2,...,nfn}时,首先数据拥有者DO生成newFile的标识符nf;对每个数据文件nfi生成标识符得到数据文件标识符集合D”={nd1,nd2,...,ndn};对每个数据文件nfi计算密文得到数据文件密文集合C'={nc1,nc2,...,ncn};使用数据拥有者的私钥skDO对newFile的标识符nf签名得到β1=SigskDO(nf),对每个数据文件密文nci和对应的数据文件标识符ndi签名最终得到签名集合θ1={σi1},1≤i1≤n,其中σi1=SigskDO(nci,ndi);之后,数据拥有者DO给云服务器CS发送添加请求addFile=(DOID,nf,β11,C',D”),CS收到添加请求后,使用数据拥有者的公钥pkDO验证签名β1和验证签名集合θ1中的每个签名σi1=SigskDO(nci,ndi)是否成立,全部验证通过后就会根据数据拥有者的标识符DOID在快速查找表T中查找对应的存储位置,然后把newFile的标识符nf、数据文件密文集合C'中的每个数据文件密文和数据文件标识符集合D”中的每个数据文件标识符存储到快速查找表T的value;如果验证不通过,云服务器CS拒绝存储;
情况2:删除文件:数据拥有者DO想要删除数据文件ddfj时,首先数据拥有者DO计算数据文件ddfj的标识符是ddfdj;然后,数据拥有者DO给云服务器CS发送一个删除请求removeFile=(DOID,rf,ddfdj),其中DOID表示数据拥有者的标识符、rf表示数据文件ddfj的原始文件标识符且删除请求中可以包含多个数据文件标识符;当云服务器CS收到删除请求时,就会根据数据拥有者的标识符DOID和原始文件标识符rf在快速查找表T中查找对应的数据文件标识符ddfdj,找到之后删除数据文件标识符ddfdj和数据文件标识符ddfdj对应的数据文件密文;
情况3:修改文件:数据拥有者DO修改数据文件mdfj成mdfj'时,首先数据拥有者DO计算数据文件mdfj'的密文为mdfcj'、标识符为mdfdj';这里mdfj的密文是mdfcj、数据文件标识符是mdfdj;随后,数据拥有者DO给云服务器CS发送修改请求alterFile(DOID,af,mdfdj,mdfdj',mdfcj'),其中DOID表示数据拥有者的标识符、af表示mdfj的原始数据文件标识符且修改请求中可以包含多个数据文件标识符和数据文件密文;云服务器CS收到修改请求后,就会根据数据拥有者的标识符DOID和原始文件标识符af在快速查找表T中查找对应的数据文件标识符mdfdj,找到之后使用数据文件标识符mdfdj'替换数据文件标识符mdfdj,数据文件密文mdfcj'替换数据文件密文mdfcj
本发明的有益效果是:
(1)本发明方法引入了以太坊区块链,取消了第三方审计师,利用以太坊区块链技术实现了去中心化,实现了数据拥有者和云服务器之间的公平支付。
(2)本发明方法将云存储,区块链,AES算法和智能合约结合起来,针对云存储中数据可能的隐私泄露,采用对称加密技术对外包数据进行加密,确保了数据的隐私性;将轻量级的数据文件哈希值存储到以太坊区块链,利用区块链不可篡改的特性保证了云存储***中数据的正确性与完整性。同时在不引入任何第三方的情况下,实现了数据文件的快速验证。
(3)本发明方法针对数据拥有者和云服务器之间存在的不信任会导致公平支付的问题,提出了一种奖惩机制,利用智能合约实现了诚实的云服务器能获得数据拥有者的数据存储服务费,数据拥有者能获得恶意云服务器的赔偿,从而有效保证了数据拥有者和云服务器之间的信任问题。
(4)实际使用场景中,数据拥有者必然会对存储到云服务器的数据文件进行增加,删除和修改的操作,因此本方法还支持数据文件的动态更新。
附图说明
图1为本发明方法步骤1中建立的***模型图;
图2为本发明方法中建立***阶段的顺序图;
图3为本发明方法中数据文件外包存储处理阶段的顺序图;
图4为本发明方法中数据文件验证支付、索赔阶段和数据文件更新阶段的顺序图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明提供一种基于区块链的外包数据完整性验证中的公平支付方法,如图1-4所示,具体按照以下步骤实施:
步骤1.建立包括由数据拥有者DO、云服务器CS、区块链和智能合约组成的***,***初始化,如图1-2所示;
本发明的***模型图如1所示。包括如下角色:
数据拥有者DO:负责划分数据文件,对划分后的数据文件进行加密;上传数据文件密文、数据文件标识符、数据文件密文和对应的数据文件标识符构建的签名至云服务器CS。
云服务器CS:负责建立一个快速查找表T(key,value);使用数据拥有者的公钥pkDO验证数据拥有者DO上传的数据文件和数据文件标识符的签名;当数据拥有者DO发起挑战请求时,云服务器CS调用验证支付智能合约方法验证数据文件的正确性与完整性;
区块链:数据拥有者DO和云服务器CS在区块链上分别部署验证支付智能合约和惩罚智能合约,通过调用验证支付智能合约方法把数据文件结果哈希值和标识符写入区块链;
步骤1.1:数据拥有者DO从密钥空间SK中选择对称加密算法AES的密钥K,秘密选择随机数集合r,其中r={rj},1≤j≤n,rj表示随机数集合r中的一个随机数且数据拥有者DO对随机数集合r保密;
云服务器CS建立一个快速查找表T(key,value)以支持快速查找;快速查找表T(key,value)的结构如表1所示;其中key字段用来存放数据拥有者的标识符DOID,value字段用来存放数据拥有者DO上传的DF的标识符df、数据文件标识符di和数据文件密文ci
数据拥有者DO和云服务器CS分别选择公私密钥对(pkDO,skDO)和(pkCS,skCS),其中pkDO表示数据拥有者的公钥、skDO表示数据拥有者的私钥、pkCS表示云服务器的公钥、skCS表示云服务器的私钥,并将数据拥有者的公钥pkDO发布给云服务器CS,将云服务器的公钥pkCS公开;***初始化H为一个安全哈希函数;
表1快速查找表T结构
步骤1.2:数据拥有者DO在以太坊区块链上部署验证支付智能合约并调用合约方法storeDeposit(depositDO)向此合约中存放足够的服务费,depositDO表示预先设定好的服务费数量。验证支付智能合约主要用于验证数据拥有者DO上传到云服务器CS的数据文件密文是否被损坏以及在云服务器CS完整保存数据文件密文的情况下向云服务器CS支付相应的服务费;
步骤1.3:云服务器CS在以太坊区块链上部署惩罚智能合约并调用合约方法storeDeposit(depositCS)向合约中存放足够数量的赔偿金,depositCS表示预先设定好的赔偿金数量。后续阶段,如果云服务器CS损坏了数据拥有者DO上传的数据文件密文的情况下,由数据拥有者DO调用惩罚智能合约方法向云服务器CS索要赔偿,从而保证数据拥有者DO和云服务器CS之间支付的公平性。
步骤2.数据文件外包存储处理,具体按照以下步骤实施,如图3所示:
步骤2.1:设数据拥有者DO持有的数据文件为DF;数据拥有者DO对数据文件DF计算标识符df=H(DF),划分数据文件DF={fi},1≤i≤n;
数据拥有者DO为每个数据文件fi生成数据文件标识符di,其中di=H(fi),最后得到数据文件标识符集合D={di},1≤i≤n;注意DF的标识符df和数据文件标识符di都是唯一的;
数据拥有者DO对每个数据文件fi使用对称加密算法AES的密钥K计算密文ci=AES.Enc(K,fi),最后得到数据文件密文集合C={ci},1≤i≤n;
数据拥有者DO使用数据拥有者的私钥skDO对DF的标识符df签名得到α=SigskDO(df),对每个数据文件密文ci和对应的数据文件标识符di签名得到σi=SigskDO(ci,di),最后获得签名集合β={σi},1≤i≤n;
表2数据文件对应关系
为了后续进行快速验证,数据拥有者DO对数据文件密文ci和对应数据文件标识符di使用安全哈希函数H计算哈希,最后获得哈希集合Htag={hi=H(ci,di)},1≤i≤n,hi表示由数据文件密文ci和对应数据文件标识符di计算的n个哈希中的其中一个;最终,数据拥有者DO把数据包S={DOID,df,C,D,α,β}上传至云服务器CS,其中DOID表示数据拥有者的标识符、df表示DF的标识符、C表示数据文件密文集合、D表示数据文件标识符集合、α表示对df签名、β表示数据文件密文ci和对应的数据文件标识符di签名构成的集合。注意数据文件fi、数据文件密文ci、数据文件标识符di之间存在对应关系如表2所示。如果知道它们之间的对应关系,在验证数据文件没有被损坏的情况下,DO获取到CS中的数据文件密文,对数据文件密文解密后就能通过在本地存储的DF标识符df、数据文件标识符集合D快速恢复出原始文件。
步骤2.2:收到数据拥有者DO上传的数据包S={DOID,df,C,D,α,β}之后,云服务器CS把数据拥有者的标识符DOID记录到快速查找表T对应的key字段,如表1所示;
云服务器CS使用数据拥有者的公钥pkDO验证签名α是否成立,成立则云服务器CS把DF的标识符df存入快速查找表T对应的value,如表1所示;云服务器CS使用数据拥有者的公钥pkDO验证签名集合β中的每个签名σi=SigskDO(ci,di)是否成立,成立云服务器CS把数据文件密文ci和对应的数据文件标识符di存入快速查找表T对应的value如表1所示;如果验证不成立,云服务器CS拒绝存储。当存储好之后,云服务器CS计算每个数据文件密文ci和对应的数据文件标识符di的哈希hi'=H(ci,di),最后获得哈希集合Htag'={hi'=H(ci,di)},1≤i≤n。其次云服务器CS使用云服务器的私钥skCS对哈希集合Htag'中的每个哈希hi'签名得到σ(hi)=SigskCS(hi′),最终得到签名集合α'={σ(hi)},1≤i≤n。云服务器CS对DF的标识符df计算哈希得到ρ'=H(df),使用云服务器的私钥skCS对ρ'签名得到γ=SigskCS(ρ'),最后云服务器CS把签名集合α'中的每个签名和签名γ存入区块链,并记录交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id;
步骤2.3:云服务器CS把步骤2.2中交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ发送给数据拥有者DO,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id;
步骤2.4:一旦收到步骤2.3交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ后,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id,数据拥有者DO就会去区块链上读取交易最终得到签名集合α'={σ(hi)},1≤i≤n和签名γ=SigskCS(ρ');
数据拥有者DO使用云服务器的公钥pkCS验证签名γ和验证每个签名σ(hi)=SigskCS(hi')是否成立,验证通过之后获得哈希ρ'=H(df)和哈希集合Htag'={hi'=H(ci,di)},1≤i≤n,hi表示由数据文件密文ci和对应数据文件标识符di计算的n个哈希中的其中一个;
数据拥有者DO重新计算ρ=H(df),其中ρ表示使用安全哈希函数H对DF的标识符df计算的哈希值,然后数据拥有者DO比较步骤2.1中Htag中的每个哈希值是否和Htag'中的哈希值一致即hi=hi'其中i∈[1,n]、哈希值ρ'是否和ρ一致即ρ'=ρ;如果验证结果正确,则证明数据文件密文ci,数据文件标识符di和DF的标识符df已经成功存储至云服务器CS建立的快速查找表T。
步骤2.5:当步骤2.1、2.2、2.3和2.4成功执行之后,云服务器CS返回给数据拥有者DO数据文件密文的存放路径集合sp={DOID/df/(di),1≤i≤n},其中DOID表示数据拥有者的标识符、df表示DF的标识符、di表示数据文件标识符且di可以有多个,这样的存放路径可以保证云服务器CS快速查找到数据拥有者DO上传的数据文件密文的存放位置。
步骤3.数据文件验证支付,具体按照以下步骤实施:
步骤3.1:数据拥有者DO使用安全哈希函数H对随机数集合r中任选的随机数rj,j∈[1,n]和发起挑战请求的数据文件标识符集合D'={di},1≤i≤c中的数据文件标识符对应的每个数据文件密文ci计算哈希hi”=H(rj,ci),最后获得哈希集合Htag″={hi″=H(rj,ci)},1≤i≤c。然后数据拥有者DO计算结果哈希值result=H(h1”||h2”,...,hc”),对结果哈希值result生成标识符rdh=H(result),最终数据拥有者DO调用验证支付智能合约中的方法storeH(result,rdh)把结果哈希值result和标识符rdh存储到区块链;
步骤3.2:数据拥有者DO随机选择一个挑战请求chal=(DOID,df,D',rj),其中发起挑战请求的数据文件标识符集合D'={d1,d2,...,dc},也就是说D'中包含随机选择的c个数据文件标识符,rj,j∈[1,n]是从集合r中随机选择的一个随机数;数据拥有者DO向云服务器CS发送挑战请求chal,请求验证发起挑战请求的数据文件标识符集合D'中包含的c个数据文件密文的正确性与完整性。
步骤3.3:一旦云服务器CS收到步骤3.2的挑战请求chal后,就会根据数据拥有者的标识符DOID、DF的标识符df和发起挑战请求的数据文件标识符集合D'到快速查找表T中查找并获得D'中包含的c个数据文件标识符对应的数据文件密文{c1,c2,...,cc};云服务器CS对每个数据文件密文计算哈希hi”'=H(rj,ci),最终获得哈希集合Htag”'={hi”'=H(rj,ci)},1≤i≤c,其中rj,j∈[1,n]是发起挑战请求的chal中选择的一个随机数,ci是发起挑战请求的chal中数据文件标识符集合D'包含的c个数据文件密文;然后云服务器CS根据上述计算的c个哈希hi”'计算结果哈希标记result'=H(h1”'||h2”',...,hc”');最后云服务器CS调用验证支付智能合约中的方法verity(rdh,accountCS,result',fee)验证步骤3.1中数据拥有者DO存入区块链的结果哈希值result是否和结果哈希标记result'一致即result=result',fee是预先定义好给云服务器CS支付的服务费。如果验证结果相等即返回true,那么验证支付智能合约自动给云服务器CS支付相应数据存储服务费;如果验证结果不相等即返回false,进入索赔阶段。
本发明方法中考虑到如果数据拥有者DO和云服务器CS都诚实,那么直接由步骤3数据文件验证支付进入步骤5数据文件更新阶段。否则执行步骤3数据文件验证支付,其次步骤4索赔阶段,最后步骤5数据文件更新阶段。
步骤4.索赔阶段,具体按照以下步骤实施:
步骤4.1:进入此阶段,说明要么云服务器CS篡改了数据拥有者DO上传的数据文件密文,要么云服务器CS上传到验证支付智能合约的数据文件密文和对应数据文件标识符不一致,这都属于云服务器CS恶意的行为。
此时,数据拥有者DO向云服务器CS发起索要正确文件请求,如果请求失败,由数据拥有者DO直接调用惩罚智能合约方法punishCS(accountDO,intervalTime,punishFee,startTime)惩罚云服务器CS。作为惩罚,云服务器CS存入惩罚智能合约中的赔偿金会自动执行返回给数据拥有者DO。这也是下面情况2所说明的。
在本方案中,考虑两种特殊情况,第一种是数据拥有者DO恶意,云服务器CS诚实;第二种是数据拥有者DO诚实,云服务器CS恶意;
情况1:我们的支付方案是在结果验证正确之后由验证支付智能合约立即向云服务器CS支付。因为服务费已经预先存储到了验证支付智能合约,因此数据拥有者DO不愿意支付服务费的情况并不存在。所以,只要云服务器CS是诚实的,那么它就能获得服务费。
情况2:只要云服务器CS存在恶意行为,那么直接由数据拥有者DO调用惩罚合约方法punishCS(accountDO,intervalTime,punishFee,startTime)目的是获得相应赔偿,即使云服务器CS不愿支付赔偿也不可能因为此方法是由数据拥有者DO调用的。因此数据拥有者DO和云服务器CS的公平性得以保证。
步骤5.数据文件更新,数据文件更新阶段具体按照以下步骤实施:
步骤5.1:实际使用场景中,数据拥有者DO对上传到云服务器CS的文件必然有添加、修改和删除的需求,因此考虑以下3种情况:
情况1:添加文件:数据拥有者DO产生新数据文件newFile={nf1,nf2,...,nfn}时,首先数据拥有者DO生成newFile的标识符nf;对每个数据文件nfi生成标识符得到数据文件标识符集合D”={nd1,nd2,...,ndn};对每个数据文件nfi计算密文得到数据文件密文集合C'={nc1,nc2,...,ncn};使用数据拥有者的私钥skDO对newFile的标识符nf签名得到β1=SigskDO(nf),对每个数据文件密文nci和对应的数据文件标识符ndi签名最终得到签名集合θ1={σi1},1≤i1≤n,其中σi1=SigskDO(nci,ndi)。之后,数据拥有者DO给云服务器CS发送添加请求addFile=(DOID,nf,β11,C',D”),CS收到添加请求后,使用数据拥有者的公钥pkDO验证签名β1和验证签名集合θ1中的每个签名σi1=SigskDO(nci,ndi)是否成立,全部验证通过后就会根据数据拥有者的标识符DOID在快速查找表T(如表1所示)中查找对应的存储位置,然后把newFile的标识符nf、数据文件密文集合C'中的每个数据文件密文和数据文件标识符集合D”中的每个数据文件标识符存储到快速查找表T的value。如果验证不通过,云服务器CS拒绝存储。
情况2:删除文件:数据拥有者DO想要删除数据文件ddfj时,首先数据拥有者DO计算数据文件ddfj的标识符是ddfdj。然后,数据拥有者DO给云服务器CS发送一个删除请求removeFile=(DOID,rf,ddfdj),其中DOID表示数据拥有者的标识符、rf表示数据文件ddfj的原始文件标识符且删除请求中可以包含多个数据文件标识符。当云服务器CS收到删除请求时,就会根据数据拥有者的标识符DOID和原始文件标识符rf在快速查找表T中查找对应的数据文件标识符ddfdj,找到之后删除数据文件标识符ddfdj和数据文件标识符ddfdj对应的数据文件密文。
情况3:修改文件:数据拥有者DO修改数据文件mdfj成mdfj'时,首先数据拥有者DO计算数据文件mdfj'的密文为mdfcj'、标识符为mdfdj'。这里mdfj的密文是mdfcj、数据文件标识符是mdfdj。随后,数据拥有者DO给云服务器CS发送修改请求alterFile(DOID,af,mdfdj,mdfdj',mdfcj'),其中DOID表示数据拥有者的标识符、af表示mdfj的原始数据文件标识符且修改请求中可以包含多个数据文件标识符和数据文件密文。云服务器CS收到修改请求后,就会根据数据拥有者的标识符DOID和原始文件标识符af在快速查找表T中查找对应的数据文件标识符mdfdj,找到之后使用数据文件标识符mdfdj'替换数据文件标识符mdfdj,数据文件密文mdfcj'替换数据文件密文mdfcj
实施例
为了分析本发明的相应成本,我们搭建了一个实验环境原型。实验的具体配置为:操作***为Windows10,Linux ubuntu20.04.2.0 LTS。编程语言为Java和Solidity。处理器为Inter(R)Core(TM)i3-3240 CPU 3.40GHz processor,8GB RAM。外部辅助为web3j。web3j是以太坊提供的一个Javascript库,它封装了以太坊的JSON-RPC API,提供了一系列与区块链交互的Javascript对象和函数。
本实验使用以太币进行测试。智能合约被编译并部署在以太坊官方测试网络Ropsten上。接下来我们分析智能合约的创建和执行方法的成本,用来测试公平支付协议的性能。按照以太坊主链的价格形式,1ether≈400USD,并设定1gasPrice≈1Gwei,1Gwei=109wei=10-9ether。
实验工作是使用本发明提出的改进算法分析智能合约的创建和执行方法的成本,从而验证算法的可行性。
表3智能合约成本花费
(1)算法性能评估:
从上表3可以看出本方案Gas的花费情况。验证支付智能合约操作只创建一次,消耗了725511gas,大约0.290美元。惩罚智能合约操作只创建一次,消耗了961541gas,大约0.385美元。数据拥有者DO成功部署合约之后,执行storeDeposit操作,需要花费48635gas,执行storeHash操作,需要消耗90279gas。当数据拥有者DO把数据文件密文存储到云服务器CS之后,为了验证云服务器CS中数据文件的完整性以及给诚实的云服务器CS支付数据存储服务费,执行verity操作,需要花费50970gas,当数据拥有者DO发现存储到云服务器CS中的数据文件密文被损坏之后,执行punishCS操作,花费了50450gas,在验证支付完成之后,如果数据拥有者DO和云服务器CS想退回自己合约中的保证金,分别执行withdrawDO和withdrawCS操作,花费了27122gas和28192gas。由于实际使用场景中,可能对存储到区块链的数据进行删除,此时执行delete操作,而执行delete操作花费了28702gas。总体来看,部署智能合约以及执行相关操作需要花费一定的成本。但是这些花费都在可接受的范围之内,所以花费一定承受范围的成本来保证云存储***的安全性是很有必要的。
(2)性能分析:
本节将比较我们方案和类似方案的性能。表4显示4个方案之间的比较。首先,4个方案都是讨论云存储***中数据的安全问题。我们的数据完整性检测方案中考虑到以下属性:验证节点,数据隐私,公平支付,去中心,数据完整性验证和数据文件的动态更新。其他的方案中要么没有考虑到公平支付,要么方案中只提到了实际场景中应该要实现数据拥有者和云服务器之间的公平支付,但是并未具体实现。除此之外,我们的方案还实现了利用智能合约验证上传到云服务器CS的数据文件的正确性与完整性。
表4四个方案之间比较
方案 完整性 区块链 去中心 公平支付 动态更新 验证节点
Wang yes yes no no no 第三方
Xue yes yes no no no 第三方
Li yes yes yes no yes 用户节点
Our scheme yes yes yes yes yes 智能合约
(3)安全分析:
本发明是基于区块链的外包数据完整性验证中的公平支付方法。本方法虽然增加了智能合约部署和执行的成本,但是从***的安全和性能分析显示算法可以有效解决数据拥有者和云服务器之间的公平支付问题。在本节中,将从以下两个方面对该方法进行评估,分别是安全分析和威胁模型分析。首先介绍云存储***中需要满足的一些安全需求,其次结合几种常见的网络攻击分析本方法。
完整性和正确性:为了确保上传至云服务器CS的数据文件密文的正确性与完整性,数据拥有者DO把结果哈希值result上传到区块链,详细过程见步骤3.1。然后,数据拥有者DO向云服务器CS随机发送一个挑战请求chal来验证存储在云服务器CS的数据文件密文的完整性,一旦收到挑战请求chal=(DOID,df,D',rj),云服务器CS会根据数据拥有者的标识符DOID,DF的标识符df和发起挑战请求的数据文件标识符集合D'到快速查找表T中查找并获得D'中包含的c个数据文件标识符对应的数据文件密文{ci}1≤i≤c。云服务器CS首先计算哈希集合Htag”'={hi”'=H(rj,ci)}1≤i≤c,其中hi”'表示发起挑战请求的chal中的随机数rj和数据文件密文ci计算的哈希,然后计算结果哈希标记result'=H(h1”'||h2”',...,hc”')。最后云服务器CS调用验证支付智能合约中的方法verity(rdh,accountCS,resullt′,fee)验证步骤3.1中数据拥有者DO存入区块链的结果哈希值result是否和结果哈希标记result'相等即result=result'。如果验证结果相等,那么输出true,说明数据是正确的;否则输出false,说明上传到云服务器CS的数据已经被损坏。
公平性:传统的支付方案是数据拥有者DO先支付费用,然后享受云服务器CS的服务,这样难以保证交易双方的公平性。本方法中如果数据拥有者DO上传到云服务器CS的数据文件没有被损坏,那么通过智能合约中存储的保证金向云服务器CS支付服务费。如果数据拥有者DO上传至云服务器CS的数据被损坏,那么数据拥有者DO能调用合约方法获得相应赔偿。因此,本发明所提方法能保证数据拥有者DO和云服务器CS之间的公平性。
可靠性:本方法中云服务器CS存储的数据文件密文是否完整,是由部署在区块链上的验证支付智能合约来实现验证的。目前以太坊使用工作量证明(PoW)共识协议防止区块链被篡改。工作量证明***需要解决一个复杂的数学难题以创建新的区块。解决难题需要大量算力。一个试图想要篡改智能合约的云服务器CS必须拥有超过50%的以太坊算力。所以,如果一个恶意云服务器CS想让智能合约的状态发生改变那是不可能的。因此,我们方法的可靠性得以保证。
不可篡改性:本方法保证了上传到云服务器CS的数据文件密文不能被任何恶意云服务器CS修改。因为数据拥有者把自己拥有的结果哈希值存储到了区块链,而区块链不可篡改的特性保证了云服务器CS中数据文件密文不能被任意修改。除非有人拥有超过50%的以太坊算力。
数据隐私性:数据文件上传到云服务器CS之前,数据拥有者DO进行了加密处理。即使恶意云服务器CS能获得加密数据文件,文件原始信息也不会被泄露。因此,本方法可以降低数据隐私泄露的风险。
中间人攻击:假设一个攻击者可以截取到数据拥有者上传到云服务器CS的数据文件密文信息,也可以截取到数据拥有者DO上传的签名信息,但是由于数据文件是经过AES加密算法加密过的,攻击者没有解密密钥,所以也无法获取到数据文件的原始信息。攻击者即时可以获取到签名信息,因为攻击者没有数据拥有者的公钥pkDO,因此也无法对消息进行任何修改。
欺骗攻击:我们的云存储***中,数据拥有者DO和云服务器CS的每一次交易都会被记录在以太坊区块链上,并且会以事件的方式广播到全网,攻击者不可能拥有超过全网51%的算力来修改以太坊区块链上的交易记录从而达到欺骗的目的。
消息重放攻击:攻击者把数据拥有者DO已经存储到云服务器CS的数据文件密文再次上传给云服务器CS,由于云服务器CS会根据数据拥有者的标识符DOID查看数据是否已经存储在快速查找***T以及会根据数据拥有者的公钥pkDO进行验证,所以攻击者不可能进行欺诈。
拒绝服务攻击(DDos):由于区块链是去中心化的、点对点的,区块链中的数据会进行多点共享,如果其中一个节点失效,那么将在此节点上无法进行交易,但是其他节点不受影响。

Claims (6)

1.基于区块链的外包数据完整性验证中的公平支付方法,其特征在于,包括以下步骤:
步骤1、建立包括由数据拥有者DO、云服务器CS、区块链和智能合约组成的***,***初始化;
步骤2、数据文件外包存储处理;
步骤2具体按照以下步骤实施:
步骤2.1:设数据拥有者DO持有的数据文件为DF;数据拥有者DO对数据文件DF计算标识符df=H(DF),划分数据文件DF={fi},1≤i≤n;
数据拥有者DO为每个数据文件fi生成数据文件标识符di,其中di=H(fi),最后得到数据文件标识符集合D={di},1≤i≤n;注意DF的标识符df和数据文件标识符di都是唯一的;
数据拥有者DO对每个数据文件fi使用对称加密算法AES的密钥K计算密文ci=AES.Enc(K,fi),最后得到数据文件密文集合C={ci},1≤i≤n;
数据拥有者DO使用数据拥有者的私钥skDO对DF的标识符df签名得到α=SigskDO(df),对每个数据文件密文ci和对应的数据文件标识符di签名得到σi=SigskDO(ci,di),最后获得签名集合β={σi},1≤i≤n;
数据拥有者DO对数据文件密文ci和对应数据文件标识符di使用安全哈希函数H计算哈希,最后获得哈希集合Htag={hi=H(ci,di)},1≤i≤n,hi表示由数据文件密文ci和对应数据文件标识符di计算的n个哈希中的其中一个;最终,数据拥有者DO把数据包S={DOID,df,C,D,α,β}上传至云服务器CS,其中DOID表示数据拥有者的标识符、df表示DF的标识符、C表示数据文件密文集合、D表示数据文件标识符集合、α表示对df签名、β表示数据文件密文ci和对应的数据文件标识符di签名构成的集合;
步骤2.2:收到数据拥有者DO上传的数据包S={DOID,df,C,D,α,β}之后,云服务器CS把数据拥有者的标识符DOID记录到快速查找表T对应的key字段;
云服务器CS使用数据拥有者的公钥pkDO验证签名α是否成立,成立则云服务器CS把DF的标识符df存入快速查找表T对应的value;云服务器CS使用数据拥有者的公钥pkDO验证签名集合β中的每个签名σi=SigskDO(ci,di)是否成立,成立则云服务器CS把数据文件密文ci和对应的数据文件标识符di存入快速查找表T对应的value;如果验证不成立,云服务器CS拒绝存储;当存储好之后,云服务器CS计算每个数据文件密文ci和对应的数据文件标识符di的哈希hi'=H(ci,di),最后获得哈希集合Htag'={hi'=H(ci,di)},1≤i≤n;其次云服务器CS使用云服务器的私钥skCS对哈希集合Htag'中的每个哈希hi'签名得到σ(hi)=SigskCS(hi'),最终得到签名集合α'={σ(hi)},1≤i≤n;云服务器CS对DF的标识符df计算哈希得到ρ'=H(df),使用云服务器的私钥skCS对ρ'签名得到γ=SigskCS(ρ'),最后云服务器CS把签名集合α'中的每个签名和签名γ存入区块链,并记录交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id;
步骤2.3:云服务器CS把步骤2.2中交易id的集合txidx={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ发送给数据拥有者DO,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id;
步骤2.4:一旦收到步骤2.3交易id的集合txids={txidi,txidk},σ(h1)≤i≤σ(hn),k=γ后,其中txidi表示上传签名集合α'中的n个签名到区块链得到的交易id,txidk表示上传签名γ到区块链得到的交易id,数据拥有者DO就会去区块链上读取交易最终得到签名集合α'={σ(hi)},1≤i≤n和签名γ=SigskCS(ρ');
数据拥有者DO使用云服务器的公钥pkCS验证签名γ和验证每个签名σ(hi)=SigskCS(hi')是否成立,验证通过之后获得哈希ρ'=H(df)和哈希集合Htag'={hi'=H(ci,di)},1≤i≤n,hi表示由数据文件密文ci和对应数据文件标识符di计算的n个哈希中的其中一个;
数据拥有者DO重新计算ρ=H(df),其中ρ表示使用安全哈希函数H对DF的标识符df计算的哈希值,然后数据拥有者DO比较步骤2.1中Htag中的每个哈希值是否和Htag'中的哈希值一致即hi=hi'其中i∈[1,n]、哈希值ρ'是否和ρ一致即ρ'=ρ;如果验证结果正确,则证明数据文件密文ci,数据文件标识符di和DF的标识符df已经成功存储至云服务器CS建立的快速查找表T;
步骤2.5:当步骤2.1、2.2、2.3和2.4成功执行之后,云服务器CS返回给数据拥有者DO数据文件密文的存放路径集合sp={DOID/df/(di),1≤i≤n},其中DOID表示数据拥有者的标识符、df表示DF的标识符、di表示数据文件标识符且di可以有多个,这样的存放路径可以保证云服务器CS快速查找到数据拥有者DO上传的数据文件密文的存放位置;
步骤3、数据文件验证支付,如果数据没有被损坏,那么直接由步骤3数据文件验证支付进入步骤5;否则执行步骤3数据文件验证支付,依次进入步骤4及步骤5;
步骤4.索赔阶段;
步骤5.数据文件更新。
2.根据权利要求1所述的基于区块链的外包数据完整性验证中的公平支付方法,其特征在于,步骤1具体按照以下步骤实施:
步骤1.1、数据拥有者DO从密钥空间SK中选择对称加密算法AES的密钥K,秘密选择随机数集合r,其中r={rj},1≤j≤n,rj表示随机数集合r中的一个随机数且数据拥有者DO对随机数集合r保密;
步骤1.2、数据拥有者DO在以太坊区块链上部署验证支付智能合约并调用合约方法storeDeposit(depositDO)向此合约中存放足够的服务费,depositDO表示预先设定好的服务费数量;
步骤1.3、云服务器CS在以太坊区块链上部署惩罚智能合约并调用合约方法storeDeposit(depositCS)向合约中存放足够数量的赔偿金,depositCS表示预先设定好的赔偿金数量;后续阶段,如果云服务器CS损坏了数据拥有者DO上传的数据文件密文的情况下,由数据拥有者DO调用惩罚智能合约方法向云服务器CS索要赔偿,从而保证数据拥有者DO和云服务器CS之间支付的公平性。
3.根据权利要求1所述的基于区块链的外包数据完整性验证中的公平支付方法,其特征在于,步骤3具体按照以下步骤实施:
步骤3.1:数据拥有者DO使用安全哈希函数H对随机数集合r中任选的随机数rj,j∈[1,n]和发起挑战请求的数据文件标识符集合D'={di},1≤i≤c中的数据文件标识符对应的每个数据文件密文ci计算哈希hi”=H(rj,ci),最后获得哈希集合Htag″={hi″=H(rj,ci)},1≤i≤c;然后数据拥有者DO计算结果哈希值result=H(h1”||h2”,...,hc”),对结果哈希值result生成标识符rdh=H(result),最终数据拥有者DO调用验证支付智能合约中的方法storeH(result,rdh)把结果哈希值result和标识符rdh存储到区块链;
步骤3.2:数据拥有者DO随机选择一个挑战请求chal=(DOID,df,D',rj),其中发起挑战请求的数据文件标识符集合D'={d1,d2,...,dc},也就是说D'中包含随机选择的c个数据文件标识符,rj,j∈[1,n]是从集合r中随机选择的一个随机数;数据拥有者DO向云服务器CS发送挑战请求chal,请求验证发起挑战请求的数据文件标识符集合D'中包含的c个数据文件密文的正确性与完整性;
步骤3.3:一旦云服务器CS收到步骤3.2的挑战请求chal后,就会根据数据拥有者的标识符DOID、DF的标识符df和发起挑战请求的数据文件标识符集合D'到快速查找表T中查找并获得D'中包含的c个数据文件标识符对应的数据文件密文{c1,c2,...,cc};云服务器CS对每个数据文件密文计算哈希hi”'=H(rj,ci),最终获得哈希集合Htag”'={hi”'=H(rj,ci)},1≤i≤c,其中rj,j∈[1,n]是发起挑战请求的chal中选择的一个随机数,ci是发起挑战请求的chal中数据文件标识符集合D'包含的c个数据文件密文;然后云服务器CS根据上述计算的c个哈希hi”'计算结果哈希标记result'=H(h1”'||h2”',...,hc”');最后云服务器CS调用验证支付智能合约中的方法verity(rdh,accountCS,result',fee)验证步骤3.1中数据拥有者DO存入区块链的结果哈希值result是否和结果哈希标记result'一致即result=result',fee是预先定义好给云服务器CS支付的服务费;如果验证结果相等即返回true,那么验证支付智能合约自动给云服务器CS支付相应数据存储服务费进入步骤5数据文件更新阶段;如果验证结果不相等即返回false,进入步骤4索赔阶段,最后进入步骤5数据文件更新阶段。
4.根据权利要求1所述的基于区块链的外包数据完整性验证中的公平支付方法,其特征在于,步骤4具体按照以下步骤实施:
云服务器CS存在恶意行为,此时,数据拥有者DO向云服务器CS发起索要正确文件请求,如果请求失败,由数据拥有者DO直接调用惩罚智能合约方法惩罚云服务器CS;作为惩罚,云服务器CS存入惩罚智能合约中的赔偿金会自动执行返回给数据拥有者DO。
5.根据权利要求4所述的基于区块链的外包数据完整性验证中的公平支付方法,其特征在于,数据拥有者和云服务器CS存在的恶意行为有两种情况:
情况1:我们的支付方案是在结果验证正确之后由验证支付智能合约立即向云服务器CS支付;
情况2:只要云服务器CS存在恶意行为,那么直接由数据拥有者DO调用惩罚合约方法punishCS(accountDO,intervalTime,punishFee,startTime)目的是获得相应赔偿。
6.根据权利要求1所述的基于区块链的外包数据完整性验证中的公平支付方法,其特征在于,步骤5具体按照以下步骤实施:
实际使用场景中,数据拥有者DO对上传到云服务器CS的文件必然有添加、修改和删除的需求,因此考虑以下3种情况:
情况1:添加文件:数据拥有者DO产生新数据文件newFile={nf1,nf2,...,nfn}时,首先数据拥有者DO生成newFile的标识符nf;对每个数据文件nfi生成标识符得到数据文件标识符集合D”={nd1,nd2,...,ndn};对每个数据文件nfi计算密文得到数据文件密文集合C'={nc1,nc2,...,ncn};使用数据拥有者的私钥skDO对newFile的标识符nf签名得到β1=SigskDO(nf),对每个数据文件密文nci和对应的数据文件标识符ndi签名最终得到签名集合θ1={σi1},1≤i1≤n,其中σi1=SigskDO(nci,ndi;之后,数据拥有者DO给云服务器CS发送添加请求addFile=(DOID,nf,β11,C',D”),CS收到添加请求后,使用数据拥有者的公钥pkDO验证签名β1和验证签名集合θ1中的每个签名σi1=SigskDO(nci,ndi)是否成立,全部验证通过后就会根据数据拥有者的标识符DOID在快速查找表T中查找对应的存储位置,然后把newFile的标识符nf、数据文件密文集合C'中的每个数据文件密文和数据文件标识符集合D”中的每个数据文件标识符存储到快速查找表T的value;如果验证不通过,云服务器CS拒绝存储;
情况2:删除文件:数据拥有者DO想要删除数据文件ddfj时,首先数据拥有者DO计算数据文件ddfj的标识符是ddfdj;然后,数据拥有者DO给云服务器CS发送一个删除请求removeFile=(DOID,rf,ddfdj),其中DOID表示数据拥有者的标识符、rf表示数据文件ddfj的原始文件标识符且删除请求中可以包含多个数据文件标识符;当云服务器CS收到删除请求时,就会根据数据拥有者的标识符DOID和原始文件标识符rf在快速查找表T中查找对应的数据文件标识符ddfdj,找到之后删除数据文件标识符ddfdj和数据文件标识符ddfdj对应的数据文件密文;
情况3:修改文件:数据拥有者DO修改数据文件mdfj成mdfj'时,首先数据拥有者DO计算数据文件mdfj'的密文为mdfcj'、标识符为mdfdj';这里mdfj的密文是mdfcj、数据文件标识符是mdfdj;随后,数据拥有者DO给云服务器CS发送修改请求alterFile(DOID,af,mdfdj,mdfdj',mdfcj'),其中DOID表示数据拥有者的标识符、af表示mdfj的原始数据文件标识符且修改请求中可以包含多个数据文件标识符和数据文件密文;云服务器CS收到修改请求后,就会根据数据拥有者的标识符DOID和原始文件标识符af在快速查找表T中查找对应的数据文件标识符mdfdj,找到之后使用数据文件标识符mdfdj'替换数据文件标识符mdfdj,数据文件密文mdfcj'替换数据文件密文mdfcj
CN202210232195.7A 2022-03-09 2022-03-09 基于区块链的外包数据完整性验证中的公平支付方法 Active CN114726582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210232195.7A CN114726582B (zh) 2022-03-09 2022-03-09 基于区块链的外包数据完整性验证中的公平支付方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210232195.7A CN114726582B (zh) 2022-03-09 2022-03-09 基于区块链的外包数据完整性验证中的公平支付方法

Publications (2)

Publication Number Publication Date
CN114726582A CN114726582A (zh) 2022-07-08
CN114726582B true CN114726582B (zh) 2024-03-12

Family

ID=82238409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210232195.7A Active CN114726582B (zh) 2022-03-09 2022-03-09 基于区块链的外包数据完整性验证中的公平支付方法

Country Status (1)

Country Link
CN (1) CN114726582B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241754A (zh) * 2018-08-14 2019-01-18 广东工业大学 一种基于区块链的云文件重复数据删除方法
CN109889497A (zh) * 2019-01-15 2019-06-14 南京邮电大学 一种去信任的数据完整性验证方法
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及***
CN111260348A (zh) * 2020-01-20 2020-06-09 福州大学 一种车联网中基于智能合约的公平支付***及其工作方法
CN111355705A (zh) * 2020-02-08 2020-06-30 西安电子科技大学 一种基于区块链的数据审计与安全去重云存储***、方法
CN111681002A (zh) * 2020-06-10 2020-09-18 浙江工商大学 基于区块链的公平数据交易方法及***
CN112861172A (zh) * 2021-01-26 2021-05-28 石家庄铁道大学 基于pbft共识机制的对称可搜索加密方法
CN113409154A (zh) * 2021-05-10 2021-09-17 精英数智科技股份有限公司 一种基于可信存储的安责险处理方法和***
WO2022007889A1 (zh) * 2020-07-08 2022-01-13 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及***
CN113947394A (zh) * 2021-09-30 2022-01-18 西安理工大学 云存储中重复数据可删除的基于区块链的公平支付方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200058007A1 (en) * 2018-08-15 2020-02-20 NEC Laboratories Europe GmbH Data exchange platform using blockchain

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241754A (zh) * 2018-08-14 2019-01-18 广东工业大学 一种基于区块链的云文件重复数据删除方法
CN109889497A (zh) * 2019-01-15 2019-06-14 南京邮电大学 一种去信任的数据完整性验证方法
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及***
CN111260348A (zh) * 2020-01-20 2020-06-09 福州大学 一种车联网中基于智能合约的公平支付***及其工作方法
CN111355705A (zh) * 2020-02-08 2020-06-30 西安电子科技大学 一种基于区块链的数据审计与安全去重云存储***、方法
CN111681002A (zh) * 2020-06-10 2020-09-18 浙江工商大学 基于区块链的公平数据交易方法及***
WO2022007889A1 (zh) * 2020-07-08 2022-01-13 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及***
CN112861172A (zh) * 2021-01-26 2021-05-28 石家庄铁道大学 基于pbft共识机制的对称可搜索加密方法
CN113409154A (zh) * 2021-05-10 2021-09-17 精英数智科技股份有限公司 一种基于可信存储的安责险处理方法和***
CN113947394A (zh) * 2021-09-30 2022-01-18 西安理工大学 云存储中重复数据可删除的基于区块链的公平支付方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Auditable Protocols for Fair Payment and Physical Asset Delivery Based on Smart Contracts;Shangping Wang;《IEEE Access》;全文 *
Blockchain-Based Fair Payment Protocol for Deduplication Cloud Storage System;Shangping Wang;《IEEE Access》;全文 *
基于区块链的外包服务公平支付方案;陈嘉良;林鸿瑞;黄钿捷;;计算机***应用(第04期);全文 *

Also Published As

Publication number Publication date
CN114726582A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
US11651109B2 (en) Permission management method, permission verification method, and related apparatus
US10824701B2 (en) System and method for mapping decentralized identifiers to real-world entities
US10790976B1 (en) System and method of blockchain wallet recovery
Zhang et al. Outsourcing service fair payment based on blockchain and its applications in cloud computing
US20220247572A1 (en) Secure dynamic threshold signature scheme employing trusted hardware
TWI740423B (zh) 在基於區塊鏈的私有交易中提供隱私和安全保護的系統和方法
US11212081B2 (en) Method for signing a new block in a decentralized blockchain consensus network
US20230344619A1 (en) Method for signing a new block in a decentralized blockchain consensus network
Shu et al. Blockchain-based decentralized public auditing for cloud storage
CN113301022B (zh) 基于区块链和雾计算的物联网设备身份安全认证方法
CN110580411B (zh) 基于智能合约的权限查询配置方法及装置
Hashmi et al. Towards sybil resistant authentication in mobile ad hoc networks
Li et al. A Blockchain‐Based Public Auditing Scheme for Cloud Storage Environment without Trusted Auditors
US20210241270A1 (en) System and method of blockchain transaction verification
CN114139203B (zh) 基于区块链的异构身份联盟风险评估***、方法及终端
Niu et al. An anonymous and accountable authentication scheme for Wi-Fi hotspot access with the Bitcoin blockchain
CN115396115A (zh) 区块链数据隐私保护方法、装置、设备及可读存储介质
Zhang et al. Efficient auditing scheme for secure data storage in fog-to-cloud computing
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
Yan et al. Blockchain-based verifiable and dynamic multi-keyword ranked searchable encryption scheme in cloud computing
Andre et al. Smartor: Smarter tor with smart contracts: Improving resilience of topology distribution in the tor network
Palit et al. AUGChain: blockchain-based mobile user authentication scheme in global mobility network
CN114726582B (zh) 基于区块链的外包数据完整性验证中的公平支付方法
KR20210039190A (ko) 블록체인을 이용한 개인정보 관리 방법 및 그 방법이 적용된 블록체인 네트워크 관리자
Dimitriou et al. “I wasn’t there”—Deniable, privacy-aware scheme for decentralized Location-based Services

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
GR01 Patent grant
GR01 Patent grant