一種適用于RFID讀寫器的加密算法及其實現(xiàn)
MCU除了操作讀卡芯片進行常規(guī)的智能卡操作,也實現(xiàn)了系統(tǒng)所需的加密算法的嵌入,讀取或?qū)懭藬?shù)據(jù)的加解密運算都通過MCU進行。
MF RC500對Mifare 1卡的操作過程依照ISO14443的協(xié)議規(guī)定,按先后的順序為尋卡、防沖突、選擇、密鑰校驗和之后的讀寫和增減值操作。MF RC500對Mifare 1卡的操作都是通過寫入Transceive命令至Regcommand寄存器,再將操作Mifare 1卡的命令以數(shù)據(jù)的形式存放于Regfifodata寄存器中,設(shè)置完收發(fā)時鐘的長度以后,就等待智能卡對讀寫命令的反應(yīng)。在足夠長的時間段之內(nèi),Mifare 1卡傳輸?shù)臄?shù)據(jù)就會在Regfifodata里面出現(xiàn),此時,先讀取Regfifolength以確定數(shù)據(jù)的長度,根據(jù)長度寫循環(huán)程序獲取智能卡返回的信息。圖6給出了系統(tǒng)上位機的界面。通過上位機,在正常操作智能卡的基礎(chǔ)上,進行動態(tài)更新密碼的操作,以及隱藏在讀寫操作之下的加解密過程。
系統(tǒng)進行加密的試驗如下:
1)控制密碼的得到:假設(shè)系統(tǒng)的公鑰Key_com為{0x00112233,0x44556677,0x8899AABB,0xCCDDEEFF),對于智能卡1,SNR為FDC71188,根據(jù)系統(tǒng)的規(guī)定,扇區(qū)X的密碼為KeyA與BTEA(Key_tom,2,SNR||SNR4)相關(guān),結(jié)果為{oxD3A7BA0l,0x525F18FC}。取結(jié)果的前6個字節(jié)作為扇區(qū)X的控制密鑰,即KeyA為D3A7BA0152。由此密碼得到了扇區(qū)X的Data1,假設(shè)Datal為{0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77}。由此Data1和存儲于MCU中的Key1通過XXTEA加密過程BTEA(key1,2,data1),可以得到KeyB。假設(shè)Key1為{0x01234567,0x89ABCDEF,0x01234567,0x89ABCDEF},通過加密,得到了{0x4CEFBEC2,0xCSCBACE0},取前6 byte,則KeyB為4CEFBEC2C8。使用該密鑰獲得對扇區(qū)Y的控制權(quán),就可以對價值數(shù)據(jù)進行讀寫操作,這樣也避免了未經(jīng)授權(quán)的讀卡器想要非法對智能卡進行操作的情況。
2)敏感數(shù)據(jù)的加解密:在Mifare 1智能卡中,數(shù)據(jù)是以塊為單位來存儲的,一塊16 byte,可以由XXTEA直接運算得出加密結(jié)果。設(shè)需要寫入的數(shù)據(jù)為{0x01,0x12,0x23,0x34,0x45,0x56,0x67,0x78,0x89,0x9A,0xAB,0xBC,0xCD,0xDE,0xEF,0xF0},而密鑰為Key3,設(shè)為{0xFEDCBA98,0x76543210,0xFEDCBA98,0x76543210},通過該密鑰進行XXTEA加密,得到加密后的數(shù)據(jù)為{0xA2,0xC6,0x6C,0x1A,0x3E,0x98,0x5E,0x48,0x7D,0xDA,0x68,0xC3,0x0C,0x23,0x1D,0x24}。將該數(shù)據(jù)寫入智能卡中,讀取時,對它用Key3作為密鑰進行解密,得到所需數(shù)據(jù)。利用此種方法,使得明文在開放的傳播空間內(nèi)得到保護,保護了信息的安全。
3)密碼的動態(tài)變換:在進行完讀寫操作以后,為了保障智能卡的安全,要立刻進行密碼的變換。Data1經(jīng)過與key2的XXTEA運算后,變換為Data1_new。由此Datal_new推算出KeyB_new。假設(shè)Key2為{0xFEDCBA98,0x76543210,0x01234567,0x89ABCDEF},則Data1_new為{0x23FF28AA,0xA7684804},KeyB_new為3C7099D07F。此密碼在智能卡中必須同步更新,防止出現(xiàn)讀卡器未能取得智能卡扇區(qū)Y的讀寫控制權(quán)的問題。
通過對實驗結(jié)果的分析可以看出,XXTEA所占用的代碼空間為2 968 byte,占用內(nèi)存空間124 byte,在24 MHz外部晶振條件下,加密速率為(3.26±0.1)Kbps(p=0.01),解密速率為(3.30±0.1)Kbps(p=0.01),抗攻擊能力強,暫時沒有一種可行的方法對該算法進行有效攻擊,而且防沖突性能好,微小的數(shù)據(jù)改變將導(dǎo)致結(jié)果的重大變化??刂泼荑€動態(tài)變換的根密鑰和智能卡數(shù)據(jù)的加密密鑰不經(jīng)過明文傳輸,杜絕了RFID數(shù)據(jù)通信中出現(xiàn)的非法讀取和監(jiān)聽等威脅。
4 結(jié)論
在XXTEA加密算法基礎(chǔ)上的新RFID系統(tǒng)安全方案,具有安全性高、低成本和兼容性高的特點。實驗結(jié)果表明,新方案能有效地提高RFID數(shù)據(jù)傳輸?shù)陌踩?,可將RFID的應(yīng)用范圍推廣到信息敏感的領(lǐng)域,包括金融交易、食品安全和公共安全等。
評論