CN110113320B - 一种基于双线性对累加器的云存储数据完整性验证方法 - Google Patents

一种基于双线性对累加器的云存储数据完整性验证方法 Download PDF

Info

Publication number
CN110113320B
CN110113320B CN201910312740.1A CN201910312740A CN110113320B CN 110113320 B CN110113320 B CN 110113320B CN 201910312740 A CN201910312740 A CN 201910312740A CN 110113320 B CN110113320 B CN 110113320B
Authority
CN
China
Prior art keywords
data
block
cloud storage
challenge
value
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
CN201910312740.1A
Other languages
English (en)
Other versions
CN110113320A (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.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN201910312740.1A priority Critical patent/CN110113320B/zh
Publication of CN110113320A publication Critical patent/CN110113320A/zh
Application granted granted Critical
Publication of CN110113320B publication Critical patent/CN110113320B/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
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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

Landscapes

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

Abstract

本发明公开了一种基于双线性对累加器的云存储数据完整性验证方法,包括如下步骤:S1:根据双线性映射,选择两个素数阶相同的群G和GT,生成一个配对e;S2:通过AES密钥生成算法,生成两个对称密钥KH和KE;S3:数据所有者根据对称密钥KE对需要发送的数据生成加密数据块;S4:数据所有者通过加密数据块和配对e,将辅助值F存储在验证方中;S5:云存储提供商通过验证值向验证方发送证明;S6:验证方根据证明和辅助值F对云存储数据进行验证。本发明支持动态数据,能够抵御标签伪造,数据删除、替换、重放和泄漏攻击。同时本方明能够一次对所有云储存数据块都进行完整性验证,而且验证方能够对云存储数据块执行无限次的数据完整性验证。

Description

一种基于双线性对累加器的云存储数据完整性验证方法
技术领域
本发明涉及计算机科学技术领域,尤其涉及一种基于双线性对累加器的云存储数据完整性验证方法。
背景技术
云存储中数据所有者将其拥有的数据外包给云存储服务器,这样能够为数据所有者节省大量的存储空间,同时也减轻了数据所有者日常管理这些数据的负担。然而,数据所有者担心上传的数据可能在不知情或未经允许的情况下被修改或删除。因此要解决此问题,验证者必须执行定期的数据完整性检查以验证数据的所有权并检测任何未经授权的修改。从技术上讲,有两种方法可以执行此类完整性检查:
确定性方法:验证者要求一次就能够检查所有数据块,并验证其完整性,从而100%保证数据完整性和拥有权。
概率性方法:验证者请求检查随机选择的数据块以验证其完整性,从而不能提供100%的数据完整性和拥有权保证。此外,在该方法中:数据所有者可以对某个数据块进行验证的次数是有限的,如果验证次数过多,将导致数据存在泄漏的风险。
当前可用的云存储数据完整性验证方法都是概率性方法,即随机抽取存储于云服务器的数据块来验证云存储数据的完整性,而不是检查所有的云存储数据块。对于现在的用户来说概率性方案是不够的。与概率性方法不同的是,使用确定性方法的验证者将检查数据集中的所有数据块,而不是仅检查几个,从而消除了任何云存储服务器操纵数据的可能性。
发明内容
发明目的:针对现有验证方不能对数据块执行无限次的数据完整性验证,以及不能一次就对所有云存储数据的完整性进行验证的问题,本发明提出了一种基于双线性对累加器的云存储数据完整性验证方法。
技术方案:为实现本发明的目的,本发明所采用的技术方案是:
一种基于双线性对累加器的云存储数据完整性验证方法,所述方法包括如下步骤:
S1:根据双线性映射,选择两个素数阶相同的群G和GT,生成一个配对e,具体为:
G×G→GT
其中:G和GT为两个素数阶相同的群;
S2:通过AES密钥生成算法,生成两个对称密钥KH和KE
S3:数据所有者根据所述对称密钥KE对需要发送到云存储提供商中的数据生成加密数据块;
S4:数据所有者通过所述加密数据块和配对e,将辅助值F存储在验证方中;
S5:云存储提供商通过验证值向验证方发送证明;
S6:验证方根据所述证明和辅助值F对云存储数据进行验证。
进一步地讲,所述对称密钥KH发送给验证方,所述对称密钥KE发送给数据所有者。
进一步地讲,所述步骤S3数据所有者根据对称密钥KE对需要发送到云存储提供商中的数据生成加密数据块,具体如下:
S3.1:数据所有者将所述需要发送到云存储提供商中的数据分为n个数据块,具体为:
M={m1,…,mn}
其中:M为待发送的数据,mn为待发送数据的数据块;
S3.2:数据所有者通过所述对称密钥KE对待发送数据的数据块进行加密,生成加密数据块,具体为:
Figure GDA0003295929480000021
其中:ci为待发送数据的加密数据块,KE为对称密钥,mn为待发送数据的数据块,i为段索引。
进一步地讲,所述步骤S4将辅助值F存储在验证方中,具体如下:
S4.1:数据所有者根据所述加密数据块生成标记,并将所述标记附加到对应的加密数据块中,生成预先计算的数据块,具体为:
Figure GDA0003295929480000022
其中:τi为待发送数据的加密数据块生成的标记,ci为待发送数据的加密数据块,KH为对称密钥,bn为预先计算的数据块,i为段索引;
S4.2:数据所有者根据所述标记,将所述标记的副本保存在标记索引数据结构表中;
S4.3:根据所述预先计算的数据块组成数据文件,数据所有者通过Gen(1*,t)算法计算数据文件的累计值,具体为:
Figure GDA0003295929480000023
其中:
Figure GDA0003295929480000024
B为数据文件,accB为数据文件的累计值,bi为预先计算的数据块,n为待发送数据分成的段数,
Figure GDA0003295929480000025
为小于G和GT群的两个素数阶的整数群,g为生成元,i为段索引;
S4.4:根据所述群G和配对e,设置辅助值E和辅助值F,具体为:
Figure GDA0003295929480000031
其中:
Figure GDA0003295929480000032
Figure GDA0003295929480000033
为小于G和GT群的两个素数阶的整数群,g为生成元,e为群G和GT生成的配对,yF为辅助值F,aux为辅助值E,n为待发送数据分成的段数。
进一步地讲,所述保存有标记副本的标记索引数据结构表、数据文件的累计值和辅助值F均存储在验证方中。
进一步地讲,所述数据文件和辅助值E均发送给云存储提供商。
进一步地讲,所述步骤S5云存储提供商通过验证值向验证方发送证明,具体如下:
S5.1:云存储提供商通过所述辅助值E将数据文件累计值的指数转换为s的多项式,具体为:
Figure GDA0003295929480000034
其中:
Figure GDA0003295929480000035
Figure GDA0003295929480000036
为小于G和GT群的两个素数阶的整数群,ai为s的系数,n为待发送数据分成的段数,i为段索引;
S5.2:通过所述待发送数据的数据块,确定质询块;
S5.3:根据所述s的多项式和质询块,云存储提供商获取质询块的证人,具体为:
Figure GDA0003295929480000037
其中:
Figure GDA0003295929480000038
Figure GDA0003295929480000039
为小于G和GT群的两个素数阶的整数群,g为生成元,ai为s的系数,n为待发送数据分成的段数,
Figure GDA00032959294800000310
为质询块的证人,i为段索引;
S5.4:云存储提供商根据所述质询块和质询块的证人,获取验证值,并将所述验证值作为证明发送给验证方,所述验证值具体为:
Figure GDA00032959294800000311
其中:L为验证值,
Figure GDA00032959294800000312
为质询块的证人,bj为质询块。
进一步地讲,所述步骤S6验证方根据证明和辅助值F对云存储数据进行验证,具体如下:
S6.1:根据所述对称密钥KH和质询块对应的加密数据块,获取所述质询块的加密数据块对应的标记,具体为:
τ′j=H(cj‖kH)
其中:τ′j为质询块的加密数据块对应的标记,kH为对称密钥,cj为质询块对应的加密数据块;
S6.2:验证方根据所述验证值和辅助值F进行如下验证,具体为:
Figure GDA0003295929480000041
其中:
Figure GDA0003295929480000042
Figure GDA0003295929480000043
为小于G和GT群的两个素数阶的整数群,accB为数据文件的累计值,g为生成元,
Figure GDA0003295929480000044
为质询块的证人,bj为质询块;
S6.3:验证方直接从质询块中提取数据块或加密数据块和其对应的标记,同时验证方根据所述标记索引数据结构表定位接收质询块中的标记副本,验证所述质询块中的标记副本、计算出的质询块中数据块或加密数据块对应的标记、质询块直接提取的数据块或加密数据块对应的标记三者是否相等;
S6.4:若步骤S6.2和S6.3中的验证均相等,则云存储数据完整,若步骤S6.2和S6.3中任意验证不相等,则云存储数据不完整。
进一步地讲,所述验证方法根据标记索引数据结构表支持数据动态变换,所述数据动态变换包括数据的插入、数据的删除和数据的更新。
有益效果:与现有技术相比,本发明的技术方案具有以下有益技术效果:
(1)本发明的云存储数据完整性验证方法支持动态数据,能够抵御标签伪造,数据删除、替换、重放和泄漏攻击,而且本发明不是随机对数据块进行抽检,而是一次就能够对所有云存储数据块进行完整性验证;
(2)本发明的云存储数据完整性验证方法基于双线性对累加器,允许数据所有者和验证方执行无限次数的数据完整性检查,对于验证方来说,由于该方法基于双线性对累加器,所以验证操作与验证的块数无关,从而使得验证方的验证开销大大降低,进而将计算开销保持在可接受的水平内;
(3)本发明的云存储数据完整性验证方法通过使用标记索引数据结构表,支持数据所有者插入、删除和更新数据的动态操作。
附图说明
图1是本发明的验证方法流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本发明一部分实施例,而不是全部的实施例。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。
实施例1
本实施例提供了一种基于双线性对累加器的云存储数据完整性验证方法,该验证方法能够对整个数据集执行无限数量的数据完整性验证,同时还会将计算开销保持在可接受的水平之内,并且该验证方法是通过标记索引数据结构表来支持动态操作的。
无论在何种云存储服务中,均设置有三个角色参与者,分别为:存储由数据所有者C发送数据的云存储提供商CSP、通过在没有备份副本的情况下,在云存储提供商CSP中保存大量关键数据来承担风险的数据所有者C、由于数据发送的重要性,要求100%数据完整性和拥有保证的验证方。
在本实施例中,云存储数据完整性验证方法具体包括如下步骤:
步骤S1:根据双线性映射,选择两个素数阶为p的群G和GT,其中p为群G和GT中元素的上限,同时使得群G和GT生成一个配对e,具体为:
G×G→GT
其中:G和GT为两个素数阶相同的群。
在本实施例中,根据q-SDH假设设置素数阶为p的群G的生成元为g,其中生成元g的大小可以自主选择。同时在群G中随机选择一个数:
Figure GDA0003295929480000051
其中:
Figure GDA0003295929480000052
为小于G和GT群的两个素数阶的整数群。
步骤S2:通过AES密钥生成算法生成两个对称密钥KH和KE,其中对称密钥KH发送给验证方,对称密钥KE发送给数据所有者C。
步骤S3:数据所有者根据对称密钥KE对需要发送到云存储提供商中的数据生成加密数据块,具体如下:
步骤S3.1:数据所有者C将需要发送到云存储提供商中的数据M分成具有l1位的n个数据块,其中l1的大小取决于需要发送到云存储提供商中的数据M自身的大小,并没有严格的限制,同时n≥2,n∈Z。
具体地讲,需要发送到云存储提供商中的数据M分成n个数据块,具体为:
M={m1,…,mn}
其中:M为待发送的数据,mn为待发送数据的数据块。
步骤S3.2:数据所有者C通过对称密钥KE对待发送数据的数据块mn进行加密,生成加密数据块,具体为:
Figure GDA0003295929480000061
其中:ci为待发送数据的加密数据块,KE为对称密钥,mn为待发送数据的数据块,i为段索引。
段索引i的大小必须在需要发送到云存储提供商中的数据M分成的段数n之内,具体为:
1≤i≤n
其中:i为段索引,n为待发送数据分成的段数。
步骤S4:数据所有者通过步骤S3.2中的加密数据块和步骤S1中的配对e,将辅助值F存储在验证方中,具体如下:
步骤S4.1:数据所有者C为步骤S3.2中的加密数据块生成标记τi,具体为:
τi=H(ci∥KH)
其中:τi为待发送数据的加密数据块生成的标记,ci为待发送数据的加密数据块,KH为对称密钥,i为段索引。
将生成的标记τi附加到该标记τi对应的加密数据块中ci,生成预先计算的数据块bn。其中预先计算的数据块bn,具体如下:
bn=ci∥τi
其中:τi为待发送数据的加密数据块生成的标记,ci为待发送数据的加密数据块,bn为预先计算的数据块,i为段索引。
步骤S4.2:根据待发送数据的加密数据块ci生成的标记τi,数据所有者C将每个标记τi的副本
Figure GDA0003295929480000062
均保存在标记索引数据结构表中,同时将该保存有标记τi的副本
Figure GDA0003295929480000063
的标记索引数据结构表存储于验证方中。
步骤S4.3:根据预先计算的数据块bn组成数据文件B,同时数据所有者C通过Gen(1*,t)算法计算数据文件B的累计值,其中将数据文件B的累计值存储在验证方中。
在本实施例中,数据文件B和数据文件B的累计值accB的公式如下:
Figure GDA0003295929480000064
其中:
Figure GDA0003295929480000065
B为数据文件,accB为数据文件的累计值,bi为预先计算的数据块,n为待发送数据分成的段数,
Figure GDA0003295929480000066
为小于G和GT群的两个素数阶的整数群,g为生成元,i为段索引。
步骤S4.4:数据所有者C根据步骤S1中的群G和配对e,设置辅助值E和辅助值F,同时将数据文件B和辅助值E发送给云存储提供商CSP,将辅助值F存储在验证方中,其中辅助值E和辅助值F具体为:
Figure GDA0003295929480000071
其中:
Figure GDA0003295929480000072
Figure GDA0003295929480000073
为小于G和GT群的两个素数阶的整数群,g为生成元,e为群G和GT生成的配对,yF为辅助值F,aux为辅助值E,n为待发送数据分成的段数。
步骤S5:云存储提供商通过验证值向验证方发送证明,具体如下:
步骤S5.1:云存储提供商CSP通过步骤S4.4中的辅助值E将数据文件B的累计值accB的指数
Figure GDA0003295929480000074
转换为2的多项式,即
Figure GDA0003295929480000075
其中:
Figure GDA0003295929480000076
bi为预先计算的数据块,
Figure GDA0003295929480000077
为小于G和GT群的两个素数阶的整数群,n为待发送到数据分成的段数,i为段索引。
将上式通过辅助值E转化为如下公式:
Figure GDA0003295929480000078
其中:
Figure GDA0003295929480000079
Figure GDA00032959294800000710
为小于G和GT群的两个素数阶的整数群,ai为s的系数,n为待发送到数据分成的段数,i为段索引。
步骤S5.2:通过步骤S3.1中的待发送数据的数据块mn,云存储提供商CSP确定质询块bj。其中质询块bj为众多待发送数据的数据块mn中的一个。
步骤S5.3:云存储提供商CSP根据步骤S5.1中的2的多项式和步骤S5.2中的质询块bj,获取质询块bj的证人,具体为:
Figure GDA00032959294800000711
其中:
Figure GDA0003295929480000081
Figure GDA0003295929480000082
为小于G和GT群的两个素数阶的整数群,g为生成元,ai为s的系数,n为待发送到数据分成的段数,
Figure GDA00032959294800000811
为质询块的证人,i为段索引。
步骤S5.4:云存储提供商CSP根据质询块bj和质询块的证人
Figure GDA00032959294800000812
获取验证值,并将验证值作为证明发送至验证方中,其中验证值具体为:
Figure GDA0003295929480000083
其中:L为验证值,
Figure GDA0003295929480000084
为质询块的证人,bj为质询块。
步骤S6:验证方根据步骤S4.4中的辅助值F和云存储提供商CSP发送过来的证明对云存储数据进行验证,具体如下:
步骤S6.1:验证方根据对称密钥KH和质询块bj对应的加密数据块cj,计算质询块bj的加密数据块cj对应的标记τ′j,具体为:
τ′j=H(cj‖kH)
其中:τ′j为质询块的加密数据块对应的标记,kH为对称密钥,cj为质询块对应的加密数据块;
步骤S6.2:验证方根据步骤S4.4中的辅助值F和步骤S5.4中的验证值进行如下验证,具体为:
Figure GDA0003295929480000085
其中:
Figure GDA0003295929480000086
Figure GDA0003295929480000087
为小于G和GT群的两个素数阶的整数群,accB为数据文件的累计值,g为生成元,
Figure GDA0003295929480000088
为质询块的证人,bj为质询块。
步骤S6.3:验证方直接从质询块bj中提取数据块mj或加密数据块cj,还提取数据块mj或加密数据块cj对应的标记τj。同时验证方根据标记索引数据结构表定位接收质询块bj中的标记副本
Figure GDA0003295929480000089
验证标记副本
Figure GDA00032959294800000810
和质询块bj中直接提取的数据块mj或加密数据块cj对应的标记τj、质询块bj中计算出的数据块mj或加密数据块cj对应的标记τ′j三者是否相等。
步骤S6.4:在本实施例中,为保证本云存储数据完整性验证方法的有效性,步骤S6中的步骤S6.2和S6.3中的验证必须全部能够满足条件。
若步骤S6.2和S6.3中任一步骤中的验证不相等,则表明云存储中的数据在传送的过程中发生了变化,且该变化可能是变换,也可能是缺失,还有可能是增加,都是不一定的。但是若步骤S6.2和S6.3中任一步骤中的验证均相等,则表明云存储中的数据在传送的过程中未发生任何改变。
在本实施例中,本云存储数据完整性验证方法根据标记索引数据结构表支持数据动态变换,其中数据动态变换包括数据的插入、数据的删除和数据的更新,具体过程如下:
A:数据的插入,具体如下:
步骤SA1:数据所有者C将新增的需要发送到云存储提供商中的数据Mr分成l2位的n个数据块,其中需要发送到云存储提供商中的数据Mr具体为:
MR={mR,…,mR+z}
其中:MR为新增的待发送数据,mR+z为新增的待发送数据的数据块。
数据所有者C通过使用对称密钥KE对每个新增的待发送数据的数据块mR+z进行加密,具体为:
Figure GDA0003295929480000091
其中:cR为新增的待发送数据的加密数据块,KE为对称密钥,mR+z为新增的待发送数据的数据块。
同时数据所有者C为新增的待发送数据的加密数据块cr生成标记
Figure GDA0003295929480000092
具体为:
Figure GDA0003295929480000093
其中:
Figure GDA0003295929480000094
为新增的待发送数据的加密数据块生成的标记,cr为新增的待发送数据的加密数据块,KH为对称密钥,ri为段索引。
在本实施例中,段索引ri的大小需要大于原数据块中所有的段索引,具体为:
n≤ri≤r+z
其中:n为原数据块中最大的段索引,ri为新增的待发送数据的数据块对应的段索引,r+z为新增的待发送数据的数据块对应的最大段索引。
同时数据所有者C将每个新增的标记
Figure GDA0003295929480000095
附加到其对应的加密数据块cr中,生成要插入的新增数据文件,具体为:
Br={br,…,br+z}
其中:Br为新增数据文件,bR为要插入的新数据块,r+z为新增的待发送数据的数据块对应的段索引。
步骤SA2:数据所有者C向云存储提供商CSP发送插入请求,该请求由要插入的新增数据文件BR及其索引ri共同组成,具体为:
y={(bR,r),…,(br+z,r+z)}
其中:br为要插入的新数据块,r+z为新增的待发送数据的数据块对应的段索引。
步骤SA3:云存储提供商CSP将新增的数据块br插入请求的位置中,并向数据所有者C发送插入确认信息。
当数据所有者C接收到插入确认信息后,将为每个新增的数据块bR在标记索引数据结构表中适当的位置处增加一个新行。
步骤SA4:由于新增数据块br的插入,数据所有者C需要对原数据文件B的累计值和辅助值A进行更新,具体为:
Figure GDA0003295929480000101
其中:
Figure GDA0003295929480000102
Figure GDA0003295929480000103
为小于G和GT群的两个素数阶的整数群,acc′B为更新后的数据文件的累计值,aux′为更新后的辅助值A,bi为原待发送数据和新增的待发送数据共同分成的数据块,r+z为新增的待发送数据分成的段数,g为生成元,n+r+z为原待发送数据和新增的待发送数据共同分成的段数。
在本实施例中,数据所有者C将更新后的数据文件B的累计值acc′B和标记索引数据结构表均存储在验证方中,同时将更新后的辅助值A发送至云存储提供商CSP中。
B:数据的删除,具体如下:
步骤SB1:数据所有者C在标记索引数据结构表中定位要删除的数据块的索引。同时将包含有要删除的数据块的索引的删除请求发送给云存储提供商CSP。
在本实施例中,要删除的数据文件Bv为:
Bv={bv,…,bv+z}
其中:Bv为要删除的数据文件,bv为要删除的数据块,v+z为要删除的数据块对应的段索引。
更进一步地讲,要删除的数据文件Bv中的数据块对应的索引为{v,…,v+z},其中各个索引的大小均有要求,且要求完全一致,即要删除的数据块的索引不能小于原数据块的最小索引,但是也不能大于原数据块的最大索引,此处以要删除的数据文件Bv中的数据块对应的最小索引v和最大索引v+z的大小为例进行说明,具体为:
Figure GDA0003295929480000104
其中:v要删除的数据文件中的数据块对应的最小索引,v+z为要删除的数据文件中的数据块对应的最大索引,n为原数据块的最大索引。
步骤SB2:云存储提供商CSP接收到要删除的数据块的索引{v,…,v+z}后,根据索引{v,…,v+z}定位要删除的数据文件Bv
云存储提供商CSP从原数据文件B中删除要删除的数据文件Bv,并向数据所有者C发送删除确认信息。
数据所有者C接收到删除确认信息后,将要删除的数据文件Bv在标记索引数据结构表中对应的行,从标记索引数据结构表中删除。
步骤SB3:由于要删除的数据文件Bv在原数据文件B中被删除,因此数据所有者C需要对原数据文件B的累计值和辅助值A进行更新,具体为:
Figure GDA0003295929480000111
其中:
Figure GDA0003295929480000112
Figure GDA0003295929480000113
为小于G和GT群的两个素数阶的整数群,acc′B为更新后的数据文件的累计值,aux′为更新后的辅助值A,bi为原待发送数据去除要删除的数据后分成的数据块,v+z为要删除的数据块对应的段索引,g为生成元。
在本实施例中,数据所有者C将更新后的数据文件B的累计值acc′B和标记索引数据结构表均存储在验证方中,同时将更新后的辅助值A发送至云存储提供商CSP中。
C:数据的更新,具体如下:
步骤SC1:数据所有者C向云存储提供商CSP发送数据块的更新请求,其中更新请求是将原数据文件B中的数据文件Bk进行更新,在本实施例中,更新具体如下:
Bk={bk,…,bk+z}
其中:Bk为需要更新的原数据文件,bk为原数据块,k+z为需要更新的原数据文件中数据块对应的段索引。
更新为:
Bk′={b′k,…,b′k+z}
其中:Bk′为更新的数据文件,b′k为更新后的数据块,k+z为需要更新的原数据文件中数据块对应的段索引。
在本实施例中,更新请求是由更新的数据文件Bk′和其对应的索引{k,…,k+z}共同组成。
步骤SC2:云存储提供商CSP接收到更新的数据文件Bk′的索引{k,…,k+z}后,根据索引{k,…,k+z}定位需要更新的数据文件Bk
云存储提供商CSP将需要更新的原数据文件Bk替换为更新的数据文件Bk′,并向数据所有者C发送更新确认信息。
步骤SC3:数据所有者C接收到更新确认信息后,由于数据文件Bk在原数据文件B中被更新,因此数据所有者C需要对原数据文件B的累计值进行更新。同时数据所有者C还需要将更新后的数据文件B的累计值acc′B存储在验证方中。
由于原数据块的总数量和位置均没有发送改变,从而标记索引数据结构表和辅助值A在数据的更新中不需要进行更新。
在本实施例中,更新的数据文件B的累计值acc′B,具体为:
Figure GDA0003295929480000121
其中:
Figure GDA0003295929480000122
Figure GDA0003295929480000123
为小于G和GT群的两个素数阶的整数群,acc′B为更新后的数据文件的累计值,bi为原数据块,b′i为更新的数据块,k+z为要更新的数据在原数据中的最大段数,k为要更新的数据在原数据中的最小段数。
以上所述的实施例对本发明的技术方案和有效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于双线性对累加器的云存储数据完整性验证方法,其特征在于,所述方法包括如下步骤:
S1:根据双线性映射,选择两个素数阶相同的群G和GT,生成一个配对e,具体为:
G×G→GT
其中:G和GT为两个素数阶相同的群;
S2:通过AES密钥生成算法,生成两个对称密钥KH和KE
S3:数据所有者根据所述对称密钥KE对需要发送到云存储提供商中的数据生成加密数据块;
S4:数据所有者将所述加密数据块生成的累加值,配对e生成的辅助值F存储到验证方中;具体如下:
S4.1:数据所有者根据所述加密数据块生成标记,并将所述标记附加到对应的加密数据块中,生成预先计算的数据块,具体为:
Figure FDA0003295929470000011
其中:τi为待发送数据的加密数据块生成的标记,ci为待发送数据的加密数据块,KH为对称密钥,bn为预先计算的数据块,i为段索引;
S4.2:数据所有者根据所述标记,将所述标记的副本保存在标记索引数据结构表中;
S4.3:根据所述预先计算的数据块组成数据文件,数据所有者通过Gen(1*,t)算法计算数据文件的累计值,具体为:
Figure FDA0003295929470000012
其中:
Figure FDA0003295929470000013
B为数据文件,accB为数据文件的累计值,bi为预先计算的数据块,n为待发送数据分成的段数,
Figure FDA0003295929470000014
为小于G和GT群的两个素数阶的整数群,g为生成元,i为段索引;
S4.4:根据所述群G和配对e,设置辅助值E和辅助值F,具体为:
Figure FDA0003295929470000015
其中:
Figure FDA0003295929470000016
Figure FDA0003295929470000017
为小于G和GT群的两个素数阶的整数群,g为生成元,e为群G和GT生成的配对,yF为辅助值F,aux为辅助值E,n为待发送数据分成的段数;
S5:云存储提供商将验证值L作为证明发送给验证方;具体如下:
S5.1:云存储提供商通过所述辅助值E将数据文件累计值的指数转换为s的多项式,具体为:
Figure FDA0003295929470000021
其中:
Figure FDA0003295929470000022
Figure FDA0003295929470000023
为小于G和GT群的两个素数阶的整数群,ai为s的系数,n为待发送数据分成的段数,i为段索引;
S5.2:通过所述待发送数据的数据块,确定质询块;
S5.3:根据所述s的多项式和质询块,云存储提供商获取质询块的证人,具体为:
Figure FDA0003295929470000024
其中:
Figure FDA0003295929470000025
Figure FDA0003295929470000026
为小于G和GT群的两个素数阶的整数群,g为生成元,ai为s的系数,n为待发送数据分成的段数,
Figure FDA0003295929470000027
为质询块的证人,i为段索引;
S5.4:云存储提供商根据所述质询块和质询块的证人,获取验证值,并将所述验证值作为证明发送给验证方,所述验证值具体为:
Figure FDA0003295929470000028
其中:L为验证值,
Figure FDA0003295929470000029
为质询块的证人,bj为质询块;
S6:验证方根据所述验证值和辅助值F对云存储数据进行验证,具体如下:
S6.1:根据所述对称密钥KH和质询块对应的加密数据块,获取所述质询块的加密数据块对应的标记,具体为:
τ′j=H(cj‖kH)
其中:τ′j为质询块的加密数据块对应的标记,kH为对称密钥,cj为质询块对应的加密数据块;
S6.2:验证方根据所述验证值和辅助值F进行如下验证,具体为:
Figure FDA00032959294700000210
其中:
Figure FDA00032959294700000211
Figure FDA00032959294700000212
为小于G和GT群的两个素数阶的整数群,accB为数据文件的累计值,g为生成元,
Figure FDA0003295929470000031
为质询块的证人,bj为质询块;
S6.3:验证方直接从质询块中提取数据块或加密数据块和其对应的标记,同时验证方根据所述标记索引数据结构表定位接收质询块中的标记副本,验证所述质询块中的标记副本、计算出的质询块中数据块或加密数据块对应的标记、质询块直接提取的数据块或加密数据块对应的标记三者是否相等;
S6.4:若步骤S6.2和S6.3中的验证均相等,则云存储数据完整,若步骤S6.2和S6.3中任意验证不相等,则云存储数据不完整。
2.根据权利要求1所述的一种基于双线性对累加器的云存储数据完整性验证方法,其特征在于,所述对称密钥KH发送给验证方,所述对称密钥KE发送给数据所有者。
3.根据权利要求1或2所述的一种基于双线性对累加器的云存储数据完整性验证方法,其特征在于,所述步骤S3数据所有者根据对称密钥KE对需要发送到云存储提供商中的数据生成加密数据块,具体如下:
S3.1:数据所有者将所述需要发送到云存储提供商中的数据分为n个数据块,具体为:
N={m1,…,mn}
其中:N为待发送的数据,mn为待发送数据的数据块;
S3.2:数据所有者通过所述对称密钥KE对待发送数据的数据块进行加密,生成加密数据块,具体为:
Figure FDA0003295929470000032
其中:ci为待发送数据的加密数据块,KE为对称密钥,mn为待发送数据的数据块,i为段索引。
4.根据权利要求1所述的一种基于双线性对累加器的云存储数据完整性验证方法,其特征在于,所述保存有标记副本的标记索引数据结构表、数据文件的累计值和辅助值F均存储在验证方中。
5.根据权利要求1所述的一种基于双线性对累加器的云存储数据完整性验证方法,其特征在于,所述数据文件和辅助值E均发送给云存储提供商。
6.根据权利要求1所述的一种基于双线性对累加器的云存储数据完整性验证方法,其特征在于,所述验证方法根据标记索引数据结构表支持数据动态变换,所述数据动态变换包括数据的插入、数据的删除和数据的更新。
CN201910312740.1A 2019-04-18 2019-04-18 一种基于双线性对累加器的云存储数据完整性验证方法 Active CN110113320B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910312740.1A CN110113320B (zh) 2019-04-18 2019-04-18 一种基于双线性对累加器的云存储数据完整性验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910312740.1A CN110113320B (zh) 2019-04-18 2019-04-18 一种基于双线性对累加器的云存储数据完整性验证方法

Publications (2)

Publication Number Publication Date
CN110113320A CN110113320A (zh) 2019-08-09
CN110113320B true CN110113320B (zh) 2021-11-16

Family

ID=67485722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910312740.1A Active CN110113320B (zh) 2019-04-18 2019-04-18 一种基于双线性对累加器的云存储数据完整性验证方法

Country Status (1)

Country Link
CN (1) CN110113320B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931201B (zh) * 2020-07-15 2023-06-16 重庆第二师范学院 一种基于对称密钥的安全云存储系统
CN116451270B (zh) * 2023-03-31 2024-06-14 南京航空航天大学 一种验证云存储中数据确定性删除的方法
CN116090016B (zh) * 2023-04-10 2023-07-11 江苏省国信数字科技有限公司 区块链数据存储隐私保护方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465874B1 (en) * 2013-03-14 2016-10-11 Emc Corporation Authenticated hierarchical set operations and applications
CN107147720A (zh) * 2017-05-16 2017-09-08 安徽大学 一种云存储数据共享中可追踪的有效公开审计方法和系统
CN107451281A (zh) * 2017-08-08 2017-12-08 东北大学 基于ads的外包数据库sql查询完整性验证系统及方法
CN109088719A (zh) * 2018-08-14 2018-12-25 重庆第二师范学院 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN109104440A (zh) * 2018-10-22 2018-12-28 青岛大学 面向物联网移动终端设备的云存储大数据完整性验证方法
CN109547413A (zh) * 2018-10-23 2019-03-29 莆田学院 具有数据源认证的可转换的数据云存储的访问控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465874B1 (en) * 2013-03-14 2016-10-11 Emc Corporation Authenticated hierarchical set operations and applications
CN107147720A (zh) * 2017-05-16 2017-09-08 安徽大学 一种云存储数据共享中可追踪的有效公开审计方法和系统
CN107451281A (zh) * 2017-08-08 2017-12-08 东北大学 基于ads的外包数据库sql查询完整性验证系统及方法
CN109088719A (zh) * 2018-08-14 2018-12-25 重庆第二师范学院 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN109104440A (zh) * 2018-10-22 2018-12-28 青岛大学 面向物联网移动终端设备的云存储大数据完整性验证方法
CN109547413A (zh) * 2018-10-23 2019-03-29 莆田学院 具有数据源认证的可转换的数据云存储的访问控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Integrity Verification Scheme for Dynamic Cloud Data Based on Multi-Branching Tree;Li Haoyu等;《2017 9th International Conference on Measuring Technology and Mechatronics Automation)》;20170115;全文 *
云存储数据云存储数据完整性审计协议研究完整性审计协议研究;何瑜;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215;全文 *

Also Published As

Publication number Publication date
CN110113320A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
CN112019591B (zh) 一种基于区块链的云数据共享方法
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
CN110113320B (zh) 一种基于双线性对累加器的云存储数据完整性验证方法
CN101004805B (zh) 数字文档管理系统、数字文档管理方法
CN107395360A (zh) 一种基于区块链技术的文物及艺术品数字存证的方法
CN110740033A (zh) 一种基于秘密共享技术的区块链多方数据共享方法
US20100005318A1 (en) Process for securing data in a storage unit
CN108540291B (zh) 基于身份的云存储中数据完整性验证方法
CN109146479B (zh) 基于区块链的数据加密方法
JP2010050760A (ja) コンテンツ保護装置、および、コンテンツ利用装置
CN110008755B (zh) 一种云存储可撤销动态数据完整性验证系统及方法
CN108111313B (zh) 对云服务器上存储的用户文件进行第三方审计的方法
CN109861829B (zh) 支持动态更新的云数据公正审计系统及其审计方法
CN104978239A (zh) 一种实现多备份数据动态更新的方法、装置及系统
CN109754226B (zh) 数据管理方法、设备和存储介质
CN107465681A (zh) 云计算大数据隐私保护方法
CN112532650A (zh) 一种基于区块链的多备份安全删除方法、系统
CN107566127B (zh) 一种iki可信数字标识的生成方法及使用方法
CN113344222A (zh) 一种基于区块链的安全可信的联邦学习机制
CN112382376A (zh) 基于区块链的医疗器械管理追溯系统
CN107094075A (zh) 一种基于收敛加密的数据块动态操作方法
CN105187218A (zh) 一种多核心基础设施的数字化记录签名、验证方法
CN109743327B (zh) 基于无证书的云存储中共享数据的完整性公开验证方法
CN115001730A (zh) 分布式场景下基于角色属性的访问控制系统及方法
CN108259606B (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