CN115037530B - 基于区块链的密文去重和去中心化审计方法 - Google Patents
基于区块链的密文去重和去中心化审计方法 Download PDFInfo
- Publication number
- CN115037530B CN115037530B CN202210577999.0A CN202210577999A CN115037530B CN 115037530 B CN115037530 B CN 115037530B CN 202210577999 A CN202210577999 A CN 202210577999A CN 115037530 B CN115037530 B CN 115037530B
- Authority
- CN
- China
- Prior art keywords
- cloud server
- data owner
- ciphertext
- deduplication
- blockchain
- 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
Links
- 238000012550 audit Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012795 verification Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000012552 review Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims description 4
- 238000003379 elimination reaction Methods 0.000 claims description 4
- 238000010845 search algorithm Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000008520 organization Effects 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 abstract 1
- 230000001771 impaired effect Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于区块链的密文去重和去中心化审计方法,分为去重和审计阶段,去重阶段利用收敛加密算法确保数据的机密性,基于RSA的哈希函数构造同态认证标签以用于完整性审计,利用T‑MHT结构存储认证标签降低存储成本并提高查询效率,基于T‑MHT的所有权证明抵抗所有权欺骗攻击,基于RSA算法实现文件下载、删除以及更新中的身份认证。审计阶段利用去中心化自治组织的概念阻止审计员和矿工的勾结并消除了容易出现单点故障的第三方审计员,利用公平仲裁惩罚恶意的云存储服务提供商并补偿数据完整性受损的用户。本发明提出的算法相对于同类的其他算法,在功能上具有一定的优势,降低了数据存储成本,提高了算法的效率和安全性,具有切实可行的实用价值。
Description
技术领域
本发明涉及云存储中数据去重和完整性审计方法,特别是涉及一种基于区块链的密文去重和去中心化审计方法。
背景技术
随着全球数据量的爆炸式增长,数据所有者本地存储数据的成本增加。因此,数据所有者自然希望将本地存储的大量数据迁移到存储成本更低的云存储服务器。云存储为数据所有者带来了相当大的好处,例如,无需复杂的本地存储管理且具有即时可用性。随着使用云存储服务的用户越来越多,云存储服务器产生了大量的冗余数据。为了提高云存储空间利用率,云存储服务提供商对冗余数据进行去重处理,即多个用户上传相同数据时服务器只保留一份。由于用户数据的机密性对于用户来说及其重要,一般上传数据至云服务器前会对数据进行加密处理。然而,传统的满足语义安全的加密算法与数据去重技术难以结合,因为相同数据选用相同的加密算法无法得到相同的密文,导致云存储服务器无法对用户上传的密文进行重复检测。收敛加密可以在保证数据机密性的同时支持密文去重。收敛加密算法使用的密钥源于数据本身,使得不同用户的相同数据可以加密成相同的密文从而可以实现密文去重。近年来,很多基于收敛加密的方案被提出,这些方案主要分为两类,客户端去重和服务端去重。客户端去重只需要通过上传去重标签到云服务器即可检查出云服务器是否已经存储数据,若云服务器中没有存储,则要求用户上传数据。若数据已经存储,用户无需上传数据。然而,服务端去重要求用户必须上传数据到云服务器。很明显,客户端去重大大节省了网络带宽的占用。然后,在客户端去重中,窃取到数据去重标签的攻击者可以直接从服务器端获取整个文件的访问权限,即所有权欺骗攻击。为了应对该问题,引入了所有权证明技术。
虽然用户从云存储中受益匪浅,但数据外包也带来了严重的安全问题。数据完整性作为云存储的核心安全问题已经成为研究热点。众所周知,云服务器并不完全可靠。云服务器的硬件或软件异常可能会导致数据损坏或丢失。云服务器甚至可能出于自身的经济利益,故意删除用户的部分数据。当这些问题发生时,云服务器也可能隐藏这些错误,并说服用户他们的数据保存完好。因此,用户需要一种有效的方法来验证远程数据的完整性。目前,研究者已经提出了许多远程数据完整性检查方案。现有的方案大部分引入了可信的第三方审计员来代理用户定期检查远程数据的完整性,为用户消除了繁重的验证负担。然而,当审计员是恶意时,这些方案容易受到攻击。为了抵抗恶意的审计员,人们提出了许多基于区块链的审计方案。然而,现有的基于区块链的审计方案依赖于容易出现单点故障的集中式审计员,且恶意审计员可能与恶意区块链矿工勾结产生有偏差的审计结果。另外,现有的审计方案缺乏有效的方法来惩罚恶意的云存储服务提供商,并对数据完整性遭到破坏的用户进行赔偿。为了解决该问题,引入公平仲裁机制,通过智能合约向云存储服务提供商收取一定的罚款,并赔偿数据完整性遭到破坏的用户。
基于以上原因,同时为了降低存储和审计成本,提高算法的效率和安全性,设计出一种基于区块链的密文去重和去中心化审计方法是很有必要的。我们利用收敛加密算法确保数据的机密性,基于RSA的哈希函数构造同态认证标签以用于完整性审计,利用T- MHT存储认证标签降低存储成本并提高查询效率,采用基于T-MHT的所有权证明抵抗所有权欺骗攻击,基于RSA算法实现文件下载、删除以及更新中的身份认证。利用去中心化自治组织的概念阻止诱人的审计员勾结恶意的矿工并消除了容易出现单点故障的集中式审计员,利用公平仲裁机制惩罚恶意的云存储服务提供商,并对数据完整性遭到破坏的用户进行赔偿。
发明内容
发明目的:本发明的目的是提供一种基于区块链的密文去重和去中心化审计方法,能够在云上只存储同一数据的唯一副本,并确保其机密性、完整性和安全性。
技术方案:本发明公开了一种基于区块链的密文去重和去中心化审计方法,包括如下步骤:
步骤1:系统初始化;
步骤2:数据拥有者请求上传文件,采用收敛加密算法实现文件加密并生成去重标签,上传去重标签至云服务器;
步骤3:云服务器检查去重标签是否已存在于云服务器中;若不存在,数据拥有者基于 RSA的哈希函数构造同态认证标签其中,ci,1≤i≤l为密文块,l为密文块的数量,并将认证标签利用结合了T树的默克哈希树(T-MHT)结构存储至区块链中,同时,数据拥有者将密文和公钥上传至云服务器,云服务器对密文和认证标签进行一致性检测;若存在,进行基于T-MHT的数据所有权证明;若一致性检测或所有权证明通过,将数据拥有者的公钥插入到去重标签的所有权列表中,否则,上传失败;
步骤4:数据拥有者请求下载文件,云服务器对数据拥有者进行身份认证,若认证通过,云服务器发送密文给数据拥有者,否则,下载失败;
步骤5:数据拥有者请求删除文件,云服务器对数据拥有者进行身份认证,若认证通过,云服务器把数据拥有者的公钥从去重标签的所有权列表中删除,否则,删除失败;
步骤6:数据拥有者请求更新文件,云服务器对旧文件执行步骤5中删除操作,对更新文件执行步骤3中上传操作;
步骤7:数据拥有者向区块链提交审计请求,区块链生成挑战信息,将挑战信息发送给云服务器;
步骤8:在挑战信息生成之后,区块链聚合挑战信息的认证标签发送到区块链选择的随机节点;云服务器在收到来自区块链的挑战信息之后,生成数据证明信息发送到区块链选择的随机节点;
步骤9:随机节点验证证明信息并创建审计日志;
步骤10:数据拥有者审核节点的行为。
进一步地,所述步骤1具体包括:
步骤1.1:密钥生成中心设置系统参数;密钥生成中心KGC选取两个保密的大素数p1和 q1并生成RSA模数N=p1q1,QRN是模N的二次剩余集,g是QRN的生成元,公开N和g;
步骤1.2:数据拥有者生成密钥对((e,n),d);DO选取两个保密的大素数p2和q2,计算 n=p2q2,φ(n)=(p2-1)(q2-1),其中φ(n)是欧拉函数,DO随机选取整数e,1<e<φ(n),满足gcd(e,φ(n))=1,计算d,满足de≡1modφ(n),DO的公钥为(e,n),私钥为d。
进一步地,所述步骤2具体包括:
步骤2.1:数据拥有者运行密钥生成算法K←KeyGen(F),该算法以文件F作为输入,返回收敛密钥K=H(F);
步骤2.2:数据拥有者运行加密算法C←Enc(K,F),该算法以收敛密钥K和文件F作为输入,返回密文C;
步骤2.3:数据拥有者运行去重标签生成算法T←-TagGen(C),该算法以密文C作为输入,返回去重标签T=H(C);
步骤2.4:数据拥有者上传去重标签T至云服务器。
进一步地,所述步骤3中去重标签不存在于云服务器中的具体操作包括:
步骤3.1:云服务器检查去重标签T是否已存在于云服务器中,若不存在,进行步骤3.2,若存在,进行步骤3.3;
步骤3.2:云服务器返回“文件没有重复”给数据拥有者;数据拥有者将密文C拆分为一组密文块{c1,c2,…,cl},对于每个ci,1≤i≤l,计算认证标签Tag(ci),并将认证标签利用T- MHT结构存储至区块链中,同时将(C、(e,n))上传至云服务器;云服务器计算T′=H(C),并判断T′=T是否成立,若不成立,则文件上传失败;否则,继续下面的验证;云服务器首先按照数据拥有者的相同分块方式将密文C拆分为一组密文块{c1,c2,…,cl};对于每个ci, 1≤i≤l,云服务器计算对应认证标签Tag(ci),然后将计算的认证标签与数据拥有者上传到区块链的认证标签进行比较,若不相同,则文件上传失败,否则,云服务器把数据拥有者的公钥(e,n)插入到去重标签T的所有权列表中,同时数据拥有者保存收敛密钥K和去重标签r,并删除本地文件F以节省存储空间。
进一步地,,所述步骤3中去重标签存在于云服务器中时,进行基于T-MHT的数据所有权证明的具体操作包括:
步骤3.3.1:云服务器把密文C分成l个数据块,并随机选择一组数据块编号 作为挑战发送给数据拥有者;
步骤3.3.2:数据拥有者根据其拥有的密文C构建对应的T-MHT,依据Chal0中所有节点到根节点的路径,将挑战节点和其他节点按照一定的顺序发送给云服务器作为应答,即包含挑战Chal0的能够恢复出T-MHT根节点root的最小节点集合;
步骤3.3.3:云服务器收到数据拥有者的应答集合后,计算H(root),然后检查计算出的 H(root)是否与存储的相同;若相同,则证明通过,数据拥有者上传公钥(e,n),云服务器把 (e,n)插入到去重标签T的所有权列表中,否则,上传失败。
进一步地,所述步骤4具体包括:
步骤4.1:数据拥有者请求下载文件F,发送F对应的去重标签T以及公钥(e,n)至云服务器;
步骤4.2:云服务器对数据拥有者进行身份认证,执行如下认证协议:
步骤4.2.1:首先云服务器在所有权表Y中查找公钥(e,n),选取一个随机值r,使用数据拥有者的公钥将r加密为R,并发送给数据拥有者;
步骤4.2.2:数据拥有者利用私钥d解密R得到r′,并返回H(r′)至云服务器;
步骤4.2.3:云服务器计算H(r),并检查H(r′)=H(r)是否成立;如果成立,身份验证成功;否则认证失败,终止操作;
步骤4.2.4:云服务器发送密文C给数据拥有者,数据拥有者运行解密算法,该算法以密文C和收敛密钥K作为输入,返回文件F。
进一步地,所述步骤5具体包括:
步骤5.1:数据拥有者请求删除文件F,发送F对应的去重标签T以及公钥(e,n)至云服务器;
步骤5.2:云服务器执行算法步骤4.2中的身份认证协议;
步骤5.3:若认证通过,把当前数据拥有者的公钥(e,n)从去重标签Y的所有权列表中删除;
步骤5.4:最后,云服务器检查去重标签Y的所有权列表是否为空;若为空,则删除去重标签Y对应的密文及相关信息来释放不必要的存储空间。
进一步地,所述步骤8中在挑战信息Chal1生成之后,区块链通过T-MHT的二分搜索算法获取Chal1的认证标签,聚合认证标签为并将σ发送到区块链选择的随机节点node;同时,云服务器从区块链收到挑战信息Chal1后,生成数据证明信启/>并发送给节点node。
进一步地,所述步骤9具体包括:
节点node根据以下等式审核证明信息proofCS,σ:
proofCS=σmod N
该算法输出0或1的审核结果,其中0表示拒绝,1表示接受,node创建一个日志条目Flog=(taskID、endTime、Chal1、{proofCS,σ)、0/1),并将日志条目的哈希值存储在区块链中,其中,endTime为预定义的时间,taskID为智能合约调用newTask创建的一个id为taskID的任务。
进一步地,所述步骤10具体包括:
数据拥有者审核node的日志条目,并验证以下等式:
proofCS=σmod N
将数据拥有者的验证结果输出为0或1,其中0表示拒绝,1表示接受;如果审核结果不正确,node将被添加到黑名单中,并在以后的审计过程中被拒绝。
有益效果:
本发明公开了一种基于区块链的密文去重和去中心化审计方法,利用收敛加密算法确保数据的机密性,基于RSA的哈希函数构造同态认证标签以用于完整性审计,利用T-MHT存储认证标签降低存储成本并提高查询效率,采用基于T-MHT的所有权证明抵抗所有权欺骗攻击,基于RSA算法实现文件下载、删除以及更新中的身份认证。利用去中心化自治组织的概念阻止诱人的审计员勾结恶意的矿工并消除了容易出现单点故障的集中式审计员,利用公平仲裁机制惩罚恶意的云存储服务提供商,并对数据完整性遭到破坏的用户进行赔偿。本发明能够在云上只存储同一数据的唯一副本,并确保其机密性、完整性和安全性。本发明提出的算法相对于同类其他算法在功能上有一定的优势,且采用多种技术降低存储成本并提高算法的效率和安全性,是一个较为理想的数据去重和审计方法,具有切实可行的实用价值。
附图说明
图1是本发明的文件上传流程图;
图2是本发明的收敛加密算法流程图;
图3是本发明的T-MHT原理图;
图4是本发明的审计系统模型图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明提出的密文去重和去中心化审计方案建立在区块链上。系统中有四种实体:密钥生成中心(KGC)、数据拥有者(DO)、云服务器(CS)和区块链{BC)。KGC是一个可信第三方,负责生成系统参数。DO是数据的拥有者,他们将数据外包给CS。CS由云存储服务提供商管理,并为DO提供云存储服务,但DO的外包数据可能会被CS损坏。BC是一个透明的、不可篡改的分布式账本,由一些许可节点维护。DO的审计请求上传到BC后,这些节点可以合作生成挑战信息并验证证明信息。审计日志的哈希值被记录到BC中。表1描述了本发明所涉及的一些必要符号。
表1.符号
本发明公开的基于区块链的密文去重和去中心化审计方法包括如下步骤:
(1)系统初始化
KGC选取两个保密的大素数p1和q1并生成RSA模数N=p1q1。QRN是模N的二次剩余集,g是QRN的生成元,公开N和g。DO选取两个保密的大素数p2和q2,计算n=p2q2,φ(n)= {p2-1)(q2-1),其中φ(n)是欧拉函数。DO随机选取整数e,1<e<φ(n),满足 gcd(e,φ(n))=1。计算d,满足de≡1modφ(n)。DO的公钥为(e,n),私钥为d。本方案中, Hash算法均实例化为SHA-256。收敛加密方案中,对称加解密算法实例化为AES-256。
(2)去重阶段
(2.1)文件上传
文件上传流程图如图1所示,详细步骤如下:
(2.1.1)数据拥有者DO请求上传文件F,采用收敛加密(CE)算法实现文件加密并生成去重标签,如图2所示。DO首先运行密钥生成算法K←KeyGen(F),该算法以文件F作为输入,返回收敛密钥K=H(F),然后运行加密算法C←Enc(K,F),该算法以收敛密钥K和文件F作为输入,返回密文C,最后运行去重标签生成算法Y←TagGen(C),该算法以密文C作为输入,返回去重标签T=H(C),并上传去重标签Y至云服务器CS。
(2.1.2)CS检查去重标签T是否已经存在于CS中。
(2.1.2.1)若不存在,CS返回“文件没有重复”给DO,即该文件为初始上传。DO将密文C 拆分为一组密文块{c1,c2,…,cl},对于每个ci,1≤i≤l,计算认证标签(该标签用于数据完整性审计),并将认证标签利用结合了T树的默克哈希树(T-MHT)结构存储至区块链BC中,同时将(C、(e,n))上传至CS。CS计算T′=H(C),并判断T′=T是否成立。若不成立,则文件上传失败。否则,继续下面的验证。CS首先按照DO的相同分块方式将密文C拆分为一组密文块{c1,c2,…,cl}。对于每个ci,1≤i≤l,CS计算对应认证标签/>然后将计算的认证标签与DO上传到BC的认证标签进行比较。若不相同,则文件上传失败。否则,CS把DO的公钥(e,n)插入到去重标签T的所有权列表中,同时DO保存收敛密钥K和去重标签T,并删除本地文件F以节省存储空间。在文件上传阶段,我们利用T-MHT结构对认证标签进行存储可以降低存储成本和提高查询效率。图3描述了一个基于14个认证标签的T-MHT示例,将认证标签索引设置为从1到14,每个节点有两个认证标签。节点i的哈希值H(i)根据节点中认证标签的哈希值和其子节点的哈希值计算得到,即
h(i)是当前节点i的哈希值,以节点i=a举例,h(a)=h(h(Tag(c3))||h(Tag(c4))),其中||表示串联操作。
为了支持高效的查询,我们在区块链BC的块头中嵌入了当前块体的索引范围字段。当使用索引index查询标签时,我们按从最新的一个块到旧块遍历的顺序,将索引index和块头的索引范围字段进行比较。如果索引index在某个块头的索引范围字段内,我们通过T-MHT 中的二元搜索法找到认证标签。T-MHT的搜索算法如算法1所示。例如,在图3中,如果我们想找到索引为10的标签,我们首先将10与根节点root的最小索引值7和最大索引值8进行比较。因为10大于最大索引值8,所以我们访问root的右子节点b。接下来,我们将10 与节点b的最小索引值11和最大索引值12进行比较。因为10小于节点b的最小索引值11,所以我们访问它的左子节点e。最后,我们将10与节点e的索引范围比较。因为10在节点e 的索引范围字段内,所以我们得到节点e中的Tag(c10)。
算法1
(2.1.2.2)若存在,进行如下基于T-MHT的数据所有权证明PoW:
(2.1.2.2.1)PoWChal(CS→DO):CS把密文C分成l个数据块,并随机选择一组数据块编号作为挑战发送给DO。如图3所示,CS随机选择Chal0={5,6}作为挑战。
(2.1.2.2.2)PoWPro(DO→CS):DO根据其拥有的密文C构建对应的T-MHT,依据Chal0中的所有节点到根节点的路径,将挑战节点和其他节点按照一定的顺序发送给CS作为应答,即包含挑战Chal0的能够恢复出T-MHT根节点root的最小节点集合。在图3的示例中,应答集合为{h(Tag(c5)),h(Tag(c6)),H(c),H(b),h(Tag(c3)),h(Tag(c4)),h(Tag(c7)),h(Tag(c8))}。
(2.1.2.2.3)PoWVer:CS收到DO的应答集合后,计算H(a)=h(h(Tag(c5))||h(Tag(c6)) ||H(c)||h(Tag(c3))||h(Tag(c4))),H(root)=h(h(Tag(c7))||h(Yag(c8))||H(a)||H(b)),然后检查计算出的H(root)是否与存储的相同。若相同,则证明通过,DO上传公钥(e,n),CS把 (e,n)插入到去重标签Y的所有权列表中。否则,证明失败。
(2.2)文件下载
(2.2.1)当DO请求下载文件F时,它发送F对应的去重标签T以及DO对应的公钥(e,n)至 CS。
(2.2.2)CS对DO进行身份认证,执行如下认证协议:
(2.2.2.1)首先CS在所有权表T中查找公钥(e,n),选取一个随机值r,计算R≡remod n并发送给DO。
(2.2.2.2)DO利用私钥d解密R得到r′≡Ramod n,并返回H(r′)至CS。
(2.2.2.3)CS计算H(r),并检查H(r′)=H(r)是否成立。如果成立,身份验证成功。否则认证失败,终止操作。
(2.2.3)CS发送密文C给DO,DO运行解密算法F←Dec(C,K),该算法以密文C和收敛密钥 K为输入,返回文件F。
(2.3)文件删除
(2.3.1)当DO请求删除文件F时,它发送F对应的去重标签T以及DO对应的公钥(e,n)至 CS。
(2.3.2)CS执行算法2.2中的身份认证协议。
(2.3.3)若认证通过,把当前DO的公钥(e,n)从去重标签T的所有权列表中删除。
(2.3.4)最后,CS检查去重标签T的所有权列表是否为空。若为空,则删除去重标签T对应的密文及相关信息来释放不必要的存储空间。
(2.4)文件更新
更新操作是删除和上传步骤的组合。当DO请求文件更新时,CS对旧文件执行删除操作 (算法2.3),对更新的文件执行上传操作(算法2.1)。
(3)审计阶段
如图4所示,虚线部分在去重阶段已经执行,实线部分为审计阶段的步骤。DO向区块链BC提交审计请求。BC调用ChallGen算法(该算法在智能合约中实现)生成挑战信息,并将挑战信息发送给CS。CS在收到来自BC的挑战信息后,调用ProofGen算法生成证明信息。BC选择一个具有足够计算能力的随机节点node,node调用Audit算法来验证证明信息。DO调用CheckLog算法审计node的行为。同时,DO与CS签订智能合约。DO向智能合约发送depositDO作为其押金,CS向智能合约发送depositCS作为其押金。如果完整性审计通过,智能合约会自动将DO的押金depositDO作为审计费发送给BC选择的随机节点node,并将CS的押金depositCS返回给CS。否则,智能合约将CS的押金depositCS发送给DO作为惩罚,并将 DO的押金depositDO发送给node。
(3.1)ChallGen(Params,endTime)→Chal1
在DO向BC提交审计请求后,智能合约将启动一些活动,这些活动将在预定义的时间 endTime内结束,以在一些获得许可的参与者中生成随机挑战消息Chal1={i,vi}。
每个活动通常有三个阶段:提交、揭示和获取随机数。每个阶段的时间可由DO指定。该活动在BC中的智能合约中实施。
提交阶段。每个参与者提交其秘密值的散列值和一定金额的押金,作为诚实的保证。这些参与者通常有足够的计算能力。
揭示阶段。每个参与者都会透露其秘密值,智能合约将会检查透露的秘密值的哈希值是否与在提交阶段提交的哈希值相同。如果恶意参与者在此阶段未能透露其秘密值或透露不同的秘密值,其押金将不予返还,并将其添加到黑名单中。
获取随机数阶段。智能合约将检查成功收集的秘密值,并从所有参与者的秘密值中计算随机数,将押金和奖金返还给诚实的参与者。
我们使用单个智能合约实现BC中的ChallGen算法和其他功能。DO向BC发送审计请求后,智能合约将调用newTask创建一个id为taskID的任务,并启动一些可以添加到任务中的活动。然后,每个活动生成一个随机值。最后,任务将从所有活动中获得许多随机值。请注意,在我们当前的构造中,我们为审计任务创建了许多活动。这种方法也可以通过在BC中创建一个活动来替代。然后,智能合约可以选择一个随机节点node来验证来自该活动所有参与者的证明信息。所选的许可节点可以基于此活动的随机值生成挑战消息,并验证云服务器生成的证明信息。
(3.2)ProofGen(Params,Chal1)→proofCS,σ
在挑战信息Chal1生成之后,BC会通过T-MHT的二分搜索算法获取Chal1的认证标签,并聚合认证标签发送到node。同时,CS从BC收到挑战信息Chal1后,生成数据证明信息/>并发送给节点node。
(3.3)Audit(Params,proofCS,σ)→0/1
BC中的所选节点node根据以下等式审核证明信息proofCS,σ:
proofCS=σmod N
该算法输出0或1的审核结果,其中0表示拒绝,1表示接受。然后,node创建一个日志条目Flog=(taskID、endTime、Chal1、(proofCS,σ)、0/1),并将日志条目的哈希值存储在BC中。
(3.4)CheckLog(Params,Flog)→0/1
DO审核node的日志条目,并验证以下等式:
proofCS=σmod N
该算法将DO的验证结果输出为0或1,其中0表示拒绝,1表示接受。如果审核结果不正确,node将被添加到黑名单中,并在以后的审计过程中被拒绝。
上述实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于区块链的密文去重和去中心化审计方法,其特征在于,包括如下步骤:
步骤1:系统初始化;
步骤2:数据拥有者请求上传文件,采用收敛加密算法实现文件加密并生成去重标签,上传去重标签至云服务器;
步骤3:云服务器检查去重标签是否已存在于云服务器中;若不存在,数据拥有者基于RSA的哈希函数构造同态认证标签其中,ci,1≤i≤l为密文块,l为密文块的数量,N为RSA模数,并将认证标签利用结合了T树的默克哈希树(T-MHT)结构存储至区块链中,同时,数据拥有者将密文和公钥上传至云服务器,云服务器对密文和认证标签进行一致性检测;若存在,进行基于T-MHT的数据所有权证明;若一致性检测或所有权证明通过,将数据拥有者的公钥插入到去重标签的所有权列表中,否则,上传失败;
当所述步骤3中去重标签不存在于云服务器中的具体操作包括:
步骤3.1:云服务器检查去重标签T是否已存在于云服务器中,若不存在,进行步骤3.2,若存在,进行步骤3.3;
步骤3.2:云服务器返回“文件没有重复”给数据拥有者;数据拥有者将密文C拆分为一组密文块{c1,c2,…,cl},对于每个ci,1≤i≤l,计算认证标签Tag(ci),并将认证标签利用T-MHT结构存储至区块链中,同时将(C、(e,n))上传至云服务器;云服务器计算T'=H(C),并判断T'=T是否成立,若不成立,则文件上传失败;否则,继续下面的验证;云服务器首先按照数据拥有者的相同分块方式将密文C拆分为一组密文块{c1,c2,…,cl};对于每个ci,1≤i≤l,云服务器计算对应认证标签Tag(ci),然后将计算的认证标签与数据拥有者上传到区块链的认证标签进行比较,若不相同,则文件上传失败,否则,云服务器把数据拥有者的公钥(e,n)插入到去重标签T的所有权列表中,同时数据拥有者保存收敛密钥K和去重标签T,并删除本地文件F以节省存储空间;
当所述步骤3中去重标签存在于云服务器中时,进行基于T-MHT的数据所有权证明的具体操作包括:
步骤3.3.1:云服务器把密文C分成l个数据块,并随机选择一组数据块编号 作为挑战发送给数据拥有者;
步骤3.3.2:数据拥有者根据其拥有的密文C构建对应的T-MHT,依据Chal0中所有节点到根节点的路径,将挑战节点和其他节点按照一定的顺序发送给云服务器作为应答,即包含挑战Chal0的能够恢复出T-MHT根节点root的最小节点集合;
步骤3.3.3:云服务器收到数据拥有者的应答集合后,计算H(root),然后检查计算出的H(root)是否与存储的相同;若相同,则证明通过,数据拥有者上传公钥(e,n),云服务器把(e,n)插入到去重标签T的所有权列表中,否则,上传失败;
步骤4:数据拥有者请求下载文件,云服务器对数据拥有者进行身份认证,若认证通过,云服务器发送密文给数据拥有者,否则,下载失败;
步骤5:数据拥有者请求删除文件,云服务器对数据拥有者进行身份认证,若认证通过,云服务器把数据拥有者的公钥从去重标签的所有权列表中删除,否则,删除失败;
步骤6:数据拥有者请求更新文件,云服务器对旧文件执行步骤5中删除操作,对更新文件执行步骤3中上传操作;
步骤7:数据拥有者向区块链提交审计请求,区块链生成挑战信息,将挑战信息发送给云服务器;
步骤8:在挑战信息生成之后,区块链聚合挑战信息的认证标签发送到区块链选择的随机节点;云服务器在收到来自区块链的挑战信息之后,生成数据证明信息发送到区块链选择的随机节点;
步骤9:随机节点验证证明信息并创建审计日志;
步骤10:数据拥有者审核节点的行为。
2.根据权利要求1所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤1具体包括:
步骤1.1:密钥生成中心设置系统参数;密钥生成中心KGC选取两个保密的大素数p1和q1并生成RSA模数N=p1q1,QRN是模N的二次剩余集,g是QRN的生成元,公开N和g;
步骤1.2:数据拥有者生成密钥对((e,n),d);DO选取两个保密的大素数p2和q2,计算n=p2q2,φ(n)=(p2-1)(q2-1),其中φ(n)是欧拉函数,DO随机选取整数e,1<e<φ(n),满足gcd(e,φ(n))=1,计算d,满足de≡1modφ(n),DO的公钥为(e,n),私钥为d。
3.根据权利要求1所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤2具体包括:
步骤2.1:数据拥有者运行密钥生成算法K←KeyGen(F),该算法以文件F作为输入,返回收敛密钥K=H(F);
步骤2.2:数据拥有者运行加密算法C←Enc(K,F),该算法以收敛密钥K和文件F作为输入,返回密文C;
步骤2.3:数据拥有者运行去重标签生成算法T←TagGen(C),该算法以密文C作为输入,返回去重标签T=H(C);
步骤2.4:数据拥有者上传去重标签T至云服务器。
4.根据权利要求1所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤4具体包括:
步骤4.1:数据拥有者请求下载文件F,发送F对应的去重标签T以及公钥(e,n)至云服务器;
步骤4.2:云服务器对数据拥有者进行身份认证,执行如下认证协议:
步骤4.2.1:首先云服务器在所有权表T中查找公钥(e,n),选取一个随机值r,使用数据拥有者的公钥将r加密为R,并发送给数据拥有者;
步骤4.2.2:数据拥有者利用私钥d解密R得到r',并返回H(r')至云服务器;
步骤4.2.3:云服务器计算H(r),并检查H(r')=H(r)是否成立;如果成立,身份验证成功;否则认证失败,终止操作;
步骤4.2.4:云服务器发送密文C给数据拥有者,数据拥有者运行解密算法,该算法以密文C和收敛密钥K作为输入,返回文件F。
5.根据权利要求4所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤5具体包括:
步骤5.1:数据拥有者请求删除文件F,发送F对应的去重标签T以及公钥(e,n)至云服务器;
步骤5.2:云服务器执行算法步骤4.2中的身份认证协议;
步骤5.3:若认证通过,把当前数据拥有者的公钥(e,n)从去重标签T的所有权列表中删除;
步骤5.4:最后,云服务器检查去重标签T的所有权列表是否为空;若为空,则删除去重标签T对应的密文及相关信息来释放不必要的存储空间。
6.根据权利要求1所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤8中在挑战信息Chal1生成之后,区块链通过T-MHT的二分搜索算法获取Chal1的认证标签,聚合认证标签为并将σ发送到区块链选择的随机节点node;同时,云服务器从区块链收到挑战信息Chal1后,生成数据证明信息/> 并发送给节点node。
7.根据权利要求6所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤9具体包括:
节点node根据以下等式审核证明信息proofCS,σ:
proofCS=σmod N
该算法输出0或1的审核结果,其中0表示拒绝,1表示接受,node创建一个日志条目flog=(taskID、endTime、Chal1、(proofCS,σ)、0/1),并将日志条目的哈希值存储在区块链中,其中,endTime为预定义的时间,taskID为智能合约调用newTask创建的一个id为taskID的任务。
8.根据权利要求1所述的基于区块链的密文去重和去中心化审计方法,其特征在于,所述步骤10具体包括:
数据拥有者审核node的日志条目,并验证以下等式:
proofCS=σmod N
将数据拥有者的验证结果输出为0或1,其中0表示拒绝,1表示接受;如果审核结果不正确,node将被添加到黑名单中,并在以后的审计过程中被拒绝。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210577999.0A CN115037530B (zh) | 2022-05-25 | 2022-05-25 | 基于区块链的密文去重和去中心化审计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210577999.0A CN115037530B (zh) | 2022-05-25 | 2022-05-25 | 基于区块链的密文去重和去中心化审计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037530A CN115037530A (zh) | 2022-09-09 |
CN115037530B true CN115037530B (zh) | 2024-03-26 |
Family
ID=83121854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210577999.0A Active CN115037530B (zh) | 2022-05-25 | 2022-05-25 | 基于区块链的密文去重和去中心化审计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037530B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107666388A (zh) * | 2016-07-28 | 2018-02-06 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
CN110677487A (zh) * | 2019-09-30 | 2020-01-10 | 陕西师范大学 | 一种支持隐私和完整性保护的外包数据去重云存储方法 |
CN110781524A (zh) * | 2019-10-29 | 2020-02-11 | 陕西师范大学 | 一种混合云存储中数据的完整性验证方法 |
CN113312574A (zh) * | 2021-05-21 | 2021-08-27 | 太原科技大学 | 一种基于区块链的云数据完整性审计方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200313856A1 (en) * | 2019-03-29 | 2020-10-01 | 0Chain, LLC | Systems and methods of blockchain platform for intermediaries and passwordless login |
US11283616B2 (en) * | 2019-04-03 | 2022-03-22 | Hong Kong Baptist University | Method for index-based and integrity-assured search in a blockchain |
US11816069B2 (en) * | 2020-07-27 | 2023-11-14 | International Business Machines Corporation | Data deduplication in blockchain platforms |
-
2022
- 2022-05-25 CN CN202210577999.0A patent/CN115037530B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107666388A (zh) * | 2016-07-28 | 2018-02-06 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
CN110677487A (zh) * | 2019-09-30 | 2020-01-10 | 陕西师范大学 | 一种支持隐私和完整性保护的外包数据去重云存储方法 |
CN110781524A (zh) * | 2019-10-29 | 2020-02-11 | 陕西师范大学 | 一种混合云存储中数据的完整性验证方法 |
CN113312574A (zh) * | 2021-05-21 | 2021-08-27 | 太原科技大学 | 一种基于区块链的云数据完整性审计方法 |
Non-Patent Citations (6)
Title |
---|
《Blockchain-Based Public Auditing Scheme for Shared Data》;Barolli, L;《 INNOVATIVE MOBILE AND INTERNET SERVICES IN UBIQUITOUS COMPUTING, IMIS-2019》;全文 * |
《Inventory Visibility Scenario to Reduce Safety Stock in Supply Chain Network Using Blockchain Hyperledger Composer》;Mukhtar, A.;《2021 International Conference on Software Engineering & Computer Systems and 4th International Conference on Computational Science and Information Management (ICSECS-ICOCSIM)》;全文 * |
基于区块链的云数据审计方案;周坚;金瑜;何亨;李鹏;;计算机应用研究(第06期);全文 * |
基于区块链的可审计数据分享方案;王涵;王绪安;周能;柳玉东;;广西师范大学学报(自然科学版)(第02期);全文 * |
客户端密文去重方案的新设计;贡坚;王少辉;李灿灿;;小型微型计算机系统(第01期);全文 * |
王涵;王绪安;周能;柳玉东.基于区块链的可审计数据分享方案.广西师范大学学报(自然科学版).(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115037530A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639361B (zh) | 一种区块链密钥管理方法、多人共同签名方法及电子装置 | |
Chen et al. | BL-MLE: Block-level message-locked encryption for secure large file deduplication | |
CN108923932B (zh) | 一种去中心化协同验证系统及验证方法 | |
CN110213042A (zh) | 一种基于无证书代理重加密的云数据去重方法 | |
Yang et al. | Achieving efficient and privacy-preserving cross-domain big data deduplication in cloud | |
CN111130757A (zh) | 一种基于区块链的多云cp-abe访问控制方法 | |
US6701435B1 (en) | Cryptographic key generation system | |
EP3375129A1 (en) | Method for re-keying an encrypted data file | |
CN110599163B (zh) | 一种面向区块链交易监管的交易记录外包方法 | |
CN111526197A (zh) | 一种云端数据安全共享方法 | |
Zhao et al. | Checking in without worries: Location privacy in location based social networks | |
CN112732695B (zh) | 一种基于区块链的云存储数据安全去重方法 | |
CN104993931A (zh) | 一种云存储中多用户的加密搜索方法 | |
RuWei et al. | Study of privacy-preserving framework for cloud storage | |
CN110851848B (zh) | 对称可搜索加密的隐私保护方法 | |
US20160080336A1 (en) | Key Usage Detection | |
CN116680241A (zh) | 一种基于区块链的电子政务数据安全共享方法 | |
CN109743327B (zh) | 基于无证书的云存储中共享数据的完整性公开验证方法 | |
Lin et al. | Secure deduplication schemes for content delivery in mobile edge computing | |
Li et al. | A novel framework for outsourcing and sharing searchable encrypted data on hybrid cloud | |
CN110784318B (zh) | 群密钥更新方法、装置、电子设备、存储介质及通信系统 | |
CN109462581B (zh) | 能够抵御暴力字典敌手持续攻击的密文去重方法 | |
CN115037530B (zh) | 基于区块链的密文去重和去中心化审计方法 | |
KR20210100865A (ko) | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 | |
CN108494552B (zh) | 支持高效收敛密钥管理的云存储数据去重方法 |
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 |