1.一种云环境分布式哈希链架构,其特征在于,每个用户对应一个虚拟机代理节点,每个虚拟机代理节点对应一个由多个存储节点构成的分布式存储系统集群,完成虚拟机代理模型的部署;虚拟机代理节点包括文件预处理模块、监测模块、验证模块、存储模块;将多个用户进行联合,各用户对应的虚拟机代理节点之间进行交互,当某用户提交数据文件存储任务时,文件预处理模块对数据文件进行预处理,并产生一笔交易放入缓冲池中,其他用户的虚拟机代理节点轮番查询缓冲池是否有未确认的交易,若有,则对交易进行合法性确认,在合法性确认完成后将交易打包作为分布式哈希链其中一个节点,完成云环境分布式哈希链架构的构建;
定义:虚拟机代理节点为用户的代理节点,且逻辑上唯一,负责代理用户执行各项任务;虚拟机代理节点用于当用户提交数据文件存储任务后,对待存储数据文件进行预处理,并选择虚拟机代理节点对应的分布式存储系统集群中的一个存储节点存储数据文件,在所有数据文件存储完成后,由虚拟机代理节点将结果返回给用户;存储节点作为用户的数据文件存储节点,用于存储用户的数据文件,且不唯一,用户所有的存储节点构成分布式存储系统集群。
2.基于权利要求1所述云环境分布式哈希链架构的云数据完整性验证方法,用于目标用户针对其在云环境中所存储的云数据实现完整性监控和验证,其特征在于,包括如下步骤:步骤A,部署虚拟机代理模型,并根据虚拟机代理模型构建云环境分布式哈希链,通过虚拟机代理节点与目标用户建立连接,完成数据完整性预处理;
步骤B,目标用户通过虚拟机代理节点建立与云服务提供服务器之间的通信,完成数据完整性监控;
步骤C,目标用户通过虚拟机代理节点与云服务提供服务器通信,验证所存储云数据的完整性。
3.根据权利要求2所述云数据完整性验证方法,其特征在于,所述步骤A包括如下步骤:
步骤A01,部署虚拟机代理模型,根据虚拟机代理模型构建云环境分布式哈希链,目标用户发出请求连接对应的虚拟机代理节点,虚拟机代理节点收到目标用户请求后,验证其是否合法,若合法,则开启虚拟机代理节点,否则,返回拒绝连接响应;
步骤A02,取素数p,Zp是p上的域,设G1,G2是素数p的乘法循环群,g1是G1的生成元,g2是G2的生成元,存在双线性映射l:G1×G1→G2,随机选取a∈Zp、x∈Zp,目标用户在本地生成密钥对{SK={a,x},PK={g1,u,v}},其中,x为私钥,v为公钥,v=g2x,u=g1a;
步骤A03,目标用户将待存储数据文件F上传至虚拟机代理节点,虚拟机代理节点初始化F,将F进行分块F={m1,…,mi,…,mn},1≤i≤n,n为待存储数据文件F分成的所有数据块总数,再分别针对各个分块mi进行分段mi={mi1,…,mij,…,mik},1≤j≤k,k为每个数据块分成的所有段数,并且对各个块进行编号bi,同时生成时间戳ti,利用标签生成算法为每个数据块mi生成标签σi,将标签σi存储至虚拟机代理节点的数据库中;
步骤A04,虚拟机代理节点上传待存储数据文件F存储到对应的分布式存储系统集群,得到存储地址F_Id。
4.根据权利要求3所述云数据完整性验证方法,其特征在于,步骤A03所述标签σi的计算公式如下:其中,H、h均为哈希函数:H:{0,1}*→G1,h:{0,1}*→Zp,1≤i≤n,1≤j≤k,n为待存储数据文件F分成的所有数据块总数,k为每个数据块分成的所有段数,bi为编号,ti为时间戳,g1是G1的生成元,G1是素数p的乘法循环群,aj∈Zp,x∈Zp,Zp是素数p上的域, mij为第i个数据块mi的第j个分段。
5.根据权利要求3所述云数据完整性验证方法,其特征在于,所述步骤B包括如下步骤:
步骤B01,编写数据监控合约协议代码并将该代码编译成二进制码,将编译好的合约协议部署到云环境分布式哈希链所在的网络,获得合约协议的分布式哈希链的地址和二进制接口;
步骤B02,虚拟机代理节点完成数据完整性预处理后,获取步骤A03得到的标签σi,根据默克尔哈希树生成待存储数据文件的根哈希值,1≤i≤n,n为待存储数据文件F分成的所有数据块总数;
步骤B03,通过合约协议的分布式哈希链的地址和二进制接口调用合约协议,将步骤A得到的存储地址F_Id和根哈希值作为键值对保存到Map的数据结构中;
步骤B04,通过监控待存储数据文件的根哈希值,实现数据完整性监控。
6.根据权利要求3所述云数据完整性验证方法,其特征在于,所述步骤C包括如下步骤:
步骤C01,目标用户针对所存储待挑战数据文件,向虚拟机代理节点发出待检测数据文件的数据完整性验证请求,数据完整性验证请求包括:从待挑战数据文件中选取的待挑战数据块集合IDX={idxs|1≤s≤c,c≤n}以及对应的随机数集合R={rs|s∈IDX,rs∈Zp},其中,c为待挑战数据块总数,n为待挑战数据文件分成的所有数据块总数,Zp是素数p上的域,idxs为第s块待挑战数据块,rs为随机数;
步骤C02,虚拟机代理节点根据验证请求,向分布式存储系统集群查询待挑战数据文件的存储地址F_Id;
步骤C03,虚拟机代理节点根据待挑战数据文件的存储地址F_Id,在存储节点获取到待挑战数据块的 返回给虚拟机代理节点,计算总数据块:根据虚拟机代理节点中存储的u,利用标签生成算法计算总数据块标签值:
其中,D为总数据块标签值,h为哈希函数:h:{0,1}*→Zp,Zp是素数p上的域,msj为第s个待挑战数据块ms的第j个分段,k为待挑战数据块ms分成的所有段数,IDX为待挑战数据块集合, g1是G1的生成元,G1是素数p的乘法循环群,aj∈Zp,Zp是素数p上的域;
步骤C04,虚拟机代理节点从自身数据库读取待挑战数据块标签值计算T,同时计算对应的待挑战数据块编号的哈希值B:生成证据proof={D,B,T},并计算:
其中,σs为第s个待挑战数据块ms的标签值,rs为随机数,H为哈希函数:H:{0,1}*→G1,G1是素数p的乘法循环群,bs、ts分别为待挑战数据块ms的编号、时间戳,v为公钥,g2是G2的生成元,G2是素数p的乘法循环群;
步骤C05,根据存储地址F_Id获取待挑战文件的根哈希值,根据待挑战数据块生成新的默克尔哈希树的根哈希值,若上述两个根哈希值相同,并且步骤C04的定义式成立,则验证结果可信,同时将验证结果经虚拟机代理节点传送至用户。