一种分布式远程外包数据审计系统及方法与流程

文档序号:23706632发布日期:2021-01-23 13:44阅读:130来源:国知局
[0001]本发明涉及网络安全
技术领域
:,具体涉及一种分布式远程外包数据审计系统及方法。
背景技术
::[0002]数据安全存储问题已经成为制约云存储服务发展的主要问题。虽然存储安全技术不断发展,但用户存储在云平台中的远程外包数据仍面临完整性和正确性被破坏的威胁。当用户将大量的数据外包到云平台并删除本地副本时,他们期望可以不受空间、时间的限制访问并更新这些外包数据,同时也希望云平台能够为他们的数据提供安全保障。然而由于数据会遭受不完整和不正确存储的威胁,使得用户宁愿花费大量的资金去搭建自己的私有数据存储中心,也不愿意把数据存储在省时、省钱、省力的云存储服务平台。那些不得不使用云存储服务的用户也拒绝把隐私性高的数据存放在云服务器中。由此可见,如果不解决云环境下远程外包数据的存储安全问题,会有越来越多的用户拒绝云存储服务,其发展将会受到阻碍。[0003]远程外包数据审计技术主要采用“挑战响应”机制审计数据的完整性和正确性。该机制的主要思想是用户将数据上传到云存储服务器之前,对数据分块处理,并为每个数据块生成同态可验证签名,再将外包数据块集合和它们的同态可验签名集合打包发送到云存储服务平台。用户委托第三方审计者(tpa)定期随机选择若干外包数据块标号作为挑战数据向云服务提供商(csp)发起审计请求,csp根据挑战数据块和它们的同态可验证签名计算聚合证据返回给tpa,tpa单次审计所接收到的聚合证据就能够知道这些被挑战的远程外包数据块是否完整正确的存储在云存储服务器中。但是远程外包数据审计技术仍面临集中式审计所引发的安全问题和挑战数据块随机化所引发的效率问题。[0004]远程外包数据审计机制中通常假设tpa是“诚实的”实体,它按照审计规则验证远程外包数据的完整性与正确性,属于集中式审计。但集中式审计会遇到如下问题:首先,在现实生活中很难找到完全诚实的实体作为tpa完成审计,实现集中式审计有困难;其次,“半诚实的”tpa容易勾结用户或者csp发起共谋攻击,诬陷csp没有完整正确的存储数据,或者给用户提供错误的审计结果;第三,tpa可以对用户的远程外包数据发起隐私攻击,通过聚合证据窥探其远程外包数据;最后,集中式审计会给tpa带来计算压力,尤其当审计任务突然剧增时会造成审计延迟。所以集中式审计问题是远程外包数据审计机制面临的主要挑战问题。另外,目前很多审计协议为云存储环境下远程外包数据审计协议的进一步研究奠定了良好基础。但是这些协议均使用简单随机抽样的方法抽取挑战数据块,没有关心如何选择挑战数据块可以提高审计效率的问题。通常数据块具有访问频率的特征,而csp为了节省存储空间或者提高经济利益可能会删除低访问频率的数据块。简单随机抽样方法以等概率的方式抽取样本中的单位,但这样的抽样方式不利于抽中低访问频率数据块,影响审计效率。所以,随机抽取挑战数据块所引发的效率问题也是远程外包数据审计机制面临的主要挑战问题。技术实现要素:[0005]有鉴于此,本发明提出一种分布式远程外包数据审计系统及方法,其根据以太坊智能合约和基于按规模大小成比例概率抽样(pps)的特点,提出一个新的公共审计协议,该协议不仅可以实现分布式审计,还可以提高抽中低访问频率数据块的概率,并且能够抵御审计过程中常见的重放攻击、伪造攻击和替代攻击,满足公共审计安全要求。[0006]为了实现上述目的,本发明所采取的技术方案为:[0007]一种分布式远程外包数据审计系统,该系统基于以太坊实现,包括数据所有者、云服务提供商、用户和审计合约;其中:[0008]所述数据所有者使用基于概率比例规模抽样方法的不等概率抽样方法抽取挑战数据块,提高抽中低访问频率数据块概率,其中,在概率比例规模抽样方法的预处理阶段,数据所有者按照数据块的访问频率对其排序,生成包含数据块访问频率和逻辑id的新数据集;当数据所有者准备把外包数据通过互联网传给所述云服务提供商时,首先,数据所有者要对外包数据进行分块处理得到数据块集合,并计算每个数据块的同态可验证签名,计算完成后将数据块集合和同态可验证签名集合发送给云服务提供商;其次,数据所有者会发起一个交易,使用审计周期、挑战数据块数量、云服务提供商地址和数据所有者的公钥作为参数初始化审计合约;[0009]云服务提供商存储数据所有者发送的数据集合,然后按照约定的审计周期定期扫描审计合约,如果发现有新的审计任务,云服务提供商会通知数据所有者使用概率比例规模抽样方法在新数据集中抽取多个数据块id,推送给审计合约,审计合约拿到id后,生成挑战数据,发送给云服务提供商;云服务提供商收到挑战数据后计算聚合证据,并调用合约中的审计算法验证聚合证据;最后,审计结果被写入到区块链中供人们查阅;[0010]当用户想要读取数据所有者的远程外包数据时,必须先获得数据所有者授予的访问权限,然后再与云服务提供商交互获取目标数据;为保证审计的实用性和公平性,数据所有者、云服务提供商和用户都要在审计合约中放置一定数额的保证金,该保证金用于支付服务费用,或惩罚机制中有恶意行为的实体。[0011]一种分布式远程外包数据审计方法,其应用于如上所述的系统,包括以下步骤:[0012]s1.初始化参数:数据所有者选择随机密钥对{ssk,spk}、随机数α和u,这里α∈zp,g和u∈g1,数据所有者的私钥sk={α,ssk},公钥pk={g,u,v,spk},其中v=gα,v∈g2,g1和g2是有素数阶p的两个乘法循环群,g是g1的生成元,e:g1×g1→g2为双线性对映射,zp是小于p的非负整数集合,h(·):{0,1}*→g1是映射到g1上的安全的散列函数,h(·):g1→zp是一次散列函数;[0013]s2.审计预处理:数据所有者把外包给云服务器的数据集m划分为n干个数据块m={mi}i∈[1,n];对数据集预处理,主要分为两部分,第一部分是抽取数据块的id和访问间隔时间,按照访问间隔时间排序,并保持到本地;第二部分是按照数据块的访问间隔时间生成累积表,为概率比例规模抽样方法抽样做准备;数据集预处理完成后,数据所有者使用私钥α计算每个数据块的同态可验证签名:得到m的同态可验证签名集合φ={σi}i∈[1,n];数据所有者向云服务提供商发送数据{m,φ}后,整合审计参数{cspaddr,stortime,audinterval,chalnum,pk},生成交易触发审计合约,初始化合约中数据所有者对象,其中cspaddr为数据所有者远程外包数据服务器的地址,stortime为远程外包数据存储的时间,audinterval为审计周期,根据stortime和audinterval合约可以计算出具体的审计时间点,定期自动审计远程外包数据,chalnum为挑战数据块数量,pk为数据所有者公钥;[0014]s3.初始化审计合约中数据所有者对象:由数据所有者触发,表示合约可以接受并存储保证金;数据所有者发送相关参数和一定数额的电子货币触发该初始化过程;[0015]s4.初始化审计合约中云服务提供商对象:由云服务提供商触发,把云服务提供商发送的保证金存储到相应的对象账户中;[0016]s5.生成审计挑战:分为两部分,第一部分,数据所有者收到云服务提供商发起的审计请求后,使用概率比例规模抽样方法抽样抽取特定数量数据块id,从而生成挑战数据块id集合;第二部分,数据所有者生成挑战数据块id集合后,触发审计合约中的相应方法,根据数据所有者的地址查找审计合约中对应的数据所有者对象,得到其属性值,并检查是当前时间是否为准确的审计时间,触发合约的云服务提供商地址是否为正确的云服务器地址,当前的审计任务状态是否为挂起状态以及随机数种子是否合法,如果以上检查结果均合法,则审计合约使用伪随机数生成器为数据所有者对象生成审计挑战chal={(i,oi)},其中,i表示挑战数据块id,oi表示对应的随机值;[0017]s6.生成聚合证据:云服务提供商收到审计挑战chal={(i,oi)}后,找到审计挑战对应的数据块和同态可验证签名,计算聚合证据;为保证数据块的隐私,云服务提供商选择随机数l∈zp,计算随机数证据rand=wl=(uα)l,rand∈g1,用于破坏数据证据的线性特征,此外,云服务提供商使用(rand,l,oi,mi)计算数据证据μ=∑chaloi·mi+l·h(rand),计算签名证据和哈希证据最后,云服务提供商发送聚合证据触发审计合约完成审计;[0018]s7.审计聚合证据:在定期审计中,判断触发合约的云服务提供商地址是否为数据所有者对象中存储的服务器地址,如果是正确地址,数据所有者对象中的审计任务数量加1,然后利用双线性对性质计算并判断审计等式左右两端是否相等,相等说明审计成功,把数据所有者对象中的当前审计状态改为success,扣除数据所有者账户一定数额的保证金作为存储费用支付给云服务提供商;反之说明云服务提供商没有正确存储远程外包数据,算法把数据所有者对象的当前审计状态改为exception,扣除云服务提供商其账户一定数额的保证金给数据所有者;[0019]在非定期审计中,根据用户地址,得到用户对象u,检查触发合约的云服务提供商地址是否为u想要读取数据的云服务提供商地址,检查u中所存储的授予访问权限的数据所有者地址是否为算法参数中的数据所有者地址;如果以上检查均合法,则审计用户读取的远程外包数据块,审计成功,作为存储和数据费用,会扣除用户中一定数额的保证金支付给云服务提供商和数据所有者,审计失败,扣除云服务提供商一定数额的保证金给u和数据所有者;最后,将审计结果发布到区块链中,实现透明审计;[0020]s8.访问授权:数据所有者使用用户唯一标识符nameuser计算其访问标签tuname=nameuser||ssigssk(nameuser),并将tuname发送给用户和云服务提供商,表示已经授予用户远程外包数据访问权限;[0021]s9.初始化审计合约中用户对象:该对象用于存储用户一定数额的保证金,作为服务费用支付给数据所有者和云服务提供商,或作为惩罚手段防御用户恶意行为;[0022]s10.生成用户关于请求数据的聚合证据:云服务提供商收到用户读取数据所有者远程外包数据请求和对应的挑战信息后,验证用户访问权限,如果验证通过,云服务提供商根据挑战数据计算聚合证据proofu,计算证据的具体过程与步骤(7)相同,并发送proofu触发审计合约中的auditing_smartcon方法审计聚合证据。[0023]进一步的,步骤s2中累积表的生成方式为:[0024]统计每个数据块的访问间隔时间,按照固定步长finterv,将所有访问间隔时间的最小值fmin到最大值fmaz的范围划分为多个分段;对于每个分段,计算其中所有间隔时间的累计和;对于第一个分段,其累积范围是其起始时间到其累积和时间的范围,对于后一个分段,其累积范围是前一分段累积和时间+1到本分段累积和时间的范围;由此,生成包含分段、累积和以及累积范围对应关系的累积表tcum。[0025]进一步的,步骤s5中,使用概率比例规模抽样方法抽样抽取特定数量数据块id的具体方式为:[0026]设定两个正整数n和m,使用概率比例规模抽样方法从累积表tcum中抽取n个分段作为初级抽样样本;然后在关系表中找到这n个分段所对应的所有数据块id,并使用随机抽样方法从这些数据块id中再抽取m个数据块id作为挑战数据块。[0027]进一步的,步骤s7中,数据所有者根据待外包到云服务提供商中的数据集大小、外包时间和审计价格确定存放到合约中的保证金额;云服务提供商根据数据所有者保证金额确定自己存放到合约中的保证金额;用户根据读取远程外包数据数量以及云服务提供商和数据所有者的服务价格确定存放到合约中的保证金额;[0028]云服务提供商发送交易触发合约进行审计时,若审计的是数据所有者远程外包数据集,则如果审计验证成功,那么合约将从数据所有者的保证金中扣除一次的审计费用支付给云服务提供商;[0029]当发起审计的实体为用户u时如果审计验证成功,那么合约将从u的保证金中扣除费用分别支付给云服务提供商和数据所有者;[0030]数据所有者发起动态审计交易时,如果审计成功,那么合约将从数据所有者的保证金中扣除一次的动态审计费用支付给云服务提供商;如果审计验证不成功或者出现其他实体的恶意行为,扣除该实体账户的一定数额保证金给其他无辜实体,扣除保证金数额由其所发起的审计服务价格所决定。[0031]采用上述技术方案所产生的有益效果在于:[0032](1)本发明构建了基于区块链的分布式远程外包数据审计机制。该机制将核心的审计算法写入以太坊智能合约审计数据拥有者的远程外包数据,同时它使用区块链中最新区块的随机值(nonce)、延时函数、bls签名和双线性对技术确保远程外包数据的完整性和隐私性。[0033](2)本发明假设csp会随机删除低访问频率远程外包数据块,并针对该情况使用pps方法抽取挑战数据块,提高抽中低访问频率数据块的概率。机制在初级抽样阶段,选择数据块的访问频率作为辅助信息对数据集分组,提高抽中低访问频率分组的概率;第二抽样阶段,选择初级阶段抽中的分组作为样本,采用随机方法抽取数据块组成挑战集合。机制中挑战数据集能够以较高概率覆盖到低访问频率数据块,提高审计效率。[0034](3)本发明通过智能合约保存do(即数据所有者)、用户和csp(即云服务提供商)的保证金,针对do远程外包数据审计情况,按审计周期动态分期的将do账户中的保证金作为服务费用支付给csp;针对用户授权访问csp存储下do外包数据的情况,按照访问次数将用户账户中的保证金作为服务费用支付给csp和do;针对发起恶意行为的实体,将该实体账户中的保证金作为惩罚费用支付给无辜实体。附图说明[0035]图1是本发明的系统结构示意图;[0036]图2是本发明方法的原理示意图;[0037]图3为同态验证标签时间对比图;[0038]图4为挑战数据生成时间图;[0039]图5为聚合证据时间对比图;[0040]图6为审计时间对比图;[0041]图7为gas花销图;[0042]图8为csp随机删除数据块,随机抽样与pps检测出错误概率对比图;[0043]图9为csp删除do不常用数据块,随机抽样与pps检测出错误概率对比图。具体实施方式[0044]下面结合附图和具体实施方式对本发明作进一步的详细说明。[0045]图1是审计系统的结构示意图,包含四个实体,分别为:[0046]do,即远程外包数据的拥有者,为了解决本地存储空间不足的问题,把数据外包存储到云服务器中;[0047]csp,即云服务器的管理者,拥有足够的计算资源和存储空间存储维护do的远程外包数据;[0048]审计合约,是一个可自动执行的存储在区块链上的计算机程序,部署在以太坊智能合约中,审计csp中的远程外包数据;[0049]用户,是被do授予访问权限的实体,允许付费访问do的远程外包数据,同时也可以付费享受csp所提供的其他数据服务。[0050]所述do使用pps方法抽取挑战数据块,提高抽中低访问频率数据块概率。为支持pps方法,在pps-am的预处理阶段do按照数据块的访问频率对其排序,生成包含数据块访问频率和逻辑id的新数据集。当do准备把外包数据通过互联网传给所述csp时,首先,do要对外包数据进行分块处理得到数据块集合,并计算每个数据块的同态可验证签名,计算完成后将数据块集合和同态可验证签名集合发送给csp;其次,do会发起一个交易,使用审计周期、挑战数据块数量、csp地址和do的公钥等作为参数初始化审计合约。csp存储do发送的数据集合,然后按照约定的审计周期定期扫描审计合约,如果发现有新的审计任务,csp会通知do使用pps方法在新数据集中抽取多个数据块id,推送给审计合约,审计合约拿到id后,生成挑战数据,发送给csp。csp收到后计算聚合证据,并调用合约中的审计算法验证聚合证据。最后,审计结果被写入到区块链中供人们查阅。当所述用户想要读取do的远程外包数据时,它必须先要获得do授予的访问权限,然后再与csp交互获取目标数据。为保证审计的实用性和公平性,do、csp和用户都要在审计合约中放置一定数额的保证金,该保证金既可以支付服务费用,又可作为一种手段惩罚机制中有恶意行为的实体。[0051]威胁模型:在机制中假设csp、do和用户都是“半诚实的”实体。为了某些利益的驱动,csp会删除一些do远程外包数据并发起上文所提到的审计常见攻击;do和用户会否认审计结果,诬陷csp没有合法的存储外包数据或没有提供正确数据,试图不支付或者少支付csp的服务费用。假设审计交易的执行者矿工是“诚实且好奇的”实体,当它们打包审计交易时,会试图通过csp发送的聚合证据计算远程外包数据块内容,泄露do数据。[0052]基于上述系统的审计方法,图2展示了该方法的整个流程,具体包含以下步骤:[0053]s1.setup_do(初始化参数):do选择随机密钥对{ssk,spk}、随机数α和u,这里α∈zp,u∈g1。do的私钥sk={α,ssk},公钥pk={g,u,v,spk},其中v=gα,v∈g2。[0054]s2.auditpara_do(审计预处理):do把外包给云服务器的数据集m划分为n干个数据块m={mi}i∈[1,n]。使用datasetforpps_do算法和cumulativetableforpps_do算法对数据集进行处理,生成累积表,为pps抽样做准备。[0055]随后do使用私钥α计算每个数据块的同态可验证签名:[0056][0057]得到m的同态可验证签名集合:[0058]φ={σi}i∈[1,n][0059]do向csp发送数据{m,φ}后,整合审计参数{cspaddr,stortime,audinterval,chalnum,pk},生成交易触发审计合约,其中cspaddr为do远程外包数据服务器的地址;stortime为远程外包数据存储的时间;audinterval为审计周期,根据stortime和audinterval合约可以计算出具体的审计时间点,定期自动审计远程外包数据;chalnum为挑战数据块数量;pk为do公钥。[0060]s3.doconstructor_smartcon(初始化审计合约中do对象):如算法1所示,是一个payable函数,表示合约可以接受并存储保证金。[0061][0062]do发送相关参数和一定数额的电子货币触发该算法,算法功能是初始化审计合约中do对象,do数据结构如下所示:[0063][0064]s4.cspsetup_smartcon(初始化审计合约中csp对象):如算法2所示,这是一个payable函数。该算法由csp触发,算法功能是把csp发送的保证金存储到相应的对象账户中,其中cspbalances表示csp账户余额。[0065][0066]s5.genchallenge_smartcon(生成审计挑战):如算法3所示,这是审计合约中的函数,由do触发,算法功能是生成审计挑战。do收到csp发起的审计请求后,使用ppsample_do生成挑战数据块id集合,触发合约算法genchallenge_smartcon,算法根据doaddr查找智能合约中对应的do对象,得到其属性值,并检查是当前时间是否为准确的审计时间,触发合约的csp地址是否为正确的云服务器地址,当前的审计任务状态是否为挂起状态以及随机数种子是否合法,如果以上检查结果均合法,合约使用伪随机数生成器为do对象生成审计挑战。[0067][0068][0069]s6.proofgen_csp(生成聚合证据):该算法由csp执行,功能是根据挑战生成聚合证据。csp收到挑战集合chal={(i,oi)}后,找到挑战集合对应的数据块和同态可验证签名,计算聚合证据。为保证数据块的隐私,csp选择随机数l∈zp,计算随机数证据rand∈g1,用于破坏数据证据的线性特征,任何人无法根据数据证据计算得到挑战数据块内容。[0070]rand=wl=(uα)l[0071]csp使用(rand,l,oi,mi)计算数据证据μ:[0072][0073]csp按如下公式分别计算签名证据σ和哈希证据[0074][0075][0076]最后,csp发送聚合证据触发审计合约完成审计。[0077]s7.auditing_smartcon(审计聚合证据):如算法4所示,这是由csp触发的部署在智能合约中用于审计聚合证据的算法。算法使用missionselect参数区分定期审计和非定期审计。在定期审计中,算法判断触发合约的csp地址是否为do对象中存储的服务器地址。如果是正确地址,do对象中的审计任务数量加1,然后利用双线性对性质计算并判断审计等式左右两端是否相等。相等说明审计成功,算法把do对象中的当前审计状态改为success,扣除do账户一定数额的保证金作为存储费用支付给csp;反之说明csp没有正确存储远程外包数据,算法把do对象的当前审计状态改为exception,扣除csp其账户一定数额的保证金给do。[0078][0079][0080]在非定期审计中,算法根据用户地址,得到用户对象u,检查触发合约的csp地址是否为u想要读取数据的csp地址,检查u中所存储的授予访问权限的do地址是否为算法参数中的do地址。如果以上检查均合法,算法审计u读取的远程外包数据块。审计成功,作为存储和数据费用,会扣除u中一定数额的保证金支付给csp和do。审计失败,扣除csp一定数额的保证金给u和do。最后,将合约审计结果发布到区块链中,任何人都可以看到审计流程和结果,实现透明审计。[0081]s8.authorizeuser_do(访问授权):该算法由do执行,功能是授予用户访问权限。do使用用户唯一标识符nameuser计算其访问标签:[0082]tuname=nameuser||ssigssk(nameuser)[0083]并将tuname发送给用户和csp,表示已经授予用户远程外包数据访问权限。[0084]s9.usersetup_smartcon(初始化审计合约中用户对象):如算法5所示,这是一个payable函数,由用户触发,功能是初始化合约中用户对象。[0085][0086]其数据结构如下所示:[0087][0088]该算法的输入是用户要读取数据块标号和对应随机值所组成的挑战、目标do地址和目标csp地址。合约存储用户一定数额的保证金,可作为服务费用支付给do和csp,也可作为惩罚手段防御用户恶意行为。[0089]s10.proofgendo_csp(生成用户关于请求数据的聚合证据):csp收到用户读取do远程外包数据请求和对应的挑战信息后,验证用户访问权限。如果验证通过,csp根据挑战数据计算聚合证据proofu,计算证据的具体过程与算法proofgen_csp相同,并发送proofu触发审计合约中的auditing_smartcon算法审计聚合证据。[0090]数据集预处理包括两个方法,由do执行。第一方法是产生由do远程外包数据访问间隔时间和逻辑id共同组成的数据集mlocal,该数据集作为pps初级抽样的样本保存到本地。输入是do的远程外包数据集m={m1,m2,…,mn},输出是mlocal,具体算法如下:[0091][0092][0093]第二个算法功能是为pps方法生成累积表。输入是最小间隔时间fmin、最大间隔时间fmaz和分段步长,输出是累积表tcum,具体算法如下:[0094][0095]算法7生成的累积表结构如下:[0096][0097][0098]pps抽样方法主要功能是抽取挑战数据块id,算法输入是数据集mlocal,累积表tcum,n和m,输出是包含数据块id的大小为n*m的数据集ichal。在初级抽样阶段,算法使用pps方法从累积表tcum中抽取n个单位作为初级抽样样本;第二抽样阶段,使用随机抽样方法从初级阶段所抽取的n个单位中再抽取m个远程外包数据块id。具体算法如下:[0099][0100]本方法还采用了保证金机制。在该机制中,首先,do根据待外包到csp中的数据集大小、外包时间和审计价格确定存放到合约中的保证金额;csp根据do保证金额确定自己存放到合约中的保证金额;用户根据读取远程外包数据数量以及csp和do的服务价格确定存放到合约中的保证金额。第二,csp发送交易触发合约,合约执行auditing_smartcon算法进行审计;当算法审计的是do远程外包数据集时(missionselect==true),如果审计验证成功,那么合约将从do的保证金中扣除一次的审计费用priceaudit支付给csp;当发起审计的实体为用户u时(missionselect==false),如果审计验证成功,那么合约将从u的保证金中扣除费用pricertocsp和pricertodo分别支付给csp和do。第三,do发起动态审计交易时,如果审计成功,那么合约将从do的保证金中扣除一次的动态审计费用pricedynamic支付给csp。第四,如果审计验证不成功或者出现其他实体的恶意行为,扣除该实体账户的一定数额保证金给其他无辜实体,扣除保证金数额由其所发起的审计服务价格所决定。[0101][0102][0103]以下通过实验评估本发明协议的性能:[0104]实验选择4台计算机搭建系统原型,分别模拟do,云存储服务,以太坊和用户。计算机的性能是intel(r)core(tm)i7-4710hq,频率为2.50ghz处理器、8gbram,操作系统为ubuntu。使用python语言编写do端、用户端和csp端的相应算法,使用solidity语言编写审计合约。实验使用alt_bn128椭圆曲线计算数据块的同态可验证签名,使用sh3-keccak256算法计算数据块的哈希值并构建mht。由于csp生成的聚合证据一部分是群g1中的元素,需要在群g1中运算,另一部分的聚合证据是g2中的元素,不需要运算操作,所以在审计合约中实验引入开源库solcrypto实现群g1上的运算,生成审计等式两端左右的参数。为了在智能合约中执行最后的审计验证,实验调用支持alt_bn128椭圆曲线相关操作的预编译合约,在以太坊虚拟机(evm)的环境下,利用双线性对性质审计远程外包数据块。由于当do远程外包数据块遭受csp破坏的数量不少于其总数的1%时,只需抽取460个挑战数据块,就能够以99.9%的概率审计出csp的恶意行为,所以本实验假设csp破坏1%的远程外包数据,并选择100-600个挑战数据块检测bsc-dam性能。[0105]试验评估中使用不同数据结构的协议3p-pdp和dht-pa与本发明对比。[0106](1)实验评估:数据块同态可验证签名计算成本[0107]图3是计算同态可验证签名所花费的具体时间,这是整个机制中比较消耗计算资源的过程。从图中可以看出,随着数据块的不断增加,计算同态可验证签名的时间线性增长。本发明和3p-pdp计算同态可验证签名算法的计算复杂度基本相同,但是它们要优于dht-pa。[0108](2)实验评估:挑战数据集计算成本[0109]图4是本发明计算挑战数据集的时间,从图中可以看出,随着挑战数据块的增加,生成数据集的时间变化不大,在33毫秒处上下波动。[0110](3)实验评估:聚合证据和审计验证计算成本[0111]图5是计算聚合证据所花费的时间,随着挑战数据块的增加,聚合证据计算时间线性增长。然而本发明计算聚合证据的时间比dht-pa和3p-pdp机制多,主要原因是本发明机制比dht-pa和3p-pdp机制分别增加了计算量pdp机制分别增加了计算量和(cexpg+cmulg)。[0112]图6是审计验证所花费的时间,可以看出机制计算成本都随着挑战数据的增加而线性增长,虽然本发明计算量少,但它花费的时间仍然比另外两个方案多。这是因为将本发明的审计验证算法写入智能合约中,需要一定的配置时间和挖矿时间,但随着审计数据块的增加,差距会逐渐缩小。[0113](4)实验评估:gas消耗[0114]图7是审计数据块的gas消耗。从图中可以看出,审计100-600个数据块,gas从427412增长到494412,但gas没有超过一次交易的限制数量。但是批审计中,由于gas限制的原因,一次交易处理的do数量受到了限制。经过计算,合约中批处理算法可以批量同时处理500个do发起的审计请求,每个请求的挑战数据块数量为460个,所消耗的gas为582717,如果合约想要处理更多数量do的审计请求,就需要将请求拆分成若干个后再触发多个交易实现审计。[0115](5)实验评估:检测csp删除do数据概率[0116]假设do外包到csp的数据集大小为n,k为csp删除的数据块数量,c为挑战数据块的数量,x为离散随机变量,表示检测出csp删除do数据块的恶意行为所需要的挑战数据块数量。px为挑战数据块c中,至少有一个数据块被csp删除的概率,那么可以得到:[0117][0118]由于(n-j-k)/(n-j)≥(n-j-1-k)/(n-j-1),所以可以得出结论:1-((n-j-k)/(n-j))c≤px≤1-((n-j-1-k)/(n-j-1))c。[0119]如果csp在n个数据块中删除k个数据块,那么px表示挑战c个数据块可以检测出csp这种恶意行为的概率。当k一定时,tpa可以通过c个数据块的聚合证据以一定概率审计出csp的恶意行为,这个概率与n无关。例如:如果csp删除总数为1%的数据块,那么tpa只需要300个挑战数据块就能以95%的概率审计出这种恶意行为,或者选择460个数据块以99.9%的概率得到正确的验证结果。假设do有10000个数据块外包到云服务器(n=10000),csp随机删除100个数据块,也就是远程外包数据块总数的1%。[0120]如图8所示,实验采用pps和随机抽样两种方法抽取挑战数据块c。图中横坐标是挑战的数据块数量,纵坐标是抽取的数据中至少包含一个csp恶意删除数据块的概率px。在删除数据块数量一定的情况下,随着挑战数据块的增加,概率px以平缓的速度逐渐增加。当c=100时,随机抽样对应的px为59.8%,pps为60.5%;当c=400时,随机抽样对应的px为97.6%,pps为98.3%;当c=500时,随机抽样和pps的px均为100%。由此可得出结论,在csp随机删除数据块的情况下,使用pps抽取若干挑战数据块计算出px与随机抽样方法抽取同样多的数据块计算得到的px基本相同。[0121]图9是csp删除do低频率远程外包数据块情况下,使用随机抽样与pps方法检测出的错误概率对比,与图8相比,在这个条件下,pps方法检测出的错误概率明显高于随机抽样,尤其在抽取少量数据时它的优势更为明显,当c=100时,pps的px为78%,随机为57%;c=150时,pps与随机抽样的检测错误率分别为0.89%和78%;c=200时,pps与随机抽样的检测错误率增长到97%和88%,随着挑战数据块的不断增加,两者的检测概率逐渐接近,当c=350时,pps的检测错误率达到100%,随机抽样为96%,当在c=500时,随机抽样的检测概率达到100%。从图和这些数据中可以看出,在csp删除do低访问频率的远程外包数据块情况下,pps抽中被恶意删除数据块的概率高于随机抽样方法。[0122]本发明可实现如下功能指标:[0123](1)公共审计:任何有计算经验和计算能力的且被do信任的实体,在没有数据副本的情况下,都可以审计do的远程外包数据。[0124](2)定期自动审计:当到达审计周期时,csp会发起审计请求。[0125](3)分布式审计:智能合约审计远程外包数据,实现分布式审计。[0126](4)存储安全:csp恶意破坏外包数据块后,不能根据这些被破坏的数据块伪造合法的聚合证据。[0127](5)高效性:确保使用较少的挑战数据块达到与普通审计协议相同的正确率。[0128](6)隐私保护:矿工不能通过计算相同数据块的多个聚合证据得到数据块内容,泄露do的外包数据。[0129](7)公平透明:审计过程和审计结果公开,任何一方都无法否认审计结果。[0130]本发明可实现如下安全指标:[0131](1)数据正确性:只有正确的外包数据块和对应的签名才能通过审计,确保do外包数据正确存储csp中。[0132](2)数据隐私保护:在整个审计过程中,矿工无法了解外包数据块的内容。[0133]总之,本发明将核心的审计算法写入以太坊智能合约审计数据拥有者的远程外包数据,同时它使用区块链中最新区块的随机值、延时函数、bls签名和双线性对技术确保远程外包数据的完整性和隐私性。本发明针对csp会随机删除低访问频率远程外包数据块的情况,使用pps方法抽取挑战数据块,提高抽中低访问频率数据块的概率。本发明设计保证金机制,利用智能合约保存do、用户和csp的保证金,实现有偿设计,也能惩罚发起恶意行为的实体。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1