孟悅 周耿 李煜甫
摘要:為了解決傳統(tǒng)基于RSA算法的身份認證方法不能滿足無人機網(wǎng)絡(luò)輕量級認證需求的問題,該文設(shè)計并實現(xiàn)了基于橢圓曲線ECC(Elliptic Curve Cryptography)算法的身份認證方法。使用ECC數(shù)字證書作為合法節(jié)點的身份證明,基于橢圓曲線的ECDSA(Elliptic Curve Digital Signature Algorithm)簽名算法對節(jié)點身份進行簽名驗證,同時使用ECDH密鑰交換算法生成通信所需要的會話密鑰,實現(xiàn)以較短長度密鑰和較小運算量完成節(jié)點間身份認證。
關(guān)鍵詞:無人機網(wǎng)絡(luò);身份認證;橢圓曲線
中圖分類號: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
嵌入式系統(tǒng)具有有限的系統(tǒng)資源,如無人機網(wǎng)絡(luò)中設(shè)備物理資源和計算能力[1-3]非常有限,針對傳統(tǒng)身份認證方案中資源開銷大的問題,基于橢圓曲線ECC算法實現(xiàn)了輕量級身份認證方案。使用ECC數(shù)字證書作為合法節(jié)點的身份證明,使用計算量和資源消耗更小的基于橢圓曲線的ECDSA簽名算法對節(jié)點身份進行簽名驗證,并使用ECDH密鑰交換算法生成通信所需要的會話密鑰。對接入的節(jié)點身份認證通過后生成的會話密鑰進行了密鑰一致性檢驗,解決節(jié)點間會話密鑰不一致問題。
1 ECC加密算法簡介
1.1 ECC算法基本原理
橢圓曲線密碼系統(tǒng)是基于橢圓曲線離散對數(shù)問題(ECDLP)的,其具體原理是,已知橢圓曲線[EFq]、階為[n]的點[P∈EFq]及[Q∈P](基點[P]生成的循環(huán)群),橢圓曲線離散對數(shù)問題是指指定[l∈0,n-1],使得[Q=lP]成立的數(shù)學問題。
Yeh[4]等人于2011年提出一種基于橢圓曲線(ECC)算法的用戶認證方案和密鑰管理協(xié)議, ECC算法基礎(chǔ)原理基于公式[Q=kP],其數(shù)學困難性在于由兩個乘數(shù)因子去計算最后的積是容易實現(xiàn)的,而對于給定的積和任意一個乘數(shù)因子而去求另外一個乘數(shù)因子而的計算是相當困難的。正因為其幾乎不可能被破譯,因此,可以使用兩個點的乘積作為公鑰去公開,而其中的一個乘數(shù)因子作為私鑰秘密保存。就目前的計算機水平,對于選定的一條安全的橢圓曲線,要解決基于這條曲線的離散對數(shù)難題幾乎是不可能實現(xiàn)的。
與傳統(tǒng)RSA[5]算法相比,基于ECC算法的認證方案能夠以更短的密鑰實現(xiàn)相同的安全等級,如160位的ECC密鑰長度能夠?qū)崿F(xiàn)與1024位RSA長度相同的安全等級。
2 基于橢圓曲線算法的身份認證方案
身份認證階段主要借助于無人機節(jié)點提前預存的證書信息,使用ECDSA算法實現(xiàn)對無人機節(jié)點身份進行驗證。同時,使用ECDH密鑰交換算法生成后續(xù)通話所需的會話密鑰。具體流程可描述如下:
(1)無人機A使用隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù)[R0];發(fā)送認證請求消息至無人機B進行身份認證,其中,身份認證請求消息包括:
①使用無人機B公鑰加密的無人機A身份標識符[IDA]、時間戳T0和隨機數(shù)[R0]
②使用無人機A私鑰對加密信息i的簽名
(2)無人機B接收到無人機A發(fā)送來的認證請求消息,并使用無人機A公鑰解密得到加密后的無人機A的[IDA]、隨機數(shù)[R0]和時間戳T0,使用無人機B的私鑰解密得到[IDA]、[R0]和T0;
(3)無人機B判斷隨機數(shù)[R0]是否被使用過,若被使用過,則可能存在重放攻擊,認證失敗;[R0][R0]認證通過后驗證時間戳T0是否在時延ε范圍內(nèi),若在ε范圍內(nèi)認證成功,繼續(xù)下一步認證;否則認證失敗。
同理,無人機B根據(jù)預存的無人機A證書通過以上步驟實現(xiàn)對A節(jié)點的身份認證。
無人機A和B雙方身份認證都通過后,使用認證請求消息中的隨機數(shù)[R0]和[R1]計算出用于后續(xù)通信的協(xié)商密鑰[K]和[K']。
3 性能比較
對所實現(xiàn)的認證方案進行了性能方面的測試。首先,測試了生成不同長度RSA和ECC密鑰所需要的時間開銷。具體結(jié)果如圖1所示。可以看出,生成ECC密鑰的平均生成時間比RSA短,并且隨著密鑰長度的增加此性能優(yōu)勢更加明顯。
對RSA和ECDSA數(shù)字簽名和驗證簽名的時間進行了測試。實驗結(jié)果如圖2、3所示。當密鑰長度逐漸增大時,ECC的簽名優(yōu)勢逐漸顯現(xiàn)。
從實驗結(jié)果可以看出,基于ECC算法的ECDH密鑰交換算法比DH算法在生成相同長度密鑰時所需要的時間更短,性能表現(xiàn)更好。
最后,對DH和ECDH密鑰交換算法生成會話密鑰的時間進行了測試。實驗測試了生成128位、256位和512位這三種長度密鑰所需的時間。具體測試結(jié)果如圖4所示。
在實現(xiàn)網(wǎng)絡(luò)內(nèi)節(jié)點的安全性認證時,至少需要2048位的RSA密鑰才能保障其安全性。綜合上述實驗,在實現(xiàn)相同較高安全等級的認證時(如210位的ECC密鑰就可以實現(xiàn)與2048位RSA密鑰相同的安全等級),基于ECC算法的認證方案比基于RSA的認證方案性能表現(xiàn)更好。
4 結(jié)束語
本文提出了適用于無人機網(wǎng)絡(luò)的輕量級身份認證方案。為了說明本文所提出的基于橢圓曲線ECC算法認證方案的有效性和輕量級,將本文所提出的認證方案與基于RSA算法的認證方案進行了性能對比。測試結(jié)果說明本文提出的輕量級安全認證方案能夠以較短的密鑰長度實現(xiàn)較高安全等級的認證并具有更高容忍丟包的能力,更能滿足資源受限系統(tǒng)各個設(shè)備之間的安全與性能需求。
參考文獻:
[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.
【通聯(lián)編輯:代影】