一种基于CPK的无线传感器网络密钥管理方法*
2019-03-05张爱丽吴传伟
张爱丽,吴传伟
(1.河南师范大学 新联学院,河南 郑州 450000;2.中国电子科技集团公司第三十研究所,四川 成都 610041)
0 引 言
无线传感器网络(Wireless Sensor Network,WSN)以其低成本、低功耗和多功能等特点,在国防军事、环境监测、医疗卫生及工农业生产等领域发挥着不可估量的作用。WSN的传感器节点大多部署在野外,无人看管,节点容易被俘获,通信信道开放,容易遭到窃听、冒充和欺骗等攻击。传感器节点能源、内存空间、计算能力和通信能力有限,因此不易运行大量的密钥管理协同协议。由于WSN缺少固定基础设施,传统网络中的密钥管理方案无法直接应用于WSN中[1]。
WSN密钥管理根据使用的密钥类型,分为对称密钥管理和非对称密钥管理。对称密钥相对简单,适合WSN通信数据的加密保护,密钥管理较为困难;非对称密钥具有更高的安全性,更易进行密钥管理,但复杂度更高。典型的对称密钥管理方案包括Eschenauer和Gligor的随机密钥预分配机制E-G方[2],Chan和Perrig的q-composite随机密钥预分配机制[3]等。典型的非对称密码管理方案包括Watro和Kong基于RSA的TinySec密钥分发[4]、轻量型ECC的密钥管理方案[5-6]等。针对这两种密钥的特点,本文提出了一种基于组合公钥(Combined Public Key,CPK)的混合密钥管理方法。
1 基于CPK的密钥管理方案
1.1 组合密钥生成原理
CPK[7]组合公钥体制是在ECC体制基础上实现的基于标识的非对称公众密钥体制。给定满足条件4a3+27b2≠0的两个小于p的非负整数a、b,则满足三次方程y2=x3+ax+bmod p的所有解(x,y)加上一个o点构成椭圆曲线群,记为Ep(a,b)。
设X=(x1,y1),Y=(x2,y2),X+Y=(x3,y3), 按 照Ep(a,b)上两点的加法运算规则,有:
其中:
令Y=kX,其中k为正整数。给定X、k,计算Y是相对容易的;给定X、Y,计算k是相对困难的。选定素数p和三次方程的参数a、b后,即可确定椭圆曲线群Ep(a,b)。适当选取Ep(a,b)中的元素G作为基点,由基点G=(xG,yG)的所有倍点构成Ep(a,b)的子群S。设n是满足nG=0的最小整数,则该子群S的阶为n。选择基点G时,应保证n是一个大素数。椭圆曲线密码的参数由a、b、G、n、p组成,记为T=(a,b,G,n,p)。由G生成的子群S中的元素皆为G的倍点kG(k=1,2,3…,n),即:
显然,S中的元素(xk,yk)与该点对应的倍数值k恰好构成公、私钥对,公开T=(a,b,G,n,p)和公钥(xk,yk),要求出其对G的倍数值k(即离散对数)是很困难的。
在给定的T=(a,b,G,n,p)为参数的椭圆曲线密码的基础上,构建公钥矩阵和私钥矩阵。公钥矩阵为m×h的矩阵,矩阵中元素记为Rij(1≤i≤m,1≤j≤h)都是基点G生成的子群S中的元素,公钥矩阵记为PSK,PSK中元素Rij=(xij,yij)。
私钥矩阵表示为SSK,元素表示为rij,同样也是m×h的矩阵。
在PSK和SSK矩阵相同位置的元素成倍数关系,即rij是Rij相对于基点G的倍数值,表示为Rij=rij=(xij,yij)(1≤rij≤n-1),可见rij与Rij构成一对公私钥对。
CPK中公私钥根据实体标识的映射值结果,分别在公钥矩阵和私钥矩阵选取对应位置的元素组合得到。假设最终得到的行列坐标为(i1, j1)、(i2, j2)、(i3, j3)…(it, jt),则公钥为:
私钥为:
公私钥关系为:
组合密钥由Hash运算和行映射算法得到.一般情况下,设行映射算法的密钥为POWKEY。一个m×h的矩阵,经过Hash运算和行映射算法得到的结果是h个行列坐标。Hash运算的方式是以变长的用户标识为输入,以定长的Hash结果为输出。在m×h的矩阵中,m是一个2k的数,要得到h个行列坐标,则Hash结果长度需要大于等于k×h的比特。
若一次Hash运算的结果长度小于k×h,则对Hash结果进行迭代。最终经过行映射算法得到的序列值为(i0,i1,i2,i3,…,ih-1)。此时,得到的公开密钥为:
得到的私钥为:
1.2 组合密钥分发
CPK标识认证机制由KMC密钥管理中心与WSN节点的芯片共同实现。KMC始终处于离线状态。WSN芯片在离线状态下到KMC处完成注册与认证,获得公钥矩阵与标识对应的私钥,如图1所示。根据CPK公私钥对生成的原理,要满足支持200个节点的WSN网络规模,只需要生成一个4×4的公私钥矩阵。
图1 组合密钥分发
4×4的公私钥矩阵能够生成44=256个公私钥对,每一个公私钥对即可以作为WSN传感节点的合法身份证明,占用的存储资源很少,适合资源受限的WSN网络。
CPK的私钥以矩阵方式存储。当私钥泄露超过m×h个时,通过线性无关方程可获取所有方程的解,得到所有的私钥。WSN传感器节点部署后进行二次密钥协商,协商会话密钥,以抵御合谋攻击。
1.3 WSN节点认证
WSN传感器节点部署后,根据节点能量值选举簇头,簇头和普通节点构成“父子”关系,即子节点通过父节点接入网络。节点认证发生在子节点MS和父节点MA之间,图2为入网认证协议的交互图。
第一次消息交互主要进行参数协商,协商内密密钥长度,使用Diffie-Hellman组。通过第一次参数协商,双方确定使用的Diffie-Hellman组后,确立了两个全局参数大素数q和q的生成元a。交互双方选择一个NMA,NMS作为私钥交换随机数,分别传给对端,最终通过Diffie-Hellman产生临时密钥:
图2 入网认证协议交互
图2中HDR为数据包头,包含发送者标识、接收者标识、交互类型、消息序号HE 数据包长度等信息。SA为安全关联载荷,包括算法类型、密钥长度和Diffie-Hellman组信息等。
第二次消息交互,MS节点与MA节点按照第一次消息交互协商的算法和参数完成双向身份认证。MA节点向MS节点发送交换随机数和密钥生成随机数,两个随机数由MS节点的公钥加密,用私钥对第一次消息交互产生的共享秘密和密钥生成随机数进行签名,生成AUTH载荷;MS节点收到认证消息后,用私钥解密交换随机数和密钥生成随机数,然后用MA的公钥解密签名值,再对AUTH载荷值进行验签。MA节点对MS节点采用同样的方式进行认证。其中,AUTH为身份认证签名载荷,产生方式如下:
KeyT与KeyID是入网认证协议中为以后切换认证与密钥更新留出的预留值,用于切换认证与密钥更新。随机数R为认证报文新鲜因子,同时用于会话密钥的生成。
1.4 密钥的生成与更新
会话密钥的生成采用协商模式,CPK公钥体制和通过Diffie-Hellman密钥交换协议保护会话密钥的生产资料。在入网认证的同时完成密钥协商,最终的密钥生成算法为:
其中,SKD通过第一次认证交互信息获取;R1与R2为第二次交互的随机数,分别由进行密钥协商的双方产生。SKD由CPK公钥体制中的公钥进行加密,只有对应私钥的节点才能获得该随机数,R1与R2由Diffie-Hellman交换产生的临时密钥K进行加密。
WSN密钥管理除考虑密钥的生成外,还需要考虑密钥的更新。密钥更新流程如图3所示。
图3 密钥更新交互
第一次密钥更新时,R1与R2是接入认证交互过程中产生的随机数;从第二次密钥更新开始,R1与R2均是上一次密钥更新时产生的新的随机数,即图2中的R´1与R´2。如需更新临时密钥,则重新产生NMA,NMS用于Diffie-Hellman密钥交换。
密钥同步是密钥更新是否成功的最后一步。WSN采用分布式的方式对密钥进行生成和分发,为了使节点之间的数据能够顺利进行加解密操作,减少数据丢包,可采用异步密钥同步,如图4所示。
图4 异步密钥同步方式
异步密钥同步在密钥协商完成后的一段时间内同时保存新密钥与旧密钥,在数据报文的头部添加KeyID标志位,指示该数据报文的加密密钥情况。当接收节点收到发送节点使用新密钥加密的数据包后,将旧密钥丢弃,之后的交互数据使用新密钥进行加解密。
2 应用分析
2.1 适用性分析
WSN为无中心的自组织网络,动态拓扑,节点数量众多,硬件资源有限,无法应用成熟的PKI认证机制。CPK采用基于标识的认证方式,同PKI认证机制相比,不需要第三方CA的证明。CPK在脱线的情况下进行公私钥的生成,公钥矩阵与私钥也是在离线分发,完全避免了在PKI中LDAP证书数据库的在线维护与公钥的集中分发,同时也避免了由于证书库破坏而带来的全网瘫痪。相对IBE(Identity Base Encryption,IBE)采用双性线映射生成密钥的方案,CPK采用组合公钥(基于ECC算法)的方案大大降低了计算复杂度[8],更适用于WSN网络。
2.2 安全性分析
本文提出的密钥管理方法建立在ECC基础上,而ECC的安全性已有相关的证明。本文方法中使用的公钥矩阵和私钥矩阵均通过安全通道离线分发,以保证密钥分发的安全性。在节点认证的第一次信息交互中引入Diffie-Hellman密钥交换参数,第二次信息交换采用Diffie-Hellman协商产生的临时密钥,有效地抵御节点合谋攻击。Diffie-Hellman密钥交换参数均使用节点公钥进行加密,目的是抵御中间人攻击。
从认证过程来看,认证是双向的;签名值的生成有密钥生成随机数的参与,通过验证签名值,能够检测消息的完整性;身份认证的可靠性分别由一个非对称密钥和一个对称密钥进行保护。对称密钥与非对称密钥结合的方式,能够弥补两种不同类型密钥的缺陷,增强加密强度。
2.3 效率分析
通过认证过程中随机数的交互获得密钥生成资料,提高了认证交互消息的有效性。分布式的密钥生成方式避免了秘密隧道的使用,密钥生成资料由双方共同提供,避免了单方面的欺骗。节点直接通过本节点和其他节点提供的密钥生成资料按照协议规定的算法获得会话密钥,直接避免了密钥分发环节。采用密异步密钥同步不需要网络提供同步时间,减少了因密钥不同步导致的数据丢失。
3 结 语
在WSN中选择使用标识密钥管理是一个研究热点,本文提出的基于CPK的WSN密钥管理方案相对于传统的PKI具有简单、高效的特点。采用分布式的密钥管理方式,动态生成、更新会话密钥,并采用异步密钥同步方式,提高了密钥更新过程的准确性和可靠性。