新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種適用于RFID讀寫器的加密算法及其實現

        一種適用于RFID讀寫器的加密算法及其實現

        作者: 時間:2009-12-10 來源:網絡 收藏

        Mifare 1智能卡的安全性能在最新的電子攻擊面前變得日益單薄,且已被來自荷蘭的黑客破譯,考慮到硬件升級的成本過大,本系統在不對基于Mifare 1的讀卡器硬件系統進行變動的情況下,將XXTEA嵌入到系統中,設置特定的安全機制,以保護數據的安全性。

        整個系統的安全機制分為3個部分:對Mifare 1卡的讀取控制密碼的;對存入Mifare 1卡中的數據進行的;動態地進行密碼的變換。加解密的函數設為:
        Data_new=BTEA(Key,n,Data) (1)
        式中:Data_new為數據進行加解密運算后的值;Key為XXTEA的密鑰;n是數據組元的個數且用以控制加解密運算,n>0表示進行,n0表示進行解密。在讀卡器中,存放4個Key,Key_com,Key1,Key2,Key3分別作為4次XXTEA加解密運算的密鑰,其中Key_com,Key1,Key2,Key3為16 byte且是固定在閱讀器的存儲器之中。根據XXTEA的輸入與輸出數據的長度限制,以2個長整數組元為加解密運算的基本單位,規定控制扇區讀寫權限的密鑰KeyA,KeyB為XXTEA加密結果的前6個字節。
        1)對Mifare 1卡的控制密碼的加密:由Mifare 1卡特性決定,任意扇區X與扇區Y的控制密碼是完全不相關的。由于Mifare 1卡的獨一無二的序列號特性,在整個系統所能支持的智能卡系列中,可以規定第X個扇區的密碼是與該智能卡的序列號相關的。序列號的得到不需要經歷密碼校驗,而只要對智能卡的操作到達防沖突這一步驟,就可以得到。序列號SNR為4字節,而每次XXTEA加密的數組都為2個長整型的數組,可以規定x扇區的密碼為2個SNR所構成的1個64 bit數組與公用密鑰Key_com進行加密的結果。假設扇區X的密鑰為KeyA,則KeyA為BTEA(Key_com,2,SNR||SNR4),取該結果的前6 byte為KeyA。有價值數據內容存在第Y個扇區內部,第Y個扇區的控制密碼不固定,由第X個扇區的指定數據Data1經過XXTEA加密算法得來。具體過程如圖3所示。系統的公鑰Key_com是固定于閱讀器內,雖然在公開信道上傳遞的信息中不包含此公鑰的信息,但是還是有必要對其進行定期更新,才能確保安全性。
        2)對存入Mifare 1卡中的數據進行的加解密:經過一次加密運算得到扇區Y的密碼后,通過Authentication命令完成對卡的認證后,就可以讀取存放于扇區Y的有價值數據。讀取到的是已經經過XXTEA算法進行加密完的數據。所以,有必要對其進行解密,才能得到真正的數據。而數據寫入的過程與之對應,需要先將要寫入Y扇區的數據以Key3進行XXTEA加密運算,再將運算結果寫人到扇區Y中。由XXTEA算法的對稱密鑰特性可知,密鑰是與加密該數據的密鑰相同,固定存放于讀卡器的存儲器之中。具體過程如圖3所示。

        3)動態地進行密碼的變換:在每次讀寫操作完智能卡之后,進行智能卡扇區Y密鑰的動態變換。將扇區X內的數據,用Key2進行再次的XXTEA算法加密,變化得到一個新的數據。該新的數據寫入扇區X。而對此Data_new進行Key1的加密運算得到扇區Y的新密鑰,在已經驗證扇IXY的密鑰的情況下,更改此密鑰為Data_new)iS對應的密鑰,以便下次再次使用。具體如圖4所示。

        3 RFID應用系統
        系統的硬件電路由NXP的專用讀寫芯片MF RC500和STC單片機STC89C52以及外部的天線濾波和接收回路組成,如圖5所示。MF RC500讀寫芯片完全兼容于ISO/IEC 14443協議,且與MCU的接口多樣化,特別適合于嵌入式系統應用。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 惠水县| 兴山县| 芜湖县| 甘泉县| 岳西县| 龙门县| 垫江县| 天等县| 平南县| 孝昌县| 乌拉特后旗| 响水县| 同江市| 永胜县| 福鼎市| 泽普县| 蒙阴县| 台江县| 辽阳县| 大渡口区| 石台县| 泸西县| 吉安市| 民县| 拉孜县| 霍城县| 肥乡县| 仙游县| 宾阳县| 前郭尔| 静乐县| 义乌市| 兴化市| 孝昌县| 马鞍山市| 德安县| 余姚市| 泽州县| 安康市| 婺源县| 霸州市|