一种基于ECC算法的安全认证方法

2021-03-15 07:01孟悦周耿李煜甫
电脑知识与技术 2021年3期
关键词:身份认证

孟悦 周耿 李煜甫

摘要:为了解决传统基于RSA算法的身份认证方法不能满足无人机网络轻量级认证需求的问题,该文设计并实现了基于椭圆曲线ECC(Elliptic Curve Cryptography)算法的身份认证方法。使用ECC数字证书作为合法节点的身份证明,基于椭圆曲线的ECDSA(Elliptic Curve Digital Signature Algorithm)签名算法对节点身份进行签名验证,同时使用ECDH密钥交换算法生成通信所需要的会话密钥,实现以较短长度密钥和较小运算量完成节点间身份认证。

关键词:无人机网络;身份认证;椭圆曲线

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2021)03-0075-02

Abstract: In order to solve the problem that the traditional authentication method based on RSA algorithm cannot meet the lightweight authentication requirements of the UAV network. This paper designed and implemented an identity authentication scheme based on Elliptic Curve Cryptography algorithm. The ECC digital certificate is used as the identity proof of the legal node, the ECDSA(Elliptic Curve Digital Signature Algorithm) signature algorithm based on the elliptic curve is used to verify the identity of the node, and the ECDH key exchange algorithm is used to generate the session key required for communication, so as to realize the end-to-end authentication between nodes with short length key and small amount of computation.

Key words: UAV network;identity authentication;elliptic curve

嵌入式系統具有有限的系统资源,如无人机网络中设备物理资源和计算能力[1-3]非常有限,针对传统身份认证方案中资源开销大的问题,基于椭圆曲线ECC算法实现了轻量级身份认证方案。使用ECC数字证书作为合法节点的身份证明,使用计算量和资源消耗更小的基于椭圆曲线的ECDSA签名算法对节点身份进行签名验证,并使用ECDH密钥交换算法生成通信所需要的会话密钥。对接入的节点身份认证通过后生成的会话密钥进行了密钥一致性检验,解决节点间会话密钥不一致问题。

1 ECC加密算法简介

1.1 ECC算法基本原理

椭圆曲线密码系统是基于椭圆曲线离散对数问题(ECDLP)的,其具体原理是,已知椭圆曲线[EFq]、阶为[n]的点[P∈EFq]及[Q∈P](基点[P]生成的循环群),椭圆曲线离散对数问题是指指定[l∈0,n-1],使得[Q=lP]成立的数学问题。

Yeh[4]等人于2011年提出一种基于椭圆曲线(ECC)算法的用户认证方案和密钥管理协议, ECC算法基础原理基于公式[Q=kP],其数学困难性在于由两个乘数因子去计算最后的积是容易实现的,而对于给定的积和任意一个乘数因子而去求另外一个乘数因子而的计算是相当困难的。正因为其几乎不可能被破译,因此,可以使用两个点的乘积作为公钥去公开,而其中的一个乘数因子作为私钥秘密保存。就目前的计算机水平,对于选定的一条安全的椭圆曲线,要解决基于这条曲线的离散对数难题几乎是不可能实现的。

与传统RSA[5]算法相比,基于ECC算法的认证方案能够以更短的密钥实现相同的安全等级,如160位的ECC密钥长度能够实现与1024位RSA长度相同的安全等级。

2 基于椭圆曲线算法的身份认证方案

身份认证阶段主要借助于无人机节点提前预存的证书信息,使用ECDSA算法实现对无人机节点身份进行验证。同时,使用ECDH密钥交换算法生成后续通话所需的会话密钥。具体流程可描述如下:

(1)无人机A使用随机数发生器产生随机数[R0];发送认证请求消息至无人机B进行身份认证,其中,身份认证请求消息包括:

①使用无人机B公钥加密的无人机A身份标识符[IDA]、时间戳T0和随机数[R0]

②使用无人机A私钥对加密信息i的签名

(2)无人机B接收到无人机A发送来的认证请求消息,并使用无人机A公钥解密得到加密后的无人机A的[IDA]、随机数[R0]和时间戳T0,使用无人机B的私钥解密得到[IDA]、[R0]和T0;

(3)无人机B判断随机数[R0]是否被使用过,若被使用过,则可能存在重放攻击,认证失败;[R0][R0]认证通过后验证时间戳T0是否在时延ε范围内,若在ε范围内认证成功,继续下一步认证;否则认证失败。

同理,无人机B根据预存的无人机A证书通过以上步骤实现对A节点的身份认证。

无人机A和B双方身份认证都通过后,使用认证请求消息中的随机数[R0]和[R1]计算出用于后续通信的协商密钥[K]和[K']。

3 性能比较

对所实现的认证方案进行了性能方面的测试。首先,测试了生成不同长度RSA和ECC密钥所需要的时间开销。具体结果如图1所示。可以看出,生成ECC密钥的平均生成时间比RSA短,并且随着密钥长度的增加此性能优势更加明显。

对RSA和ECDSA数字签名和验证签名的时间进行了测试。实验结果如图2、3所示。当密钥长度逐渐增大时,ECC的签名优势逐渐显现。

从实验结果可以看出,基于ECC算法的ECDH密钥交换算法比DH算法在生成相同长度密钥时所需要的时间更短,性能表现更好。

最后,对DH和ECDH密钥交换算法生成会话密钥的时间进行了测试。实验测试了生成128位、256位和512位这三种长度密钥所需的时间。具体测试结果如图4所示。

在实现网络内节点的安全性认证时,至少需要2048位的RSA密钥才能保障其安全性。综合上述实验,在实现相同较高安全等级的认证时(如210位的ECC密钥就可以实现与2048位RSA密钥相同的安全等级),基于ECC算法的认证方案比基于RSA的认证方案性能表现更好。

4 结束语

本文提出了适用于无人机网络的轻量级身份认证方案。为了说明本文所提出的基于椭圆曲线ECC算法认证方案的有效性和轻量级,将本文所提出的认证方案与基于RSA算法的认证方案进行了性能对比。测试结果说明本文提出的轻量级安全认证方案能够以较短的密钥长度实现较高安全等级的认证并具有更高容忍丢包的能力,更能满足资源受限系统各个设备之间的安全与性能需求。

参考文献:

[1] H. Chan, A. Perrig, and D. Song. Random key redistribution schemes for sensor networks[J]. In IEEE ymposium on Security and Privacy, 2003.

[2] Chatterjee K, De A, Gupta D. An Improved ID-Based Key Management Scheme in Wireless Sensor Network[M]// Advances in Swarm Intelligence. 2012.

[3] W. Du, J. Deng, Y. S. Han, and P. K. Varshney. A pairwise key pre-distribution scheme for wireless sensor networks[J]. In CCS 03. Proceedings, 2003.

[4] Yeh HL, Chen TH, Liu PC, Kim TH, Wei HW. A secured authentication protocol for wireless sensor networks using elliptic curves cryptography[J]. Sensors 2011(11):4767-4779.

[5] Patterson W. Mathematical cryptology for computer scientists and mathematicians[M]// Mathematical cryptology for computer scientists and mathematicians /. Rowman & Littlefield, 1987.

【通聯编辑:代影】

猜你喜欢
身份认证
云电子身份管理与认证系统中的关键技术优化改进