移动自组网中基于身份的密钥管理方案研究*
2021-12-01刘金龙陈锦霏
刘金龙 陈锦霏 刘 鹏
(海军参谋部机要局 北京 100841)
1 引言
1.1 移动自组网的定义
无线移动自组网(MANETs),是一组带有无线通信装置的移动节点自组织形成的无线移动网络[3~7]。它能够自组织节点以点对点的方式通信且具有路由功能,节点的存在使得网络拓扑动态变化;通过多跳路由通信。但也存在很多现实问题,如资源有限,节点的电量、存储量及计算能力有限,通信带宽和能量供应受限;另外,存在一定的风险问题,如部署于敌对环境的节点容易受到攻击。
移动自组网的自组织和动态网络拓扑,因此,它可以大量分布于特殊区域检测收集信息,能够应用于需要快速组网,基础设施缺乏的环境下使用。如:车载移动网络,军队战场上的通信等。近年来,车载移动自组织网快速发展,车辆装配的传感器设备感知并收集道路环境信息,进而共享给相互联结的其他用户,节点包括车辆节点和RSU节点。车辆节点同外界通信、路由转发,组成信息传递线路上的多跳路由[4~9]。
1.2 移动自组网密钥管理方案
分布式密钥管理方案研究现状如下。Zhou[10]等最先提出基于门限密码体制的部分分布式CA密钥管理方案。此后,陆陆续续提出了很多有学术研究价值的分布式密钥管理方案,移动自组网密钥管理方案的研究得到了很大的推进。由于需保证部分节点受到攻击的情况下网络仍继续工作,以及动态更新密钥,因此不能通过预设管理中心对其进行密钥管理。常见的密钥管理方案如下。
1)对称密钥管理方案
Eschemauer和Gligor提出了基于概率的无线移动自组网的预分配密钥管理方案。每个节点初始化时,从系统密钥池中随机选取密钥,当网络中的两个节点进行通信时,若预分配密钥相同,则两个节点可建立会话对称密钥。Ramkumar和Memon在此方案基础上提出了随机密钥子集预加载方案,节点初始化时,从密钥池中选出根密钥,对每个根密钥用哈希函数生成多个子密钥。
对称密钥管理方案模型简易,网络带宽小。缺点在于没有身份认证,无法保证数据完整性;对称密钥需要提前设定。
2)非对称密钥管理方案
(1)自组织公钥管理的方案。节点之间通过相互发布、查找证书链得到认证公钥,建立信任。Ren等提出改进的自组织密钥管理方案。Omar等通过门限密码学改进了自组织密钥管理方案的安全性,提高了系统的安全性。
(2)基于CA的方案。Zhou和Haas提出使用门限技术提高MANETs的安全性,从普通节点中选取出证书认证机构(D-CA),给网络中的节点发放证书。Lou等提出将所有网络节点参与到证书发放认证的方案。Saxena等采用(t,N)-门限,提高了可用性。Bing等构造公钥基础设施(PKI),采用分布式结构,加强了分布式CA系统的健壮性。
(3)基于身份密码学的方案。可以摆脱对公钥证书的发放和管理。Saxena等提出基于身份的自组网络访问控制方案(ID-GAC)。Zhang等基于身份的密钥管理协议(IKM),采用(t,n)-门限方案,安全性更高。但存在不足之处,初始阶段,PKG必须为全部密钥更新周期设定好密钥更新参数;如果攻击者控制的一个节点没有被及时发现,攻击者可以通过这个节点获取更新密钥的信息[11~15]。
2 基于身份的预分配非对称密钥管理方案设计
由于移动自组网中的密钥相关特点,我们提出一种基于身份的预分配非对称密钥管理方案,以保证合理有效的密钥管理。
2.1 相关概念
1)哈希函数
中文名为哈希函数(hash函数),也叫散列函数,或杂凑函数。hash函数能够把任意长度的输入消息转化成固定长度的输出串(输出串称为输入消息的杂凑值)。
hash函数在信息安全领域应用非常多,输入一个任意长度消息m,返回一个固定长度的杂凑值h(m),且hash函数公开,处理过程不需要保密。
2)密码杂凑函数
密码杂凑函数是散列函数的一种,又称密码散列函数,消息摘要函数,或加密散列函数。它是一种单向函数,即将输入信息输出成较短的固定长度的杂凑值的过程不可逆,或者逆向操作非常困难,即已知通过该函数输出的结果,想获得输入信息非常困难,并且碰撞(不同输入消息得到相同输出消息)机率非常小。输入信息称为讯息(message),输出信息称为摘要(digest)。
3)一个安全的杂凑函数需要满足的条件
(1)输入信息长度随机不定;
(2)输出信息长度固定,目前计算技术至少取128bits长,以便抵抗生日攻击;
(3)正向过程计算简单,逆向过程几乎不可能、或相当复杂;
(4)对于同一个杂凑函数,不同的输入消息必定杂凑到不同值。
2.2 方案描述
本文提出的方案全部过程由设置、预分配、运行、加密和解密五个阶段组成。简写为£=(Set,Pre,Ext,Enc,Dec)。
1)Setup设置阶段:由PKG(分布式私钥生成)执行,生成系统参数K,构造主密钥对
2)Predistribute预分配阶段:由PKG运行算法,在XPri矩阵中输出XID,预分配到节点集合I。
3)Extract运行阶段:输入Str,预分配的主密钥子集XIDu和系统参数K,输出yStr和xStr。
4)Encrypt加密阶段:输入M,yStr和K,输出明文M的密文C。
5)Decrypt解密阶段:输入C,xStr,输出密文C的明文M。
2.3 具体方案
1)Setup算法
PKG运行,生成系统参数K和主密钥对。
Set-1由PKG生成q阶循环群G,q为素数,q∈G。
Set-2选取xij∈Zq,得到yij,其中,1≤i≤m,1≤j≤n,m,n∈Z+,Zq是q的整数集合,Z+是正整数集合。构造主密钥对( )
XPri,YPri,如下所示:
Set-3选择密码杂凑函数H:{0,1}*→{0,1}l×n,其中,m=2l。
Set-4公开系统参数K,K=(G,g,q,YPri,H)。
2)Predistribute算法
为节点预分配主密钥子集,即在主密钥XPri矩阵中输出主密钥子集XIDu。
Pre-1设0≤u≤n,每一个节点都有唯一的身份标识id和物理地址MAC,节点身份可表示为IDu=(idu|MACu),节点身份集合可表示为I={ID1,ID2,…,IDN},令ID的散列值为H(ID)。
3)Extract算法
节点通过XIDu生成xStr,通过系统参数生成yStr。
Ext-1节点身份标识IDu,节点密钥生成标识Stru,节点密钥生成标识Stru的散列值为H(Str)。
由预分配的主密钥子集XIDu,节点密钥生成标识的散列值H(Str),生成节点的私钥xStr。
Ext-2设yij j为第j列的第ij个值,ij是的十进制表示。主密钥子集
4)Encrypt算法
节点IDa向节点IDb发送秘密消息时,则利用明文Ma,节点IDb的公钥yStrb,随机数qa,ElGa⁃mal算法,计算得到密文Ca。Ca=( )ca1,ca2,并发送给节点
5)Decrypt算法
若已知密文Ca=( )ca1,ca2,节点IDb,计算私钥xStr'解密密文,当且仅当xStr'=xStr时,能够得到明文Ma。
3 密钥管理方案分析
3.1 方案可行性分析
与移动ad hoc网络中基于身份的分布式门限PKG密钥管理方案相比,本文提出的方案将ElGa⁃mal方案和预分配密钥方案相结合,通过私钥生成中心为节点预分配主密钥子集,且预分配的主密钥子集保持不变,使得节点密钥不再依赖于私钥生成中心;只需存储系统参数、获得节点身份,降低了系统负载;不需要大量存储对偶密钥,降低了网络开销。
3.2 方案局限性及下一步研究
1)节点预分配主密钥子集是节点密钥的基础,攻击者若能读取节点预分配主密钥子集,利用PTPM来提高安全性,是下一步工作中重要的研究方向之一。
2)本文提出的方案为了确保节点预分配主密钥子集的安全,最多允许敌手获取某一节点更新密钥产生的n-1个私钥。如果敌手能够获取n个节点私钥解密消息,就不需要获得节点预分配主密钥子集。为了保证加密系统私钥安全性,可利用PTPM构建密钥链式结构,这将是下一步工作的另一个研究方向。
4 结语
本文通过介绍移动自组网的相关概念,指出移动自组网中的密钥管理方案的不足之处,将ElGa⁃mal方案与预分配密钥管理结合,设计了一种基于身份的预分配主密钥子集的密钥管理方案。并详细描述了该方案的具体步骤,同时通过对比分析提出了密钥管理的下一步研究方向。