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

一种面向智能电网数据的完整性审计方法与流程

2021-11-06 07:07:00 来源:中国专利 TAG:


1.本发明涉及信息安全技术领域,具体涉及一种面向智能电网数据的完整性审计方法。


背景技术:

2.智能电表sm(smart meter)是智能电网sg(smart grid)数据采集的基本设备之一,承担着原始电能数据采集、计量和传输的任务。数据审计作为一种验证智能电表数据完整性的技术,利用数字签名构建一个完整的远程识别系统,以确定远程数据是否与其原始数据相同。
3.为了加速状态估计,从而获得更大的智能电网sg控制灵活性,独立电力系统运营商ieso(independent power system operator)应尽快审核新收集的远程数据。然而,以下问题使得无法实现如此高的效率。首先,sm作为一种资源匮乏的物联网设备,无法承受复杂的加密计算,这使得签名生成时间延长。在这种情况下,由sm直接生成数字签名的方案必然效率极低。如果允许sm让第三方接管其签名计算,虽然每个sm的计算量可以减轻,但随着sm规模的迅速增加,这种集中式签名处理会存在性能瓶颈和单点故障的隐患。此外,第三方的引入还造成了远程数据泄露的风险,这使得怀有恶意的人更容易发现家庭用电行为。其次,sm产生的数据不断增加,会使数字签名数量激增,给签名检索带来困难,进一步延长其访问时间。为了便于检索,现有方案中设计了几种用于签名数量有限的审计场景的索引结构,例如merkle树和hash表,但是面对sg中快速增长的签名,它们将导致较低的检索精度和较高的存储和时间开销。最后,由于数据碎片化,ieso通常允许每个状态估计都涉及云存储中的大量数据块,这将增加审计人员的数据验证次数,从而延长验证时间。为了在某种程度上解决这个问题,基于全局采样的方案可以减少需要验证的数据块的数量,但是它们没有考虑状态估计中的数据重叠问题,这导致对相同数据块的重复审计。
4.另外,现有的数据审计鲁棒性和隐私保护较弱。一方面,sg的开放性使得数据审计系统有可能被老练的黑客无效或瘫痪,另一方面,数据审计系统允许半信任的第三方控制sm的数据,这本身就是一种风险。例如,黑客可以攻击无数僵尸,生成数百万个无用的数据块,从而耗尽资源来瘫痪审计系统,或者将被窃听的签名证据和数据证明伪装成下一个验证输入,从而使审计无效。此外,除了第三方云服务提供商csp(cloud service provider)之外,一些现有的方案,引入了第三方审计者tpa(third party auditor)作为签名生成器,但它们需要是可信的,才能做正确的事情(例如,不泄露sm数据)。


技术实现要素:

5.针对上述现有技术存在的不足,本发明提供一种面向智能电网数据的完整性审计方法。
6.本发明的技术方案为:
7.一种面向智能电网数据的完整性审计方法,其特征在于,该方法包括:
8.步骤1:移动边缘计算服务器mec与智能电表sm的初始化:mec向独立电力系统运营商ieso注册、sm获取ieso的认证和sm选择为其服务的移动边缘计算服务器mec
m

9.所述sm选择为其服务的移动边缘计算服务器mec
m
,指的是在mec完成注册,且sm认证成功后,ieso向具有不同需求的sm推荐其各自所需的mec;
10.步骤2:数据聚合:sm生成数据块并盲化,且将sm的验证令牌标记到已经盲化过的数据块中,sm将标记了验证令牌的盲化后的数据块上传至mec
m
,mec
m
对sm上传的数据进行数据聚合;
11.步骤3:签名生成和数据存储:mec
m
对于接收的每个数据块计算其签名后将数据块转发至云服务器cloud进行存储;当签名达到预设数量时,mec
m
构建签名索引数据结构,将所述签名存储在所述签名索引数据结构中;
12.步骤4:审计挑战:ieso向mec
m
与cloud发起审计挑战;
13.步骤5:数据验证:cloud与mec
m
检索被挑战的数据块的签名证据和数据证明并发送给ieso,ieso验证数据块的完整性;
14.进一步地,根据所述的面向智能电网数据的完整性审计方法,所述mec向独立电力系统运营商ieso注册的方法为:首先由ieso维护的证书颁发机构ca生成一个公钥私钥对{pk
ca
,sk
ca
};然后当某一个移动边缘计算服务器mec
m
试图加入智能电网sg时,mec
m
向证书颁发机构ca发送注册请求其中为mec
m
的ip地址,为mec
m
的编号,为mec
m
的公钥;再然后接收方ca收到mec
m
的注册请求后,分别计算数字证书及证书相应的签名并将它们返回给mec
m

15.进一步地,根据所述的面向智能电网数据的完整性审计方法,所述sm获取ieso的认证的方法包括sm的注册和sm的验证;
16.所述sm的注册为:首先某个智能电表sm
i
向ca发送注册请求其中是sm
i
的ip地址,s1表示中间变量,h(*)表示对*进行哈希加密操作,表示sm
i
的编号,表示异或操作,||表示连接操作,w是sm
i
的登录密码,t1是sm
i
向ca发送请求的时间;假设ca预先知道所有sm
i
的ca收到注册请求后,对于新鲜的消息,ca计算中间变量t2为ca当前计算时间,ca将{s2,t2}返回给sm
i
,sm
i
收到消息后,计算时,sm
i
注册成功;
17.所述sm的验证为:为了使得mec能够验证sm
i
发送的数据块,ca向mec
m
发送
18.其中ρ表示中间变量,其中表示使用mec
m
的公钥对*进行加密,表示使用ca的私钥对*进行签名,s0和r1是随机值;接下来,ca向sm
i
发送其中s3与s4表示中间变量,t3表示当前计算时间;sm
i
在接收到消息后,如果计算并且则sm
i
存储h(s0)和h(r1),其中h(s0)作为原始验证令牌将被携带在每个数据块中,并用于促进mec对sm
i
发送的数据块进行正确验证,h(r1)是致盲因子的加密密钥;且
19.sm和mec同时使用单向散列链来更新验证令牌,每隔一段时间,通过计算一个新的令牌,其中f
a
表示第a次计算的验证令牌,当a=1时,有f1=h(h(s0)),其中f1=h(s0)是原始验证令牌。
20.进一步地,根据所述的面向智能电网数据的完整性审计方法,所述sm选择为其服务的mec的方法包括:
21.步骤i:定义mec
m
的服务属性集msa
m
,对于给定的一个isp,mec
m
服务属性集表示为msa
m
={u1,u2,u3,u4,u5,u6,u7},其中u
c
,c∈[1,7]表示属性集msa
m
中的任一属性,u1表示允许mec
m
的最大计算时间,所述计算时间包括计算签名时间,u2表示mec
m
为sm
i
进行服务的价格,u3表示mec
m
当前允许的最大sm连接数,u4表示mec
m
允许的最大存储开销,u5表示sm
i
到mec
m
的网络延迟,u6表示mec
m
到云服务器cloud的网络延迟,u7表示云服务器cloud到由ieso所维护的审计者auditor的网络延迟;
[0022]
步骤ii:sm
i
对msa
m
中的属性进行归一化处理,并对归一化处理后的属性值按照从大到小排序as
i
=x1≥x2≥...≥x7,其中x
j
,j∈[1,7]表示属性集msa
m
中的归一化后的任一属性。
[0023]
步骤iii:建立多属性决策矩阵,并根据sm
i
需求对属性进行排序;
[0024]
首先给定注册的sm
i
及sm
i
的候选mec服务集得到对应的多属性决策矩阵是其中n表示候选mec服务集中mec的总数;表示sm
i
对mec
m
进行归一化的属性;就每个属性而言,它的权重w
mc
表示sm
i
对它的偏好,然后依据ieso提供的根据sm
i
属性偏好进行的排序
[0025]
bs
i
=y1≥y2≥...≥y7,获得sm
i
的对mec
m
属性偏好的权重排序这里的y
c
,c∈[1,7]表示属性集msa
m
中的任一属性,表示排序后的sm
i
对mec
m
属性的权重;
[0026]
步骤iv:给定一个sm
i
和将sm
i
选择mec
m
问题转化为求sm
i
选择综合评价最高的mec
m
的问题:对于每个集合,sm
i
使用
[0027]
来计算sm
i
对集合中的所有mec
m
的综合评价,sm
i
最终选择综合评价值最高的mec,也就是求max{z
m
},具体表述如下:
[0028][0029][0030][0031][0032][0033]
其中,式(1)为所求对象;式(2)表示mec服务属性;式(3)表示标准化条件;式(4)表示sm
i
对mec
m
属性偏好的权重排序;式(5)列出了与对应的权重变量
[0034]
步骤v:计算属性y
c
的距离系数
[0035]
所述所述表现为属性偏好排序bs
i
中的相邻属性和的在属性值排序as
i
中的重要程度;参照sm
i
对mec
m
的属性值排序as
i
=x1≥x2≥...≥x7和sm
i
属性偏好排序bs
i
=y1≥y2≥...≥y7计算计算<
·
>
num
表示从到在as
i
的属性个数;
[0036]
步骤vi:通过距离系数计算权重利用g1法给定其中,d表示中间计数变量;根据进行归一化处理后得到权重集合
[0037]
步骤vii:sm
i
通过权重集合与属性集合计算sm
i
对mec
m
的综合评价;根据n个mec,计算n次权重集合通过计算得出每个mec
m
的综合评价,sm
i
从中选择综合评价最高的mec
m

[0038]
进一步地,根据所述的面向智能电网数据的完整性审计方法,所述sm生成数据块并盲化且将sm的验证令牌标记到已经盲化过的数据块中的内容为:每隔一段时间,智能电表sm
i
会上传收集到的家庭用电数据至选定的mec
m
,定义为sm
i
在t
j
时间生成的数据块,表示为其中c
e
,e∈[1,6]代表数据类型e的确切值,所述数据类型包括能耗、波动、最大电压、最小电压、有功功率和无功功率;在数据生成阶段,sm
i
首先计算盲化因子其中hmac(*)为密钥相关的哈希运算消息认证码;接下来,将sm
i
的验证令牌标记到已经盲化过的数据块中,得到最终上传至mec
m
的数据块其中∞表示串联运算符,f
a
表示第a次计算的验证令牌,||表示连接操作。
[0039]
进一步地,根据所述的面向智能电网数据的完整性审计方法,所述步骤3包括如下步骤:
[0040]
步骤3.1:结合布隆米尔过滤器和红黑树设计一个两层签名索引数据结构s

index=(x
s
,h
s
,b
s
,t
s
,o
s
),其中x
s
表示已经合并到索引结构中的元素集,在x
s
中,每个元素都表达为x
i
=(sm
i
,t
j
,sig),其中sm
i
代表相关数据块到达mec服务器的sm来源,t
j
代表sm
i
数据块到达mec
m
的时间,sig代表sm
i
对应的签名;h
s
表示可用的哈希函数族;b
s
表示为sm层构造的专用布隆米尔过滤器;t
s
表示签名层中的红黑树rbt的集合,这些集合与每个sm
i
相互对应;o
s
表示对x
s
中的元素的原子操作的集合;所述b
s
定义为一个包括bloom位、rbt指示符、dirty标记、proof值和rbt根的五元素数组,其中每个sm
i
有|h
s
|个独立的哈希函数,并且将x
i
=(sm
i
,t
j
,sig)中对sm
i
的哈希结果存储在bloom位中,每个rbt的位置索引被编码在rbt指示符中,以便将每个sm
i
与rbt
i
相关联,dirty标记指示rbt
i
是否已经被移除,proof值保留sm
i
的副本作为参考,rbt根保存指向t
s
中每个rbt的指针;
[0041]
步骤3.2:对于通过mec
m
的每个数据块mec
m
将使用自己的私钥计算相应的签名
[0042]
步骤3.3:当mec
m
已经接收到预设数量的数据块并且生成了x
s
,isp构建s

index,并在红黑树上存储相应的签名;
[0043]
步骤3.4:将数据块转发至云,云服务器存储数据块
[0044]
进一步地,根据所述的面向智能电网数据的完整性审计方法,所述步骤步骤3.3包括如下步骤:
[0045]
步骤3.3.1:对于x
s
中的所有sm
i
,使用h
s
中的散列函数来计算它们的bloom位,将对应bloom位的值由初始值0置为1,然后构造排序γ,允许任何sm
i
至少在其散列邻居集
[0046]
中与nh(sm
i
)的任一散列位置排他地相关联,nh(sm
i
)表示sm
i
的哈希邻集,hash
o
(sm
i
)表示使用h
s
中的第o个哈希函数对sm
i
进行映射;
[0047]
所述排序γ的构造方法为:首先把x
s
中的所有sm
i
的哈希值通过h
s
中哈希函数映射到索引表中,将bloom位置为1,遍历索引表,找出单键sm
i
;然后把所有能找到的单键压入排序γ,接下来,将索引表中sm
i
对应的|h
s
|位置上的映射关系去除,再次遍历索引表,以查看能否得到新的单键,再把新得到的单键压入排序γ;这样循环往复,直到索引表为空,最终得到排序γ;
[0048]
步骤3.3.2:对于每个x
s
的sm
i
,使用与sm
i
相关的所有sig∈x
s
构建一个红黑树rbt,将所有与sm
i
相关的签名作为rbt
i
中除根节点以外的元素,在rbt根中记录其根节点的指针,并且在proof值的相同索引处记录sm
i

[0049]
步骤3.3.3:根据排序γ,从后往前进行rbt指示符的编码,当轮到sm
i
的时候,使用对rbt指示符进行编码,其中表示每个sm对应rbt的位置索引,e(ξ
i
)表示用于完成sm
i
与rbt
i
的一对一映射关系的哈希函数,∧表示异或操作,root<sm
i
>表示rbt根中sm
i
的数组索引。
[0050]
进一步地,根据所述的面向智能电网数据的完整性审计方法,所述步骤4包括如下步骤:
[0051]
步骤4.1:首先定义状态估计其中se表示待审计块的集合,这些数据块分别存储在不同的mec
m
和cloud上,这些数据块来自存储sm的集合ss里的不同sm
i
与时间集合td里不同时间t
j
;auditor同时向涵盖se的cloud和多个mec
m
发起审计挑战,以审计每个远程块从而保证状态估计se的正确性,
[0052]
步骤4.2:审计数据去重:利用在mec上提出的s

index来完成重复数据消除,以防止那些被多个状态估计se共享的数据块在短时间内被重复审计;
[0053]
步骤4.3:对于给定一定数量的数据块se,抽样审计数据块中是否含有错误的数据块;
[0054]
首先将对错误数据块的最小检测精度解释为采样块集至少包含一个假块的概率,表示为p(x≥1),其中x表示假块的数量,令f
ratio
表示cloud中每个块为假的概率,f
num
=(f
ratio
*|se|)表示假块的总数,则
[0055]
其中c表示组合数学中的组合操作,s
min
为采样所需的最小数据块数;然后推导出则通过auditor预先定义概率p的数值计算出最终要审计的数据块数;在审计质询阶段,对于一个审计组m(se
de

sp
)中的每个块,auditor为其生成一个随机数并发送{m(se
de

sp
),v}至cloud和mec
m
,其中se
de

sp
表示将去重过的数据块se
de
进行抽样后的数据块。
[0056]
进一步地,根据所述的面向智能电网数据的完整性审计方法,所述审计数据去重的方法为:首先对于任何rbt节点对其结构添加两个字段:上一次的检索时间t
last
和上一次的审计结果r
audit
,以识别已经被审计的数据块;在审计质询之前,auditor向存有状态评估数据块se中的所有mec发起预审计请求;给定预定的审计识别时间θ,每个mec
m
搜索s

index以寻找mec
m
保留的审计节点返回检索到的审计节点元数据给auditor,auditor将元数据组成一个审计组m(se
de
),其中se
de
表示已经完成审计数据去重的数据块。
[0057]
进一步地,根据所述的面向智能电网数据的完整性审计方法,所述步骤5包括如下步骤:
[0058]
步骤5.1:首先定义cloud聚合数据证明和和
[0059]
以及定义mec
m
聚合签名证据
[0060]
和用来定位数据块的数据元信息
[0061]
步骤5.2:利用基于bls签名算法的批量验证:给定一个mec
m
,设其中g表示椭圆曲线的生成元。当收到审计质询时,cloud通过
[0062]
和聚合数据证明,同时mec
m
通过聚合签名证据。
[0063]
步骤5.3:当auditor收到cloud返回的聚合数据证明和以及mec
m
返回的agg
sig
后,auditor将构建以下判别式来完成比较:其中e表示bls的双线性映射,μ表示审计方法公开参数,符号表示判别等式两边是否相等。如
果等式成立则证明cloud与mec
m
存储的数据块无误。
[0064]
总体而言,通过本发明所构思的以上技术方案较现有技术具有以下有益效果:本发明提出的面向智能电网数据的完整性审计方法中,引入了一个基于边缘计算的完整性审计的系统模型,其中移动边缘计算mec(mobile edge computing)服务器负责协助sm计算数据签名,以下将mec服务器简称为mec。假设mec已经由连接到每个sm的互联网网关提供,并由互联网服务提供商isp(internet service provider)维护。为了实现高效率,设计了以下策略:一个mec选择算法,以加快签名生成,可以向不同需求的sm推荐合适的高质量的mec;加快签名检索速度的可扩展索引结构,可以在不影响其准确性的情况下提高搜索速度;一种采用重复数据删除、采样和批处理的数据验证方法,可以缩短验证持续时间,而不会影响审核质量。此外,在现实世界的部署中,黑客和csp可能会试图瘫痪或绕过审计系统,半信任的isp会泄露sm的数据隐私。因此,为了实现强大的鲁棒性和隐私保护,本发明方法中设计了安全审计协议。它分别采用了资源受限sm的动态认证来抵御数据泛滥攻击,采用了轻量级的消息致盲方法来保护sm的数据隐私,采用了随机挑战技术来避免审计重放攻击。
附图说明
[0065]
图1为本实施方式面向智能电网数据的完整性审计方法的框架示意图;
[0066]
图2为本实施方式面向智能电网数据的完整性审计方法的具体流程示意图;
[0067]
图3为本实施方式和sm选择为其服务的移动边缘计算服务器的方法流程图;
[0068]
图4为本实施方式签名索引数据结构s

index的结构示意图。
具体实施方式
[0069]
为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0070]
图1是本实施方式面向智能电网数据的完整性审计方法的框架示意图,所述面向智能电网数据的完整性审计方法主要包括5个步骤:初始化、数据聚合、签名生成和数据存储、审计挑战、数据验证。如图1所示,所述面向智能电网数据的完整性审计方法主要涉及五个实体:智能电表sm、移动边缘计算服务器mec、云服务器cloud(cloud server)和审计者auditor,证书颁发机构ca(authentictor)。
[0071]
所述智能电表sm,由ieso维护,是数据生产者。由于资源不足,sm无法支持复杂操作,采集频率也不是很高(每15分钟一次)。
[0072]
所述移动边缘计算服务器mec:由isp提供,用于为sm生成和存储签名。通常,mec由连接每个sm的网关提供。
[0073]
所述云服务器cloud:由第三方云服务提供商csp提供,用于存储所有sm收集的数据,并计算数据证明以应对审计挑战。
[0074]
审计者auditor:由ieso维护,负责发起审计质询,以确保当前状态估计中涵盖的sm数据的完整性。
[0075]
证书颁发机构ca:由ieso维护,是一个可信的数字证书颁发实体,负责mec与sm在
初始化时的一系列操作
[0076]
其中,ieso主要包含两个模块:审计模块和认证模块,分别由审计者auditor和证书颁发机构ca(authentictor)执行。
[0077]
图2是本实施方式的面向智能电网数据的完整性审计方法的流程示意图,如图2所示,所述面向智能电网数据的完整性审计方法包括如下步骤:
[0078]
步骤1:mec与sm的初始化操作。在初始化阶段,分为三个子步骤mec注册、sm认证和sm选择为其服务的mec
m

[0079]
步骤1

1:mec注册。为了达到高效率和鲁棒性,我们采用了数字证书技术来完成mec注册。
[0080]
步骤1
‑1‑
1:证书颁发机构ca生成一个公钥私钥对{pk
ca
,sk
ca
}。
[0081]
步骤1
‑1‑
2:当某一个移动边缘计算服务器mec
m
试图加入sg时,mec
m
向证书颁发机构ca发送注册请求其中为mec
m
的ip地址,为mec
m
的编号,为mec
m
的公钥。
[0082]
步骤1
‑1‑
3:接收方ca收到mec
m
的注册请求后,分别计算数字证书及证书相应的签名然后ca将它们返回给mec
m

[0083]
步骤1

2:sm认证。它包含两个部分:sm注册和sm验证。
[0084]
步骤1
‑2‑
1:sm注册。智能电表sm
i
向ca发送注册请求其中sm
i
表示某一个智能电表sm,是sm
i
的ip地址,s1表示中间变量,h(*)表示对*进行哈希加密操作,表示sm
i
的编号,表示异或操作,||表示连接操作,w是sm
i
的登录密码,t1是sm
i
向ca发送请求的时间。
[0085]
当ca收到请求后,首先会验证接收消息新鲜性,解释为:如果ca的当前接收时间为t,ca预先定义δ为接收时间阈值,当超过阈值时则舍弃该条消息。如果t

t1≤δ,并且证明消息新鲜且消息未被篡改,则ca存储这里ca预先知道所有sm
i
的接着,ca计算中间变量这里t2为ca当前计算时间,ca将{s2,t2}返回给sm
i
。当sm
i
收到消息,计算时,sm
i
注册成功(此时信道中的不再安全)。
[0086]
步骤1
‑2‑
2:sm验证。为了使得mec能够验证sm
i
发送的数据块,ca向mec
m
发送其中ρ表示中间变量,其中表示使用mec
m
的公钥对*进行公钥加密,表示使用ca的私钥对*进行签名,s0和r1是随机值。接下来,ca向sm
i
发送其中s3与s4表示中间变量,t3表示当前计算时间。
[0087]
sm
i
在接收到消息后,如果计算并且则sm
i
存储h(s0)和h(r1),其中h(s0)作为验证令牌将被携带在每个数据块中,并用于促进mec对sm
i
发送
的数据块进行正确验证,h(r1)是致盲因子的加密密钥。
[0088]
此外,为了避免h(s0)被窃听并被进一步遭受攻击,sm和mec同时使用单向散列链来更新验证令牌,其中f1=h(s0)是原始验证令牌。每隔一段时间,通过计算一个新的令牌,其中f
a
表示第a次计算的验证令牌。当a=1时,有f1=h(h(s0))。
[0089]
步骤1

3:sm选择为其服务的mec,主要指在mec完成注册,且sm认证成功后,ieso为向具有不同需求的sm推荐合适的高质量的mec,这种需求体现在:例如,考虑到企业的用电量和波动通常比普通家庭多,对于相应的sm,将选择具有数据传输频率更高的mec。
[0090]
首先,本发明定义mec
m
的服务属性集msa
m
。给定一个isp,mec
m
服务属性集表示为msa
m
={u1,u2,u3,u4,u5,u6,u7},其中u
c
,c∈[1,7]表示属性集msa
m
中的任一属性,u1∈(0,2s)表示允许mec
m
的最大计算时间,这里的计算时间主要包括计算签名时间,u2∈[0,20元/月)表示mec
m
为sm
i
进行服务的价格,u3∈[180, ∞)表示mec
m
当前允许的最大sm连接数,u4∈[64gb, ∞)表示mec
m
允许的最大存储开销,u5∈(0,50ms)表示sm
i
到mec
m
的网络延迟,u6∈(0,50ms)表示mec
m
到云服务器的网络延迟,u7∈(0,50ms)表示云服务器到审计者auditor的网络延迟。如图3所示,步骤1

3包括如下子步骤:
[0091]
步骤1
‑3‑
1:sm
i
对msa
m
中的属性进行规范化。对于sm
i
需求值偏高的正属性u
p
,我们使用实现归一化,其中和分别表示u
p
的最大值和最小值,表示进行归一化之后的属性值;对于sm
i
需求值偏低的负属性u
b
,我们使用来实现归一化。进行归一化处理后,对属性值按照从大到小排序as
i
=x1≥x2≥...≥x7。其中x
j
,j∈[1,7]表示属性集msa
m
中的归一化后的任一属性。
[0092]
步骤1
‑3‑
2:建立多属性决策矩阵,并根据sm
i
需求对属性进行排序。
[0093]
给定注册的sm
i
及sm
i
的候选mec服务集得到对应
[0094]
的多属性决策矩阵是其中n表示候选mec服务集中有n个mec,表示sm
i
对mec
m
进行归一化的属性。就每个属性而言,它的权重w
mc
表示sm
i
对它的偏好。然而,考虑到sm的多样性和需求的复杂性,ieso很难直接准确地确定sm
i
的属性权重值,但是能提供根据sm
i
属性偏好进行的排序bs
i
=y1≥y2≥...≥y7,即也是sm
i
的对mec
m
属性偏好的权重排序这里的y
c
,c∈[1,7]表示属性集msa
m
中的任一属性,表示排序后的sm
i
对mec
m
属性的权重。
[0095]
步骤1
‑3‑
3:列出sm
i
对所有mec
m
的综合评价。对于每个集合,sm
i
使用来计算sm
i
对集合中的所有mec
m
的综合评价,sm
i
最终选择综合评价值最高的mec,也就是求max{z
m
}。
[0096]
给定一个sm
i
和将sm
i
选择mec
m
问题转化为求sm
i
选择综合评价最高的mec
m
的问题,具体表述如下:
[0097][0098][0099][0100][0101][0102]
方程式(1)为所求对象。方程式(2

5)表示约束条件,其中方程式(2)表示mec服务属性。方程式(3)表示标准化条件。方程式(4)表示sm
i
对mec
m
属性偏好的权重排序。方程式(5)列出了与对应的权重变量
[0103]
步骤1
‑3‑
4:计算属性y
c
的距离系数其中其中表现为属性偏好排序bs
i
中的相邻属性和的在属性值排序as
i
中的重要程度。参照sm
i
对mec
m
的属性值排序as
i
=x1≥x2≥...≥x7和sm
i
属性偏好排序bs
i
=y1≥y2≥...≥y7计算算其中表示y
c
对应服务属性集中的属性,<
·
>
num
表示从到
[0104]
在as
i
的属性个数;例如,若与在as
i
中相邻,则若
[0105]
与在as
i
中间隔一个属性,则若无法从到则
[0106]
现举例说明,若sm
i
对mec
m
服务属性集中的属性进行归一化后得到的集合为{0.5,0.7,0.6,0.9,0.8,0.5,0.8},则sm
i
对mec
m
的属性值排序as
i
=u4≥u5≥u7≥u2≥u3≥u1≥u6,
[0107]
假设sm
i
的属性偏好排序为bs
i
=u2≥u4≥u1≥u5≥u6≥u7≥u3,通过计算得到最终的
[0108][0109]
步骤1
‑3‑
5:通过距离系数计算权重我们使用已知的来计算利用g1法给定其中,d表示中间计数变量。有进行归一化处理后得到权重集合
[0110]
步骤1
‑3‑
6:sm
i
通过权重集合与属性集合计算sm
i
对mec
m
的综合评价。因为有n个mec,所以计算n次权重集合通过计算
[0111]
得出最高的综合评价mec
m
,即为sm
i
选择的mec
m

[0112]
步骤2:mec
m
对sm
i
上传的数据进行数据聚合,在上传之前,需要对数据块进行盲化操作和标记验证令牌操作。每隔一段时间,sm
i
会上传收集到的家庭用电数据至选定的mec
m
。首先给出sm
i
搜集的数据块的定义。表示sm
i
在t
j
时间生成的数据块,表示为
其中c
e
,e∈[1,6]代表数据类型e的确切值,一般数据类型包括能耗、波动、最大电压、最小电压、有功功率和无功功率。
[0113]
在数据生成阶段,sm
i
首先计算盲化因子其中
[0114]
hmac(*)为密钥相关的哈希运算消息认证码。接下来,将sm
i
的验证令牌标记到已经盲化过的数据块中,得到最终上传至mec
m
的数据块其中∞表示串联运算符,f
a
表示第a次计算的验证令牌,||表示连接操作。
[0115]
步骤3:签名生成和数据存储,主要分为以下几个步骤,首先对于通过mec
m
的每个数据块mec
m
计算相应的签名当存储预设数量的数据块,mec
m
进行构建两层签名索引数据结构s

index,最后将签名存储在s

index的签名层中。
[0116]
步骤3

1:首先,结合布隆米尔过滤器和红黑树设计一个两层签名索引数据结构s

index,为五元组信息检索结构s

index=(x
s
,h
s
,b
s
,t
s
,o
s
),如图4所示,其中x
s
表示已经合并到索引结构中的元素集,在x
s
中,每个元素都可以表达为x
i
=(sm
i
,t
j
,sig),其中sm
i
代表相关数据块到达mec服务器的sm来源,t
j
代表sm
i
数据块到达mec
m
的时间,sig代表sm
i
对应的签名。布隆米尔过滤器对每一个元素x
i
中的sm
i
,都存储了函数f:sm
i

f(sm
i
),把所有sm
i
对应的f(sm
i
)存储起来的过程称为函数编码。对某个sm
i
检索f(sm
i
)的过程称为查找,查找的过程使用一张有|h
s
|个哈希函数进行索引的表,称之为索引表。h
s
表示可用的哈希函数族,某个元素x
i
中的sm
i
的所有通过h
s
映射出的哈希值集合称为哈希邻集,表示为
[0117]
nh(sm
i
),如果某个sm
i
的一个或者多个哈希值不在任何其它键值的哈希邻集里面,这个键值称为单键。b
s
表示为sm层构造的专用布隆米尔过滤器,t
s
表示签名层中的红黑树(rbt)的集合,这些集合与每个sm
i
相互对应,o
s
表示对x
s
中的元素的原子操作的集合。b
s
可以定义为一个五元素数组(bloom位、rbt指示符、dirty标记、proof值、rbt根),其中每个sm
i
有|h
s
|个独立的哈希函数,并且将x
i
=(sm
i
,t
j
,sig)中对sm
i
的哈希结果存储在bloom位中。每个rbt的位置索引被编码在rbt指示符中,以便将每个sm
i
与rbt
i
相关联,即(sm
i

rbt
i
),dirty标记指示rbt
i
是否已经被移除,proof值保留sm
i
的副本作为参考,rbt根保存指向t
s
中每个rbt的指针。
[0118]
布隆米尔过滤器是布隆过滤器的扩展,布隆过滤器只支持查询某个sm
i
是否存储在布隆过滤器中,布隆米尔过滤器支持任意信息的存储和检索,本发明中主要支持当检索到x
i
存储在b
s
后,过滤器返回x
i
中sm
i
的函数映射,也就是对应sm
i
的rbt
i

[0119]
步骤3

2:对于通过mec
m
的每个数据块mec
m
将使用自己的私钥计算相应的签名
[0120]
步骤3

3:当mec
m
已经接收到预设数量的数据块并且生成了x
s
,isp构建s

index(mec存储s

index),并在红黑树上存储相应的签名。
[0121]
步骤3
‑3‑
1:对于x
s
中的所有sm
i
,使用h
s
中的散列函数来计算它们的bloom位,将对应bloom位的值由初始值0置为1,然后构造一种排序γ,这允许任何sm
i
至少在其散列邻居集
[0122]
中与nh(sm
i
)的任一散列位置排他地相关联,nh(sm
i
)表示sm
i
的哈希邻集,hash
o
(sm
i
)表示使用h
s
中的第o个哈希函数对sm
i
进行映射,在图4中简化为h
o
(sm
i
)。
[0123]
这种排序的构造方式如下,首先,把x
s
中的所有sm
i
的哈希值通过h
s
中哈希函数映射到索引表中,将bloom位置为1,遍历索引表,找出单键sm
i
。把所有能找到的单键压入排序γ,接下来,将索引表中sm
i
对应的|h
s
|位置上的映射关系去除,再次遍历索引表,以查看能否得到新的单键,再把新得到的单键压入排序γ。如此以往,直到索引表为空,最终得到排序γ。
[0124]
下面根据图4,介绍如何构建这种排序γ,首先我们按顺序遍历索引表,找到其中的第一个单键sm1的映射为h0(sm1),将sm1压入排序中,其中h0(sm1)表示用h
s
中(hash集)的h0()对sm1进行哈希加密,h0()代表对应sm1的哈希函数e(ξ1),sm1通过e(ξ1)完成(sm1→
rbt1)的一对一的函数映射,将这种映射表示为(每个sm都有一个唯一的e(ξ1)与之对应,在找单键的时候,找到的那个索引对应的hash就是e(ξ1))。在找到第一个单键后,将所有包含sm1的映射都去除,再次遍历剩余的索引表,得到单键sm0的映射h1(sm0)和单键为sm2的映射h1(sm2),将sm0和sm2压入排序γ,再进行去除操作,如此反复直到所有的sm都被压入γ中,得到γ的排序为{sm1,sm0,sm2,sm3}。
[0125]
步骤3
‑3‑
2:对于每个x
s
的sm
i
,使用与sm
i
相关的所有sig∈x
s
构建一个红黑树rbt,将所有与sm
i
相关的签名作为rbt
i
中除根节点以外的元素,在rbt根中记录其根节点的指针,并且在proof值的相同索引处记录sm
i

[0126]
步骤3
‑3‑
3:根据排序γ,从后往前进行rbt指示符的编码,当轮到sm
i
的时候,使用对rbt指示符进行编码,其中表示每个sm对应rbt的位置索引,e(ξ
i
)表示用于完成(sm
i

rbt
i
)的一对一映射关系的哈希函数,∧表示异或操作,root<sm
i
>表示rbt根中sm
i
的数组索引,也表示为经过e(ξ
i
)映射出的索引表的值。
[0127]
下面根据图4的实施例,介绍如何完成rbt指示符的编码,首先,轮到sm3其中根据h2(sm3)得出
[0128]
e(ξ3)=h2(),root<sm3>=11,h0(sm3)=0,h1(sm3)=0。故
[0129]
将相应rbt指针的位置值置为11,同样的计算
[0130][0131][0132]
接下来介绍o
s
中的原子操作,分别为查找,删除,插入。
[0133]
查找操作:当mec
m
接收到检索的数据验证请求时,isp可以直接调用o
s
中的查找操作,特别是为了提高检索率,s

index支持多请求下的并行搜索。首先,如果bloom位中
bloom[hash
o
(sm
i
)]位置的所有位对于(0≤o≤|h
s
|

1)都等于1,则证明sm
i
存在,执行返回值为真操作给isp,否则返回值为假。接下来,使用确定rbt根中rbt
i
的数组索引和proof值中sm
i
的数组索引,可用于获取rbt
i
的处理程序和验证sm
i
的真实性。最后,以t
j
为线索在rbt
i
中搜索如果查找到则返回否则返回空。
[0134]
根据图4,介绍如何计算root<sm
i
>,若想计算root<sm3>,有
[0135]
h0(sm3)=0,h1(sm3)=0,h2(sm3)=11,
[0136]
则对应索引表中的值11位置。若想计算root<sm2>,有h0(sm2)=0,h1(sm2)=2,h2(sm2)=11,则
[0137]
对应索引表中的值9位置。
[0138]
删除操作:如果sm
i
因服务故障或选择退出sg而离线,isp会执行o
s
中的查找操作。首先如果执行查找操作检测到sm
i
存在,将dirty标记中的dirty[root<sm
i
>]位置设置为1。考虑到sm
i
随时可能恢复执行,为了恢复其数据,此步骤采用了隐藏的方式,而不是实际删除sm
i

[0139]
插入操作:当新的x
i
到达时,isp使用o
s
中的插入操作将x
i
添加到s

index中。对于sm
i
,t
j
∈x
i
,如果执行查找操作得到的返回值为真,且dirty[root<sm
i
>]等于0,直接将插入进rbt
i
,如果执行查找操作得到的返回值为真,且dirty[root<sm
i
>]等于1,除了插入外,还需要将dirty[root<sm
i
>]设置为0。如果sm
i
不存在于bloom位中,同时属于单键,首先标记bloom位,为sm
i
的rbt根建立一个新的rbt
i
,并对rbt指示符进行编码。如果sm
i
∈x
i
不是单独的key,x
i
就不能直接插入s

index。在这种情况下,isp将其临时放置在存储数据库中,当要插入的新元素达到一定数量(作为阈值)时,它会重新创建s

index。
[0140]
步骤3

4:将数据块转发至云,云服务器存储数据块
[0141]
步骤4:auditor向云服务器cloud和mec
m
发起审计挑战。
[0142]
步骤4

1:首先定义状态估计其中se表示需要待审计块的集合,这些数据块分别存储在不同的mec
m
和cloud上,这些数据块来自存储sm的集合ss里的不同sm
i
与时间集合td里不同时间t
j
。为了保证状态估计se的正确性,auditor需要审计每个远程块因此,auditor同时挑战了涵盖se的cloud和多个mec
m

[0143]
步骤4

2:审计数据去重,以防止那些被多个se共享的数据块在短时间内被重复审计。
[0144]
利用在mec上提出的s

index来完成重复数据消除,而不是在auditor上使用专用存储结构。为了识别哪些数据块已经被审计,对于任何rbt节点其结构需要添加两个字段:上一次的检索时间t
last
和上一次的审计结果r
audit
。在审计质询之前,auditor向存有
状态评估数据块se中的所有mec发起预审计请求。给定预定的审计识别时间θ,每个mec
m
[0145]
搜索s

index以寻找mec
m
保留的审计节点
[0146]
返回检索到的审计节点元数据
[0147]
给auditor,auditor将元数据组成一个审计组m(se
de
),其中se
de
表示已经完成审计数据去重的数据块。
[0148]
步骤4

3:抽样审计。在不影响审计质量的情况下,利用抽样技术减少需要验证的数据块数量。为了进一步减少数据验证的工作量,同时仍然实现对错误数据块的高检测精度,通过借助auditor的“采样”能力,因为auditor有权选择哪些数据块可以被验证,所以只分析采样所需的最小数据块数s
min

[0149]
步骤4
‑3‑
1:给定一定数量的数据块se,最终的目的是要审计数据块中是否含有错误的数据块,将对错误数据块的最小检测精度解释为采样块集至少包含一个假块的概率,因此可以表示为p(x≥1),其中x表示假块的数量。让f
ratio
表示cloud中每个块可能为假的概率,f
num
=(f
ratio
*|se|)表示假块的总数。在此基础上,
[0150]
其中c表示组合数学中的组合操作。
[0151]
步骤4
‑3‑
2:我们可以推导出:只要确定了se的检测精度要求,也就是auditor预先定义概率p的大小,我们就可以计算出最终要审计的数据块数。
[0152]
步骤4

4:在审计质询阶段,auditor为m(se
de

sp
)中的每个块生成一个随机数auditor发送{m(se
de

sp
),v}分别至cloud和mec
m
,其中se
de

sp
表示将去重过的数据块se
de
进行抽样后的数据块,m(se
de

sp
)表示为一个审计组。。
[0153]
步骤5:数据验证:cloud与mec
m
将检索挑战的数据块的数据证明和签名证据发送给auditor,auditor验证数据块的完整性。
[0154]
在cloud和mec
m
接收到审计挑战后,作为响应,cloud和mec
m
分别检索与相关的数据证明和签名证据,一旦签名证据和数据证明等参数到达auditor,auditor构建判别式,进一步完成对的验证。
[0155]
步骤5

1:首先定义cloud聚合数据证明和和和以及定义mec
m
聚合签名证据和用来定位数据块的数据元信息
[0156]
步骤5

2:利用基于bls签名算法的批量验证:给定一个mec
m
,设其中g表示椭圆曲线的生成元。当收到审计质询时,cloud通过
[0157]
和聚合数据证明,同时mec
m
通过聚合签名证据。
[0158]
步骤5

3:当auditor收到cloud返回的聚合数据证明和以及mec
m
返回的agg
sig
后,auditor将构建以下判别式来完成比较:其中e表示bls的双线性映射,μ表示审计方法公开参数,符号表示判别等式两边是否相等。如果等式成立则证明cloud与mec
m
存储的数据块无误。
[0159]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献