CN109525403B - 一种支持用户全动态并行操作的抗泄露公开云审计方法 - Google Patents

一种支持用户全动态并行操作的抗泄露公开云审计方法 Download PDF

Info

Publication number
CN109525403B
CN109525403B CN201811638170.7A CN201811638170A CN109525403B CN 109525403 B CN109525403 B CN 109525403B CN 201811638170 A CN201811638170 A CN 201811638170A CN 109525403 B CN109525403 B CN 109525403B
Authority
CN
China
Prior art keywords
data
csp
file
data block
block
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
CN201811638170.7A
Other languages
English (en)
Other versions
CN109525403A (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.)
Guangzhou Yixin Technology Co.,Ltd.
Original Assignee
Guangzhou Yixin Technology Co ltd
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 Guangzhou Yixin Technology Co ltd filed Critical Guangzhou Yixin Technology Co ltd
Priority to CN201811638170.7A priority Critical patent/CN109525403B/zh
Publication of CN109525403A publication Critical patent/CN109525403A/zh
Application granted granted Critical
Publication of CN109525403B publication Critical patent/CN109525403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/3271Cryptographic 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 challenge-response
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在保护数据机密性或隐私性的前提下,公开证明外包动态云存储数据的完整性一直是公开云审计技术的关注热点和难点。本发明公开了一种支持用户全动态并行操作的抗泄露公开云审计方法。首先,引进了动态累加器这一数据认证结构,实现了无论第三方审计者进行多少次审计且不管每次审计挑战块是否重复,好奇的第三方审计者均无法获得关于云外包数据的任何数据内容,巧妙地规避了泄露挑战数据块隐私的风险,达到抗数据泄露的功能;其次,结合双链的动态哈希表和动态累加器,使得用户可以远程对外包存储数据进行插入、删除和修改的全动态并行操作,且具有验证动态更新操作是否正确执行的功能。

Description

一种支持用户全动态并行操作的抗泄露公开云审计方法
技术领域
本发明属于云计算中外包云存储数据安全的技术领域,具体是基于动态累加器提出的一种支持用户动态操作的抗泄露公开云审计方法。
背景技术
云存储是云计算的一个重要分支,允许数据拥有者(Data Owner,DO)将数据远程存到云端,并为用户提供强大的外包计算和存储服务。近年来,由于功能日趋强大的处理器、丰富的带宽资源和灵活的网络连接,越来越多的客户选择将数据外包给云服务提供商(Cloud Server Provider,CSP),以减轻本地购买硬件、数据维护等人力物力的投资。虽然这种新的数据存储模式被认为是互联网上一个很有前景的服务平台,但高度集中的计算资源给云存储在安全性和性能方面带来了严峻的挑战。
首先,数据拥有者DO将数据存储到云端后,就失去了对数据的物理控制能力,这种数据所有权和控制权的分离,确实给管理带来了困难。对数据拥有者DO而言,如何确定云服务器是否完整、安全地存储着数据拥有者DO的数据是最值得关注的问题之一,造成这种问题的实际原因如下:(1)无论云存储服务提供商CSP采取多可靠的措施,偶尔也会因软件失效或硬件损坏的原因丢失数据。更糟糕的情况是,云存储服务提供商CSP可能为了自己的利益而决定对用户隐瞒这些数据错误。(2)云存储服务提供商CSP可能会丢弃未被访问过或很少被访问的数据,以节省存储空间,并声称这些数据仍然被正确地存储在云服务器上。因此,开发有效的审计技术,使用户确信数据被安全完整地存储在远程云服务器上是至关重要的,其核心是如何有效地远程验证数据完整性。
其次,解决上述问题的方案根据验证者的不同分为两类:私有审计和公开审计。传统上,只有数据拥有者DO自己跟云存储服务提供商CSP进行私有审计协议来检查数据的完整性,这样做的好处是数据拥有者不用担心数据隐私被其他审计方获取,缺点是相关审计数据上传、动态更新以及数据私有审计等需要大量的通信和计算资源,这会使通信和计算资源有限的数据拥有者DO的数据维护工作量非常大,容易造成系统的通信和计算瓶颈。此外,让数据拥有者DO或云存储服务提供商CSP其中一方执行整个审计过程也是不恰当的,因为数据拥有者DO和云存储服务提供商CSP之间往往互不信任,从而没有一方能够保证提供可靠和公正的审计结果。因此,可引入一个独立可信第三方审计者(Trusted PartyAuditor,TPA)代替数据拥有者DO以公开交互方式来验证外包云存储数据的完整性和可靠性,即公开云审计技术,也是目前云外包数据完整性检验中的主流方法。
可是,目前云存储中公开审计仍存在一些棘手的问题亟待解决。第一是如何保证维护外包云存储数据对第三方审计者TPA的机密性和隐私保护,即第三方审计者TPA虽然和数据存储方CSP进行了多次交互式数据完整性审计协议,可第三方审计者TPA依旧无法从接收到的审计信息中获取数据拥有者DO数据的任何实际内容。虽然加密外包数据是保护外包云存储数据机密性和隐私性的一种有效方法,但加密后数据却会给数据动态更新等操作带来很大的不便,且若处理不当,第三方审计者TPA依旧会获得外包云存储数据的隐私信息,造成信息泄漏事故。第二是外包云存储的数据在整个数据存储生命周期内不会保持一成不变。事实上,数据拥有者DO会根据各种实际需求和变化对数据文件执行动态操作,如修改、插入、删除等数据动态操作。事实上,支持外包云存储数据的动态操作是公开云审计中一个非常现实的需求。因此,设计一种独立于数据加密的公开抗泄露公开云审计方法对云存储系统具有重要的实际意义。
为了保证数据机密性和支持动态审计,文献Ateniese G,Pietro R D,Mancini LV,et al.Scalable and efficient provable data possession[C].InternationalConference on Security&Privacy in CommunicationNetowrks,ACM,Istanbul,Turkey,No.9,2008.首次提出了一种动态数据持有性证明(Dynamic Provable Data Possession,DPDP)协议。但是,由于此协议在建立阶段需要预先计算一定数量的元数据,从而导致查询和数据动态更新的次数有限,且此协议不支持全动态的数据操作,特别是不支持在任意位置插入数据块(它只支持添加类型的插入)。文献Erway C,
Figure BDA0001930549180000021
PapamanthouC,etal.Dynamic provable data possession[J].Acm Transactions on Information&System Security,2015,17(4):1-29.给出一个扩展的原始数据持有性证明(ProvableData Possession,PDP)模型,并利用基于行列的认证跳表(skip list)提出了一个动态PDP方案来支持全动态数据操作。此方案主要给出动态数据审计协议构造的一般方法,即将动态数据结构与验证算法相结合,缺陷是会给服务器造成沉重的计算负担,从而导致其成为计算瓶颈。文献Wang Q,Wang C,Ren K,et al.Enabling Public Auditability and DataDynamics for Storage Security in Cloud Computing[J].IEEE Transactions onParallel&Distributed Systems,2011,22(5):847-859.提出了另一种典型的动态公开云审计方法,利用默克尔哈希树(Merkle Hash Tree,MHT)以支持全动态的数据操作,但此协议要求云存储服务提供商CSP向第三方审计者TPA发送挑战数据块的线性组合,如果第三方审计者TPA有意重复选择相同挑战数据块获得不同的线性组合值,在积累一定量的审计信息的情况下,存在将数据内容泄露给第三方审计者TPA的风险。针对这一点,文献Wang C,Wang Q,Ren K,et al.Privacy-Preserving Public Auditing for Data StorageSecurity in Cloud Computing[C].2010 Proceedings IEEE INFOCOM,IEEE,San Diego,CA,USA,2010.通过将同态认证器和随机掩码技术结合来实现数据隐私的保护,该协议可以确保第三方审计者TPA不能获得用户存储在云中数据的任何实际内容。但是,这两种方案在更新和验证过程中都会产生非常高的通信量和计算代价。文献Zhu Y,Wang H,Hu Z,etal.Dynamic audit services for integrity verification of outsourced storagesin clouds[C].Acm Symposium on Applied Computing,ACM,TaiChung,Taiwan,pp.1550-1557,2011.提出了基于索引哈希表(Index Hash Table,IHT)的动态公开审计方案,并将索引哈希表存储在可信第三方审计者TPA处,而不是云存储服务提供商CSP中。因此,与之前的方案相比,该方法降低了计算成本和通信开销。但是,由于索引哈希表是序列结构,其中插入和删除的更新操作将导致表中多数元素会发生改变,且块序列号的更改也将导致数据块标签的重新计算,这使得插入和删除操作非常低效。此方案还应用了随机掩码技术来确保数据机密性和隐私性。文献Yang K,Jia X.An Efficient and Secure Dynamic AuditingProtocol for Data Storage in Cloud Computing[J].IEEE Transactions onParallel&Distributed Systems,2013,24(9):1717-1726.对基于索引哈希表的审计方案进行改进,使审计方案在没有随机掩码技术的情况下保证数据的机密性,但是方案中的动态操作还是同索引哈希表方案一样会导致数据块标签的重新计算,最终增加不必要的通信和计算开销。文献Tian H,Chen Y,Chang C C,et al.Dynamic-Hash-Table Based PublicAuditingfor Secure Cloud Storage[J].IEEE Transactions on Services Computing,2017,10(5):701-714.设计了一种基于动态哈希表(Dynamic Hash Table,DHT)的动态公开云审计协议,此协议保证数据机密性,且在动态哈希表中更新操作的时间比IHT中更少。Shen Jian,Shen Jun,Chen X,et al.An Efficient Public Auditing Protocol WithNovel Dynamic Structure for Cloud Data[J].IEEE Transactions on InformationForensics&Security,2017,12(10):2402-2415.提出了一种公开审计协议,该协议构造了双链信息表(Doubly Linked Info Table,DLIT)和位置阵(Location Array,LA)组成的新动态结构。虽然该方案优化了基于动态哈希表公开云审计协议的数据结构,但没有保障数据拥有者数据的机密性。
发明内容
公开证明动态数据安全的隐私问题和效率问题一直是动态公开云审计的关注热点。为了更安全有效地实现云存储公开审计的动态更新的功能,本发明引进了动态累加器这一数据认证结构,并结合双链的动态哈希表,公开了一种支持用户全动态并行操作的抗数据泄露的公开云审计方法,实现低通信开销、低计算开销、低存储开销的同时,还具有更新验证的功能。本发明通过以下具体的技术方案实现以上提到的技术问题。整个发明过程涉及三方主体,云存储服务提供商CSP,数据拥有者DO及第三方审计者TPA。
本发明的技术解决方案为:
一种抗泄露公开云审计方法,包括以下步骤:
1)建立
1.1)系统参数生成:
云存储服务提供商CSP利用参数生成算法ParamGen(1k)→(p,G,GT,g,e,H,N)生成系统参数cp并公开所生成的系统参数,具体为:
系统参数cp=(p,G,GT,g,e,H,N),其中大素数p取值是由安全参数k所决定,G、GT是阶为大素数p的乘法循环群,g为乘法循环群G的生成元,e:G×G→GT是一个双线性映射,H:{0,1}*→G是一个密码学安全的哈希函数,正整数N<2p
1.2)密钥生成:
数据拥有者DO利用密钥生成算法
Figure BDA0001930549180000041
生成密钥,具体为:
挑选两个随机数α←Zp和随机数γ←Zp
计算得到u←gα,进而得私钥sk=(α,γ)和公钥
Figure BDA0001930549180000042
数据拥有者DO初始化值
Figure BDA0001930549180000043
计算公开参数
Figure BDA0001930549180000044
公开公开参数pub;
2)存储
2.1)存储准备:
2.1.1)文件分块:
数据拥有者DO利用分块算法FileSplit(F,n)→(d1,d2,…,dn)对文件F进行分块,具体为:
将文件F分为n块{d1,d2,…,dn},其中di∈Zp且di≤N,i=1,2,…,n,文件F表示为F={d1,d2,…,dn},对应数据块索引集合为{1,2,…,n};
2.1.2)数据块版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(F)→(VI)创建所有数据块的版本信息,具体为:
数据块的版本信息VI={(vi,ti)|i=1,2,…,n},其中vi和ti分别表示数据块di的版本信息和建立版本信息时的时间戳;
2.1.3)生成数据块累加值:
数据拥有者DO利用累加值生成算法AccGen(F,pub)→accF计算所有数据块的累加值,具体为:
计算累加值
Figure BDA0001930549180000051
2.1.4)生成数据块签名:
数据拥有者DO利用签名生成算法SigGen(F,VI,sk,pub)→(Φ)计算所有数据块对应的签名,具体为:
计算签名
Figure BDA0001930549180000052
Figure BDA0001930549180000053
表示所有数据块对应的签名集合;
2.2)分发:
数据拥有者DO将文件F={d1,d2,…,dn}和签名集合
Figure BDA0001930549180000054
发送给云存储服务提供商CSP,云存储服务提供商CSP按数据块对应顺序存储文件F和签名集合Φ的内容;同时数据拥有者DO将数据块的版本信息VI={(vi,ti)|i=1,2,…,n}和累加值
Figure BDA0001930549180000055
发送给第三方审计者TPA,第三方审计者TPA将版本信息添加到双链的动态哈希表中存储,并存储数据块的累加值accF;确定云存储服务提供商CSP和第三方审计者TPA存储成功后,数据拥有者DO从本地存储中删除{F,Φ,VI},保留accF
2.3)生成数据块标签:
云存储服务提供商CSP利用数据块标签生成算法TagGen(F,pub)→(Ω)生成每个数据块di的对应标签
Figure BDA0001930549180000056
其中i=1,2,…,n,具体为:
计算标签
Figure BDA0001930549180000057
Figure BDA0001930549180000058
表示所有数据块对应的标签集合;
云存储服务提供商CSP存储标签集合Ω;
3)审计
3.1)生成挑战请求:
第三方审计者TPA利用挑战请求算法ChalGen(n,c)→chal生成审计挑战,具体为:
从文件F的数据块索引集合{1,2,…,n}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤n,作为挑战请求信息发送给云存储服务提供商CSP;
这里解释说明本发明的审计阶段并不需要第三方审计者TPA对所有的数据块进行完整性验证的原因。其中验证数据块的多少依赖于数据出错的比例和验证结论的可信程度。设数据拥有者的文件块总量非常大,已选取块对下一次选择几乎没有影响,同时出错数据块比例相对较低。设ρ为出错数据块比例,p为第三方审计者检测出云存储服务提供商CSP数据出错的概率,c为需要验证的数据块的数量。那么,三者之间满足关系p=1-(1-ρ)c,不同出错比例和不同检测概率下需要验证的数据块数量见表1。当数据块错误率为1%时,第三方审计者仅需要审计460个数据块(常规审计数据块数),就能以高概率99%发现有错误的数据块,这使得审计计算代价和通信代价大大降低,且达到被数据拥有者所接受的实用水平。特别说明,在每次询问时,c个数据块的选择是随机的。
表1不同错误率和检测率的验证数据块数
Figure BDA0001930549180000061
3.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F,Φ,Ω,chal,pub)→P,生成完整性证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件及其对应的签名集合和标签集合{F,Φ,Ω}和接收到的挑战信息chal={s1,s2,…,sc}c≤n,生成完整性证据P=(ω,σ,τ),其中
Figure BDA0001930549180000062
然后将完整性证据P=(ω,σ,τ)作为存储数据的完整性证明发送给第三方审计者TPA;
这里需要进一步说明本发明抗数据泄露的原因。如公式(1)和(2)所示,每个数据块di,dj的数值均在生成元g的指数位置上。按目前密码学中离散对数求解困难性假设,第三方审计者是根本无法通过ω和τ的值获得数据块的信息。而目前多数技术的审计证明中包含c个挑战数据块的线性组合,这将导致第三方审计者TPA在重复积累c个挑战块的一定数量的证据之后,可通过解线性方程组容易地获取数据块内容,从而有泄露数据块内容的风险。为了解决这个问题,大多数审计方法利用随机掩码技术包装挑战数据块,来防止第三方审计者TPA获得数据的隐私,但这将增加额外的计算开销和通信开销。然而,本发明采用的方法巧妙的规避了该风险,该方法本身具有保护外包云存储数据的机密性和隐私性的良好性质,达到抗数据泄露的功能。
Figure BDA0001930549180000071
Figure BDA0001930549180000072
3.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI,pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据双链动态哈希表中的信息VI,对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure BDA0001930549180000073
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure BDA0001930549180000074
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,完整性验证通过;否则输出FALSE,表示验证失败。
一种支持用户全动态并行操作的抗泄露公开云审计方法,包括以下步骤:
1)建立
1.1)系统参数生成:
云存储服务提供商CSP利用参数生成算法ParamGen(1k)→(p,G,GT,g,e,H,N)生成系统参数cp并公开所生成的系统参数,具体为:
系统参数cp=(p,G,GT,g,e,H,N),其中大素数p取值是由安全参数k所决定,G、GT是阶为大素数p的乘法循环群,g为乘法循环群G的生成元,e:G×G→GT是一个双线性映射,H:{0,1}*→G是一个密码学安全的哈希函数,正整数N<2p
1.2)密钥生成:
数据拥有者DO利用密钥生成算法
Figure BDA0001930549180000081
生成密钥,具体为:
挑选两个随机数α←Zp和随机数γ←Zp
计算得到u←gα,进而得私钥sk=(α,γ)和公钥
Figure BDA0001930549180000082
数据拥有者DO初始化值
Figure BDA0001930549180000083
计算公开参数
Figure BDA0001930549180000084
公开公开参数pub;
2)存储
2.1)存储准备:
2.1.1)文件分块:
数据拥有者DO利用分块算法FileSplit(F,n)→(d1,d2,…,dn)对文件F进行分块,具体为:
将文件F分为n块{d1,d2,…,dn},其中di∈Zp且di≤N,i=1,2,…,n,文件F表示为F={d1,d2,…,dn},对应数据块索引集合为{1,2,…,n};
2.1.2)数据块版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(F)→(VI)创建所有数据块的版本信息,具体为:
数据块的版本信息VI={(vi,ti)|i=1,2,…,n},其中vi和ti分别表示数据块di的版本信息和建立版本信息时的时间戳;
2.1.3)生成数据块累加值:
数据拥有者DO利用累加值生成算法AccGen(F,pub)→accF计算所有数据块的累加值,具体为:
计算累加值
Figure BDA0001930549180000085
2.1.4)生成数据块签名:
数据拥有者DO利用签名生成算法SigGen(F,VI,sk,pub)→(Φ)计算所有数据块对应的签名,具体为:
计算签名
Figure BDA0001930549180000091
Figure BDA0001930549180000092
表示所有数据块对应的签名集合;
2.2)分发:
数据拥有者DO将文件F={d1,d2,…,dn}和签名集合
Figure BDA0001930549180000093
发送给云存储服务提供商CSP,云存储服务提供商CSP按数据块对应顺序存储文件F和签名集合Φ的内容;同时数据拥有者DO将数据块的版本信息VI={(vi,ti)|i=1,2,…,n}和累加值
Figure BDA0001930549180000094
发送给第三方审计者TPA,第三方审计者TPA将版本信息添加到双链的动态哈希表中存储,并存储数据块的累加值accF;确定云存储服务提供商CSP和第三方审计者TPA存储成功后,数据拥有者DO从本地存储中删除{F,Φ,VI},保留accF
2.3)生成数据块标签:
云存储服务提供商CSP利用数据块标签生成算法TagGen(F,pub)→(Ω)生成每个数据块di的对应标签
Figure BDA0001930549180000095
其中i=1,2,…,n,具体为:
计算标签
Figure BDA0001930549180000096
Figure BDA0001930549180000097
表示所有数据块对应的标签集合;
云存储服务提供商CSP存储标签集合Ω;
3)动态更新:对已存储的文件F进行动态操作并更新相关数据,得到新文件F'和对应的更新后相关数据;
4)动态更新验证:验证云存储服务提供商CSP是否正确执行了数据更新的操作。
进一步的,步骤3)动态更新操作为插入数据块,具体为:
3.a1)插入准备:
3.a1.1)数据拥有者DO确定插入文件F中的插入数据块
Figure BDA0001930549180000098
新文件形式化表示为F'=F∪D*;数据拥有者DO确定在文件F中的插入位置索引集合X和每个位置之后将被插入数据块的数量所组成的集合Y,其中X为文件F的索引集合{1,2,…,n}的子集X={i1,i2,…,ix},1≤x≤m,
Figure BDA0001930549180000099
表示X中的每个位置之后将要被插入数据块的数量,其中
Figure BDA0001930549180000101
Figure BDA0001930549180000102
具体描述为:在文件F第i1块之后插入
Figure BDA0001930549180000103
个数据块、第i2块之后插入
Figure BDA0001930549180000104
个数据块、…、第ix的块之后插入
Figure BDA0001930549180000105
个数据块;
3.a1.2)插入数据块D*的版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(D*)→(VI*)创建所有插入数据块对应的版本信息
Figure BDA0001930549180000106
其中
Figure BDA0001930549180000107
Figure BDA0001930549180000108
分别表示插入数据块
Figure BDA0001930549180000109
的版本信息和建立版本信息时的时间戳;
3.a1.3)更新数据块累加值:
数据拥有者DO利用插入数据块D*和保存在本地的原始累加值accF计算更新累加值
Figure BDA00019305491800001010
3.a1.4)生成插入数据块签名:
数据拥有者DO利用签名生成算法SigGen(D*,VI*,sk,pub)→(Φ*)计算所有插入数据块对应的签名,签名
Figure BDA00019305491800001011
Figure BDA00019305491800001012
表示所有插入数据块对应的签名集合;
3.a2)插入请求:
数据拥有者DO向云存储服务提供商CSP发送插入请求消息UCSP=(insert,X,Y,D**),并向第三方审计者TPA发送另一个插入请求消息UTPA=(insert,X,Y,VI*,accF'),其中insert表示插入操作请求;
3.a3)插入更新:
3.a3.1)更新双链动态哈希表和累加值:
第三方审计者TPA收到插入请求消息UTPA=(insert,X,Y,VI*,accF')之后,将插入数据块的版本信息VI*按位置添加到双链的动态哈希表中存储,得到更新后双链动态哈希表,令存储的新数据块版本信息为VI'=VI∪VI*;并用更新累加值accF'替换原始累加值accF
3.a3.2)更新文件集合:
在收到请求UCSP=(insert,X,Y,D**)后,云存储服务提供商CSP按照插入要求和数据块顺序将
Figure BDA00019305491800001013
进行插入存储,即在文件F第i1块之后插入
Figure BDA00019305491800001014
个数据块、第i2块之后插入
Figure BDA00019305491800001015
个数据块、…、第ix的块之后插入
Figure BDA00019305491800001016
个数据块,其中插入的数据块按照
Figure BDA0001930549180000111
的顺序,并输出新文件F'=F∪D*
3.a3.3)更新标签集合:
云存储服务提供商CSP采用公式(3)更新原文件F中所有数据块的标签并存储,利用公式(4)计算所有新插入数据块的标签并存储:
Figure BDA0001930549180000112
Figure BDA0001930549180000113
Figure BDA0001930549180000114
表示更新文件F'的所有数据块对应的标签集合;
3.3a.4)更新签名集合:
云存储服务提供商CSP将插入数据块对应的签名
Figure BDA0001930549180000115
按插入要求添加到签名集合中,令新的签名集合Φ'=Φ∪Φ*
进一步的,步骤3)动态更新操作为删除数据块,具体为:
3.b1)删除准备:
数据拥有者DO确定从文件F中删除的数据块位置索引集合X,其中X为文件F的位置索引集合{1,2,…,n}的子集,X={i1,i2,…,im},m≤n,具体描述为:将删除文件F的第i1块数据块、第i2块数据块、…、第im块数据块;
3.b2)删除请求:
数据拥有者DO向云存储服务提供商CSP发送删除请求消息UCSP=(delete,X),并向第三方审计者TPA发送另一个删除请求消息
Figure BDA00019305491800001111
其中delete表示删除操作请求;
3.b3)返回删除数据块:
令删除数据块集合为
Figure BDA0001930549180000116
云存储服务提供商CSP在收到删除请求消息UCSP=(delete,X)之后,向数据拥有者DO返还删除数据块集合
Figure BDA0001930549180000117
即第i1块数据块
Figure BDA0001930549180000118
第i2块数据块
Figure BDA0001930549180000119
…、第im块数据块
Figure BDA00019305491800001110
新文件形式化表示为F'=F\D#
3.b4)删除更新
3.b4.1)更新数据块累加值:
数据拥有者DO利用云存储服务提供商CSP返回的删除数据块集合
Figure BDA0001930549180000121
和保存在本地的原始累加值accF计算更新累加值
Figure BDA0001930549180000122
并发送二次删除请求消息
Figure BDA0001930549180000123
给第三方审计者TPA;
3.b4.2)更新双链动态哈希表和累加值:
第三方审计者TPA收到删除请求消息
Figure BDA0001930549180000124
和二次删除请求消息
Figure BDA0001930549180000125
之后,将对应位置X={i1,i2,…,im}的版本信息从双链动态哈希表中删除,得到更新后的双链动态哈希表,其中令存储的新数据块版本信息为
Figure BDA0001930549180000126
并用更新累加值accF'替换原始累加值accF
3.b4.3)更新标签集合:
在收到删除请求消息UCSP=(delete,X)后,云存储服务提供商CSP利用被删除数据块
Figure BDA0001930549180000127
采用公式(5)更新新文件F'中所有数据块的标签并存储:
Figure BDA0001930549180000128
令新文件F'中所有数据块的新标签集合
Figure BDA0001930549180000129
3.b4.4)更新文件集合:
云存储服务提供商CSP删除文件F中对应位置X={i1,i2,…,im}的数据块
Figure BDA00019305491800001210
得新文件F'=F\D#
3.b4.5)更新签名集合:
云存储服务提供商CSP删除对应位置的签名,得新的签名集合
Figure BDA00019305491800001211
进一步的,步骤3)动态更新操作为修改数据块,具体为:
3.c1)修改准备:
3.c1.1)数据拥有者DO确定文件F中被修改数据块的位置索引集合X,其中X为文件F的位置索引集合{1,2,…,n}的子集X={i1,i2,…,im},m≤n;数据拥有者DO同时确定这些位置修改后的数据块集合
Figure BDA00019305491800001212
具体描述为:修改文件F的第i1块数据块为
Figure BDA0001930549180000131
第i2块数据块为
Figure BDA0001930549180000132
…、第im块数据块为
Figure BDA0001930549180000133
3.c1.2)修改后数据块D*的版本信息初始化:数据拥有者DO利用数据版本信息初始化算法VIGen(D*)→(VI*)创建所有修改后数据块对应的版本信息
Figure BDA0001930549180000134
其中
Figure BDA0001930549180000135
Figure BDA0001930549180000136
分别表示修改后数据块
Figure BDA0001930549180000137
的版本信息和建立版本信息时的时间戳;
3.c1.3)生成修改数据块签名:
数据拥有者DO利用签名生成算法SigGen(D*,VI*,sk,pub)→(Φ*)计算所有修改后数据块对应的签名,签名
Figure BDA0001930549180000138
Figure BDA0001930549180000139
表示所有修改后数据块对应的签名集合;
3.c2)修改请求:
数据拥有者DO向云存储服务提供商CSP发送修改请求消息UCSP=(modify,X,D**),并向第三方审计者TPA发送另一个修改请求消息
Figure BDA00019305491800001310
其中modify表示修改操作请求;
3.c3)返回修改前数据块:
云存储服务提供商CSP在收到修改请求消息UCSP=(modify,X,D**)之后,向数据拥有者DO返还对应位置的数据块,即第i1块数据块
Figure BDA00019305491800001311
第i2块数据块
Figure BDA00019305491800001312
…、第im块数据块
Figure BDA00019305491800001313
令修改前的数据块集合为
Figure BDA00019305491800001314
即云存储服务提供商CSP向数据拥有者DO返还
Figure BDA00019305491800001315
新文件形式化表示为F'=(F\D^)∪D*
3.c4)修改更新
3.c4.1)更新数据块累加值:
数据拥有者DO根据修改前数据块集合
Figure BDA00019305491800001316
修改后数据块
Figure BDA00019305491800001317
以及保存在本地的原始累加值accF计算更新累加值
Figure BDA00019305491800001318
并发送二次修改请求消息
Figure BDA00019305491800001320
给第三方审计者TPA;
3.c4.2)更新双链动态哈希表和累加值:
第三方审计者TPA收到修改请求消息
Figure BDA00019305491800001319
和二次修改请求消息
Figure BDA0001930549180000141
之后,将双链动态哈希表中对应位置X={i1,i2,…,im}的版本信息用
Figure BDA0001930549180000142
替换,得到更新后的双链动态哈希表,令修改后的数据块集合对应的版本信息为
Figure BDA0001930549180000143
并用更新累加值accF'替换原始累加值accF
3.c4.3)更新标签集合:
在收到修改请求消息UCSP=(modify,X,D**)后,云存储服务提供商CSP根据修改前数据块集合
Figure BDA0001930549180000144
和修改后数据块集合
Figure BDA0001930549180000145
采用公式(6)更新新文件F'中未被修改的所有数据块标签并存储,再利用公式(7)计算修改后的数据块的标签并存储:
Figure BDA0001930549180000146
Figure BDA0001930549180000147
令新文件F'的所有数据块标签集合为
Figure BDA0001930549180000148
3.c4.4)更新文件集合:
云存储服务提供商CSP将文件F中位置为X={i1,i2,…,im}的数据块
Figure BDA0001930549180000149
修改为
Figure BDA00019305491800001410
得新文件F'=(F\D^)∪D*
3.c4.5)更新签名集合:
云存储服务提供商CSP用
Figure BDA00019305491800001411
替换对应位置数据块的签名,得新的签名集合
Figure BDA00019305491800001412
进一步的,步骤4)验证云存储服务提供商CSP是否正确执行了数据更新的操作,具体包括:
4.1)生成挑战请求:
令新文件F'的数据块总块数为M,第三方审计者TPA利用挑战请求算法ChalGen(M,c)→chal,从文件F'的数据块索引集合{1,2,…,M}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤M,作为挑战请求信息发送给云存储服务提供商CSP,其中,这c个挑战索引随机生成,可以不包括曾经挑战过的数据块;
4.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F',Φ',Ω',chal,pub)→P,生成审计证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件F'及其对应的更新签名集合和标签集合{F',Φ',Ω'}和接收到的挑战信息chal={s1,s2,…,sc}c≤M,生成更新验证证据P=(ω,σ,τ),其中
Figure BDA0001930549180000151
然后将证据P=(ω,σ,τ)作为动态操作执行证明发送给第三方审计者TPA;
4.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI',pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA利用更新后双链动态哈希表中的信息VI'对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure BDA0001930549180000152
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure BDA0001930549180000153
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,云存储服务提供商CSP按要求执行了动态更新操作;否则输出FALSE,表示云存储服务提供商CSP未按要求执行动态更新操作。
本发明所具有的有益效果
1、公开审计。本发明支持可信第三方审计,可以提供可靠的审计结果。
2、抗泄露。本发明的审计阶段并不需要第三方审计者TPA对所有的数据块进行完整性验证,而是采用概率性的策略验证整个文件的完整性和正确性,即随机挑选少部分数据块进行挑战询问,这将大大减少审计的计算开销和通信开销。特别地,不同于传统基于同态签名的认证,本发明采用动态累加器这一新型的数据认证结构巧妙地规避了泄露挑战数据块隐私的风险。该方法本身就具有保护外包云存储数据的机密性和隐私性的良好性质,达到抗数据泄露的功能。
3、动态更新。本发明提供对云审计数据块插入、删除和修改的全动态更新功能,且支持多个数据块并行操作。同时,当发生动态更新后,第三方审计者TPA执行一次“挑战-响应”过程即可检查云服务提供商CSP是否按数据拥有者DO的要求正确执行了数据更新的操作。
4、性能优良。本发明经过实验模拟和分析,可以看出本发明方法相比现有技术性能更优良,实现低通信开销、低计算开销、低存储开销。
附图说明
图1为本发明的系统模型图;
图2为本发明中TPA存储的双链动态哈希表示意图;
图3为本发明中TPA在双链动态哈希表中插入数据块示意图;
图4为本发明中TPA在双链动态哈希表中删除数据块示意图;
图5为本发明中TPA在双链动态哈希表中修改数据块示意图;
图6为本发明方法与现有技术在存储阶段产生的通信量比较图;
图7为本发明方法与现有技术在审计阶段产生的通信量比较图;
图8为本发明方法与现有技术在存储阶段所需的计算代价比较图;
图9为本发明方法与现有技术CSP产生证据时的计算代价比较图;
图10为本发明方法与现有技术TPA验证证据时的计算代价比较图。
具体实施方式
本发明的系统模型由三个实体构成,即云存储服务提供商CSP,数据拥有者DO及第三方审计者TPA,如图1所示。下面结合附图对本发明的具体的实施方式进一步详细说明。
实施例1:文件存储与审计
1)建立
1.1)系统参数生成:
云存储服务提供商CSP利用参数生成算法ParamGen(1k)→(p,G,GT,g,e,H,N)生成系统参数cp并公开所生成的系统参数,具体为:
云存储服务提供商CSP首先选择一个合适的素数生成算法,并根据安全参数k生成大素数p,使得素数p的二进制比特长度大于等于k;
其次,在PBC密码库环境下随机选择两个p阶的乘法循环群G和GT,并选定乘法循环群G的生成元g,且规定一个双线性映射e:G×G→GT
然后,利用Cryptopp密码库选择一个抗强碰撞的哈希函数H,如MD5算法或者SHA1算法,将任意长度的二进制串作为函数输入,且输出为乘法循环群中的任意一个值,形式化表达为H:{0,1}*→G,其中所述的抗强碰撞表示在该哈希函数定义域内找不到一对数值m≠m'使得H(m)=H(m');
最后,根据公开参数p确定的一个正整数N<2p,具体地,选定整数N=20。
综上,云存储服务提供商CSP公开系统参数cp=(p,G,GT,g,e,H,20)。
1.2)密钥生成:
数据拥有者DO利用密钥生成算法
Figure BDA0001930549180000171
生成密钥,具体为:
挑选两个随机数α←Zp和随机数γ←Zp
计算得到u←gα
得私钥sk=(α,γ),且公钥
Figure BDA0001930549180000172
Figure BDA0001930549180000173
数据拥有者DO初始化值
Figure BDA0001930549180000174
计算公开参数
Figure BDA0001930549180000175
公开公开参数pub;
2)存储
2.1)存储准备:
2.1.1)文件分块:
数据拥有者DO利用分块算法FileSplit(F,n)→(d1,d2,…,dn)对文件F进行分块,具体为:
将文件F分为10块{d1,d2,…,d10},且每个数据块具体的十进制值如表1所示,即F={2,3,6,13,5,4,8,11,15,7},其中di∈Zp且其中di∈Zp且di≤20,i=1,2,…,10,对应数据块索引集合为{1,2,…,10};
表1具体实例中10个文件分块的十进制值
Figure BDA0001930549180000176
2.1.2)数据块版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(F)→(VI)创建所有数据块的版本信息,具体为:
数据块的版本信息VI={(vi,ti)|i=1,2,…,10},其中vi和ti分别表示数据块di的版本信息和建立版本信息时的时间戳;
2.1.3)生成数据块累加值:
数据拥有者DO利用累加值生成算法AccGen(F,pub)→accF计算所有数据块的累加值,具体为:
对于存储文件F={d1,d2,…,d10},数据拥有者DO根据pub计算它的累加值
Figure BDA0001930549180000181
具体如公式(1):
Figure BDA0001930549180000182
2.1.4)生成数据块签名:
数据拥有者DO利用签名生成算法SigGen(F,VI,sk,pub)→(Φ)计算所有数据块对应的签名,具体为:
计算签名
Figure BDA0001930549180000183
Figure BDA0001930549180000184
表示所有数据块对应的签名集合;
2.2)分发:
数据拥有者DO将文件F={d1,d2,…,d10}和签名集合
Figure BDA0001930549180000185
发送给云存储服务提供商CSP,云存储服务提供商CSP按数据块对应顺序存储F和Φ的内容;同时数据拥有者DO将数据块的版本信息VI={(vi,ti)|i=1,2,…,10}和累加值accF发送给第三方审计者TPA,第三方审计者TPA将版本信息添加到双链的动态哈希表中存储,如图2所示,并存储数据块的累加值accF;确定云存储服务提供商CSP和第三方审计者TPA存储成功后,数据拥有者DO从本地存储中删除{F,Φ,VI},保留accF
2.3)生成数据块标签:
云存储服务提供商CSP利用数据块标签生成算法TagGen(F,pub)→(Ω)生成每个数据块di的对应标签
Figure BDA0001930549180000191
其中i=1,2,…,10,具体为:
计算标签
Figure BDA0001930549180000192
具体地,数据块d1的标签
Figure BDA0001930549180000193
的计算如公式(2)所示,类似地,计算每个数据块的标签
Figure BDA0001930549180000194
结果如下表2所示;
Figure BDA0001930549180000195
Figure BDA0001930549180000196
表示所有数据块对应的标签集合;
云存储服务提供商CSP存储标签集合
Figure BDA0001930549180000197
表2具体实例中10个数据块的标签表示
Figure BDA0001930549180000198
3)审计
3.1)生成挑战请求:
第三方审计者TPA利用挑战请求算法ChalGen(n,c)→chal生成审计挑战,具体为:
从文件F的数据块索引集合{1,2,…,10}中随机挑取出2个索引,第三方审计者TPA挑战询问第3块数据块和第7块数据块来检查整个文件的完整性和正确性,记为chal={3,7},作为挑战请求信息发送给云存储服务提供商CSP;
3.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F,Φ,Ω,chal,pub)→P,生成完整性证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件及其对应的签名集合和标签集合{F,Φ,Ω}和接收到的挑战信息chal={3,7},生成完整性证据P=(ω,σ,τ);其中
Figure BDA0001930549180000201
然后将完整性证据P=(ω,σ,τ)作为存储数据的完整性证明发送给第三方审计者TPA;
3.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI,pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据双链动态哈希表中的信息VI,对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal},即{H(v3||t3),H(v7||t7)};
检验等式一验证τ的合法性:
检验等式一
Figure BDA0001930549180000202
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure BDA0001930549180000203
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,完整性验证通过;否则输出FALSE,表示验证失败。
实施例2:在原始存储文件的基础上进行动态更新并验证:插入数据块
2.1)插入准备:
2.1.1)数据拥有者DO确定插入文件F中的插入数据块d*=12,新文件形式化表示为F'=F∪{d*}={2,3,6,13,12,5,4,8,11,15,7},记D*={d*}={12};数据拥有者DO确定在文件F中的插入位置索引集合X={5}和每个位置之后将被插入数据块的数量所组成的集合Y={1},其中X为文件F的索引集合{1,2,…,10}的子集,Y={1}表示X中的每个位置之后将要被插入数据块的数量,此实例具体描述为:在文件F的第5块数据块之后插入1个数据块;
2.1.2)插入数据块D*的版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(D*)→(VI*)创建插入数据块对应的版本信息VI*={(v*,t*)},其中v*和t*分别表示插入数据块d*的版本信息和建立版本信息时的时间戳;
2.1.3)更新数据块累加值:
数据拥有者DO利用插入数据块D*和保存在本地的原始累加值accF计算更新累加值
Figure BDA0001930549180000211
2.1.4)生成插入数据块签名:
数据拥有者DO利用签名生成算法SigGen(D*,VI*,sk,pub)→(Φ*)计算所有插入数据块对应的签名,签名
Figure BDA0001930549180000212
Figure BDA0001930549180000213
表示插入数据块对应的签名集合;
2.2)插入请求:
数据拥有者DO向云存储服务提供商CSP发送插入请求消息UCSP=(insert,X,Y,D**),即
Figure BDA0001930549180000214
并向第三方审计者TPA发送另一个插入请求消息UTPA=(insert,X,Y,VI*,accF'),即UTPA=(insert,5,1,VI*,accF'),其中insert表示插入操作请求;
2.3)插入更新:
2.3.1)更新双链动态哈希表和累加值:
第三方审计者TPA收到插入请求消息UTPA=(insert,5,1,VI*,accF')之后,将插入数据块的版本信息VI*={(v*,t*)}按位置添加到双链的动态哈希表中存储,如图3所示,得到更新后双链动态哈希表,令存储的新数据块版本信息为VI'=VI∪VI*;并用更新累加值accF'替换原始累加值accF
2.3.2)更新文件集合:
在收到请求
Figure BDA0001930549180000215
后,云存储服务提供商CSP按照插入要求和数据块顺序将D*={d*}={12}进行插入存储,即在文件F的第5块数据块之后插入1个数据块d*=12,并输出新文件F'=F∪D*
2.3.3)更新标签集合:
云存储服务提供商CSP采用公式(3)更新原文件F中所有数据块的标签并存储,具体地,如公式(4)计算原文件中第1个数据块d1的新标签,类似地,其余数据块更新情况如表3所示;利用公式(5)计算新插入数据块的标签并存储:
Figure BDA0001930549180000216
Figure BDA0001930549180000217
Figure BDA0001930549180000221
Figure BDA0001930549180000222
表示更新文件F'的所有数据块对应的标签集合;
表3具体实例中原文件F中10个数据块的标签更新表示
Figure BDA0001930549180000223
2.3.4)更新签名集合:
云存储服务提供商CSP将插入数据块对应的签名
Figure BDA0001930549180000224
按插入要求添加到签名集合中,令新的签名集合
Figure BDA0001930549180000225
2.4)插入验证:验证云存储服务提供商CSP是否正确执行了数据插入的操作
2.4.1)生成挑战请求:
令新文件F'的数据块总块数为M=11,第三方审计者TPA利用挑战请求算法ChalGen(11,c)→chal,从文件F'的数据块索引集合{1,2,…,11}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤11,作为挑战请求信息发送给云存储服务提供商CSP,其中,这c个挑战索引随机生成,可以不包括曾经挑战过的数据块;
2.4.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F',Φ',Ω',chal,pub)→P,生成审计证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件F'及其对应的更新签名集合和标签集合{F',Φ',Ω'}和接收到的挑战信息chal={s1,s2,…,sc}c≤11,生成更新验证证据P=(ω,σ,τ),其中
Figure BDA0001930549180000226
然后将证据P=(ω,σ,τ)作为动态插入操作执行证明发送给第三方审计者TPA;
2.4.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI',pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据更新后双链动态哈希表中的信息VI'对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure BDA0001930549180000231
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure BDA0001930549180000232
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,云存储服务提供商CSP按要求执行了动态插入更新操作;否则输出FALSE,表示云存储服务提供商CSP未按要求执行动态插入更新操作。
实施例3:在原始存储文件的基础上进行动态更新并验证:删除数据块
3.1)删除准备:
数据拥有者DO确定从文件F中删除的数据块位置索引集合X={6},其中X为文件F的位置索引集合{1,2,…,n}的子集,具体描述为:将删除文件F的第6块数据块;
3.2)删除请求:
数据拥有者DO向云存储服务提供商CSP发送删除请求消息UCSP=(delete,X),即UCSP=(delete,6),并向第三方审计者TPA发送另一个删除请求消息
Figure BDA0001930549180000233
Figure BDA0001930549180000234
其中delete表示删除操作请求;
3.3)返回删除数据块:
令删除数据块集合为D#={d6}={4},云存储服务提供商CSP在收到删除请求消息UCSP=(delete,6)之后,向数据拥有者DO返还删除数据块集合D#={d6}={4},即第6块数据块d6=4;新文件形式化表示为F'=F\{d6}={2,3,6,13,5,8,11,15,7};
3.4)删除更新:
3.4.1)更新数据块累加值:
数据拥有者DO利用云存储服务提供商CSP返回的删除数据块集合D#={d6}={4}和保存在本地的原始累加值accF计算更新累加值
Figure BDA0001930549180000241
并发送二次删除请求消息
Figure BDA0001930549180000242
给第三方审计者TPA;
3.4.2)更新双链动态哈希表和累加值:
第三方审计者TPA收到删除请求消息
Figure BDA0001930549180000243
和二次删除请求消息
Figure BDA0001930549180000244
之后,将对应位置第6块的版本信息从双链动态哈希表中删除,得到更新后的双链动态哈希表,如图4所示,其中令存储的新数据块版本信息为VI'=VI\{(v6,t6)};并用更新累加值accF'替换原始累加值accF
3.4.3)更新标签集合:
在收到删除请求消息UCSP=(delete,6)后,云存储服务提供商CSP利用被删除数据块D#={d6}={4},采用公式(6)更新新文件F'中所有数据块的标签并存储,具体地,如公式(7)计算新文件中第一个数据块d1的新标签,类似地,其余数据块更新情况如表4所示:
Figure BDA0001930549180000245
Figure BDA0001930549180000246
令新文件F'中所有数据块的新标签集合
Figure BDA0001930549180000247
表4具体实例中新文件中9个数据块的标签更新表示
Figure BDA0001930549180000248
3.4.4)更新文件集合:
云存储服务提供商CSP删除文件F中对应位置X={6}的数据块D#={d6}={4},得新文件F'=F\D#
3.4.5)更新签名集合:
云存储服务提供商CSP删除对应位置的签名,得新的签名集合
Figure BDA0001930549180000251
3.5)删除验证:验证云存储服务提供商CSP是否正确执行了数据删除的操作
3.5.1)生成挑战请求:
令新文件F'的数据块总块数为M=9,第三方审计者TPA利用挑战请求算法ChalGen(9,c)→chal,从文件F'的数据块索引集合{1,2,…,9}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤9,作为挑战请求信息发送给云存储服务提供商CSP,其中,这c个挑战索引随机生成,可以不包括曾经挑战过的数据块;
3.5.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F',Φ',Ω',chal,pub)→P,生成审计证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件F'及其对应的更新签名集合和标签集合{F',Φ',Ω'}和接收到的挑战信息chal={s1,s2,…,sc}c≤11,生成更新验证证据P=(ω,σ,τ),其中
Figure BDA0001930549180000252
然后将证据P=(ω,σ,τ)作为动态删除操作执行证明发送给第三方审计者TPA;
3.5.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI',pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据更新后双链动态哈希表中的信息VI'对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure BDA0001930549180000253
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure BDA0001930549180000254
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,云存储服务提供商CSP按要求执行了动态删除更新操作;否则输出FALSE,表示云存储服务提供商CSP未按要求执行动态删除更新操作。
实施例4:在原始存储文件的基础进行动态更新并验证:修改数据块
4.1)修改准备:
4.1.1)数据拥有者DO确定文件F中被修改数据块的位置索引集合X={8},其中X为文件F的位置索引集合{1,2,…,10}的子集;数据拥有者DO同时确定这些位置修改后的数据块集合
Figure BDA0001930549180000261
具体描述为:修改文件F的第8块数据块为
Figure BDA0001930549180000262
4.1.2)修改后数据块D*的版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(D*)→(VI*)创建所有修改后数据块对应的版本信息
Figure BDA0001930549180000263
其中
Figure BDA0001930549180000264
Figure BDA0001930549180000265
分别表示修改后数据块
Figure BDA0001930549180000266
的版本信息和建立版本信息时的时间戳;
4.1.3)生成修改数据块签名:
数据拥有者DO利用签名生成算法SigGen(D*,VI*,sk,pub)→(Φ*)计算所有修改后数据块对应的签名,签名
Figure BDA0001930549180000267
Figure BDA0001930549180000268
表示修改后数据块对应的签名集合;
4.2)修改请求:
数据拥有者DO向云存储服务提供商CSP发送修改请求消息UCSP=(modify,X,D**),即UCSP=(modify,8,D**),并向第三方审计者TPA发送另一个修改请求消息
Figure BDA0001930549180000269
Figure BDA00019305491800002610
其中modify表示修改操作请求;
4.3)返回修改前数据块:
云存储服务提供商CSP在收到修改请求消息UCSP=(modify,8,D**)之后,向数据拥有者DO返还对应位置的数据块,即第8块数据块d8=11,令修改前的数据块集合为D^={d8}={11},即云存储服务提供商CSP向数据拥有者DO返还D^={d8}={11},新文件形式化表示为
Figure BDA00019305491800002611
4.4)修改更新
4.4.1)更新数据块累加值:
数据拥有者DO根据修改前数据块集合D^={d8}={11}、修改后数据块
Figure BDA00019305491800002612
以及保存在本地的原始累加值accF计算更新累加值
Figure BDA0001930549180000271
并发送二次修改请求消息
Figure BDA0001930549180000272
给第三方审计者TPA;
4.4.2)更新双链动态哈希表和累加值:
第三方审计者TPA收到修改请求消息
Figure BDA0001930549180000273
和二次修改请求消息
Figure BDA0001930549180000274
之后,将双链动态哈希表中对应位置X={8}第8块的版本信息用
Figure BDA0001930549180000275
替换,得到更新后的双链动态哈希表,如图5所示,令修改后的数据块集合对应的版本信息为VI'=VI\{(v8,t8)}∪VI*,并用更新累加值accF'替换原始累加值accF
4.4.3)更新标签集合:
在收到修改请求消息UCSP=(modify,8,D**)后,云存储服务提供商CSP根据修改前数据块集合D^={d8}={11}和修改后数据块集合
Figure BDA0001930549180000276
采用公式(8)更新新文件中未被修改过的所有块标签并存储,具体地,如公式(9)计算文件中第1个数据块d1的新标签,类似地,其余数据块更新情况如表5所示;并利用公式(10)计算所有修改后数据块的标签并存储:
Figure BDA0001930549180000277
Figure BDA0001930549180000278
Figure BDA0001930549180000279
令新文件F'的所有数据块标签集合为
Figure BDA00019305491800002710
表5具体实例中新文件中未被修改的9个数据块标签更新表示
Figure BDA0001930549180000281
4.4.4)更新文件集合:
云存储服务提供商CSP将文件F中位置为X={8}的数据块D^={d8}={11}修改为
Figure BDA0001930549180000282
得新文件
Figure BDA0001930549180000283
4.4.5)更新签名集合:
云存储服务提供商CSP用
Figure BDA0001930549180000284
替换对应位置数据块的签名,得新的签名集合
Figure BDA0001930549180000285
4.5)修改验证:验证云存储服务提供商CSP是否正确执行了数据修改的操作
4.5.1)生成挑战请求:
令新文件F'的数据块总块数为M=10,第三方审计者TPA利用挑战请求算法ChalGen(10,c)→chal,从文件F'的数据块索引集合{1,2,…,10}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤10,作为挑战请求信息发送给云存储服务提供商CSP,其中,这c个挑战索引随机生成,可以不包括曾经挑战过的数据块;
4.5.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F',Φ',Ω',chal,pub)→P,生成审计证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件F'及其对应的更新签名集合和标签集合{F',Φ',Ω'}和接收到的挑战信息chal={s1,s2,…,sc}c≤11,生成更新验证证据P=(ω,σ,τ),其中
Figure BDA0001930549180000286
然后将证据P=(ω,σ,τ)作为动态修改操作执行证明发送给第三方审计者TPA;
4.5.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI',pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据更新后双链动态哈希表中的信息VI'对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure BDA0001930549180000291
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure BDA0001930549180000292
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,云存储服务提供商CSP按要求执行了动态修改更新操作;否则输出FALSE,表示云存储服务提供商CSP未按要求执行动态修改更新操作。
为了更贴切地模拟本发明方法的主要核心步骤,因此进行了数值更大的实验模拟。经过基于PBC库平台的实验模拟和分析,可以看出本发明方法相比现有技术性能更优良,实现了低通信开销、低计算开销、低存储开销。具体对比结果如图6-10所示。
其中图6为本发明方法与现有技术在存储阶段所产生的通信量比较图,从图6中可以看出本发明在存储阶段所产生的通信量比较低;图7为本发明方法与现有技术在审计阶段所产生的通信量比较图,从图7中不难看出本发明方法在审计阶段所产生的通信量非常低,相比其他技术而言这是一个很大的优势;图8为本发明方法与现有技术在存储阶段所需的计算代价比较图,从图8中可以看出本发明方法在存储阶段所需的计算代价最低,这对于计算资源有限的数据拥有者DO来说是非常重要的一个优点,这将更适用于资源有限的用户;图9为本发明方法与现有技术在云服务提供商CSP产生证据时的计算代价比较图,从图9中不难看出本发明方法中云服务提供商CSP产生证据的计算代价最低,这有利于云服务提供商CSP,因为在实际情况下对于需要执行多任务的云服务提供商来说能实现更快速地处理审计任务;图10为本发明方法与现有技术在第三方审计者TPA验证证据时计算代价的比较图,从图10中不难看出本发明方法在第三方审计者TPA验证证据时的计算代价非常低,这将使得第三方审计者可以以更少的计算代价就完成审计证据的验证,这有非常重要的实际意义。

Claims (6)

1.一种抗泄露公开云审计方法,包括以下步骤:
1)建立
1.1)系统参数生成:
云存储服务提供商CSP利用参数生成算法ParamGen(1k)→(p,G,GT,g,e,H,N)生成系统参数cp并公开所生成的系统参数,具体为:
系统参数cp=(p,G,GT,g,e,H,N),其中大素数p取值是由安全参数k所决定,G、GT是阶为大素数p的乘法循环群,g为乘法循环群G的生成元,e():G×G→GT是一个双线性映射,H:{0,1}*→G是一个密码学安全的哈希函数,正整数N<2p
1.2)密钥生成:
数据拥有者DO利用密钥生成算法
Figure FDA0003206721960000011
生成密钥,具体为:
挑选两个随机数α←Zp和随机数γ←Zp
计算得到u←gα,进而得私钥sk=(α,γ)和公钥
Figure FDA0003206721960000012
数据拥有者DO初始化值
Figure FDA0003206721960000013
计算公开参数
Figure FDA0003206721960000014
公开公开参数pub;
2)存储
2.1)存储准备:
2.1.1)文件分块:
数据拥有者DO利用分块算法FileSplit(F,n)→(d1,d2,…,dn)对文件F进行分块,具体为:
将文件F分为n块{d1,d2,…,dn},其中di∈Zp且di≤N,i=1,2,…,n,文件F表示为F={d1,d2,…,dn},对应数据块索引集合为{1,2,…,n};
2.1.2)数据块版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(F)→(VI)创建所有数据块的版本信息,具体为:
数据块的版本信息VI={(vi,ti)|i=1,2,…,n},其中vi和ti分别表示数据块di的版本信息和建立版本信息时的时间戳;
2.1.3)生成数据块累加值:
数据拥有者DO利用累加值生成算法AccGen(F,pub)→accF计算所有数据块的累加值,具体为:
计算累加值
Figure FDA0003206721960000021
2.1.4)生成数据块签名:
数据拥有者DO利用签名生成算法SigGen(F,VI,sk,pub)→(Φ)计算所有数据块对应的签名,具体为:
计算签名
Figure FDA0003206721960000022
Figure FDA0003206721960000023
表示所有数据块对应的签名集合;
2.2)分发:
数据拥有者DO将文件F={d1,d2,…,dn}和签名集合
Figure FDA0003206721960000024
发送给云存储服务提供商CSP,云存储服务提供商CSP按数据块对应顺序存储文件F和签名集合Φ的内容;同时数据拥有者DO将数据块的版本信息VI={(vi,ti)|i=1,2,…,n}和累加值
Figure FDA0003206721960000025
发送给第三方审计者TPA,第三方审计者TPA将版本信息添加到双链的动态哈希表中存储,并存储数据块的累加值accF;确定云存储服务提供商CSP和第三方审计者TPA存储成功后,数据拥有者DO从本地存储中删除{F,Φ,VI},保留accF
2.3)生成数据块标签:
云存储服务提供商CSP利用数据块标签生成算法TagGen(F,pub)→(Ω)生成每个数据块di的对应标签
Figure FDA0003206721960000026
其中i=1,2,…,n,具体为:
计算标签
Figure FDA0003206721960000027
Figure FDA0003206721960000028
表示所有数据块对应的标签集合;
云存储服务提供商CSP存储标签集合Ω;
3)审计
3.1)生成挑战请求:
第三方审计者TPA利用挑战请求算法ChalGen(n,c)→chal生成审计挑战,具体为:
从文件F的数据块索引集合{1,2,…,n}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤n,作为挑战请求信息发送给云存储服务提供商CSP;
3.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F,Φ,Ω,chal,pub)→P,生成完整性证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件及其对应的签名集合和标签集合{F,Φ,Ω}和接收到的挑战信息chal={s1,s2,…,sc}c≤n,生成完整性证据P=(ω,σ,τ),其中
Figure FDA0003206721960000031
然后将完整性证据P=(ω,σ,τ)作为存储数据的完整性证明发送给第三方审计者TPA;
3.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI,pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据双链动态哈希表中的信息VI,对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure FDA0003206721960000032
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure FDA0003206721960000033
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,完整性验证通过;否则输出FALSE,表示验证失败。
2.一种支持用户全动态并行操作的抗泄露公开云审计方法,包括以下步骤:
1)建立
1.1)系统参数生成:
云存储服务提供商CSP利用参数生成算法ParamGen(1k)→(p,G,GT,g,e,H,N)生成系统参数cp并公开所生成的系统参数,具体为:
系统参数cp=(p,G,GT,g,e,H,N),其中大素数p取值是由安全参数k所决定,G、GT是阶为大素数p的乘法循环群,g为乘法循环群G的生成元,e():G×G→GT是一个双线性映射,H:{0,1}*→G是一个密码学安全的哈希函数,正整数N<2p
1.2)密钥生成:
数据拥有者DO利用密钥生成算法
Figure FDA0003206721960000041
生成密钥,具体为:
挑选两个随机数α←Zp和随机数γ←Zp
计算得到u←gα,进而得私钥sk=(α,γ)和公钥
Figure FDA0003206721960000042
数据拥有者DO初始化值
Figure FDA0003206721960000043
计算公开参数
Figure FDA0003206721960000044
公开公开参数pub;
2)存储
2.1)存储准备:
2.1.1)文件分块:
数据拥有者DO利用分块算法FileSplit(F,n)→(d1,d2,…,dn)对文件F进行分块,具体为:
将文件F分为n块{d1,d2,…,dn},其中di∈Zp且di≤N,i=1,2,…,n,文件F表示为F={d1,d2,…,dn},对应数据块索引集合为{1,2,…,n};
2.1.2)数据块版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(F)→(VI)创建所有数据块的版本信息,具体为:
数据块的版本信息VI={(vi,ti)|i=1,2,…,n},其中vi和ti分别表示数据块di的版本信息和建立版本信息时的时间戳;
2.1.3)生成数据块累加值:
数据拥有者DO利用累加值生成算法AccGen(F,pub)→accF计算所有数据块的累加值,具体为:
计算累加值
Figure FDA0003206721960000045
2.1.4)生成数据块签名:
数据拥有者DO利用签名生成算法SigGen(F,VI,sk,pub)→(Φ)计算所有数据块对应的签名,具体为:
计算签名
Figure FDA0003206721960000051
Figure FDA0003206721960000052
表示所有数据块对应的签名集合;
2.2)分发:
数据拥有者DO将文件F={d1,d2,…,dn}和签名集合
Figure FDA0003206721960000053
发送给云存储服务提供商CSP,云存储服务提供商CSP按数据块对应顺序存储文件F和签名集合Φ的内容;同时数据拥有者DO将数据块的版本信息VI={(vi,ti)|i=1,2,…,n}和累加值
Figure FDA0003206721960000054
发送给第三方审计者TPA,第三方审计者TPA将版本信息添加到双链的动态哈希表中存储,并存储数据块的累加值accF;确定云存储服务提供商CSP和第三方审计者TPA存储成功后,数据拥有者DO从本地存储中删除{F,Φ,VI},保留accF
2.3)生成数据块标签:
云存储服务提供商CSP利用数据块标签生成算法TagGen(F,pub)→(Ω)生成每个数据块di的对应标签
Figure FDA0003206721960000055
其中i=1,2,…,n,具体为:
计算标签
Figure FDA0003206721960000056
Figure FDA0003206721960000057
表示所有数据块对应的标签集合;
云存储服务提供商CSP存储标签集合Ω;
3)动态更新:对已存储的文件F进行动态操作并更新相关数据,得到新文件F'和对应的更新后相关数据;
4)动态更新验证:验证云存储服务提供商CSP是否正确执行了数据更新的操作。
3.根据权利要求2所述的支持用户全动态并行操作的抗泄露公开云审计方法,其特征在于:
步骤3)动态更新操作为插入数据块,具体为:
3.a1)插入准备:
3.a1.1)数据拥有者DO确定插入文件F中的插入数据块
Figure FDA0003206721960000058
新文件形式化表示为F'=F∪D*;数据拥有者DO确定在文件F中的插入位置索引集合X和每个位置之后将被插入数据块的数量所组成的集合Y,其中X为文件F的索引集合{1,2,…,n}的子集X={i1,i2,…,ix},1≤x≤m,
Figure FDA0003206721960000059
表示X中的每个位置之后将要被插入数据块的数量,其中
Figure FDA0003206721960000061
Figure FDA0003206721960000062
具体描述为:在文件F第i1块之后插入
Figure FDA0003206721960000063
个数据块、第i2块之后插入
Figure FDA0003206721960000064
个数据块、…、第ix的块之后插入
Figure FDA0003206721960000065
个数据块;
3.a1.2)插入数据块D*的版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(D*)→(VI*)创建所有插入数据块对应的版本信息
Figure FDA0003206721960000066
其中
Figure FDA0003206721960000067
Figure FDA0003206721960000068
分别表示插入数据块
Figure FDA0003206721960000069
的版本信息和建立版本信息时的时间戳;
3.a1.3)更新数据块累加值:
数据拥有者DO利用插入数据块D*和保存在本地的原始累加值accF计算更新累加值
Figure FDA00032067219600000610
3.a1.4)生成插入数据块签名:
数据拥有者DO利用签名生成算法
Figure FDA00032067219600000611
计算所有插入数据块对应的签名,签名
Figure FDA00032067219600000612
Figure FDA00032067219600000613
表示所有插入数据块对应的签名集合;
3.a2)插入请求:
数据拥有者DO向云存储服务提供商CSP发送插入请求消息UCSP=(insert,X,Y,D**),并向第三方审计者TPA发送另一个插入请求消息UTPA=(insert,X,Y,VI*,accF'),其中insert表示插入操作请求;
3.a3)插入更新:
3.a3.1)更新双链动态哈希表和累加值:
第三方审计者TPA收到插入请求消息UTPA=(insert,X,Y,VI*,accF')之后,将插入数据块的版本信息VI*按位置添加到双链动态哈希表中存储,得到更新后双链动态哈希表,令存储的新数据块版本信息为VI'=VI∪VI*;并用更新累加值accF'替换原始累加值accF
3.a3.2)更新文件集合:
在收到请求UCSP=(insert,X,Y,D**)后,云存储服务提供商CSP按照插入要求和数据块顺序将
Figure FDA00032067219600000614
进行插入存储,即在文件F第i1块之后插入
Figure FDA00032067219600000615
个数据块、第i2块之后插入
Figure FDA00032067219600000616
个数据块、…、第ix的块之后插入
Figure FDA00032067219600000617
个数据块,其中插入的数据块按照
Figure FDA0003206721960000071
的顺序,并输出新文件F'=F∪D*
3.a3.3)更新标签集合:
云存储服务提供商CSP采用公式(1)更新原文件F中所有数据块的标签并存储,利用公式(2)计算所有新插入数据块的标签并存储:
Figure FDA0003206721960000072
Figure FDA0003206721960000073
Figure FDA0003206721960000074
表示更新文件F'的所有数据块对应的标签集合;
3.3a.4)更新签名集合:
云存储服务提供商CSP将插入数据块对应的签名
Figure FDA0003206721960000075
按插入要求添加到签名集合中,令新的签名集合Φ'=Φ∪Φ*
4.根据权利要求2所述的支持用户全动态并行操作的抗泄露公开云审计方法,其特征在于:
步骤3)动态更新操作为删除数据块,具体为:
3.b1)删除准备:
数据拥有者DO确定从文件F中删除的数据块位置索引集合X,其中X为文件F的位置索引集合{1,2,…,n}的子集,X={i1,i2,…,im},m≤n,具体描述为:将删除文件F的第i1块数据块、第i2块数据块、…、第im块数据块;
3.b2)删除请求:
数据拥有者DO向云存储服务提供商CSP发送删除请求消息UCSP=(delete,X),并向第三方审计者TPA发送另一个删除请求消息
Figure FDA0003206721960000076
其中delete表示删除操作请求;
3.b3)返回删除数据块:
令删除数据块集合为
Figure FDA0003206721960000077
云存储服务提供商CSP在收到删除请求消息UCSP=(delete,X)之后,向数据拥有者DO返还删除数据块集合
Figure FDA0003206721960000078
即第i1块数据块
Figure FDA0003206721960000079
第i2块数据块
Figure FDA00032067219600000710
第im块数据块
Figure FDA00032067219600000711
新文件形式化表示为F'=F\D#
3.b4)删除更新
3.b4.1)更新数据块累加值:
数据拥有者DO利用云存储服务提供商CSP返回的删除数据块集合
Figure FDA0003206721960000081
和保存在本地的原始累加值accF计算更新累加值
Figure FDA0003206721960000082
并发送二次删除请求消息
Figure FDA0003206721960000083
给第三方审计者TPA;
3.b4.2)更新双链动态哈希表和累加值:
第三方审计者TPA收到删除请求消息
Figure FDA0003206721960000084
和二次删除请求消息
Figure FDA0003206721960000085
之后,将对应位置
Figure FDA0003206721960000086
的版本信息从双链动态哈希表中删除,得到更新后的双链动态哈希表,其中令存储的新数据块版本信息为
Figure FDA0003206721960000087
并用更新累加值accF'替换原始累加值accF
3.b4.3)更新标签集合:
在收到删除请求消息UCSP=(delete,X)后,云存储服务提供商CSP利用被删除数据块
Figure FDA0003206721960000088
采用公式(3)更新新文件F'中所有数据块的标签并存储:
Figure FDA0003206721960000089
令新文件F'中所有数据块的新标签集合
Figure FDA00032067219600000810
且i≠i1,i2,…,im};
3.b4.4)更新文件集合:
云存储服务提供商CSP删除文件F中对应位置X={i1,i2,…,im}的数据块
Figure FDA00032067219600000811
得新文件F'=F\D#
3.b4.5)更新签名集合:
云存储服务提供商CSP删除对应位置的签名,得新的签名集合
Figure FDA00032067219600000812
5.根据权利要求2所述的支持用户全动态并行操作的抗泄露公开云审计方法,其特征在于:
步骤3)动态更新操作为修改数据块,具体为:
3.c1)修改准备:
3.c1.1)数据拥有者DO确定文件F中被修改数据块的位置索引集合X,其中X为文件F的位置索引集合{1,2,…,n}的子集X={i1,i2,…,im},m≤n;数据拥有者DO同时确定这些位置修改后的数据块集合
Figure FDA0003206721960000091
具体描述为:修改文件F的第i1块数据块为
Figure FDA0003206721960000092
第i2块数据块为
Figure FDA0003206721960000093
第im块数据块为
Figure FDA0003206721960000094
3.c1.2)修改后数据块D*的版本信息初始化:
数据拥有者DO利用数据版本信息初始化算法VIGen(D*)→(VI*)创建所有修改后数据块对应的版本信息
Figure FDA0003206721960000095
其中
Figure FDA0003206721960000096
Figure FDA0003206721960000097
分别表示修改后数据块
Figure FDA0003206721960000098
的版本信息和建立版本信息时的时间戳;
3.c1.3)生成修改数据块签名:
数据拥有者DO利用签名生成算法SigGen(D*,VI*,sk,pub)→(Φ*)计算所有修改后数据块对应的签名,签名
Figure FDA0003206721960000099
Figure FDA00032067219600000910
表示所有修改后数据块对应的签名集合;
3.c2)修改请求:
数据拥有者DO向云存储服务提供商CSP发送修改请求消息UCSP=(modify,X,D**),并向第三方审计者TPA发送另一个修改请求消息
Figure FDA00032067219600000911
其中modify表示修改操作请求;
3.c3)返回修改前数据块:
云存储服务提供商CSP在收到修改请求消息UCSP=(modify,X,D**)之后,向数据拥有者DO返还对应位置的数据块,即第i1块数据块
Figure FDA00032067219600000912
第i2块数据块
Figure FDA00032067219600000913
第im块数据块
Figure FDA00032067219600000914
令修改前的数据块集合为
Figure FDA00032067219600000915
即云存储服务提供商CSP向数据拥有者DO返还
Figure FDA00032067219600000916
新文件形式化表示为F'=(F\D^)∪D*
3.c4)修改更新
3.c4.1)更新数据块累加值:
数据拥有者DO根据修改前数据块集合
Figure FDA00032067219600000917
修改后数据块
Figure FDA00032067219600000918
以及保存在本地的原始累加值accF计算更新累加值
Figure FDA0003206721960000101
并发送二次修改请求消息
Figure FDA0003206721960000102
给第三方审计者TPA;
3.c4.2)更新双链动态哈希表和累加值:
第三方审计者TPA收到修改请求消息
Figure FDA0003206721960000103
和二次修改请求消息
Figure FDA0003206721960000104
之后,将双链动态哈希表中对应位置X={i1,i2,…,im}的版本信息用
Figure FDA0003206721960000105
替换,得到更新后的双链动态哈希表,令修改后的数据块集合对应的版本信息为
Figure FDA0003206721960000106
并用更新累加值accF'替换原始累加值accF
3.c4.3)更新标签集合:
在收到修改请求消息UCSP=(modify,X,D**)后,云存储服务提供商CSP根据修改前数据块集合
Figure FDA0003206721960000107
和修改后数据块集合
Figure FDA0003206721960000108
采用公式(4)更新新文件F'中未被修改的所有数据块标签并存储,再利用公式(5)计算修改后的数据块的标签并存储:
Figure FDA0003206721960000109
Figure FDA00032067219600001010
令新文件F'的所有数据块标签集合为
Figure FDA00032067219600001011
Figure FDA00032067219600001012
3.c4.4)更新文件集合:
云存储服务提供商CSP将文件F中位置为X={i1,i2,…,im}的数据块
Figure FDA00032067219600001013
修改为
Figure FDA00032067219600001014
得新文件F'=(F\D^)∪D*
3.c4.5)更新签名集合:
云存储服务提供商CSP用
Figure FDA00032067219600001015
替换对应位置数据块的签名,得新的签名集合
Figure FDA00032067219600001016
6.根据权利要求3或4或5所述的支持用户全动态并行操作的抗泄露公开云审计方法,其特征在于:
步骤4)验证云存储服务提供商CSP是否正确执行了数据更新的操作,具体包括:
4.1)生成挑战请求:
令新文件F'的数据块总块数为M,第三方审计者TPA利用挑战请求算法ChalGen(M,c)→chal,从文件F'的数据块索引集合{1,2,…,M}中随机挑取出c个索引,记为chal={s1,s2,…,sc}c≤M,作为挑战请求信息发送给云存储服务提供商CSP,其中,这c个挑战索引随机生成,可以不包括曾经挑战过的数据块;
4.2)证据生成:
云存储服务提供商CSP利用证据生成算法ProofGen(F',Φ',Ω',chal,pub)→P,生成审计证据P,具体为:
云存储服务提供商CSP作为证明者,根据存储在其服务器上的文件F'及其对应的更新签名集合和标签集合{F',Φ',Ω'}和接收到的挑战信息chal={s1,s2,…,sc}c≤M,生成更新验证证据P=(ω,σ,τ),其中
Figure FDA0003206721960000111
然后将证据P=(ω,σ,τ)作为动态操作执行证明发送给第三方审计者TPA;
4.3)证据验证:
第三方审计者TPA利用验证算法ProofCheck(P,chal,VI',pk)→{TRUE/FALSE}进行验证,具体为:
第三方审计者TPA根据更新后双链动态哈希表中的信息VI'对挑战的所有数据块对应的版本信息计算哈希值{H(vi||ti)|i∈chal};
检验等式一验证τ的合法性:
检验等式一
Figure FDA0003206721960000112
若检验等式一不成立,则第三方审计者TPA输出FALSE,表示验证失败;否则,第三方审计者TPA再检验等式二是否成立:
检验等式二
Figure FDA0003206721960000113
若检验等式二成立,则第三方审计者TPA输出TRUE,表示验证成功,云存储服务提供商CSP按要求执行了动态更新操作;否则输出FALSE,表示云存储服务提供商CSP未按要求执行动态更新操作。
CN201811638170.7A 2018-12-29 2018-12-29 一种支持用户全动态并行操作的抗泄露公开云审计方法 Active CN109525403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811638170.7A CN109525403B (zh) 2018-12-29 2018-12-29 一种支持用户全动态并行操作的抗泄露公开云审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811638170.7A CN109525403B (zh) 2018-12-29 2018-12-29 一种支持用户全动态并行操作的抗泄露公开云审计方法

Publications (2)

Publication Number Publication Date
CN109525403A CN109525403A (zh) 2019-03-26
CN109525403B true CN109525403B (zh) 2021-11-02

Family

ID=65798589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811638170.7A Active CN109525403B (zh) 2018-12-29 2018-12-29 一种支持用户全动态并行操作的抗泄露公开云审计方法

Country Status (1)

Country Link
CN (1) CN109525403B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110049033A (zh) * 2019-04-10 2019-07-23 南京信息工程大学 一种支持企业数据动态操作的云审计方法
CN112311548A (zh) * 2020-03-25 2021-02-02 北京沃东天骏信息技术有限公司 数据持有性验证方法、系统、装置及计算机可读存储介质
CN111737708B (zh) * 2020-05-26 2024-01-12 桂林电子科技大学 一种支持外包数据高效更新的可验证删除方法及系统
CN111898164B (zh) * 2020-07-02 2024-03-29 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法
CN112261020B (zh) * 2020-10-15 2022-05-17 中国电子科技集团公司第五十四研究所 一种分布式远程外包数据审计方法
CN113656840B (zh) * 2021-07-16 2024-01-02 北京航空航天大学杭州创新研究院 一种具有问责性的动态完整性验证方法
CN116451270B (zh) * 2023-03-31 2024-06-14 南京航空航天大学 一种验证云存储中数据确定性删除的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102255916A (zh) * 2011-07-26 2011-11-23 中国科学院计算机网络信息中心 接入认证方法、设备、服务器及系统
CN103227780A (zh) * 2013-03-28 2013-07-31 东南大学 云数据的一个公众可审计存储可验证方案的设计方法
CN104994110A (zh) * 2015-07-16 2015-10-21 电子科技大学 一种用于指定验证人对云存储数据进行审计的方法
CN108229208A (zh) * 2018-01-08 2018-06-29 华侨大学 一种云存储服务中多副本数据的公开审计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150020180A1 (en) * 2013-07-15 2015-01-15 Peer Intelligence Technology Limited Wireless two-factor authentication, authorization and audit system with close proximity between mass storage device and communication device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102255916A (zh) * 2011-07-26 2011-11-23 中国科学院计算机网络信息中心 接入认证方法、设备、服务器及系统
CN103227780A (zh) * 2013-03-28 2013-07-31 东南大学 云数据的一个公众可审计存储可验证方案的设计方法
CN104994110A (zh) * 2015-07-16 2015-10-21 电子科技大学 一种用于指定验证人对云存储数据进行审计的方法
CN108229208A (zh) * 2018-01-08 2018-06-29 华侨大学 一种云存储服务中多副本数据的公开审计方法

Also Published As

Publication number Publication date
CN109525403A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109525403B (zh) 一种支持用户全动态并行操作的抗泄露公开云审计方法
Garg et al. An efficient data integrity auditing protocol for cloud computing
CN110912706B (zh) 一种基于身份的动态数据完整性审计方法
Zheng et al. Fair and dynamic proofs of retrievability
Garg et al. RITS-MHT: Relative indexed and time stamped Merkle hash tree based data auditing protocol for cloud computing
Wang et al. Enabling public verifiability and data dynamics for storage security in cloud computing
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
Wang et al. Enabling public auditability and data dynamics for storage security in cloud computing
Ng et al. Private data deduplication protocols in cloud storage
Wei et al. SecCloud: Bridging secure storage and computation in cloud
Wang et al. Privacy-preserving public auditing for data storage security in cloud computing
Li et al. A method for achieving provable data integrity in cloud computing
WO2018211446A1 (en) Cryptographic key-generation with application to data deduplication
Chen et al. Data dynamics for remote data possession checking in cloud storage
CN113312574A (zh) 一种基于区块链的云数据完整性审计方法
CN106991148B (zh) 一种支持全更新操作的数据库验证系统及方法
Wu et al. Privacy-preserving proof of storage for the pay-as-you-go business model
Mishra et al. Dynamic large branching hash tree based secure and efficient dynamic auditing protocol for cloud environment
Mishra et al. BB-tree based secure and dynamic public auditing convergence for cloud storage
Chen et al. Dynamic data auditing scheme for big data storage
CN109743327B (zh) 基于无证书的云存储中共享数据的完整性公开验证方法
Xie et al. A novel blockchain-based and proxy-oriented public audit scheme for low performance terminal devices
Wu et al. Privacy-enhanced remote data integrity checking with updatable timestamp
Sun et al. Public data integrity auditing without homomorphic authenticators from indistinguishability obfuscation
Li et al. IPOR: An efficient IDA-based proof of retrievability scheme for cloud storage systems

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
TA01 Transfer of patent application right

Effective date of registration: 20211014

Address after: 714000 group 2, xishangguan village, Mizi Township, Fuping County, Weinan City, Shaanxi Province

Applicant after: Liu Jiaojiao

Address before: No.199, Chang'an South Road, changyanbao office, Yanta District, Xi'an City, Shaanxi Province, 710064

Applicant before: Shaanxi Normal University

Effective date of registration: 20211014

Address after: 510000 Room 401, zone C3, innovation building, No. 182, science Avenue, Science City, high tech Industrial Development Zone, Guangzhou, Guangdong

Applicant after: Guangzhou Yixin Technology Co.,Ltd.

Address before: 714000 group 2, xishangguan village, Mizi Township, Fuping County, Weinan City, Shaanxi Province

Applicant before: Liu Jiaojiao

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant