CN109981736B - 一种支持用户与云服务器相互信任的动态公开审计方法 - Google Patents

一种支持用户与云服务器相互信任的动态公开审计方法 Download PDF

Info

Publication number
CN109981736B
CN109981736B CN201910134188.1A CN201910134188A CN109981736B CN 109981736 B CN109981736 B CN 109981736B CN 201910134188 A CN201910134188 A CN 201910134188A CN 109981736 B CN109981736 B CN 109981736B
Authority
CN
China
Prior art keywords
user
data
cloud
file
tpa
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.)
Expired - Fee Related
Application number
CN201910134188.1A
Other languages
English (en)
Other versions
CN109981736A (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 Science and Technology
CERNET Corp
Original Assignee
Nanjing University of Science and Technology
CERNET Corp
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 Science and Technology, CERNET Corp filed Critical Nanjing University of Science and Technology
Priority to CN201910134188.1A priority Critical patent/CN109981736B/zh
Publication of CN109981736A publication Critical patent/CN109981736A/zh
Application granted granted Critical
Publication of CN109981736B publication Critical patent/CN109981736B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出了一种支持用户与云服务器相互信任的动态公开审计方法,包括密钥生成;标签生成;挑战生成;证据生成;证据验证;公平仲裁等步骤,通过采取公开审计方式,允许用户将繁琐的审计任务交由给第三方审计者(Third Party Auditor,TPA)来处理。同时,通过设计数据动态记录表,实现了数据动态,还为该系统提供了用户与服务器相互信任的支持。本发明降低了公开审计设计过程中计算与通信开销,显著地提升了方法的效率。

Description

一种支持用户与云服务器相互信任的动态公开审计方法
技术领域
本发明涉及云存储领域,具体为一种支持用户与云服务器相互信任的动态公开审计方法。
背景技术
在传统计算模型中,用户是数据的拥有者,也同时是数据唯一操作者。但是由于大数据时代带来的数据量剧增,以及用户自己受限的能力,如有限的存储资源难以存储过多数据,有限计算资源难以对数据进行复杂计算,以及有限通信资源使得数据共享难以实现,因此,传统模型无法满足当今用户的计算需求。云存储是一个拥有充足存储资源与强大计算能力的计算平台,为用户提供按需付费的存储服务,具有高灵活、高伸缩、高容错的特点。用户只需要将数据上传云上并付一定费用就能轻松获得所需服务。然而,数据上传至云端意味着数据控制权由用户转交给云存储服务器,而服务器可能由于以下企图而不诚实地履行对用户的约定服务:1)云服务器故意删除云端未被访问或者很少被访问数据以节省存储空间;2)云服务器可能会直接伪造计算结果返回给用户以节省计算资源;3)云服务器可能由于利益原因而收集用户隐私信息。因此,如何使得用户去验证云存储数据的完整性是非常必要的。
通过以往学术研究,数据完整性验证被认为是允许用户对云存储数据完整性进行审计一种有效手段。数据完整性验证实际上是一种运行在用户与云服务器之间的交互式协议,最初参与实体只有用户与云服务器,也就是所谓的“私有认证”。为验证数据完整性,在整个数据存储期间,用户需要在本地计算元数据,并与云服务器进行频繁的交互,这样会为资源受限的用户带来较大的负担。因此,一个比用户拥有更充分的资源与更强的专业能力的实体被引入,即第三方审计者(Third Party Auditor,TPA),它将代替用户与云服务器进行交互以将用户从繁重的负担中解放出来。引入TPA的模型被称为公开审计,它允许用户将自己审计委托给TPA。相比于私有审计,公开审计更能符合实际需求。
云上存储的数据并不是一成不变的,用户可能根据需求随之对云上的数据进行更新,因此,数据动态是公开审计中研究热点之一。根据以往相关研究来看,支持数据动态审计的结构主要分成两类,树形结构与表型结构。树形结构通常以数据块的哈希值作为叶子节点,然后根据一定规则为非叶子节点取值,最后得到根节点。数据块的有效性往往依赖于验证路径,也就是一个数据块的验证通常需要多个节点与相应的哈希值。当数据块的数目增加的时候,某个数据块的验证所需的计算时间也会随之增加。也就是说使用树形结构来实现数据动态所用的开销总是随着数据块数目的增加而增加的。相对而言,表型结构可以通过将数据记录表存储在TPA中而不是在CSP来进行完整性审核,从而有效地降低计算成本和通信开销。表型结构能有效地支持数据块更新操作,但是在插入和删除操作方面显得效率低下。主要原因是,由于表型结构的序列结构,插入和删除操作将导致平均n/2元素的调整,其中n是所有数据块的总数。此外,插入和删除操作会改变某些块的序列号,并导致这些块标签被重现计算,这会给用户带来额外的计算成本和不必要的通信开销。
此外,重要的是,当前的完整性研究通常假设安全模型中有一个诚实的数据所有者,也就是说完整性审计方案是偏向于用户本身的。然而,事实上,不仅是云存储服务器,而且云用户,都有从事欺骗行为的动机。例如,恶意用户可能会故意向诚实的云存储服务器索赔数据损坏以获得金钱补偿,而不诚实的云服务器可能会删除很少访问的数据以节省存储空间。
发明内容
本发明的目的在于提出了一种支持用户与云服务器相互信任的动态公开审计方法。
实现本发明的技术解决方案为:一种支持用户与云服务器相互信任的动态公开审计方法,具体步骤为:
步骤1、私钥生成中心KGC为用户C与云存储服务器S生成公私钥;
步骤2、用户C将需要上传到云端的数据进行分块,并采用私钥为每一数据块生成标签,然后将所有数据块与其相应标签上传到云存储服务器S;同时用户C初始化数据动态记录表,并将记录表V发送给云存储服务器S、第三方审计者TPA与可信仲裁实体TAE进行存储。
步骤3、用户C将数据上传至云存储服务器S后,第三方审计者TPA产生随机挑战,然后将其发送到云存储服务器S;
步骤4、云存储服务器S在收到挑战消息之后,生成相应的证据并返回给第三方审计者TPA;
步骤5、第三方审计者TPA接收到证据后,验证证据的有效性,并将验证结果返回给用户C;
步骤6、当云服务器S未能通过步骤5的验证时,用户C向可信仲裁实体TAE申请仲裁,具体为:可信仲裁实体TAE通过用户C发送的当前记录表,验证云存储服务器S发送的云上存储的数据记录表的标签的有效性,若验证通过,则判定用户C是不诚实的,否则判定云存储服务器S是不诚实的。
优选地,步骤1中生成公私钥的具体方法为:
用户C设置公开密钥为{g,Y},私有密钥为sk,私钥生成中心KGC收到用户C发送的身份ID后,计算用户部分密钥psk=x+H1(ID,X)modq,并发给用户C,用户C选择秘密值
Figure BDA0001976429940000031
并计算sk=(psk+y)modq,Y=gsk∈G1;用户C设置私钥为sk,并公开Y;
优选地,步骤2中用户C将需要上传至云端进行存储的数据进行分块处理,并利用私钥为每一数据块生成标签,然后将所有数据块与其相应标签上传到云存储服务器S;同时用户C初始化数据动态记录表,并将记录表V发送给云存储服务器S、第三方审计者TPA与可信仲裁实体TAE进行存储。其具体方法为:
用户C计算文件标识
Figure BDA0001976429940000032
其中,name为用户为文件F={mi}1≤i≤n选择的文件名称,n为文件F的数据块数,用户C初始化数据动态记录表V={Vi}1≤i≤n,填充表V中每一条记录为Vi={FNi=i,SNi=i,BVi=1},用户C计算基于表V的签名
Figure BDA0001976429940000033
其中Ω={(SNi,BVi)}1≤i≤n,同时,用户C利用私钥sk为每一个数据块mi计算标签
Figure BDA0001976429940000034
得到所有标签的集合Φ={σ12,...,σn};用户C将数据文件块、标签集合、文件标签、用户C基于表生成的标签以及记录表
Figure BDA0001976429940000035
发送云存储服务器S,经云存储服务器S检查标签的有效性后进行存储,并从本地删除文件与签名,同时将记录表V发送给第三方审计者TPA与可信仲裁实体TAE进行存储。
优选地,数据动态记录表V的初始化方法具体为:
1)创建一个表,该表包含FN、SN、BV三列,共有n条记录表,其中,FN表示数据块的在文件中的排序,SN表示对数据块存储位置进行逻辑编号,BV表示数据块的被修改次数;
2)初始化表中的值,设置FNi=SNi={1,2,…,n},n为文件F的数据块数,BVi=0,代表所有数据块当前都只有一个版本。
优选地,步骤3中产生随机挑战的具体方法为:
1)第三方审计者TPA选择一个包含c个元素的子集
Figure BDA0001976429940000041
I中的元素表示的是数据块在文件中的索引,c表示被挑战的数据块个数;
2)第三方审计者TPA为集合I中的每一序号选择一个随机系数ri
3)第三方审计者TPA生成一个随机挑战消息chal={(i,ri)}i∈I并发送给云存储服务器S。
优选地,步骤4中生成证据的具体方法为:
当收到挑战消息chal={(i,ri)}i∈I后,云存储服务器S生成数据证据μ=∑i∈Iri·mi与标签证据
Figure BDA0001976429940000042
并将验证证据proof={μ,σ}返回给第三方审计者TPA。
优选地,步骤5中验证证据的具体方法为:
当收到来自云服务器S的证据proof={μ,σ}后,第三方审计者TPA运行通过检查以下等式是否成立来检查证据的有效性:
Figure BDA0001976429940000043
如果等式成立,则TPA发送消息“1”用户C,证明云端确实正确存储了数据,否则,发送消息“0”给用户C,用户C向仲裁实体TAE申请仲裁。
优选地,步骤6中进行公平仲裁过程如下:
当验证失败时,可信仲裁实体TAE收到来用户C的仲裁请求后,可信仲裁实体TAE要求用户C与云服务器S分别提供仲裁消息ΩC
Figure BDA0001976429940000044
其中,
Figure BDA0001976429940000051
ΩC={(SNi,BVi)}1≤i≤n为存储在用户C端的V中可用记录,ΩF={(SNi,BVi)}1≤i≤n为存储在云服务器S的V中可用记录;
可信仲裁实体TAE利用仲裁消息ΩC与云端公钥spkS来验证云服务器S发送的
Figure BDA0001976429940000052
若验证通过,则TAE判定用户是不诚实方,否则判定云服务器S是不诚实方。
本发明与现有技术相比,其显著优点为:1)本发明不仅为云上存储数据提供了公开审计,又采用无证书签名使得该模型免除了证书管理开销;2)本发明通过设计一种新的数据结构,在有效支持数据动态的基础上,还为该系统提供了用户与云之间的仲裁功能;3)本发明在审计过程中,降低了计算与通信开销,有效地提高了方法的效率。
下面结合附图对本发明做进一步详细的描述。
附图说明
图1是本发明的系统模型示意图。
图2是本发明的流程图。
具体实施方式
本发明提供一种支持用户与云服务器相互信任的动态公开审计方法,该方法的系统模型如图1所示,包含五类实体:用户(Client,C),云存储服务器(Cloud StorageServer,S)、私钥生成中心(Key Generation Center,KGC)、第三方审计者(Third PartyAuditor,TPA)与可信仲裁实体(Trusted Arbitration Entity,TAE)。
首先,进行系统的初始化,私钥生成中心KGC设置系统的公开参数为{G1,G2,q,g,u,e,H1,H2,Sig(),spkC,spkS,X},私有参数为{sskC,sskS,x},其中,G1、G2是乘法循环群,阶数均为q,g与u都是G1的生成元;双线性对映射e满足:e:G1×G1→G2;单向抗碰撞哈希函数H1与H2满足:
Figure BDA0001976429940000053
H2:{0,1}*→G1;Sig()是用于计算签名的算法,spkC/sskC是用户的公/私钥对,spkS/sskS是云存储服务器S的公/私钥对;X/x是系统的主公/私钥对,
Figure BDA0001976429940000054
X=gx∈G1
如图2所示,一种支持用户与云服务器相互信任的动态公开审计方法,具体步骤为
步骤1、私钥生成中心KGC为用户C与云存储服务器S生成公私钥;
在某些实施例中,具体为:用户C设置公开密钥为{g,Y},私有密钥为sk,私钥生成中心KGC收到用户C发送的身份ID后,计算用户部分密钥psk=x+H1(ID,X)modq,并发给用户C,用户C选择秘密值
Figure BDA0001976429940000061
并计算sk=(psk+y)modq,Y=gsk∈G1;用户C设置私钥为sk,并公开Y;
步骤2、用户C将需要上传至云端的数据进行分块处理,并为每一数据块生成标签,并将数据块与相应标签上传到云存储服务器S;同时用户C初始化数据动态记录表,并将记录表V发送给云存储服务器S、第三方审计者TPA与可信仲裁实体TAE进行存储;
在某些实施例中,具体为:用户C计算文件标识
Figure BDA0001976429940000062
其中,name为用户为文件F={mi}1≤i≤n选择的文件名称,n为文件F的数据块数,用户C初始化数据动态记录表V={Vi}1≤i≤n,填充表V中每一条记录为Vi={FNi=i,SNi=i,BVi=1},用户C计算基于表V的签名
Figure BDA0001976429940000063
其中Ω={(SNi,BVi)}1≤i≤n,同时,用户C利用私钥sk为每一个数据块mi计算标签
Figure BDA0001976429940000064
得到所有标签的集合Φ={σ12,...,σn};用户C将数据文件块、标签集合、文件标签、用户C基于表生成的标签以及记录表
Figure BDA0001976429940000065
发送云存储服务器S,经云存储服务器S检查标签的有效性后进行存储,并从本地删除文件与签名,同时将记录表V发送给第三方审计者TPA与可信仲裁实体TAE进行存储。
其中,数据动态记录表V的初始化方法具体为:
1)创建一个表,该表包含FN、SN、BV三列,共有n条记录表,其中,FN表示数据块的在文件中的排序,SN表示对数据块存储位置进行逻辑编号,BV表示数据块的被修改次数;
2)初始化表中的值,设置FNi=SNi={1,2,…,n},n为文件F的数据块数,BVi=0,代表所有数据块当前都只有一个版本。
步骤3、用户C将数据块上传至云存储服务器S后,第三方审计者TPA产生随机挑战,然后将其发送到云存储服务器S;
在某些实施例中,步骤3中产生随机挑战的具体方法为:当用户C需要验证云端数据的完整性时,第三方审计者TPA生成挑战chal={(i,ri)}i∈I,并将该挑战发送云服务器S,其中,ri为第三方审计者TPA为随机挑战集合中的每一个数据序号i所选的随机系数,第三方审计者TPA为用户C授权的第三方实体。
具体而言为:
1)第三方审计者TPA选择一个包含c个元素的子集
Figure BDA0001976429940000071
I中的元素表示的是数据块在文件中的索引,c表示被挑战的数据块个数;
2)第三方审计者TPA为集合I中的每一序号选择一个随机系数ri
3)第三方审计者TPA生成一个随机挑战消息chal={(i,ri)}i∈I并发送给云存储服务器S。
步骤4、云存储服务器S在收到挑战消息之后,生成相应的证据并返回给第三方审计者TPA;
在某些实施例中,步骤4中生成证据的具体方法为:
当收到挑战消息chal={(i,ri)}i∈I后,云存储服务器S生成数据证据μ=∑i∈Iri·mi与标签证据
Figure BDA0001976429940000072
并将验证证据proof={μ,σ}返回给第三方审计者TPA。
步骤5、第三方审计者TPA接收到证据后,验证证据的有效性,并将验证结果返回给用户C;
在某些实施例中,验证证据的具体方法为:
当收到来自云服务器S的证据proof={μ,σ}后,第三方审计者TPA运行通过检查以下等式是否成立来检查证据的有效性:
Figure BDA0001976429940000073
如果等式成立,则TPA发送消息“1”用户C,证明云端确实正确存储了数据,否则,发送消息“0”给用户C,用户C向仲裁实体TAE申请仲裁。
步骤6、当云服务器S未能通过步骤5的验证时,用户C向可信仲裁实体TAE申请仲裁,具体为:可信仲裁实体TAE通过用户C发送的当前记录表,验证云存储服务器S发送的云上存储的数据记录表的标签的有效性,若验证通过,则判定用户C是不诚实的,否则判定云存储服务器S是不诚实的。
在某些实施例中,进行公平仲裁过程如下:
当验证失败时,可信仲裁实体TAE收到来用户C的仲裁请求后,可信仲裁实体TAE要求用户C与云服务器S分别提供仲裁消息ΩC
Figure BDA0001976429940000081
其中,
Figure BDA0001976429940000082
ΩC={(SNi,BVi)}1≤i≤n为存储在用户C端的V中可用记录,ΩF={(SNi,BVi)}1≤i≤n为存储在云服务器S的V中可用记录;
可信仲裁实体TAE利用仲裁消息ΩC与云端公钥spkS来验证云服务器S发送的
Figure BDA0001976429940000083
若验证通过,则可信仲裁实体TAE判定用户是不诚实方,否则判定云服务器S是不诚实方。
本发明不仅为云上存储数据提供了公开审计,又采用无证书签名使得该模型免除了证书管理开销。同时,通过设计一种新的数据结构,在有效支持数据动态的基础上,还为该系统提供了用户与云之间的仲裁功能。此外,在审计过程中,降低了计算与通信开销,有效地提高了方法的效率。
本发明设计了一个新数据结构,称之为数据动态记录表。该表同时n条记录,表按照数据块索引顺序记录所有数据块的最新版本。数据块在文件中的索引序号并不参与数据块标签的计算,因此该数据结构能有效实现数据动态功能。该表被同时存储在用户/TPA端与云端,双方在执行动态更新交互时同时更新各自的记录表。当发生纠纷时,由一个可信实体通过判断双方基于该表生成的签名来判定哪方不诚实,也就是说该方案提供用户与云服务器相互信任的支持。
综上所述,本发明具有以下特点:
(1)支持数据动态
本发明通过设计了一种新的数据结构,实现了对数据动态的有效支持。允许用户对数据进行访问、修改、插入、删除操作。同时,进行数据动态操作时并不影响任何其他数据块的标签,因而能有效支持数据动态。
(2)支持公平仲裁
本发明为云存储服务器与云用户提供潜在纠纷的公平审计。通过可信仲裁实体的评判,使得审计方案不再完全偏向于用户,即防止不诚实用户陷害诚实的云服务器以获取赔偿的事件发生。
(3)实现无证书管理
本发明通过在采用无证书签名与双线性对来设计具体方案,避免了使用传统公钥系统所带来的繁重的证书管理与维护问题。
(4)降低计算与通信开销
本发明简化了数据动态过程,并将数据结构存储在TPA端,在一定程度上解决了背景技术中效率过低的问题。
(5)发明的安全性是可证明的
任意未授权实体都不能挑战云存储服务器。恶意的云服务器不能通过发动伪造、替换和重放攻击来通过完整性验证。
实施例1
为了更好地理解本实施例提出的方法,选取一次云存储环境下数据用户C对其存储在云服务器S上数据完整性验证事件。具体实施步骤如下:
系统初始化:私钥生成中心设置系统公开参数私有参数。具体如下:
1)选取阶均为q的乘法循环群G1、G2,g与u是G1的生成元;选取双线性映射e:G1×G2→GT;选取两个单向哈希函数
Figure BDA0001976429940000091
H2:{0,1}*→G1。以上参数均公开。
2)选取随机选取一个安全签名算法Sig()以及相应的两对签名密钥spkC/sskC与spkS/sskS。spkC/sskC是用户的公/私钥对,spkS/sskS是云存储服务器S的公/私钥对。公开参数spkC与spkS
3)随机选取秘密值
Figure BDA0001976429940000092
计算X=gx∈G1,X/x是系统的主公/私钥对。公开参数X。
密钥生成:私钥生成中心为数据用户C生成部分密钥,用户使用该部分密钥并成自己的公钥与私钥。具体如下:
1)用户C将自己身份ID发送给KGC。
2)KGC收到用户C发送的身份ID后,计算用户部分密钥psk=x+H1(ID,X)modq,并发给用户C。
3)用户通过判断
Figure BDA0001976429940000101
是否成立来判定接受部分密钥的有效性,若成立,则进行下一步,否则,用户重新想KGC寻求部分私钥。
4)用户C选择秘密值
Figure BDA0001976429940000102
并计算sk=(psk+y)modq,Y=gsk∈G1
5)最终,用户C设置私钥为sk,并公开Y。
标签生成:用户选取文件名name,并为文件计算文件标识tag,再为所有文件块mi计算标签σi,得到文件块集合Fi和完整性标签集合Φ。同时用户C初始化数据动态记录表V={Vi}1≤i≤n,并计算基于表V的签名
Figure BDA0001976429940000103
最后用户C将
Figure BDA0001976429940000104
发送云存储服务器S,经S检查标签的有效性后进行存储,并从本地删除文件与签名。同时将记录表V发送给TPA与TAE进行存储。具体如下:
1)计算文件标识tag过程如下:
(1a)用户选择文件名
Figure BDA0001976429940000105
(1b)利用私钥sskC对name进行签名,并将name与其相应的签名连结得到文件标签
Figure BDA0001976429940000106
2)计算记录表标识
Figure BDA0001976429940000107
过程如下:
(1a)用户C初始化数据动态记录表V={Vi}1≤i≤n,填充表V中每一条记录为Vi={FNi=i,SNi=i,BVi=1}。
(1b)用户C计算表V的签名
Figure BDA0001976429940000108
其中Ω={(SNi,BVi)}1≤i≤n
3)利用私钥为数据块mi计算标签
Figure BDA0001976429940000109
得到所有标签的集合Φ={σ12,...,σn}。
4)用户C将
Figure BDA00019764299400001010
发送云存储服务器S,经S检查标签的有效性后进行存储,并从本地删除文件与签名。
(1a)云存储服务器S提取name,使用公钥spkC检验tag的有效性,若验证通过,则进行下一步,否则,程序终止。
(1b)云存储服务器S验证
Figure BDA0001976429940000111
是否成立来检验数据块与标签的一致性。若验证通过,则进行下一步,否则,程序终止。
(1c)云存储服务器S初始化表V,并验证
Figure BDA0001976429940000112
的有效性,若验证通过,则进行下一步,否则,程序终止。
5)将记录表V发送给TPA与TAE进行存储。
挑战生成:当用户C需要验证云端数据的完整性时,向第三方审计者TPA发送审计请求,然后TPA生成挑战消息,并将该挑战消息发送云存储服务器。具体如下:
1)选择一个包含c个元素的子集
Figure BDA0001976429940000113
I中的元素表示的是数据块在文件中的索引,c表示被挑战的数据块个数。
2)为集合I中的每一序号选择一个随机系数ri
3)生成一个随机挑战消息chal={(i,ri)}i∈I并发送给云存储服务器S。
证据生成:云服务器S收到挑战消息后,生成相应证据,然后将该证据返回给TPA。具体如下:
1)当收到挑战消息chal={(i,ri)}i∈I后,云存储服务器S生成数据证据μ=∑i∈ Iri·mi与标签证据
Figure BDA0001976429940000114
2)将验证证据proof={μ,σ}返回给TPA。
验证证据:TPA收到应答消息后验证数据的完整性并得出结论,再将结果返回给数据所有者。具体如下:
1)当收到来自云服务器S的证据proof={μ,σ}后,TPA运行通过检查以下等式是否成立来检查证据的有效性:
Figure BDA0001976429940000115
2)如果等式成立,则TPA发送消息“1”用户C,证明云端确实正确存储了数据。否则,发送消息“0”给用户C,用户C向仲裁实体TAE申请仲裁。
公平仲裁:当云服务器S未能通过证据验证时,用户将向可信仲裁实体TAE申请仲裁。TAE根据用户提供的记录表与云提供的基于自身维护的V来判定哪一方参与者不是诚实的。具体如下:
1)当验证失败时,TAE收到来用户C的仲裁请求后,TAE要求用户C与云服务器S分别提供仲裁消息ΩC
Figure BDA0001976429940000121
其中,
Figure BDA0001976429940000122
ΩC={(SNi,BVi)}1≤i≤n为存储在用户C端的V中可用记录,ΩF={(SNi,BVi)}1≤i≤n为存储在云服务器S的V中可用记录。
1)TAE利用ΩC与云端公钥spkS来验证云服务器S发送的
Figure BDA0001976429940000123
若验证通过,则TAE判定用户是不诚实方,否则判定云服务器S是不诚实方。

Claims (6)

1.一种支持用户与云服务器相互信任的动态公开审计方法,其特征在于,具体步骤为:
步骤1、私钥生成中心KGC为用户C与云存储服务器S生成公私钥;
步骤2、用户C将需要上传到云端的数据进行分块,并采用私钥为每一数据块生成标签,然后将所有数据块与其相应标签上传到云存储服务器S;同时用户C初始化数据动态记录表,并将记录表V发送给云存储服务器S、第三方审计者TPA与可信仲裁实体TAE进行存储;其具体方法为:用户C计算文件标识
Figure FDA0003159058500000011
其中,name为用户为文件F={mi}1≤i≤n选择的文件名称,n为文件F的数据块数,用户C初始化数据动态记录表V={Vi}1≤i≤n,填充表V中每一条记录为Vi={FNi=i,SNi=i,BVi=1},用户C计算基于表V的签名
Figure FDA0003159058500000012
其中Ω={(SNi,BVi)}1≤i≤n,同时,用户C利用私钥sk为每一个数据块mi计算标签
Figure FDA0003159058500000013
得到所有标签的集合Φ={σ12,...,σn};用户C将数据文件块、标签集合、文件标签、用户C基于表生成的标签以及记录表
Figure FDA0003159058500000014
发送云存储服务器S,经云存储服务器S检查标签的有效性后进行存储,并从本地删除文件与签名,同时将记录表V发送给第三方审计者TPA与可信仲裁实体TAE进行存储;
其中,FNi表示第i个数据块的在文件中的排序,SNi表示对第i个数据块存储位置进行逻辑编号,BVi表示第i个数据块的被修改次数,G1是乘法循环群;
步骤3、用户C将数据上传至云存储服务器S后,第三方审计者TPA产生随机挑战,然后将其发送到云存储服务器S;
步骤4、云存储服务器S在收到挑战消息之后,生成相应的证据并返回给第三方审计者TPA;
步骤5、第三方审计者TPA接收到证据后,验证证据的有效性,并将验证结果返回给用户C;
步骤6、当云服务器S未能通过步骤5的验证时,用户C向可信仲裁实体TAE申请仲裁,具体为:可信仲裁实体TAE通过用户C发送的当前记录表,验证云存储服务器S发送的云上存储的数据记录表的标签的有效性,若验证通过,则判定用户C是不诚实的,否则判定云存储服务器S是不诚实的;当验证失败时,可信仲裁实体TAE收到来用户C的仲裁请求后,可信仲裁实体TAE要求用户C与云服务器S分别提供仲裁消息ΩC
Figure FDA0003159058500000021
其中,
Figure FDA0003159058500000022
ΩC={(SNi,BVi)}1≤i≤n为存储在用户C端的V中可用记录,ΩF={(SNi,BVi)}1≤i≤n为存储在云服务器S的V中可用记录;
可信仲裁实体TAE利用仲裁消息ΩC与云端公钥spkS来验证云服务器S发送的
Figure FDA0003159058500000023
若验证通过,则TAE判定用户是不诚实方,否则判定云服务器S是不诚实方;
其中,V为数据动态记录表,F为数据文件块,sskS是云存储服务器S的私钥对,
Figure FDA0003159058500000024
为云服务器S提供的仲裁消息,Sig()是用于计算签名的算法,i为数据序号,SNi表示对第i个数据块存储位置进行逻辑编号,BVi表示第i个数据块的被修改次数。
2.根据权利要求1所述的支持用户与云服务器相互信任的动态公开审计方法,其特征在于,步骤1中生成公私钥的具体方法为:
用户C设置公开密钥为{g,Y},私有密钥为sk,私钥生成中心KGC收到用户C发送的身份ID后,计算用户部分密钥psk=x+H1(ID,X)modq,并发给用户C,用户C选择秘密值
Figure FDA0003159058500000025
并计算sk=(psk+y)modq,Y=gsk∈G1;用户C设置私钥为sk,并公开Y;
其中,G1是乘法循环群,X是系统的主公钥对,,
Figure FDA0003159058500000026
为阶数为q的正整数集,H1(ID,X)是关于用户身份和系统主公钥对的单向抗碰撞哈希函数,Sig()是用于计算签名的算法。
3.根据权利要求2所述的支持用户与云服务器相互信任的动态公开审计方法,其特征在于,数据动态记录表V的初始化方法具体为:
1)创建一个表,该表包含FN、SN、BV三列,共有n条记录表,其中,FN表示数据块的在文件中的排序,SN表示对数据块存储位置进行逻辑编号,BV表示数据块的被修改次数;
2)初始化表中的值,设置FNi=SNi={1,2,…,n},n为文件F的数据块数,BVi=0,代表所有数据块当前都只有一个版本。
4.根据权利要求1所述的支持用户与云服务器相互信任的动态公开审计方法,其特征在于,步骤3中产生随机挑战的具体方法为:
1)第三方审计者TPA选择一个包含c个元素的子集
Figure FDA0003159058500000031
I中的元素表示的是数据块在文件中的索引,c表示被挑战的数据块个数;
2)第三方审计者TPA为集合I中的每一序号选择一个随机系数ri
3)第三方审计者TPA生成一个随机挑战消息chal={(i,ri)}i∈I并发送给云存储服务器S。
5.根据权利要求1所述的支持用户与云服务器相互信任的动态公开审计方法,其特征在于,步骤4中生成证据的具体方法为:
当收到挑战消息chal={(i,ri)}i∈I后,云存储服务器S生成数据证据μ=∑i∈Iri·mi与标签证据
Figure FDA0003159058500000032
并将验证证据proof={μ,σ}返回给第三方审计者TPA;
其中,i为数据序号,ri为第三方审计者TPA为随机挑战集合中的每一个数据序号i所选的随机系数,I为第三方审计者TPA选择的包含c个元素的子集,mi为文件F的第i个数据块。
6.根据权利要求1所述的支持用户与云服务器相互信任的动态公开审计方法,其特征在于,步骤5中验证证据的具体方法为:
当收到来自云服务器S的证据proof={μ,σ}后,第三方审计者TPA运行通过检查以下等式是否成立来检查证据的有效性:
Figure FDA0003159058500000033
如果等式成立,则TPA发送消息“1”用户C,证明云端确实正确存储了数据,否则,发送消息“0”给用户C,用户C向仲裁实体TAE申请仲裁;
其中,μ为云存储服务器S生成的数据证据,σ为云存储服务器S生成的标签证据,g和u是G1的生成元,i为数据序号,ri为第三方审计者TPA为随机挑战集合中的每一个数据序号i所选的随机系数,SNi表示对第i个数据块存储位置进行逻辑编号,BVi表示第i个数据块的被修改次数,Y为用户C的公开密钥。
CN201910134188.1A 2019-02-22 2019-02-22 一种支持用户与云服务器相互信任的动态公开审计方法 Expired - Fee Related CN109981736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910134188.1A CN109981736B (zh) 2019-02-22 2019-02-22 一种支持用户与云服务器相互信任的动态公开审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910134188.1A CN109981736B (zh) 2019-02-22 2019-02-22 一种支持用户与云服务器相互信任的动态公开审计方法

Publications (2)

Publication Number Publication Date
CN109981736A CN109981736A (zh) 2019-07-05
CN109981736B true CN109981736B (zh) 2021-09-21

Family

ID=67077306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910134188.1A Expired - Fee Related CN109981736B (zh) 2019-02-22 2019-02-22 一种支持用户与云服务器相互信任的动态公开审计方法

Country Status (1)

Country Link
CN (1) CN109981736B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798478B (zh) * 2019-11-06 2022-04-15 中国联合网络通信集团有限公司 数据处理方法及设备
CN112632604B (zh) * 2020-12-21 2024-01-23 贵州航天计量测试技术研究所 基于多授权审计者的云数据审计方法、系统及装置
CN114584578A (zh) * 2022-04-28 2022-06-03 湖南工商大学 一种基于智能合约以及纠删码编码的多云存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778387A (zh) * 2014-01-06 2014-05-07 中国科学技术大学苏州研究院 基于格的大数据动态存储完整性验证方法
CN105871543A (zh) * 2016-03-29 2016-08-17 西安电子科技大学 多数据拥有者背景下基于属性的多关键字密文检索方法
CN106301789A (zh) * 2016-08-16 2017-01-04 电子科技大学 应用基于格的线性同态签名的云存储数据的动态验证方法
CN107147720A (zh) * 2017-05-16 2017-09-08 安徽大学 一种云存储数据共享中可追踪的有效公开审计方法和系统
CN107423637A (zh) * 2017-07-31 2017-12-01 南京理工大学 支持云上电子病历数据可追踪的完整性审计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552640B2 (en) * 2017-03-08 2020-02-04 Quantum Corporation In-situ data verification for the cloud

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778387A (zh) * 2014-01-06 2014-05-07 中国科学技术大学苏州研究院 基于格的大数据动态存储完整性验证方法
CN105871543A (zh) * 2016-03-29 2016-08-17 西安电子科技大学 多数据拥有者背景下基于属性的多关键字密文检索方法
CN106301789A (zh) * 2016-08-16 2017-01-04 电子科技大学 应用基于格的线性同态签名的云存储数据的动态验证方法
CN107147720A (zh) * 2017-05-16 2017-09-08 安徽大学 一种云存储数据共享中可追踪的有效公开审计方法和系统
CN107423637A (zh) * 2017-07-31 2017-12-01 南京理工大学 支持云上电子病历数据可追踪的完整性审计方法

Also Published As

Publication number Publication date
CN109981736A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
Sookhak et al. Auditing big data storage in cloud computing using divide and conquer tables
Fu et al. NPP: A new privacy-aware public auditing scheme for cloud data sharing with group users
Wei et al. Security and privacy for storage and computation in cloud computing
CN110912706B (zh) 一种基于身份的动态数据完整性审计方法
Wei et al. SecCloud: Bridging secure storage and computation in cloud
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
CN108322306A (zh) 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法
CN112311772B (zh) 基于Hyperledger的跨域证书管理系统及方法
Au et al. PERM: Practical reputation-based blacklisting without TTPs
CN109981736B (zh) 一种支持用户与云服务器相互信任的动态公开审计方法
CN109889497A (zh) 一种去信任的数据完整性验证方法
CN105164971A (zh) 具有额外安全性的用于低熵输入记录的核验系统和方法
CN109861829B (zh) 支持动态更新的云数据公正审计系统及其审计方法
Yan et al. Integrity audit of shared cloud data with identity tracking
CN112565264B (zh) 一种基于区块链的云存储数据完整性检测方法
Petrlic et al. Privacy-preserving reputation management
CN110377225A (zh) 一种支持外包数据安全转移与可验证删除的方法
CN113014394A (zh) 基于联盟链的电子数据存证方法及系统
Shen et al. Multicopy and multiserver provable data possession for cloud-based IoT
Chen et al. A remote data integrity checking scheme for big data storage
CN113051341A (zh) 一种基于多种区块链的用户数据存证系统及方法
CN111353780A (zh) 授权验证方法、装置及存储介质
Deng et al. Designated‐Verifier Anonymous Credential for Identity Management in Decentralized Systems
CN109462581A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210921