一种大数据流验证方法及系统
文献发布时间:2023-06-19 10:32:14
技术领域
本发明涉及数据处理技术领域,尤其涉及一种大数据流验证方法及系统。
背景技术
随着大数据、5G时代、智慧城市的等概念的出现,网络上出现了大量连续的、快速产生的、不可预测的大数据流,如:视频监控产生的视频流、无线传感器网络、股票交易流、5G网络数据流等等。这些连续、快速到达的大数据流使人们获得高连续、高时效、高信息量的数据成为可能。在目前产生大数据流的大多数应用中,由于终端资源和计算能力受限这些大数据流通常需要实时上传至云平台,由云平台进行管理并为用户提供服务。然而由于云平台的开放性和不可信性,为云平台下大数据流的真实性问题带来了安全隐患,能否在不影响大数据流连续性、实时性和不可预测性等特征的条件下,确保云平台下大数据流的可验证性成为信息安全领域和新兴技术深入发展需要亟待解决的问题。
目前对数据的完整性验证技术已取得了许多研究成果,包括数字签名技术、消息认证码以及可认证数据结构等。其中可认证数据结构是在认证字典基础上发展起来的一种新型分布式计算模型,能够很好的解决分布式环境下的三方数据认证问题,即可以在第三方服务平台不可信的情况下,保证第三方服务平台提供的数据和数据源是一致的。凭借此特性,可认证数据结构目前被广泛用于解决云平台下数据完整性验证、数据持有性证明(Provable Data Possession,PDP)以及数据可检索证明(Proof of Retrievability,POR)等问题。
然而,大数据流的独有特性为可认证数据结构的研究提出了新的问题与挑战:(1)大数据流往往具有较高的实时性同时是持续增长和动态变化的,如何实现对大数据流的即来即验证而无需提前保存整个数据流后再进行验证;(2)大数据流的规模是不可预测性,如何确定可认证数据结构的规模,可认证数据结构的规模能否无限扩展而无需提前固定;(3)大数据流是连续不断的,如何灵活设置验证点或设置多个验证点,防止单验证点失效带来的无法验证等问题;(4)云平台下第三方审计时,如何在不泄露隐私的情况下实现对大数据流的完整性审计等等。
发明内容
有鉴于此,本发明提供了一种大数据流验证方法及系统,能够为大数据流的安全共享和隐私保护提供技术支撑。
本发明提供了一种大数据流验证方法,包括:
生成陷门密钥对和签名密钥对,并初始化相关参数,公开发布公钥信息;
数据源在获取到数据后生成认证树的结构更新信息;
云存储服务器基于所述结构更新信息确定对应的插入位置,并从所述插入位置自下而上更新对应的路径节点,以完成认证数据结构的更新;
云存储服务器在接收到访问者发起的质询信息后,生成对应数据的证据信息;
数据验证者基于接收到的所述证据信息对数据的完整性进行验证。
优选地,所述生成陷门密钥对和签名密钥对,并初始化相关参数,公开发布公钥信息,包括:
调用陷门哈希的密钥生成算法生成陷门密钥和哈希密钥;
产生BLS签名密钥对;
初始化当前的插入叶子节点的序号、认证树的容量参数、初始化认证树的状态。
优选地,所述数据源在获取到数据后生成认证树的结构更新信息,包括:
获取当前认证树的规模值和已添加的叶子节点的数目;
判断所述已添加的叶子节点的数目是否等于所述当前认证树的规模值,若是,则:
将深度值增加1,将当前认证树的容量变为原有的两倍,产生新的根节点,以使原根节点为新的根节点的左孩子;
计算新的根节点的右孩子的陷门哈希值,得到新的根节点的哈希值,并使用BLS签名密钥对中的私钥进行签名;
将新生成傀儡节点原像值添加到状态向量中,将计算出的新的根节点的右孩子的陷门哈希值添加到认证路径中;
从状态向量找最底层的傀儡节点,并以该傀儡节点为根节点产生子树的结构框架;
插入数据后自下而上更新沿叶子到对应陷门哈希节点的值,将计算出来的陷门哈希值添加到数据的认证路径中;
对每个文件计算同态标签值,得到认证树的结构更新信息。
优选地,所述数据验证者为审计者,所述数据验证者基于接收到的所述证据信息对数据的完整性进行验证,包括:
所述审计者基于所述所述证据信息中的认证路径计算出根节点的哈希值;
基于所述根节点的哈希值和所述证据信息中的签名对数据的完整性进行验证。
一种大数据流验证系统,包括:
初始化模块,用于生成陷门密钥对和签名密钥对,并初始化相关参数,公开发布公钥信息;
数据源,用于在获取到数据后生成认证树的结构更新信息;
云存储服务器,用于基于所述结构更新信息确定对应的插入位置,并从所述插入位置自下而上更新对应的路径节点,以完成认证数据结构的更新;
云存储服务器,用于在接收到访问者发起的质询信息后,生成对应数据的证据信息;
数据验证者,用于基于接收到的所述证据信息对数据的完整性进行验证。
优选地,所述初始化模块具体用于:
调用陷门哈希的密钥生成算法生成陷门密钥和哈希密钥;
产生BLS签名密钥对;
初始化当前的插入叶子节点的序号、认证树的容量参数、初始化认证树的状态。
优选地,所述数据源具体用于:
获取当前认证树的规模值和已添加的叶子节点的数目;
判断所述已添加的叶子节点的数目是否等于所述当前认证树的规模值,若是,则:
将深度值增加1,将当前认证树的容量变为原有的两倍,产生新的根节点,以使原根节点为新的根节点的左孩子;
计算新的根节点的右孩子的陷门哈希值,得到新的根节点的哈希值,并使用BLS签名密钥对中的私钥进行签名;
将新生成傀儡节点原像值添加到状态向量中,将计算出的新的根节点的右孩子的陷门哈希值添加到认证路径中;
从状态向量找最底层的傀儡节点,并以该傀儡节点为根节点产生子树的结构框架;
插入数据后自下而上更新沿叶子到对应陷门哈希节点的值,将计算出来的陷门哈希值添加到数据的认证路径中;
对每个文件计算同态标签值,得到认证树的结构更新信息。
优选地,所述数据验证者为审计者,所述审计者具体用于:
基于所述所述证据信息中的认证路径计算出根节点的哈希值;
基于所述根节点的哈希值和所述证据信息中的签名对数据的完整性进行验证。
综上所述,本发明公开了一种大数据流验证方法及系统,通过在传统Merkle树上引入了陷门哈希函数和BLS签名,构建一种能够根据数据流规模变化而自适应拓展的可认证树,实现了对大数据流的边读边写边验证,并基于双线性映射构造同态验证方案解决了第三方审计带来的隐私泄露问题。与此同时,可认证树自适应的特点不仅可根据到达的数据量动态拓展自身的结构,还克服了以往可认证树的单点故障问题,增强了可认证树完整性验证的健壮性和稳固性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种大数据流验证方法实施例1的方法流程图;
图2为本发明公开的可扩展认证树的结构示意图;
图3为本发明公开的三种不同规模下的认证树的结构示意图;
图4为本发明公开的一种数据完整性验证的结构示意图;
图5为本发明公开的一种结点查找图;
图6为本发明公开的一种具有隐私保护的可扩展认证树构建系统实施例1的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种大数据流验证方法实施例1的方法流程图,所述方法可以包括以下步骤:
S101、生成陷门密钥对和签名密钥对,并初始化相关参数,公开发布公钥信息;
首先,运行Setup算法生成陷门密钥对和签名密钥对并初始化相关参数,公开发布公钥信息,具体算法流程描述如下:
Setup(1
调用陷门哈希的密钥生成算法生成陷门密钥和哈希密钥(tsk,tpk)←trapGen(1
S102、数据源在获取到数据后生成认证树的结构更新信息;
在数据插入阶段由于数据源没有存储认证树结构,而云存储服务器又不具有陷门密钥信息无法完成数据的插入,所以认证树的结构更新需要由数据源运行算法Source_Append与云存储服务器运行Server_Append共同完成,具体算法流程描述如下:
Source_Append(m,st,pk,sk):数据源在获取到数据后生成认证树的结构更新信息,首先根据当前认证树的规模值(所能容纳的数据量由参数capacity指示)和已添加的叶子节点的数目c,根据认证树是否扩展可分为以下情况:若当前树的容量已满(c=capacity),则对认证树进行扩展,深度值增加d←d+1,认证树的容量变为原来的两倍capacity=capacity*2,产生新的根节点newroot←R
插入数据后自下而上更新沿叶子到对应陷门哈希节点的值,将计算出来的陷门哈希值添加到数据的认证路径Path中。
完成以上过程后对每个文件m
S103、云存储服务器基于结构更新信息确定对应的插入位置,并从插入位置自下而上更新对应的路径节点,以完成认证数据结构的更新;
云存储服务器收到更新信息upd找到对应的插入位置后自下而上更新对应的路径节点完成认证数据结构的更新。首先需要根据当前数据的插入位置信息,即可以通过二叉查找即可实现,接着从插入位置从下往上根据发送过来的认证路径信息添加到认证树中对应的位置,并沿途计算缺少的陷门节点。
通过上述方法,构建的可扩展认证树(P-ATHAT)的结构如图2所示,在P-ATHAT中所有的右孩子节点使陷门哈希函数计算哈希值,称为陷门哈希节点,所有的左孩子节点和根节点使用普通哈希函数计算哈希值,称为普通哈希节点,对于没有孩子节点陷门节点称之为傀儡节点。
对于此种结构设计使得底层的叶子节点在插入更新时,认证树中总是存在唯一一个陷门哈希节点与之对应,如图2中虚线所标注的更新对应关系。因此P-ATHAT插入数据时,在更新的路径中只要遇到了使用陷门哈希节点就可以使用陷门哈希函数的陷门计算碰撞得到对应的随机数r,只需要修改该节点的随机数,从而使哈希值保持不变不需要继续向上更新到根节点,克服了在Merkle树中每次更新叶子节点时都会引起相应的父节点哈希值的改变一直往上频繁更新根节点的问题。
同时P-ATHAT在初始化阶段不需要指定认证树的深度D,后续可根据到达数据量自适应拓展认证树的结构:每次当前的结构无法满足数据规模时都会新生成一个根节点,原来的结构变为新生成根节点的左子树,深度增加1,可以支持的数据量则扩展为原来的两倍。图3是三种不同规模下的认证树的结构,不同规模下的认证树结构具有一致性,规模较小的认证树为较大认证树的左子树。由于每次认证树进行拓展后,支持的数据量都变为原来的两倍因此使得后续阶段扩展操作不会特别频繁。
S104、云存储服务器在接收到访问者发起的质询信息后,生成对应数据的证据信息;
S105、数据验证者基于接收到的证据信息对数据的完整性进行验证。
基于上述方法构建的具有隐私保护的可扩展认证树,如图4所示,完整性验证的过程由访问者向云存储服务器发起访问请求chal后,云存储服务器运行GenProof算法为查询的数据生成验证证据,数据验证者在收到验证证据运行Verify算法对数据的完整性进行验证。在本方案中隐私保护可以作为一种可选的服务完整性可分为两种,一种是合法用户获取数据及其证据后进行完整性验证,一种是审计者在不获取原始数据的情况下实现一种具有隐私保护的完整性验证,具体算法流程如下:
GenProof(m,chal),数据发布者在收到质询信息
对于合法用户服务器返回认证路径Auth、根签名值和数据信息即可完成数据的完整性验证。在此基础上基于上BLS签名构造同态验证器并与随机屏蔽相结合构造一种具有隐私保护的证据p-proof。
Verify(pk,Proof,chal)具有隐私保护的完整性验证算法:审计者接收p-proof后执行该算法对完整性证据进行验证。首先根据Auth
其中,验证的正确性证明如下:
验证过程的隐私保护指的是数据发布者发送给验证者的信息
p-proof={{π
验证者无法通过p-proof恢复出π
在完整性验证时需要基于认证树来构造数据的验证证据,例如若当前认证树中已经存在6个叶子时如图5所示,如果要查询4号数据,首先从根节点R
但与以往基于MHT方案不同的是,并不是从当前根节点R
在完整性验证时,例如对于3号数据返回的数据和完整性证据为{m
Th(cpk,m
此外也可以看出P-ATHAT由于存在多个验证根节点,例如R
如图6所示,为本发明公开的一种大数据流验证系统,包括:
初始化模块601,用于生成陷门密钥对和签名密钥对,并初始化相关参数,公开发布公钥信息;
数据源602,用于在获取到数据后生成认证树的结构更新信息;
云存储服务器603,用于基于所述结构更新信息确定对应的插入位置,并从所述插入位置自下而上更新对应的路径节点,以完成认证数据结构的更新;
云存储服务器603,还用于在接收到访问者发起的质询信息后,生成对应数据的证据信息;
数据验证者604,用于基于接收到的所述证据信息对数据的完整性进行验证。
本实施例公开的大数据流验证系统的工作原理与上述大数据流验证方法的工作原理相同,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种大数据流验证方法及系统
- 高重频大能量可调谐激光循环系统的控制方法及该系统的流速验证方法