发明名称 一种适用于异构传感器网络的组密钥管理方法
摘要 本发明请求保护一种适用于异构传感器网络的组密钥管理方法,该方法采用分布式密钥管理方式,组内节点的密钥材料由各组组长动态的分配。在组网过程中,利用基于同或的鉴别机制完成组长和组内节点之间的鉴别;在组密钥建立过程中,组长利用单向累加器为每个组内成员产生证人;在组密钥更新的阶段,提出定时组密钥更新、新节点加入时组密钥更新和旧节点撤销时组密钥更新等三种密钥更新机制,组内节点利用组密钥更新消息中的隐藏证人完成对组密钥更新命令的鉴别。该方法不仅减小了整个网络的计算开销和存储开销,实现了真正意义上的分布式管理方式,而且保障了整个网络的前向安全和后向安全,提高了无线传感器网络在运行时的安全性和可靠性。
申请公布号 CN104618090A 申请公布日期 2015.05.13
申请号 CN201510009080.1 申请日期 2015.01.08
申请人 重庆邮电大学 发明人 罗洪平;陈伟;王浩;王平;曾培;寇伟
分类号 H04L9/00(2006.01)I;H04L9/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/00(2006.01)I
代理机构 重庆市恒信知识产权代理有限公司 50102 代理人 刘小红
主权项 一种适用于异构传感器网络的组密钥管理方法,其特征在于,包括以下步骤:101、系统初始化配置步骤,具体包括:A1、节点在部署到网络之前,由基站为每个节点预先加载配置密钥PSK,参数产生算法G、编码算法CH和累加器函数f;A2、步骤A1的节点部署结束后,部署在网络中的组长节点随机选定安全参数k,运行G算法产生一组辅助参数A<sub>p</sub>=(x<sub>0</sub>,p,q),其中x<sub>0</sub>表示一个随机正整数,p和q分别表示两个大素数,辅助参数A<sub>p</sub>用来构建该组的累加器f(x<sub>0</sub>,y)=x<sub>0</sub><sup>y</sup>modn;102、完成步骤101的系统初始化配置步骤后,进行组密钥建立步骤,具体包括:B1、入网前,组成员和组长通过同或鉴别机制完成双方之间的鉴别;B2、组长根据自身组长地址ID<sub>manager</sub>和合法组内成员节点i的组内成员地址ID<sub>member_i</sub>,利用编码算法CH,为自己和组内成员进行身份编码;B3、组长利用辅助参数A<sub>p</sub>和累加器算法f为组内成员节点i计算证人W<sub>member_i</sub>,并将组成员节点的证人以密文的形式单播发送给对应的组内成员节点i;B4、组内成员节点i收到消息后,首先对消息鉴别码MAC进行校验,校验通过则利用预配置密钥PSK解密消息,获得W<sub>member_i</sub>;B5、组成员节点i结合证人和自身编码y<sub>member_i</sub>,利用累加器算法f计算组密钥V<sub>member_i</sub>=f(W<sub>member_i</sub>,y<sub>member_i</sub>)。103、当完成步骤102的组密钥建立步骤后,进行组密钥更新,具体包括以下三种情况:C1、定时组密钥更新;假设在第k个会话期到达定时组密钥更新,组长产生两个随机数n<sub>1</sub>和n<sub>2</sub>,构造并广播定时组密钥更新命令M<sub>2</sub>,该命令的格式为M<sub>2</sub>=(n<sub>1</sub>,n<sub>2</sub>,N<sub>1</sub>)||MAC<sub>2</sub>,其中N<sub>1</sub>=f(W<sub>manager_k</sub>,n<sub>1</sub>),MAC<sub>2</sub>=MAC(n<sub>1</sub>,n<sub>2</sub>,N<sub>1</sub>,);组内成员节点收到消息M<sub>2</sub>时,首先对MAC<sub>2</sub>进行校验,若校验失败则丢弃该消息,若校验成功则计算f(N<sub>1</sub>,y<sub>manager</sub>)是否等于f(V<sub>member_k</sub>,n<sub>1</sub>),若相等则完成对组长的命令的鉴别,然后进行证人更新和组密钥更新,反之则丢弃该消息。C2、新节点加入时组密钥更新;新节点加入时,组长和新节点之间首先采用同或鉴别方式进行鉴别;鉴别成功后,组长依据新节点的ID<sub>new</sub>为其产生编码值y<sub>new</sub>;组长依据新节点编码值y<sub>new</sub>进行组密钥更新,同时构造消息M<sub>3</sub>,并加密消息M<sub>3</sub>发送给新成员节点,消息M<sub>3</sub>的格式为:E<sub>PKS</sub>(V<sub>manager_k</sub>)||MAC<sub>3</sub>,其中MAC<sub>3</sub>=MAC(E<sub>PKS</sub>(V<sub>manager_k</sub>));组长产生随机数n<sub>3</sub>,计算N<sub>3</sub>=f(W<sub>manager_k</sub>,n<sub>3</sub>);组长构造广播消息M<sub>4</sub>,广播消息M<sub>4</sub>的格式为:M<sub>4</sub>=(y<sub>new</sub>,n<sub>3</sub>,N<sub>3</sub>)||MAC<sub>4</sub>,其中MAC<sub>4</sub>=MAC(y<sub>new</sub>,n<sub>3</sub>,N<sub>3</sub>);新成员节点收到消息M<sub>3</sub>后首先完成MAC<sub>3</sub>的校验,检验通过后解密数据获得V<sub>manager_k</sub>,然后进行组密钥计算;旧成员节点收到广播消息M<sub>4</sub>后,首先完成MAC<sub>4</sub>的校验,检验成功计算f(N<sub>3</sub>,y<sub>manager</sub>)和f(V<sub>member_k</sub>,n<sub>3</sub>),判断两者是否相等,若相等则完成对组长的鉴别,然后进行组密钥更新,反之则丢弃该消息;C3、旧节点撤销时组密钥更新;组长发现旧节点退出网络时,依据撤销节点的编码值y<sub>m</sub>和自身编码值y<sub>manager</sub>利用EGCD算法产生参数值α和β,即EGCD(y<sub>manager</sub>,y<sub>m</sub>)=αy<sub>manager</sub>+βy<sub>m</sub>=1,产生两个参数α和β;组长依据参数α、β和撤除节点的编码y<sub>m</sub>计算y<sub>m</sub>×(αy<sub>manager</sub>+βy<sub>m</sub>),然后进行组密钥更新和证人更新,即V<sub>manager_k+1</sub>=f(V<sub>manager_k</sub>,y<sub>m</sub>×(αy<sub>manager</sub>+βy<sub>m</sub>)),W<sub>memeber_k+1</sub>=f(W<sub>memeber_k</sub>,y<sub>m</sub>×(αy<sub>member</sub>+βy<sub>m</sub>));组长随机产生随机值n<sub>4</sub>,计算N<sub>4</sub>=f(W<sub>manager_k</sub>,n<sub>4</sub>);组长构造广播消息M<sub>5</sub>,广播消息M<sub>5</sub>的格式为:M<sub>5</sub>=(n<sub>4</sub>||N<sub>4</sub>||y<sub>m</sub>)||MAC<sub>5</sub>,其中MAC<sub>5</sub>=MAC(n<sub>4</sub>||N<sub>4</sub>||y<sub>m</sub>);节点收到消息M<sub>5</sub>后,首先进行验证消息是否来自于合法组长,若验证失败,则丢弃该消息,反之验证成功,则利用EGCD算法计算参数α'和β';组内成员节点依据参量y<sub>m</sub>×(α'y<sub>member</sub>+β'y<sub>m</sub>)进行组密钥更新和证人,保证撤销的节点无法获得此次更新后组密钥和证人。
地址 400065 重庆市南岸区黄桷垭崇文路2号