CN101980558A - 一种Ad hoc网络传输层协议上的加密认证方法 - Google Patents
一种Ad hoc网络传输层协议上的加密认证方法 Download PDFInfo
- Publication number
- CN101980558A CN101980558A CN2010105456402A CN201010545640A CN101980558A CN 101980558 A CN101980558 A CN 101980558A CN 2010105456402 A CN2010105456402 A CN 2010105456402A CN 201010545640 A CN201010545640 A CN 201010545640A CN 101980558 A CN101980558 A CN 101980558A
- Authority
- CN
- China
- Prior art keywords
- node
- described node
- mod
- key
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
一种Ad hoc网络传输层协议上的加密认证方法,它包括五大部分十八个具体步骤;五大部分是配置阶段,认证阶段,密钥协商阶段,加密过程,密钥更新流程;本发明涉及的加密认证方法应用在多跳Ad hoc网络中的两个节点进行端到端通信时的握手协商过程中,所述的两个节点先通过验证消息认证码即MAC进行相互认证,认证成功后采用ECDH算法进行密钥协商,最后以通过所述的密钥协商过程获得的共享密钥作为密钥材料采用AES算法对后续消息进行加密,在通信过程中发起密钥更新流程。在认证和密钥协商过程中,采用XOR运算对认证信息和密钥协商信息进行加密,安全性好,效率也很高,系统开销小并能保证加密的强度,所以,本发明在无线网络技术领域里具有广阔地应用前景。
Description
(一)技术领域
本发明涉及一种保证自组织分组无线网(Ad hoc网络)端到端通信安全的加密、认证方法,尤其涉及一种Ad hoc网络传输层协议上的加密、认证方法,属于无线网络技术领域。
(二)背景技术
保证通信安全是网络应用所必须面对的挑战,在无线环境中尤其如此。本发明是基于Ad Hoc网络的,它不需要基础设施的支持,可通过节点自由的组网实现通信,针对Ad hoc网络的研究是由军事通信应用而发起的,目前军事应用仍然是其主要的应用领域;同时它在民用领域也有着非常广阔的应用前景,可支持移动商务、移动会议、自然或人为灾难营救过程中的信息交换以及临时性交互式通信等。可以预测,Ad hoc网络在未来的移动通信领域中将扮演非常重要的角色。与此同时,由于Ad Hoc网络具有的开放媒质、动态拓扑、缺乏集中式管理、资源受限等特点,其通信安全面临着巨大的挑战:首先,由于通信使用无线信道,使得Ad Hoc网络易于受到链路攻击,从被动的窃听到主动的扮演、消息重发、消息破坏,窃听能使得攻击者获得敏感信息而破坏机密性;主动攻击可能造成攻击者删除、修改消息甚至扮演一个合法节点,破坏了可用性、完整性、认证和不可否认性。
在上述研究背景下,为了实现信息安全,需要通过两个基本途径:数据加密以及身份认证。在Ad hoc网络中面对实际应用,需要将两者结合,形成完整的安全传输协议。目前用于解决Ad hoc网络通信安全问题的协议很多,但都有各自的优势和不足,有的是安全性不够,对于某些攻击无法抵抗;有的是带来的系统开销太大,不利于具体实施。所以在这个方向上还需要进行更多的研究,不断的进行完善。
本发明涉及XOR运算,ECDH密钥协商算法,AES加密算法。
XOR运算即异或运算,表示为⊕,是二进制运算。m XOR n的运算过程是将m,n转化为2进制数,再进行对比,每个数位上的0或1如果相同,那么结果就取0,如果不同就取1, 将得到的结果转化为原来进制的数,就是运算结果。即:
1⊕1=0,0⊕0=0,1⊕0=1,0⊕1=1
XOR运算的特点是高效,运算速度快。采用XOR运算作加密操作,若使用暴力破解,如所述m XOR n=k,假设k有L(L为m、n中位数较大的数的位数)位长度,那么单从k去反推m和n的值,有2L种可能的结果,可见XOR运算的加密强度还是很高的。
ECDH(椭圆曲线Diffie-Hellman)密钥协商算法,使两个用户可以创建共享的密钥,并且这两个用户可以在不安全的公共媒体上完成此操作,而不必事先交换任何私有信息。该密钥协商算法通常用于派生密钥材料,对称算法(AES算法)可以使用该密钥材料对后续消息进行加密。ECDH密钥协商算法依赖两个公共参数:p和g,参数p是一个大的质数,参数g是一个小于p的整数,这两个参数可以通过不安全的线路进行交换。进行密钥协商的两个节点A和B收到这两个公共参数后,分别选择一个整数作为私钥,假设A选择了a,B选择了b;然后,A和B使用公共参数及其私钥创建公钥,A使用(g^a)mod p,B使用(g^b)mod p,这些是非对称密钥,因为它们不匹配;A和B交换这些公钥,并使用它们计算共享的密钥,虽然A和B不知道彼此的私钥,ECDH算法却能保证A和B将计算出同一共享密钥。计算方法如下:A计算(((g^b)mod p)^a)mod p,B计算(((g^a)mod p)^b)mod p,由g^(ab)=g^(ba)可推导出(((g^b)mod p)^a)mod p=(((g^a)mod p)^b)mod p。如果p、g、a和b是较小的值,那么它们生成的加密消息很容易被暴力攻击破坏,在实际情况中,会取较大的数。在本发明涉及的加密认证方法中,通信双方交换的密钥协商信息会经过XOR运算进行加密,所以不需要取大数也能达到足够的安全强度,避免带来过大的系统计算开销。
AES加密算法,即高级加密标准(Advanced Encryption Standard),又称Rijndael加密法,是美国联邦政府采用的一种对称分组加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
(三)发明内容
(1)发明目的
本发明的目的是提供了一种Ad hoc网络传输层上的加密认证方法,它是为解决Ad hoc网络节点间端到端的通信安全问题而应运产生的,其实现的功能包括对通信双方的身份进行 认证、对数据进行加密,并尽量避免带来太大的系统开销。
(2)技术方案
为了达到上述目的,本发明的技术方案如下:
Ad hoc网络中的两个节点A、B,直接或者经过多跳路由进行通信,在数据传输开始之前,会在传输层上进行握手协商,进行端对端认证并协商密钥对接下来的数据进行加密。下面将结合附图说明在所述两节点间进行传输层上的加密认证的技术方案。
本发明一种Ad hoc网络传输层协议上的加密、认证方法,其特征在于,所述方法包括五个部分:配置阶段,认证阶段,密钥协商阶段,加密过程,密钥更新流程。这五个部分之间的相互关系如附图1所示,在部署Ad hoc网络节点前先进入配置阶段,配置完成后可部署配置好的节点;在每次通信会话开始时先进入认证阶段,让需要进行通信的两个节点彼此通过对方的认证;然后就可以进入密钥协商阶段,在此阶段里,通信的两个节点通过协商算法协商密钥;成功后即可进入加密阶段,使用协商好的密钥材料,对接下来的通信消息进行加密(这里使用分组加密方法AES);在会话工程中,一方可以发起密钥更新请求,进入密钥更新流程,密钥更新过程即双方重新进行一次密钥协商,产生新的协商密钥,然后重新进入加密阶段,密钥更新能带来更高的安全性。本发明所述的加密、认证方法的主要思想和各部分的详细步骤详述如下。
本发明一种Ad hoc网络传输层协议上的加密、认证方法,其步骤如下:
1.配置阶段:
配置阶段主要是在各节点中部署节点ID表,建立节点及节点ID的对应关系。可以假设Ad hoc网络中的每个节点(如手持终端,移动电脑,车载终端甚至传感器节点)都有一定的存储能力和计算能力,本加密认证方法对节点的存储空间要求较低,会随着网络中节点数量的增加而有所增加,但能保持在千字节(KB)数量级上,以目前的硬件条件完全可以达到。在配置阶段,每个节点在自己的内存中存储一份节点身份(本文后面将用“节点ID表”表示,身份用ID即Identity表示)表,如图2所示,表中包含节点名称和节点ID两列,网络中的每个节点对应表中的一条记录,节点名称可为节点的IP、编号等等,是可明文发送的信息;每个节点都有唯一的节点ID作为该节点的标识码与之相对应,在认证彼此身份时会被使用,节点ID必须密文发送,所以这份节点ID表不能泄露,防止攻击者利用该表破坏认证机制,进行冒名攻击。
2.认证阶段:
如在配置阶段所述,节点具备一定的计算能力,本方法涉及的算法复杂度都比较低,比如异或(XOR,记作⊕)运算、杂凑运算,都可以在节点计算能力受限的条件下进行,下面介绍具体步骤。本发明认证阶段的具体步骤如下:
步骤1:所述节点A生成随机数RA,并计算MACA=h(RA⊕IDA),MACA为所述节点A的消息认证码(message authentication code),h()为一杂凑函数,IDA为所述节点A的标识码(ID)。
步骤2:所述节点A查询节点ID表得到所述节点B的认证码IDB,将RA,IDA,IDB一起做XOR运算,将MACA,RA⊕IDA⊕IDB发送给所述节点B。
步骤3:所述节点B将接收到的RA⊕IDA⊕IDB存储起来,查询节点ID表得到所述节点A的认证码IDA,并计算(RA⊕IDA)′=(RA⊕IDA⊕IDB)⊕IDB,MACA′=h((RA⊕IDA)′),判断MACA与MACA′是否相等,若相等,则所述节点B认证所述节点A成功;否则,认证失败,握手失败。
步骤4:若步骤3中认证成功,所述节点B生成随机数RB,并计算出MACB=h(RB⊕IDB),MACB为所述节点B的消息认证码。
步骤5:所述节点B,将RB,IDB,IDA一起做XOR运算,将MACB,RB⊕IDB⊕IDA发送给所述节点A。
步骤6:所述节点A将接收到的RB⊕IDB⊕IDA存储起来,计算(RB⊕IDB)′=(RB⊕IDB⊕IDA)⊕IDA,MACB′=h((RB⊕IDB)′),判断MACB与MACB′是否相等,若相等,则所述节点A认证所述节点B成功,双方彼此认证成功,认证阶段完成;否则,认证失败,握手失败。
3.密钥协商阶段:本发明密钥协商阶段的具体步骤如下:
步骤7:所述节点A生成整数a作为自己的私钥。
步骤8:所述节点A计算RA⊕((g^a)mod p),并将其发送给所述节点B。
步骤9:所述节点B生成整数b作为自己的私钥。
步骤10:所述节点B使用步骤3中存储的RA⊕IDA⊕IDB,计算出RA=(RA⊕IDA⊕IDB)⊕(IDB⊕IDA),进而计算K=((RA⊕(RA⊕((g^a)mod p)))^b)mod p=(((g^a)mod p)^b)mod p,K为协商后的共享密钥。
步骤11:所述节点B计算RB⊕((g^b)mod p),并将其发送给所述节点A。
步骤12:所述节点A使用步骤6中存储的RB⊕IDB⊕IDA,计算RB=(RB⊕IDB⊕IDA)⊕(IDB⊕IDA),进而计算K=((RB⊕(RB⊕((g^b)mod p)))^a)mod p=(((g^b)mod p)^a)mod p,K为协商后的共享密钥,密钥协商阶段完成。
4.加密过程
在完成认证、密钥协商后,所述两个节点可使用共享密钥K作为AES加密算法的密钥材料,对在它们之间交换的消息进行加密,保证通信安全。AES加密算法目前已成为对称密钥加密中最流行的算法之一,有非常成熟和丰富的实现方法,包括软件实现(如JAVA,C#中的相关类)和硬件实现(如AES加密算法芯片),由于本发明只是阐述方法实现的思想,具体实现可根据具体的实施环境(网络环境,节点类型等),采用最合适的实现方法。
5.密钥更新流程:
在通信进行一段时间后所述节点还可以发起密钥更新流程,密钥更新可以进一步减小密钥被破译的可能,为数据通信带来更大的安全强度。假设所述密钥更新流程由所述节点A发起,其密钥更新流程的步骤如下:
步骤13:所述节点A生成整数a′作为新的私钥,要求a′不等于a。
步骤14:所述节点A计算RA⊕((g^a′)mod p),并将其发送给所述节点B。
步骤15:所述节点B生成整数b′作为新的私钥,要求b′不等于b。
步骤16:所述节点B计算K′=((RA⊕(RA⊕((g^a′)mod p)))^b′)mod p=(((g^a′)mod p)^b′)mod p,K′为更新后的共享密钥。
步骤17:所述节点B计算RB⊕((g^b′)mod p),并将其发送给所述节点A。
步骤18:所述节点A计算K′=((RB⊕(RB⊕((g^b′)mod p)))^a′)mod p=(((g^b′)mod p)^a′)mod p,K′为更新后的共享密钥,密钥更新流程完成。
(3)优点及功效:
本发明一种Ad hoc网络传输层协议上的加密、认证方法,其优点是实现了相互通信的两个节点间的身份认证、对密钥协商、数据加密、密钥更新的功能,并且产生的系统开销并不大。
由于ECDH密钥协商算法无法抵抗中间人攻击,本发明所涉及方法先对两个通信节点进行相互认证,使攻击者无法发起中间人攻击;在密钥协商过程中使用XOR算法对协商信息进行加密,这样就可以不用选择非常大的公共参数就能抵御暴力破解的攻击,减小了系统开销;提供了密钥更新的方法,减小了密钥被破解的风险。
本发明申请书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
(四)附图说明
图1本发明所述方法流程图
图2本发明所述节点ID表
图3本发明所述认证加密流程图
图4本发明所述密钥更新流程图
图中符号说明如下:
⊕:异或运算符;
^:幂运算,如g^b指g的b次幂运算;
h():杂凑运算符,如h(RB⊕IDB)指求RB⊕IDB的杂凑值。
(五)具体实施方式
由于本发明主要是阐述方法实现的思想,具体实现可根据具体的实施环境(网络环境,节点类型等),采用最合适的实现方法,下面在介绍本发明的技术方案的具体实施方式时会采用一些具体的方法(如具体的杂凑函数等),但实际的实现并不限于所述的方法。下面将结合附图直观的说明在两节点间进行传输层上的所述加密认证方法的具体实施,图1为加密认证方法流程图;图2为节点ID表;图3为认证加密流程;图4为密钥更新流程。具体实施过程如下。
本发明所述的一种Ad hoc网络传输层协议上的加密、认证方法,如图1所示包括五个部分:配置阶段,认证阶段,密钥协商阶段,加密过程,密钥更新流程。在部署Ad hoc网络节点前先进入配置阶段,配置完成后可部署配置好的节点;在每次通信会话开始时先进入认证阶段,让需要进行通信的两个节点彼此通过对方的认证;然后就可以进入密钥协商阶段,在此阶段里,通信的两个节点通过协商算法协商密钥;成功后即可进入加密阶段,使用协商好的密钥材料,对接下来的通信消息进行加密(这里使用分组加密方法AES);在会话工程中,一方可以发起密钥更新请求,进入密钥更新流程,密钥更新过程即双方重新进行一次密钥协商,产生新的协商密钥,然后重新进入加密阶段,密钥更新能带来更高的安全性。
能组成Ad hoc网络的节点种类很多,如手持终端,移动电脑,车载终端或者传感器节点,但要能应用本发明所述的加密认证方法,需要节点具有一定的软、硬件条件。主要包括:(1)具有一定的存储空间,本方法需要在每个节点中存储一份节点ID表,并在通信过程中需要存储一些参数,对存储空间的具体要求与网络的规模有关,比如网络中有1000个节点,那 么只需要最少4KB(具体的计算过程见下文)的存储空间;如果网络扩大100倍,包含100000个(实际应有中不会有这么大的ad hoc网络)节点,那么也只需最少6KB的存储空间,可见本方法对空间的要求并不高;(2)具有一定的计算能力,要求节点具有能运行杂凑函数和指数计算的计算能力,鉴于其中杂凑算法复杂度较高,可以根据节点的实际硬件计算水平选用其可以负担的杂凑算法,比较常用的有MD5,SHA-1等,可以采用软件实现,也可以采用硬件实现。
不妨设两个节点A和B,然后以这两个节点间的加密认证过程为例来具体阐述这五个阶段的具体实施方式。
1.配置阶段:
在配置阶段,在每个节点的内存空间中存储一份节点ID表,如图2所示,表中包含节点名称和节点ID两项,网络中的每个节点对应表中的一条记录,节点名称可为节点的IP、编号等等;节点ID作为该节点的认证码与该节点相对应。下面以采用编号做节点名称为例,在具有1000个节点的网络中,节点名称占用2字节(2字节可记录0~65535的编号),节点ID占用2字节就足够,这样的话所述网络中需要配置到节点的节点ID表占用的存储空间仅为(2+2)×1000=4000字节即4KB。为了提高安全性,节点ID采用32位的认证码,即4字节,在这种情况下所述网络的节点ID表也仅占6KB的存储空间。在本例中节点ID表中的记录为A:节点名称——0x0001,节点ID——0xE48269AC;B:节点名称——0x0002,节点ID——0x15240FE1,这里节点ID的生成方法不限(本例中采用的是以认证码和一个随机数作为参数处理产生),只要让他们彼此不同即可。
2.认证阶段:
在本阶段需要进行杂凑运算,杂凑运算是在信息安全领域有广泛和重要应用的密码算法,主要作用是数据完整性验证和消息认证,其把任意有限长的输入行映射到固定长的行。目前常用的杂凑函数有MD4,MD5,SHA-1,SHA-224,SHA-256等等,其中复杂度MD4,MD5低于SHA-1,SHA-224,SHA-256等,相应的安全性SHA-224,SHA-256高于SHA-1,MD5(MD5算法在某种程度上已经被破解,SHA-1也面临被破解),可根据节点计算能力的强弱和对安全性要求的高低选用具体杂凑函数,在本例中阐述认证阶段的具体实施时使用MD5作为杂凑函数。本发明认证阶段的具体步骤如下:
步骤1:所述节点A生成消息认证码MACA,具体公式为MACA=h(RA⊕IDA),RA为一随机数(本例中可取与节点认证码一样的长度,即32位),h()为杂凑函数(在本例中采用MD5 算法),在本例中取RA=0x014A0513,IDA为本例中所述节点A的认证码0xE48269AC,则RA⊕IDA=0x014A0513⊕0xE48269AC=0000 0001 0100 1010 0000 0101 0001 0011⊕1110 0100 1000 0010 0110 1001 1010 1100=1110 0101 1100 1000 0110 1100 1011 1111=0xE5C86CBF,MACA=h(RA⊕IDA)=hMD5(0xE5C86CBF)=0x 2765C4636844622CCD6D8F4039E67295。
步骤2:所述节点A查询节点ID表得到所述节点B的认证码IDB=0x15240FE1,将RA,IDA,IDB一起做XOR运算,将MACA,RA⊕IDA⊕IDB发送给所述节点B,在本例中RA⊕IDA⊕IDB=0x014A0513⊕0xE48269AC⊕0x15240FE1=0xF0EC635E。
步骤3:所述节点B将接收到的RA⊕IDA⊕IDB存储起来,查询节点ID表得到所述节点A的认证码IDA,并计算(RA⊕IDA)′=(RA⊕IDA⊕IDB)⊕IDB,MACA′=h((RA⊕IDA)′),判断MACA与MACA′是否相等,若相等,则所述节点B认证所述节点A成功;否则,认证失败,握手失败。在本例中(RA⊕IDA)′=0xF0EC635E⊕0x15240FE1=0xE5C86CBF,MACA′=h((RA⊕IDA)′)=hMD5(0xE5C86CBF)=0x2765C4636844622CCD6D8F4039E67295,MACA′=MACA,认证成功。
步骤4:若步骤3中认证成功,所述节点B生成随机数RB,并计算出MACB=h(RB⊕IDB),MACB为所述节点B的消息认证码。在本例中,生成RB=0XC57D01B6,计算MACB=h(RB⊕IDB)=hMD5(0xC57D01B6⊕0x15240FE1)=hMD5(0xD0590E57)=0xAF9A1D417141BDD742C77Ad1EA57C00E。
步骤5:所述节点B,将RB,IDB,IDA一起做XOR运算,将MACB,RB⊕IDB⊕IDA发送给所述节点A,在本例中RB⊕IDB⊕IDA=0xC57D01B6⊕0x15240FE1⊕0xE48269AC=0x34DB67FB。
步骤6:所述节点A将接收到的RB⊕IDB⊕IDA存储起来,计算(RB⊕IDB)′=(RB⊕IDB⊕IDA)⊕IDA,MACB′=h((RB⊕IDB)′),判断MACB与MACB′是否相等,若相等,则所述节点A认证所述节点B成功,双方彼此认证成功;否则,认证失败,握手失败。本例中(RB⊕IDB)′=(RB⊕IDB⊕IDA)⊕IDA=0x34DB67FB⊕0xE48269AC=0xD0590E57,MACB′=h((RB⊕IDB)′)=hMD5(0xD0590E57)=0xAF9A1D417141BDD742C77Ad1EA57C00E,认证成功,至此认证阶段完成。
3.密钥协商阶段:
在本阶段使用ECDH密钥协商算法进行密钥协商,在ECDH密钥协商算法中有两个公共参数p和g,参数p是一个大的质数,参数g是一个小于p的整数,这两个参数可以明文进行交换,在本例中取p=233,g=150,本发明密钥协商阶段的具体步骤如下:
步骤7:所述节点A生成整数a作为自己的私钥,本例中取a=200。
步骤8:所述节点A计算RA⊕((g^a)mod p),并将其发送给所述节点B,本例中RA⊕((g^a)mod p)=0x014A0513⊕((150^200)mod 233)=0x014A0513⊕184=0x014A0513⊕0x000000B8= 0x014A05AB。
步骤9:所述节点B生成整数b作为自己的私钥,本例中取b=14。
步骤10:所述节点B使用步骤3中存储的RA⊕IDA⊕IDB,计算出RA=(RA⊕IDA⊕IDB)⊕(IDB⊕IDA),进而计算K=((RA⊕(RA⊕((g^a)mod p)))^b)mod p=(((g^a)mod p)^b)mod p,K为协商后的共享密钥。本例中RA=(RA⊕IDA⊕IDB)⊕(IDB⊕IDA)=0xF0EC635E⊕(0x15240FE1⊕0xE48269AC)=0xF0EC635E⊕0xF1A6664D=0x014A0513,K=((RA⊕(RA⊕((g^a)mod p)))^b)mod p=((0x014A0513⊕0x014A05AB)^14)mod 233=(184^14)mod 233=46。
步骤11:所述节点B计算RB⊕((g^b)mod p),并将其发送给所述节点A。本例中RB⊕((g^b)mod p)=0XC57D01B6⊕((150^14)mod 233)=0XC57D01B6⊕18=0xC57D01A4。
步骤12:所述节点A使用步骤6中存储的RB⊕IDB⊕IDA,计算RB=(RB⊕IDB⊕IDA)⊕(IDB⊕IDA),进而计算K=((RB⊕(RB⊕((g^b)mod p)))^a)mod p=(((g^b)mod p)^a)mod p,K为协商后的共享密钥。本例中RB=(RB⊕IDB⊕IDA)⊕(IDB⊕IDA)=0x34DB67FB⊕(0x15240FE1⊕0xE48269AC)=0x34DB67FB⊕0xF1A6664D=0xC57D01B6,K=((RB⊕(RB⊕((g^b)mod p)))^a)mod p=(((g^b)mod p)^a)mod p=(0xC57D01B6⊕0xC57D01A4)^200)mod 233=(18^150)mod 233=46,至此A,B两节点完成密钥协商,协商密钥K=46,密钥协商阶段完成。
4.加密过程
在完成认证、密钥协商后,所述两个节点可使用共享密钥K作为AES加密算法的密钥材料,对在它们之间交换的消息进行加密,保证通信安全。AES加密算法目前已成为对称密钥加密中最流行的算法之一,有非常成熟和丰富的实现方法,包括软件实现(如JAVA,C#中的相关类)和硬件实现(如AES加密算法芯片),在本例中使用JAVA的Cipher类进行AES加密和解密,在密钥协商过程中产生的协商密钥K=46,节点A要给节点B发送信息“Hello!This is A.”,使用K=46作为密钥材料,取RA⊕K=0x014A0513⊕46=0x014A053D作为密钥,RA为步骤1中节点A生成的随机数,用RA⊕K作为密钥而不直接使用K作为密钥的原因是K是一个小于g的整数,如果直接使用K作为对称加密密钥,当g不够大时,攻击者很容易采用穷举攻击,破坏AES加密;而如果取g非常大时,会带来较大计算开销;采用RA⊕K做密钥可以提高攻击者破解密钥的难度。在节点A中由明文“Hello!This is A.”得到密文“35160E3DAC6B7A6B04D27DC02F5B59F336C09569062D48E811F15DE48EB1E017”,并将其发送个节点B,节点B接收到密文后,用步骤10中计算得到的RA与协商密钥K做XOR运算,得到的结果作为密钥对密文进行解密,得到明文“Hello!This is A.”。
5.密钥更新流程:
在通信进行一段时间后所述节点还可以发起密钥更新流程,密钥更新可以进一步减小密钥被破译的可能,为数据通信带来更大的安全强度。本例中假设所述密钥更新流程由所述节点A发起,其密钥更新流程的步骤如下:
步骤13:所述节点A生成整数a′作为新的私钥,要求a′不等于a,本例中取a′=91。
步骤14:所述节点A计算RA⊕((g^a′)mod p),并将其发送给所述节点B,本例中RA⊕((g^a′)mod p)=0x014A0513⊕((150^91)mod 233)=0x014A0513⊕146=0x014A05B7。
步骤15:所述节点B生成整数b′作为新的私钥,要求b′不等于b,本例取b=156。
步骤16:所述节点B计算K′=((RA⊕(RA⊕((g^a′)mod p)))^b′)mod p=(((g^a′)mod p)^b′)mod p,K′为更新后的共享密钥,本例中K′=((RA⊕(RA⊕((g^a′)mod p)))^b′)mod p=((0x014A0513⊕0x014A05B7)^156)mod 233=(146^156)mod 233=225。
步骤17:所述节点B计算RB⊕((g^b′)mod p),并将其发送给所述节点A,本例中RB⊕((g^b′)mod p)=0XC57D01B6⊕((150^156)mod 233)=0XC57D01B6⊕210=0xC57D0164。
步骤18:所述节点A计算K′=((RB⊕(RB⊕((g^b′)mod p)))^a′)mod p=(((g^b′)mod p)^a′)mod p,K′为更新后的共享密钥,本例中K′=((RB⊕(RB⊕((g^b′)mod p)))^a′)mod p=((0XC57D01B6⊕0xC57D0164)^91)mod 233=(210^91)mod 233=225,新的协商密钥K′=225,至此密钥更新流程完成。
至此,上述实施实现了相互通信的两个节点间的身份认证、对密钥协商、数据加密、密钥更新的功能。
Claims (1)
1.一种Ad hoc网络传输层协议上的加密认证方法,其特征在于,该方法包括五个部分:配置阶段,认证阶段,密钥协商阶段,加密过程,密钥更新流程;
一、配置阶段的准备
设Ad hoc网络中的每个节点都有一定的存储能力和计算能力,节点的存储空间保持在千字节即KB数量级上,在配置阶段,每个节点在自己的内存中存储一份节点ID表,表中包含节点名称和节点ID两列,网络中的每个节点对应表中的一条记录,节点名称可为节点的IP、编号,是明文发送的信息;每个节点都有唯一的节点ID作为该节点的认证码与之相对应,用于认证彼此的身份,节点ID必须密文发送,不能被泄露;
二、认证阶段的实施
如在配置阶段所述,节点具备一定的计算能力,涉及的算法为异或运算即XOR,记作⊕、杂凑运算,都可以在节点计算能力受限的条件下进行,本阶段具体步骤如下:
步骤1:所述节点A生成随机数RA,并计算MACA=h(RA⊕IDA),MACA为所述节点A的消息认证码即message authentication code,h()为一杂凑函数,IDA为所述节点A的ID;
步骤2:所述节点A查询节点ID表得到所述节点B的认证码IDB,将RA,IDA,IDB一起做XOR运算,将MACA,RA⊕IDA⊕IDB发送给所述节点B;
步骤3:所述节点B将接收到的RA⊕IDA⊕IDB存储起来,查询节点ID表得到所述节点A的认证码IDA,并计算(RA⊕IDA)′=(RA⊕IDA⊕IDB)⊕IDB,MACA′=h((RA⊕IDA)′),判断MACA与MACA′是否相等,若相等,则所述节点B认证所述节点A成功;否则,认证失败,握手失败;
步骤4:若步骤3中认证成功,所述节点B生成随机数RB,并计算出MACB=h(RB⊕IDB),MACB为所述节点B的消息认证码;
步骤5:所述节点B,将RB,IDB,IDA一起做XOR运算,将MACB,RB⊕IDB⊕IDA发送给所述节点A;
步骤6:所述节点A将接收到的RB⊕IDB⊕IDA存储起来,计算(RB⊕IDB)′=(RB⊕IDB⊕IDA)⊕IDA,MACB′=h((RB⊕IDB)′),判断MACB与MACB′是否相等,若相等,则所述节点A认证所述节点B成功,双方彼此认证成功,认证阶段完成;否则,认证失败,握手失败;
三、密钥协商阶段的实施
步骤7:所述节点A生成整数a作为自己的私钥;
步骤8:所述节点A计算RA⊕((g^a)mod p),并将其发送给所述节点B;
步骤9:所述节点B生成整数b作为自己的私钥;
步骤10:所述节点B使用步骤3中存储的RA⊕IDA⊕IDB,计算出RA=(RA⊕IDA⊕IDB)⊕(IDB⊕IDA),进而计算K=((RA⊕(RA⊕((g^a)mod p)))^b)mod p=(((g^a)mod p)^b)mod p,K为协商后的共享密钥;
步骤11:所述节点B计算RB⊕((g^b)mod p),并将其发送给所述节点A;
步骤12:所述节点A使用步骤6中存储的RB⊕IDB⊕IDA,计算RB=(RB⊕IDB⊕IDA)⊕(IDA⊕IDB),进而计算K=((RB⊕(RB⊕((g^b)mod p)))^a)mod p=(((g^b)mod p)^a)mod p,K为协商后的共享密钥,密钥协商阶段完成;
四、加密过程的实施
在完成认证、密钥协商后,所述两个节点可使用共享密钥K作为AES加密算法的密钥材料,对在它们之间交换的消息用AES加密算法进行加密,保证通信安全;
五、密钥更新流程的实施
在通信进行一段时间后所述节点还可以发起密钥更新流程,密钥更新进一步减小密钥被破译的可能,为数据通信带来更大的安全强度;设所述密钥更新流程由所述节点A发起;
步骤13:所述节点A生成整数a′作为新的私钥,要求a′不等于a;
步骤14:所述节点A计算RA⊕((g^a′)mod p),并将其发送给所述节点B;
步骤15:所述节点B生成整数b′作为新的私钥,要求b′不等于b;
步骤16:所述节点B计算K′=((RA⊕(RA⊕((g^a′)mod p)))^b′)mod p=(((g^a′)mod p)^b′)mod p,K′为更新后的共享密钥;
步骤17:所述节点B计算RB⊕((g^b′)mod p),并将其发送给所述节点A;
步骤18:所述节点A计算K′=((RB⊕(RB⊕((g^b′)mod p)))^a′)mod p=(((g^b′)mod p)^a′)mod p,K′为更新后的共享密钥,密钥更新流程完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105456402A CN101980558B (zh) | 2010-11-16 | 2010-11-16 | 一种Ad hoc网络传输层协议上的加密认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105456402A CN101980558B (zh) | 2010-11-16 | 2010-11-16 | 一种Ad hoc网络传输层协议上的加密认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101980558A true CN101980558A (zh) | 2011-02-23 |
CN101980558B CN101980558B (zh) | 2012-07-11 |
Family
ID=43601035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105456402A Active CN101980558B (zh) | 2010-11-16 | 2010-11-16 | 一种Ad hoc网络传输层协议上的加密认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101980558B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594842A (zh) * | 2012-03-21 | 2012-07-18 | 江苏新大诚信息技术有限公司 | 一种基于设备指纹的网管消息认证与加密方案 |
CN102685740A (zh) * | 2012-03-29 | 2012-09-19 | 公安部第三研究所 | 一种短程无线通信节点及无线通信方法 |
CN102694809A (zh) * | 2012-05-31 | 2012-09-26 | 汉柏科技有限公司 | Ike主模式协商方法 |
CN103152733A (zh) * | 2011-12-07 | 2013-06-12 | 华为技术有限公司 | 一种通信方法、装置 |
CN105554028A (zh) * | 2016-01-22 | 2016-05-04 | 合肥学院 | 基于二维码的移动手持设备间的安全通信通道建立方法 |
CN106131835A (zh) * | 2016-07-08 | 2016-11-16 | 深圳市中兴物联科技股份有限公司 | 一种终端数据交换方法及系统 |
CN106817219A (zh) * | 2015-12-01 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种协商会话秘钥的方法及装置 |
CN107534658A (zh) * | 2015-03-16 | 2018-01-02 | 康维达无线有限责任公司 | 使用公钥机制在服务层的端对端认证 |
CN107835072A (zh) * | 2017-11-10 | 2018-03-23 | 周海军 | 网络通信的安全控制方法及装置 |
CN108323231A (zh) * | 2018-02-06 | 2018-07-24 | 福建联迪商用设备有限公司 | 一种传输密钥的方法、接收终端和分发终端 |
CN110048849A (zh) * | 2019-03-11 | 2019-07-23 | 广东安创信息科技开发有限公司 | 一种多层保护的会话密钥协商方法 |
WO2019200530A1 (zh) * | 2018-04-17 | 2019-10-24 | 福建联迪商用设备有限公司 | 终端主密钥的远程分发方法及其系统 |
CN110611679A (zh) * | 2019-09-25 | 2019-12-24 | 杭州港盛软件科技有限公司 | 一种数据传输方法、装置、设备及系统 |
CN111416791A (zh) * | 2019-01-04 | 2020-07-14 | 华为技术有限公司 | 数据传输方法、设备与系统 |
CN112153646A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 认证方法、设备及系统 |
CN114208108A (zh) * | 2019-08-02 | 2022-03-18 | 高通股份有限公司 | 网状网络中的安全路径发现 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1777882A (zh) * | 2003-04-28 | 2006-05-24 | 发尔泰公司 | 无线服务点网络 |
CN2785271Y (zh) * | 2003-11-24 | 2006-05-31 | 美商内数位科技公司 | 使用无线通信凭证/密钥的传送/接收单元 |
US7263619B1 (en) * | 2002-06-26 | 2007-08-28 | Chong-Lim Kim | Method and system for encrypting electronic message using secure ad hoc encryption key |
US20080170699A1 (en) * | 2007-01-12 | 2008-07-17 | Motorola, Inc. | Method and device for managing a wireless resource |
CN101304384A (zh) * | 2008-06-06 | 2008-11-12 | 南京邮电大学 | 安全性增强的蜂窝网与自组织网融合网络的安全路由方法 |
CN101335612A (zh) * | 2008-07-30 | 2008-12-31 | 浙江工业大学 | 一种面向移动自组织网络安全的双线性对密钥预分配方法 |
CN101610510A (zh) * | 2009-06-10 | 2009-12-23 | 南京邮电大学 | 层簇式无线自组织网络中的节点合法性多重认证方法 |
CN101741566A (zh) * | 2009-12-24 | 2010-06-16 | 北京科技大学 | 基于秘密共享加密的实体认证方法 |
-
2010
- 2010-11-16 CN CN2010105456402A patent/CN101980558B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263619B1 (en) * | 2002-06-26 | 2007-08-28 | Chong-Lim Kim | Method and system for encrypting electronic message using secure ad hoc encryption key |
CN1777882A (zh) * | 2003-04-28 | 2006-05-24 | 发尔泰公司 | 无线服务点网络 |
CN2785271Y (zh) * | 2003-11-24 | 2006-05-31 | 美商内数位科技公司 | 使用无线通信凭证/密钥的传送/接收单元 |
US20080170699A1 (en) * | 2007-01-12 | 2008-07-17 | Motorola, Inc. | Method and device for managing a wireless resource |
CN101304384A (zh) * | 2008-06-06 | 2008-11-12 | 南京邮电大学 | 安全性增强的蜂窝网与自组织网融合网络的安全路由方法 |
CN101335612A (zh) * | 2008-07-30 | 2008-12-31 | 浙江工业大学 | 一种面向移动自组织网络安全的双线性对密钥预分配方法 |
CN101610510A (zh) * | 2009-06-10 | 2009-12-23 | 南京邮电大学 | 层簇式无线自组织网络中的节点合法性多重认证方法 |
CN101741566A (zh) * | 2009-12-24 | 2010-06-16 | 北京科技大学 | 基于秘密共享加密的实体认证方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152733A (zh) * | 2011-12-07 | 2013-06-12 | 华为技术有限公司 | 一种通信方法、装置 |
WO2013083082A1 (zh) * | 2011-12-07 | 2013-06-13 | 华为技术有限公司 | 一种通信方法、装置 |
CN102594842A (zh) * | 2012-03-21 | 2012-07-18 | 江苏新大诚信息技术有限公司 | 一种基于设备指纹的网管消息认证与加密方案 |
CN102685740A (zh) * | 2012-03-29 | 2012-09-19 | 公安部第三研究所 | 一种短程无线通信节点及无线通信方法 |
CN102685740B (zh) * | 2012-03-29 | 2016-01-27 | 公安部第三研究所 | 一种短程无线通信节点及无线通信方法 |
CN102694809A (zh) * | 2012-05-31 | 2012-09-26 | 汉柏科技有限公司 | Ike主模式协商方法 |
US10880294B2 (en) | 2015-03-16 | 2020-12-29 | Convida Wireless, Llc | End-to-end authentication at the service layer using public keying mechanisms |
CN107534658A (zh) * | 2015-03-16 | 2018-01-02 | 康维达无线有限责任公司 | 使用公钥机制在服务层的端对端认证 |
CN106817219B (zh) * | 2015-12-01 | 2020-11-03 | 阿里巴巴集团控股有限公司 | 一种协商会话秘钥的方法及装置 |
CN106817219A (zh) * | 2015-12-01 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种协商会话秘钥的方法及装置 |
CN105554028A (zh) * | 2016-01-22 | 2016-05-04 | 合肥学院 | 基于二维码的移动手持设备间的安全通信通道建立方法 |
CN106131835A (zh) * | 2016-07-08 | 2016-11-16 | 深圳市中兴物联科技股份有限公司 | 一种终端数据交换方法及系统 |
CN107835072A (zh) * | 2017-11-10 | 2018-03-23 | 周海军 | 网络通信的安全控制方法及装置 |
CN108323231B (zh) * | 2018-02-06 | 2021-04-06 | 福建联迪商用设备有限公司 | 一种传输密钥的方法、接收终端和分发终端 |
WO2019153118A1 (zh) * | 2018-02-06 | 2019-08-15 | 福建联迪商用设备有限公司 | 一种传输密钥的方法、接收终端和分发终端 |
CN108323231A (zh) * | 2018-02-06 | 2018-07-24 | 福建联迪商用设备有限公司 | 一种传输密钥的方法、接收终端和分发终端 |
WO2019200530A1 (zh) * | 2018-04-17 | 2019-10-24 | 福建联迪商用设备有限公司 | 终端主密钥的远程分发方法及其系统 |
CN111416791A (zh) * | 2019-01-04 | 2020-07-14 | 华为技术有限公司 | 数据传输方法、设备与系统 |
US11652910B2 (en) | 2019-01-04 | 2023-05-16 | Huawei Technologies Co., Ltd. | Data transmission method, device, and system |
CN110048849A (zh) * | 2019-03-11 | 2019-07-23 | 广东安创信息科技开发有限公司 | 一种多层保护的会话密钥协商方法 |
CN110048849B (zh) * | 2019-03-11 | 2022-10-21 | 广东安创信息科技开发有限公司 | 一种多层保护的会话密钥协商方法 |
CN112153646A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 认证方法、设备及系统 |
CN112153646B (zh) * | 2019-06-28 | 2022-03-08 | 华为技术有限公司 | 认证方法、设备及系统 |
CN114208108A (zh) * | 2019-08-02 | 2022-03-18 | 高通股份有限公司 | 网状网络中的安全路径发现 |
CN110611679A (zh) * | 2019-09-25 | 2019-12-24 | 杭州港盛软件科技有限公司 | 一种数据传输方法、装置、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101980558B (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101980558B (zh) | 一种Ad hoc网络传输层协议上的加密认证方法 | |
CN103560879B (zh) | 一种轻量级认证与密钥协商的实现方法 | |
CN100574325C (zh) | 一种Web通信加密方法 | |
Tseng et al. | A chaotic maps-based key agreement protocol that preserves user anonymity | |
US8837736B2 (en) | Method for distributing encryption means | |
CN107809411A (zh) | 移动网络的认证方法、终端设备、服务器和网络认证实体 | |
Saxena et al. | Dynamic secrets and secret keys based scheme for securing last mile smart grid wireless communication | |
CN100452697C (zh) | 无线环境下的会话密钥安全分发方法 | |
CN106533656B (zh) | 一种基于wsn的密钥多层混合加/解密方法 | |
CN100594691C (zh) | Manet网络的数据传递加密方法 | |
CN106067878A (zh) | 一种网络数据加密传输方法 | |
CN102469173A (zh) | 基于组合公钥算法的IPv6网络层可信传输的方法和系统 | |
Yüksel et al. | Zigbee-2007 security essentials | |
Li | IoT node authentication | |
Lin et al. | Research on PUF-based security enhancement of narrow-band Internet of Things | |
Roselin et al. | Lightweight authentication protocol (LAUP) for 6LoWPAN wireless sensor networks | |
KR101366442B1 (ko) | 스마트 미터와 디바이스 간 인증 방법 | |
Prakasha et al. | Enhanced authentication and key exchange for end to end security in mobile commerce using wireless public key infrastructure | |
Wijesekera et al. | Quantum cryptography based key distribution in Wi-Fi networks-Protocol modifications in IEEE 802.11 | |
CN101222327A (zh) | 列车运行控制系统的安全椭圆曲线密码保护方法 | |
CN101588538A (zh) | 无线局域网鉴别与保密基础结构组播密钥协商方法及系统 | |
Gupta et al. | LS-AKA: A lightweight and secure authentication and key agreement scheme for enhanced machine type communication devices in 5G smart environment | |
Schürmann et al. | μDTNSec: a security layer for disruption-tolerant networks on microcontrollers | |
CN101527905A (zh) | 无线局域网鉴别与保密基础结构单播密钥协商方法及系统 | |
Wang et al. | Pseudonym-based cryptography and its application in vehicular ad hoc networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |