CN108985102A - 数据完整性验证方法、装置、系统及存储介质 - Google Patents
数据完整性验证方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN108985102A CN108985102A CN201810654463.8A CN201810654463A CN108985102A CN 108985102 A CN108985102 A CN 108985102A CN 201810654463 A CN201810654463 A CN 201810654463A CN 108985102 A CN108985102 A CN 108985102A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- evidence
- user terminal
- homomorphism
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (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)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据完整性验证方法、装置、系统及存储介质,所述验证方法,包括以下步骤:基于同态加密算法对数据进行加密,将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据;随机挑选所述明文数据块生成挑战信息发送至服务器;对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。根据本发明该验证方法利用数据明文生成验证数据完整性的证据,并利用了模运算和同态运算的特性,无需在服务器存储数据密文以外的任何数据,即可在用户端实现数据完整性验证。
Description
技术领域
本发明涉及计算安全技术领域,尤其涉及一种数据完整性验证方法、装置、系统及存储介质。
背景技术
为了保护个人隐私安全,云存储用户一般将数据加密,将数据的密文存储在云端,从而避免云服务提供商获取个人私密数据。然而,当数据存储于云端时,数据完整性并不能得到有效保证。例如,存储用户数据的云服务器可能发生故障,造成用户数据丢失。因而,云存储用户需要经常检查存储于云端的数据是否完整,以确保数据的可用性。最简单的检查方式是云存储用户将数据的密文下载至本地,然后解密,查看数据是否完整。但是,这种方式效率低下,特别是当用户数据较大时,需要消耗用户大量的网络流量和计算资源。
另一种方式是数据完整性验证机制,现有的数据完整性验证机制采用以下方式:(1)将数据分成数据块;(2)利用hash算法计算数据的Merkle树,以树根值为验证证据。一般而言,为了保证数据机密性,云存储用户会将数据加密之后,将密文存储于云端,利用数据完整性机制验证存储于云端密文的完整性,从而保证数据的可用性。然而,云端的数据密文需要更新(即某个密文块对应的明文需要更改时)时,以数据Merkle树根值为验证证据的数据完整性验证机制需要将整个数据密文下载至本地,重新生成验证数据完整性证据,当数据较大时,需要极大的通信开销和计算开销。且根据验证者不同,现有的数据完整性验证机制分为以下两种:自我审计和第三方审计。自我审计的数据完整性验证机制由数据拥有者自身验证存储于外环境数据的完整性。第三方审计的数据完整性验证机制由第三方代理数据拥有者对存储于外环境数据的完整性进行验证。
因此,现有的数据完整性验证机存在通信开销和计算开销大的问题。
发明内容
本发明实施例提供一种数据完整性验证方法、装置、系统及存储介质,能有效节约云存储用户验证数据完整性的通信开销和计算开销以及云存储服务器的存储资源。
第一方面,本发明实施例提供一种数据完整性验证方法,基于同态加密算法对数据进行加密,包括以下步骤:
将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据;
随机挑选所述明文数据块生成挑战信息发送至服务器;
对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
可选地,本发明实施例中,所述随机挑选明文数据块生成挑战信息发送至服务器,包括:
从若干明文数据块中随机挑选u个数据块,对挑选出的u个数据块进行编号l1,l2,…,lu,其中,K为数据块的位数,ε为验证误差率,并将u个数据块的编号l1,l2,…,lu发到服务器。
可选地,本发明实施例中,所述服务器反馈的响应信息,包括:
接收的所述挑战信息中数据块编号对应的密文块及所述密文块在响应信息树旁路径上的所有节点;其中,所述响应信息树是服务器利用merkle树对存储的所述明文数据块对应的密文块执行与所述同态加密算法相匹配的同态运算生成的响应信息树。
可选地,本发明实施例中,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,
若所述基于同态加密算法采用同态加性质对数据进行加密,则将所述用户端的若干明文数据块采用模加运算生成证据,对所述服务器反馈的响应信息进行同态加运算,得到中间验证值;
若所述基于同态加密算法采用同态乘性质对数据进行加密,则将所述用户端的若干明文数据块采用模乘运算生成证据,对所述服务器反馈的响应信息进行同态乘运算,得到中间验证值。
可选地,本发明实施例中,当用户端更新数据块时,
若所述用户端的若干明文数据块采用模加运算生成证据,则更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块;
若所述用户端的若干明文数据块采用模乘运算生成证据,则更新后的证据等于更新前的证据除以更新前的数据块再乘以更新后的数据块。
第二方面,本发明实施例提供一种数据完整性验证装置,基于同态加密算法对数据进行加密,设置在用户端,包括:
数据处理模块,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器;
数据验证模块,用于对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
可选地,本发明实施例中,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,
若所述基于同态加密算法采用同态加性质对数据进行加密,则所述数据处理模块用于将所述用户端的若干明文数据块采用模加运算生成证据;所述数据验证模块用于对所述服务器反馈的响应信息进行同态加运算,得到中间验证值;
若所述基于同态加密算法采用同态乘性质对数据进行加密,则所述数据处理模块用于将将所述用户端的若干明文数据块采用模乘运算生成证据,所述数据验证模块用于对所述服务器反馈的响应信息进行同态乘运算,得到中间验证值。
可选地,本发明实施例中,所述数据处理模块还用于用户端更新数据块时,若所述用户端的若干明文数据块采用模加运算生成证据,则更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块;
若所述用户端的若干明文数据块采用模乘运算生成证据,则更新后的证据等于更新前的证据除以更新前的数据块再乘以更新后的数据块。
第三方面,本发明实施例提供一种数据完整性验证系统,包括用户端和服务器,
所述服务器,用于根据接收的用户端的挑战信息生成响应信息;
所述用户端,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器,对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述数据完整性验证方法的步骤。
根据本发明提出的数据完整性验证方法、装置、系统及存储介质,该验证方法利用数据明文生成验证数据完整性的证据,并利用了模运算和同态运算的特性,无需在服务器存储数据密文以外的任何数据,即可在用户端实现数据完整性验证。与现有以数据Merkle树根值为验证证据的数据完整性验证机制相比,将本发明应用于云存储服务场景中,可有效节约云存储用户更新数据完整性验证证据的通信开销、计算开销及存储空间。
当用户需要细粒度更新密文块时,只需利用旧的证据与更新前的数据块及更新后的数据块做模运算,就可更新证据。不需要利用整个密文重新计算证据,从而实现既可支持细粒度密文更新,又可实现验证数据完整性证据的高效更新。进一步地减少了通信开销、计算开销和云存储空间。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的数据完整性验证的流程图;
图2为本发明第二实施例提供的数据完整性验证的流程图;
图3为本发明第二实施例结合云存储用户和云存储服务器的示例;
图4为本发明第二实施例提供的示例生成证据的示意图;
图5为本发明第二实施例提供的示例生成响应信息树的示意图;
图6为本发明第三实施例提供的数据完整性验证装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明的第一实施例中,提供一种数据完整性验证方法,基于同态加密算法对数据进行加密,如图1所示,包括如下步骤:
步骤S101,将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据;
本发明实施例中,在生成证据之前,需要将用户端的明文数据划分成若干明文数据块,以便于利用各明文数据块生成证据。在生成证据之后,用户端利用基于同态加密算法的公钥对明文数据进行加密生成密文,并存储到服务器中。
步骤S102,随机挑选所述明文数据块生成挑战信息发送至服务器;
本发明实施例中,随机挑选明文数据块生成挑战信息发送至服务器,包括:
从若干明文数据块中随机挑选u个数据块,对挑选出的u个数据块进行编号l1,l2,…,lu,其中满足,K为明文数据块的位数,ε为验证误差率,并将u个数据块的编号l1,l2,…,lu发到服务器。当挑选的数据块越多,验证误差率就最小。如果服务器没有数据M,最多只能以ε概率通过用户的挑战。
步骤S103,对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,判断解密后的中间验证值是否等于所述证据,若解密后的中间验证值等于所述证据,则数据完整。
本发明实施例中,服务器根据接收的用户端的挑战信息生成响应信息并发送到用户端。所述服务器反馈的响应信息,包括:
接收的所述用户端的挑战信息中数据块编号对应的密文块及所述密文块在响应信息树旁路径上的所有节点;其中,所述响应信息树是服务器利用merkle树对存储的所述明文数据块对应的密文块执行与所述同态加密算法相匹配的同态运算生成的响应信息树。
本发明实施例中,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,本领域技术人员可以根据需求选择采用哪种同态加密算法对数据进行加密。
若所述基于同态加密算法采用同态加性质对数据进行加密,则用户端将所述用户端的若干明文数据块采用模加运算生成证据,然后采用同态加性质对文明数据块进行加密生成密文块,并将密文块存储到服务器;随机挑选u个明文数据块生成挑战信息发送至服务器。所述服务器根据接收的用户端的挑战信息生成响应信息并发送到用户端,服务器利用merkle树对存储的所述明文数据块对应的密文块执行同态加运算生成响应信息树,所述响应信息包括挑战信息中数据块编号对应的密文块及所述密文块在所述响应信息树旁路径上的所有节点。用户端对所述服务器反馈的响应信息中各密文块及其在响应信息树旁路径上的所有节点做同态加法运算,得到中间验证值,采用私钥将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
若所述基于同态加密算法采用同态乘性质对数据进行加密,则用户端将所述用户端的若干明文数据块采用模乘运算生成证据,然后采用同态乘性质对文明数据块进行加密生成密文块,并将密文块存储到服务器;随机挑选u个所述明文数据块生成挑战信息发送至服务器。所述服务器根据接收的用户端的挑战信息生成响应信息并发送到用户端,服务器利用merkle树对存储的所述明文数据块对应的密文块执行同态加运算生成响应信息树,所述响应信息包括挑战信息中数据块编号对应的密文块及所述密文块在所述响应信息树旁路径上的所有节点。用户端对所述服务器反馈的响应信息中各密文块及其在响应信息树旁路径上的所有节点做同态乘运算,得到中间验证值,采用私钥将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
本实施例中的用户端可以是云存储用户,服务器可以是云存储服务器。
本发明利用明文数据直接生成证据,无需在服务器存储数据密文以外的任何数据,即可在用户端实现数据完整性验证。
在本发明的第二实施例中,提供一种数据完整性验证方法,参见图2所示,包括如下步骤:
步骤S201,将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据;
步骤S202,随机挑选所述明文数据块生成挑战信息发送至服务器;
步骤S203,对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,判断解密后的中间验证值是否等于所述证据,若解密后的中间验证值等于所述证据,则数据完整。
步骤S204:当用户端更新数据块时(即更新所述若干明文数据块中的某一个或多个数据块时),更新证据,利用更新后的证据验证数据完整性。
本发明实施例中,若所述用户端的若干明文数据块采用模加运算生成证据,则更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块。
若所述用户端的若干明文数据块采用模乘运算生成证据,则更新后的证据等于更新前的证据除以更新前的数据块再乘以更新后的数据块。
具体的,当用户端更新某明文数据块时,
若更新前所述用户端的若干明文数据块采用模加运算生成证据,更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块,再对该更新后的数据块进行加密生成密文,并发送到服务器进行存储,再次执行步骤S202和步骤S203,在步骤S203执行过程中,利用更新后的证据进行验证,即解密后的中间验证值是否等于更新后的证据,若相等,则数据完整;不等,则数据有误。
本发明实施例中的步骤S201、步骤S202和步骤S203与第一实施例中的步骤S101、步骤S102和步骤S103相同,故本实施例不再赘述。
下面通过一个具体示例,结合云存储用户和云存储服务器,参见图3所示,对本发明实施例的实施过程进行详细说明;
本发明实施例提供的数据完整性验证方法是基于云存储用户采用具有同态加性质的密码算法E对数据进行加密,并将加密后的密文C存储于云存储用户的基础上实现的。该密码算法满足以下性质:
其中,表示同态加,D代表解密算法,pk和sk分别代表公钥和私钥,m1和m2表示明文。
具体的,设云存储用户的数据为M,数据M长度为m比特,将数据M划分为n段k比特的数据块M1,M2,…,Mn,当m不是k的整数倍时,利用1将mn填充为k比特,即数据M=(M1,M2,…,Mn),采用该同态加性质的密码算法得到各段数据对应的密文,即云存储用户存储于云端的数据为C=(C1,C2,…,Cn)。
阶段1.证据生成
将若干明文数据块利用模加运算生成证据,证据为prof,如图4所示。Prof按照以下方式生成,即:
Prof=M1+M2+…+Mn
其中,+代表模N的加法运算,N为素数。
阶段2.云存储用户生成挑战信息
云存储用户随机生成u个数据块的编号l1,l2,…,lu,其中,ε为验证误差率,u是正整数,且1≤l1,l2,…,lu≤n,如果云存储服务器没有数据M,最多只能以ε的概率通过云存储用户的挑战。云存储用户将u个数据块的编号l1,l2,…,lu发发给云存储服务器。
阶段3.云存储服务器生成响应信息
云存储服务器采用与merkle树一样的形式生成响应信息树(n为2的指数倍,当n不为2的指数倍时,采用与生成merkle树的形式处理),如图5所示。令Tx,y代表响应信息树第x层的第y个节点,x,y为整数,响应信息树共有1+log2n层,各层采用同态加运算生成响应信息树,如下方式计算:
当x=log2n时,Tx,y=C2y-1+C2y
当1≤x≤log2n-1时,
当云存储服务器接收到云存储用户的挑战信息时生成响应信息,并将所述响应信息发送到云存储用户,响应信息包括挑战信息中数据块编号为l1,l2,…,lu对应的密文块及其在响应信息树旁路径上的所有节点其中表示u个密文块中第i个密文块在响应信息树上的旁路节点集。
阶段4.云存储用户验证响应信息
云存储用户对响应信息中各密文块及其该密文块在响应信息树旁路径上对应节点集中各元素做同态加法运算,得到中间验证值即:
之后,云存储用户利用私钥sk解密验证下式是否成立:
如果对于各个li(1≤i≤u)上式均成立,则认为存储于云端的数据是完整的,验证通过,否则,不通过。li表示从挑战信息中挑选的u个数据块的编号中第i个数据块的编号。
5.云存储用户更新数据块,需要更新验证数据完整性的证据
当一个云存储用户需要更新数据块Mi时,设更新后的数据为M′i,则更新后的证据Prof‘为:
Prof'=Prof-Mi+M′i
其中Mi是更新前n个数据块中的第i数据块,M′i是更新后的Mi数据块,利用更新后的证据Prof‘验证数据的完整性。
如果基于云存储用户采用具有同态乘性质的密码算法E对数据进行加密,则在证据生成阶段,采用模乘运算;在响应阶段,云存储服务器对密文执行同态乘运算;在验证阶段,云存储用户对密文块及其旁路径上的节点执行同态乘运算。
本发明实施例当用户进行细粒度更新密文块时,无需在云端存储数据密文以外的任何数据,可有效节约了通信开销、计算开销和存储资源,本发明支持密文升级完整性验证机制。
在本发明的第三实施例中,提供一种数据完整性验证装置,基于同态加密算法对数据进行加密,设置在用户端,参见图6所示,包括:
数据处理模块1,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器。
本发明实施例,在生成证据之前,需要将用户端的明文数据划分成若干明文数据块,以便于利用各明文数据块生成证据。在生成证据之后,用户端利用基于同态加密算法的公钥对明文数据进行加密生成密文,并存储到服务器中。
随机挑选所述明文数据块生成挑战信息发送至服务器,包括:从若干明文数据块中随机挑选u个数据块,对挑选出的u个数据块进行编号l1,l2,…,lu,其中满足,K为明文数据块的位数,ε为验证误差率,并将u个数据块的编号l1,l2,…,lu发到服务器。当挑选的数据块越多,验证误差率就最小。如果服务器没有数据M,最多只能以的ε概率通过用户的挑战。
数据验证模块2,用于对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
本发明实施例中,所述服务器反馈的响应信息是服务器根据接收的用户端的挑战信息生成的响应信息,该响应信息包括:
接收的所述挑战信息中数据块编号对应的密文块及所述密文块在响应信息树旁路径上的所有节点;其中,所述响应信息树是服务器利用merkle树对存储的所述明文数据块对应的密文块执行与所述同态加密算法相匹配的同态运算生成的响应信息树。
本发明实施例中,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,本领域技术人员可以根据需求选择采用哪种同态加密算法对数据进行加密。
若所述基于同态加密算法采用同态加性质对数据进行加密,则用户端将所述用户端的若干明文数据块采用模加运算生成证据,然后采用同态加性质对文明数据块进行加密生成密文块,并将密文块存储到服务器,随机挑选u个明文数据块生成挑战信息发送至服务器。用户端接收服务器反馈的响应信息,该响应信息是根据用户端的挑战信息生成的响应信息,所述响应信息包括挑战信息中数据块编号对应的密文块及所述密文块在响应信息树旁路径上的所有节点,响应信息树是服务器利用merkle树对存储的所述明文数据块对应的密文块执行同态加运算生成的响应信息树。用户端对所述服务器反馈的响应信息中各密文块及其在响应信息树旁路径上的所有节点做同态加法运算,得到中间验证值,采用私钥将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
若所述基于同态加密算法采用同态乘性质对数据进行加密,则用户端将所述用户端的若干明文数据块采用模乘运算生成证据,然后采用同态乘性质对文明数据块进行加密生成密文块,并将密文块存储到服务器,随机挑选u个所述明文数据块生成挑战信息发送至服务器。用户端接收服务器反馈的响应信息,该响应信息是根据用户端的挑战信息生成的响应信息,所述响应信息包括挑战信息中数据块编号对应的密文块及所述密文块在响应信息树旁路径上的所有节点,响应信息树是服务器利用merkle树对存储的所述明文数据块对应的密文块执行同态乘运算生成的响应信息树。用户端对所述服务器反馈的响应信息中各密文块及其在响应信息树旁路径上的所有节点做同态乘运算,得到中间验证值,采用私钥将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
本发明利用明文数据直接生成证据,无需在服务器存储数据密文以外的任何数据,即可在用户端实现数据完整性验证。
在本发明的第四实施例中,提供一种数据完整性验证装置,基于同态加密算法对数据进行加密,设置在用户端,包括:数据处理模块和数据验证模块,
数据处理模块1,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器。
数据验证模块2,用于对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
所述数据处理模块1,还用于当用户端更新数据块时(即更新所述若干明文数据块中的某一个或多个数据块时)更新证据,利用更新后的证据验证数据完整性。
本发明实施例中,若所述用户端的若干明文数据块采用模加运算生成证据,则更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块。
若所述用户端的若干明文数据块采用模乘运算生成证据,则更新后的证据等于更新前的证据除以更新前的数据块再乘以更新后的数据块。
具体的,当用户端更新某明文数据块时,
若更新前所述用户端的若干明文数据块采用模加运算生成证据,则所述数据处理模块1,利用更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块,进行更新证据,将该明文数据块进行加密生成密文,并发送到服务器进行存储。然后随机挑选所述明文数据块生成挑战信息发送至服务器。
数据验证模块2,利用更新后的证据进行验证,即解密后的中间验证值是否等于更新后的证据,若相等,则数据完整;不等,则数据有误。
本发明实施例中的数据验证模块和数据处理模块的其他作用与第三实施例的作用相同,故本实施例不再赘述。
在本发明的第五实施例中,提供一种数据完整性验证系统,所述基于同态加密算法对数据进行加密,包括用户端和服务器,
所述服务器,用于根据接收的用户端的挑战信息生成响应信息;
所述用户端,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器,对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
本实施例中,在生成证据之前,需要将用户端的明文数据划分成若干明文数据块。随机挑选所述明文数据块生成挑战信息发送至服务器,包括:从若干明文数据块中随机挑选u个数据块,对挑选出的u个数据块进行编号l1,l2,…,lu,其中满足,K为明文数据块的位数,ε为验证误差率,并将u个数据块的编号l1,l2,…,lu发到服务器。当挑选的数据块越多,验证误差率就最小。如果服务器没有数据M,最多只能以ε概率通过用户的挑战。
本发明实施例中,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,本领域技术人员可以根据需求选择采用哪种同态加密算法对数据进行加密。
若所述基于同态加密算法采用同态加性质对数据进行加密,则用户端将所述用户端的若干明文数据块采用模加运算生成证据,然后采用同态加性质对文明数据块进行加密生成密文块,并将密文块存储到服务器,随机挑选u个明文数据块生成挑战信息发送至服务器。所述服务器根据接收的用户端的挑战信息生成响应信息并发送到用户端,服务器利用merkle树对存储的所述明文数据块对应的密文块执行同态加运算生成响应信息树,所述响应信息包括挑战信息中数据块编号对应的密文块及所述密文块在所述响应信息树旁路径上的所有节点。用户端对所述服务器反馈的响应信息中各密文块及其在响应信息树旁路径上的所有节点做同态加法运算,得到中间验证值,采用私钥将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
若所述基于同态加密算法采用同态乘性质对数据进行加密,则用户端将所述用户端的若干明文数据块采用模乘运算生成证据,然后采用同态乘性质对文明数据块进行加密生成密文块,并将密文块存储到服务器,随机挑选u个所述明文数据块生成挑战信息发送至服务器。所述服务器根据接收的用户端的挑战信息生成响应信息并发送到用户端,服务器利用merkle树对存储的所述明文数据块对应的密文块执行同态加运算生成响应信息树,所述响应信息包括挑战信息中数据块编号对应的密文块及所述密文块在所述响应信息树旁路径上的所有节点。用户端对所述服务器反馈的响应信息中各密文块及其在响应信息树旁路径上的所有节点做同态乘运算,得到中间验证值,采用私钥将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
在本发明的第六实施例中,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如数据完整性验证方法的步骤。
由于在第一、二实施例中已经对数据完整性验证方法做了具体说明,本实施例在此不再赘述。
本实施例中,所述的存储介质可以包括但不限于为:ROM、RAM、磁盘或光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种数据完整性验证方法,基于同态加密算法对数据进行加密,其特征在于,包括以下步骤:
将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据;
随机挑选所述明文数据块生成挑战信息发送至服务器;
对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
2.如权利要求1所述的方法,其特征在于,所述随机挑选明文数据块生成挑战信息发送至服务器,包括:
从若干明文数据块中随机挑选u个数据块,对挑选出的u个数据块进行编号l1,l2,...,lu,其中,K为数据块的位数,ε为验证误差率,并将u个数据块的编号l1,l2,...,lu发到服务器。
3.如权利要求1或2所述的方法,其特征在于,所述服务器反馈的响应信息,包括:
接收的所述挑战信息中数据块编号对应的密文块及所述密文块在响应信息树旁路径上的所有节点;其中,所述响应信息树是服务器利用merkle树对存储的所述明文数据块对应的密文块执行与所述同态加密算法相匹配的同态运算生成的响应信息树。
4.如权利要求1所述的方法,其特征在于,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,
若所述基于同态加密算法采用同态加性质对数据进行加密,则将所述用户端的若干明文数据块采用模加运算生成证据,对所述服务器反馈的响应信息进行同态加运算,得到中间验证值;
若所述基于同态加密算法采用同态乘性质对数据进行加密,则将所述用户端的若干明文数据块采用模乘运算生成证据,对所述服务器反馈的响应信息进行同态乘运算,得到中间验证值。
5.如权利要求4所述的方法,其特征在于,当用户端更新数据块时,
若所述用户端的若干明文数据块采用模加运算生成证据,则更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块;
若所述用户端的若干明文数据块采用模乘运算生成证据,则更新后的证据等于更新前的证据除以更新前的数据块再乘以更新后的数据块。
6.一种数据完整性验证装置,基于同态加密算法对数据进行加密,设置在用户端,其特征在于,包括:
数据处理模块,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器;
数据验证模块,用于对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
7.如权利要求6所述的装置,其特征在于,所述基于同态加密算法对数据进行加密,包括:同态加性质加密和同态乘性质加密,
若所述基于同态加密算法采用同态加性质对数据进行加密,则所述数据处理模块用于将所述用户端的若干明文数据块采用模加运算生成证据;所述数据验证模块用于对所述服务器反馈的响应信息进行同态加运算,得到中间验证值;
若所述基于同态加密算法采用同态乘性质对数据进行加密,则所述数据处理模块用于将将所述用户端的若干明文数据块采用模乘运算生成证据,所述数据验证模块用于对所述服务器反馈的响应信息进行同态乘运算,得到中间验证值。
8.如权利要求7所述的装置,其特征在于,所述数据处理模块,还用于用户端更新数据块时,若所述用户端的若干明文数据块采用模加运算生成证据,则更新后的证据等于更新前的证据减去更新前的数据块再加上更新后的数据块;
若所述用户端的若干明文数据块采用模乘运算生成证据,则更新后的证据等于更新前的证据除以更新前的数据块再乘以更新后的数据块。
9.一种数据完整性验证系统,包括用户端和服务器,其特征在于:
所述服务器,用于根据接收的用户端的挑战信息生成响应信息;
所述用户端,用于将用户端的若干明文数据块利用与所述同态加密算法相匹配的模运算生成证据,随机挑选所述明文数据块生成挑战信息发送至服务器,对接收的所述服务器反馈的响应信息进行同态运算,得到中间验证值,将所述中间验证值进行解密验证,若解密后的中间验证值等于所述证据,则数据完整。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至5任意一项所述方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810654463.8A CN108985102A (zh) | 2018-06-22 | 2018-06-22 | 数据完整性验证方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810654463.8A CN108985102A (zh) | 2018-06-22 | 2018-06-22 | 数据完整性验证方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108985102A true CN108985102A (zh) | 2018-12-11 |
Family
ID=64538413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810654463.8A Pending CN108985102A (zh) | 2018-06-22 | 2018-06-22 | 数据完整性验证方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108985102A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109801066A (zh) * | 2018-12-13 | 2019-05-24 | 中国农业大学 | 远程存储服务的实现方法及装置 |
CN109872142A (zh) * | 2019-02-21 | 2019-06-11 | 缀初网络技术(上海)有限公司 | 一种基于可信第三方的数字资产交易方法及其存储介质 |
CN110289945A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种数据加密方法、装置、设备及介质 |
CN110765147A (zh) * | 2019-10-22 | 2020-02-07 | 全链通有限公司 | 基于区块链加密存储的内容更新方法、用户节点及介质 |
CN112286752A (zh) * | 2020-09-29 | 2021-01-29 | 深圳致星科技有限公司 | 一种联邦学习异构处理系统的算法验证方法及系统 |
CN116886268A (zh) * | 2023-08-10 | 2023-10-13 | 云海链控股股份有限公司 | 数据传输验证方法、装置、设备及计算机可读存储介质 |
CN117459214A (zh) * | 2023-12-22 | 2024-01-26 | 北京天润基业科技发展股份有限公司 | 一种基于同态加密的特征验证方法、系统及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414690A (zh) * | 2013-07-15 | 2013-11-27 | 北京航空航天大学 | 一种可公开验证云端数据持有性校验方法 |
CN103699851A (zh) * | 2013-11-22 | 2014-04-02 | 杭州师范大学 | 一种面向云存储的远程数据完整性验证方法 |
CN106845280A (zh) * | 2017-03-14 | 2017-06-13 | 广东工业大学 | 一种Merkle哈希树云数据完整性审计方法及系统 |
JP2018093363A (ja) * | 2016-12-02 | 2018-06-14 | Kddi株式会社 | 検証システム、検証方法及び検証プログラム |
-
2018
- 2018-06-22 CN CN201810654463.8A patent/CN108985102A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414690A (zh) * | 2013-07-15 | 2013-11-27 | 北京航空航天大学 | 一种可公开验证云端数据持有性校验方法 |
CN103699851A (zh) * | 2013-11-22 | 2014-04-02 | 杭州师范大学 | 一种面向云存储的远程数据完整性验证方法 |
JP2018093363A (ja) * | 2016-12-02 | 2018-06-14 | Kddi株式会社 | 検証システム、検証方法及び検証プログラム |
CN106845280A (zh) * | 2017-03-14 | 2017-06-13 | 广东工业大学 | 一种Merkle哈希树云数据完整性审计方法及系统 |
Non-Patent Citations (3)
Title |
---|
陈兰香: "一种基于同态 Hash 的数据持有性证明方法", 《电子与信息学报》 * |
陈家迁 主编: "《信息安全技术项目教程》", 31 January 2016, 北京理工大学出版社 * |
颜湘涛: "基于云计算的数据完整性检测和可检索公钥加密算法的设计与分析", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109801066A (zh) * | 2018-12-13 | 2019-05-24 | 中国农业大学 | 远程存储服务的实现方法及装置 |
CN109872142A (zh) * | 2019-02-21 | 2019-06-11 | 缀初网络技术(上海)有限公司 | 一种基于可信第三方的数字资产交易方法及其存储介质 |
CN109872142B (zh) * | 2019-02-21 | 2023-04-11 | 派欧云计算(上海)有限公司 | 一种基于可信第三方的数字资产交易方法及其存储介质 |
CN110289945A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种数据加密方法、装置、设备及介质 |
CN110289945B (zh) * | 2019-06-28 | 2023-02-07 | 深圳前海微众银行股份有限公司 | 一种数据加密方法、装置、设备及介质 |
CN110765147A (zh) * | 2019-10-22 | 2020-02-07 | 全链通有限公司 | 基于区块链加密存储的内容更新方法、用户节点及介质 |
CN110765147B (zh) * | 2019-10-22 | 2022-09-06 | 全链通有限公司 | 基于区块链加密存储的内容更新方法、用户节点及介质 |
CN112286752A (zh) * | 2020-09-29 | 2021-01-29 | 深圳致星科技有限公司 | 一种联邦学习异构处理系统的算法验证方法及系统 |
CN116886268A (zh) * | 2023-08-10 | 2023-10-13 | 云海链控股股份有限公司 | 数据传输验证方法、装置、设备及计算机可读存储介质 |
CN116886268B (zh) * | 2023-08-10 | 2024-04-26 | 云海链控股股份有限公司 | 数据传输验证方法、装置、设备及计算机可读存储介质 |
CN117459214A (zh) * | 2023-12-22 | 2024-01-26 | 北京天润基业科技发展股份有限公司 | 一种基于同态加密的特征验证方法、系统及电子设备 |
CN117459214B (zh) * | 2023-12-22 | 2024-02-23 | 北京天润基业科技发展股份有限公司 | 一种基于同态加密的特征验证方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108985102A (zh) | 数据完整性验证方法、装置、系统及存储介质 | |
Wang et al. | Privacy-preserving public auditing for data storage security in cloud computing | |
EP3552338B1 (en) | Method of rsa signature or decryption protected using a homomorphic encryption | |
US10630478B1 (en) | Sender optimal, breach-resilient, and post-quantum secure cryptographic methods and systems for digital auditing | |
KR100960578B1 (ko) | 식별자 기반 키 생성 방법 및 장치 | |
Yang et al. | Provable data possession of resource-constrained mobile devices in cloud computing | |
US10097342B2 (en) | Encoding values by pseudo-random mask | |
JP2020502856A5 (zh) | ||
Das | Secure cloud computing algorithm using homomorphic encryption and multi-party computation | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
Garg et al. | Comparative analysis of cloud data integrity auditing protocols | |
CN104967693B (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
CN104038349A (zh) | 一种基于kp-abe的有效可验证的公钥可搜索加密方法 | |
US10826694B2 (en) | Method for leakage-resilient distributed function evaluation with CPU-enclaves | |
Huang et al. | Securing the cloud storage audit service: defending against frame and collude attacks of third party auditor | |
JP2012129993A (ja) | 暗号装置の保護方法及び保護システム | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
CN115102688B (zh) | 数据处理方法、多项式计算方法及电子设备 | |
CN115549891B (zh) | 同态加密方法、同态解密方法、同态计算方法及设备 | |
CN109726567A (zh) | 一种基于全同态加密的移动目标加密方法 | |
Tian et al. | Enabling public auditability for operation behaviors in cloud storage | |
CN109818752A (zh) | 信用评分生成方法、装置、计算机设备和存储介质 | |
Lee et al. | Security analysis and modification of ID-based encryption with equality test from ACISP 2017 | |
EP3509246A1 (en) | Key exchange method and key exchange system | |
Ojha et al. | AES and MD5 based secure authentication in cloud computing |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |