<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 一種適用于RFID讀寫(xiě)器的加密算法及其實(shí)現

一種適用于RFID讀寫(xiě)器的加密算法及其實(shí)現

作者: 時(shí)間:2009-12-10 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

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

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>