CN103560879B - 一种轻量级认证与密钥协商的实现方法 - Google Patents
一种轻量级认证与密钥协商的实现方法 Download PDFInfo
- Publication number
- CN103560879B CN103560879B CN201310468552.0A CN201310468552A CN103560879B CN 103560879 B CN103560879 B CN 103560879B CN 201310468552 A CN201310468552 A CN 201310468552A CN 103560879 B CN103560879 B CN 103560879B
- Authority
- CN
- China
- Prior art keywords
- key
- authentication
- node
- sqn
- bits
- 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.)
- Expired - Fee Related
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种轻量级认证与密钥协商的实现方法,在任意两个网络节点设备之间预置一个长期共享密钥K,所述任意两个网络节点上各自存储一个计数器CTR;所述两个节点中实现加密算法E和伪随机数生成算法PRNG;在两个节点之间建立认证和共享密钥。本发明针对现有的网络认证技术和密钥协商技术不适合资源受限通信环境的问题,可以高效、安全地适用于具有大量资源受限节点的物联网或者移动通信网络。本发明中认证和密钥协商过程中只用到4次对称密码算法,并且可以使用轻量级的分组对称密码算法,需要的密钥长度较短,加解密速度快。认证过程只有两次信息交互便可以完成双向认证,通信的数据量较小,占用的网络资源少。
Description
技术领域
本发明属于身份认证技术领域,涉及认证与密钥协商,具体涉及轻量级身份认证与密钥协商的实现方法,该方法适用于资源受限的网络环境中节点间的快速认证以及共享密钥的建立。
技术背景
在网络环境中,信息交互是连接网络中节点的必要条件。而在信息交互的过程中,又很容易造成敏感信息的泄露。因此,在网络通信过程中,通过定义一组协议规则来规范节点之间的网络行为,从而实现对网络通信的安全保护是一项重要的研究内容。
网络通信过程中,保护数据不被非法窃取的最基本的技术手段是使用加密措施。在使用对称加密方案的网络系统中,网络节点间进行加密传输数据前,首先需要享有共同的会话密钥,因此需要定义一整套规则在两个或多个网络节点间协商会话密钥。
在使用对称加密方案的网络系统中,需要对通信双方的身份通过特定的身份认证机制来证明他们的身份,即验证网络节点的身份与其所宣称的是否一致,然后在通信双方间协商一个会话密钥用于通信过程中的加解密,这就是关键的认证与密钥协商(Authentication and Key Agreement,AKA)过程。AKA过程的基本步骤是先完成认证,然后再进行密钥协商,但有时候认证与密钥协商过程是结合在一起的。
为了保证3G通信的安全,3GPP的规范中定义了AKA协议的具体过程和使用方法,为了说明方便,我们先介绍一下一些常用的缩写标记,在接下来要介绍的AKA协议中以及本发明的轻量级认证与密钥协商方法中都需要用到这些标记。
3GPP规范中定义的AKA协议,参与的主体有三个:用户终端(ME/USIM)、访问网络(VLR/SGSN)和归属网络(HE/HLR)。协议的执行需满足以下前提条件:
(1)用户与归属网络共享密钥K。
(2)用户信任归属网络HE。
(3)用户归属网络HE相信访问网络VLR能够安全处理信息。
(4)HE与VLR之间的通信链路足够安全。
协议的整个过程分为认证向量分发和密钥协商两部分,如图1所示。
认证向量分发过程中,用户ME漫游到访问网络VLR并且发起业务服务请求时,VLR就向用户的归属网络HE发送认证请求。HE收到请求就会产生一组认证向量AV,并把这组向量发送给VLR,每个向量由随机数RAND、期待的响应XRES、加密密钥CK、完整性密钥IK和认证标识AUTN组成。VLR把这些认证向量存储下来。
图2表示了认证向量的产生过程,这里f1,f2是消息认证函数,f3,f4,f5是密钥生成函数,对于ME和HE这些都是已知的算法。SQN是存储于ME和HE中的序列号,传输时用AK与之异或来进行隐藏。
认证与密钥协商过程是AKA协议中的关键部分,VLR选取一个认证向量,把RAND和AUTN发送给移动终端设备ME。ME收到VLR发来的信息,计算预期的XMAC,和收到的MAC相比。如果结果不一样,则用户返回认证失败,并终止执行。VLR向HE发送失败报告,并重新启动一个认证过程;如果结果一致,而且SQN也在正确范围内,则认为可以接收AUTN,并发送回应RES给VLR,开始产生CK和IK。VLR收到RES后,与存储的XRES比较,如果一致,则认为认证和密钥协商成功,准备用CK和IK进行传输数据加密保护。用户验证和产生RES、CK和IK的过程如图3所示。
在网络环境中,大多数情况都是只涉及到两方网络实体之间的认证和通信。上述的AKA协议中如果把归属网络和访问网络看成一个整体(即可以省去认证向量的分发过程),那么该协议也可以看作是移动终端和移动网络之间的认证和密钥协商,因此,也可以将它应用到其他两方网络实体之间的认证和密钥协商过程。但从效率上来说,这却并不是一种好的选择。
从通信上来看,AUTN的长度为128*3=384比特,RAND的长度为128比特。RES的长度为128比特,总的通信量为640比特。从计算上来讲,由图2和图3可知,通信双方分别要执行f1、f2、f3、f4、f5等五个密码算法。从存储上来讲,网络端至少要存储XRES、CK、IK共384比特,移动终端需要存储CK、IK共256比特。对于一些资源相对丰富的网络单元来说,这些消耗是可以接受的;但对于一些特殊网络来说,则对资源消耗比较敏感,需要充分考虑计算和通信开销。比如资源受限的无线传感器网络节点、RFID系统的标签节点等,其计算资源和通信资源就非常有限。因此,直接将传统的AKA技术应用于资源受限的网络环境中是不太合适的,需要有更加高效的AKA方案。
随着物联网技术的迅猛发展,物联网应用已经渗透到社会生产和生活的各个方面,大量资源受限的传感网络、RFID系统、移动智能终端等将连接到互联网或移动网络中,并与远程终端进行通信和控制,这样对前端传感网等网络本身的安全需求也不断提高,使用高效的、轻量级的AKA方法是必然的选择。
发明内容
本发明针对现有的网络认证技术和密钥协商技术不适合资源受限通信环境的问题,提供一种轻量级的认证与密钥协商算法LightAKA方法,可以高效、安全地适用于具有大量资源受限节点的物联网或者移动通信网络。本发明针对一些资源受限的网络环境,设计了一种轻量级的AKA算法,称为lightAKA算法,并说明了该算法在认证和密钥协商应用中的具体使用方法。
本发明的技术方案为:一种轻量级认证与密钥协商的实现方法,在任意两个网络节点设备间预置共享密钥K、各自维护一计数器CTR,其步骤包括:
1)在一节点上生成随机数RAND并更新计数器,所述CTR的值为最近一次两网络节点间成功会话的序列号SQN=++CTR;根据所述RAND、SQN和共享密钥K执行对称加密算法,计算得到认证消息AUTN、期望的响应XRES以及会话密钥SK;
2)所述一节点将RAND和AUTN发送给另一节点进行认证;
3)所述另一节点根据接收到的RAND计算AK,并将AK与AUTN异或得到待验证的SQN,在所述另一节点端验证所述待验证SQN>CTR且待验证SQN<CTR+N,其中N为常数,验证通过后更新CTR=SQN;
4)所述另一节点根据已验证的SQN、随机数RAND、共享密钥K执行对称加密算法,计算得到响应消息RES以及SK,并将RES发送给所述任意一节点;
5)验证RES=XRES,则双方认证通过,所述两节点之间共享会话密钥SK。
更进一步,根据所述RAND、SQN和共享密钥K执行对称加密算法的具体步骤如下:
1)更新计数器SQN=++CTR后利用共享密钥K和随机数RAND作为输入,执行对称加密算法得到AK;
2)将AK与SQN异或得到AUTN作为输出;
3)所述SQN与随机数RAND异或,异或结果循环左移之后再次利用密钥K和对称加密算法加密得到XRES作为输出;
4)所述SQN与随机数RAND异或,异或结果循环左移之后利用密钥K和对称加密算法加密得到会话密钥高比特SK作为输出;
5)所述SQN与随机数RAND异或,异或结果循环左移之后利用密钥K和对称加密算法加密得到会话密钥低比特SK作为输出。
更进一步,所述AUTN为64比特认证消息、所述XRES为64比特期望的认证响应、所述SK为128比特会话密钥。
更进一步,会话密钥SK的高64比特和会话密钥SK的低64比特组成所述128比特会话密钥SK。
更进一步,所述另一节点根据已验证的SQN、随机数RAND、共享密钥K执行对称加密算法的步骤如下:
1)利用共享密钥K和随机数RAND作为输入,执行对称加密算法得到AK;
2)将AK与AUTN异或得到SQN作为输出;
3)所述SQN与随机数RAND异或,异或结果循环左移后利用密钥K和对称加密算法加密得到RES作为输出;
4)所述SQN与随机数RAND异或,异或结果循环左移后利用密钥K和对称加密算法加密得到高比特SK作为会话密钥输出;
5)所述SQN与随机数RAND异或,异或结果循环左移后利用密钥K和对称加密算法加密得到低比特SK作为会话密钥输出。
更进一步,所述RES为64比特认证响应,所述SK为128比特会话密钥由低比特SK和高比特SK会话密钥组成作为输出。
更进一步,所述SQN与随机数RAND异或结果分别循环左移3比特得到RES作为输出、循环左移11比特得到高比特SK作为会话密钥输出和循环左移17比特低比特SK作为会话密钥输出。
更进一步,所述对称加密算法为分组长度64比特,密钥长度128比特的present算法或者分组长度64比特,密钥长度为80比特的LBlock算法。
更进一步,所述对称加密算法可扩展为任意密钥长度、任意数据分组长度的对称分组密码算法,其扩展方法如下:
1)如果密钥K加密算法的密钥长度len>128,则将输入参数密钥K高位填充1,使其长度等于len,作为E的密钥;
2)如果密钥K加密算法的密钥长度len<128,则截取输入参数密钥K的低len比特作为E的密钥;
3)如果密钥K加密算法的数据分组长度L>64比特,则将输入高位填充1,使其长度等于L,作为E的输入,并将E的输出截取低64比特作为输出;
4)如果密钥K加密算法的数据分组长度L<64比特,则将输入分组截取低L比特,作为E的输入,并将E的输出高位填充1,使其长度为64比特作为输出。
更进一步,预置共享密钥K采用密钥预分配或者密钥池方法使得每个节点都存有和其他节点共享的长期密钥,存储方式采用二元组表(节点ID,共享密钥)。
本发明的有益效果:
效率分析:与现有的一些认证和密钥协商的技术相比,本发明的认证和密钥协商过程在计算方面,只需要轻量级的对称密钥密码算法的加密运算。并且只对同一个密码算法调用4次,传统的AKA算法需要实现f1、f2、f3、f4、f5五个不同的加密算法,执行五次加密运算,并且这五个算法都必须是分组长度128比特的密码算法,因此从运算效率和软硬件实现成本方面都要低很多。通信代价方面,节点A和节点B各自只需要发送一次消息,如果A发送的认证指令(RAND,AUTN)中,RAND为64比特,AUTN为64比特,节点B返回的认证应答RES为64比特,那么一次认证过程,网络中总共需要传输的信息仅为192比特,与传统AKA协议过程中要传输的640比特相比,只需要30%的通信量,这在网络规模较大时优势很明显。另外,本发明在进行节点间双向认证的过程中,同时建立共享的会话密钥。会话密钥的计算只需要执行两次加密算法E,而且不增加额外的通信开销。
安全性分析:由于所使用的对称密码算法E为present算法或者LBlock算法,因此敌手从截获的认证消息中想要获得长期共享密钥或者共享会话密钥的困难程度也相当于破译present或LBlock的困难程度。因为节点A和节点B各自维护一个计数器,在节点B收到节点A的认证指令之后,会验证节点A计数器的值是否会大于本地计数器的值,因此可以抵抗敌手的重放攻击。另外,由于节点A、B之间的交互消息,除了随机数RAND之外,AUTN和RES都是加密过的密文,即使重放攻击能成功,敌手也不能得到任何有价值的信息。因此,只有拥有预置共享密钥的节点才能正确计算出共享的会话密钥,并进行身份认证。本发明在网络节点间认证和协商密钥的过程中,传输的认证消息有可能被敌手截获或者篡改,妨碍节点间身份认证和会话密钥的建立,但是敌手不能假冒节点通过身份认证,从而达到建立会话密钥的目的。也就是说,在主动敌手的攻击下,合法节点之间不一定能够成功完成身份认证并建立会话密钥,但是非法的节点之间肯定不能成功完成这一过程。
总体来说,本发明中所述方法需要的计算和通信资源较少。认证和密钥协商过程中只用到4次对称密码算法,并且可以使用轻量级的分组对称密码算法,需要的密钥长度较短,加解密速度快。认证过程只有两次信息交互便可以完成双向认证,通信的数据量较小,占用的网络资源少。同时,节点之间完成相互认证后,马上可以建立起共享会话密钥。因此,本发明所述方法整体上效率较高,同时安全性较好,非常适用于资源受限的网络环境中。
附图说明
图1为3GPP-TS33.102V11.5.1规范中的认证与密钥协商流程图;
图2为3GPP-TS33.102V11.5.1规范中AKA协议的认证;向量生成过程框图;
图3为3GPP-TS33.102V11.5.1规范中AKA协议的用户终端计算流程框图;
图4为节点A利用预置共享密钥K,随机数RAND和序列号SQN产生AUTN、XRES和SK的算法流程框图;
图5为节点B利用预置共享密钥K,随机数RAND和AUTN产生SQN、RES和SK的算法流程框图;
图6为节点A与节点B之间建立认证和协商密钥的流程框图。
具体实施方式
本发明在具体实施过程中,因为使用对称加密算法,要求通信双方有预置的共享密钥。由于节点的能量有限,在每个节点上预置共享密钥的密钥预分配方案必须是高效的。其次,还需要考虑长期共享密钥的安全性,要求每个节点都能够安全的保存共享密钥。一旦节点的长期共享密钥泄露,就会带来很大的安全隐患,敌手可以假冒节点进行身份认证和会话密钥的建立。节点在建立身份认证和会话密钥时,通信双发节点需要存储一个计数器,计数器的值为最近一次会话的序列号,并保持每次会话都要更新以保证通信发起方的计数器值要大于被请求方的计数器值。需要说明的是,节点长期共享密钥的建立可以通过一些安全有效的密钥预分配方案实现,具体的实现方式不属于本发明的考虑范围内。以下对本发明的轻量级认证与密钥协商的实现方法进行具体的说明:
(1)在任意两个网络节点设备A和B之间预置一个长期共享密钥K。采用何种方案预置这样的共享密钥不属于本发明的内容,已经有许多现有的技术手段可以实现,比如可以通过密钥预分配或者密钥池等方法使得每个节点都存有和其他节点共享的长期密钥,这些长期密钥存放在用户的某个数据库中,存储方式可以是(节点ID,共享密钥)这样的二元组表。
(2)在任意两个网络节点A和节点B上各自存储一个计数器CTR,CTR的值为最近一次节点A和节点B成功会话的序列号SQN;
(3)在所述节点A和所述节点B中实现加密算法E和伪随机数生成算法PRNG;一般的可以通过硬件电路或者软件的方式实现加密算法E和伪随机数书生成算法PRNG,具体根据所使用的节点设备来选择,这不属于本发明的内容。
(4)通过上述部署完成后,按照图6所示的方法,在节点A和节点B之间建立认证和共享密钥。
本发明的技术方案中,节点A与节点B之间建立认证和共享密钥的具体方法为:
(1)节点A生成随机数RAND,更新计数器SQN=++CTR,如图4所示方法,利用随机数RAND、计数器SQN,共享密钥K和加密算法E来计算认证消息AUTN、期望的响应XRES以及会话密钥SK;
(2)节点A将随机数RAND和认证消息AUTN发送给节点B;
(3)节点B利用Rand,计算AK,将AK与AUTN异或得到SQN,验证SQN>CTR且SQN<CTR+N是否成立,成立则验证通过,更新CTR=SQN;不成立则停止执行。需要说明的是,N在这里是一个常数,可以根据使用场合调整N的大小,通常设置为10,验证的目的是为了保证收到的SQN比本地存储的CTR大,但是也不能大太多。这样对SQN的验证就保证了攻击者不能轻易的去伪造一个AUTN。
(4)节点B按照图5所示方法,利用SQN、随机数RAND、共享密钥K和加密算法E来计算响应消息RES以及会话密钥SK,并将响应消息发送给节点A。
(5)A验证RES=XRES是否成立,如果成立,则双方认证通过,节点A与节点B之间共享会话密钥SK;如果不成立,则认证失败。
本发明的技术方案中,节点A利用计数器CTR、随机数RAND、预置共享密钥K和加密算法E按照图4所示方法生成64比特认证消息AUTN、64比特期望的认证响应XRES和128比特会话密钥SK的步骤如下:
(1)更新计数器SQN=++CTR;
(2)利用密钥K和随机数RAND作为输入,通过执行加密算法E得到64比特输出AK;
(3)AK与SQN异或得到64比特输出AUTN;
(4)SQN与随机数RAND异或,异或结果循环左移3比特之后利用密钥K和加密算法E加密得到64比特的输出XRES;
(5)SQN与随机数RAND异或,异或结果循环左移11比特之后利用密钥K和加密算法E加密得到64比特的输出作为会话密钥SK的高64比特;
(6)SQN与随机数RAND异或,异或结果循环左移17比特之后利用密钥K和加密算法E加密得到64比特的输出作为会话密钥SK的低64比特;
本发明方案中节点B利用认证指令AUTN、随机数RAND、预置共享密钥K和加密算法E按照图5所示方法来计算64比特认证响应RES以及128比特会话密钥SK的步骤如下:
(1)利用密钥K和随机数RAND,通过加密算法E得到64比特输出AK;
(2)AK与AUTN异或得到64比特输出SQN;
(3)SQN与随机数RAND异或,异或结果循环左移3比特之后利用密钥K和加密算法E加密得到64比特的输出RES;
(4)SQN与随机数RAND异或,异或结果循环左移11比特之后利用密钥K和加密算法E加密得到64比特的输出作为会话密钥SK的高64比特;
(5)SQN与随机数RAND异或,异或结果循环左移17比特之后利用密钥K和加密算法E加密得到64比特的输出作为会话密钥SK的低64比特;
本发明方案中,节点A和节点B之间预置的共享密钥K为128比特,节点A产生的随机数RAND为64比特,节点A和节点B存储的计数器CTR为64比特。
本发明方案中,节点A利用计数器CTR、随机数RAND、共享密钥K和加密算法E生成64比特认证消息AUTN、64比特期望的认证响应XRES以及128比特会话密钥SK的过程中,第4),5),6)步骤中,异或结果分别优选循环左移3比特、11比特和17比特,其中3,11,17是三个素数,并且64-3=61,64-11=53,64-17=47也是三个素数,这样使得异或结果不论是循环左移还是循环右移,移位距离都是素数。
本发明方案中,假定节点A和节点B都知道自己想要通信的对方的节点是谁,即节点A知道自己想要与节点B通信,反之,节点B也知道自己想要与节点A进行通信。这是合理并且很容易实现的一个假定条件。例如,可以在节点A给节点B发送认证消息(Rand,AUTN)的同时,将节点A的身份信息加入到要发送的消息中,如发送认证消息(IDA,Rand,AUTN)给节点B,此时,节点B便知道是节点A想要与自己进行认证并建立会话密钥。
本发明方案中,所述节点A和节点B之间建立认证和密钥共享的过程中,当执行完第5)步,节点B验证SQN>CTR且SQN<CTR+N成立,则节点B完成了对节点A的身份认证。这是因为只有节点A和节点B知道他们预置的共享密钥K,也就只有节点A能根据随机数RAND和SQN生成合法的AUTN,如果攻击者重放或者伪造一个AUTN,那么计算出来的SQN将不能通过验证,因此节点B能确认节点A的身份。
本发明方案中,所述节点A和节点B之间建立认证和密钥共享的过程中,当执行完第6)步,节点A验证XRES=RES成立,则节点A完成了对节点B的身份认证。这是因为只有节点A和节点B知道他们预置的共享密钥K,也就只有节点B能根据随机数RAND生成合法的RES,因此节点A能确认节点B的身份。
本发明方案中,如果节点A和节点B按照如上所述的方法执行建立认证和共享密钥的过程,那么他们在完成相互认证的同时,建立起了共享的会话密钥SK。例如节点A在发出认证消息(RAND,AUTN)后,可以同时计算期望的认证响应XRES和会话密钥SK,节点B在验证完SQN后,返回RES给节点A,同时计算共享会话密钥SK。当认证通过时,节点A和节点B就可以共享会话密钥SK了。
本发明方案中,所述加密算法E优选轻量级对称密钥分组加密算法。
本发明方案中,所述加密算法E的密钥长度为128比特,数据分组长度为64比特。
本发明方案中,所述加密算法E可以扩展为任意密钥长度、任意数据分组长度的对称分组密码算法,其扩展方法如下:
(1)如果加密算法E的密钥长度len>128,则将LightAKA算法的输入参数密钥K高位填充1,使其长度等于len,作为E的密钥;
(2)如果加密算法E的密钥长度len<128,则截取LightAKA算法的输入参数密钥K的低len比特作为E的密钥;
(3)如果加密算法E的数据分组长度L>64比特,则将输入高位填充1,使其长度等于L,作为E的输入,并将E的输出截取低64比特作为LightAKA算法的输出;
(4)如果加密算法E的数据分组长度L<64比特,则将输入分组截取低L比特,作为E的输入,并将E的输出高位填充1,使其长度为64比特作为LightAKA算法的输出;
本发明方案中,所述加密算法E可以优选使用分组长度64比特,密钥长度128比特的present算法或者分组长度64比特,密钥长度为80比特的LBlock算法。
以下是本发明的具体实施例,分别详述两种算法的认证与密钥协商建立过程;
实施例1:使用对称密钥加密算法present的双向认证与密钥协商
如上所述,本发明是基于对称密码,在任意两个节点之间已经建立了共享密钥的前提下进行身份认证并建立会话密钥的,其具体步骤如下:
(1)在任意两个网络节点设备A和B之间预置一个长期共享密钥K。
在密钥预分配阶段,首先产生一个大的密钥池P和密钥标识;然后随机抽取一个密钥作为某两个节点设备共享的预置密钥,直到任意的两个节点之间都有共享密钥。如果节点A要向节点B发起认证并建立会话密钥,节点A找到和节点B的共享密钥K,密钥长度为128比特。
(2)在节点设备A和节点设备中都实现对称密钥加密算法E,这里E为present算法(具体可参见Bogdanov A,Knudsen L R,Leander G,et al.PRESENT:An Ultra-lightweight BlockCipher[EB/OL].(2007-04-03).http://www.ist-ubisecsens.org/publications/prese nt_ches2007.pdf.)。Present算法是由Bogdanov等人于2007年提出的一种具有31轮迭代的轻量级的分组密码算法,它使用128比特的密钥,64比特的分组大小。Present算法的主要设计目标是硬件实现效率和功耗,这使得它非常适合于硬件实现。它的基本操作包括异或、位元替换和位置换。
(3)初始化节点A和节点B的计数器。认证和密钥建立过程开始前,节点A和节点B的计数器初始化为节点A、B之间的会话序列号,如果节点A和节点B之前没有进行过会话,可以初始化为0。
(4)在节点A和节点B之间建立认证和会话密钥。
4-1)节点A产生随机数RAND,更新计数器SQN=++CTR;
4-2)节点A利用SQN、随机数RAND和预置共享密钥K,通过如图4所示的方法,产生64
比特的AUTN,64比特的XRES以及128比特的SK;
4-3)节点A发送认证指令(RAND,AUTN)给节点B;
4-4)节点B收到(RAND,AUTN)之后,按照图5所示方法计算SQN=AUTN⊕EK(RAND),验证SQN>CTR且SQN<CTR+N是否成立(N在这里是一个常数,可以使5,10,100等),验证通过则更新CTR=SQN,否则停止往下执行;
4-5)节点B利用SQN、RAND和K,按照图5所示的方法,产生64比特的RES以及128比特的SK。
4-6)节点B返回RES给节点A。
4-7)节点A收到RES之后,验证RES=XRES是否成立,验证通过,则节点A和节点B之间通过相互认证,并建立共享会话密钥SK;验证不通过则认证失败。
实施例2:使用对称密钥加密算法LBlock的双向认证与密钥协商
如上所述,本发明是基于对称密码,在任意两个节点之间已经建立了共享密钥的前提下进行身份认证并建立会话密钥的。所使用的对称密码密钥长度为128比特,分组大小为64比特,但同时本发明也可以适用于其他密钥长度和分组大小的对称密码算法。本实施例中使用密钥为80比特,分组大小为64比特的轻量级分组密码算法LBlock。具体步骤如下:
(1)在任意两个网络节点设备A和B之间预置一个长期共享密钥K。
在密钥预分配阶段,首先产生一个大的密钥池P和密钥标识;然后随机抽取一个密钥作为某两个节点设备共享的预置密钥,直到任意的两个节点之间都有共享密钥。如果节点A要向节点B发起认证并建立会话密钥,节点A找到和节点B的预置共享密钥K,密钥长度为128比特。
(2)在节点设备A和节点设备B之间共享对称密钥加密算法E,E为LBlock算法。
LBlock算法是中国学者吴文玲设计的一种轻量级分组密码,中文名叫“鲁班锁”(具体可参见Wu W,Zhang L.LBlock:a lightweight block cipher[C]//AppliedCryptography and Network Security.Springer Berlin Heidelberg,2011:327-344.)。LBlock的分组长度为64比特,密钥长度为80比特。算法对差分密码分析、线性密码分析、不可能差分密码分析、相关密钥攻击等具有足够的安全冗余。算法具有优良的硬件实现效率,同时在8位和32位处理器上有很好的实现性能。
(3)初始化节点A和节点B的计数器。认证和密钥建立过程开始前,节点A和节点B的计数器初始化为节点A、B之间的会话序列号,如果节点A和节点B之前没有进行过会话,可以初始化为0。
(4)按照图6所示方法,在节点A和节点B之间建立认证和会话密钥。
4-1)节点A产生随机数RAND,更新计数器SQN=++CTR;
4-2)节点A利用SQN、随机数RAND和预置共享密钥K的低80比特,通过如图4所示的方法,产生64比特的AUTN,64比特的XRES以及128比特的SK;
4-3)节点A发送认证指令(RAND,AUTN)给节点B;
4-4)节点B收到(RAND,AUTN)之后,计算SQN=AUTN⊕Ek(RAND),验证SQN>CTR且SQN<CTR+N是否成立,验证通过则更新CTR=SQN,否则停止往下执行;
4-5)节点B利用SQN、RAND和共享密钥K的低80比特,按照图5所示的方法,64比特的RES以及128比特的SK。
4-6)节点B返回RES给节点A。
4-7)节点A收到RES之后,验证RES=XRES是否成立,验证通过,则节点A和节点B之间通过相互认证,并建立共享会话密钥SK;验证不通过,则认证失败。
Claims (9)
1.一种轻量级认证与密钥协商的实现方法,在任意两个网络节点设备间预置共享密钥K、各自维护一计数器CTR,其步骤包括:
1)在一节点上生成随机数RAND并更新计数器,所述CTR的值为最近一次两网络节点间成功会话的序列号SQN=++CTR;根据所述RAND、SQN和共享密钥K执行对称加密算法,计算得到认证消息AUTN、期望的响应XRES以及会话密钥SK;其中,根据所述RAND、SQN和共享密钥K执行对称加密算法的具体步骤如下:
1-1)更新计数器SQN=++CTR后利用共享密钥K和随机数RAND作为输入,执行对称加密算法得到AK;
1-2)将AK与SQN异或得到AUTN作为输出;
1-3)所述SQN与随机数RAND异或,异或结果循环左移之后再次利用密钥K和对称加密算法加密得到XRES作为输出;
1-4)所述SQN与随机数RAND异或,异或结果循环左移之后利用密钥K和对称加密算法加密得到会话密钥高比特SK作为输出;
1-5)所述SQN与随机数RAND异或,异或结果循环左移之后利用密钥K和对称加密算法加密得到会话密钥低比特SK作为输出;
2)所述一节点将RAND和AUTN发送给另一节点进行认证;
3)所述另一节点根据接收到的RAND计算AK,并将AK与AUTN异或得到待验证的SQN,在所述另一节点端验证所述待验证SQN>CTR且待验证SQN<CTR+N,其中N为常数,验证通过后更新CTR=SQN;
4)所述另一节点根据已验证的SQN、随机数RAND、共享密钥K执行对称加密算法,计算得到响应消息RES以及SK,并将RES发送给所述任意一节点;
5)验证RES=XRES,则双方认证通过,所述两节点之间共享会话密钥SK。
2.如权利要求1所述的轻量级认证与密钥协商的实现方法,其特征在于,所述AUTN为64比特认证消息、所述XRES为64比特期望的认证响应、所述SK为128比特会话密钥。
3.如权利要求2所述的轻量级认证与密钥协商的实现方法,其特征在于,会话密钥SK的高64比特和会话密钥SK的低64比特组成所述128比特会话密钥SK。
4.如权利要求1所述的轻量级认证与密钥协商的实现方法,其特征在于,所述另一节点根据已验证的SQN、随机数RAND、共享密钥K执行对称加密算法的步骤如下:
1)利用共享密钥K和随机数RAND作为输入,执行对称加密算法得到AK;
2)将AK与AUTN异或得到SQN作为输出;
3)所述SQN与随机数RAND异或,异或结果循环左移后利用密钥K和对称加密算法加密得到RES作为输出;
4)所述SQN与随机数RAND异或,异或结果循环左移后利用密钥K和对称加密算法加密得到高比特SK作为会话密钥输出;
5)所述SQN与随机数RAND异或,异或结果循环左移后利用密钥K和对称加密算法加密得到低比特SK作为会话密钥输出。
5.如权利要求4所述的轻量级认证与密钥协商的实现方法,其特征在于,所述RES为64比特认证响应,所述SK为128比特会话密钥由低比特SK和高比特SK会话密钥组成作为输出。
6.如权利要求1-5任意一项所述的轻量级认证与密钥协商的实现方法,其特征在于,所述SQN与随机数RAND异或结果分别循环左移3比特得到RES作为输出、循环左移11比特得到高比特SK作为会话密钥输出和循环左移17比特得到低比特SK作为会话密钥输出。
7.如权利要求1-5任意一项所述的轻量级认证与密钥协商的实现方法,其特征在于,所述对称加密算法为分组长度64比特,密钥长度128比特的present算法或者分组长度64比特,密钥长度为80比特的LBlock算法。
8.如权利要求1-5任意一项所述的轻量级认证与密钥协商的实现方法,其特征在于,所述对称加密算法可扩展为任意密钥长度、任意数据分组长度的对称分组密码算法,其扩展方法如下:
1)如果密钥K加密算法的密钥长度len>128,则将输入参数密钥K高位填充1,使其长度等于len,作为E的密钥;
2)如果密钥K加密算法的密钥长度len<128,则截取输入参数密钥K的低len比特作为E的密钥;
3)如果密钥K加密算法的数据分组长度L>64比特,则将输入高位填充1,使其长度等于L,作为E的输入,并将E的输出截取低64比特作为输出;
4)如果密钥K加密算法的数据分组长度L<64比特,则将输入分组截取低L比特,作为E的输入,并将E的输出高位填充1,使其长度为64比特作为输出。
9.如权利要求1所述的轻量级认证与密钥协商的实现方法,其特征在于,预置共享密钥K采用密钥预分配或者密钥池方法使得每个节点都存有和其他节点共享的长期密钥,存储方式采用二元组表(节点ID,共享密钥)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310468552.0A CN103560879B (zh) | 2013-10-09 | 2013-10-09 | 一种轻量级认证与密钥协商的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310468552.0A CN103560879B (zh) | 2013-10-09 | 2013-10-09 | 一种轻量级认证与密钥协商的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103560879A CN103560879A (zh) | 2014-02-05 |
CN103560879B true CN103560879B (zh) | 2016-12-07 |
Family
ID=50015036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310468552.0A Expired - Fee Related CN103560879B (zh) | 2013-10-09 | 2013-10-09 | 一种轻量级认证与密钥协商的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103560879B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103813312B (zh) * | 2014-03-06 | 2017-05-24 | 北京交通大学 | 一种传感器网络中提高通信安全的方法 |
CN106576041A (zh) * | 2014-06-27 | 2017-04-19 | 林建华 | 客户端与服务器之间相互验证的方法 |
CN104135469B (zh) * | 2014-07-04 | 2017-11-24 | 闫连山 | 一种提高rssp‑ii协议安全性的方法 |
KR101759133B1 (ko) * | 2015-03-17 | 2017-07-18 | 현대자동차주식회사 | 비밀 정보 기반의 상호 인증 방법 및 장치 |
LU93024B1 (de) | 2016-04-11 | 2017-11-08 | Phoenix Contact Gmbh & Co Kg Intellectual Property Licenses & Standards | Verfahren und Anordnung zum Aufbauen einer sicheren Kommunikation zwischen einer ersten Netzwerkeinrichtung (Initiator) und einer zweiten Netzwerkeinrichtung (Responder) |
FR3058604B1 (fr) * | 2016-11-09 | 2022-12-16 | Sigfox | Procede et dispositif d’emission de donnees chiffrees, procede et dispositif d’extraction de donnees |
SG10201703532PA (en) * | 2017-04-28 | 2018-11-29 | Huawei Int Pte Ltd | Method and System for Symmetric Swarm Authentication |
CN107395627B (zh) * | 2017-08-22 | 2020-07-17 | 河海大学 | 一种基于单向函数的轻量级认证协议 |
US10567165B2 (en) * | 2017-09-21 | 2020-02-18 | Huawei Technologies Co., Ltd. | Secure key transmission protocol without certificates or pre-shared symmetrical keys |
CN107682152B (zh) * | 2017-10-31 | 2020-12-22 | 洛阳师范学院 | 一种基于对称密码的群组密钥协商方法 |
CN108768632B (zh) * | 2018-05-29 | 2021-03-02 | 如般量子科技有限公司 | 一种基于对称密钥池和中继通信的aka身份认证系统和方法 |
CN108712252B (zh) * | 2018-05-29 | 2021-01-05 | 如般量子科技有限公司 | 一种基于对称密钥池和跨中继的aka身份认证系统和方法 |
CN108900530A (zh) * | 2018-07-30 | 2018-11-27 | 郑州信大捷安信息技术股份有限公司 | 一种安全通信系统及方法 |
CN109088728B (zh) * | 2018-09-17 | 2021-02-12 | 国网浙江省电力有限公司电力科学研究院 | 一种基于共享密钥的电力系统调试工具加密通信方法 |
CN111465008B (zh) * | 2019-01-21 | 2024-05-24 | 苹果公司 | 在无线通信中执行加密和认证时的初始化向量生成 |
CN110536292A (zh) * | 2019-04-28 | 2019-12-03 | 中兴通讯股份有限公司 | 发送终端序列号的方法和装置以及认证方法和装置 |
CN112054890B (zh) * | 2019-06-06 | 2024-06-07 | 西安诺瓦星云科技股份有限公司 | 屏体配置文件导出、导入方法及其装置和播控设备 |
CN110351727B (zh) * | 2019-07-05 | 2020-06-02 | 北京邮电大学 | 一种适于无线传感网络的认证与密钥协商方法 |
GB201912132D0 (en) * | 2019-08-23 | 2019-10-09 | Angoka Ltd | Symmetric key generation, authentication and communication betwenn a plurality of entities in a network |
CN110768954B (zh) * | 2019-09-19 | 2021-08-27 | 西安电子科技大学 | 适用于5g网络设备的轻量级安全接入认证方法及应用 |
CN110650019B (zh) * | 2019-09-20 | 2022-06-14 | 广州城市职业学院 | 基于puf和安全概略的rfid认证方法及系统 |
CN111083131B (zh) * | 2019-12-10 | 2022-02-15 | 南瑞集团有限公司 | 一种用于电力物联网感知终端轻量级身份认证的方法 |
CN111740819B (zh) * | 2020-07-01 | 2022-10-25 | 重庆理工大学 | 一种适用于plc的时间基一次性密码方法及系统 |
CN114070550B (zh) * | 2020-07-31 | 2024-07-02 | 马上消费金融股份有限公司 | 一种信息处理方法、装置、设备和存储介质 |
CN113676448B (zh) * | 2021-07-13 | 2023-06-16 | 上海瓶钵信息科技有限公司 | 一种基于对称秘钥的离线设备双向认证方法和系统 |
CN114244531B (zh) * | 2021-12-20 | 2023-02-14 | 上海交通大学 | 基于强puf的轻量级自更新消息认证方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047505A (zh) * | 2006-03-27 | 2007-10-03 | 华为技术有限公司 | 一种网络应用push业务中建立安全连接的方法及系统 |
CN101478751A (zh) * | 2009-01-16 | 2009-07-08 | 南京邮电大学 | 一种能量优化的安全路由方法 |
CN102685741A (zh) * | 2011-03-09 | 2012-09-19 | 华为终端有限公司 | 接入认证处理方法及系统、终端和网络设备 |
CN103020671A (zh) * | 2012-11-20 | 2013-04-03 | 南京邮电大学 | 一种基于哈希函数的无线射频识别双向认证方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7506161B2 (en) * | 2003-09-02 | 2009-03-17 | Authernative, Inc. | Communication session encryption and authentication system |
GB0822254D0 (en) * | 2008-12-05 | 2009-01-14 | Qinetiq Ltd | Method of performing authentication between network nodes |
-
2013
- 2013-10-09 CN CN201310468552.0A patent/CN103560879B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047505A (zh) * | 2006-03-27 | 2007-10-03 | 华为技术有限公司 | 一种网络应用push业务中建立安全连接的方法及系统 |
CN101478751A (zh) * | 2009-01-16 | 2009-07-08 | 南京邮电大学 | 一种能量优化的安全路由方法 |
CN102685741A (zh) * | 2011-03-09 | 2012-09-19 | 华为终端有限公司 | 接入认证处理方法及系统、终端和网络设备 |
CN103020671A (zh) * | 2012-11-20 | 2013-04-03 | 南京邮电大学 | 一种基于哈希函数的无线射频识别双向认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103560879A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103560879B (zh) | 一种轻量级认证与密钥协商的实现方法 | |
Cao et al. | Fast authentication and data transfer scheme for massive NB-IoT devices in 3GPP 5G network | |
Zhang et al. | SMAKA: Secure many-to-many authentication and key agreement scheme for vehicular networks | |
Aman et al. | Mutual authentication in IoT systems using physical unclonable functions | |
Wang et al. | Privacy-preserving authentication and key agreement protocols for D2D group communications | |
CN101917270B (zh) | 一种基于对称密码的弱认证和密钥协商方法 | |
Saxena et al. | EasySMS: A protocol for end-to-end secure transmission of SMS | |
KR101485230B1 (ko) | 안전한 멀티 uim 인증 및 키 교환 | |
Saxena et al. | Authentication protocol for an IoT-enabled LTE network | |
Wang et al. | Constant-round authenticated and dynamic group key agreement protocol for D2D group communications | |
CN101980558B (zh) | 一种Ad hoc网络传输层协议上的加密认证方法 | |
Saxena et al. | Dynamic secrets and secret keys based scheme for securing last mile smart grid wireless communication | |
Ren et al. | A novel PUF-based group authentication and data transmission scheme for NB-IoT in 3GPP 5G networks | |
JP2011524099A (ja) | セキュリティ保護されたセッション鍵生成 | |
CN116321129B (zh) | 一种轻量级的基于动态密钥的电力交易专网通信加密方法 | |
CN104283899B (zh) | 无线网络中基于k‑假名集合的用户匿名身份认证方法 | |
Yu et al. | PUF-based robust and anonymous authentication and key establishment scheme for V2G networks | |
CN106067878A (zh) | 一种网络数据加密传输方法 | |
TWI568234B (zh) | 全球移動通訊網路的匿名認證方法 | |
Ming et al. | A secure one-to-many authentication and key agreement scheme for industrial IoT | |
KR102304831B1 (ko) | 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법 | |
Saxena et al. | ES-AKA: An efficient and secure authentication and key agreement protocol for UMTS networks | |
Leu et al. | Improving security level of LTE authentication and key agreement procedure | |
Wang et al. | AP-CDE: Cost-efficient authentication protocol for cross-domain data exchange in IIoT | |
Ding et al. | A lightweight and secure communication protocol for the IoT environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161207 Termination date: 20171009 |