一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据完整性审计方法、设备及存储介质与流程

2023-01-15 10:39:46 来源:中国专利 TAG:


1.本技术涉及数据审计领域,特别是涉及一种数据完整性审计方法、设备及存储介质。


背景技术:

2.云存储运营商提供了一个去中心化的基础设施,允许用户能够在线存储数据。用户通过向这些云存储运营商付费,进而获得一定存储空间,并可以享受诸如数据备份、抗网络攻击等安全服务。一旦用户将数据存储到云端,其后用户数据将完全由云存储运营商管理。期间云存储运营商通过选择可靠的存储服务器,维护数据的完整性,在收到合法数据请求时,及时交付相应的数据。然而,运营商管理数据的过程对于用户而言是一个黑盒,如果云端数据被破坏,用户并不能及时发现,而且云存储运营商也可以对此进行抵赖。基于此,实现一种透明的数据完整性审计方案,是构建云存储运营商和用户之间信任的重要技术手段。
3.目前较为常见的数据完整性审计策略就是基于哈希算法进行实现,例如md5和sha256。系统利用上述哈希算法计算出数据的哈希值,然后将其存储到可信系统中,后续就可以基于该哈希值执行数据完整性校验操作。但是,基于哈希算法实现数据完整性审计的设计方法,一般存在下面一些问题。首先审计方需要获取被审计数据对象,然后再计算得到哈希值进行匹配,数据传递过程需要消耗大量的带宽资源。其次,当利用该方法执行审计操作时,系统不能根据其自身空闲状态或需求灵活定制被校验的数据量。更为重要的是,一旦某个文件被修改,即使是一个字节,系统也需要重新计算这个文件对应的哈希值,修改的成本较高。最后负责执行数据一致性审计的节点,有可能自己作恶或被黑客攻击并控制,进而篡改审计结果。
4.现有的远程数据持有(provable data possession,pdp)算法能够有效解决上述问题,审计方能够在不持有被审计数据对象的前提下,对数据完整性进行审计。然而现有的远程数据持有算法均需要依赖中心化可信节点来生成并管理用户公私钥信息,一旦该节点作恶,就会导致数据隐私信息被泄露。此外,中心化密钥管理方式会影响审计方法的可扩展性,在发生自然灾害或设备损坏时会导致数据丢失或破坏。
5.因此,如何设计一种去密钥管理功能的远程数据持有算法来完成透明的数据完整性审计,是本领域技术人员亟待解决的技术问题。


技术实现要素:

6.有鉴于此,本发明的目的在于提供一种数据完整性审计方法,可以在不持有数据拥有者私钥的前提下对云端数据完整性进行审计。其具体方案如下:
7.一种数据完整性审计方法,包括:
8.将待上传的文件切割成不同的文件块;
9.计算各所述文件块对应的文件标签和文件认证符;
10.将所述文件认证符和所述文件发送至云端进行存储,同时将所述文件标签和元数据信息发送至区块链;
11.依据所述区块链中的所述文件标签和元数据信息,验证所述云端存储数据的完整性。
12.优选地,在本发明实施例提供的上述数据完整性审计方法中,所述依据所述区块链中的所述文件标签和元数据信息,验证所述云端存储数据的完整性,包括:
13.担任tpa角色对所述云端发出挑战信息,以使所述云端根据所述挑战信息和本地存储数据,计算并反馈证明信息;
14.将所述证明信息与从所述区块链中的所述文件标签和元数据信息进行结合,验证所述云端存储数据的完整性。
15.优选地,在本发明实施例提供的上述数据完整性审计方法中,所述将待上传的文件切割成不同的文件块,包括:
16.利用对称加密算法对待上传的文件进行加密,并将加密后的所述文件切割成不同的文件块;每个所述文件块具有设定大小的扇区;
17.所述将所述文件认证符和所述文件发送至云端进行存储,包括:
18.将所述文件认证符和加密后的所述文件发送至云端进行存储。
19.优选地,在本发明实施例提供的上述数据完整性审计方法中,采用下述公式计算各所述文件块对应的文件标签:
20.ft=n||s||fs
21.其中,ft为所述文件标签,n为所述文件块的数量,s为每个所述文件块的扇区数量,fs为所述文件f的大小。
22.优选地,在本发明实施例提供的上述数据完整性审计方法中,采用下述公式计算各所述文件块对应的文件认证符:
[0023][0024]
其中,δi为第i个所述文件块对应的文件认证符,h1()为哈希函数,k
prf
为密钥,a1,...,aj,...,as为从模素数p的循环群随机选择的元素集,c
ij
为加密后的所述文件块。
[0025]
优选地,在本发明实施例提供的上述数据完整性审计方法中,采用下述公式计算所述证明信息:
[0026]
proof={u,σ}
[0027][0028]
u={u1,u2,...,us}
[0029][0030][0031]
其中,proof为所述证明信息,q为所述挑战信息,(i,vi)为所述挑战信息q中的不同随机元素,vi为随机数,||vi||<||p||,l为所述挑战信息q中随机元素的数量,集合u和集
合σ组成了证明消息proof,uj为集合u中不同的随机元素。
[0032]
优选地,在本发明实施例提供的上述数据完整性审计方法中,在所述对所述云端发出挑战信息之前,还包括:
[0033]
根据自身计算能力或预设条件确定待审计的数据量百分比;
[0034]
根据确定的所述数据量百分比和所述文件的大小,获取待发出的挑战信息中随机元素的数量。
[0035]
优选地,在本发明实施例提供的上述数据完整性审计方法中,所述将所述证明信息与从所述区块链中的所述文件标签和元数据信息进行结合,验证所述云端存储数据的完整性,包括:
[0036]
对所述证明信息进行解析;
[0037]
从所述区块链检索出所述文件标签和元数据信息;
[0038]
校验下述等式是否成立:
[0039][0040]
其中,g为生成元,k为公钥,aj为用于执行数据完整性校验的元数据信息;
[0041]
如果成立,则判定所述云端存储数据具有完整性;若不成立,则判定所述云端存储数据不具有完整性。
[0042]
本发明实施例还提供了一种数据处理设备,包括处理器和存储器,其中,所述处理器执行所述存储器中存储的计算机程序时实现如本发明实施例提供的上述数据完整性审计方法。
[0043]
本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本发明实施例提供的上述数据完整性审计方法。
[0044]
从上述技术方案可以看出,本发明所提供的一种数据完整性审计方法,包括:将待上传的文件切割成不同的文件块;计算各文件块对应的文件标签和文件认证符;将文件认证符和文件发送至云端进行存储,同时将文件标签和元数据信息发送至区块链;依据区块链中的文件标签和元数据信息,验证云端存储数据的完整性。
[0045]
本发明提供的上述数据完整性审计方法,具有去密钥管理功能,可以在不持有数据拥有者私钥的前提下对云端数据完整性进行审计,不需要存储和维护任何密钥信息,消除了传统实现方案因需要维护中心化密钥管理中心而引入的单点故障和单点信任问题,更好地适配于去中心化的业务场景中,密钥维护成本低,此外本发明可以有效提升审计过程的透明性,具有较高的执行效率,相应的审计结果能够为存储日志、责任追溯等提供数据安全服务。
[0046]
此外,本发明还针对数据完整性审计方法提供了相应的设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该设备及计算机可读存储介质具有相应的优点。
附图说明
[0047]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
[0048]
图1为本发明实施例提供的数据完整性审计方法的流程图;
[0049]
图2为本发明实施例提供的数据完整性审计方法的架构示意图。
具体实施方式
[0050]
在设计适配于去中心化场景中的数据完整性审计方案时,需要解决的重要问题就是如何去除集中式的密钥分发中心,因为它可能会导致出现单点故障问题。另外一个需要解决的问题就是如何确保审计过程透明化,这样审计方无需持有数据所有者私钥信息,只需要利用公开信息就可以执行数据完整性审计。基于上述问题的考虑,本发明提供了一种数据完整性审计方法,剔除了密钥管理过程,而且支持公开可审计性。
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
本发明提供的数据完整性审计方法,如图1所示,包括以下步骤:
[0053]
s101、将待上传的文件切割成不同的文件块。
[0054]
需要说明的是,用户需要将自身文件发送至云端进行存储,用户可以直接将待上传的文件(即明文信息)上传至云端,也可以考虑到数据隐私,对待上传的文件进行加密,相应的密钥应由用户自己保留。对于该方式,即使用户丢失了上述密钥,也不会影响新方案的正常执行。
[0055]
基于此,在具体实施时,上述步骤s101将待上传的文件切割成不同的文件块,具体可以包括:利用对称加密算法对待上传的文件进行加密,并将加密后的文件切割成不同的文件块;每个文件块具有设定大小的扇区。
[0056]
具体地,用户在将自己的数据上传至云端之前,可以选择利用对称加密算法对待上传的文件进行加密,并秘密保存对应的密钥,然后,用户需要将加密后的文件切割成不同的文件块,每个文件块具有固定大小的扇区。
[0057]
s102、计算各文件块对应的文件标签和文件认证符。
[0058]
在具体实施时,可以采用下述公式计算各文件块对应的文件标签:
[0059]
ft=n||s||fs
[0060]
其中,ft为文件标签,n为文件块的数量,s为每个文件块的扇区数量,fs为文件f的大小。
[0061]
在具体实施时,可以采用下述公式计算各文件块对应的文件认证符:
[0062][0063]
其中,δi为第i个文件块对应的文件认证符,h1()为哈希函数,k
prf
为密钥,a1,...,aj,...,as为从模素数p的循环群随机选择的元素集,c
ij
为加密后的文件块。
[0064]
s103、将文件认证符和文件发送至云端进行存储,同时将文件标签和元数据信息发送至区块链。
[0065]
需要说明的是,在本发明中,云端理论上可拥有无限的存储空间和计算资源。传统的数据存储系统,如直连方式存储(direct attached storage,das)、网络附属存储(network attached storage,nas)和存储区域网络(storage area network,san),均可用作云端存储。云端应及时响应用户存取数据的请求,并可以采用一些性能优化策略,例如spdk(storage performance development kit)技术,来加速数据传输过程。为了及时发现云端数据被破坏,本发明能够审计云端数据的完整性。关于触发数据完整性审计动作,可以采用定时策略或者在系统空闲时自动执行。
[0066]
区块链是由一组网络节点组成的分布式系统,能够验证和存储用户发送的交易数据。区块链具有防篡改和可信溯源等特性,能够确保链上数据可信。尽管当前存在一些威胁区块链系统安全的攻击手段,例如公有链平台上的51%算力攻击和dao攻击,但依赖公有链优良的开源特性,相关开发人员能够及时更新系统安全补丁,确保区块链平台安全。这里假设采用的区块链平台是安全的,能够保证链上存储的数据不可篡改。
[0067]
另外,需要说明的是,用户在上传文件时,需要生成数据完整性审计方法所需的一些密钥信息和元数据信息。这些元数据信息会上传至区块链端,而这些密钥信息随后会被用户删除,用户无需管理维护这些密钥信息。
[0068]
在具体实施时,上述步骤s103将文件认证符和文件发送至云端进行存储,同时将文件标签和元数据信息发送至区块链,具体可以包括:将文件认证符和加密后的文件发送至云端进行存储,同时将文件标签以及其它元数据信息发送至区块链。
[0069]
s104、依据区块链中的文件标签和元数据信息,验证云端存储数据的完整性。
[0070]
需要指出的是,在本发明中,第三方审计(third-party auditor,tpa)负责验证云端存储数据的完整性,其角色可由用户或可信第三方实体承担。本发明支持公开审计性,理论上允许任何不持有数据所有者私钥信息的实体均可以执行数据完整性审计操作,不需要依赖密钥生成中心来管理用户公私钥信息。
[0071]
在具体实施时,上述步骤s104依据区块链中的文件标签和元数据信息,验证云端存储数据的完整性,具体可以包括:担任tpa角色对云端发出挑战信息(challenge),以使云端根据挑战信息和本地存储数据,计算并反馈证明信息(proof);将证明信息与从区块链中的文件标签和元数据信息进行结合,验证云端存储数据的完整性。
[0072]
在具体实施时,可以采用下述公式计算证明信息:
[0073]
proof={u,σ}
[0074][0075]
u={u1,u2,...,us}
[0076][0077][0078]
其中,proof为证明信息,q为挑战信息,(i,vi)为挑战信息q中的不同随机元素,vi为随机数,||vi||<||p||,l为挑战信息q中随机元素的数量,集合u和集合σ组成了证明消息proof,uj为集合u中不同的随机元素。
[0079]
在本发明实施例提供的上述数据完整性审计方法中,可以在不持有数据拥有者私钥的前提下对云端数据完整性进行审计,不需要存储和维护任何密钥信息,消除了传统实现方案因需要维护中心化密钥管理中心而引入的单点故障和单点信任问题,更好地适配于去中心化的业务场景中,密钥维护成本低,此外本发明可以有效提升审计过程的透明性,具有较高的执行效率,相应的审计结果能够为存储日志、责任追溯等提供数据安全服务。
[0080]
图2给出了本发明实施例提供的上述数据完整性审计方法的架构示意图。如图2所示,本发明中可以有四个不同的实体:用户、区块链、tpa和云端。其中用户需要将自己数据上传到云端,而且需要确保云端自身数据的完整性。为保护数据隐私,用户可以利用对称加密算法对待上传的文件进行加密,并秘密保存对应的密钥。然后,用户需要将加密后的文件切割成不同的文件块,每个文件块具有固定大小的扇区。用户需要为这些文件块计算相应的文件标签和文件认证符,然后,再将文件认证符和加密后的文件发送至云端进行存储,将文件标签以及其它元数据信息发送至区块链。tpa负责验证云端用户数据的完整性,其角色可由用户或第三方实体承担。在校验云端数据的完整性时,tpa首先对云端数据发出挑战信息。然后,云端收到挑战信息后,结合本地存储的数据计算证明信息,并将其发送至tpa。tpa收到证明信息后,结合从区块链端获取到的文件标签以及其它元数据信息,验证云端数据完整性。
[0081]
进一步地,在具体实施时,在本发明实施例提供的上述数据完整性审计方法中,在对云端发出挑战信息之前,还可以包括:根据自身计算能力或预设条件确定待审计的数据量百分比;根据确定的数据量百分比和文件的大小,获取待发出的挑战信息中随机元素的数量。
[0082]
进一步地,在具体实施时,在本发明实施例提供的上述数据完整性审计方法中,将证明信息与从区块链中的文件标签和元数据信息进行结合,验证云端存储数据的完整性,具体可以包括:对证明信息进行解析;从区块链检索出相应的文件标签和元数据信息;校验下述等式是否成立:
[0083][0084]
其中,g为生成元,k为公钥,aj为用于执行数据完整性校验的元数据信息;
[0085]
如果成立,则判定云端存储数据具有完整性;若不成立,则判定云端存储数据不具有完整性。
[0086]
下面以一个实例对本发明实施例提供的上述数据完整性审计方法进行说明,具体主要分为六大步骤:
[0087]
步骤一、执行setup步骤,目的是输出系统公共参数。
[0088]
具体地,随机选择一个大素数p,g为的生成元。enc()是一个标准对称加密函数,例如可以为aes算法,enc()的密钥为sk。另外,选择一个哈希函数
[0089]
步骤二、执行dataprog步骤,对于待上传的文件f,用户需要对f进行加密,再将其分割成n个文件块,然后再计算得到文件标签。
[0090]
具体地,用户首先为对称加密函数enc()随机选择一个秘钥然后再对f进
行加密进而得到将文件分割成n个文件块,每个文件块s个扇区。
[0091]
为简化起见,本发明将标记为{c
ij
}
1≤i≤n,1≤j≤s
。计算得到文件标签ft=n||s||fs,其中,fs代表文件f的大小。
[0092]
步骤三、执行genauth步骤,给定ft和用户计算文件块对应的认证符集。
[0093]
具体地,随机选择s个数值和一个密钥计算公钥
[0094]
对于1≤j≤s,计算得到为简化起见,本发明定义a={aj}
1≤j≤s

[0095]
对于1≤i≤n,计算本发明定义认证符集δ为{δi}
1≤i≤n

[0096]
将δ和上传至云端,而将{a,k}和ft上传至区块链上。用户从本地删除和
[0097]
步骤四、执行challenge步骤,tpa可以根据自身计算能力或系统预设条件决定待审计的数据量百分比。例如,当系统空闲时,tpa可以增加待审计的数据量百分比r,0≤r≤1,否则,减少百分比r。tpa从区块链上检索出ft,然后选择一个包含l个不同随机元素(i,vi)的挑战集,其中i∈[1,n],||vi||<||p||,本发明将挑战集定义为然后tpa再将q发送到云端。
[0098]
步骤五、执行response步骤,给定挑战集q,云端计算得到相应的证明消息,以表明其持有数据是完整的,然后再将证明消息发送至tpa进行校验。
[0099]
对于1≤j≤s,计算定义u={u1,u2,...,us}。
[0100]
计算将proof={u,σ}发送至tpa进行完整性校验。
[0101]
步骤六、执行verification步骤,tpa利用云端发送过来的proof校验云端数据是否完整。
[0102]
tpa首先需要对proof={u,σ}进行解析,然后从链上检索出对应的元素{a,k}和ft。
[0103]
tpa校验等式是否成立。如果成立,输出校验结果true;否则输出false。
[0104]
最后,将校验结果存储到区块链上,以便于后续进行审计。
[0105]
相应地,本发明实施例还公开了一种数据处理设备,包括处理器和存储器;其中,处理器执行存储器中存储的计算机程序时实现前述实施例公开的数据完整性审计方法。关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0106]
进一步地,本发明还公开了一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现前述公开的数据完整性审计方法。关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0107]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备、存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0108]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0109]
结合本文中所公开的实施例描述的方法或方法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0110]
综上,本发明实施例提供的一种数据完整性审计方法,包括:将待上传的文件切割成不同的文件块;计算各文件块对应的文件标签和文件认证符;将文件认证符和文件发送至云端进行存储,同时将文件标签和元数据信息发送至区块链;依据区块链中的文件标签和元数据信息,验证云端存储数据的完整性。上述数据完整性审计方法具有去密钥管理功能,可以在不持有数据拥有者私钥的前提下对云端数据完整性进行审计,不需要存储和维护任何密钥信息,消除了传统实现方案因需要维护中心化密钥管理中心而引入的单点故障和单点信任问题,更好地适配于去中心化的业务场景中,密钥维护成本低,此外本发明可以有效提升审计过程的透明性,具有较高的执行效率,相应的审计结果能够为存储日志、责任追溯等提供数据安全服务。此外,本发明还针对数据完整性审计方法提供了相应的设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该设备及计算机可读存储介质具有相应的优点。
[0111]
最后,还需要说明的是,在本文中,关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0112]
以上对本发明所提供的数据完整性审计方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献