一種適用于RFID讀寫器的加密算法及其實(shí)現(xiàn)
Mifare 1智能卡的安全性能在最新的電子攻擊面前變得日益單薄,且已被來自荷蘭的黑客破譯,考慮到硬件升級的成本過大,本系統(tǒng)在不對基于Mifare 1的RFID讀卡器硬件系統(tǒng)進(jìn)行變動的情況下,將XXTEA算法嵌入到RFID系統(tǒng)中,設(shè)置特定的安全機(jī)制,以保護(hù)RFID數(shù)據(jù)的安全性。
整個(gè)系統(tǒng)的安全機(jī)制分為3個(gè)部分:對Mifare 1卡的讀取控制密碼的加密;對存入Mifare 1卡中的數(shù)據(jù)進(jìn)行的加密;動態(tài)地進(jìn)行密碼的變換。加解密的函數(shù)設(shè)為:
Data_new=BTEA(Key,n,Data) (1)
式中:Data_new為數(shù)據(jù)進(jìn)行加解密運(yùn)算后的值;Key為XXTEA算法的密鑰;n是數(shù)據(jù)組元的個(gè)數(shù)且用以控制加解密運(yùn)算,n>0表示進(jìn)行加密,n0表示進(jìn)行解密。在讀卡器中,存放4個(gè)Key,Key_com,Key1,Key2,Key3分別作為4次XXTEA加解密運(yùn)算的密鑰,其中Key_com,Key1,Key2,Key3為16 byte且是固定在閱讀器的存儲器之中。根據(jù)XXTEA算法的輸入與輸出數(shù)據(jù)的長度限制,以2個(gè)長整數(shù)組元為加解密運(yùn)算的基本單位,規(guī)定控制扇區(qū)讀寫權(quán)限的密鑰KeyA,KeyB為XXTEA加密結(jié)果的前6個(gè)字節(jié)。
1)對Mifare 1卡的控制密碼的加密:由Mifare 1卡特性決定,任意扇區(qū)X與扇區(qū)Y的控制密碼是完全不相關(guān)的。由于Mifare 1卡的獨(dú)一無二的序列號特性,在整個(gè)系統(tǒng)所能支持的智能卡系列中,可以規(guī)定第X個(gè)扇區(qū)的密碼是與該智能卡的序列號相關(guān)的。序列號的得到不需要經(jīng)歷密碼校驗(yàn),而只要對智能卡的操作到達(dá)防沖突這一步驟,就可以得到。序列號SNR為4字節(jié),而每次XXTEA加密的數(shù)組都為2個(gè)長整型的數(shù)組,可以規(guī)定x扇區(qū)的密碼為2個(gè)SNR所構(gòu)成的1個(gè)64 bit數(shù)組與公用密鑰Key_com進(jìn)行加密的結(jié)果。假設(shè)扇區(qū)X的密鑰為KeyA,則KeyA為BTEA(Key_com,2,SNR||SNR4),取該結(jié)果的前6 byte為KeyA。有價(jià)值數(shù)據(jù)內(nèi)容存在第Y個(gè)扇區(qū)內(nèi)部,第Y個(gè)扇區(qū)的控制密碼不固定,由第X個(gè)扇區(qū)的指定數(shù)據(jù)Data1經(jīng)過XXTEA加密算法得來。具體過程如圖3所示。系統(tǒng)的公鑰Key_com是固定于閱讀器內(nèi),雖然在公開信道上傳遞的信息中不包含此公鑰的信息,但是還是有必要對其進(jìn)行定期更新,才能確保安全性。
2)對存入Mifare 1卡中的數(shù)據(jù)進(jìn)行的加解密:經(jīng)過一次加密運(yùn)算得到扇區(qū)Y的密碼后,通過Authentication命令完成對卡的認(rèn)證后,就可以讀取存放于扇區(qū)Y的有價(jià)值數(shù)據(jù)。讀取到的是已經(jīng)經(jīng)過XXTEA算法進(jìn)行加密完的數(shù)據(jù)。所以,有必要對其進(jìn)行解密,才能得到真正的數(shù)據(jù)。而數(shù)據(jù)寫入的過程與之對應(yīng),需要先將要寫入Y扇區(qū)的數(shù)據(jù)以Key3進(jìn)行XXTEA加密運(yùn)算,再將運(yùn)算結(jié)果寫人到扇區(qū)Y中。由XXTEA算法的對稱密鑰特性可知,密鑰是與加密該數(shù)據(jù)的密鑰相同,固定存放于讀卡器的存儲器之中。具體過程如圖3所示。
3)動態(tài)地進(jìn)行密碼的變換:在每次讀寫操作完智能卡之后,進(jìn)行智能卡扇區(qū)Y密鑰的動態(tài)變換。將扇區(qū)X內(nèi)的數(shù)據(jù),用Key2進(jìn)行再次的XXTEA算法加密,變化得到一個(gè)新的數(shù)據(jù)。該新的數(shù)據(jù)寫入扇區(qū)X。而對此Data_new進(jìn)行Key1的加密運(yùn)算得到扇區(qū)Y的新密鑰,在已經(jīng)驗(yàn)證扇IXY的密鑰的情況下,更改此密鑰為Data_new)iS對應(yīng)的密鑰,以便下次再次使用。具體如圖4所示。
3 RFID應(yīng)用系統(tǒng)實(shí)現(xiàn)
系統(tǒng)的硬件電路由NXP的專用讀寫芯片MF RC500和STC單片機(jī)STC89C52以及外部的天線濾波和接收回路組成,如圖5所示。MF RC500讀寫芯片完全兼容于ISO/IEC 14443協(xié)議,且與MCU的接口多樣化,特別適合于嵌入式系統(tǒng)應(yīng)用。
評論