吉 兵,王兆尹,范 炯
(中國電子科技集團公司第五十八研究所,江蘇 無錫 214072)
面向無線傳感器網(wǎng)絡的ECC身份認證的設計
吉 兵,王兆尹,范 炯
(中國電子科技集團公司第五十八研究所,江蘇 無錫 214072)
無線傳感器網(wǎng)絡的數(shù)據(jù)傳輸存在著諸多安全威脅。為了滿足無線傳感器網(wǎng)絡對于信息源身份認證的需求,在TelosB平臺上外接CycloneII-EP2C5T144最小系統(tǒng)板,設計并實現(xiàn)了基于ECC加密算法的身份認證系統(tǒng)。對ECC模塊的底層運算單元采用并行處理的方法進行了優(yōu)化設計。實驗結(jié)果表明,優(yōu)化設計后的認證速度相比傳統(tǒng)設計方法提高了近一倍。
無線傳感器網(wǎng)絡;ECC;TelosB;身份認證
無線傳感器網(wǎng)絡技術(shù)在國防、生物醫(yī)學、城市交通、國際反恐等領(lǐng)域的飛速發(fā)展帶來了新的革命。在國防軍事等領(lǐng)域中,開放式的網(wǎng)絡環(huán)境容易被敵人所監(jiān)聽。因此,如何防止非法用戶訪問并獲取網(wǎng)絡中的機密數(shù)據(jù)成為了新的研究熱點。
無線傳感器網(wǎng)絡通信中大部分數(shù)據(jù)是由傳感器節(jié)點傳遞到主節(jié)點的。身份認證是無線傳感器網(wǎng)絡安全的一道重要保障。基于公鑰加密的數(shù)字簽名可以很好地解決這一技術(shù)問題,因為簽名算法需要對源身份進行驗證,防止非法用戶對網(wǎng)絡進行訪問[1]。
但是無線傳感器網(wǎng)絡的物理節(jié)點常常受到硬件資源的限制。傳統(tǒng)的加密算法是由大量復雜的操作組成的,需要花費大量的節(jié)點資源。它甚至可能影響節(jié)點之間的正常通信。為了解決節(jié)點間通信安全的需求與有限硬件資源之間的矛盾,本文選擇橢圓曲線加密機制作為數(shù)字簽名的理論基礎[2]。通過對算法的研究分析,對其關(guān)鍵運算進行了優(yōu)化,在TelosB平臺上實現(xiàn)了ECC簽名算法的身份認證模塊。
目前公認的橢圓曲線密碼體制是由Miller和Koblite在密碼學刊物中提出的。在公鑰密碼算法體制中,橢圓曲線密碼體制具有安全性高、密鑰短、靈活性好、存儲空間消耗小等優(yōu)點,橢圓曲線密碼體制的單位比特強度高于已知的其他公鑰密碼體制。ECC密碼體制相對來說也更加緊湊,對于帶寬、內(nèi)存和功率的消耗要求更低。因此,ECC比其他加密算法更適用于解決無線傳感器網(wǎng)絡的安全問題[3]。
目前ECC公鑰密碼系統(tǒng)仍然在不斷地探索與發(fā)展,多家權(quán)威機構(gòu)對ECC加密體制標準做了定義[4]。根據(jù)IEEE P1363標準草案[5],用戶A選擇一個安全的橢圓曲線表示為Ep(a,b),然后選擇Ep(a,b)曲線上的任意一點,作為基點G。隨機生成密鑰k,那么公鑰就是Q=kG。Q和G都是橢圓曲線Ep(a,b)上的一個點。然后將橢圓曲線參數(shù)的特征信息Q和G進行廣播發(fā)送。用戶B通過特征信息把明文M編碼到曲線上一點并生成隨機數(shù)r。同時生成C1=M+rQ,C2=rG,然后用戶B將他們發(fā)送給用戶A。用戶A使用密鑰k來解密C1和C2,并最終得到明文M=C1-kC2。在信息傳輸?shù)倪^程中,如果黑客H監(jiān)測通過網(wǎng)絡發(fā)送的信息,黑客無法得到密鑰k,也就無法根據(jù)C1和C2來解密得到明文M。如圖1所示。
圖1 ECC數(shù)據(jù)通信示意圖
鑒于我們選擇的硬件平臺,對于GF(p)域上的橢圓曲線我們不做討論,我們主要研究和改進基于GF(2m)域的橢圓曲線的運算。
為了方便算法的編寫,kP單元可以用二進制進行操作,k的二進制形式為:
當然為了方便理解,我們也可以采取更直觀的二進制表示形式:
其中 ai∈{0,1},i表示 k 的二進制位數(shù)且 i>1。
選取一條曲線E上的一點P,再取正整數(shù)k,計算公式為:
這就是點乘運算,又叫做標量乘法運算,它的運算是由在曲線上的點加和倍點的基礎操作組合完成的,標量乘法運算是ECC最基礎和最重要的執(zhí)行單元。
我們先從宏觀上優(yōu)化點乘單元,首先點乘kP運算展開,可以看出需要k次P加運算,我們做這樣的改動:i表示k的二進制位數(shù)且i>1。計算n=i-1。
ECC經(jīng)典算法流程如下。
輸入:k∈[1,n-1],P。
輸出:Q=kP。
(1)定義 n=i-1;
(2)對于 n>1,重復執(zhí)行:
a)若 an=1,執(zhí)行 Q=2p+p。
b)否則,執(zhí)行Q=2p。
(3)n≤n-1;p≤Q。
(4)返回(Q)。
舉例說明:k=30=11110,kP的點加次數(shù)是30次,將k=30帶入上述程序,點加次數(shù)為11次。
基于無線傳感器網(wǎng)絡需要處理大量復雜數(shù)據(jù)的特性,為了使CPU的運轉(zhuǎn)效率更加高效,本文外接了一塊專門用于處理ECC算法的FPGA最小系統(tǒng)板,處理加密算法的同時不影響核心系統(tǒng)的正常工作。
當然密碼學家對于點乘單元的討論是多途徑的,已經(jīng)有許多有效可實施的求逆算法被提出,但是目前的發(fā)展情況是有限域GF(2m)內(nèi)的“逆”仍然要比“乘”耗時,因此我們對于逆運算不再進行討論,選取可以盡量消除逆運算的射影坐標法對標量乘法進行討論和優(yōu)化。
本文將kP運算進行了展開分析,如圖2所示。
圖2 kP與子單元關(guān)系結(jié)構(gòu)
ECC的標量乘法運算是建立在最底層的模操作FF的基礎之上的,有限域GF(2m)上模的操作如加、乘、逆等運算構(gòu)成了最基礎的單元,在這些涉及到的運算中,乘法運算是這里面最復雜和耗時的運算,而且也是整個運算系統(tǒng)中使用最多的操作,需要考慮一種更高效的設計方案以實現(xiàn)高效率的運算。我們不妨這樣考慮,模乘運算的運算時長要高于加和平方操作,那么其相對路徑長度要高于其他操作,因此我們可以將模乘運算和模加或者平方操作并行處理,這樣在不增加面積或者邏輯門的情況下,忽略了模加或者模平方的執(zhí)行時間,大大提高了算法的運算性能。
在域GF(2m)上我們可以用兩個參數(shù)(x,y)來表示一點P;使用投影坐標,當X,Y,Z∈GF(2m)時,點 P可以用這3個元素的坐標表示為(X,Y,Z)。
改進后的標量乘法算法如下。
輸入:整數(shù) k∈[1,n-1],k←(kl-1L k1),P(xy)∈(GF2m)。
輸出:Q=kP。
(1)如果 xp=0,執(zhí)行 Q←(0,0),返回 Q,結(jié)束。
(2)定義 X1←x,Z1←1,X2←x4+b,Z2←x2。
(3)對于i從0到l-1,循環(huán)執(zhí)行:
a)如果ki=1,定義局域變量Em,執(zhí)行
b)如果ki=0,定義局域變量Em,執(zhí)行
(4)結(jié)束循環(huán)。
(5)X0=X1/Z1,Temp=X2/Z2
(6)Y0=O/y+y。
(7)返回 Q=(X0,Y0)。
(8)返回(Q)。
備注:O=(x+X0)[(xp+X0)(xp+Temp)+x2+y]
內(nèi)部并行操作的處理方式消除了非反饋情況下的運算等待時間。
數(shù)字簽名用于保證信息傳輸過程的完整性,同時提供發(fā)送方的身份認證,并且具備不可抵賴性。以ECC為代表的公鑰算法是實現(xiàn)認證技術(shù)的主要算法之一。本文將兩個算法進行了結(jié)合,在無線傳感器平臺上實現(xiàn)了數(shù)字簽名系統(tǒng)。
Hash函數(shù)是一種摘要型的數(shù)據(jù)加密算法,SHA-1是目前較為安全和流行的摘要算法之一,它是由NIST在1995年作為美聯(lián)邦信息處理標準發(fā)布的[7]。SHA-1算法的核心思想是通過對明文數(shù)據(jù)的壓縮計算,得到一個160位的數(shù)據(jù)摘要,并且這個過程是不可逆轉(zhuǎn)的。也就是說,幾乎不會存在兩個不同的字符串壓縮成相同的160位。與時下使用普遍的MD5相比,SHA-1的摘要更長,安全性更高。單周期算法框圖如圖3所示。
圖3 SHA-1單次運算流程
SHA-1的主循環(huán)包含了80次運算,每次運算使用一個非線性函數(shù)F。由于非線性函數(shù)F不斷變化,因此運算分為4個循環(huán),每個循環(huán)有20次運算[8]。單個循環(huán)使用相同的非線性函數(shù)F,不同循環(huán)使用不同的非線性函數(shù)F。
圖4 簽名生成與校驗流程
簽名的生成流程如下:
(1)k∈[1,n-1],u=[k]G=(x1,y1),k 為隨機數(shù)。
(2)計算 r=x1mod n,如果 r=0,返回步驟(1)。
(3)根據(jù)公式sk=Hash(m)+dr mod n,可以得到結(jié)果 s,如果 s=0,返回步驟(1)。
(4)對 s、r和 Q做打包處理?(Q,s,r)?Z;將 Z發(fā)送給目標。
簽名的校驗流程如下:
(1)驗證 r,s∈[1,n-1],并且計算出 e=SHA-1(m)。
(2)計算 w=s-1mod n。
(3)計算u1=ew mod n和u2=rw mod n。
(4)計算 X=u1G+u2Q=(x2,y2),如果 X∈∞ 拒絕簽名,否則計算v=x2mod n。
(5)當且僅當v=r,身份確認合法。
在本文中,物理節(jié)點是由加州大學伯克利分校設計的TelosB[9]硬件節(jié)點平臺;通信模塊采用TI公司的CC2420芯片,它支持IEEE802.15.4協(xié)議,處理數(shù)據(jù)傳輸速率為250 kb/s,可以使節(jié)點更快地處理事件;選擇TI公司的低功耗MSP430微處理器芯片作為主控芯片;采用CycloneII EP2C5T144實現(xiàn)加密算法,它的性能更利于認證系統(tǒng)中的大量復雜計算[10]。
為了便于演示,將本文設計方案和同類使用較為普遍的Tiny ECC方案進行對比試驗,試驗結(jié)果如表1和圖5所示。本方案和Tiny ECC均選取基于SECG[11]發(fā)布的160位標準橢圓曲線參數(shù)secp160r1,經(jīng)過100次相同的操作取平均值。
圖5 點乘仿真結(jié)果圖
表1 試驗數(shù)據(jù)結(jié)果
試驗結(jié)果表明,本文設計的方案較另外兩種方案有較為明顯的優(yōu)勢。分析可知,由于Tiny ECC和Mohammed方案中的ECC算法均采用了傳統(tǒng)的順序執(zhí)行的方法,而本文采用并行設計的思路,對底層運算單元進行了重新設計,大大縮短了程序運算中等待的時間,因此使得本文所設計的簽名和認證速度有了較為明顯的提升。
本文基于無線傳感器網(wǎng)絡的應用環(huán)境,提出了一種適用于其特點的身份認證方案。并且借助TelosB硬件節(jié)點平臺對方案進行了驗證。與近似方案對比結(jié)果表明本方案在認證速度上有明顯的優(yōu)勢,雖然資源消耗稍高,但在可以接受的范圍之內(nèi)。目前我們正致力于ECC密碼模塊隨機點乘法的優(yōu)化問題。
[1]A Mpitziopoulos,D Gavalas D,C Konstantopoulos.A survey on jamming attacks and countermeasures in WSNs[J].Communications Surveys&Tutorials,IEEE 2009,11(4):42-56.
[2]X Chen,K Makki,K Yen,and N Pissinou.Sensor network security:a survey[J].Communications Surveys&Tutorials,IEEE,2009,11:52-73.
[3]B M?ller.Securing elliptic curve point multiplication against side-channelattacks[M].inInformationSecurity,ed:Springer,2001:324-334.
[4]A Prayati,C Antonopoulos,T Stoyanova,C Koulamas,and G Papadopoulos.A modeling approach on the TelosB WSN platform power consumption[J].Journal of Systems and Software,2010,83:1355-1363.
[5]R Watro,D Kong,S-f Cuti,C Gardiner,C Lynn,and P Kruus.TinyPK:securing sensor networks with public key technology[C].in Proceedings of the 2ndACM workshop on Security of ad hoc and sensor networks,2004:59-64.
[6]R D'Souza,G Varaprasad.Digital signature-based secure node disjoint multipath routing protocol for wireless sensor networks[J].Sensors Journal,IEEE,2012,12:2941-2949.
[7]C De Canniere,C Rechberger.Finding SHA-1 characteristics:General results and applications[M].in Advances in Cryptology-ASIACRYPT 2006,ed:Springer,2006:1-20.
[8]B Chen,W Wu,and Y Zhang.The Design and Implementation of Digital Signature System Based on Elliptic Curve[C].in Proceedings of the 2012 International Conference on Cybernetics and Informatics,2014:2041-2047.
[9]G D Sutter,J Deschamps,and J L Ima?a.Efficient elliptic curve point multiplication using digit-serial binary field operations[J].Industrial Electronics,IEEE Transactions on,2013,60:217-225.
[10]A Sakthivel,R Nedunchezhian.Decreasing point multiplicationoverECC(Zp)usingtreecomputations[C].inComputing,Communication and Applications (ICCCA),2012 International Conference,2012:1-5.
[11]V S Dimitrov,L Imbert,P Mishra.Fast Elliptic Curve Point Multiplication using Double-Base Chains[J].IACR Cryptology ePrint Archive,2005,2005:69.
[12]K J?rvinen,J Skytt?.Fast point multiplication on Koblitz curves:Parallelization method and implementations[J].Microprocessors and Microsystems,2009,33:106-116.
[13]A Liu,P Ning.Tiny ECC:A configurable library for elliptic curve cryptography in wireless sensor networks[C].in Information Processing in Sensor Networks,2008.IPSN'08.International Conference,2008:245-256.
[14]M B O Rafik,F Mohammed.The impact of ECC's scalar multiplication on wireless sensor networks[C].in Programming and Systems(ISPS),2013 11thInternational Symposium,2013:17-23.
Design of Identity Authentication Based on ECC for Wireless Sensor Networks
JI Bing,WANG Zhaoyin,FAN Jiong
(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
There are many security threats in data transmission of wireless Sensor Networks.In order to meet the requirements of Wireless Sensor Network for data origin authentication,the Ellipse Curve Cryptography authentication scheme is implemented on TelosB hardware nodes by external CycloneII-EP2C5T144 System.The basic arithmetic unit of ECC is optimized by using parallel processing algorithm.The experimental results showthatthe speedofauthenticationisnearlydoubledafter optimizationcomparedtotraditionalmethod.
wirelesssensor networks;ECC;TelosB;authentication
TN915.08
A
1681-1070(2017)12-0026-04
2017-09-18
吉 兵(1988—),男,新疆阿勒泰人,碩士研究生,研究生方向為無線傳感器網(wǎng)絡以及信息安全,目前就職于中國電科第五十八研究所SOC研發(fā)中心。