APP下载

基于边缘计算的泛在电力物联网群组密钥管理算法研究

2022-07-25刘清源刘瑞佳王健李晓坤

电测与仪表 2022年7期
关键词:群组密钥编码

刘清源,刘瑞佳,王健,李晓坤

(1.东北林业大学,哈尔滨 150000; 2.黑龙江恒讯科技有限公司国家博士后科研工作站,哈尔滨 150090; 3.复旦大学,上海 200433)

0 引 言

泛在电力物联网解决方案的主要特点是基于事件的通信方式,其中一种方式,即所谓的订阅者方式,是指在某些事件发生时获得通知,并接收这些事件的相关信息[1-3]。另一种通信方式被称为发布者,这种通信方式更倾向于检测事件的发生,它们分析检测到的信息分析事件发生的细节[4-6]。

构建带有事件详细信息的消息,并将此类消息从发布者传递到订阅者的总体行为称为事件通知[7-10]。这需要一个中间件来解决这种通信的基础问题[11]。这种中间件在当前的文献中被称为发布/订阅服务基础模式,它主要包含两种模式,一是直接交付模式,即每个发布者节点向订阅者节点直接发送信息;二是间接交付模式,即负责发送通知的节点从发布者转移到一个或多个特殊节点,该节点在发布者和订阅者之间进行中介[12-13]。

在泛在电力物联网环境中,发布/订阅服务被广泛使用。尽管在实践操作中,不同的使用场景存在这样那样的差异,但所有的解决方案都遵循一种间接的交付的模式,及需要代理信息的特殊物联网节点[14-16]。然而间接交付方法并不适用于泛在电力物联网,本文提出了一种直接交付方法,该方法不将事件通知操作集中在单个节点,而是将它们分发到充当转发者的其他节点中,从而不需要部署任何代理节点,减少了系统开销,提高了系统运行效率[17]。

1 技术介绍

1.1 边缘计算

边缘计算是一项正在兴起的技术,通过把计算、存储、带宽、应用等资源放在网络的边缘侧,以便减小传输延迟和带宽消耗[18-20]。同时,应用开发者和内容提供商可以根据实时的网络信息提供可感知的服务[21-23]。如图1所示,移动终端、物联网等设备为计算敏感型的应用提供了必要的前端处理支撑,例如图像识别、网络游戏等应用,以利用边缘计算的处理能力分担云端工作负荷[24]。

图1 边缘计算架构图Fig.1 Edge computing architecture diagram

1.2 泛在电力物联网

泛在电力物联网技术未来要呈现的是物理互通更紧密,数据维度更多元的、技术更成熟的智慧电力能源系统[25-28]。

泛在电力物联网可以分解为三个方面,及“泛在网络”,“电力网络”和“物联网”。“泛在网络”可以大体理解为是物联网和互联网的结合体,是二者技术结合的产物[29];“电力网络”是指物联网技术的特定应用对象[30];“物联网”是指通过各种信息传感器,实现对物品和过程的智能化感知、识别和管理,使普通物理对象形成网络的相关技术[31]。泛在电力物联网的发展带动了大规模传感器网络的发展[32]。

能源互联网是以电力能源为中心,多种能源协同,消费协同,集中式、分布式协同,大众广泛参与的新型生态化能源系统,主要表现为坚强智能电网与泛在电力物联网深度融合[33-34]。

其中,泛在电力物联网还处于起步阶段,是能源互联网建设的关键一步[35]。泛在电力物联网的建设对提升用户体验、提升电网运营水平、促进新能源消纳和培育新兴业务有明显的积极意义[35-37]。

1.3 群组密钥管理

群组密钥管理是一种高效的群组消息交互模式,其可以降低网络传输代价并能达到较高的可扩展性[38-40]。

大多数多播应用都需要保证群组成员间通信信息的安全性,并限制非群组成员对群组通信内容的访问[41-43]。解决这一问题的通常方法是在群组成员间使用群组外界不知道的群组密钥对通信内容进行加密,在动态物联网环境中,节点经常离开或加入一个网络,或从一个组迁移到另一个组[44-46]。很多群组应用都使用了多播技术,如医疗、交通、农业和工业监控[47-50]。例如医疗场景,如图2所示,一个head节点可以注册多个患者的健康参数采集设备或手机来建立一个组[51-54]。在这种情况下,CH可以从多方获取安全凭据,在任何发送方和接收方之间设置密钥[55-58]。然而该方法需要CH与每个节点都建立链接,密钥分配与派生的效率不高[59-61]。

图2 群组密钥管理架构图Fig.2 Group key management architecture diagram

本文提出了一种基于群组的密钥管理算法,这种算法通过使用基于分组网络的密钥派生算法,减少了系统为组内成员增减而生成新密钥所耗费的资源;密钥的分配是通过一种基于群组密钥管理的密钥分配算法来实现的,因而密钥生成节点无需和所有物联网节点建立通讯链路,从而降低了成本,减少了系统开销。

2 框架设计

为解决前一节提出的密钥分配与派生效率不高等问题,本章提出了一种基于边缘计算的泛在电力物联网群组密钥管理算法,以此提高密钥的分配与派生效率,解决方案可以简单地在图3中说明,算法可大体分为四个组成部分。第一部分是使用基于相同主题的节点群组构建算法,将主题相同的物联网节点聚集在同一分组中;第二部分是通过一种基于安全网络编码的头节点选举算法为每组密钥生成和管理选择合适的头节点;第三部分是通过一种基于群组密钥管理的密钥分配算法来确定节点离开后新的组密钥的分配方案;第四部分是当一个新节点加入分组时或一个节点离开分组时,使用一种基于分组网络的密钥派生算法,确保在不产生密钥派生开销的情况下实现密钥的派生。

图3 组密钥管理算法流程图Fig.3 Flow chart of group key management algorithm

2.1 基于相同主题的节点群组构建算法

本文的算法是根据每个物联网节点的主题,将每个物联网节点分配给至少一个分组,这些分组的成员具有相同的主题,并将分组的大小保持在适当的范围内。

最重要的一点是要确保分组内成员的关系不是相互排斥的,但在给定分组边界上的节点也应该是附近其他分组的成员。在消息传输的过程中,需要使用该分组的密钥解密,然后在通往其他分组物联网节点时,使用下一个分组的密钥重新加密。

如图4所示,一个物联网系统中的整体节点被划分为两个分组,每个分组都有一个合适的密钥。但是,在示例中,ω分组的成员无法解密消息,因为它是用不同的密钥加密的。相反,如果该节点6属于两个分组,它将能够使用ω分组的密钥解密消息,并利用Δ分组的密钥加密信息,以让其节点能够成功的获得信息,算法中符号如表1所示。

图4 分组通信示意图Fig.4 Schematic diagram of packet communication

表1 群组密钥管理算法使用的符号列表Tab.1 List of symbols used by the group key management algorithm

每个节点都拥有一个由其自己的节点id标识的分组数据集,其中包含该节点的主题topic、其分组的标识符node_id,和大小size(大小最初等于1),邻居分组(最初为空,表2第5行)和一个TTL。当一个节点从另一个节点接收到一个分组数据集时,它会递减TTL值,如果它等于或小于0,则丢弃该分组数据集。如果分组数据集内TTL为正,则节点检查它是否来自其邻居。如果分组数据集不是来自邻居节点,则直接结束流程;否则它会根据几个因素进行各种操作。

表2 分组初始化算法流程表Tab.2 Flow table of group initialization algorithm

一方面,如果一个节点对分组数据集中表达的主题topic(表2第13行)不相符,它会选择一个符合该主题的邻居,转发分组数据集并保存分组标识符node_id。

另一方面,如果一个节点符合该主题并且该节点所在分组内节点数量size小于α,并且分组数据集中显示所在分组尚未达到其最大值no_changes,那么该节点将添加到该分组数据集描述的分组中(表2第21行)。

在这两种情况下,节点都会更新相关的信息,并向主题相同的相邻节点发送更新后的分组数据集(表2第26行~29行)。

若分组内节点数量size大于α,节点将检查分组数据集内分组节点数size的大小(表2第34行),如果分组数据集内分组节点数size小于α,则发送分组数据集的节点加入该分组并发送新分组数据集(表2第36行~38行)。

这种群组构建算法的作用是初始化泛在电力物联网系统,例如图5中的节点11,在这种情况下,这些节点向所有邻居发送一条消息。当一个节点收到这样的请求时,它可以通过两种方式进行回复。一方面,如果它属于该主题的分组,例如图5中的节点6,它会回复该分组的详细信息,并将新加入的节点通知给其他人;另一方面,如果它不属于该主题的分组,例如图5中的节点10,它会选择一个对与该主题相符合的邻居节点,并将请求发送给选定的邻居节点。

图5 节点加入请求示意图Fig.5 Schematic diagram of node join request

2.2 基于安全网络编码的头节点选举算法

选举协议的目标是指定一个头节点作为分组内责生成、分发密钥等工作的节点,算法流程如表3所示。

表3 基于安全网络编码的头节点选举算法算法流程表Tab.3 Flow table of head node election algorithm based on secure network coding

假设被选择节点不不存在拜占庭行为,然而,节点仍有可能由于与硬件或软件故障而崩溃,因此选出最合适的分组头节点至关重要。在本文描述的算法中,拥有最高标识的节点将被选举为头节点。具体而言,具有最高活力值A、可用性L和可信任度T的节点被选为其分组中的头节点。因此,本文可以将本文的选举过程建模为一个优化问题,目标函数在一系列约束条件下最大化:

(1)

并且,该目标函数从属于:

(2)

Ai≤θA,Li≤θL,Ti≤θT

(3)

当在分组内某一节点发起选举头节点进程时,该节点将向同一分组的邻居子集发送特定的头节点选举数据集,内容其中包括表示当前分组curr_cluster、主题标识符topic、发送者的节点标识符node_id、对发送者的可用性A、活跃性L和可信任度T、一个随机数,用于区分是否已经接收到消息、以及经过节点的个数(初始设置为1)。

当一个节点收到头节点选举数据集时,基于安全网络编码的头节点选举算法有两种选择方式,如果接收数据集的节点与发送节点主题相符,则节点将数据集保存在本地队列,并检测是否为重复消息(表3第15行),如果为重复消息则将其排除(表3第26行);如果不是重复消息,它将收到的头节点选举数据集转发给随机选择的邻居(表3第18行);并且它回复了一条包含它自己属性的头节点选举数据集(表3第19、20行)。

另一方面,如果接收数据集的节点与发送节点主题不符,它只是在增加数据集中显示的跳数hops后将消息转发给对该主题感兴趣的邻节点(表3第22行、23行)。

在选举头节点选举结束时,节点将所有接收到头节点选举数据集中可用性A、活跃性L和可信任度T的最大值与自己的属性进行比较(表3第29行、30行)。如果节点自身属性值值大于接收到节点属性值,则该节点选举为头节点,否则该节点为普通节点(表3第31行~33行),开始密钥生成和分发(表3第34行)。

2.3 基于群组密钥管理的密钥分配算法

在分组的中选出头节点后,就需要派生密钥并为所在分组中节点分配新的密钥,算法流程如表4所示。

表4 基于群组密钥管理的密钥分配算法流程表Tab.4 Flow table of key distribution algorithm based on group key management

在密钥创建阶段,头节点将采用模指数函数作为单向函数,并随机确定此类函数的参数。设p是一个非常大的素数,g是群Zp的原始元素,因此反向推导出给定的g和:

ga(modp)

(4)

在计算上是不可行的。密钥组由:

K=ga(modp)

(5)

确定,并存储在头节点keyi中。

在密钥分配阶段中,传统的方法是为每个分组成员建立多个安全通道,以安全交付密钥。这样的解决方案需要端到端的安全保障,因为分组头不是直接连接到所有节点,增加了通信延迟且必须检测消息是否丢失。在物联网场景中,头节点只能连接到分组中的一部分节点,并需要依赖它们才能与其他成员联系。在泛在电力物联网中的解决方案被称为网络编码,如图6所示,图6(a)说明了没有网络编码的消息转发的简单情况,而图6(b)显示了网络编码的情况。

图6 网络编码示意图Fig.6 Schematic diagram of network coding

网络编码相对于传统传输方法拥有高效性灵活性等优势,但仍然存在恶意窃听等安全隐患,从而产生了安全网络编码。具体来说,安全网络编码的密钥被分解成n个部分,分别发送到不同的节点,每个节点最多接收到k个部分k<

文中所述的密钥分配方案基于上述安全网络编码算法,具体来说,在同一分组种,头节点和物联网节点的数量等于n,密钥被分成长度为qbits的d-k+1份,其中d≥k,密钥向量由[S1,S2,….,Sd-k+1]组成,其中每个元素都是元素长度固定的qbits,即GF(2q)。然后,构建n*d的范德蒙德矩阵Ψ,其中第i行的Ψi;根据计算的共享Ψi和矩阵,确定对称的d*d矩阵如下:

(6)

SA=Sd-k+1是一个向量,SB=[S1,S2,….,Sd-k],是长度为d-k的向量。ra是一个能随机组合长度为k- 1的向量,Rb和Rc矩阵,大小分别与(k-1) * (k-1)和(d-k)* (k- 1) 并且Rb为是对称矩阵,并且其元素都为随机选择的整数。

每个不是头节点的节点都必须等待接收d个消息,因为范德蒙德矩阵的矩阵需要d个接收到的消息的编码向量,与接收到的消息本身的向量相乘。但中继节点相对于其他节点有一定区别。每个中继节点接收到消息后,必须根据不同分组对收到的消息进行正确的编码,并发送给其他节点(表4第24行)。具体来说,根据接收到的d值{σ1,…,σd}与邻节点的{i1,…,id},它计算以下元素:

(7)

(8)

2.4 基于分组网络的密钥派生算法

当一个新节点加入或离开该分组时,头节点必须生成一个新的密钥,并根据适当的密钥分发协议进行分发。

当一个新的节点加入分组时,之前的所有成员都进行密钥推导,生成一个新的密钥,该密钥不在整个组内分发,只传递给新加入的成员,以降低重新密钥输入的相对成本。

具体来说,可以通过对旧密钥使用单向推导函数f和选择一个非零盐值作为分组标识符Kid,通过计算来获得每个节点上的新密钥,新密钥如下所示:

Knew=f(Kold⊕Kid)

(9)

故通过知道Knew来反向推导获得Kold在计算上一定是不可行的,SHA-1哈希函数因为计算量少且足够安全的特性被用作密钥派生函数。

3 性能评估

文中选择使用符合IEEE 802.15.4协议的短距离射频广播网络和数据速率为250 kbit/s的无线电芯片CC2420作为参考通信设施。在TOSSIM模拟器上运行了解决方案,在模拟中使用了4 MHz微控制器、4 kB的RAM,8通道的10位ADC和一个128 kB的可编程闪存。对从50~300个节点的不同数量的设备进行了多项实验,通过测量完成所提出方案的基本阶段所需的平均时间以及随之而来的能源消耗。

如图7所示,本文用短条形表示利用本文描述算法构建泛在电力物联网群组所需的平均时间,可以发现相对于多安全信道、网络编码等传输方式,本文提出群组密钥管理算法大大缩短了相应时间。

图7 算法平均耗时图Fig.7 Average time consumption graph of the algorithm

如图8所示,本文用短条形表示利用本文描述算法构建泛在电力物联网群组所需的平均能耗,不难发现,相对于聚类、非聚类等密钥管理算法,本文提出的群组密钥管理算法大大降低了建立群组花费的平均能耗。

图8 算法平均能耗图Fig.8 Average power consumption graph of the algorithm

4 结束语

物联网正逐步被用于工业和关键应用,在这些应用中,安全性至关重要。特别是,当使用无线技术时,实现安全通信是非常具有挑战性的,因为它很容易被破坏。机密性的要求通常通过加密来解决,这需要对所采用的密钥进行适当的管理和交换/协议。本文设计并实现了一种使用组密钥保护节点间通信的物联网发布/订阅协议。针对这些网络的超大规模,本文针对事件的特定主题,根据节点的共同主题对其进行聚类,并设计了一种基于安全网络编码的头节点选举和基于群组密钥管理的分布式密钥管理方案。为了避免在新节点加入分组时需要重新键控的开销,本文使用了键派生。从这项工作中,本文了解到,与在事件通知中引入加密和提供空间解耦相比,使用组密钥和分布式密钥管理和节点分组能够降低开销。本文描述的群组密钥管理算法具有高效性和安全性等特点,并且可以降低重密钥的成本。作为未来的工作,文中描述的分组密钥管理算法可以用来解决网络的可伸缩性、匿名性等问题。

猜你喜欢

群组密钥编码
HEVC对偶编码单元划分优化算法
住院病案首页ICD编码质量在DRG付费中的应用
幻中邂逅之金色密钥
幻中邂逅之金色密钥
生活中的编码
群组推荐系统:现状与展望
Android密钥库简析
论纪录片影像中的组合编码运用
一种新的动态批密钥更新算法