学术研究

一种安全的集群无线网络环境下密钥协商协议

  • 尹日升 1 ,
  • 刘潇 , 2, * ,
  • 马永柳 1 ,
  • 杜宜宾 1 ,
  • 程庆丰 1
展开
  • 1. 信息工程大学网络空间安全学院,郑州 450001
  • 2. 中电信数智科技有限公司,北京 100035

网络出版日期: 2025-01-25

基金资助

国家自然科学基金(62472438, 62172433);河南省自然科学基金(242300421414)

版权

版权所有©《网络空间安全科学学报》编辑部 2024

A secure key agreement protocol in clustered wireless network environment

  • YIN Risheng 1 ,
  • LIU Xiao , 2, * ,
  • MA Yongliu 1 ,
  • DU Yibin 1 ,
  • CHENG Qingfeng 1
Expand
  • 1. School of Cyber Security, Information Engineering University, Zhengzhou 450001, China
  • 2. China Telecom Digital Intelligence Technology Co., Ltd., Beijing 100035, China

Online published: 2025-01-25

Copyright

Copyright ©2024 Journal of Aeronautical Materials. All rights reserved.

摘要

集群无线网络作为物联网的一种应用领域,通常部署于不安全的环境,容易遭受网络攻击和利用。近年来,随着集群无线网络环境的研究逐渐增多,适用于集群无线网络环境的认证密钥协商协议应运而生。但是由于集群无线网络本身具有能源消耗高、计算复杂、传输效率低等特点,现有的密钥协商协议难以满足上述需求,同时多数协议仍存在一定的安全问题。为了解决上述问题,基于IBAKAS(Identity-Based Authentication and Key Agreement Scheme)协议提出了一种集群无线网络环境下密钥协商协议,并给出了协议的可证明安全、BAN逻辑分析和Scyther形式化分析。此外,将改进后的协议与其他同类型协议进行性能对比。结果表明,新协议不仅安全可行,而且具有高效的计算效率和通信效率,满足了集群无线网络环境的工作要求。

本文引用格式

尹日升 , 刘潇 , 马永柳 , 杜宜宾 , 程庆丰 . 一种安全的集群无线网络环境下密钥协商协议[J]. 网络空间安全科学学报, 2024 , 2(5) : 57 -66 . DOI: 10.20172/j.issn.2097-3136.240505

Abstract

As an application field of the internet of things, clustered wireless networks are usually deployed in insecure environments and are vulnerable to network attacks and exploitation. In recent years, with the increasing research on clustered wireless networks environment, the authentication and key agreement protocol which is suitable for clustered wireless networks environment comes into being. However, due to the inherent characteristics of clustered wireless networks such as high energy consumption, complex computation, and low transmission efficiency, the existing key agreement protocols are difficult to meet the requirements. Moreover, most of these protocols still have certain security issues. To solve the above problems, a key agreement protocol based on the IBAKAS (Identity-Based Authentication and Key Agreement Scheme) protocol in clustered wireless networks was proposed by this article, which provided provable security, BAN logical analysis, and Scyther formal analysis. Additionally, the performance of the improved protocol was compared with other similar protocols. The results show that the new protocol is not only secure and feasible, but also has high computational efficiency and communication efficiency, which meets the working requirements of clustered wireless network environment.

0 引言

集群无线网络通常是指在无线通信中将多个设备组织连接在一起形成的一个集群,广泛应用于物联网、工业自动化、军事通信、车联网等领域,其优点在于如果网络中某一设备出现故障,其他设备可以自动接管任务,从而保证任务的连续性,提高容错率。但是由于集群无线网络需要在多台设备间建立通信,所以需要投入大量的部署成本和维护成本。此外,能源消耗大、传输速率低等[1]也是集群无线网络存在的缺点。
1976年,Diffie等[2]第一次提出了“公钥密码”的概念,解决了在不安全信道上创建共享密钥的问题,标志着公钥密码体制的诞生。1978年,Rivest等[3]在公钥密码体制下提出了著名的RSA(Rivist Shamir Adleman)算法,是目前最广泛使用的公钥密码体制之一,其破译难度等同于大数因子分解的难度。1984年,Shamir[4]提出了基于身份的公钥密码体制,该密码体制将参与方的身份信息作为公钥,减轻了对公钥证书的依赖。2003年,Al-Riyami等[5]提出了无证书密码体制,该体制的安全性基于双线性DH(Diffie-Hellman)困难问题,摆脱了对证书的依赖。自此,许多无证书认证与密钥协商协议被相继提出。
2012年,Liu等[6]提出了一种新的适用于集群无线传感器网络的模型,该模型有效减少了能量消耗并提高了综合性能。2017年,Pazzi等[7]提出了一种延长无线传感器网络寿命的策略,模拟实验证明该方案相比其他方案具有显著优势。Jadidoleslamy[8]针对无线传感器网络中常见的资源有限、能源消耗高等问题,提出了一种分层多路径路由协议,有效降低了能耗和平均数据包速率。同年,Babiker等[9]提出了一种新的高效节能的集群路由协议,进一步改善了能源消耗的问题。2017年,Amjad等[10]提出了一种节能的异构路由协议,解决了延迟敏感、带宽消耗大等问题。2019年,Singh等[11]针对异构和同质无线传感器网络制定了相应的方案,在提高数据传输效率方面取得了较好的效果。2021年,Adnan等[12]设计了一种基于模糊逻辑的多跳传输聚类协议,实现了负载均衡、能耗最小化、网络生命周期延长以及高传输效率。2022年,Mezrag等[13]提出了一种基于身份的集群无线网络环境下认证和密钥IBAKAS(Identity-Based Authentication and Key Agreement Scheme)协议,节省了密钥存储空间。但是该协议存在中间人攻击和密钥泄露伪装攻击的风险。2023年,Kiruba等[14]提出了一种基于TSO(Tiger Swarm Optimization)优化方法的聚类方法,降低了集群形成和传播阶段的能量消耗。2024年,Kim等[15]提出了一种基于位置的密钥分发协议,减少了集群无线网络中的节点部署错误并提高了协议性能。
综上所述,现有的集群无线网络下的协议大多面临资源开销大、传输速率低等问题。为了解决上述问题,本文基于IBAKAS协议设计了一种安全高效的认证与密钥协商eIBAKAS(Enhanced Identity-Based Authentication and Key Agreement Scheme)协议。本文的主要贡献有:
(1)基于IBAKAS协议提出了安全性和运行效率更高的eIBAKAS协议。
(2)给出了eIBAKAS协议的可证明安全、BAN逻辑分析和形式化分析,验证了协议的安全性和可行性。
(3)将eIBAKAS协议与其他相同类型协议的性能进行对比,eIBAKAS协议在计算开销和通信开销方面都具有显著优势。
本文内容安排如下:第1节介绍了集群无线网络协议所涉及的基础知识;第2节介绍了IBAKAS协议的工作流程,并给出了该协议的安全性分析;第3节首先针对IBAKAS协议存在的问题进行改进,其次给出了改进协议eIBAKAS的可证明安全、BAN逻辑分析和形式化分析,最后将eIBAKAS协议与其他同类型的协议进行性能对比;第4节对本文工作进行了简要总结。

1 基础知识

1.1 计算困难问题

为确保敌手难以从已知信息中正确计算出会话密钥,协议设计通常需要考虑引入计算困难问题。

1.1.1 困难性假设

CDH(Computational Diffie-Hellman)假设:对于加法循环群$ G $$ G $上的生成元$ P $,给定$ a \cdot P,b \cdot P \in G $,其中$ a,b $未知,计算$ ab \cdot P $是困难的。

1.1.2 基于哈希函数的困难问题

(1)抗碰撞性攻击:给定哈希函数$ H( \cdot ) $,要求找到$ x \ne x' $,并且满足$ H(x) = H(x') $是困难的。
(2)抗第一原像攻击:给定哈希函数$ H( \cdot ) $和哈希值$ h $,要求找到$ x $满足$ H(x) = h $是困难的。
(3)抗第二原像攻击:给定哈希函数$ H( \cdot ) $和消息$ x $,要求找到另一条消息$ x' \ne x $,并且满足$ H(x) = H(x') $是困难的。

1.2 eCK模型

本小节介绍由LaMacchia等提出的eCK模型[16]。该模型包含一个参与者的集合$ U $、参与者$ {P_i} $与参与者$ {P_j} $之间第$ {\mathrm{sid}} $次会话$\prod _{i,j}^{{\rm{sid}}}$,赋予敌手以下查询能力。
(1)${\mathrm{Long\_Term\_Keyreveal}({P_i})}$查询:敌手通过此查询获得参与方$ {P_i} $的长期私钥。
(2)${\mathrm{Ephemeral\_Term\_Keyreveal}({P_i},\;{\rm{sid}})}$查询:敌手通过此查询获得会话${\rm{sid}}$中参与方$ {P_i} $的临时密钥。
(3)$ {\mathrm{Session\_Keyreveal(sid)}} $查询:敌手通过此查询获得会话${\rm{sid}}$中产生的会话密钥。
(4)${\mathrm{Establish}({P_i})}$查询:敌手通过此查询注册合法参与方$ {P_i} $,即敌手完全控制了$ {P_i} $
(5)${\mathrm{Send(sid,\;}m)}$查询:敌手通过此查询对标识为$ {\rm{sid}} $的会话发送消息$ m $
(6)$ {\mathrm{Test(sid)}} $查询:敌手模拟随机投掷硬币,预言机根据投币结果做出相应的回答。若投币结果$ b = 1 $,则返回会话${\rm{sid}}$的会话密钥;若投币结果$ b = 0 $,则返回一个与会话密钥同分布的随机值。只允许敌手进行一次$ {\text{Test(sid)}} $查询。最终敌手需要输出一个值$ b' $,如果$ b = b' $,则敌手赢得了游戏。
定义1 若某次会话$ \prod _{i,j}^{{\rm{sid}}} $发出的消息都被传送到会话$ \prod _{j,i}^{{\rm{si{d}}^*}} $,并且$ \prod _{j,i}^{{\rm{si{d}}^*}} $的应答也被传回到会话$ \prod _{j,i}^{{\rm{si{d}}^*}} $,则称这两个会话互为匹配会话。
定义2 若某次会话$ \prod _{i,j}^{{\rm{sid}}} $同时不满足以下几种情况,则称该会话为新鲜的:
(1)敌手对会话$ \prod _{i,j}^{{\rm{sid}}} $或匹配会话$ \prod _{j,i}^{{\rm{sid}}} $(若存在)进行了$ {\mathrm{Session\_Keyreveal({\rm{sid}})}} $查询。
(2)敌手对会话$ \prod _{i,j}^{{\rm{sid}}} $或匹配会话$ \prod _{j,i}^{{\rm{sid}}} $(若存在)进行了$ {\mathrm{Long\_Term\_Keyreveal}} $$ ({P_i}) $查询和$ {\mathrm{Ephemeral}}\_{\mathrm{Term}}\_ {\mathrm{Keyre}} $${{{\rm{veal}}({P_i},\;{\rm{sid}})}}$查询。
(3)若会话$\prod _{i,j}^{{\rm{sid}}}$的匹配会话$\prod _{j,i}^{{\rm{sid}}}$不存在,敌手对会话$\prod _{i,j}^{{\rm{sid}}}$进行$ {\mathrm{Long\_Term\_}} $${\mathrm{Keyreveal}({P_j})}$查询,或者同时进行${{{\rm{Ephemeral}}\_{\rm{Term}}\_{\rm{Keyreveal}}({P_i},\;{\rm{sid}})}}$${\mathrm{Long}}\_ {\mathrm{Term}}\_ {\mathrm{Keyreveal}({P_i})}$查询。
定义3 敌手获胜的优势可定义为$ {\rm{Adv}} $$ = \left| \Pr [b = b'] - {1 \mathord{\left/ {\vphantom {1 2}} \right. } 2} \right| $。如果$ {\rm{Adv}} $在多项式时间计算上是可忽略的,则称协议在eCK模型下是安全的。

2 IBAKAS协议

IBAKAS协议是由Mezrag等[13]提出、应用于集群无线网络的轻量级协议。协议分为初始化阶段、注册阶段和认证与密钥协商阶段。

2.1 IBAKAS协议描述

2.1.1 初始化阶段

基站首先选择安全参数$ k $,确定素数阶为$ q $的循环群$ G $与其生成元$ P $,并选择一个随机数$ x \in Z_q^* $作为系统私钥。然后,计算对应的系统公钥$ {P_{{\text{pub}}}} = x \cdot P $。最后,选择三个密码特性良好的哈希函数$ {H_0}: {\{ 0,1\} ^*} \times G \to Z_q^* $$ {H_1}:{\{ 0,1\} ^*}\times {G^2} \to Z_q^*\text{、}{H_2}:{\{ 0,1\} ^*} \times {\{ 0,1\} ^*} \times $$ {G^3} \to {\{ 0,1\} ^k} $。基站在系统中公开参数$ \{ {F_q},G, $$ P,{P_{{\text{pub}}}}, {H_0},{H_1}, {H_2}\} $,并保存系统私钥$ x $

2.1.2 注册阶段

节点向基站发送自己的身份信息${\text{I}}{{\text{D}}_{{i}}}$。当基站收到消息${\text{I}}{{\text{D}}_{{i}}}$后,选择一个随机数$ {r_i} $,并计算${R_i} \;=\; {r_i} \cdot P,\;{W_i} = {R_i} + {H_0}({\text{I}}{{\text{D}}_{{i}}}||{R_i}) \;\cdot\; {P_{{\text{pub}}}}$${d_i}\; = \; ({r_i} \; + \; {H_0} ({\text{I}}{{\text{D}}_{{i}}}||{R_i})x) (\text{mod} q)$。基站将消息$ \{ {R_i},{d_i},{W_i}\} $发送给节点,节点可以通过验证等式$ {W_i} = {d_i} \cdot P $是否成立,来验证公私钥是否匹配。

2.1.3 认证与密钥协商阶段

本小节给出了IBAKAS协议认证与密钥协商阶段的流程。
(1)节点$ A $选择一个随机数$ {y_A} \in Z_q^* $作为其临时密钥,并计算$ {T_A} = {({y_A} + {d_A})^2} \cdot P $,然后将消息$ {M_1} = ({\text{I}}{{\text{D}}_A},{T_A},{W_A}) $发送给节点$ B $
(2)节点$ B $收到消息$ {M_1} = ({\text{I}}{{\text{D}}_A}, $$ {T_A},{W_A}) $后,选择一个随机数$ {y_B} \in Z_q^* $作为临时密钥,并计算$ {T_B} = {({y_B} + {d_B})^2} \cdot P,{\sigma _B} = $$ {H_1}({\text{I}}{{\text{D}}_B}||{T_B}||{d_B}{W_A}) $,然后将消息${M_2} =$$({\text{I}}{{\text{D}}_B}, {T_B},{W_B},{\sigma _B})$发给节点$ A $
(3)节点$ A $收到消息$ {M_2} = $$ {\text{(I}}{{\text{D}}_B},{T_B},{W_B},{\sigma _B}) $后,计算$ {\sigma '_B} = {H_1}({\text{I}}{{\text{D}}_B}|| $$ {T_B}||{d_B}{W_A}) $,并验证等式$ {\sigma _B} = {\sigma '_B} $是否成立。若等式不成立,则结束会话;否则计算会话密钥$ {\text{sk}} = {H_2}({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T_A}||{T_B}||{K_A}) $,其中$ {K_A} = {({y_A} + {d_A})^2} \cdot {T_B} $。然后节点$ A $计算$ {\sigma _A} = {H_1}({\text{I}}{{\text{D}}_A}||{T_A}||{d_A}{W_B}) $,并将$ {\sigma _A} $发给节点$ B $
(4)节点$ B $收到$ {\sigma _A} $后,计算${\sigma '_A} = {{{H}}_1} ({\text{I}}{{\text{D}}_A} ||{T_A}|| {d_B}{W_A})$,验证等式$ {\sigma _A} = {\sigma '_A} $是否成立。若等式不成立,则结束会话;否则计算$ {\text{sk}} = {H_2}({\text{I}}{{\text{D}}_A} ||{\text{I}}{{\text{D}}_B} ||{T_A}|| {T_B}||{K_B}) $,其中$ {K_B} = {({y_B} + {d_B})^2} \cdot {T_A} $

2.2 IBAKAS协议安全性分析

本小节给出了IBAKAS协议的安全性分析。
(1)IBAKAS协议无法抵抗中间人攻击,攻击步骤如下。
步骤1:节点$ A $选择一个随机数$ {y_A} \in Z_q^* $作为临时密钥,并计算$ {T_A} = {({y_A} + {d_A})^2} \cdot P $,然后将消息$ {M_1} = ({\text{I}}{{\text{D}}_A},{T_A},{W_A}) $发送给节点$ B $
步骤2:敌手截获$ {M_1} = ({\text{I}}{{\text{D}}_A},{T_A},{W_A}) $,并构造$ {d'_A},{W'_A} $和临时公私钥对$ {y'_A},{T'_A} $。修改消息$ {M_1} = ({\text{I}}{{\text{D}}_A}, {T_A},{W_A}) $$ M_1^* = ({\text{I}}{{\text{D}}_A},{T'_A},{W'_A}) $,并将消息$ M_1^* = ({\text{I}}{{\text{D}}_A},{T'_A}, {W'_A}) $发送给节点$ B $
步骤3:节点$ B $收到$ M_1^* = ({\text{I}}{{\text{D}}_A},{T'_A},{W'_A}) $后,选择一个随机数$ {y_B} \in Z_q^* $作为其临时密钥,并计算$ {T_B} = ({y_B} + {d_B})^2 \cdot P $$ \sigma _B^* = {H_1}( $$ {\text{I}}{{\text{D}}_B}||{T_B}||{d_B}{W'_A}) $,然后将消息$ M_2^* = ({\text{I}}{{\text{D}}_B}, $$ {T_B},{W_B},\sigma _B^*) $发送给节点$ A $
步骤4:敌手截取消息$ M_2^* = ({\text{I}}{{\text{D}}_B},{T_B}, $$ {W_B},\sigma _B^*) $,并构造$ {d'_B},{W'_B} $和临时公私钥对$ {y'_B},{T'_B} $。然后计算$ {\sigma '_B} = {H_1}({\text{I}}{{\text{D}}_B}||{T'_B}||{d'_B}{W_A}) $,修改消息$ M_2^* = ({\text{I}}{{\text{D}}_B},{T_B},{W_B}, \sigma _B^*) $$ {M'_2} = ( $$ {\text{I}}{{\text{D}}_B},{T'_B},{W'_B},{\sigma '_B}) $,并发送给节点$ A $
步骤5:节点$ A $收到消息$ {M'_2} = ({\text{I}}{{\text{D}}_B}, $$ {T'_B},{W'_B},{\sigma '_B}) $,计算$ {\sigma ''_B} = {H_1}({\text{I}}{{\text{D}}_B}||{T'_B}||{d_A}{W'_B}) $。由于等式$ {\sigma '_B} = {\sigma ''_B} $成立,敌手能够通过节点$ A $的认证,且可以计算与节点$ A $之间的会话密钥$ {\text{s}}{{\text{k}}_A} = {H_2}({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T_A}||{T'_B}||{K'_A}) $,其中$ {K'_A} = {({y'_B} + {d'_B})^2} \cdot {T_A} $。然后节点$ A $计算$ \sigma _A^* = $$ {H_1}({\text{I}}{{\text{D}}_A}||{T_A}||{d_A} {W'_B}) $,并发送给节点$ B $
步骤6:敌手截取消息$ \sigma _A^* = {H_1}({\text{I}}{{\text{D}}_A} $$ ||{T_A}||{d_A}{W'_B}) $,修改消息$ \sigma _A^* = {H_1}({\text{I}}{{\text{D}}_A}||{T_A}|| $$ {d_A}{W'_B}) $$ {\sigma '_A} = {H_1}({\text{I}}{{\text{D}}_A}||{T'_A}|| {d'_A}{W_B}) $,并发送给节点$ B $
步骤7:节点$ B $收到消息$ {\sigma '_A} = {H_1}({\text{I}}{{\text{D}}_A} $$ ||{T'_A}||{d'_A}{W_B}) $后,计算$ {\sigma ''_A} = {H_1}({\text{I}}{{\text{D}}_A}||{T'_A}||{d_B} $$ {W'_A}) $。由于等式$ {\sigma '_A} = {\sigma ''_A} $成立,敌手能够通过节点$ B $的认证,且可以计算与节点$ B $之间的会话密钥$ {\text{s}}{{\text{k}}_B} = {H_2}({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T'_A}||{T_B}||{K'_B}) $,其中$ {K'_B} = {({y'_A} + {d'_A})^2} \cdot {T_B} $
(2)IBAKAS协议无法抵抗密钥泄露伪装攻击。假设敌手已知节点$ A $的长期私钥$ {d_A} $,伪装节点$ B $与节点$ A $建立通信,具体攻击步骤如下。
步骤1:敌手截获节点$ A $发送的消息$ {M_1} = ({\text{I}}{{\text{D}}_A},{T_A},{W_A}) $,构造$ {y'_B},{d'_B},{W'_B} $,并计算$ {T'_B} = {({y'_B} + {d'_B})^2} \cdot P,{\sigma '_B} = {H_1}({\text{I}}{{\text{D}}_B}||{T'_B}||{d_A}{W'_B}) $。然后将消息$ {M'_2} = ({\text{I}}{{\text{D}}_B}, {T'_B}, {W'_B},{\sigma '_B}) $发送给节点$ A $
步骤2:节点$ A $收到消息$ {M'_2} = $ $ ({\text{I}}{{\text{D}}_B},{T'_B},{W'_B},{\sigma '_B}) $后,计算$ {\sigma ''_B} = {H_1}({\text{I}}{{\text{D}}_B}||{T'_B}|| $$ {d_A}{W'_B}) $。由于等式$ {\sigma '_B} = {\sigma ''_B} $成立,敌手能够通过节点$ A $的认证。然后节点$ A $计算会话密钥$ {\text{sk}} = {{{H}}_2}({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T_A}||{T'_B}||{K'_A}) $,其中$ {K_A} = $$ {({y_A} + {d_A})^2} \cdot {T'_B} $,并将$ {\sigma _A} = {H_1}({\text{I}}{{\text{D}}_A}||{T_A}||{d_A}{W'_B} $$ ) $发送给敌手。
步骤3:敌手验证节点$ A $的身份后,计算会话密钥$ {\text{sk}} = {{{H}}_2}({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T_A}||{T'_B}||{K'_B}) $,其中$ {K'_B} = ({y'_B} + {d'_B})^2 \cdot {T_A} $

3 eIBAKAS协议

本节在IBAKAS协议的基础上提出一种新的认证与密钥协商协议eIBAKAS,以改进其存在的不足之处。

3.1 eIBAKAS协议描述

3.1.1 初始化阶段

基站首先选择安全参数$ k $,确定素数阶为$ q $的循环群$ G $与其生成元$ P $,并选择一个随机数$ x \in Z_q^* $作为系统私钥。然后,计算对应的系统公钥$ {P_{{\text{pub}}}} = x \cdot P $。最后,选择三个密码特性良好的哈希函数$ {H_0}: \{ 0, 1\} ^* \times G \to Z_q^* $$ {H_1}:{\{ 0,1\} ^*} \times {G^2} \to Z_q^*\text{、}{H_2}:{\{ 0,1\} ^*} \times {\{ 0,1\} ^*} \times $$ {G^3} \to {\{ 0,1\} ^k} $。基站在系统中公开参数$ \{ {F_q},G, $$ P,{P_{{\text{pub}}}}, {H_0},{H_1},{H_2}\} $,并保存系统私钥$ x $

3.1.2 注册阶段

本小节给出了eIBAKAS协议注册阶段的流程。
(1)节点向基站发送自己的身份信息$ {\text{I}}{{\text{D}}_i} $
(2)基站收到身份信息$ {\text{I}}{{\text{D}}_i} $后,选择一个随机数$ {r_i} $,并计算长期公钥$ {W_i} = {r_i} \cdot P $和长期私钥$ {d_i} = ({r_i} + {H_0}({\text{I}}{{\text{D}}_i}||{W_i})x)(\text{mod} q) $,然后将消息$ \{ {d_i},{W_i}\} $发送给节点。
(3)节点收到消息$ \{ {d_i},{W_i}\} $后,验证等式$ {d_i} \cdot P = {W_i} + {H_0}({\text{I}}{{\text{D}}_i}||{W_i}) \cdot {P_{{\text{pub}}}}(\text{mod} q) $是否成立。如果等式成立,则取$ \{ {d_i},{s_i}\} $作为节点的长期私钥,$ \{ {W_i},{S_i}\} $作为节点的长期公钥公开。注册阶段如图1所示。
图 1 eIBAKAS协议注册阶段

Fig.1 Registration stage of eIBAKAS protocol

3.1.3 认证与密钥协商阶段

本小节介绍了eIBAKAS协议认证与密钥协商阶段的流程。
(1)节点$ A $首先获取当前时间戳$ {\mathrm{T}}{{\mathrm{S}}_1} $,选取随机数$ {t_A},{y_A} \in Z_q^* $作为临时密钥,并计算$ {T_{{A_1}}} = {t_A} \cdot P\text{、} {T_{{A_2}}} = {({y_A} + {d_A})^2} \cdot P $。同时,查询节点$ B $的长期公钥$ \{ {W_B},{S_B}\} $,并计算$ {Q_A} = ({t_A} + {s_A}){({y_A} + {d_A})^{ - 2}}\text{mod} q $。然后节点$ A $将消息$ {M_1} = \{ {\text{I}}{{\text{D}}_A},{T_{{A_1}}},{T_{{A_2}}},T{S_1}, $$ \;{Q_A}\} $发送给节点$ B $
(2)节点$ B $收到消息$ {M_1} = \{ {\text{I}}{{\text{D}}_A}, {T_{{A_1}}}, {T_{{A_2}}}, $$ {\mathrm{T}}{{\mathrm{S}}_1},{Q_A}\} $后,首先查看时间戳$ {\mathrm{T}}{{\mathrm{S}}_1} $是否新鲜,并查询节点$ A $的长期公钥$ {S_A} $,判断等式$ {Q_A} \cdot {T_{{A_2}}} = {T_{{A_1}}} + {S_A} $是否成立。如果等式不成立,则结束会话;否则节点$ B $获取当前时间戳$ {\mathrm{T}}{{\mathrm{S}}_2} $,选择一个随机数$ {y_B} \in Z_q^* $作为其临时密钥,并计算$ {T_B} = {({y_B} + {d_B})^2} \cdot P(\text{mod} q) $和会话密钥$ {\text{s}}{{\text{k}}_B} = {H_1} ({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T_{{A_2}}}||{T_B}||{K_B}) $,其中$ {K_B} = {({y_B} + {d_B})^2} \cdot {T_{{A_2}}} $。然后节点$ B $计算认证消息$ {R_B} = {H_2}({\text{I}}{{\text{D}}_B}||{\mathrm{T}}{{\mathrm{S}}_2}||{\mathrm{s}}{{\mathrm{k}}_B}) \cdot $$ {s_B} $,并将消息发送给节点$ A $
(3)节点$ A $收到$ {M_2} = \{ {\text{I}}{{\text{D}}_B},{T_B},{\mathrm{T}}{{\mathrm{S}}_2},{R_B}\} $后,首先查看时间戳$ {\mathrm{T}}{{\mathrm{S}}_2} $是否新鲜,然后计算会话密钥$ {\text{s}}{{\text{k}}_A} = {H_1}({\text{I}}{{\text{D}}_A}||{\text{I}}{{\text{D}}_B}||{T_{{A_2}}}|| $$ {T_B}||{K_A}) $,其中$ {K_A} = {({y_A} + {d_A})^2} \cdot {T_B} $,验证等式$ {R_B} \cdot P = {H_2}({\text{I}}{{\text{D}}_B}||{\mathrm{T}}{{\mathrm{S}}_2}||{\text{s}}{{\text{k}}_A}) \cdot {S_B} $是否成立。如果等式不成立,则结束会话;否则节点$ A $与节点$ B $成功建立会话,并共享了会话密钥。协议的认证与密钥协商阶段如图2所示。
图 2 eIBAKAS协议认证与密钥协商阶段

Fig.2 Authentication and key agreement stage of eIBAKAS protocol

3.2 可证明安全

本小节给出了eIBAKAS协议在eCK模型下的安全性证明。
定理1 如果CDH假设在群$ G $上成立,$ {H_0},{H_1},{H_2} $被模拟为随机预言机,那么eIBAKAS协议在eCK模型下是安全的。
证明 考虑证明定理1的逆否命题:如果敌手能够以不可忽略的优势得到eIBAKAS协议的会话密钥,那么CDH假设在群$ G $上是不成立的。
首先假设$ k $是会话密钥的长度,敌手与$ n(k) $个诚实用户通信,建立了$ s(k) $个会话。由于会话密钥由哈希函数$ {H_1} $计算所得,且$ {H_1} $是模拟的随机预言机,所以敌手获得会话密钥的方式只有以下三种:
(1)敌手通过猜测获取正确的会话密钥。
(2)敌手通过构造一个新的与正确会话密钥相同的会话$ {\text{sid}} $,再通过eCK模型赋予的$ \text{Session}\_ {\mathrm{{Keyreveal(sid)}}} $查询能力获取正确的会话密钥。
(3)敌手通过攻击手段找到生成正确会话密钥的秘密值,并对$ {H_1} $进行查询获得会话密钥。
第一种方法成功的概率为$ O(1/{2^k}) $,可以不予考虑;第二种方法成功的概率为$ O(s{(k)^2}/{2^k}) $,也可以不予考虑;第三种方法分为以下两种情况:
情况1:测试会话存在匹配会话。
情况2:测试会话对应的匹配会话不存在。
如果敌手能够以不可忽略的优势赢得游戏,可以构造算法$ S $以不可忽略的优势解决CDH问题。算法$ S $首先选择$ {P_0} $作为系统公钥,并给定$ M = m \cdot P, N = n \cdot P $,其中$ m,n $$ \in {Z_q} $,然后将系统参数$ \{ G,q,{P_0},{H_0}, {H_1},{H_2}\} $发送给$ A $
情况1可以根据敌手的查询情况分为以下4个子情况:
情况1.1:敌手对测试会话的发起者和响应者进行了$ {\mathrm{Ephemeral\_Term\_Keyreveal}({P_i},} $$ {\mathrm{sid)}} $查询。
情况1.2:敌手对测试会话的发起者和响应者分别进行了$ {\mathrm{Long\_Term\_Keyreveal}({P_i})} $查询和$ \mathrm{Ephemeral}\_ {\mathrm{Term}}\_ {\mathrm{{Keyreveal}}({P_i},{\mathrm{sid}})} $查询。
情况1.3:敌手对测试会话的发起者和响应者分别进行了${\mathrm{ Ephemeral\_Term\_Keyreve}} $$ al({P_i},\;{\mathrm{sid}}) $查询和$ {\mathrm{Long}}\_ {\mathrm{Term\_Keyreveal}} $$ ({P_i}) $查询。
情况1.4:敌手对测试会话的发起者和响应者进行了$ {\mathrm{Long\_Term\_Keyreveal}}({P_i}) $查询。
在情况1.1中,敌手至少能以$ {1 \mathord{/ {\vphantom {1 {n{{(k)}^2}s(k)}}} } {n{{(k)}^2}s(k)}} $的概率猜测到正确的会话密钥。对于参与者$ A $$ B $,算法$ S $选择随机数$ h_0^A,h_0^B,{s_A},{s_B} \in {Z_q} $,计算$ {W_A} = M + h_0^A \cdot {P_0}\text{、} {W_B} $$ = N + h_0^B \cdot {P_0}\text{、}{S_A} = {s_A} \cdot P\text{、}{S_B} = {s_B} \cdot P $。对于剩余$ n(k) - 2 $个参与者,算法$ S $选择随机数$ h_0^i,{r_i},{s_i} \in {Z_q} $,计算$ {W_i} = {r_i} \cdot P + h_0^i \cdot {P_0}\text{、}{S_i} = {s_i} \cdot $$ P $。若$ H_0^{{\mathrm{list}}} $已存在$ ({\text{I}}{{\text{D}}_i}, {W_i},h_0^i) $,则算法$ S $放弃模拟;否则将$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $存入$ H_0^{{\mathrm{list}}} $。算法$ S $模拟eIBAKAS协议的运行环境如下:当敌手查询除$ A $$ B $以外的参与者时,算法$ S $按已有能力如实回答;当敌手对参与者$ A $$ B $进行查询时,算法$ S $向敌手返回如下内容。
(1)预言机$ {H_0} $的模拟:当敌手发起$ {H_0} $查询时,如果$ H_0^{{\mathrm{list}}} $中已存在$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $,那么返回$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $;否则随机生成$ h_0^j \in {Z_q} $,返回$ h_0^j $。并将$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $添入$ H_0^{{\mathrm{list}}} $中。
(2)预言机$ {H_1} $的模拟:当敌手发起$ {H_1} $查询时,如果$ H_1^{{\mathrm{list}}} $中已存在$ ({\text{I}}{{\text{D}}_i},{\text{I}}{{\text{D}}_j},{T_{{i_2}}}, $$ {T_j},\;K,{\mathrm{sk}}) $,那么$ S $返回$ ({\text{I}}{{\text{D}}_i},{\text{I}}{{\text{D}}_j},{T_{{i_2}}},{T_j}, $$K,{\rm{sk}})$;如果测试会话的发起者为参与者$ A $$ B $,并且响应者不为参与者$ B $$ A $,那么$ S $检查所有形如$ ({\text{I}}{{\text{D}}_i},{\text{I}}{{\text{D}}_j},{T_{{i_2}}},{T_j},\;*) $的数组,并验证等式${\rm{CDH}}({T_{{i_2}}}, {T_j}) = K$是否成立,如果成立,则将$({\text{I}}{{\text{D}}_i},{\text{I}}{{\text{D}}_j},{T_{{i_2}}}, {T_j}, K,{\rm{sk}})$存入$H_1^{{\rm{list}}}$中并返回$ {\text{sk}} $;否则算法$ S $返回随机数${\text{sk}^\prime} \in {\{ 0,1\} ^k}$,同时将$ ({\text{I}}{{\text{D}}_i},{\text{I}}{{\text{D}}_j}, $$ {T_{{i_2}}},{T_j},\;K,{\mathrm{sk}}') $添入$H_1^{{\rm{list}}}$中。
(3)预言机$ {H_2} $的模拟:当敌手发起$ {H_2} $查询时,如果$ H_2^{{\mathrm{list}}} $列表中已存在$ ({\text{I}}{{\text{D}}_i}, $$ {\mathrm{TS}},{\mathrm{sk}},\;h_2^i) $,那么返回$ ({\text{I}}{{\text{D}}_i},{\mathrm{TS}},{\mathrm{sk}},\;h_2^i) $;否则算法$ S $随机生成$ h_2^j \in {Z_q} $,返回$ h_2^j $。并将$ ({\text{I}}{{\text{D}}_i},TS,{\mathrm{sk}},\;h_2^j) $填入$ H_2^{{\mathrm{list}}} $中。
(4)$ {\text{Long\_Term\_Keyreveal}(C)} $查询:如果查询对象$ C $是参与者$ A $$ B $,则算法$ S $放弃本次模拟;否则算法$ S $返回上述模拟中生成的长期私钥。
(5)$ {\mathrm{Ephemeral\_Term\_Keyreveal}(C,\;{\mathrm{sid}})} $查询:返回查询对象$ C $在会话$ {\mathrm{sid}} $中的临时密钥。
(6)$ {\mathrm{Session\_Keyreveal(sid)}} $查询:如果会话$ {\mathrm{sid}} $是测试会话或匹配会话,则放弃本次模拟;否则返回会话$ {\mathrm{sid}} $的会话密钥。
(7)$ {\mathrm{Test(sid)}} $查询:如果会话$ {\text{sid}} $不是测试会话,则放弃本次模拟;否则算法$ S $返回一个随机数。
在情况1.2中,敌手至少能以$ {1 \mathord{/ {\vphantom {1 {n{{(k)}^2}s(k)}}} } {n{{(k)}^2}s(k)}} $的概率猜到正确的会话密钥。对于参与者$ A $,将$ M $作为其临时密钥;对于剩余$ n(k) - 1 $个参与者,算法$ S $选择随机数$ h_0^i,{r_i},{s_i} \in {Z_q} $,计算$ {W_i} = {r_i} \cdot P + h_0^i \cdot {P_0}\text{、}{S_i} = {s_i} $$ \cdot P $。若$ H_0^{{\mathrm{list}}} $中已存在$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $,则算法$ S $放弃模拟,否则将$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $存入$ H_0^{{\mathrm{list}}} $。算法$ S $模拟eIBAKAS协议的运行环境如下:当敌手查询除$ A $$ B $以外的参与者时,按敌手已有能力如实回答;如果敌手对参与者$ A $$ B $进行查询时,除以下查询外,其他均与情况1.1保持一致。
(1)$ {\text{Long\_Term\_Keyreveal}(C)} $查询:如果查询对象$ C $是参与者$ B $,则算法$ S $放弃本次模拟,否则算法$ S $返回上述模拟中生成的长期私钥。
(2)$ {\text{Ephemeral\_Term\_Keyreveal}}(C,\;{\text{sid)}} $查询:如果查询对象是参与者$ A $,则算法$ S $放弃本次模拟;否则算法$ S $返回$ C $在会话$ {\text{sid}} $中的临时密钥。
情况1.3只需在情况1.2的基础上将参与者$ A $$ B $互换即可。
在情况1.4中,敌手至少能以$ {1 \mathord{/ {\vphantom {1 {n{{(k)}^2}s(k)}}} } {n{{(k)}^2}s(k)}} $的概率猜到正确的会话密钥。对于参与者$ A $$ B $,算法$ S $$ M $$ N $作为临时公钥。对于剩余$ n(k) - 2 $个参与者,$ S $选择随机数$ h_0^i,{r_i},{s_i} \in {Z_q} $,计算$ {W_i} = {r_i} \cdot P + h_0^i \cdot $ $ {P_0}\text{、}{S_i} = {s_i} \cdot P $。若$ H_0^{{\mathrm{list}}} $中已存在$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $,则算法$ S $放弃模拟,否则将$ ({\text{I}}{{\text{D}}_i},{W_i},h_0^i) $存入$ H_0^{{\mathrm{list}}} $中。算法$ S $模拟eIBAKAS协议的运行环境如下:当敌手查询除$ A $$ B $以外的参与者时,按敌手已有能力如实回答;如果敌手对参与者$ A $$ B $进行查询时,除以下查询外,其他均与情况1.1保持一致。
(1)$ {\text{Long\_Term\_Keyreveal}(C)} $查询:算法$ S $返回参与方$ C $的长期私钥。
(2)$ {\text{Ephemeral\_Term\_Keyreveal}}(C,\;{\text{sid)}} $查询:若$ C $是参与者$ A $$ B $,则算法$ S $放弃本次模拟;否则算法$ S $返回上述模拟中生成的参与方$ C $的临时密钥。
如果测试会话没有对应的匹配会话,则可以认为会话响应者没有临时密钥,那么敌手可以进行伪造。情况2可以分为以下两种子情况:
情况2.1:敌手对测试会话参与方进行$ {\mathrm{Long}}\_ {\mathrm{Term}}\_{\mathrm{Keyreveal}}(C) $查询,并伪造会话响应者的临时密钥,该情况的模拟与情况1.2保持一致。
情况2.2:敌手对测试会话参与方进行$ {\text{Ephemeral\_Term\_Keyreveal}}(C,\;{\text{sid)}} $查询,并伪造会话响应者的临时密钥,该情况的模拟与情况1.1保持一致。
假设$ {p_1}\text{、}{p_2}\text{、}{p_3}\text{、}{p_4}\text{、}{p_5}\text{、}{p_6} $分别为情况1.1、1.2、1.3、1.4、2.1、2.2发生且敌手攻击成功的概率,则算法$ S $解决CDH问题的优势为:
$ {\text{Adv}}_k^{{\mathrm{CDH}}} \geqslant \max \left\{ \begin{gathered} \frac{{{p_1}}}{{n{{(k)}^2}s(k)}},\;\frac{{{p_2}}}{{n{{(k)}^2}s(k)}},\;\frac{{{p_3}}}{{n{{(k)}^2}s(k)}} \\ \frac{{{p_4}}}{{n{{(k)}^2}s(k)}},\;\frac{{{p_5}}}{{n{{(k)}^2}s(k)}},\;\frac{{{p_6}}}{{n{{(k)}^2}s(k)}} \\ \end{gathered} \right\} $
上述证明表明,如果敌手至少能以$ 1/n{(k)^2}s(k) $的概率猜到正确的会话密钥,并且将$ {T_A} $$ {T_B} $作为挑战值,那么算法$ S $就成功解决了CDH问题。由定理1的逆否命题可知,如果eIBAKAS协议在eCK模型下是不安全的,那么说明CDH假设是不成立的,而这又与本文的假设矛盾。综上所述,eIBAKAS协议在eCK模型下是安全的。

3.3 BAN逻辑证明

1989年,Burrows等[19]提出了BAN逻辑。BAN逻辑是一种基于信念的逻辑分析方法,在协议分析领域具有重要作用。通过使用BAN逻辑,研究人员可以更加具象化地分析协议的安全性,这对于分析协议可能存在的安全风险以及对协议的改进具有指导意义。本小节给出eIBAKAS协议的BAN逻辑证明。

3.3.1 BAN逻辑符号定义

BAN逻辑使用符号和表达式抽象化协议,其中一些常见的符号如表1所示。
表 1 BAN逻辑符号定义

Table 1 Definitions of BAN logic symbols

符号 含义
$ P $ 主体
$ X,Y $ 语句
$ K $ 密钥
$ {\text{SK}} $ 会话密钥
$ P \triangleleft X $ $ P $接收$ X $
$ \# (X) $ $ X $是新鲜的
$ P|\sim X $ $ P $发送过$ X $
$ \xrightarrow{K}P $ $ K $$ P $的公钥
$ P| \Rightarrow X $ $ P $$ X $具有管辖权
$ P| \equiv X $ 主体$ P $相信$ X $为真
$ P\overset K \longleftrightarrow Q $ $ Q $共享会话密钥$ K $
$ {(X)_K} $ $ X $使用密钥$ K $加密后的密文

3.3.2 BAN逻辑推理法则

本文使用下列BAN逻辑推理法则。
R1消息含义法则:$ \dfrac{{P| \equiv \xrightarrow{K}Q,P \triangleleft {{\{ X\} }_{{K^{ - 1}}}}}}{{P| \equiv Q|\sim X}} $
R2临时值验证法则:$ \dfrac{{P| \equiv \# (X),P| \equiv Q|\sim X}}{{P| \equiv Q| \equiv X}} $
R3管辖权法则:$ \dfrac{{P| \equiv Q| \Rightarrow X,P| \equiv Q| \equiv X}}{{P| \equiv X}} $
R4消息新鲜法则:$ \dfrac{{P| \equiv \# X}}{{P| \equiv \# (X,Y)}} $
R5信念法则:$ \dfrac{{P| \equiv Q| \equiv (X,Y)}}{{P| \equiv Q| \equiv X}} $

3.3.3 形式化安全假设

本文协议满足下列安全假设。
P1:$ A| \equiv B| \Rightarrow (A\overset {{\text{SK}}} \longleftrightarrow B) $
P2:$ B| \equiv A| \Rightarrow (A\overset {{\text{SK}}} \longleftrightarrow B) $
P3:$ A| \equiv \xrightarrow{{{S_B}}}B $
P4:$ B| \equiv \xrightarrow{{{S_A}}}A $
P5:$ A| \equiv \# ({T_B}) $
P6:$ B| \equiv \# ({T_{{A_1}}}) $

3.3.4 证明目标

如果以下一级信仰与二级信仰成立,则认为协议是安全的。
G1:$ A| \equiv B| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $
G2:$ A| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $$ P $
G3:$ B| \equiv A| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $
G4:$ B| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $

3.3.5 安全证明

$ A \triangleleft {(A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_B},{T_B},{\mathrm{T{S}}_2},{R_B})_{{s_B}}} $、P3和R1可得:
$ A| \equiv B|\sim (A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_B},{T_B},{\mathrm{T{S}}_2},{R_B}) $
由P5和R4可得:
$ A| \equiv \# (A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_B},{T_B},{\mathrm{T{S}}_2},{R_B}) $
由式(1)、式(2)和R2可得:
$ A| \equiv B| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_B},{T_B},{\mathrm{T{S}}_2},{R_B}) $
由式(3)和R5可得:
$ A| \equiv B| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $
于是G1得证。
由式(4)、P1以及R3可得:
$ A| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $
于是G2得证。
$ B \triangleleft {(A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_A},{T_{{A_1}}},{T_{{A_2}}},{\mathrm{T{S}}_1},{Q_A})_{{s_A}}} $、P4和R1可得:
$ B| \equiv A|\sim(A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_A},{T_{{A_1}}},{T_{{A_2}}},{\mathrm{T{S}}_1},{Q_A}) $
由P6和R4可得:
$ B| \equiv \# (A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_A},{T_{{A_1}}},{T_{{A_2}}},{\mathrm{T{S}}_1},{Q_A}) $
由式(6)、式(7)和R2可得:
$ B| \equiv A| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B,{\text{I}}{{\text{D}}_A},{T_{{A_1}}},{T_{{A_2}}},{\mathrm{T{S}}_1},{Q_A}) $
由式(8)和R5可得:
$ B| \equiv A| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $
于是G3得证。
由式(9)、P2和R3可得:
$ B| \equiv (A\overset {{\text{SK}}} \longleftrightarrow B) $
于是G4得证。
综上所述,协议的在形式化安全假设成立的情况下是安全的。

3.4 Scyther形式化分析

Scyther是一款协议形式化分析工具,能够有效识别潜在的攻击和漏洞。本小节利用Scyther对eIBAKAS协议进行分析,结果如图3所示。分析过程采用安全协议描述语言描述eIBAKAS协议,并对声明的安全属性(包括Alive、Weakagree、Niagree、Nisynch)采取模拟攻击。从图3中可以看出,eIBAKAS协议满足上述各项安全属性,并且会话密钥是安全的,与安全证明的结论相吻合。
图 3 eIBAKAS协议Scyther分析结果

Fig.3 Analysis result of eIBAKAS protocol by Scyther

3.5 性能分析

本节将eIBAKAS协议与IBAKAS协议以及其他同类型认证与密钥协商协议从安全属性、计算开销、通信开销三方面进行对比分析。

3.5.1 安全属性

协议的安全属性如表2所示,其中×表示该协议不满足这一安全属性,√ 表示该协议满足这一安全属性,✳表示不涉及这一安全属性。由表2可以看出,文献[17]协议无法抵御密钥泄露伪装攻击和中间人攻击;IBAKAS协议无法抵御临时私钥泄露伪装攻击和中间人攻击;文献[18]协议无法抵御中间人攻击;eIBAKAS协议满足的安全属性比较全面,能够更好地适应于集群无线网络环境。
表 2 协议安全属性对比

Table 2 Comparison of protocol security properties

安全属性协议
文献[17]文献[18]IBAKASeIBAKAS
双向认证
前向安全性
抗中间人攻击×××
抗临时私钥泄露攻击×
抗密钥泄露伪装攻击×

3.5.2 计算开销

为了量化评估协议的计算效率,在Windows 11,AMD Ryzen 7 4800H with Radeon Graphics、16 GB RAM、Matlab环境中测试ECC(Elliptic Curve Cryptography)点乘、ECC点加、ECC加解密、求逆运算、SHA-3的运算耗时,并统计协议的计算总耗时。各基础运算耗时如表3所示,总耗时如表4所示。其中$ {T_{{\mathrm{Mul}}}} $$ {T_{{\mathrm{Add}}}} $分别表示执行一次循环群乘法和一次加法运算所需时间,$ {T_{{\mathrm{Enc}}}} $$ {T_{{\mathrm{Dec}}}} $分别表示执行一次ECC加密和一次ECC解密所需时间,$ {T_{{\mathrm{Inv}}}} $表示执行一次求逆运算所需时间,$ {T_{{\mathrm{Hash}}}} $表示执行一次SHA-3运算所需时间。图4给出了协议计算开销的柱状图。
表 3 基础运算耗时(ms)

Table 3 Time consuming of basic operations (ms)

运算 $ {T_{{\mathrm{Mul}}}} $ $ {T_{{\mathrm{Add}}}} $ $ {T_{{\mathrm{Enc}}}} $ $ {T_{{\mathrm{Dec}}}} $ $ {T_{{\mathrm{Inv}}}} $ $ {T_{{\mathrm{Hash}}}} $
平均值 8.231 3 0.923 7 25.132 8 8.587 6 0.074 4 0.021 4
表 4 计算开销对比

Table 4 Comparison of computation overhead

协议 计算开销/ms 总耗时/ms 交互次数
文献[17] $ 14{T_{{\mathrm{Mul}}}} + 2{T_{{\mathrm{Add}}}} + 6{T_{{\mathrm{Hash}}}} $ 117.214 3
文献[18] $ 6{T_{{\mathrm{Mul}}}} + {T_{{\mathrm{Enc}}}} + {T_{{\mathrm{Dec}}}} + 4{T_{{\mathrm{Hash}}}} $ 83.1938 4
IBAKAS $ 10{T_{{\mathrm{Mul}}}} + 2{T_{{\mathrm{Inv}}}} + 2{T_{{\mathrm{Hash}}}} $ 82.5046 3
eIBAKAS $ 7{T_{{\mathrm{Mul}}}} + {T_{{\mathrm{Add}}}} + {T_{{\mathrm{Inv}}}} + 4{T_{{\mathrm{Hash}}}} $ 58.7028 2
图 4 计算开销

Fig.4 Computation overhead

表4图4可以看出,eIBAKAS协议在认证与密钥协商阶段的总计算开销为$ 7{T_{{\mathrm{Mul}}}} + {T_{{\mathrm{Add}}}} + {T_{{\mathrm{Inv}}}} + 4{T_{{\mathrm{Hash}}}} $,总耗时为58.702 8 ms。由于集群无线网络环境可能面临计算效率受限、能源消耗高等问题,同时协议的运行往往会受到各种限制,所以轻量高效安全、能源消耗低的协议相对而言更加适用。eIBAKAS协议相比其他同类型的协议而言具有更大的计算优势。同时,较少的交互次数也优化了通信过程,使得协议运行更加简单快捷。

3.5.3 通信开销

本小节将改进后的协议与其他同类型协议的通信开销进行对比。为了更加形象地给出协议之间的通信开销对比,本文对通信过程中各元素长度进行了合理假设,并对认证与密钥协商阶段的通信开销进行对比,结果如表5所示。
表 5 通信开销对比

Table 5 Comparison of communication overhead (bit)

协议 通信开销/bit 总长/bit
文献[17] $ 6|t| + 12|G| + 6|Z| $ 7 296
文献[18] $ |{\mathrm{ID}}| + 4|G| + 2|Z| $ 2 400
IBAKAS $ 3|G| + 7|Z| $ 2 656
eIBAKAS $ 2|{\mathrm{ID}}| + 2|t| + 3|G| + 2|Z| $ 1 984
假设通信双方身份信息长度$ |{\mathrm{ID}}| $为32 bit;时间戳长度$ |t| $为32 bit;椭圆曲线上元素长度$ |G| $为512 bit;$ Z_q^* $上元素长度$ |Z| $为160 bit。图5给出了通信开销柱状图。
图 5 通信开销

Fig.5 Communication overhead

表5图5中的结果表明,eIBAKAS协议的通信开销相较于其他同类型协议具有更大的优势,满足了集群无线网络环境对于传输速率的需求。

4 结束语

本文对IBAKAS协议进行改进,提出了一种安全高效且适用于集群无线网络环境的认证与密钥协商协议。首先,给出了eIBAKAS协议的工作流程,优化了原协议的交互过程;其次,给出了可证明安全,并利用BAN逻辑和Scyther形式化分析工具对eIBAKAS协议进行了安全分析,验证了其具有较强的安全性;最后,对eIBAKAS协议进行了性能分析,展示了协议在工作效率上的优越性。eIBAKAS协议总体上满足了集群无线网络对于能源消耗以及传输速率的要求。
1
MUGHAL F R, HE J, ZHU N, et al. Resource management in multi-heterogeneous cluster networks using intelligent intra-clustered federated learning[J]. Computer Communications, 2024, 213, 236- 245.

DOI

2
DIFFIE W, HELLMAN M. New directions in cryptography[J]. IEEE Transactions on Information Theory, 1976, 22 (6): 644- 654.

DOI

3
RIVEST R, SHAMIR A, ADLEMAN L. A method for obtaining digital signatures and public key cryptosystems[J]. Communications of the ACM, 1978, 21 (2): 120- 126.

DOI

4
SHAMIR A. Identity based cryptosystems and signature schemes[C]//Workshop on the Theory and Application of Cryptographic Techniques. Berlin,Heidelberg:Springer,1984:47-53.

5
AL-RIYAMI S S,PARTERSON K G. Certificateless public key cryptography[C]//International Conference on the Theory and Application of Cryptology and Information Security. Berlin,Heidelberg:Springer,2003:452-473.

6
LIU Z,DAI L,YUAN Y,et al. Distributed joint optimal control of power and rate with clustered routing protocol in wireless sensor networks[C]//Advances in Wireless Sensor Networks. Berlin,Heidelberg:Springer,2012:325-334.

7
PAZZI R W, BOUKERCHE A, LYNDA M, et al. A clustered trail-based data dissemination protocol for improving the lifetime of duty cycle enabled wireless sensor networks[J]. Wireless Networks, 2017, 23 (1): 177- 192.

DOI

8
JADIDOLESLAMY H. A hierarchical multipath routing protocol in clustered wireless sensor networks[J]. Wireless Personal Communications, 2017, 96, 4217- 4236.

DOI

9
BABIKER A E, ELMALEEH M, ABBAS O, et al. Data-based energy efficient clustered routing protocol for wireless sensors networks-tabuk flood monitoring system case study[J]. International Journal of Recent Contributions from Engineering Science, 2017, 5 (3): 58- 70.

10
AMJAD M, AFZAL M K, UMER T, et al. QoS-aware and heterogeneously clustered routing protocol for wireless sensor networks[J]. IEEE Access, 2017, 5, 10250- 10262.

DOI

11
SINGH P, SINGH R. Energy-efficient QoS-aware intelligent hybrid clustered routing protocol for wireless sensor networks[J]. Journal of Sensors, 2019, 1- 12.

12
ADNAN M, YANG L, TAZEEM A, et al. An unequally clustered multi-hop routing protocol based on fuzzy logic for wireless sensor networks[J]. IEEE Access, 2021, 9, 38531- 38545.

13
MEZRAG F, BITAM S, ABDELHAMID M. An efficient and lightweight identity-based scheme for secure communication in clustered wireless sensor networks[J]. Journal of Network and Computer Applications, 2022, 200, 282- 331.

14
KIRUBA G, JOSELIN B. TSO clustered protocol to extend lifetime of IoT based mobile wireless sensor networks[J]. The International Arab Journal of Information Technology, 2023, 20 (4): 559- 566.

15
KIM Y, LIM E, KWON T. On the impact of deployment errors in location-based key predistribution protocols for wireless sensor networks[J]. IEEE Access, 2024, 12, 35765- 35778.

DOI

16
LAMACCHI B,LAUTER K,MITYAGINA A. Stronger security of authenticated key exchange[C]//Provable Security. Berlin,Heidelberg:Springer,2007:1-16.

17
宋庆, 马米米, 邓淼磊, 等. 轻量级的两方认证密钥协商协议[J]. 计算机工程与应用, 2024, 60 (14): 283- 293.

DOI

SONG Q, MA M M, DENG M L, et al. Lightweight two-party authentication key agreement protocol[J]. Computer Engineering and Applications, 2024, 60 (14): 283- 293.

DOI

18
贺嘉琦, 彭长根, 付章杰, 等. 面向RFID的轻量级双向认证协议[J]. 计算机工程与应用, 2023, 59 (18): 268- 277.

DOI

HE J Q, PENG C G, FU Z J, et al. Lightweight bidirectional authentication protocol for RFID[J]. Computer Engineering and Applications, 2023, 59 (18): 268- 277.

DOI

19
BURROWS M, ABADI M, NEEDHAM R. A logic of authentication[J]. ACM Transactions on Computer Systems, 1989, 23 (5): 1- 13.

文章导航

/