ComputerEngineeringandApplications计算机工程与应用2010,46(32)1引言移动Adhoc网络(MobileAdHocNetwork,MANET)是由若干无线移动节点组成的不依赖于任何固定基础设施,而是通过节点间的相互协作进行网络互联的一种临时性自组织系统[1]。它具有组网灵活性强、可快速展开、高抗毁性等特点,是数字化战场通信的首选技术,随着技术的公开和发展,Adhoc网络开始广泛应用于抢险、救援、医疗、教学等领域中,具有巨大的发展前景。但另一方面,它的灵活特性给其安全性带来了严峻挑战,而密钥管理是Adhoc网络安全的核心技术。由于Adhoc网络具有网络拓扑结构动态变化、分布式、资源有限等特点,传统集中式的CA模型不能在密钥管理中直接应用。本文在分布式CA的思路指导下,采用门限秘密共享体制,利用基于身份的广义签密算法建立Adhoc网络的密钥管理方案。方案不需要公钥证书,减少了通信量和计算量;广义签密算法的提出使得在只需存储一个算法的前提下即可实现签密、加密和签名三种功能,节省了用户的存储空间,能够更好地适应MANET环境。2相关工作Zhou和Haas提出的解决Adhoc网络中密钥管理问题的最早方法之一是部分分布式CA方案[2],随后这个方案被Yi和Kravets扩展,同时还提出了一些积极的改进。HLuo提出完全分布式CA方案[3],与部分分布式CA不同的是它假定节点相同并且完全对等,所有节点都是服务节点,CA的责任由网络中所有节点共同承担。以上的两种方案都是基于证书的,当网络规模很大时,要获得用户的公钥,通信量和计算量都是较大的。由Hubaux提出的基于证书链的密钥管理是一种完全自组织形式的方案[4],不再需要任何可信第三方,它类似于PGP(PrettyGoodPrivacy),节点自己完成公钥/私钥对的产生、证书的签发等。与PGP不同的是,它没有集中的证书目录服务,每个用户都有自己的证书库,存有三种类型的证书:用户发出的证书、发给用户的证书和由算法生成的证书。方案的缺点是信任基于广义签密的移动Adhoc网络密钥管理方案魏靓,张串绒,郑连清WEILiang,ZHANGChuan-rong,ZHENGLian-qing空军工程大学电讯工程学院,西安710077TelecommunicationEngineeringInstitute,AirForceEngineeringUniversity,Xi’an710077,ChinaE-mail:weijing0619@163.comWEILiang,ZHANGChuan-rong,ZHENGLian-qing.Keymanagementschemebasedongeneralizedsigncryptioninmo-bileAdhocnetwork.ComputerEngineeringandApplications,2010,46(32):6-9.Abstract:MobileAdhocnetworkisanewmulti-hopwirelesscommunicationnetwork.Ithaswideapplication,butitisex-posedtokindsofsecuritythreats.KeymanagementisvitalinAdhocnetworksecurityresearchfield.ThispaperfirstanalyzestherelatedworkaboutkeymanagementinmobileAdhocnetwork,andthenanalgorithmisproposedbasedonidentity-basedgeneralizedsigncryption.Lastlyasuitablekeymanagementschemeisputforwardbasedongeneralizedsigncryptionandthresholdcrytograph.Thisschemenotonlysavestheuser’sstorage,butalsodecreasesthecommunicationandcomputa-tionoverheadbecauseofgeneralizedsigncryption.Thedetailedkeygenerationandkeyupdateschemesensurethescheme’savailability.Keywords:keymanagement;Adhocnetwork;generalizedsigncryption;identity-based;secretsharing;bilinearpairing摘要:移动Adhoc网络是一种新型的多跳无线通信网络,有广阔的应用前景,但也存在着各种安全威胁,密钥管理是Adhoc网络安全性研究中的一个极其重要的研究领域。首先介绍了移动Adhoc网络密钥管理的相关工作,然后给出一个基于身份的广义签密算法,最后提出一个结合广义签密和门限密码的适合移动Adhoc网络的密钥管理方案。方案使用基于身份的广义签密算法,节省了用户的存储空间,减少了通信量和计算量。方案具体描述了密钥生成和密钥更新机制,确保了其可用性。关键词:密钥管理;Adhoc网络;广义签密;基于身份;秘密共享;双线性对DOI:10.3778/j.issn.1002-8331.2010.32.002文章编号:1002-8331(2010)32-0006-04文献标识码:A中图分类号:TN918.1基金项目:国家自然科学基金(theNationalNaturalScienceFoundationofChinaunderGrantNo.60873233)。作者简介:魏靓(1980-),女,博士研究生,主要研究领域:无线网络安全、密码学;张串绒(1965-),女,博士,副教授,主要研究方向:无线网络安全、密码学;郑连清(1963-),男,博士,教授,主要研究方向:网络安全,信息对抗。收稿日期:2010-07-15修回日期:2010-10-1162010,46(32)魏靓,张串绒,郑连清:基于广义签密的移动Adhoc网络密钥管理方案链只提供了弱认证,很难确保经过多跳的信任链的合法性。Yi等提出一种复合式密钥管理方案[5],将分布式CA与证书链方法结合起来。方案给出了一套认证度量机制,用户可以用它来计算认证的可信度。同时,用户根据自己的安全需求对分布式CA设置不同的信任值,分布式CA是信任的基点,任何包含CA的证书链都可以用于认证。方案的缺点是没有有效的证书撤销机制,不确定因素较多。基于簇的密钥管理方案是将网上的节点划分成多个簇[6],每个簇都有一个控制节点即簇头。簇头的性能优于其他节点,包括计算和存储能力、功率和传输范围等,它还具有相对好的物理安全性。网络中普通节点分属于这些簇,类似多个自治域,由簇头节点负责本簇节点的密钥管理。簇头和簇成员的从属关系可以是动态的,一个簇成员也可以加入其他的簇。簇头节点构成高一级的网络,簇头节点之间是对等的。缺点是分簇算法复杂,簇头选择困难。Khalili首先提出了一个基于身份的密钥管理方案[7]。初始化阶段,由一组选定的节点共同承担私钥产生中心(PKG)的职责,PKG以分布式产生系统的公钥和私钥。每个用户以唯一的身份标记ID作为公钥,例如名字、MAC地址等,不需要公钥证书。系统的公钥广播给网络中所有节点,系统私钥被分布到n个节点,每个节点拥有私钥的一个分量,结合门限密码体制,至少需要t个分量才能形成系统私钥。初始化以后,PKG为用户发送与其身份相应的私钥。这种方案不需要公钥证书的存在,极大地减少了计算量和通信开销,也减少了用户的存储容量,但是存在密钥托管的问题。随后Deng等人提出一个基于身份的密钥管理方案[8]希望实现以完全分布式方式安全建立用户私钥,但其中新节点主密钥份额的产生方法是错误的。李光松的方案[9]仅仅将基于身份的签密方案的思想引入到密钥管理中,并没有详细论述其实现过程。ZhangChuan-rong等人基于签密方案和门限体制给出了一种密钥管理方案[10],不仅实现了机密性和认证性,而且节省了网络带宽和节点的计算量,但是方案的讨论主要集中在密钥分量更新上。本文借鉴了[9-11]方案的优点,利用基于身份的广义签密算法给出了一种适合Adhoc网络的密钥管理方案。3基于身份的广义签密算法广义签密是具有更强适应性的签密机制,在要求同时满足机密性和认证性时能够提供加密和签名双重功能,而只要求一种功能时,无需任何修改和附加计算就可以单独提供加密或签名功能。基于身份的广义签密算法有签密、签名、加密三种模式,关键一点是可以利用身份区分三种情况。当双方身份都存在时是签密模式;当只存在一方身份时就是签名或加密模式。提出一个基于身份的广义签密算法IDGSC,具体细节如下:Setup:设G1是由P生成的循环加法群,阶为q,G2是具有相同阶q的循环乘法群,e:G1´G1®G2为一个双线性映射。定义3个安全的Hash函数H0:{01}*®G1,H1:{01}*®Z*q以及H2:G2®(01)n。PKG随机选择一个主密钥sÎZ*q,计算Ppub=sP并公开系统参数params={G1G2nePPpubH0H1H2},主秘密s保密,而且H2(1)为nbit全为0的字符串。参数(Ek,Dk)是安全的对称加解密算法对,当k是全为0的字符串时,Ek(m)=Dk(m)=m。Extract:给定一个用户U的身份IDU,PKG计算该用户的私钥SU=sQU,其中,QU=H0(IDU)为该用户的公钥。这里,假设Alice的身份为IDA,公钥为QA,私钥为SA;Bob的身份为IDB,公钥为QB,私钥为SB。在只签名(加密)模式下,接收者(发送者)不存在,即当U=IDU=IDϕ时,(οο)¬(QUSU),此时IDϕ是零字符串。3.1签密模式签密GSC(SAIDBm):为了给Bob发送消息,Alice执行以下步骤:(1)选择rÎZ*q。(2)计算①U=rP+rQA,其中QA=H0(IDA);②ω=e(rPpub+rSAQB),其中QB=H0(IDB);③c=Ek(m||IDA),其中k=H2(ω);④V=rPpub+(r+h1)SA,其中h1=H1(U||c)。(3)发送密文σ=(UVc)给Bob。解签密UGSC(IDASBσ):当收到密文σ时,Bob首先验证签名,然后根据验证的结果决定是否要恢复明文信息,从而提高了系统的合理性和效率。(1)验证①QA=H0(IDA);②验证等式e(VP)=e(U+h1QAPpub)等式是否成立,若成立则表明该消息是Alice签发的,否则Bob拒绝该消息。其中h1=H1(U||c)。(2)计算①ω=e(USB);②m||IDA=Dk(c),其中k=H2(ω)。一致性分析:e(VP)=e(rPpub+(r+h1)SAP)=e(rsP+(r+h1)sQAP)=e(rP+rQA+h1QAsP)=e(U+h1QAPpub)同时e(USB)=e(rP+rQAsQB)=e(rsP+rsQAQB)=e(rPpub+rSAQB)3.2签名模式GSC(SAIDϕm)=Sign(SAm):如果Alice只想将消息m签名,则她执行以下步骤:(1)选择rÎZ*q。(2)计算①U=rP+rQA,其中QA=H0(IDA);②ω=e(rPpub+rSAο)=1;③m||IDA=Ek(m||IDA),其中k=H2(1);④V=rPpub+(r+h1)SA,其中h1=H1(U||(m||IDA))。(3)返回σ=(UV(m||IDA)),此时的σ是对消息m的签名。UGSC(IDAIDϕσ)=Verify(IDAτ):任何人可以通过以下的计算验证消息m的签名,确定消息的来源:①QA=H0(IDA);②e(VP);③e(U+h1QAPpub),其中h1=H1(U||(m||ID