胡達海 張昌宏 劉 鵬
(海軍工程大學電子工程學院 武漢 430033)
無線射頻識別(Radio Frequency Identification,RFID)技術是近年來隨著無線電技術和大規模集成電路的普及應用而出現的一種先進的自動識別和數據采集技術[1]。RFID技術正以其方便快捷、穩定可靠的性能備受青睞,其在軍事領域的應用越來越受到人們的普遍關注[2~3]。在軍事裝備保障中應用RFID技術,能夠實現對裝備保障的全過程實施實時追蹤和指揮控制,隨時隨地準確調控戰場裝備物資的流量與流向,從而建立“精確型和快速反應型”裝備保障系統,實現軍事裝備保障決策科學化和快速化,提高裝備保障水平和效益。
由于在RFID系統中標簽和閱讀器之間采用無線射頻通信的方式進行數據傳輸,同時標簽的計算和存儲資源都有限,因此系統很容易受到各類形式的攻擊[4]。而且軍事裝備具有特殊性,所以在應用中RFID系統的安全性問題顯得尤為重要。
針對RFID系統的攻擊方式可分為主動攻擊和被動攻擊兩種類型[1]。主動攻擊主要包括:通過掃描標簽和響應閱讀器,尋找系統安全協議和加密算法的弱點,進而實施刪除或篡改標簽數據內容的攻擊;通過干擾廣播、阻塞信道或其它手段進行拒絕服務攻擊等。被動攻擊主要是采用竊聽技術,通過分析系統工作過程中產生的各種電磁特征,獲取標簽與閱讀器之間的通信數據。
在裝備保障應用中,對整個RFID系統的安全性要求十分高,設計的安全方法應滿足以下幾點要求:
1)認證:RFID系統的每個組成部分都應該進行認證。標簽、閱讀器和后端數據管理系統相互之間應進行相互的授權認證。認證就是驗證所收到的消息確實來自真正的發送方且未被修改,它也可以驗證消息的順序和及時性。
2)機密性:用于安全協議的標準不能被泄露,只能由相互認證的用戶共享這些標準;并且標簽不能向未經授權的閱讀器泄露任何信息。
3)真實性:閱讀器必須確信消息是來自真正的標簽,而不是經由攻擊者偽造或篡改的標簽。而標簽的真實性是經由認證來確定的。
4)滿足資源限制要求:在軍事應用中,不但要考慮安全性,而且也必須要滿足其工作效率、成本等方面的要求。
一個完善的RFID應用系統采用混合傳輸方式對信息的傳輸進行保護,即應該先認證后再加密。因此設計一個安全高效的加密算法是保證RFID系統安全的關鍵問題之一[7]。
現代密碼算法主要分為對稱密碼算法和非對稱密碼算法,而對稱密碼算法比較簡便、高效、密鑰簡短,破譯極其困難,且能經受住時間的檢驗和攻擊,正符合RFID系統要求的高效性和安全性。目前在對稱密碼算法中,AES算法具有設計簡單,密鑰安裝快、需要的內存空間少,在所有平臺上運行良好,支持并行處理,還可抵抗所有已知攻擊,包括對抗已知分析攻擊的能力,可以有效地實現抵抗差分密碼分析、線性密碼分析、刪節差分分析、平方攻擊和插值法分析等優點,已經開始應用于RFID系統中[5]。RFID系統應用下的AES算法的實現可分為硬件和軟件兩種方式。軟件實現一般是通過在嵌入式處理器上運行編程后的算法,這種方法實現簡單,成本低,但速度比較慢,安全性不高,而且機動性差;而硬件實現是通過具體的電子線路實現算法,加密速度比較快,安全性高,是目前主要的實現方法。但是如何才能快速、高效地實現AES加解密算法以及盡可能地節約資源降低成本,達到速度與占用資源的平衡,是目前需要解決的問題。
2000年10月2日,NIST宣布Rjindael作為新的AES[6]。它是一個迭代型分組密碼,其分組長度和密鑰長度都可變,各自可以獨立指定為128比特、192比特、256比特。有限域中的元素可以用不同的方式表示。對于任意素數的方冪,都有唯一的一個有限域,因此GF(28)的所有表示是同構的,但不同的表示方法會影響到GF(28)上運算的復雜度,本算法采用傳統的多項式表示法。將b7b6b5b4b3b2b1b0構成的字節b看成系數在{0,1}中的多項式。
1)有限域
有限域是指僅含有限多個元素的域,而有限域中元素的個數稱為有限域的階。對于有限域,其元素個數必然是素數的冪,而這個對應的素數成為有限域的特征。即m階有限域存在當且僅當m是某素數的冪,亦即存在某個整數n和素數p,使得m=pn。p稱為有限域的特征,有限域記為GF(pn)。
2)有限域上的多項式
在有限域GF上定義如式(1)形式的多項式:

其中系數bi是有限域GF(p)中的元素,我們稱b(x)是GF(p)中的多項式。
3)有限域上的運算
有限域上GF(28)的字節運算:
(1)字節加法:即兩個多項式相同指數項系數逐項進行比特的模2加,也可以用異或操作來執行(用⊕表示)。例如對于兩個用字節表示的多項式{a7,a6,a5,a4,a3,a2,a1,a0}和{b7,b6,b5,b4,b3,b2,b1,b0},和記為{c7,c6,c5,c4,c3,c2,c1,c0},可描述為ci=ai+bi,即c7=a7⊕b7,…,c0=a0⊕b0。
(2)字節乘法:兩多項式進行相乘后再將結果對不可約分多項式m(x)取模,m(x)=x8+x4+x3+x+1(用十六進制表示為{01}{1b}),模m(x)能保證多項式字節乘后的多項式始終在GF(28)上。
多項式系數在有限域GF(28)上的字運算:
(1)字加法:與字節加法有所不同,兩個多項式相同指數項的系數不再是比特,而是一個字節,字的加法即相同指數項的字節系數的異或運算。例如對于兩個用字表示的多項式{a3,a2,a1,a0}和{b3,b2,b1,b0},和記為{c3,c2,c1,c0},可描述為ci=ai+bi,即c3=a3⊕b3,…,c0=a0⊕b0。
(2)字乘法:兩多項式進行相乘后再將結果對可約分多項式m'(x)取模,m'(x)=x4+1,模m'(x)能保證多項式字乘后的結果仍是一個字。
4)有限域GF(28)上的xtime()運算
有限域GF(28)上還定義了一個運算,稱為x乘法,記做xtime(),定義如下:

其中a(x)=a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0,a(x)∈GF(28),m(x)=x8+x4+x3+x+1。多項式xtime()運算可以通過左移一位實現,如果左移后產生的新多項式級數大于7,則結果還應與m(x)進行模2加運算,使xtime()結果始終在有限域GF(28)內。
AES算法的硬件結構設計可以分為反饋方式和非反饋方式兩種。反饋方式下,在一個或多個時鐘周期內完成一輪迭代運算,并把運算結果送入寄存器保存下來作為下一輪迭代的輸入,每一輪運算共享一個迭代結構,稱為輪單元。非反饋方式通過復制輪單元,設置流水線站來提高系統時鐘頻率,從而進一步提高數據吞吐率。
常見的AES算法結構可以分為三種:完全流水線結構、內部流水線結構和循環迭代結構。
1)完全流水線結構屬于非反饋方式,內部流水線結構和循環迭代結構屬于反饋方式。完全流水線結構[7]由多路開關、寄存器和邏輯電路構成,將每個輪單位作為一級,級與級之間通過插入寄存器來設置流水線站,把整個過程劃分為前后相連的多級實體,每級實體獨立完成一級流水中所有的邏輯運算,互不影響,很適合采用電碼本(ECB)作為AES算法的工作模式,能夠在同一時刻對多個分組做運算,極大地提高了吞吐率。但是此種結構所占用的硬件空間和流水線級數成正比,其速度的增加是以資源的占用成比例增加為代價的,因此這種高代價限制了它在低成本低功耗的RFID系統的應用,只適合于網絡應用等對速度有很高要求的場合。
2)內部流水線結構是指在輪單元中插入寄存器,將每個輪運算分成多個操作段,每個時鐘周期內完成一個操作段。這種在輪單元內部采用流水線技術的結構能在一定程度上提高算法運行的時鐘頻率。但輪內各級流水部件無法同時執行,因此增加了算法運行的時鐘數目。輪內流水線級數越多,時鐘數目也就越多,雖然能夠提高算法的時鐘頻率,但吞吐量并沒有明顯提高。
3)循環迭代結構是指通過模塊復用技術,設計一個輪運算模塊,對一個分組加密時,循環調用這個模塊10次即可。這種結構是硬件代價最低的設計,所有迭代只用1個輪變換,10個時鐘周期即可完成1個分組運算。這種結構下輪單元之間必須依次執行各自的操作,各輪操作無法同步進行,因此所需時鐘周期比其它兩種結構要長。
綜上所述,由于文設計的AES算法是面向資源受限的RFID系統,目的在于盡量減少資源的占用,使面積盡可能減小。因此采用循環迭代結構作為算法所要設計的結構,由于循環迭代結構無法并行地處理多個分組,采用電碼本(ECB)的工作模式無法體現工作模式本身的并行高速處理多個分組的優點且電碼本(ECB)模式存在著相同明文產生相同密文的安全缺陷,因此在分組的工作模式上選擇CBC反饋模式。
由于AES算法解密過程跟加密過程并不相同,解密過程僅有一部分能使用與加密過程相同的電路來完成,因此為了最大限度地降低電路面積,必須先利用電路模塊的復用技術對算法進行優化處理,使算法加解密電路可以復用。因此可以根據以下兩種性質對加解密結構進行優化[8~9]:
1)行移位/逆行移位不改變字節的值,只是進行移位操作;而字節替換/逆字節替換只對狀態中每個字節進行非線性替換,與字節的位置無關。因此行移位/逆行移位和字節替換/逆字節替換變換的順序可以根據需要進行互換,而不影響最后結果。字節替換與逆字節替換均是仿射變換和乘法求逆變換的復合,因此可將乘法求逆作為兩種變換的共用模塊進行電路結構復用。
2)在數學上,對于一個線性變換,則滿足A(X+K)=A(X)+A(K),而在AES算法中,逆列混合運算是線性變換,因 此 也 滿 足 如 下 公 式[10]:InvMixColumn(State⊕RoundKey)=InvMixColumn(State)⊕InvMixColumn(RoundKey)。
應用如上兩條性質,可以將加解密過程復合在一個結構中實現,如圖1所示。

圖1 AES加解密的復合結構圖
在圖1中,加解密完全共用一個迭代結構,只是在子密鑰的調用方面有所不同,可以通過控制信號加密/解密進行選取控制。加解密結構可以復用,給輪變換中字節替換/逆字節替換、行移位/逆行移位、列混合/逆列混合操作進行電路結構復用優化提供了可能。
本文采用QuartusII 7.1對算法的器件資源利用率進行了綜合編譯得到了如圖2所示的編譯結果。我們采用的器件是Altera公司的Cyclone II系列的EP2C35F672C8芯片,該芯片內嵌各種乘法器、RAM模塊,具有豐富的引腳和存儲資源,適用于信號的高速處理,在設計中只用來仿真算法的資源使用情況。
由圖2可以看出,我們設計的AES算法硬件方案使用了芯片上262個I/O引腳(占55%),使用了33216個邏輯單元中的6915個(占21%),其中組合邏輯單元占用6272個,專用邏輯寄存器占用786個。由結果可以得出,通過復用技術對加解密結構的優化帶來了資源上的優化,能夠滿足受限的RFID系統的面積要求。

圖2 加解密系統的QuartusII綜合編譯結果圖
本文優化設計的AES算法利用電路模塊的復用技術對算法進行優化處理,使算法加解密電路可以復用,實現在滿足系統數據傳輸速率要求的前提下,最大限度地降低電路面積。應用于資源受限的RFID系統中,不但為其提供了十分可靠的安全保障,而且在有限的硬件環境下提高了其數據吞吐效率。
[1]中國射頻識別(RFID)技術發展與應用報告藍皮書[Z].2009,10.
[2]范紅梅.RFID技術研究[D].杭州:浙江大學,2006:4-5.
[3]顏濤.RFID技術研究及其在倉儲管理中的應用[D].西安:西安電子科技大學,2006:6-10,13-7.
[4]董麗峰.RFID中間件技術在物聯網中的應用及研究[J].黑龍江科技信息,2010(2):73-74.
[5]OHKUBO M,SUZUKI K,KINOSHITA S.Cryptographic approach to privacy-friendly tags[C]//Proceedings of RFID Privacy Workshop,2003:11-17.
[6]FERGUSON N,SHROEPPEL R,WHITING D.A simple algebraic representation of Rijndael[C]//Proceedings of Selected Areas in Cryptography.Las Vegas,USA:Springer-Verlag,2001:103-111.
[7]Ling Bing,Xia Kewei,Liang Wenli.Reconfigurable implementation of AES algorithm IP core based on pipeline structure[J].Journal of Southeast University(English Edition),2010,26(1):21-25.
[8]Batbold T,KyungOh L.An Advanced Mutual-Authentication Algorithm Using AES for RFID Systems[J].International Journal of Computer Science and Network Security,2006,6(9B):156-162.
[9]Ling Bing,Xia Kewei,Liang Wenli.Reconfigurable implementation of AES algorithm IP core based on pipeline structure[J].Journal of Southeast University(English Edition),2010,26(1):21-25.
[10]劉晗嘉.AES加密算法IP核的設計與驗證[D].上海:上海交通大學,2009.