一种无线体域网快速唤醒关联的方法

文档序号:7818377阅读:224来源:国知局
一种无线体域网快速唤醒关联的方法
【专利摘要】本发明公开了一种无线体域网快速唤醒关联的方法,该无线体域网快速唤醒关联的方法包括确定唤醒帧的帧头、帧体和帧尾;采用单播唤醒关联包括全新的单播Wakeup帧以及单播唤醒关联机制;多播唤醒关联包括多播Wakeup帧,地址索引号对照表以及多播唤醒关联机制。本发明缩短了从唤醒到MK建立所需的时间,减小节点等待的时间,从而在一定程度上减少了节点能量的损耗,可用于无线体域网中传感节点的唤醒关联过程。
【专利说明】一种无线体域网快速唤醒关联的方法

【技术领域】
[0001] 本发明属于通信【技术领域】,尤其涉及一种无线体域网快速唤醒关联的方法。

【背景技术】
[0002] 无线体域网(WBAN),即Wireless Body Area Network,可以看作是无线传感器 网络(WSN)的一种特殊应用,它是指一系列能穿戴的无线传感器设备所组成的无线网络。 WBAN将把人体变成通信网络的一部分,使得人们在日常生活中越来越依赖无线网络,从而 在真正意义上实现了网络的泛在化。
[0003] 人体传感器网络主要用于病人的监护,生理参数的测量等。各种传感器测量出来 的数据通过无线网络传输方式传送到专用的监护仪器或各种通信设备上。WBAN在医疗健 康方面的重要应用,使得WBAN的重要性得到了更好的体现。国际的标准组织Institute of Electrical and Electronics Engineers (IEEE)已经完成了和 WBAN 相关的国际标准 制定--IEEE802. 15. 6。该标准定义了一种传输速率最高可达10Mbps、最长距离约3公尺 的连结技术。不同于其他短距离、低功耗无线技术,新标准特别考虑在人体上或人体内的应 用。在WBAN中包括一个无线体域网控制器Hub和多个无线体域网传感节点BN。BN可以分 布在生物体的各个角落,主要负责采集生物信息,并将采集到的信息发送给Hub ;Hub负责 控制BN,给传感节点发送指令信息、收集处理传感节点传输的信号。服务器通过传输网络与 Hub进行通信,实时监视人体的各种特征指标。
[0004] 传感器技术是WBAN的重要基础,小型化、智能化、高精度、低功率的各类传感器是 支持WBAN的必要条件,其中大部分传感器都是依靠电池供电的。对于植入式节点来说,有 限的电池能量需要在相当长的生命周期内支持传感器的工作,在电池充电或更换电池上, 是非常困难的。所以体域网节点的功率消耗是非常重要的性能指标。
[0005] 在目前IEEE公布的WBAN的标准802. 15.6中,在MAC层中设置了节点和Hub的四 种状态,分别是〇rphan、Associated、Secured、Connected,节点与Hub建立连接时依次经历 四种状态并且不能跨越状态。
[0006] 在Orphan状态,节点(或Hub)通过安全关联巾贞与Hub (或节点)进行信息交互, 实现MK的建立和节点与Hub的相互认证,安全关联帧共有五种模式可供选择,分别是MK预 共享关联、非认证关联、公钥隐藏关联、口令认证关联和显示认证关联。其中的MK预共享关 联采用对称密钥体制,其他四种则采用椭圆曲线密码体制。关联请求一般默认由节点发起, 如果MK激活或产生成功,节点与Hub进入下一状态,否则继续Orphan状态。
[0007] 在Associated状态,节点与Hub用上一步生成或激活的MK通过对称密钥体制产 生PTK。PTK成功生成后节点和Hub共同进入下一状态,否则继续Associated状态,如果在 Associated状态下MK无效,节点会回到Orphan状态,节点(或Hub)可以通过分离请求中贞 终止当前关联和当前MK并回到Orphan状态。
[0008] 在Secured状态,节点通过连接请求(或连接分配,连接点分配巾贞由Hub发送给节 点)帧与Hub建立连接,连接建立成功后进入最终的Connected状态。如果PTK无效或者 Connected_NID丢失,则回到Associated状态,通过分离请求巾贞可以终止当前关联和当前 MK并回到Orphan状态。
[0009] 在Connected状态,节点在处于连接状态下,保存了分配的Connected_NID,一个 唤醒计划。节点和Hub可以传输任何保障了安全的帧,中。如果PTK重新产生的过程中MK 丢失或无效,节点会回到Orphan状态。如果它们的PTK丢失或无效,节点和Hub需要回到 Associated状态。通过分离请求巾贞可以终止当前关联和当前MK并回到Orphan状态。通过 断开连接巾贞可以终止当前连接并回到Associated状态。
[0010] 由于WBAN对功率的消耗要求非常严苛,所以IEEE802. 15. 6规定了处于Connected 状态的节点按照连接请求(或连接分配)帧中的唤醒策略域中的规定进行周期的休眠/唤 醒,以节省能量。对于处在Orphan状态下的节点,其处理器工作在低功率模式,等待Hub的 Wakeup或者T-Poll帧来唤醒以进入工作模式。通过对当前IEEE802. 15. 6标准的研究,唤 醒策略唤醒处于Orphan状态的节点会出现下述的问题。
[0011] 1.对于非认证关联、公钥隐藏关联、口令认证关联和显示认证关联,需要首先发送 唤醒信号,然后由节点发起关联请求,完成MK的协商以及与Hub的相互认证。上述过程比 较繁琐,会造成一定程度的功率损耗。
[0012] 2.在分发GTK的时候,会需要Hub与多个节点同时进行关联过程,在 IEEE802. 15. 6标准中没有进行详细说明,如果依然采用单个顺序的关联方式,会造成节点 等待的时间过程,从而造成节点能量的浪费。


【发明内容】

[0013] 本发明实施例的目的在于提供一种无线体域网快速唤醒关联的方法,旨在解决现 有的无线体域网快速唤醒关联的方法存在的在Hub与节点之间进行唤醒和建立MK过程中 的时间和步骤的冗长和复杂的问题。
[0014] 本发明实施例是这样实现的,一种无线体域网快速唤醒关联的方法,该无线体域 网快速唤醒关联的方法包括确定唤醒帧的帧头、帧体和帧尾;采用单播唤醒关联包括全新 的单播Wakeup巾贞以及单播唤醒关联机制;多播唤醒关联包括多播Wakeup巾贞,地址索引号对 照表以及多播唤醒关联机制。
[0015] 进一步,唤醒帧的帧头包括FC、HID/NID、BAN ID,其中FC为帧头控制,包括协议版 本、Ack策略、安全级别、巾贞类型等帧控制信息,在帧控制中设置帧的类型为控制类型,子类 型为Wakeup帧;HID/NID为Hub和BN的地址缩短码,用于帧数据的接收;BAN ID为当前工 作的体域网的缩短地址,用于标记该帧数据所处的体域网。
[0016] 进一步,步骤二,唤醒巾贞体包括 Add_a、Add_b、SSS、Asso_ctrl、SAD ;其中 Add_a 为 Hub要求与之进行认证的BN节点地址或者BN的地址检索码,在单播时Μ = 6字节,多播 时Μ的大小可变;Add_b为当前发送唤醒关联信号的Hub地址;SSS为安全套接字选择域, 用于确定当前安全关联协议、安全级别、帧认证控制、密码函数一系列用于安全关联所需的 信息;A SS〇_Ctrl为安全关联控制,包括关联序列号和关联状态;SAD为安全关联数据,包含 Hub的公钥以及当前Hub产生的随机数Nonce_b,在0?(2 128-1)中随机选取,用于唤醒之 后的认证工作。
[0017] 进一步,唤醒帧尾由FCS组成,采用循环冗余序列CRC校验;
[0018] 进一步,单播关联过程具体包括:
[0019] 步骤一,Hub根据当前通信的需要设置SSS、Asso_ctrl域为相应的值,选择自己的 私钥SK b,计算PKb = SKbXG,构造Wakeup帧;在发送Wakeup帧后,向节点发送T-Poll帧;
[0020] 步骤二,节点收到唤醒帧后,获得本次关联的配置信息以及Hub的公钥PKb,然后选 择自己的私钥SK a长为256比特,计算公钥PKa = SKaXG,计算出公钥后,节点再计算基于 口令的公钥,PKa' = PKa-Q(PW),其中 Q(PW) = (Qx,QY),Qx = 232 XPW+Mx。节点根据收到的 Wakeup巾贞中的Nonce_b以及自身选择的Nonce_a计算:
[0021] KMAC_1A = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64)
[0022] KMAC_2A = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64)
[0023] ;
[0024] 节点利用上述计算的信息PKa'、KMAC_2A构造第一关联请求帧,并向Hub发送;
[0025] 步骤三,Hub收到第一关联请求帧后,首先复原当前节点的公钥PKa = PKa' +Q(PW), Q(PW) = (Qx,QY),Qx = 232 XPW+Mx;Mx为使Qx满足椭圆曲线上的点的最小非负整数;计 算0^^ = 乂彼1^?1〇=父彼,51(1^6),这里父()函数是取椭圆曲线密钥的父坐标值, Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计算:
[0026] KMAC_1B = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64)
[0027] KMAC_2B = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64)
[0028] 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则根据KMAC_1B继续构造第 二关联请求帧并进入本次关联请求的步骤五,如果不同则取消本次关联请求;
[0029] 步骤四,节点收到第二关联请求帧,对比在步骤二中计算的KMAC_1A与收到的 KMAC_1B,如果不同则取消本次关联请求,如果相同则进入本次关联的步骤五;
[0030] 步骤五,节点与 Hub 计算 MK = CMAC (Temp_2, Nonce_a | | Nonce_b, 128),这里 Temp_2 = LMB(DHKey),为DHKey的最左128位;双方完成唤醒关联。
[0031] 进一步,多播关联过程具体包括:
[0032] 步骤一,Hub根据当前通信的需要设置SSS、Asso_ctrl域为相应的值选择自己的 私钥SK b,计算PKb = SKbXG ;构造广播的Wakeup巾贞,并广播T-Poll巾贞,直到收到所有需要 通信的节点发送的第一关联请求帧;
[0033] 步骤二,某个节点i收到Wakeup帧后,根据地址选择私钥SKai,计算公钥PK ai = SKaiXG,计算基于 口令的公钥,PKai' = PKai-Q(PWi),Q(PWi) = (Qx,QY) ;QX = 232 ΧΡΙ+Μχ; 选择随机数 Nonce-ai,计算 DHKey = X(SKaiXPKb) = X(SKaiXSKbXG),Temp_l = RMB_128 (DHKey),节点根据收到的Wakeup帧信息以及自身选择的Nonce+ai计算:
[0034] KMAC_1A = CMAC(Temp_l,AdcLai | | Add_b| |Nonce-ai | | Nonce_b| |SSS,64)
[0035] KMAC_2A = CMAC (Temp_l,Add_b | | AdcLa! | | Nonce_b | | Nonce-ai | | SSS,64)
[0036] 该节点利用计算得到的PKai'、KMAC_2A构造第一关联请求帧并发送;
[0037] 步骤三,Hub收到第i节点的第一关联请求巾贞后,首先复原第i节点的公钥:PKai = PKai' +Q(PWi),Q(PWi) = (Qx,QY),Qx = 232ΧΡΙ+Μχ,QY 为正偶数;计算 DHKey = X(SKbXPKai) =X(SKaiXSKbXG),Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计 算:
[0038] KMAC_1B = CMAC(Temp_l, Add_ai | | Add_b| |Nonce_ai | | Nonce_b| |SSS, 64)
[0039] KMAC_2B = CMAC(Temp_l, Add_b| |Add_ai | | Nonce_b| |Nonce_ai | | SSS, 64)
[0040] 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则根据KMAC_1B继续构造 第二关联请求帧,如果不同则取消本次关联请求,发送第二关联请求帧后Hub计算Ml = CMACCTemp+ZJonce+ail |Nonce_b, 128)为 Hub 与第 i 节点的主密钥;
[0041] 步骤四,第i节点收到第二关联请求巾贞,对比在步骤二中计算的KMAC_1A与收 到的KMAC_1B,如果不同则取消本次关联请求,如果相同计算MKi = CMAC(Temp_2, Nonce_ a」|Nonce_b,128)为第i节点与Hub的主密钥。
[0042] 进一步,该无线体域网快速唤醒关联的方法中节点均是处于非连接状态。
[0043] 本发明提供的无线体域网快速唤醒关联的方法,采用单播唤醒关联包括全新的单 播Wakeup帧以及单播唤醒关联机制;多播唤醒关联包括多播Wakeup帧,地址索引号对照表 以及多播唤醒关联机制。本发明减少了在关联过程中帧的传输,节省了数据传输过程中的 能量损耗。本发明实现了无线体域网传感节点在被安全唤醒的同时开始关联,减少了从唤 醒到MK建立所需传输的帧数,减小节点等待的时间;以IEEE802. 15. 6标准中公钥隐藏关联 为例,在整个关联过程中需要传输4480比特的数据,需要5次的帧交换。在本发明中需要 传输3112比特的数据,需要3次帧交换,与公钥隐藏关联相比节省数据传输达30%并减少 了 2帧数据的传输。

【专利附图】

【附图说明】
[0044] 图1是本发明实施例提供的无线体域网快速唤醒关联的方法流程图;
[0045] 图2是本发明实施例提供的Wakeup帧结构示意图;
[0046] 图3是本发明实施例提供的单播唤醒关联过程流程图;
[0047] 图4是本发明实施例提供的地址索引号对照表图;
[0048] 图5是本发明实施例提供的多播唤醒关联过程流程图。

【具体实施方式】
[0049] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明 进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于 限定本发明。
[0050] 下面结合附图及具体实施例对本发明的应用原理作进一步描述。
[0051] 如图1所示,本发明实施例的无线体域网快速唤醒关联的方法包括以下步骤:
[0052] S101 :确定唤醒帧的帧头、帧体和帧尾;
[0053] S102 :采用单播唤醒关联包括全新的单播Wakeup帧以及单播唤醒关联机制;
[0054] S103 :多播唤醒关联包括多播Wakeup帧,地址索引号对照表以及多播唤醒关联机 制。
[0055] 本发明具体包括以下步骤:
[0056] 第一步,对体域网的Wakeup巾贞结构进行了设计:
[0057] 步骤一,唤醒巾贞的巾贞头包括 FC (Frame Control)、HID/NID (Hub/Node Identifier)、 BAN ID (BAN Identifier),其中FC为帧头控制,包括协议版本、Ack策略、安全级另ij、帧类型 等帧控制信息,在帧控制中可以设置帧的类型为控制类型,子类型为Wakeup帧;HID/NID为 Hub和BN的地址缩短码,用于帧数据的接收;BAN ID为当前工作的体域网的缩短地址,用于 标记该帧数据所处的体域网;
[0058] 步骤二,唤醒巾贞体包括 Add_a(Recipient Address)、Add_b (Sender Address)、 SSS(Security Suite Selector)、Asso_ctrl(Association Control)、 SAD(Security Association Data);其中Add_aS Hub要求与之进行认证的BN节点地址或者BN的地址检 索码,在单播时Μ = 6字节,多播时Μ的大小可变;Add_b为当前发送唤醒关联信号的Hub地 址;SSS为安全套接字选择域,用于确定当前安全关联协议、安全级别、帧认证控制、密码函 数等一系列用于安全关联所需的信息;A SS〇_Ctrl为安全关联控制,包括关联序列号和关 联状态;SAD为安全关联数据,在这里包含Hub的公钥以及当前Hub产生的随机数Nonce_b, 在0?(2 128-1)中随机选取,用于唤醒之后的认证工作;
[0059] 步骤三,唤醒帧尾由FCS组成,采用循环冗余序列CRC校验;
[0060] 第二步,单播关联过程:
[0061] 步骤一,Hub根据当前通信的需要设置SSS、Asso_ctrl域为相应的值,选择自己的 私钥SK b,计算PKb = SKbXG,构造Wakeup帧;在发送Wakeup帧后,向节点发送T-Poll帧;
[0062] 步骤二,节点收到唤醒帧后,获得本次关联的配置信息以及Hub的公钥PKb,然后选 择自己的私钥SK a长为256比特,计算公钥PKa = SKaXG,计算出公钥后,节点再计算基于口 令的公钥,PKa' = PKa-Q(PW),Q(PW) = (Qx,QY),Qx = 232 XPW+Mx ;节点根据收到的 Wakeup 中贞中的Nonce_b以及自身选择的Nonce_a计算:
[0063] KMAC_1A = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64)
[0064] KMAC_2A = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64)
[0065] ;
[0066] 利用上述计算的信息PKa'、KMAC_2A构造第一关联请求帧,并向Hub发送;
[0067] 步骤三,Hub收到第一关联请求帧后,首先复原当前节点的公钥PKa = PKa' +Q(PW), Q(PW) = (Qx,QY),Qx = 232 XPW+Mx;Mx为使Qx满足椭圆曲线上的点的最小非负整数;计 算0^^ = 乂彼1^?1〇=父彼,51(1^6),这里父()函数是取椭圆曲线密钥的父坐标值, Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计算:
[0068] KMAC_1B = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64)
[0069] KMAC_2B = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64)
[0070] 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则根据KMAC_1B继续构造第 二关联请求帧并进入本次关联请求的步骤五,如果不同则取消本次关联请求;
[0071] 步骤四,节点收到第二关联请求巾贞,对比在步骤二中计算的KMAC_1A与收到的 KMAC_1B,如果不同则取消本次关联请求,如果相同则进入本次关联的步骤五;
[0072] 步骤五,节点与 Hub 计算 MK = CMAC (Temp_2, Nonce_a | | Nonce_b, 128),这里 Temp_2 = LMB(DHKey),为DHKey的最左128位;双方完成唤醒关联;
[0073] 第三步,多播关联过程:
[0074] 步骤一,Hub根据当前通信的需要设置SSS、Asso_ctrl域为相应的值,选择自己的 私钥SK b,计算PKb = SKbXG ;构造广播的Wakeup巾贞,并广播T-Poll巾贞,直到收到所有需要 通信的节点发送的第一关联请求帧;
[0075] 步骤二,某个节点i收到Wakeup巾贞后,根据地址选择私钥SKai,计算公钥PK ai = SKaiXG,计算基于 口令的公钥,PKai' = PKai-Q(PWi),Q(PWi) = (Qx,QY) ;QX = 232 ΧΡΙ+Μχ; 选择随机数 Nonce-ai,计算 DHKey = X(SKaiXPKb) = X(SKaiXSKbXG),Temp_l = RMB_128 (DHKey),节点根据收到的Wakeup帧信息以及自身选择的Nonce+ai计算:
[0076] KMAC_1A = CMAC(Temp_l,AdcLai | | Add_b| |Nonce-ai | | Nonce_b| |SSS,64)
[0077] KMAC_2A = CMAC (Temp_l,Add_b I I AdcLai I I Nonce_b I I Nonce-ai I I SSS,64)
[0078] 该节点利用计算得到的PKai'、KMAC_2A构造第一关联请求帧并发送;
[0079] 步骤三,Hub收到第i节点的第一关联请求巾贞后,首先复原第i节点的公钥:PKai = PKai' +Q(PWi),Q(PWi) = (Qx,QY),Qx = 232ΧΡΙ+Μχ,QY 为正偶数;计算 DHKey = X(SKbXPKai) =X(SKaiXSKbXG),Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计 算:
[0080] KMAC_1B = CMAC(Temp_l,AdcLai | | Add_b| |Nonce-ai | | Nonce_b| |SSS,64)
[0081] KMAC_2B = CMAC(Temp_l,Add_b| |AdcLai | | Nonce_b| |Nonce-ai | | SSS,64)
[0082] 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则根据KMAC_1B继续构造 第二关联请求帧,如果不同则取消本次关联请求,发送第二关联请求帧后Hub计算Ml = CMACCTemp+ZJonce+ail |Nonce_b, 128)为 Hub 与第 i 节点的主密钥;
[0083] 步骤四,第i节点收到第二关联请求巾贞,对比在步骤二中计算的KMAC_1A与收 到的KMAC_1B,如果不同则取消本次关联请求,如果相同计算MKi = CMAC(Temp_2, Nonce_ a」|Nonce_b,128)为第i节点与Hub的主密钥。
[0084] 本发明的工作原理:
[0085] 本发明实现了无线体域网传感节点在被安全唤醒的同时开始关联,缩短了从唤醒 到MK建立所需的时间,减小节点等待的时间;同时对Hub与多个节点的关联方式进行了设 计;为此设计了全新的唤醒信号和新的关联机制,Hub在开始建立WBAN网络或需要与未处 在Connected状态的节点进行通信时,会需要对节点进行唤醒;唤醒操作是通过控制类型 的帧Wakeup和T-Poll实现的,可以使用两者结合的方法,也可以单独使用T-Poll方法;在 IEEE802. 15. 6中规定由Wakeup帧唤醒节点,由T-Poll分配时隙用于Associated帧的交 换;在本发明中使用Wakeup与T-Poll结合的方式进行上述的唤醒操作。
[0086] 本发明的具体实施例:
[0087] 本发明提出了一种基于体域网的快速安全唤醒关联机制,以实现无线体域网传感 节点在被安全唤醒的同时开始关联,缩短了从唤醒到MK建立所需的时间,减小节点等待的 时间,同时对Hub与多个节点的关联方式进行了设计;本发明中体域网的节点均是处于非 连接状态。
[0088] Hub在开始建立WBAN网络或需要与未处在Connected状态的节点进行通信时,会 需要对节点进行唤醒。唤醒操作是通过控制类型的帧Wakeup和T-Poll实现的,可以使用 两者结合的方法,也可以单独使用T-Poll方法。在IEEE802. 15. 6中规定由Wakeup帧唤醒 节点,由T-Poll分配时隙用于Associated巾贞的交换。在本发明中使用Wakeup与T-Poll 结合的方式进行上述的唤醒操作。
[0089] 在IEEE802. 15. 6的唤醒帧基础上,设计了全新的Wakeup帧;本次设计的唤醒关联 单播帧结构参照图2进行说明;
[0090] 帧头:
[0091] FC(Frame Control):巾贞头控制,包括协议版本、Ack策略、安全级别、巾贞类型等巾贞控 制信息,在帧控制中可以设置帧的类型为控制类型,子类型为Wakeup帧;
[0092] HID/NID(Hub/Node Identifier):分别为Hub和BN的地址缩短码,用于帧数据的接 收;
[0093] BAN ID (BAN Identifier):为当前工作的体域网的缩短地址,用于标记该帧数据所 处的体域网;
[0094] 巾贞体:长度最长为pMaxFrameBodyLength,按照IEEE802. 15. 6规定,为255字节;
[0095] Add_a (Recipient Address):为Hub要求与之进行认证的BN节点地址或者BN的 地址检索码,在单播时Μ = 6字节,多播时Μ的大小可变;
[0096] Add_b (Sender Address):为当前发送唤醒关联信号的Hub地址;
[0097] SSS(Security Suite Selector):安全套接字选择域,用于确定当前安全关联协 议、安全级别、帧认证控制、密码函数等一系列用于安全关联所需的信息;
[0098] Asso_ctrl (Association Control):安全关联控制,包括关联序列号和关联状 态;
[0099] SAD (Security Association Data):安全关联数据,在这里包含Hub的公钥以及当 前Hub产生的随机数,在0?(2128-1)中随机选取,用于唤醒之后的认证工作;
[0100] 帧尾:
[0101] FCS :为帧检测序列,采用循环冗余序列CRC校验;
[0102] 在完成唤醒帧的设计后,对IEEE802. 15. 6规定的单播关联过程进行了优化,以口 令认证关联为例,在进行关联的前提是Hub及节点要共享PW(Pass Word),即用户口令;下 文中参照图3进行详细的论述,具体包括:
[0103] 第一步,初始化,Hub根据当前通信的需要设置SSS、Asso_ctrl域为相应的值;Hub 选择它的私钥SKb长为256比特,计算公钥PK b = SKbXG,其中G= (Gx,Gy)为IEEE802. 15. 6 中规定的椭圆曲线的基点,其中 Gx = 6bl7dlf2el2c4247f8bce6e563a440f277037d812deb3 3a0f4al3945d898c296 ;Gy = 4fe342e2fela7f9b8ee7eb4a7c0f9el62bce33576b315ececbb6 406837bf51f5,
[0104] X为基于该椭圆曲线的标量乘法;Hub在0?(2128-1)选择一个随机数Nonce_b, 设置SAD域并构造上述的Wakeup帧;在发送Wakeup帧后,Hub要向节点发送T-Poll帧, T-Poll帧是为关联帧的交换分配时隙的;在本发明中,如果Hub没有收到第一关联帧,则会 一直发送T-Poll巾贞,直到收到第一关联巾贞为止;
[0105] 第二步,节点收到唤醒帧后,首先存储唤醒帧,如果Add_a中不是自己的地址,则 保持现在的状态不做改变;如果Add_a中是自己的地址,则处理器进入工作状态;节点取出 存储的唤醒帧,将其中的SSS、A SS〇_ctrl、SAD域的信息取出,获得本次关联的配置信息以 及Hub的公钥PKb选择,然后选择自己的私钥SK a长为256比特,计算公钥PKa = SKaXG,其 中G为IEEE802. 15. 6中规定的椭圆曲线的基点与节点的选择相同,X为基于该椭圆曲线 的标量乘法,计算出公钥后,节点再计算基于口令的公钥,
[0106] PK; = PKa-Q (PW);
[0107] Q(PW) = (Qx, QY);
[0108] Qx = 232 X PW+MX,QY 为正偶数;
[0109] Mx为使Qx满足椭圆曲线上的点的最小非负整数;
[0110] 计算完成后,如果PKa'有效,则更新当前节点的公钥PKa,选择随机数Nonce_a,计 算X0,这里X0函数是取椭圆曲线密钥的X坐标值;Temp_l = RMB_128(DHKey),为DHKey 的最右128位;节点根据收到的Wakeup巾贞中的Nonce_b以及自身选择的Nonce_a计算:
[0111] KMAC_1A = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64)
[0112] KMAC_2A = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64)
[0113] 节点利用上述计算的信息PKa、KMAC_2A构造第一关联请求帧;该帧为 IEEE802. 15. 6规定的标准请求帧;如果节点由于某种原因要放弃本次关联,则需要设置关 联请求帧的关联控制域中的关联状态选项,该选项的长度为一个字节,十进制值〇代表加 入当前关联;1代表由于SSS域选择不同而放弃关联;2代表缺少需要的安全凭据而放弃关 联;3代表当前资源不足而放弃关联;4代表受到管理员或所有者的安全策略选项限制而放 弃关联;5-15保留;所以节点要放弃本次关联,仍需要发送第一关联请求帧,并按上述要求 填写相应的关联状态选项;在发送第一关联请求帧时要按照Hub发送的T-Poll帧分配的时 隙进行帧发送;
[0114] 第三步,Hub收到第一关联请求巾贞后,首先复原当前节点的公钥:
[0115] PKa = PK; +Q (PW);
[0116] Q(Pff) = (Qx, QY);
[0117] Qx = 232 X PW+MX,QY 为正偶数;
[0118] Mx为使Qx满足椭圆曲线上的点的最小非负整数;
[0119] 计算0^^ = 乂彼,?1〇=乂(51('51(1^6),这里父()函数是取椭圆曲线密钥的 X坐标值,Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计算:
[0120] KMAC_1B = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64)
[0121] KMAC_2B = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64)
[0122] 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则继续构造第二关联请求 帧并进入本次关联请求的第五步,如果不同则取消本次关联请求,与节点类似同样需要设 置关联状态选项;根据在第一步中选择的SSS、Asso_ctrl,在SAD域填充随机数Nonce_b, Hub公钥,以及KMAC_1B构造第二关联请求帧,该帧为IEEE802. 15. 6规定的标准请求帧;
[0123] 第四步,节点收到第二关联请求巾贞,对比在第二步中计算的KMAC_1A与收到的 KMAC_1B,如果不同则取消本次关联请求,如果相同则进入本次关联的第五步;
[0124] 第五步:节点与 Hub 计算 MK = CMAC (Temp_2, Nonce_a | | Nonce_b, 128),这里 Temp_2 = LMB (DHKey),为 DHKey 的最左 128 位;
[0125] 上面的步骤完成了在单播情况下Hub对节点的唤醒关联过程,并对双方的密钥协 商以及认证过程进行了简化;下面将对多播关联过程进行说明。
[0126] 在多播的过程中,Hub需要颁发GTK给各个参与通信过程的节点,但是在 IEEE802. 15. 6中GTK的颁发需要Hub与每个参与通信的节点都共享一个PTK,而PTK的生 成是以MK的存在为前提的;所以在多播过程中Hub需要与多个节点进行关联,以激活或产 生它们之间的MK;如果采用顺序唤醒关联方式,会造成很大的网络时延以及节点的等待时 间过长;所以采用多播Wakeup帧的形式进行唤醒关联,即将本发明论述的Wakeup帧头中的 接收ID域中将ID设置为Multicast_NID,按照本发明的Wakeup帧就需要将所有需要通信 的节点的地址放入Add_a中;如果采用EUI-48的地址编码方式,这会造成唤醒信号的巨大 开销;所以对多播时BN的地址进行重新设计;
[0127] 在本发明中将采用索引的方式,即将BN按地址和索引一一对应的方式进行地址 编码;根据IEEE802. 15. 6标准中的规定,每个WBAN中节点的最大数目为64,所以采用6位 二进制数表示地址索引码就足够了,代表WBAN中节点的EUI-48类型的地址;Hub在构建网 络时将BN节点的地址索引码对应表发送给节点,节点进行存储;Hub存有BN节点的地址 索引码对应表,在构造唤醒帧时,需要把节点地址对应的地址索引码写入Add_a中;节点收 到多播的唤醒信号后,按照自身存储的地址索引码对应表搜索Add_a中是否有自己的索引 码,如果有则响应该唤醒帧,如果没有则不响应继续保持休眠状态;
[0128] 完成上述地址对应过程,下面参照图5对多播唤醒关联的进行说明,具体包括:
[0129] 第一步,初始化,Hub根据当前通信的需要设置SSS、Asso_ctrl域为相应的值;Hub 选择它的私钥SK b,计算公钥PKb = SKbXG,其中G为IEEE802. 15. 6中规定的椭圆曲线的基 点,X为基于该椭圆曲线的标量乘法;Hub在0?(2128-1)选择一个随机数Nonce_b,在设置 Add_a域的时候,按照本发明定义的地址索引方式,将需要通信的节点的地址索引码按照先 后顺序写入Add_a ;设置SAD域并构造上述的Wakeup巾贞;在发送Wakeup巾贞的同时,Hub要 向节点发送T-Poll帧,T-Poll帧是为关联帧的交换分配时隙的;这里的T-Poll帧为广播 类型的巾贞,即巾贞头的接收ID为Unconnected_Broadcast_NID,所有未连接的节点均可以收 到该T-Poll帧,T-Poll帧是为关联帧的交换分配时隙的;直到收到所有节点发送的第一关 联请求帧,Hub才会停止广播T-Poll帧;
[0130] 第二步,第i节点,其中,i的取值范围是1?η, η为当前Hub需要与之通信的节 点数目,收到多播唤醒帧后,则认为唤醒帧的Add_a域是按照地址索引码填写的;那么节点 检索Add_a域;
[0131] 如果在Add_a域中有自己地址检索码,则进入工作模式,按照地址索引表复原自 身地址AdcLap这里节点计算的方法与单播时是相同的,首先选择私钥SK ai,计算公钥计算 公钥PKai = SKaiXG,其中G为IEEE802. 15. 6中规定的椭圆曲线的基点,X为基于该椭圆 曲线的标量乘法,其次计算基于口令的公钥,
[0132] PKai' = PKai-Q(Pffi);
[0133] Q(Pffi) = (Qx, QY);
[0134] Qx = 232 ΧΡΙ+Μχ,QY 为正偶数;
[0135] MX为使QX满足椭圆曲线上的点的最小非负整数;
[0136] 计算完成后,如果PKai'有效,则更新当前节点的公钥PKai,选择随机数Νοη^%, 计算DHKey = X(SKai XPKb) = X(SKai X SKbXG),这里X()函数是取椭圆曲线密钥的X坐标 值;Temp_l = RMB_128 (DHKey),为DHKey的最右128位;节点根据收到的Wakeup帧信息以 及自身选择的Nonce+ai计算:
[0137] KMAC_1A = CMAC (Temp_l,AdcLai | | Add_b | | Nonce-ai | | Nonce_b | | SSS,64)
[0138] KMAC_2A = CMAC (Temp_l,Add_b | | AdcLai | | Nonce_b | | Nonce-ai | | SSS,64)
[0139] 节点利用上述计算的信息构造第一关联请求帧;该帧为IEEE802. 15. 6规定的标 准请求帧;如果节点由于某种原因要放弃本次关联,则需要设置关联请求帧的关联控制域 中的关联状态选项,该选项的长度为一个字节,十进制值〇代表加入当前关联;1代表由于 SSS域选择不同而放弃关联;2代表缺少需要的安全凭据而放弃关联;3代表当前资源不足 而放弃关联;4代表受到管理员或所有者的安全策略选项限制而放弃关联;5-15保留;所以 节点要放弃关联请求,仍需要发送第一关联请求帧,并按上述要求填写相应的关联状态选 项;在发送第一关联请求帧时要按照Hub广播的T-Poll帧分配的时隙进行帧的发送;
[0140] 如果在Add_a域中没有自己地址检索码,则不作响应继续低功率模式;
[0141] 第三步,Hub收到第i节点的第一关联请求帧后,首先复原第i节点的公钥:
[0142] PKai = PKai,+Q(Pffi);
[0143] Q(Pffi) = (Qx, QY);
[0144] Qx = 232 ΧΡΙ+Μχ,QY 为正偶数;
[0145] 计算0^^ =父(51^?1^)=乂(5^51(^,这里父()函数是取椭圆曲线密钥 的X坐标值,Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计算:
[0146] KMAC_1B = CMAC (Temp_l,AdcLai | | Add_b | | Nonce-ai | | Nonce_b | | SSS,64)
[0147] KMAC_2B = CMAC (Temp_l,Add_b | | AdcLai | | Nonce_b | | Nonce-ai | | SSS, 64)
[0148] 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则继续构造第二关联请求 中贞,如果不同则取消本次关联请求;根据在第一步中选择的SSS、Asso_ctrl,在SAD域填充 随机数Nonce_b,Hub公钥,以及KMAC_1B,该帧为IEEE802. 15. 6规定的标准请求帧;在第二 请求巾贞发送后Hub计算MKi = CMAC(Temp_2, Nonce+a」|Nonce_b, 128)为Hub与第i节点的 主密钥并按照索引表进行存储;Hub在与当前第i节点进行关联时同时会检测其他节点的 第一关联请求帧,收到请求后要进行存储,在结束当前节点的Ml后进行响应;
[0149] 第四步,第i节点收到第二关联请求巾贞,对比在第二步中计算的KMAC_1A与收 到的KMAC_1B,如果不同则取消本次关联请求,如果相同计算MKi = CMAC(Temp_2, Nonce_ ai I I Nonce_b,128)为第i节点与Hub的主密钥;
[0150] 上述过程完成了在多播情况下对Hub与多个节点的安全关联过程,产生了相应的 MK,在共享MK的基础上,Hub与节点可以生成PTK,利用PTK可以颁发GTK ;
[0151] 本发明与现有技术对比有以下的优势:
[0152] 下面将对802. 15. 6与本方案在唤醒帧长度、单播和多播时MK的建立步骤以及传 输所消耗的能量方面进行对比:
[0153] 唤醒帧长度、单播和多播时MK的建立步骤:
[0154] 1.本发明将802. 15. 6标准中的Wakeup帧进行了重新设计,在帧体中加入了关联 请求所需的SSS、ASS〇_ctrl、Nonce以及公钥;对Wakeup帧改进之后,虽然帧长度变长了, 但是在关联步骤中不需要802. 15. 6原来所需的第一关联帧;所以帧长度在总体来说还是 减少了;
[0155] 2.本发明通过上述的Wakeup帧,简化了体域网中关联过程的步骤;在802. 15.6 标准中,从节点唤醒到建立MK需要进行至少五步,而在本发明中从节点唤醒到建立MK只需 要三步就可以了;
[0156] 3.本发明还对802. 15. 6标准中多播时的关联过程进行了简化;在标准中,当进 行多播通信时,Hub会依次唤醒需要通信的节点,然后在进行关联过程建立MK ;本发明设计 了全新的多播唤醒关联,通过多播发送Wakeup帧,一次将所有需要与之通信的节点唤醒; 然后参照Wakeup帧体中的地址和关联策略开始关联过程;在多播形式的Wakeup帧中,本 发明设计了地址对应表,使得Wakeup帧开销大大降低;当有η个节点进行多播通信时,在 802. 15. 6标准中需要2η步才能和所有节点建立ΜΚ,而采用本发明的方法,只需要η步;
[0157] 传输所消耗的能量:
[0158] 假设bs为传输的比特数,et为单位比特发送所消耗的能量, ei为单位比特接收所 消耗的能量;则在WBAN中,能量Es消耗的模型为:
[0159] Es = bset+bsei
[0160] 在本次分析中,设置et为50X 1(Γ9, ei为50X 1(Γ9,则本发明与802. 15. 6在能量消 耗方面的比较结果下表6 ;从表中可以看出本发明减少了 1368bits数据的发送,同时降低 了 30%的能量消耗,可以在很大程度上延长节点的寿命;
[0161] 表1 :本发明与IEEE802. 15. 6能量消耗
[0162]

【权利要求】
1. 一种无线体域网快速唤醒关联的方法,其特征在于,该无线体域网快速唤醒关联 的方法包括:在单播唤醒关联下首先构造 Wakeup帧头,帧体和帧尾;其次发起者Hub发送 T-Poll巾贞,再次节点根据T-Poll巾贞分配的时隙接收Wakeup巾贞并与Hub开始进行关联过程; 在多播唤醒关联下首先构造 Wakeup帧头,帧体和帧尾以及地址索引号对照表,其次发起者 Hub向所有节点发送T-Poll巾贞;再次节点根据T-Poll巾贞分配的时隙接收Wakeup巾贞并与Hub 依次开始进行关联过程。
2. 如权利要求1所述的无线体域网快速唤醒关联的方法,其特征在于,唤醒帧的帧头 包括FC、HID/NID、BAN ID,其中FC为帧头控制,包括协议版本、Ack策略、安全级别、帧类型 帧控制信息,在帧控制中设置帧的类型为控制类型,子类型为Wakeup帧;HID/NID为Hub和 BN的地址缩短码,用于帧数据的接收;BAN ID为当前工作的体域网的缩短地址,用于标记 该帧数据所处的体域网。
3. 如权利要求1所述的无线体域网快速唤醒关联的方法,其特征在于,唤醒帧体包括 Add_a、Add_b、SSS、Asso_ctrl、SAD ;其中Add_a为Hub要求与之进行认证的BN节点地址 或者BN的地址检索码,在单播时Μ = 6字节,多播时Μ的大小可变;Add_b为当前发送唤醒 关联信号的Hub地址;SSS为安全套接字选择域,用于确定当前安全关联协议、安全级别、帧 认证控制、密码函数一系列用于安全关联所需的信息;A SS〇_Ctrl为安全关联控制,包括关 联序列号和关联状态;SAD为安全关联数据,包含Hub的公钥以及当前Hub产生的随机数 Nonce_b,在0?(2128-1)中随机选取,用于唤醒之后的认证工作。
4. 如权利要求1所述的无线体域网快速唤醒关联的方法,其特征在于,唤醒帧尾由FCS 组成,采用循环冗余序列CRC校验。
5. 如权利要求1所述的无线体域网快速唤醒关联的方法,其特征在于,单播关联过程 具体包括: 步骤一,Hub根据当前通信的需要设置SSS、AsS〇_Ctrl域为相应的值,选择自己的私钥 SKb,计算PKb = SKbXG,构造 Wakeup帧;在发送Wakeup帧后,向节点发送T-Poll帧; 步骤二,节点收到唤醒帧后,获得本次关联的配置信息以及Hub的公钥PKb,然后选择自 己的私钥SKa长为256比特,计算公钥PKa = SKaXG,计算出公钥后,节点再计算基于口令的 公钥,PK: = PKa-Q(PW),Q(PW) = (Qx,QY),Qx = 232XPW+Mx ;节点根据收到的 Wakeup 帧中 的Nonce_b以及自身选择的Nonce_a计算: KMAC_1A = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64) KMAC_2A = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64) 利用上述计算的信息PKa、KMAC_2A构造第一关联请求帧,并向Hub发送; 步骤三,Hub收到第一关联请求帧后,首先复原当前节点的公钥PKa = PKa' +Q(PW), Q(PW) = (Qx,QY),Qx = 232 XPW+Mx;Mx为使Qx满足椭圆曲线上的点的最小非负整数;计 算0^^ = 乂彼1^?1〇=父彼,51(1^6),这里父()函数是取椭圆曲线密钥的父坐标值, Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计算: KMAC_1B = CMAC(Temp_l, Add_a| |Add_b| |Nonce_a| |Nonce_b| |SSS, 64) KMAC_2B = CMAC(Temp_l, Add_b| |Add_a| |Nonce_b| |Nonce_a| |SSS, 64) 收到的KMAC_2A和计算得到的KMAC_2B,如果相同则根据KMAC_1B继续构造第二关联请 求帧并进入本次关联请求的步骤五,如果不同则取消本次关联请求; 步骤四,节点收到第二关联请求巾贞,对比在步骤二中计算的KMAC_1A与收到的 KMAC_1B,如果不同则取消本次关联请求,如果相同则进入本次关联的步骤五; 步骤五,节点与 Hub 计算 MK = CMAC(Temp_2, Nonce_a| |Nonce_b, 128) Temp_2 = LMB(DHKey),为DHKey的最左128位;双方完成唤醒关联。
6. 如权利要求1所述的无线体域网快速唤醒关联的方法,其特征在于,多播关联过程 具体包括: 步骤一,Hub根据当前通信的需要设置SSS、AsS〇_Ctrl域为相应的值,选择自己的私钥 SKb,计算PKb = SKbX G ;构造广播的Wakeup帧,并广播T-Poll帧,直到收到所有需要通信的 节点发送的第一关联请求帧; 步骤二,某个节点i收到Wakeup巾贞后,根据地址选择私钥SKai,计算公钥PKai = SKaiXG,计算基于 口令的公钥,PKai' = PKai-Q(PWi),Q(PWi) = (Qx,QY) ;QX = 232 ΧΡΙ+Μχ; 选择随机数 Nonce-ai,计算 DHKey = X(SKaiXPKb) = X(SKaiXSKbXG),Temp_l = RMB_128 (DHKey),节点根据收到的Wakeup帧信息以及自身选择的Nonce+ai计算: KMAC_1A = CMAC(Temp_l,AdcLai | | Add_b| |Nonce-ai | | Nonce_b| |SSS,64) KMAC_2A = CMAC(Temp_l, Add_bI IAdcLai I I Nonce_bI INonce-ai I I SSS, 64) 节点构造第一关联请求帧并发送; 步骤三,Hub收到第i节点的第一关联请求帧后,首先复原第i节点的公钥:PKai = PKai' +Q(PWi),Q(PWi) = (Qx,QY),Qx = 232ΧΡΙ+Μχ,QY 为正偶数;计算 DHKey = X(SKbXPKai) =X(SKaiXSKbXG),Temp_l = RMB_128(DHKey),根据收到的信息以及计算得到的信息计 算: KMAC_1B = CMAC(Temp_l,AdcLai | | Add_b| |Nonce-ai | | Nonce_b| |SSS,64) KMAC_2B = CMAC(Temp_l, Add_bI IAdcLai I I Nonce_bI INonce-ai I I SSS, 64) 对比收到的KMAC_2A和计算得到的KMAC_2B,如果相同则根据KMAC_1B继续构造第 二关联请求帧,如果不同则取消本次关联请求,发送第二关联请求帧后Hub计算Ml = CMAC(Temp_2, Nonce_ai | |Nonce_b> 128) 为Hub与第i节点的主密钥; 步骤四,第i节点收到第二关联请求巾贞,对比在步骤二中计算的KMAC_1A与收到 的KMAC_1B,如果不同则取消本次关联请求,如果相同计算Ml = CMAC (Temp_2, Nonce_ a11 INonce_b> 128) 为第i节点与Hub的主密钥。
7. 如权利要求1所述的无线体域网快速唤醒关联的方法,其特征在于,该无线体域网 快速唤醒关联的方法中节点均是处于非连接状态。
【文档编号】H04W52/02GK104301973SQ201410598609
【公开日】2015年1月21日 申请日期:2014年10月30日 优先权日:2014年10月30日
【发明者】刘景伟, 孙蓉, 张建新 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1