APP下载

二元对称多项式硬件加密技术研究*

2015-09-25陶乾刚吴援明

通信技术 2015年8期
关键词:发送给解密中断

孔 特,陶乾刚,杨 上,吴援明

0 引言

(1)研究意义

在传感网中,安全问题是网络发展中的一个关键性问题。对于无线传感器网络而言,它存在与传统网络所具有的相同安全需求[1],主要有可用性、机密性、完整性、认证、不可否认性等。在传感网中,数据在传输过程中容易受到攻击、更改、冲突、堵塞和重发[2]。节点的计算和存储能力有限,且使用电池供应能量,使得它具有自身特殊的安全需求。提供安全可靠的密钥管理方案是所有安全研究的基础,高效的密钥管理机制是保障其它安全技术的重中之重。因此,随着无线传感器网络更广泛地应用,对传感网的加密研究具有重大的现实意义。

由于无线传感器网络自身特殊的条件,使得其安全性问题与传统网络具有许多不同的特点,安全性显得尤为突出。因此,安全有效的密钥管理机制成为构建安全的无线传感器网络的核心技术之一。因为无线传感器网络中一般没有认证中心,且节点的资源、计算与存储能力都非常有限,导致大多数现有的密钥管理方案都不适用于无线传感器网络。因此,针对无线传感器网络自身特殊特点的密钥管理方案的研究就成为目前传感器网络安全问题研究的热点问题。

(2)国内外研究现状

根据实际的应用环境、网络结构及网络的特殊性,国内外研究者提出各种各样的密钥管理方案。基于分簇式无线传感器网络结构中,2000年,提出一个基于密钥分发中心(KDC)的密钥管理方案[3],该方案的主要思想是每个传感器节点与KDC共享1个相同的密钥。如果节点之间要通信时,节点向KDC发送请求,然后KDC产生会话密钥传送给相应节点,最后节点利用该会话密钥进行通信。此方案计算复杂度和对节点的存储计算能力不高,而对基站的依赖性较强。2003年Jolly[4]等人提出一种低能量的密钥分配管理方案(LEKM),部署之前,每个簇节点存储一组密钥集,每个传感器节点随机选择一个密钥和簇节点的ID存储在内存中,部署之后,每个传感器节点通过交换密钥信息建立会话密钥。该方案计算复杂度和节点的存储空间要求较低,但是在网络扩展性较差,任何簇节点被俘获将暴露大量的私钥,如果多个相邻簇节点被捕获,则整个网络就可能瘫痪。2007年Yi Cheng[5]等人提出了一种基于多项式的密钥分配机制,网络初始阶段簇节点只存储多项式,密钥分配后传感器节点也只存储与邻居节点的通信密钥,保证该阶段节点被俘获不会影响其它没有被俘获的节点,具有抵抗俘获攻击的能力。2010年黄少清[6]等人根据Liu Donggang和Ning peng[7]的方案改进了基于多项式的密钥分配方案,增强了抗捕获能力,降低了储存需求。

(3)本文研究内容

由于无线传感器节点在计算能力、通信能力、存储能力、电源等多方面的限制,使得传统的密钥分配方案不适用于无线传感器网络。所以本文根据黄少清[5]等人提出的基于对称多项式的密钥方案进行研究,对方案进行了改进,在保证安全性的前提下降低了功耗和储存代价,并且研究了改进后的密钥分配方案的硬件实现方式。用带有Zigbee通信协议的CC250芯片和FPGA进行网络节点设计,然后对其安全性,功耗和通信代价进行测试和分析。

1 密钥分配理论研究

基于对称多项式的密钥分配方案,其密钥的安全性主要依赖于对称多项式,所以对称多项式的安全犹为重要。以下介绍多项式的产生方法和密钥分配的全过程,并对基于对称多项式的密钥分配方案的安全性进行分析。

1. 1 对称二项式的产生

根据多项式理论[8],可以用基本对称多项式产生对称多项式。对于二元对称多项式,令σ1=x+y,σ2=xy,则有:

共有 t( )+12-1项,其中A00为常数项。

1. 2 密钥分配过程

当u节点与v节点通信时,需要提前进行身份认证,并产生通信密钥。首先,u节点将自身ID:u和认证序列Nonce发送给v节点;当v节点收到u后,将u和自己的ID:v带入多项式(1),并产生认证密钥Kv1,用Kv1加密Nonce,然后将ID:v和加密后的Nonce发送给节点u;然后,u收到v和加密的Nonce后,将u,v带入多项式算出认证密钥Kv2,用Kv2解密出Nonce,若解密出的Nonce与本地的Nonce相同,则认证成功(Kv1=Kv2=Kv)。认证成功后可以用Kv和u产生通信密钥。

1.2.1传感网的初始化工作

如图1所示,当有新的普通节点步入无线传感器网络是,由汇聚节点向该簇内的所有普通节点传送Kinit(Kinit是用于节点间认证的一个初始密钥)和对称二元多项式:

图1 传感网初始化

1.2.2 簇内节点间的认证

如图2所示,节点(ID为u)为与邻居节点建立连接,通过密钥Kinit来加密自己的ID()u和一个随机数消息,得到EKinitNonce,()u,然后将这个消息广播给周围的邻居节点。

图2 节点认证过程

邻居节点v获取加密消息后,通过Kinit解密后可以得到节点u的ID=u和Nonce。邻居节点v通过自身ID=v和节点u的ID=u,以及来自汇聚节点的对称二元多项式fwix,()y可以算出:

最后节点v用Kv加密Nonce,并用Kinit加密自身ID=v,最后将这两个消息发送给节点u。

节点u通过Kinit解密来自邻居节点的消息获得其ID:v,通过v和对称二元多项式fwix,()y产生:

根据对称多项式的性质,

当节点u和v持有相同的多项式时,它们产生的Kv是相同的。节点u用Kv解密节点v返回的信息可获得Nonce,若解密出的Nonce与节点u自己发出的Nonce是相同的,则证明v是合法节点,可以与其建立连接。

1.2.3 节点间通信密钥的产生

节点v:通过一个函数G和之前计算出的Kv产生:

节点u:通过一个函数G和之前计算出的Kv产生:

由于Kv1=Kv2,所以两节点会生成相同的通信密钥:

由此密钥分配完成。

1.2.4 密钥配置信息删除阶段

删除节点的Kinit,fwiu,()v和所有的Kv。

以上所有步骤都是当传感器网络要加入新的节点的时候要进行的过程,其中fwi(x,y)和Kinit会在每一次认证前重新分配。

1. 3 密钥安全性分析

当攻击者俘获或者攻破一个节点时,可以得到一份:u为节点ID。

在得到一份f(a,y)后,可以得出欠定方程组:

得到k份fwix,()y时,可以得到含有k×t个欠定方程组。如果采用枚举法重构原二元多项式,完全枚举需要ptt-()k次。当攻击者用计算机枚举破解时,计算量为:

当得到t份多项式时,可以重构出多项式(2)。

根据计算量式(11),当破解计算量高于我们的安全需求时可以灵活选择多项式次数t和素数p。

在样品节点中假定安全性要求为72小时之内不被攻破,假定攻击者每秒进行5×230次枚举,那么有以下不等式:

在我们的样品节点中选择 t=5,p=268 435 399。

2 FPGA模块及功能

在硬件实现中,FPGA负责所有的运算部分,包括加密运算和多项式运算,以及随机序列产生和检测。如图3所示,FPGA由顶层模块和4个子模块组成,第1个模块为DES的数据加密模块,这个模块将系统采集的数据加密送出。第2个模块为多项式运算模块,这个模块主要运算与节点的认证过程以及密钥生成过程,第3个模块是随机数产生和验证模块,这个模块主要就是为进行节点间的认证提供一个随机数Nonce以及序列检测,第4个模块为数据通信模块。

图3 FPGA模块划分

2. 1 顶层模块

顶层模块起到调用和控制其它模块工作的作用,根据控制芯片发出的控制信号。顶层模块调用其它模块完成节点初始化、密钥生成、节点认证和加/解密信息等功能。

2. 2 通信模块

通信模块连接FPGA与控制芯片CC2530,完成FPGA与CC2530之间的数据交换功能。通信模块内部主要为FPGA与CC2530的通信时序。

2. 3 DES 模块

DES模块实现DES加/解密算法,将节点采集到的信息和生成的Nonce进行加密,或者将从其它节点接收到的信息进行解密。DES模块下包含轮运算模块和子密钥模块,DES算法由16轮相同的操作组成,DES模块下的轮运算模块负责进行这些轮运算。DES的轮运算每次需要不同的子密钥,所以还包含一个子密钥生成模块用于产生每一轮的子密钥。

2. 4 密钥产生模块

密钥产生模块可以利用两个节点的ID号和多项式产生认证密钥Kv和通信密钥Ku。密钥生成模块下包含多项式模块和G函数模块,其中多项式模块用于计算多项式(2)的值,G函数模块利用多项式的值和ID产生认证密钥Kv和通信密钥Ku。

2. 5 认证模块

认证模块下包含随机数模块和序列检测模块,随机数模块可以产生随机数Nonce用于认证,序列检测模块对比两个序列是否相等,并由此判断认证是否成功。

3 CC2530功能描述

CC2530主要负责控制传感器采集信息,和其它节点通信,以及控制FPGA进行加密与密钥认证。

3. 1 CC2530 功能描述

CC2530 是用于2.4 - GHz IEEE 802.15.4、Zig-Bee和RF4CE应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM和许多其它强大的功能。CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。

3. 2 CC2530 程序

节点的程序控制整个节点的工作,以下介绍主程序以及中断程序的功能。

3.2.1 CC2530 主程序

CC2530的主程序主要是控制传感器的数据采集与发送,具体步骤如下:

(1)系统通过查询的方式来获得计时器溢出信号,当CPU捕捉到溢出信号后便给出数据采集指令;

(2)传感器收到采集指令后开始采集数据,采集完毕后传给CC2530;

(3)CC2530将采集到的数据发送给FPGA进行加密处理,最后将加密后的数据发送出去。

3.2.2 CC2530 的中断处理

传感器节点的接收消息中断源主要有4种:

第1种是来自汇聚节点的中断,这种中断是为了传送Kinit和用于密钥分配的多项式:

系统接收到这种中断后将把接收到的消息写入到存储器中,这类数据将在密钥分配阶段使用。

第2种是来自其它节点的认证消息中断,系统接收到这种中断后会把接受到的数据传送给FPGA,待FPGA处理后传回CC2530,系统再把处理后的数据发送出去。

第3种是来自其它节点的数据传送中断,系统收到这种中断后会将接受到的数据传送给FPGA,待FPGA处理后传回CC2530,系统会把处理后的数据发送出去。

第4种是来自FPGA的中断,当FPGA需要传送数据到CC2530时会产生一个中断,系统接收到这种中断后将接收来自FPGA的数据。

4 节点工作流程

节点的密钥分配以及加密工作由FPGA配合主控芯片 CC2530进行,FPGA和 CC2530的连接如图4所示,包括控制信号、中断、读写和总线。我们利用GPIO通过软件的方式实现总线时序,如图5所示,在读写信号的下降沿上数据的发送方将数据放到总线,在下一次下降沿到来之前数据接收方读取数据。

图4 CC2530与FPGA通信

图5 总线时序

以下介绍FPGA与CC2530配合工作的流程,其中包括节点初始化、主动认证、被动认证和加/解密。

4. 1 节点初始化

如图6所示,初始化阶段分为两个步骤:

(1)CC2530将控制信号置为000,并将多项式fwix,()y和节点ID:u传给FPGA;

(2)FPGA利用ID和多项式(2)计算一个多项式(9),其中u为节点的ID。

图6 初始化阶段流程

4. 2 FPGA主动认证

如图7所示,主动认证阶段分为5个步骤:

(1)CC2530将控制信号置为001;

(2)FPGA 产生 Nonce,用 Kinit加密 u和 Nonce,并发送给CC2530;

(3)CC2530将Kinit,(u)Nonce广播给周围节点,等待周围节点响应;

(4)CC2530收到应答信息Kinit(v)和K(v )Nonce后,将数据发送给FPGA;

(5)FPGA解密Kinit(v) ,计算出Kv和Kuv;解密Kv( )Nonce,进行认证。如果认证通过,用Kuv加密Nonce,将Kuv和K(v )Nonce发送给 CPU;否则返回全零数据;

(6)根据Kuv,K(v )Nonce内容判断应答节点合法性。如为合法节点,将K(v )Nonce发给v节点,否则标记为非法节点。

图7 主动认证流程

4. 3 FPGA被动认证

如图8所示,被动认证分为6个步骤:

(1)CC2530接收其它节点的认证申请,控制端口置为010,将收到的Kinit,(u)Nonce发送给FPGA;

(2)FPGA 解密出 u,Nonce,生成 Kv,Kuv;用 Kinit加密 v,分别用 Kv和 Kuv加密 Nonce,将 Kinit(v)和K(v )Nonce发送给CC2530;

(3)CC2530将Kinit(v)和K(v )Nonce发送给节点u(发起认证的节点),并等待回应;

(4)CC2530收到回应信息 Ku(v )Nonce后,将Ku(v )Nonce发送给FPGA;

(5)FPGA对比收到的Ku(v )Nonce和本地Ku(v )Nonce,返回认证结果和Kuv给CC2530;

(6)CC2530根据认证结果选择储存Kuv或者把u节点标记为非法节点。

图8 被动认证流程

4. 4 加/解密

如图9所示,加/解密分为3个步骤:

(1)收到通信请求后,CC2530将控制端口置为011/100(加密/解密),然后将明/密文和密钥发送给FPGA;

(2)FFPGA收到后进行加/解密处理,处理完成后将密/明文发送给CC2530;

(3)CC2530将加/解密后的数据发送给通信节点。

图9 加/解密流程

5 结语

本文在黄少清等人提出的密约分配方案的基础上进行了简化,在保证安全性的前提下将原方案中多项式的次数降低。这样大大降低了运算和储存代价。节点如上所述部分组成,CC2530虽然可以单独作为节点使用,但是其能力有限,加解密速度慢,运算速度慢,耗能高。所以在硬件实现时运用了FPGA来做数据处理,由于FPGA这样可以大大提高节点的数据处理能力,由于FPGA可以并行工作,可以大大提高运算速度,而且FPGA的可编程性可以为节点的回收和维护提供方便。除此之外上述节点中也考虑了功耗的问题,其中功耗比较大的FPGA在平时处于休眠状态,整个节点的工作由CC2530来处理,这样就大大减少了节点运行的功耗。

[1] 赵静,喻晓红.物联网的结构体系与发展[J].通信技术,2010,43(09):106 -108.ZHAO Jing,YU Xiao-hong.Architecture and Development of IOT [J].Communication Engineering,2010,43(09):106-108.

[2] Govindan Estrin D,Heideman R,et al.Next Century Challenges Sealable Coordination in Sensor Networking.Proc of the 5th Annual ACM/IEEE Intemation Conferenceon Mobile Com put ingand Networking,Seattle,Washing,1999:263 -270.

[3] NIST.Advanced Eneryption Standard(AES)Develo pment Effors.httpt://esre.nist.gov/eneryption/aes/,2000.

[4] Jolly G,Kuseu M C,Kokate P,et al.A Low Energykey Management Protoeol for Wireless Sensor Networks[C].Proceedings of the Eighth IEEE Intemational Sym posiumon Com putersand Communieation(ISCC'03),Kemer-Antalya,turkey,2003.

[5] CHENG Y,Agrawal D P.An Improved Key Distribution Meehanism for Large-Scale Hierarehical Wireless Sensor Networks[J].Ad Hoc Networks,2007,5(l):35 - 80.

[6] 黄少清,李继国.基于二元对称多项式的WSN密钥管理方案[J].计算机工程,2010,36(16):145 -147.

HUANG Shao - qing,LI Ji- guo.Key Management Scheme for WSN based on Symmetric Bivariate Polynomial[J],Computer Engineering,2010,36(16):145 - 147.

[7] LIU Dong - gang,NING Peng.Establishing Pairwise Keys in Distributed Sensor Networks[C]//Proc.of the 10th ACM Conf.on.Computer and Communications Security.New York,USA: [s.n.],2003:52 -61.

[8] 游宏,刘文德.代数学[M].北京:科学出版社,2009:200-205.

YOU Hong,LIU Wen - de.Algebra[M].Beijing:Science Press,2009:200 -205.

猜你喜欢

发送给解密中断
炫词解密
解密“一包三改”
炫词解密
【微信小课堂】:如何向好友发送语音
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)
千里移防,卫勤保障不中断
你说我说大家说
公告