CN114127724A - 针对多副本存储的完整性审计 - Google Patents

针对多副本存储的完整性审计 Download PDF

Info

Publication number
CN114127724A
CN114127724A CN201980098537.7A CN201980098537A CN114127724A CN 114127724 A CN114127724 A CN 114127724A CN 201980098537 A CN201980098537 A CN 201980098537A CN 114127724 A CN114127724 A CN 114127724A
Authority
CN
China
Prior art keywords
file
data
storage server
copy
data blocks
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.)
Pending
Application number
CN201980098537.7A
Other languages
English (en)
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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 Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of CN114127724A publication Critical patent/CN114127724A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

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

Abstract

提供了用于完整性审计的方法。该方法包括:生成质询消息,该质询消息用于验证被存储在存储服务器的文件的数据完整性(510);向存储服务器发送质询消息(520);从存储服务器接收关于文件的数据完整性的证明,该证明基于质询消息被生成(530);通过验证证明的有效性来验证文件的数据完整性(540)。通过这种方式,可以实现多副本存储的完整性审计,其中更新数据的开销与数据副本的数目无关。

Description

针对多副本存储的完整性审计
技术领域
本公开的实施例涉及数据管理领域,并且尤其涉及一种完整性审计的方法、装置和计算机可读存储介质。
背景技术
在大数据时代,数据量呈爆炸式增长,用户依赖传统方法已经无法很好地管理数据。云计算的出现为这一困境提供了新的出路。云计算为用户提供了明显的有利之处,诸如灵活存储、位置无关的按需接入服务、高可靠性等。但是,用户在本地处理数据时可能不再管理云上的数据。尽管云存储服务器可能会声称用户的数据已正确存储,但云中数据的安全性仍可能受到质疑。一个原因是云存储服务器为了节省存储空间,可能会故意删除未被接入或很少接入的数据。另一个原因是软件或硬件错误以及人为错误也会引起云中的数据损坏。因此,需要一种机制使用户能够检查存储在云中的数据的完整性。
发明内容
一般而言,本公开的示例实施例提供了用于完整性审计的方法、装置和计算机可读存储介质。
在第一方面,提供了一种装置。该装置包括:至少一个处理器;以及至少一个存储器,包括计算机程序代码;该至少一个存储器和该计算机程序代码被配置为与该至少一个处理器一起使该装置:将要被存储在存储服务器的文件划分为多个数据块;针对多个数据块中的每个数据块生成至少一个副本,该至少一个副本的数目与数据块的重要性相关联;基于多个数据块的副本和从密钥生成中心获得的该装置的第一私钥,生成用于多个数据块的相应标签和用于该文件的第一文件签名;以及向存储服务器发送多个数据块的副本、多个数据块的标签以及第一文件签名,用于在存储服务器存储该文件。
在第二方面,提供了一种装置。该装置包括:至少一个处理器;以及至少一个存储器,包括计算机程序代码;该至少一个存储器和该计算机程序代码被配置为与该至少一个处理器一起使该装置:生成质询消息,该质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于至少一个副本生成的标签,并且至少一个副本的数目与所述数据块的重要性相关联;向存储服务器发送该质询消息;从存储服务器接收关于该文件的数据完整性的证明,该证明基于该质询消息被生成;以及通过验证该证明的有效性来验证该文件的数据完整性。
在第三方面,提供了一种装置。该装置包括:至少一个处理器;以及至少一个存储器,包括计算机程序代码;该至少一个存储器和该计算机程序代码被配置为与该至少一个处理器一起使该装置:从另外的装置接收质询消息,该质询消息用于验证由客户端存储在该装置的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于至少一个副本生成的标签,并且至少一个副本的数目与数据块的重要性相关联;基于该质询消息,生成关于该文件的数据完整性的第一证明;以及向该另外的装置发送该第一证明。
在第四方面,提供了一种方法。该方法包括:将要被存储在存储服务器的文件划分为多个数据块;针对多个数据块中的每个数据块生成至少一个副本,该至少一个副本的数目与数据块的重要性相关联;基于多个数据块的副本和从密钥生成中心获得的该装置的第一私钥,生成用于多个数据块的相应标签和用于该文件的第一文件签名;以及向存储服务器发送多个数据块的副本、多个数据块的标签以及第一文件签名,用于在存储服务器存储该文件。
在第五方面,提供了一种方法。该方法包括:生成质询消息,该质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于至少一个副本生成的标签,并且至少一个副本的数目与所述数据块的重要性相关联;向存储服务器发送该质询消息;从存储服务器接收关于该文件的数据完整性的证明,该证明基于该质询消息被生成;以及通过验证该证明的有效性来验证该文件的数据完整性。
在第六方面,提供了一种方法。该方法包括:在存储服务器处从设备接收质询消息,该质询消息用于验证被存储在存储服务器的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于至少一个副本生成的标签,并且至少一个副本的数目与数据块的重要性相关联;基于该质询消息,生成关于该文件的数据完整性的证明;以及向该设备发送该证明。
在第七方面,提供了一种装置。该装置包括:用于将要被存储在存储服务器的文件划分为多个数据块的部件;用于针对多个数据块中的每个数据块生成至少一个副本的部件,至少一个副本的数目与数据块的重要性相关联;用于基于多个数据块的副本和从密钥生成中心获得的该装置的第一私钥生成用于多个数据块的相应标签和用于该文件的第一文件签名的部件;以及用于向存储服务器发送多个数据块的副本、多个数据块的标签以及第一文件签名以用于在存储服务器存储该文件的部件。
在第八方面,提供了一种装置。该装置包括:用于生成质询消息的部件,该质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于至少一个副本生成的标签,并且至少一个副本的数目与数据块的重要性相关联;用于向存储服务器发送该质询消息的部件;用于从存储服务器接收关于该文件的数据完整性的证明的部件,该证明基于该质询消息被生成;以及用于通过验证该证明的有效性来验证该文件的数据完整性的部件。
在第九方面,提供了一种装置。该装置包括:用于从另外的装置接收质询消息的部件,该质询消息用于验证被存储在该装置的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于至少一个副本生成的标签,并且至少一个副本的数目与数据块的重要性相关联;用于基于该质询消息生成关于该文件的数据完整性的证明的部件;以及用于向该另外的装置发送该证明的部件。
在第十方面,存在一种计算机可读存储介质,包括存储在其上的程序指令。指令在由装置执行时使该装置执行根据第四方面所述的方法。
在第十一方面,存在一种计算机可读存储介质,包括存储在其上的程序指令。指令在由装置执行时使该装置执行根据第五方面所述的方法。
在第十二方面,存在一种计算机可读存储介质,包括存储在其上的程序指令。指令在由装置执行时使该装置执行根据第六方面所述的方法。
应当理解,发明内容部分不旨在标识本公开的实施例的关键或本质特征,也不旨在用于限制本公开的范围。通过以下描述,本公开的其他特征将变得容易理解。
附图说明
通过附图中对本公开的一些示例实施例的更详细的描述,本公开的上述和其他对象、特征和优点将变得更加明显,在附图中:
图1示出了根据本公开的一些示例实施例的示例存储系统的框图;
图2示出了根据本公开的一些示例实施例的示例默克尔哈希树(MHT)的示意图;
图3A示出了根据本公开一些示例实施例的从密钥生成中心获得密钥的示例过程的交互图;
图3B示出了根据本公开的一些示例实施例的将文件存储到存储服务器中的示例过程的交互图;
图3C示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器的文件的数据完整性的示例过程的交互图;
图3D示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器的文件的数据完整性的另一个示例过程的交互图;
图3E示出了根据本公开的一些示例实施例的用于更新被存储在存储服务器的文件的示例过程的交互图;
图4示出了根据本公开的一些示例实施例的将文件存储到存储服务器中的示例方法的流程图;
图5示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器中的文件的数据完整性的示例方法的流程图;
图6示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器中的文件的数据完整性的示例方法的流程图;
图7示出了适合于本公开的实施例的装置的简化框图;以及
图8示出了根据本公开的一些示例实施例的示例计算机可读介质的框图。
在整个附图中,相同或相似的附图标记表示相同或相似的元素。
具体实施方式
现在将参考一些示例实施例来描述本公开的原理。应当理解,描述这些实施例仅用于说明和帮助本领域技术人员理解和实现本公开,而不暗示对本公开的范围的任何限制。本文中描述的公开可以以除了下面描述的方式之外的各种方式来实现。
在以下描述和权利要求中,除非另有定义,否则本文使用的所有技术和科学术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。
本公开中对“一个(one)实施例”、“一个(an)实施例”、“一个(an)示例实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但并非必须每个实施例都包括特定的特征、结构或特性。此外,这些短语不一定指相同的实施例。此外,当结合示例实施例描述特定特征、结构或特性时,结合无论是否明确描述的其他实施例来影响这样的特征、结构或特性在本领域技术人员的知识范围内。
应当理解,尽管本文中可以使用术语“第一”和“第二”等来描述各种元素,但是这些元素不应受这些术语的限制。这些术语仅用于将一种元素与另一种元素区分开来。例如,在不脱离示例实施例的范围的情况下,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素。如本文所用,术语“和/或”包括一个或多个所列术语的任何和所有组合。
本文中使用的术语仅用于描述特定实施例的目的,并不旨在限制示例实施例。如本文所用,单数形式“一个(a)”、“一个(an)”和“该/所述(the)”也旨在包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括(comprises)”、“包括(comprising)”、“具有(has)”、“具有(having)”、“包括(includes)”和/或“包括(including)”,当在本文中使用时,指定所述特征、元素和/或组件等的存在,但不排除存在或添加一个或多个其他特征、元素、组件和/或它们的组合。
如在本申请中使用的,术语“电路系统”可以指以下一项或多项或全部:
(a)纯硬件电路实现(诸如仅在模拟和/或数字电路系统中的实现)和
(b)硬件电路和软件的组合,诸如(如适用):
(i)(多个)模拟和/或数字硬件电路与软件/固件的组合,以及
(ii)具有软件的(多个)硬件处理器的任何部分(包括(多个)数字信号处理器)、软件和(多个)存储器,它们一起工作以使装置(诸如移动电话或服务器)执行各种功能),以及
(c)(多个)硬件电路和/或(多个)处理器,诸如(多个)微处理器或(多个)微处理器的一部分,它们需要软件(例如,固件)进行操作,但当操作不需要该软件时,该软件可能不存在。
该电路系统的定义适用于该术语在本申请中的所有使用,包括在任何权利要求中。作为另一个示例,如本申请中所使用的,术语电路系统还涵盖仅硬件电路或处理器(或多个处理器)或硬件电路或处理器的一部分及其(或它们的)随附软件和/或固件的实现。术语电路系统还涵盖例如并且如果适用于特定的权利要求元素、用于移动设备的基带集成电路或处理器集成电路,或者服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。
如上所述,在大数据的时代,数据量呈爆炸式增长,用户依赖传统方法已经无法很好地管理数据。云计算的出现为这一困境提供了新的出路。云计算为用户提供了明显的有利之处,诸如灵活存储、位置无关的按需接入服务、高可靠性等。但是,用户在本地处理数据时可能不再管理云上的数据。尽管云存储服务器(CSS)可能会声称用户的数据已正确存储,但云中数据的安全性仍可能受到质疑。一个原因是CSS可能会为了节省存储空间而故意删除未接入或很少接入的数据。另一个原因是软件或硬件错误以及人为错误也会引起云中的数据损坏。因此,需要一种机制使用户能够检查存储在云中的数据的完整性。
为了解决云存储中的上述完整性问题,已经提出了多种数据完整性方案。一般来说,完整性审计方案可以分为两类:私有审计和公共审计。在公共审计中,用户不仅可以自己审计云数据,还可以允许第三方审计方(TPA)代替用户与CSS进行交互。然而,目前大多数公共审计方案主要针对单副本存储。在单副本方案中,一旦审计失败,就意味着云中的数据已经损坏,而本地副本的删除使得损坏的数据难以恢复。通过跨多个云服务器存储原始数据的多个副本,多副本存储成为提高数据可用性和可恢复性的必然选择。多副本存储的一个显著特点是只要存储在云中的数据副本保持完整,损坏的数据就可以完全恢复。但是,当前的多副本方案可能仅支持静态数据副本。也就是说,文件的不同数据块可以具有相同数目的副本,而不管数据块相应的重要性。本申请的发明人已经意识到动态多副本方案可能会遇到安全性问题或性能缺陷。因此,针对云数据存储中的多副本存储提出动态公共审计方案具有重要意义。
为了实现对多副本存储的公共审计,已经进行了一些密码方案来为用户提供完整性保证。然而,这些方案可能有不同的限制。例如,一些方案是基于公钥基础设施(PKI)设计的,但是使用证书使得方案的部署昂贵。有些方案需要副本数和数据块的数目参与副本的生成,使得无法支持数据动态。某些方案可能存在安全性漏洞。进一步地,在一些方案中,更新数据块的开销可能随着数据块的副本的数目线性增加。
本公开的实施例提出了一种使用无证书签名的多副本公共审计方案,以解决上述问题和/或一个或多个其他潜在问题。具体来说,该方案允许用户根据数据块的重要性确定每个数据块的副本的数目。提出了一种改进的MHT来实现一个数据块的多个副本的批量更新。此外,签名交换验证被实现以实现公平仲裁并且处理用户和存储服务器之间的冲突。
现在参考图1,其示出了根据本公开的一些示例实施例的示例存储系统100的框图。例如,如图1所示,系统100可以包括客户端110、审计服务器120、存储服务器130和密钥生成中心(KGC)140。应当理解,系统100的结构是仅出于说明的目的而示出,并不暗示对本公开的范围的任何限制。本公开的实施例还可以应用于具有不同结构的系统。例如,在一些示例实施例中,可以省略审计服务器120。
客户端110可以是由用户101操作的任何设备。例如,客户端110可以从用户101接收指令并且基于来自用户101的指令执行动作。客户端110的示例可以包括,但是不限于电脑、手机、可穿戴设备、家电等。
在一些示例实施例中,根据来自用户101的指令,客户端110可以将要被存储到存储服务器130的文件划分为多个数据块。客户端110可以基于数据块的重要性针对每个数据块生成一个或多个副本。例如,客户端110可以针对较高重要性的数据块生成较多数目的副本,但针对较低重要性的另一个数据块生成较少数目的副本。客户端110可以将数据块的所有副本上传到存储服务器130中进行存储。为了保护数据完整性,客户端110还可以基于客户端110的私钥针对每个数据块生成标签。客户端110还可以基于其私钥生成文件的文件签名。多个数据块的标签和文件签名的生成可以基于改进的MHT,下面将结合图2对其进行详细描述。客户端110可以向存储服务器130发送多个数据块的标签和文件签名以进行存储。
在一些示例实施例中,审计服务器120可以被实现为与客户端110分开的计算设备。审计服务器120可以与客户端110和存储服务器130两者通信。例如,审计服务器120可以具有比客户端110多的计算资源和专业技能,使得客户端110可以将数据完整性的审计委托给审计服务器120。备选地,在一些示例实施例中,审计服务器120和客户端110可以在相同的物理设备中实现。
在一些示例实施例中,客户端110可以向审计服务器120发送请求(也称为“第一请求”),该请求用于验证由客户端110存储在存储服务器130的文件的数据完整性。响应于第一请求,审计服务器120可以生成质询消息并且向存储服务器130发送质询消息。存储服务器130可以基于质询消息生成关于文件的数据完整性的证明并且向审计服务器120发送该证明。响应于接收证明,审计服务器120可以验证证明的有效性,以确定文件是否已经正确地存储在存储服务器130。审计服务器120可以向客户端110发送响应,该响应指示文件的数据完整性的验证结果。备选地,在一些示例实施例中,可以从系统100中省略审计服务器120。例如,可以由客户端110生成质询消息并将其发送到存储服务器130。响应于从存储服务器130接收证明,客户端110可以验证该证明的有效性,从而确定该文件是否已经正确地存储在存储服务器130。
存储服务器130可以包括当前已知的或将来要开发的一个或多个存储设备。在一些示例实施例中,存储服务器130可以是云存储服务器(CSS),其可以是具有强大计算能力和足够存储空间的资源中心。存储服务器130可以负责存储和管理来自客户端110的数据(诸如,文件的数据块的副本),并随时响应来自客户端110或审计服务器120的质询消息。存储服务器130可以经由完整性机制使客户端110相信其在存储用户数据时是诚实的。
KGC 140可以是由客户端110和存储服务器130信任的第三方。密钥生成中心140可以基于客户端110和存储服务器130的标识分别生成部分密钥。KGC 140无法伪造有效签名,因为它仅拥有选定标识的部分密钥。
如上所述,根据本公开的示例实施例,引入改进的MHT以实现数据块的多个副本的批量更新。客户端110和存储服务器130都可以维护这样的MHT,以减少更新具有多个副本的数据块的开销。
图2示出了根据本公开的一些示例实施例的示例MHT 200的示意图。在一些示例实施例中,MHT 200可以通过使用密码哈希函数H来构造。
如图2所示,MHT 200可以包括多个节点210、220-1、220-2……220-6、230-1、230-2……230-8。MHT 200中的每个节点可以存储两个元素,其中一个是哈希值hN,另一个是MHT200中节点的位置信息lN。叶节点(诸如,节点230-1、230-2……230-8中的任何一个)可以对应于文件的数据块。在一些示例的实施例中,为了减少计算开销,也可以使用存储在叶节点的哈希值hN来计算对应于该叶节点的数据块的标签,这样,在生成标签和MHT时,每个数据块只需要进行一次哈希运算。对于每个非叶节点(诸如,节点220-1、220-2……220-6中的任何一个),存储在非叶节点的哈希值hN可以计算为:hN=H(hlchildren||hrchildren||lN),其中hlchildren表示由非叶节点的左子节点存储的哈希值,hlchildren表示由非叶节点的右子节点存储的哈希值,并且lN 的值表示MHT 200中的非叶节点的位置。例如,如图2所示,非叶节点220-3包括两个子节点230-1和230-2。左子节点230-1的位置信息表示为“000”,而右子节点230-2的位置信息表示为“001”。因此,非叶节点220-3的位置信息为“00”,这是左子节点和右子节点的位置信息中的公共部分。根节点210的位置信息lR 可以设置为空。这样,很容易得到所有节点的哈希值和位置信息,从而构建如图2所示的MHT。
节点的验证路径可以定义为从节点向上搜索到根节点的路径上的兄弟节点。例如,如果更新了对应于叶节点230-4的数据块,为了验证经更新的数据块(诸如新节点(h4,011))的有效性,验证路径{230-3、220-3、220-2}可以被提供。以此方式,存储在节点220-4处的哈希值可以更新为:hb=H(h3||h4||lb),其中lb 是“01”。可以类似地更新存储在节点220-1和210处的哈希值。
如图2所示,假设对应于叶节点230-1的数据块有三个副本(例如,表示为b11、b12和b13),而对应于叶节点230-2的另一个数据块节点具有两个副本(例如,表示为b21和b22)。存储在叶节点230-1和230-2的哈希值可以分别计算为:h1=H(H(b11)||H(b12)||H(b13))和h2=H(H(b21)||H(b22))。即,MHT 200中的每个叶节点存储基于对应于数据块的所有副本计算的哈希值。因此,更新数据块的开销与数据块的副本的数目无关。此外,如图2所示的MHT 200可以支持具有不同副本数目的数据块的动态更新。
基于改进的MHT 200如图2所示,可以实现多副本公共审计方案,该方案可以支持一个数据块的多个副本的动态批量更新,并且在更新过程中防止云发起的替换攻击。下面将参考图3A至3E描述更多细节。
在下面的描述中,假设G1和G2分别表示质数阶为q的两个乘法组,其中q是一个大质数。还假设e被选为可计算的双线性对,它将G1上的两个元素的乘积映射到G2上的一个元素。即e:G1×G1→G2。假设g是G1的生成器。还预定义了三个密码哈希函数H:{0,1}*→GI、H1:{0,1}*→G1和H2:{0,1}*→Zq和一个密码伪随机函数Ψ:Zq×{0,1}*→Zq,其中Zq表示范围[1,q-1],并且{0,1}*表示任意长度的二进制字符串。KGC 140可以选择主密钥s∈Zq并且基于主密钥计算系统公钥mpk=gs∈G1。KGC 140可以向客户端110和存储服务器130两者发布系统参数{G1,·G2,·q,·e,·g,·H,·H1,·H2,·Ψ,.mpk},但保持其主密钥s是秘密的。
图3A示出了根据本公开的一些示例实施例的用于从KGC 140获得密钥的示例过程310的交互图。出于讨论的目的,将参考图1来描述过程310。例如,过程310可以涉及如图1所示的客户端110、存储服务器130和KGC 140。应当理解,过程310可以包括图3A中未示出的附加动作,或者省略图3A中示出的一些动作。本公开的范围在这方面不受限制。
如图3A所示,客户端110可以向KGC 140发送311客户端110的标识符(诸如,标识客户端110的二进制字符串)。响应于接收客户端110的标识符,KGC 140可以基于客户端110的标识符针对客户端110生成312部分私钥。例如,客户端110的部分私钥可以计算为:sskU=H1(IDU)s,其中IDU表示客户端110的标识符。KGC 140可以向客户端110返回313部分私钥sskU。客户端110可以验证314部分私钥sskU的有效性。例如,客户端110可以通过检查等式e(sskC,g)=e(H1(IDC),mpk)是否可以被满足来验证部分私钥sskU的有效性。响应于等式不被满足,客户端110可以确定部分私钥sskU无效。然后,客户端110可以再次向KGC 140请求部分私钥。响应于等式被满足,客户端110可以确定部分私钥sskU是有效的。然后,客户端110可以基于部分私钥sskU和选定的秘密值xU∈Zq来确定315其私钥skU。即,skU={sskU,xU}。客户端110还可以将其公钥确定315为:
Figure BDA0003473864220000121
类似地,存储服务器130可以向KGC 140发送316存储服务器130的标识符(诸如,标识存储服务器130的二进制字符串)。响应于接收存储服务器130的标识符,KGC 140可以基于存储服务器130的标识符生成317用于存储服务器130的部分私钥。例如,用于存储服务器130的部分私钥可以计算为:sskC=H1(IDC)s,其中IDC表示存储服务器130的标识符。KGC 140可以向存储服务器130返回318部分私钥sskU。存储服务器130可以验证319部分私钥sskU的有效性。例如,存储服务器130可以通过检查等式e(sskC,g)=e(H1(IDC),mpk)是否可以被满足来验证部分私钥sskU的有效性。响应于等式不被满足,存储服务器130可以确定部分私钥sskU无效。然后,存储服务器130可以再次向KGC 140请求部分私钥。响应于等式被满足,存储服务器130可以确定部分私钥sskU是有效的。然后,存储服务器130可以基于部分私钥sskU和选定的秘密值xC∈Zq来确定315其私钥skC。即,skC={sskC,xC}。存储服务器130还可以将其公钥确定315为:
Figure BDA0003473864220000131
图3B示出了根据本公开的一些示例实施例的用于将文件存储到存储服务器中的示例过程330的交互图。为了讨论的目的,将参考图1来描述过程330。例如,过程330可以涉及如图1所示的客户端110和存储服务器130。应当理解,该过程330可以包括图3B中未示出的附加动作,或者省略图3B中示出的一些动作。本公开的范围在这方面不受限制。
如图3B所示,客户端110可以将要被存储到存储服务器130的文件F划分331为多个数据块。文件可以表示为F={b1,b2,…,bn},其中bi∈Zq并且n表示数据块的数目。客户端110可以针对文件选择随机name,其中name∈Zq。对于每个数据块bi(其中i∈[1,n]),客户端110可以生成332mi个副本,其中mi∈[1,mmax]并且mmax表示一个数据块支持的最大副本数。在一些示例实施例中,可以基于数据块bi的重要性来确定mi的值。例如,数据块bi的重要性越高,mi的值就越大。对于每个数据块bi(其中i∈[1,n]),客户端110可以选择随机值vi∈Zq并生成mi个副本bij=biK(name||j||vi),其中j∈[1,mi]并且K=H2(name||xU||sskU)。可以理解的是,对于数据块bi的任何副本bij,客户端110都可以容易地恢复明文bi=bijK(name||j||vi)。可以看出,数据块的序列号i不参与数据块的副本的生成,从而避免了由数据更新引起的标签重新计算。
在针对原始数据块bi生成所有副本bij(其中j∈[1,mi])之后,客户端110可以基于客户端110的私钥和数据块bi的所有副本bij(其中j∈[1,mi])挑选值u∈G1并生成333用于数据块bi的标签。例如,数据块bi的标签σi可以计算为:
Figure BDA0003473864220000141
其中
Figure BDA0003473864220000142
客户端110可以基于Mi上的MHT(诸如,如图2所示的MHT 200)的构造来生成根哈希值R,并且基于根哈希值R生成334用于文件的文件签名
Figure BDA0003473864220000143
然后,客户端110可以向存储服务器130发送335数据块的所有副本
Figure BDA0003473864220000144
所有标签{σi}1≤i≤n和文件签名SigU(也称为“第一文件签名”)用于存储。在一些示例实施例中,客户端110还可以向存储服务器130发送构建的MHT,使得存储服务器130可以利用被存储在MHT中的哈希值而无需进一步计算。备选地,在一些示例实施例中,存储服务器130可以基于接收的数据块的副本
Figure BDA0003473864220000145
构建相同的MHT。备选地或另外地,在一些示例实施例中,客户端110可以删除除根哈希值R之外的所有信息。
在一些示例实施例中,响应于来自客户端110的数据块的所有副本
Figure BDA0003473864220000146
所有标签{σi}1≤i≤n和第一文件签名SigU,存储服务器130可以验证336标签和第一文件签名是否是有效的。例如,存储服务器130可以首先通过检查等式
Figure BDA0003473864220000147
是否可以被满足来验证标签的有效性。响应于等式不被满足,存储服务器130可以拒绝存储对应的数据块和标签。响应于等式被满足,存储服务器130可基于MHT(诸如,如图2所示的MHT 200)计算路由哈希值R,并通过检查关系e(SigU,g)=e(H(R),pkU)是否可以被满足来验证第一文件签名SigU的有效性。响应于关系不被满足,存储服务器130可以拒绝存储对应的数据块和标签。响应于关系被满足,存储服务器130可以存储337从客户端110发送的所有数据,并且基于根哈希值和存储服务器130的私钥生成337该文件的文件签名(也称为“第二文件签名”)以及存储服务器130的私钥。例如,第二文件签名为可以被生成为:
Figure BDA0003473864220000151
存储服务器130可以向客户端110发送338第二文件签名。响应于接收第二文件签名,客户端110可以通过将e(SigC,g)与e(H(R),pkC)相比较来检查339第二文件签名SigC的有效性。响应于e(SigC,g)等于e(H(R),pkC)(即,第二文件签名有效),客户端110可以确定该文件已被存储服务器130正确存储。
图3C示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器的文件的数据完整性的示例过程350的交互图。如图1所示,流程350可以涉及客户端110、审计服务器120和存储服务器130。在图3C所示的示例中,客户端110可以将数据完整性的审计委托给审计服务器120。应当理解,过程350可以包括图3C中未示出的附加动作,或者省略图3C中示出的一些动作。本公开的范围在这方面不受限制。
如图3C所示,客户端110可以向审计服务器120发送351请求(即,第一请求),该请求用于验证被存储在存储服务器130的文件的数据完整性。响应于第一请求,审计服务器120可以生成352质询消息。在一些示例实施例中,审计服务器120可以选择文件的数据块集合用于完整性验证。例如,审计服务器120可以从文件的总共n个数据块中随机选择c个数据块,其中c表示要质询的数据块的数目。对于每个选定的数据块bi(其中i∈·I并且I表示{1,2……n}的随机选定的子集),审计服务器120可以确定验证参数{ri∈Zq}i∈I。审计服务器120可以生成质询消息以包括数据块集合的验证参数和数据块集合的指示。然后,审计服务器120可以向存储服务器130发送353质询消息。
响应于从审计服务器120接收质询消息,存储服务器130可以基于质询消息生成354证明{σ,μ,M}。在一些示例实施例中,证明{σ,μ,M}可以包括标签证明σ、数据块证明μ和c个数据块的相应的哈希值M。例如,证明{σ,μ,M}可以被生成为:
Figure BDA0003473864220000161
Figure BDA0003473864220000162
Figure BDA0003473864220000163
其中i∈·I。然后,存储服务器130可以向审计服务器120发送355证明。响应于接收该证明,审计服务器120可以验证356证明的有效性,以确定文件是否已经正确地存储在存储服务器130。例如,审计服务器120可以通过检查关系
Figure BDA0003473864220000164
是否可以被满足来验证证明的有效性。响应于关系被满足,审计服务器120可以确定存储服务器130已经按照客户端110的要求正确地存储了文件。响应于关系不被满足,审计服务器120可以确定验证文件的数据完整性失败。审计服务器120可以向客户端110发送357对第一请求的响应,该响应指示文件的数据完整性的验证结果。
图3D示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器的文件的数据完整性的另一个示例过程370的交互图。过程370可以包括如图1所示的客户端110和存储服务器130。在图3D所示的示例中,客户端110可以自己发起数据完整性的审计,而不需要将其委托给第三方。应当理解,过程370可以包括图3D中未示出的附加动作,或者省略图3D中示出的一些动作。本公开的范围在这方面不受限制。
如图3D所示,客户端110可以生成371质询消息。在一些示例实施例中,客户端110可以选择文件的数据块集合以用于完整性验证。例如,客户端110可以从文件的总共n个数据块中随机选择c个数据块,其中c表示要质询的数据块的数目。对于每个选定的数据块bi(其中i∈·I并且I表示{1,2……n}的随机选定的子集),客户端110可以确定验证参数{ri∈Zq}i∈I。客户端110可以生成质询消息以包括数据块集合的验证参数和数据块集合的指示。然后,客户端110可以向存储服务器130发送372质询消息。
响应于从客户端110接收质询消息,存储服务器130可以基于质询消息生成373证明{σ,μ,M}。在一些示例实施例中,证明{σ,μ,M}可以包括标签证明σ、数据块证明μ和c个数据块的相应的哈希值M。例如,证明{σ,μ,M}可以被生成为:
Figure BDA0003473864220000171
Figure BDA0003473864220000172
Figure BDA0003473864220000173
其中i∈·I。然后,存储服务器130可以向客户端110发送374证明。响应于接收该证明,客户端110可以验证375证明的有效性,以确定文件是否已经正确地存储在存储服务器130。例如,客户端110可以通过检查关系
Figure BDA0003473864220000174
是否可以被满足来验证证明的有效性。响应于关系被满足,客户端110可以确定存储服务器130已经按照客户端110的要求正确地存储了文件。响应于关系不被满足,客户端110可以确定验证文件的数据完整性失败。
图3E示出了根据本公开的一些示例实施例的用于更新存储在存储服务器处的文件的示例过程390的交互图。为了讨论的目的,将参考图1来描述过程390。过程390可以涉及如图1所示的客户端110和存储服务器130。应当理解,过程390可以包括图3E中未示出的附加动作,或省略图3E中所示的一些动作。本公开的范围在这方面不受限制。
如图3E所示,客户端110可以生成391请求(也称为“第二请求”),该请求用于更新被存储在存储服务器130的文件的数据块。在一些示例实施例中,支持三种更新操作,包括数据块的修改、数据块的插入和数据块的删除。例如,第二请求可以表示为:
Figure BDA0003473864220000175
其中name表示文件标识并且i表示目标数据块的序列号。OP可以从集合{‘M’,‘I’,‘D’}中选择,其中‘M’指示数据块bi要被修改,‘I’指示要在数据块bi之前插入一个新的数据块,并且‘D’指示数据块bi要被删除。
Figure BDA0003473864220000176
Figure BDA0003473864220000177
表示数据块的新值和对应的标签,并且当OP设置为‘D’时,
Figure BDA0003473864220000178
Figure BDA0003473864220000179
的值可能为空。客户端110可以向存储服务器130发送392第二请求。
在一些示例实施例中,给定文件F={bi}1≤i≤n,如果数据块bi要被修改为新的数据块b′i,则客户端110可以首先针对新的数据块b′i生成mi个副本,即,b′ij=b′iK(name||j||vi),其中j∈[1,mi]。客户端110然后可以针对新数据块b′i生成新标签σ′i,即
Figure BDA0003473864220000181
其中1≤i≤mi并且
Figure BDA0003473864220000185
然后,客户端110可以向存储服务器130发送392修改请求
Figure BDA0003473864220000186
响应于从客户端110接收修改请求,存储服务器130可以用新的数据块b′i的副本
Figure BDA0003473864220000182
替换393原始数据块bi的副本(表示为
Figure BDA0003473864220000183
),并用新的数据块b′i的标签σ′i替换原始数据块bi的标签σi。然后,存储服务器130可以生成394证明(以下也称为“第二证明”),该证明指示原始数据块的副本和对应的标签已在存储服务器130处被修改。例如,存储服务器130可以更新MHT并生成新的根散列值。存储服务器130可以基于新的根哈希值R′生成签名SigC。最后,存储服务器130可以向客户端110发送395第二证明P={Ωi,H(Mi),SigC,R′},其中Ωi表示bi的验证路径。响应于接收第二证明,客户端110可以验证396第二证明的有效性。例如,客户端110可以通过使用{Ωi,H(Mi)}得到旧的根哈希值并将其与存储的根哈希值相比较。如果对根哈希值的检查成功(即,基于{Ωi,H(Mi)}确定的旧的根哈希值等于存储的根哈希值),则客户端110还可以通过检查等式e(SigC,g)=e(H(R′),pkC)是否可以被满足来验证R′的有效性。响应于等式被满足,客户端110可以存储新的根R′并且生成397新签名(也称为“第三文件签名”)
Figure BDA0003473864220000184
客户端110可以向存储服务器130发送398第三文件签名用于存储。存储服务器130可以通过检查等式e(SigU,g)=e(H(R′),pkU)是否可以被满足来验证399第三文件签名的有效性。响应于等式被满足,存储服务器130可以确定客户端110已经确认修改操作。
备选地,在一些示例实施例中,给定文件F={bi}1≤i≤n,如果要在数据块bi之前插入数据块b′i,则客户端110可以首先针对新的数据块b′i生成mi个副本,即,b′ij=b′iK(mame||j||vi),其中j∈[1,mi]。客户端110然后可以针对新的数据块b′i生成新标签σ′i
Figure BDA0003473864220000191
其中1≤i≤mi并且
Figure BDA0003473864220000195
然后,客户端110可以向存储服务器130发送392插入请求
Figure BDA0003473864220000196
响应于从客户端110接收插入请求,存储服务器130可以在
Figure BDA0003473864220000192
之前插入393
Figure BDA0003473864220000193
并且在σi之前插入σ′i。然后,存储服务器130可以生成394第二证明,该第二证明指示新的数据块b′i的副本和对应标签被插入到存储服务器130。例如,存储服务器130可以更新MHT并生成新的根哈希值R′。存储服务器130可以基于新的根哈希值R′生成签名SigC。最后,存储服务器130可以向客户端110发送395第二证明P={Ωi,H(Mi),SigC,R′},其中Ωi表示bi的验证路径。响应于接收第二证明,客户端110可以验证396第二证明的有效性。例如,客户端110可以通过使用{Ωi,H(Mi)}得到旧的根哈希值并将其与存储的根哈希值相比较。如果对根哈希值的检查成功(即,基于{Ωi,H(Mi)}确定的旧的根哈希值等于存储的根哈希值),则客户端110还可以通过检查等式e(SigC,g)=e(H(R′),pkC)是否可以被满足来验证R′的有效性。响应于等式被满足,客户端110可以存储新的根R′并且生成397第三文件签名
Figure BDA0003473864220000194
客户端110可以向存储服务器130第三文件签名发送398用于存储。存储服务器130可以通过检查等式e(SigU,g)=e(H(R′),pkU)是否可以被满足来验证399第三文件签名的有效性。响应于等式被满足,存储服务器130可以确定客户端110已经确认插入操作。
在一些示例实施例中,给定文件F={bi}1≤i≤n,如果要从文件中删除数据块bi,则客户端110可以向存储服务器130发送392删除请求{name,·D,·i,null,·null}·。响应于从客户端110接收删除请求,存储服务器130可以删除393数据块的副本
Figure BDA0003473864220000201
和数据块的标签σi。然后,存储服务器130可以生成394第二证明,该第二证明指示在存储服务器130处删除数据块bi的副本和对应的标签。例如,存储服务器130可以更新MHT并生成新的根哈希价值R′。存储服务器130可以基于新的根哈希值R′生成签名SigC。最后,存储服务器130可以向客户端110发送395第二证明P={Ωi,H(Mi),SigC,R′},其中Ωi表示旧树中bi的验证路径。响应于接收第二证明,客户端110可以验证396第二证明的有效性。例如,客户端110可以通过使用{Ωi,H(Mi)}得到旧的根哈希值并将其与存储的根哈希值相比较。如果对根哈希值的检查成功(即,基于{Ωi,H(Mi)}确定的旧的根哈希值等于存储的根哈希值),则客户端110还可以通过检查等式e(SigC,g)=e(H(R′),pkC)是否可以被满足来验证R′的有效性。响应于等式被满足,客户端110可以存储新的根R′并且生成397第三文件签名
Figure BDA0003473864220000202
客户端110可以向存储服务器130发送398第三文件签名用于存储。存储服务器130可以通过检查等式e(SigU,g)=e(H(R′),pkU)是否可以被满足来验证399第三文件签名的有效性。响应于等式被满足,存储服务器130可以确定客户端110已经确认删除操作。
在一些示例实施例中,如果对文件签名或证明的有效性的任何验证失败,或者在客户端110和存储服务器130之间发生冲突,则可以发起仲裁。被存储在客户端110的根哈希值R和基于根哈希值R生成并被存储在存储服务器130的文件签名SigC可以提供给由客户端110和存储服务器130两者都信任的仲裁实体。仲裁实体可以通过检查e(SigC,g)=e(H(R),pkC)是否可以被满足来验证SigC的有效性。如果该等式被满足,则仲裁实体可以输出结果,该结果指示客户端110不诚实。如果等式不被满足,仲裁实体可以输出不同的结果,该不同的结果指示存储服务器130不诚实。
综上所述,可以看出,本公开实施例提出了一种使用无证书签名的多副本公共审计方案。该方案允许用户根据数据块的重要性确定用于每个数据块的副本的数目。提出了一种改进的MHT来实现数据块的多个副本的批量更新,使得开销不会随着数据块的副本的数目而增加。基于改进的MHT,实现签名验证机制来处理不诚实用户可能错误地框定云服务器进行赔偿的争议。因此,根据本公开的实施例的方案提高了多副本存储的动态更新的效率,可以很好地应用于实际。
图4示出了根据本公开的一些示例实施例的用于将文件存储到存储服务器中的示例方法400的流程图。方法400可以在如图1所示的客户端110上实现。应当理解,方法400可以包括未示出的附加框和/或可以省略一些示出的框,并且本公开的范围不是在这方面受到限制。
在框410,客户端110将要被存储在存储服务器130的文件划分为多个数据块。
在框420,客户端110针对多个数据块中的每个数据块生成至少一个副本,至少一个副本的数目与数据块的重要性相关联。
在框430,客户端110基于多个数据块的副本和从KGC 140获得的客户端110的第一私钥,生成用于多个数据块的相应标签和用于文件的第一文件签名。
在框440,客户端110向存储服务器130发送多个数据块的副本、多个数据块的标签和第一文件签名,用于在存储服务器130存储文件。
在一些示例实施例中,方法400还包括:向审计服务器120发送第一请求,该第一请求用于验证被存储在存储服务器130的文件的数据完整性;以及从审计服务器120接收对第一请求的响应,该响应指示文件的数据完整性的验证结果。
在一些示例实施例中,方法400还包括:向KGC 140发送客户端110的标识符;从KGC140接收基于标识符生成的部分私钥;验证部分私钥的有效性;以及响应于部分私钥有效,基于部分私钥和客户端110的秘密值确定第一私钥。
在一些示例实施例中,生成用于多个数据块的相应标签和用于文件的第一文件签名包括:针对多个数据块中的每个数据块确定哈希值;基于多个数据块的哈希值、多个数据块的副本以及第一私钥,生成用于多个数据块的标签;以及基于多个数据块的哈希值与第一私钥生成第一文件签名。
在一些示例实施例中,多个数据块包括具有第一副本集合的第一数据块,并且针对多个数据块中的每个数据块确定哈希值包括:针对第一副本集合中的每个副本生成哈希值;聚合第一副本集合的哈希值;以及基于聚合结果生成针对第一数据块的哈希值。
在一些示例实施例中,方法400还包括:从存储服务器130接收文件的第二文件签名,第二文件签名基于存储服务器130的第二私钥被生成;基于存储服务器130的公钥验证第二文件签名的有效性;以及响应于第二文件签名有效,确定该文件已经被存储在存储服务器130。
在一些示例实施例中,方法400还包括:向存储服务器130发送第二请求,该第二请求用于更新被存储在存储服务器130的文件;从存储服务器130接收证明,该证明指示被存储在存储服务器130的文件基于第二请求被更新;基于第一文件签名验证证明的有效性;响应于证明有效,基于证明和第一私钥生成第三文件签名;以及向存储服务器130发送第三文件签名,以指示更新已经由客户端110确认。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。发送第二请求包括:向存储服务器130发送用于将第二数据块修改为第三数据块的第二请求,该第二请求指示针对第三数据块生成的第三副本数和第三标签。接收证明包括:从存储服务器130接收指示第二副本集合被第三副本集合替换并且第二标签被第三标签替换的证明。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。发送第二请求包括:向存储服务器130发送用于在第二数据块之前插入第三数据块的第二请求,第二请求指示针对第三数据块生成的第三副本数和第三标签。接收证明包括:从存储服务器130接收指示第三副本集合被插入在第二副本集合之前并且第三标签被插入在第二标签之前的证明。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。发送第二请求包括:向存储服务器130发送删除第二数据块的第二请求。接收证明包括:从存储服务器130接收指示删除第二数据块的第二副本集合和标签的证明。
图5示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器处的文件的数据完整性的示例方法的流程图。方法500可以在如图1所示的客户端110或审计服务器120处实现。应当理解,方法500可以包括未示出的附加框和/或可以省略一些示出的框,并且本公开的范围在这方面不受限制。
在框510,生成质询消息,该质询消息用于验证由客户端110在存储服务器130处存储的文件的数据完整性。被存储在存储服务器130的文件包括多个数据块,每个数据块包括标签和至少一个副本,并且至少一个副本的数目与数据块的重要性相关联。
在一些示例实施例中,生成质询消息包括:从多个数据块中选择用于验证文件的数据完整性的数据块集合;针对数据块集合中的每个数据块确定验证参数;以及生成质询消息,该质询消息包括数据块集合的验证参数和数据块集合的指示。
在框520,质询消息被发送到存储服务器130。
在框530,从存储服务器130接收关于文件的数据完整性的证明。该证明基于质询消息被生成。
在一些示例实施例中,关于文件的数据完整性的证明包括:基于数据块集合的标签生成的标签证明;基于数据块集合的相应副本和数据块集合的验证参数生成的数据块证明;以及数据块集合的相应哈希值。
在框540,通过验证证明的有效性来验证被存储在存储服务器130的文件的数据完整性。
在一些示例实施例中,验证文件的数据完整性包括:确定标签证明、数据块证明和数据块集合的哈希值是否满足预定关系;响应于满足预定关系,确定该证明有效;以及响应于证明有效,确定验证文件的数据完整性成功。
在一些示例性实施例中,验证文件的数据完整性还包括:响应于预定关系不被满足,确定证明无效;以及响应于证明无效,确定验证文件的数据完整性失败。
在一些示例实施例中,方法500在客户端110处执行。
在一些示例实施例中,方法500在与客户端110分开的审计服务器120处执行。生成质询消息包括:响应于从客户端110接收用于验证被存储在存储服务器130的文件的数据完整性的第一请求,生成质询消息。方法500还包括:响应于文件的数据完整性被验证,向客户端110发送对第一请求的响应,该响应指示文件的数据完整性的验证结果。
图6示出了根据本公开的一些示例实施例的用于验证被存储在存储服务器的文件的数据完整性的示例方法的流程图。方法600可以在如图1所示的存储服务器130上实现。应当理解,方法600可以包括未示出的附加框和/或可以省略一些示出的框,本公开的范围在这方面不受限制。
在框610,存储服务器130从设备接收质询消息,该质询消息用于验证由客户端110在存储服务器130存储的文件的数据完整性。该文件包括多个数据块,每个数据块包括标签和至少一个副本,并且至少一个副本的数目与数据块的重要性相关联。
在一些示例实施例中,该设备包括客户端110。
在一些示例实施例中,设备包括与客户端110分开的审计服务器120。
在框620,存储服务器130基于质询消息生成关于文件数据完整性的第一证明。
在框630,存储服务器130向设备发送第一证明。
在一些示例实施例中,方法600还包括:在接收质询消息之前,从客户端110接收多个数据块的相应副本、多个数据块的相应标签和文件的第一文件签名,多个数据块的标签和第一文件签名基于多个数据块的副本和客户端110的第一私钥被生成;验证多个数据块的标签和第一文件签名的有效性;以及响应于多个数据块的标签和第一文件签名有效,通过存储多个数据块的副本、多个数据块的标签和第一文件签名,在存储服务器130存储该文件。
在一些示例实施例中,方法600还包括:针对多个数据块中的每个数据块确定哈希值;响应于文件被存储在存储服务器130,基于多个数据块的哈希值和从KGC 140获得的存储服务器130的第二私钥,针对该文件生成第二文件签名;以及向客户端110发送第二文件签名。
在一些示例实施例中,方法600还包括:向KGC 140发送存储服务器130的标识符;从KGC 140接收基于标识符生成的部分私钥;验证部分私钥的有效性;以及响应于部分私钥有效,基于部分私钥和存储服务器130的秘密值确定第二私钥。
在一些示例实施例中,针对多个数据块中的每个数据块确定哈希值包括:针对第一副本集合中的每个副本生成哈希值;聚合第一副本集合的哈希值;以及基于聚合结果生成针对第一数据块的哈希值。
在一些示例实施例中,生成第一证明包括:基于数据块集合的相应标签生成标签证明;基于数据块集合的相应副本和数据块集合的验证参数生成数据块证明;针对数据块集合的每个数据块生成哈希值;以及生成第一证明,该第一证明包括标签证明、数据块证明和数据块集合的哈希值。发送第一证明包括:向设备发送第一证明,该第一证明包括标签证明、数据块证明和数据块集合的哈希值。
在一些示例实施例中,方法600还包括:从客户端110接收第二请求,该第二请求用于更新被存储在存储服务器130的文件;响应第二请求,更新文件;生成第二证明,该第二证明指示被存储在存储服务器130的文件被更新;向客户端110发送第二证明;从客户端110接收第三文件签名,该第三文件签名基于第二证明和第一私钥被生成;基于客户端110的公钥验证第三文件签名的有效性;以及响应于第三文件签名有效,确定客户端110已经确认更新。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。接收第二请求包括:从客户端110接收用于将第二数据块修改为第三数据块的第二请求,第二请求指示针对第三数据块生成的第三副本数和第三标签。更新文件包括:利用第三副本集合替换第二副本集合并且利用第三标签替换第二标签。生成第二证明包括:生成指示第二副本集合被第三副本集合替换并且第二标签被第三标签替换的第二证明。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。接收第二请求包括:从客户端110接收用于在第二数据块之前插入第三数据块的第二请求,第二请求指示针对第三数据块生成的第三副本数和第三标签。更新文件包括:在第二副本集合之前插入第三副本集合并且在第二标签之前插入第三标签。生成第二证明包括:生成指示第三副本集合被插入在第二副本集合之前并且第三标签被插入在第二标签之前的第二证明。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。接收第二请求包括:从客户端110接收用于删除第二数据块的第二请求。更新文件包括:删除第二副本集合和第二标签。生成第二证明包括:生成指示第二数据块的第二副本集合和标签被删除的第二证明。
在一些示例实施例中,能够执行方法400的装置可以包括用于执行方法400的相应步骤的部件。该部件可以以任何合适的形式实现。例如,该部件可以在电路系统或软件模块中实现。
在一些示例实施例中,能够执行方法400的装置(例如,客户端110)包括:用于将要被存储在存储服务器中的文件划分为多个数据块的部件;用于针对多个数据块中的每个数据块生成至少一个副本的部件,至少一个副本的数目与数据块的重要性相关联;用于基于多个数据块的副本和从密钥生成中心获得的装置的第一私钥生成用于多个数据块的相应标签和用于文件的第一文件签名的部件;以及用于向存储服务器发送多个数据块的副本、多个数据块的标签和第一文件签名以用于在存储服务器存储该文件的部件。
在一些示例实施例中,能够执行方法400的装置还包括:用于向审计服务器发送第一请求的部件,该第一请求用于验证被存储在存储服务器上的文件的数据完整性;以及用于从审计服务器接收对第一请求的响应的部件,该响应指示文件数据完整性的验证结果。
在一些示例实施例中,能够执行方法400的装置还包括:用于向密钥生成中心发送装置的标识符的部件;用于从密钥生成中心接收基于标识符生成的部分私钥的部件;用于验证部分私钥的有效性的部件;以及用于响应于部分私钥有效而基于部分私钥和装置的秘密值确定第一私钥的部件。
在一些示例实施例中,用于针对多个数据块生成相应标签和文件的第一文件签名的部件包括:用于针对多个数据块中的每个数据块确定哈希值的部件;用于基于多个数据块的哈希值、多个数据块的副本和第一私钥生成用于多个数据块的标签的部件;以及用于基于多个数据块的哈希值和第一私钥生成第一文件签名的部件。
在一些示例实施例中,多个数据块包括具有第一副本集合的第一数据块,并且用于针对多个数据块中的每个数据块确定哈希值的部件包括:用于针对第一副本集合的每个副本生成哈希值的部件;用于聚合第一副本集合的哈希值的部件;以及用于基于聚合的结果生成针对第一数据块的哈希值的部件。
在一些示例实施例中,能够执行方法400的装置还包括:用于从存储服务器接收文件的第二文件签名的部件,第二文件签名基于存储服务器的第二私钥被生成;用于基于存储服务器的公钥验证第二文件签名的有效性的部件;以及用于响应于第二文件签名有效,确定该文件已被存储在存储服务器的部件。
在一些示例实施例中,能够执行方法400的装置还包括:用于向存储服务器发送第二请求的部件,该第二请求用于更新被存储在存储服务器的文件;用于从存储服务器接收证明的部件,该证明指示被存储在存储服务器的文件基于第二请求被更新;基于第一文件签名验证证明有效性的部件;用于响应于该证明有效而基于证明和第一私钥生成第三文件签名的部件;以及用于向存储服务器发送第三文件签名以指示更新已经被装置确认的部件。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。用于发送第二请求的部件:包括用于向存储服务器发送用于将第二数据块修改为第三数据块的第二请求的部件,第二请求指示针对第三数据块生成的第三副本数和第三标签。用于接收证明的部件包括:用于从存储服务器接收指示第二副本集合被第三副本集合替换并且第二标签被第三标签替换的证明的部件。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。用于发送第二请求的部件包括:用于向存储服务器发送用于在第二数据块之前插入第三数据块的第二请求的部件,第二请求指示针对第三数据块生成的第三副本数和第三标签。用于接收证明的部件包括:用于从存储服务器接收指示第三副本集合被插入在第二副本集合之前并且第三标签被插入在第二标签之前的证明的部件。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。发送第二请求的部件包括:用于向存储服务器发送用于删除第二数据块的第二请求的部件。用于接收证明的部件包括:用于从存储服务器接收指示第二数据块的第二副本集合和标签被删除的证明的部件。
在一些示例实施例中,能够执行方法500的装置可以包括用于执行方法500的相应步骤的部件。该部件可以以任何合适的形式来实现。例如,该部件可以在电路系统或软件模块中实现。
在一些示例实施例中,能够执行方法500的装置(例如,客户端110或审计服务器120)包括:用于生成质询消息的部件,该质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于该至少一个副本生成的标签,并且该至少一个副本的数目与该数据块的重要性相关联;用于向存储服务器发送质询消息的部件;用于从存储服务器接收关于文件的数据完整性的证明的部件,该证明基于质询消息被生成;以及用于通过验证证明的有效性来验证文件的数据完整性的部件。
在一些示例实施例中,用于生成质询消息的部件包括:用于从多个数据块中选择用于验证文件的数据完整性的数据块集合的部件;用于针对数据块集合中的每个数据块确定验证参数的部件;以及用于生成包括数据块集合的验证参数和数据块集合的指示的质询消息的部件。
在一些示例实施例中,关于文件的数据完整性的证明包括:基于数据块集合的标签生成的标签证明;基于该数据块集合的相应副本和该数据块集合的验证参数生成的数据块证明;以及该数据块集合的相应哈希值。
在一些示例实施例中,用于验证文件的数据完整性的部件包括:用于确定标签证明、数据块证明和数据块集合的哈希值是否满足预定关系的部件;用于响应于满足预定关系而确定该证明有效的装置部件;以及用于响应于证明有效而确定验证文件的数据完整性成功的部件。
在一些示例实施例中,用于验证文件的数据完整性的部件还包括:用于响应于不满足预定关系而确定该证明无效的部件;以及用于响应证明无效而确定验证文件的数据完整性失败的部件。
在一些示例实施例中,该装置包括客户端。
在一些示例实施例中,该装置包括与客户端分开的审计服务器,并且用于生成质询消息的部件包括:用于响应于从客户端接收第一请求而生成质询消息的部件,该质询消息用于验证被存储在存储服务器的文件的数据完整性。该装置还包括用于响应于文件的数据完整性被验证而向客户端发送对第一请求的响应的部件,该响应指示文件的数据完整性的验证结果。
在一些示例实施例中,能够执行方法600的装置可以包括用于执行方法600的相应步骤的部件。该部件可以以任何合适的形式来实现。例如,该装置可以在电路系统或软件模块中实现。
在一些示例实施例中,能够执行方法600的装置(例如,存储服务器130)包括:用于从另外的装置接收质询消息的部件,该质询消息用于验证由客户端存储在该装置的文件的数据完整性,该文件包括多个数据块,每个数据块包括至少一个副本并且具有基于该至少一个副本生成的标签,并且该至少一个副本的数目与该数据块的重要性相关联;用于基于质询消息生成关于文件的数据完整性的第一证明的部件;以及用于向另外的装置发送第一证明的部件。
在一些示例实施例中,能够执行方法600的装置还包括:用于在接收质询消息之前从客户端接收多个数据块的相应副本、多个数据块的相应标签以及文件的第一文件签名的部件,多个数据块的标签和第一文件签名基于多个数据块的副本和客户端的第一私钥被生成;用于验证多个数据块的标签和第一文件签名的有效性的部件;以及用于响应于多个数据块的标签和第一文件签名有效而通过存储多个数据块的副本、多个数据块的标签和第一文件签名而在该装置存储该文件的部件。
在一些示例实施例中,能够执行方法600的装置还包括:用于针对多个数据块中的每个数据块确定哈希值的部件;用于响应于文件被存储在该装置而基于多个数据块的哈希值和从密钥生成中心获得的装置的第二私钥针对文件生成第二文件签名的部件;以及用于向客户端发送第二文件签名的部件。
在一些示例实施例中,能够执行方法600的装置还包括:用于向密钥生成中心发送装置的标识符的部件;用于从密钥生成中心接收基于标识符生成的部分私钥的部件;用于验证部分私钥的有效性的部件;以及用于响应于部分私钥有效而基于部分私钥和装置的秘密值确定第二私钥的部件。
在一些示例实施例中,多个数据块包括具有第一副本集合的第一数据块,并且用于针对多个数据块中的每个数据块确定哈希值的部件包括:用于针对第一副本集合中的每个副本生成哈希值的部件;用于聚合第一副本集合的哈希值的部件;以及用于基于聚合的结果生成针对第一数据块的哈希值的部件。
在一些示例实施例中,用于生成第一证明的部件包括:用于基于数据块集合的相应标签生成标签证明的部件;用于基于数据块集合的相应副本和数据块集合的验证参数生成数据块证明的部件;用于针对数据块集合中的每个数据块生成哈希值的部件;以及用于生成第一证明的部件,该第一证明包括标签证明、数据块证明和数据块集合的哈希值。用于发送第一证明的部件包括:用于向另外的装置发送第一证明的部件,该第一证明包括标签证明、数据块证明和数据块集合的哈希值。
在一些示例实施例中,能够执行方法600的装置还包括:用于从客户端接收第二请求的部件,该第二请求用于更新被存储在装置的文件;用于响应于第二请求而更新文件的部件;用于生成第二证明的部件,该第二证据指示被存储在装置的文件被更新;用于向客户端发送第二证明的部件;用于从客户端接收基于第二证明和第一私钥生成的第三文件签名的部件;用于基于客户端的公钥验证第三文件签名的有效性的部件;以及用于响应于第三文件签名有效而确定客户端已经确认更新的部件。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。用于接收发送请求的部件包括:用于从客户端接收将第二数据块修改为第三数据块的第二请求,第二请求指示针对第三数据块生成的第三副本数和第三标签。用于更新文件的部件包括:用于将第二副本集合替换为第三副本集合并且将第二标签替换为第三标签的部件。用于生成第二证明的部件包括:用于生成指示第二副本集合被第三副本集合替换并且第二标签被第三标签替换的第二证明的部件。
在一些示例实施例中,多个数据块包括具有第二副本集合和第二标签的第二数据块。用于接收发送请求的部件包括:用于从客户端接收用于在第二数据块之前插入第三数据块的第二请求的部件,第二请求指示针对第三数据块生成的第三副本数和第三标签。用于更新文件的部件包括:用于在第二副本集合之前插入第三副本集合并且在第二标签之前插入第三标签的部件。用于生成第二证明的部件包括:用于生成指示第三副本集合被插入在第二副本集合之前并且第三标签被插入在第二标签之前的第二证明的部件。
在一些示例实施例中,多个数据块包括具有第二组副本和第二标签的第二数据块。用于接收发送请求的部件包括用于从客户端接收删除第二数据块的第二请求的部件。用于更新文件的部件包括用于删除第二组副本和第二标签的部件。用于生成第二证明的部件包括用于生成指示删除第二数据块的第二组副本和标签的第二证明的部件。
在一些示例实施例中,另外的装置包括客户端。
在一些示例实施例中,另外的装置包括与客户端分开的审计服务器。
图7是适合于实现本公开的实施例的设备700的简化框图。例如,如图1所示的客户端110、审计服务器120、存储服务器130和/或密钥生成中心140可以由设备700实现。如图所示,设备700包括一个或多个处理器710、耦合到处理器710的一个或多个存储器720、以及耦合到处理器710的一个或多个通信模块740。
通信模块740用于双向通信。通信模块740具有至少一根天线以促进通信。通信接口可以表示与其他网络元件通信所需的任何接口。
处理器710可以是适用于本地技术网络的任何类型,并且可以包括以下一项或多项:通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器,作为非限制性示例。设备700可以具有多个处理器,诸如在时间上从属于同步主处理器的时钟的专用集成电路芯片。
存储器720可以包括一个或多个非易失性存储器和一个或多个易失性存储器。非易失性存储器的示例包括但不限于只读存储器(ROM)724、电可编程只读存储器(EPROM)、闪存、硬盘、光盘(CD)、数字视频磁盘(DVD)和其他磁存储和/或光存储。易失性存储器的示例包括但不限于随机存取存储器(RAM)722和不会在断电持续时间内持续的其他易失性存储器。
计算机程序730包括由相关联的处理器710执行的计算机可执行指令。程序730可以存储在ROM 724中。处理器710可以通过将程序730加载到RAM 722中来执行任何合适的动作和处理。
本公开的实施例可以通过程序730来实现,使得设备700可以执行如参考图4-6所讨论的本公开的任何过程。本公开的实施例也可以通过硬件或者软件和硬件的组合来实现。
在一些示例实施例中,程序730可以有形地包含在计算机可读介质中,该计算机可读介质可以包括在设备700中(诸如在存储器720中)或由设备700可接入的其他存储设备中。设备700可以将程序730从计算机可读介质加载到RAM 722以供执行。计算机可读介质可以包括任何类型的有形非易失性存储器,诸如ROM、EPROM、闪存、硬盘、CD、DVD等。图10示出了CD或DVD形式的计算机可读介质800的示例。计算机可读介质具有存储在其上的程序730。
应当理解,未来的网络可以利用网络功能虚拟化(NFV),其是一种网络架构概念,其提议将网络节点功能虚拟化为“构建块”或可以操作地连接或链接在一起以提供服务的实体。虚拟化网络功能(VNF)可以包括使用标准或通用类型服务器而不是定制硬件运行的计算机程序代码的一个或多个虚拟机。也可以利用云计算或数据存储。在无线电通信中,这可能意味着节点操作至少部分地在操作地耦合到分布式单元DU(例如无线电头/节点)的中央/集中单元CU(例如服务器、主机或节点)中执行。节点操作也可能分布在多个服务器、节点或主机之间。还应该理解的是,核心网络操作和基站操作之间的劳动力分配可以取决于实现而变化。
在一个实施例中,服务器可以生成虚拟网络,服务器通过该虚拟网络与分布式单元进行通信。一般而言,虚拟网络可能涉及将硬件和软件网络资源和网络功能组合成单个基于软件的管理实体(即虚拟网络)的过程。这样的虚拟网络可以在服务器和无线电头/节点之间提供灵活的操作分布。在实践中,任何数字信号处理任务都可以在CU或DU中执行,并且CU和DU之间职责转移的边界可以根据实现进行选择。
因此,在实施例中,实现了CU-DU架构。在这样的情况下,装置700可以包括在中央单元(例如,控制单元、边缘云服务器、服务器)中,该中央单元可操作地耦合(例如,经由无线或有线网络)到分布式单元(例如,远程无线电头/节点)。也就是说,中央单元(例如边缘云服务器)和分布式单元可以是经由无线电路径或经由有线连接彼此通信的独立装置。备选地,它们可以在经由有线连接等进行通信的相同实体中。边缘云或边缘云服务器可以服务于多个分布式单元或无线电接入网络。在一个实施例中,至少一些所描述的过程可以由中央单元执行。在另一个实施例中,装置700可以替代地包括在分布式单元中,并且所描述的过程中的至少一些可以由分布式单元执行。
在一个实施例中,装置700的至少一些功能的执行可以在形成一个操作实体的两个物理上分开的设备(DU和CU)之间共享。因此,可以看到该装置描绘了包括一个或多个物理上分开的设备的操作实体,用于执行所描述的过程中的至少一些过程。在一个实施例中,这样的CU-DU架构可以在CU和DU之间提供灵活的操作分布。在实践中,任何数字信号处理任务都可以在CU或DU中执行,CU和DU之间职责转移的边界可以根据实现进行选择。在实施例中,装置700控制过程的执行,而不管装置的位置并且不管过程/功能在哪里执行。
通常,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或它们的任何组合来实现。一些方面可以在硬件中实现,而其他方面可以在可由控制器、微处理器或其他计算设备执行的固件或软件中实现。虽然本公开的实施例的各个方面被示出和描述为框图、流程图或使用一些其他图示,但是应当理解,作为非限制示例,本文描述的框图、装置、系统、技术或方法可以在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或它们的某种组合中实现。
本公开还提供了至少一种计算机程序产品,有形地存储在非瞬态计算机可读存储介质上。计算机程序产品包括计算机可执行指令,诸如包括在程序模块中的计算机可执行指令,该计算机可执行指令在目标真实或虚拟处理器上的设备中执行以执行如上文参考图4所述的方法400。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,程序模块的功能可以根据需要在程序模块之间组合或拆分。程序模块的机器可执行指令可以在本地或分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质两者中。
用于执行本公开的方法的程序代码可以用一种或多种编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得这些程序代码在由处理器或控制器执行时引起要实现的流程图和/或框图。程序代码可以完全在机器上、部分在机器上、作为独立软件包、部分在机器上并且部分在远程机器上、或完全在远程机器或服务器上执行。
在本公开的上下文中,计算机程序代码或相关数据可以由任何合适的载体承载以使得设备、装置或处理器能够执行如上所述的各种过程和操作。载体的示例包括信号、计算机可读介质等。
计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以包括但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备、或前述的任何合适组合。计算机可读存储介质的更具体示例将包括具有一根或多根电线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述的任何合适的组合。
此外,虽然以特定顺序描述了操作,但这不应被理解为要求以所示出的特定顺序或按顺序执行这样的操作,或者要求执行所有图示的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。同样地,虽然上述讨论中包含了几个具体的实现细节,但这些不应被解释为对本公开的范围的限制,而是对可能特定于特定实施例的特征的描述。在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。反之,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开地或以任何合适的子组合实现。
尽管本公开已经以特定于结构特征和/或方法动作的语言进行了描述,但是应当理解,在所附权利要求中定义的本公开不一定限于上述特定特征或动作。相反,上述特定特征和动作是作为实现权利要求的示例形式公开的。

Claims (38)

1.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码;
所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
将要被存储在存储服务器的文件划分为多个数据块;
针对所述多个数据块中的每个数据块生成至少一个副本,所述至少一个副本的数目与所述数据块的重要性相关联;
基于所述多个数据块的副本和从密钥生成中心获得的所述装置的第一私钥,生成用于所述多个数据块的相应标签和用于所述文件的第一文件签名;以及
向所述存储服务器发送所述多个数据块的所述副本、所述多个数据块的所述标签以及所述第一文件签名,以用于在所述存储服务器存储所述文件。
2.根据权利要求1所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
向审计服务器发送第一请求,所述第一请求用于验证被存储在所述存储服务器的所述文件的数据完整性;以及
从所述审计服务器接收对所述第一请求的响应,所述响应指示所述文件的所述数据完整性的验证结果。
3.根据权利要求1所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
向所述密钥生成中心发送所述装置的标识符;
从所述密钥生成中心接收基于所述标识符而被生成的部分私钥;
验证所述部分私钥的有效性;以及
响应于所述部分私钥有效,基于所述部分私钥和所述装置的秘密值确定所述第一私钥。
4.根据权利要求1所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
针对所述多个数据块中的每个数据块确定哈希值;
基于所述多个数据块的哈希值、所述多个数据块的所述副本以及所述第一私钥,生成用于所述多个数据块的所述标签;以及
基于所述多个数据块的所述哈希值和所述第一私钥生成所述第一文件签名。
5.根据权利要求4所述的装置,其中所述多个数据块包括具有第一副本集合的第一数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
针对所述第一副本集合中的每个副本生成哈希值;
聚合所述第一副本集合的哈希值;以及
基于所述聚合的结果生成针对所述第一数据块的哈希值。
6.根据权利要求1所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
从所述存储服务器接收所述文件的第二文件签名,所述第二文件签名基于所述存储服务器的第二私钥被生成;
基于所述存储服务器的公钥验证所述第二文件签名的有效性;以及
响应于所述第二文件签名有效,确定所述文件已被存储在所述存储服务器。
7.根据权利要求1所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
向所述存储服务器发送第二请求,所述第二请求用于更新被存储在所述存储服务器的所述文件;
从所述存储服务器接收证明,所述证明指示被存储在所述存储服务器的所述文件基于所述第二请求被更新;
基于所述第一文件签名验证所述证明的有效性;
响应于所述证明有效,基于所述证明和所述第一私钥生成第三文件签名;以及
向所述存储服务器发送所述第三文件签名,以指示所述更新已经由所述装置确认。
8.根据权利要求7所述的装置,其中所述多个数据块包括具有第二副本集合和第二标签的第二数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
向所述存储服务器发送所述第二请求,所述第二请求用于将所述第二数据块修改为第三数据块,所述第二请求指示针对所述第三数据块被生成的第三副本数和第三标签;以及
从所述存储服务器接收所述证明,所述证明指示所述第二副本集合被第三副本集合替换并且所述第二标签被所述第三标签替换。
9.根据权利要求7所述的装置,其中所述多个数据块包括具有第二副本集合和第二标签的第二数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
向所述存储服务器发送所述第二请求,所述第二请求用于在所述第二数据块之前插入第三数据块,所述第二请求指示针对所述第三数据块被生成的第三副本数和第三标签;以及
从所述存储服务器接收所述证明,所述证明指示第三副本集合被插入在所述第二副本集合之前并且所述第三标签被插入在所述第二标签之前。
10.根据权利要求7所述的装置,其中所述多个数据块包括具有第二副本集合和第二标签的第二数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
向所述存储服务器发送所述第二请求,所述第二请求用于删除所述第二数据块;以及
从所述存储服务器接收所述证明,所述证明指示所述第二数据块的所述第二副本集合和所述标签被删除。
11.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码;
所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
生成质询消息,所述质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
向所述存储服务器发送所述质询消息;
从所述存储服务器接收关于所述文件的所述数据完整性的证明,所述证明基于所述质询消息被生成;以及
通过验证所述证明的有效性来验证所述文件的所述数据完整性。
12.根据权利要求11所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
从所述多个数据块中选择数据块集合,所述数据块集合用于验证所述文件的所述数据完整性;
针对所述数据块集合中的每个数据块确定验证参数;以及
生成所述质询消息,所述质询消息包括所述数据块集合的验证参数和所述数据块集合的指示。
13.根据权利要求12所述的装置,其中关于所述文件的所述数据完整性的所述证明包括:
标签证明,所述标签证明基于所述数据块集合的所述标签而被生成;
数据块证明,所述数据块证明基于所述数据块集合的相应副本和所述数据块集合的所述验证参数而被生成;以及
所述数据块集合的相应哈希值。
14.根据权利要求13所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
确定所述标签证明、所述数据块证明和所述数据块集合的所述哈希值是否满足预定关系;
响应于所述预定关系被满足,确定所述证明有效;以及
响应所述证明有效,确定验证所述文件的所述数据完整性成功。
15.根据权利要求14所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
响应于所述预定关系不被满足,确定所述证明无效;以及
响应于所述证明无效,确定验证所述文件的所述数据完整性失败。
16.根据权利要求11所述的装置,其中所述装置包括所述客户端。
17.根据权利要求11所述的装置,其中所述装置包括与所述客户端分开的审计服务器,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
响应于从所述客户端接收到第一请求生成所述质询消息,所述第一请求用于验证被存储在所述存储服务器的所述文件的所述数据完整性;以及
响应于所述文件的所述数据完整性被验证,向所述客户端发送对所述第一请求的响应,所述响应指示所述文件的所述数据完整性的验证结果。
18.一种装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码;
所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
从另外的装置接收质询消息,所述质询消息用于验证由客户端存储在所述装置的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
基于所述质询消息,生成关于所述文件的所述数据完整性的第一证明;以及
向所述另外的装置发送所述第一证明。
19.根据权利要求18所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
在接收所述质询消息之前,
从所述客户端接收所述多个数据块的相应副本、所述多个数据块的相应标签以及所述文件的第一文件签名,所述多个数据块的所述标签和所述第一文件签名基于所述多个数据块的所述副本和所述客户端的第一私钥被生成;
验证所述多个数据块的所述标签和所述第一文件签名的有效性;以及
响应于所述多个数据块的所述标签和所述第一文件签名有效,通过存储所述多个数据块的所述副本、所述多个数据块的所述标签和所述第一文件签名来在所述装置存储所述文件。
20.根据权利要求19所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
针对所述多个数据块中的每个数据块确定哈希值;
响应于所述文件被存储在所述装置,基于所述多个数据块的哈希值和从密钥生成中心获得的所述装置的第二私钥,生成用于所述文件的二文件签名;以及
向所述客户端发送所述第二文件签名。
21.根据权利要求20所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
向所述密钥生成中心发送所述装置的标识符;
从所述密钥生成中心接收基于所述标识符而被生成的部分私钥;
验证所述部分私钥的有效性;以及
响应于所述部分私钥有效,基于所述部分私钥和所述装置的秘密值确定所述第二私钥。
22.根据权利要求20所述的装置,其中所述多个数据块包括具有第一副本集合的第一数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
针对所述第一副本集合中的每个副本生成哈希值;
聚合所述第一副本集合的哈希值;以及
基于所述聚合的结果生成针对所述第一数据块的哈希值。
23.根据权利要求18所述的装置,其中所述质询消息指示从所述多个数据块中选择的数据块集合和用于所述数据块集合的相应验证参数,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
基于所述数据块集合的相应标签生成标签证明;
基于所述数据块集合的相应副本和所述数据块集合的所述验证参数生成数据块证明;
针对所述数据块集合中的每个数据块生成哈希值;
生成所述第一证明,所述第一证明包括所述标签证明、所述数据块证明和所述数据块集合的哈希值;以及
向所述另外的装置发送包括所述标签证明、所述数据块证明和所述数据块集合的哈希值的所述第一证明。
24.根据权利要求19所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装置:
从客户端接收第二请求,所述第二请求用于更新被存储在所述装置的所述文件;
响应于所述第二请求,更新所述文件;
生成第二证明,所述第二证明指示被存储在所述装置的所述文件被更新;
向所述客户端发送所述第二证明;
从所述客户端接收第三文件签名,所述第三文件签名基于所述第二证明和所述第一私钥被生成;
基于所述客户端的公钥验证所述第三文件签名的有效性;以及
响应于所述第三文件签名有效,确定所述客户端已确认所述更新。
25.根据权利要求24所述的装置,其中所述多个数据块包括具有第二副本集合和第二标签的第二数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
从所述客户端接收所述第二请求,所述第二请求用于将所述第二数据块修改为第三数据块,所述第二请求指示针对所述第三数据块被生成的第三副本数和第三标签;
将所述第二副本集合替换为第三副本集合,并且将所述第二标签替换为所述第三标签;以及
生成所述第二证明,所述第二证明指示所述第二副本集合被所述第三副本集合替换并且所述第二标签被所述第三标签替换。
26.根据权利要求24所述的装置,其中所述多个数据块包括具有第二副本集合和第二标签的第二数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
从所述客户端接收所述第二请求,所述第二请求用于在第二数据块之前插入第三数据块,所述第二请求指示针对所述第三数据块被生成的第三副本数和第三标签;
在所述第二副本集合之前插入第三副本集合并且在所述第二标签之前插入所述第三标签;以及
生成所述第二证明,所述第二证明指示所述第三副本集合被插入在第二副本集合之前并且所述第三标签被插入在所述第二标签之前。
27.根据权利要求24所述的装置,其中所述多个数据块包括具有第二副本集合和第二标签的第二数据块,并且其中所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置:
从所述客户端接收所述第二请求,所述第二请求用于删除所述第二数据块;
删除所述第二副本集合和所述第二标签;以及
生成所述第二证明,所述第二证明指示所述第二数据块的所述第二副本集合和所述标签被删除。
28.根据权利要求18所述的装置,其中所述另外的装置包括所述客户端。
29.根据权利要求18所述的装置,其中所述另外的装置包括与所述客户端分开的审计服务器。
30.一种方法,包括:
将要被存储在存储服务器的文件划分为多个数据块;
针对所述多个数据块中的每个数据块生成至少一个副本,所述至少一个副本的数目与所述数据块的重要性相关联;
基于所述多个数据块的副本和从密钥生成中心获得的所述装置的第一私钥,生成用于所述多个数据块的相应标签和用于所述文件的第一文件签名;以及
向所述存储服务器发送所述多个数据块的所述副本、所述多个数据块的所述标签以及所述第一文件签名,以用于在所述存储服务器存储所述文件。
31.一种方法,包括:
生成质询消息,所述质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
向所述存储服务器发送所述质询消息;
从所述存储服务器接收关于所述文件的所述数据完整性的证明,所述证明基于所述质询消息被生成;以及
通过验证所述证明的有效性来验证所述文件的所述数据完整性。
32.一种方法,包括:
在存储服务器并且从设备接收质询消息,所述质询消息用于验证被存储在所述存储服务器的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
基于所述质询消息,生成关于所述文件的所述数据完整性的证明;以及
向所述设备发送所述证明。
33.一种装置,包括:
用于将要被存储在存储服务器的文件划分为多个数据块的部件;
用于针对所述多个数据块中的每个数据块生成至少一个副本的部件,所述至少一个副本的数目与所述数据块的重要性相关联;
用于基于所述多个数据块的副本和从密钥生成中心获得的所述装置的第一私钥生成用于所述多个数据块的相应标签和用于所述文件的第一文件签名的部件;以及
用于向所述存储服务器发送所述多个数据块的所述副本、所述多个数据块的所述标签以及所述第一文件签名以用于在所述存储服务器存储所述文件的部件。
34.一种装置,包括:
用于生成质询消息的部件,所述质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
用于向所述存储服务器发送所述质询消息的部件;
用于从所述存储服务器接收关于所述文件的所述数据完整性的证明的部件,所述证明基于所述质询消息被生成;以及
用于通过验证所述证明的有效性来验证所述文件的所述数据完整性的部件。
35.一种装置,包括:
用于从另外的装置接收质询消息的部件,所述质询消息用于验证被存储在所述装置的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
用于基于所述质询消息生成关于所述文件的所述数据完整性的证明的部件;以及
用于向所述另外的装置发送所述证明的部件。
36.一种计算机可读存储介质,包括存储在其上的程序指令,所述指令在由装置执行时使所述装置:
将要被存储在存储服务器的文件划分为多个数据块;
针对所述多个数据块中的每个数据块生成至少一个副本,所述至少一个副本的数目与所述数据块的重要性相关联;
基于所述多个数据块的副本和从密钥生成中心获得的所述装置的第一私钥,生成用于所述多个数据块的相应标签和用于所述文件的第一文件签名;以及
向所述存储服务器发送所述多个数据块的所述副本、所述多个数据块的所述标签以及所述第一文件签名,以用于在所述存储服务器存储所述文件。
37.一种计算机可读存储介质,包括存储在其上的程序指令,所述指令在由装置执行时使所述装置:
生成质询消息,所述质询消息用于验证由客户端存储在存储服务器的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
向所述存储服务器发送所述质询消息;
从所述存储服务器接收关于所述文件的所述数据完整性的证明,所述证明基于所述质询消息被生成;以及
通过验证所述证明的有效性来验证所述文件的所述数据完整性。
38.一种计算机可读存储介质,包括存储在其上的程序指令,所述指令在由装置执行时使所述装置:
从另外的装置接收质询消息,所述质询消息用于验证由客户端存储在所述装置的文件的数据完整性,所述文件包括多个数据块,每个数据块包括至少一个副本并且具有基于所述至少一个副本而被生成的标签,并且所述至少一个副本的数目与所述数据块的重要性相关联;
基于所述质询消息,生成关于所述文件的所述数据完整性的证明;以及
向所述另外的装置发送所述证明。
CN201980098537.7A 2019-07-18 2019-07-18 针对多副本存储的完整性审计 Pending CN114127724A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/096605 WO2021007863A1 (en) 2019-07-18 2019-07-18 Integrity auditing for multi-copy storage

Publications (1)

Publication Number Publication Date
CN114127724A true CN114127724A (zh) 2022-03-01

Family

ID=74210060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980098537.7A Pending CN114127724A (zh) 2019-07-18 2019-07-18 针对多副本存储的完整性审计

Country Status (4)

Country Link
US (1) US20220318415A1 (zh)
EP (1) EP3999989A4 (zh)
CN (1) CN114127724A (zh)
WO (1) WO2021007863A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113301520B (zh) * 2021-05-21 2023-02-28 国网四川省电力公司电力科学研究院 一种无线传感器网络安全通信的方法
CN113312652B (zh) * 2021-06-25 2024-05-03 国网辽宁省电力有限公司电力科学研究院 基于改进cat的云边协同电力终端采集数据完整性验证系统
CN115292752A (zh) * 2022-10-09 2022-11-04 深圳市明源云科技有限公司 文件数据的存储验证方法、存储验证装置、设备及介质
CN115987979B (zh) * 2022-11-15 2024-05-17 重庆邮电大学 边缘计算中基于区块信任选举机制的数据完整性审计方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621240B1 (en) * 2007-12-31 2013-12-31 Emc Corporation User-specific hash authentication
US8473740B2 (en) * 2011-05-09 2013-06-25 Xerox Corporation Method and system for secured management of online XML document services through structure-preserving asymmetric encryption
CN103218574A (zh) * 2013-04-09 2013-07-24 电子科技大学 一种基于哈希树的数据动态操作可验证性方法
CN105242983B (zh) 2014-06-26 2018-06-01 杭州海康威视系统技术有限公司 一种数据存储方法以及一种数据存储管理服务器
CN104281534B (zh) * 2014-09-22 2018-02-13 华为技术有限公司 一种存储元数据的方法和装置
CN104811450B (zh) * 2015-04-22 2017-10-17 电子科技大学 云计算中一种基于身份的数据存储方法及完整性验证方法
CN104899525A (zh) * 2015-06-12 2015-09-09 电子科技大学 改进动态操作的云数据完整性证明方案
CN107612969B (zh) * 2017-08-16 2020-01-14 中国民航大学 基于B-Tree布隆过滤器的云存储数据完整性审计方法
JP6592851B2 (ja) * 2017-09-05 2019-10-23 日本電信電話株式会社 匿名ブロードキャスト方法、鍵交換方法、匿名ブロードキャストシステム、鍵交換システム、通信装置、プログラム
CN107612687B (zh) 2017-09-25 2021-04-27 西安建筑科技大学 一种基于ElGamal加密的动态多副本数据持有性验证方法
CN108229208B (zh) * 2018-01-08 2021-03-23 华侨大学 一种云存储服务中多副本数据的公开审计方法
US10673625B1 (en) * 2019-06-15 2020-06-02 University Of South Florida Efficient identity-based and certificateless cryptosystems

Also Published As

Publication number Publication date
US20220318415A1 (en) 2022-10-06
EP3999989A4 (en) 2023-03-29
EP3999989A1 (en) 2022-05-25
WO2021007863A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
US11501533B2 (en) Media authentication using distributed ledger
US10235538B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
CN111133733B (zh) 用于基于云平台的自动区块链部署的方法和系统
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
CN114127724A (zh) 针对多副本存储的完整性审计
TW202030669A (zh) 電腦實施系統及在區塊鏈上儲存資料的方法(二)
CN109472696A (zh) 资产交易方法、装置、存储介质及计算机设备
CN109508564B (zh) 一种基于区块链的数字资产存储系统和方法
US20240232223A1 (en) Data synchronization method and system based on blockchain, and related device
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN106991148B (zh) 一种支持全更新操作的数据库验证系统及方法
CN113094334B (zh) 基于分布式存储的数字服务方法、装置、设备及储存介质
Patsonakis et al. Implementing a smart contract PKI
CN108881261B (zh) 一种容器环境下基于区块链技术的服务认证方法及系统
CN112887281B (zh) 支持高效审计和多备份密文去重的存储方法、系统及应用
CN110807203B (zh) 数据处理方法、业务运营中心平台、系统以及存储介质
CN115426106B (zh) 一种身份认证方法、装置、系统、电子设备及存储介质
Xu et al. A generic integrity verification algorithm of version files for cloud deduplication data storage
EP3357188A1 (en) Code signing service
US20240249015A1 (en) Method and system of rescinding access to blockchain data
CN116192395A (zh) 用于分散式数据存储的可信系统
CN117010889A (zh) 数据处理方法、装置及设备、介质、产品
CN117376366A (zh) 区块链交易处理方法、装置、介质及电子设备
US11626986B1 (en) Method and system of rescinding access to blockchain data
JP6901373B2 (ja) ユーザ管理装置、ユーザ管理システム

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