基于GP32的射頻卡密碼認證系統設計
文章出處:http://www.nyfzw.net 作者: 人氣: 發表時間:2012年03月18日
摘要:密碼認證是射頻卡應用中的一項關鍵技術.在剖析了Mifare卡存儲結構、讀寫控制以及加密機制的基礎之上,以 MC68HC908GP32為主控芯片,利用基站芯片 MF RC500與天線技術的結合搭建出一個密碼認證平臺.軟件部分重點闡述了 Mifare卡與基站芯片 MF RC500密碼認證過程與程序實現;該系統具有作用距離遠、響應速度快、使用簡便、安全性高等顯著特點.
關鍵詞:MC68HC908GP32;射頻卡;密碼認證
0 引 言
射頻卡(非接觸式 IC卡)技術是近幾年發展起來的一項新技術.與傳統的接觸式 IC卡相比,非接觸式 IC卡無論從其可靠性、易用性、抗干擾性還是一卡多用性等方面都有著明顯的優勢,特別是卡內嚴格的密碼認證機制大大提高了用戶數據的安全性,是電子加密技術應用領域的一大亮點,隨著射頻卡的應用日益廣泛,相應地促進了嵌入式應用領域開發人員對其技術的研究[1].在我們承擔項目的開發之處,經過仔細分析后發現:密碼驗證的方法與機制是射頻卡應用中的一項關鍵技術,對于一般應用開發人員來說掌握該項技術還是比較困難的.如果能將射頻卡的密碼認證過程進行底層屏蔽并模塊化封裝的話,那么完全可以為相關工程技術人員提供二次開發平臺,同時也將推動射頻卡技術的廣泛應用.
1 MF1射頻卡
Philips是世界上最早研制非接觸式 IC卡的公司,其 Mifare技術已經被制定為IS0/IEC14443 TYPE A國際標準.為了方便研究,首選該公司典型產品Mifare 1 IC S50(MF1)卡.
1.1 存儲結構和組成
MF1卡片的存儲容量為1K×8位字長,采用EEPROM作為存儲介質.整個結構劃分為16個扇區,編為扇區0~15.每個扇區有 4個塊(Block),分別為塊0、1、2、3.每個塊有 16個字節.每個扇區的第四塊也稱作尾塊,包含了該扇區的密碼 A(6個字節)、存取控制(4個字節)、密碼 B(6個字節),是控制塊.其余三塊是數據塊.
1.2 對MF1卡的讀寫控制
每個扇區的尾塊是扇區的控制塊.控制塊使用兩個密碼,為用戶提供多重控制方式.例如,
用戶可以用一個密碼控制對數據塊的讀操作,用另一個密碼控制對數據塊的寫操作.在空卡狀態下每個扇區的尾塊數據為; “Ox000000000000 FF078069 FFFFFFFFFFFF”.空卡時的密碼 A和密碼 B均為“OxFFFFFF”,由于 A密碼不可讀,讀出的數據顯示為“Ox000000”.在空卡默認讀寫權限下可以利用密碼 A對所有塊進行讀寫操作,以及更改各塊的讀寫權限.
圖 1 尾塊的權限代碼與訪問權限圖
但不可以利用密碼 B進行讀寫操作(此時 B密碼可讀).
權限位為:“OxFF078069”,由圖 1,有; C13=0 C12=0 C11=0 C10=0; C23=0 C22=0 C21=0 C20=0 ; C33=1 C32=0 C31=0 C30=0.“C13 C23 C33”=001,對應圖 1的第 5行,表示 A密碼不可讀,可用 A密碼改寫(即通過 A密碼校驗后,可改寫 A密碼),權限字節及 B密碼的讀寫權限均可用 A密碼讀寫.
1.3 密碼驗證與加密機制
MF1內部的安全加密算法叫做Crypto1,使用的密碼長度是48 bits,即6個字節.Crypto1是一種三遍驗證算法.MF RC500((簡稱RC500,與MF1實現數據讀寫的基站芯片,見本文的2.2節)片內部將該算法進行了封裝,只要執行 Authent1和 Authent2命令,就可自動完成這個驗證過程.如圖2所示.
2 密碼處理框圖
在驗證命令期間, RC500是從其內部密碼緩沖區(key buffer)讀取密碼.因此,用戶必須保證在執行 Authen1命令前就已經將密碼放到 key buffer中了.
需要說明的是,將密碼載入到內部密碼緩沖區或者暫存到EEPROM中時都要使用特定的密碼存儲格式.每個密碼字節被分成兩個半字節,低半字節(k0-k3)和高半字節(k4-k7).每半個字節都在一個字節內存儲了兩次,其中一次要取反.由于這種格式,用戶使用的 6字節的密碼實際上需要 12字節的 E2PROM來存儲.
2 硬件設計
硬件主要包括 MCU電路模塊、基于 RC500的基站模塊、天線模塊電路和相關的匹配電路等,系統硬件原理圖如圖 3所示.
2.1 MCU部分
單片機選用FreeScale公司MC68HC908GP32(簡稱GP32)芯片[2].GP32不僅性能穩定而且具有性能價格比高的突出優勢.其自身有 32KB的 Flash存儲器、支持在線編程、 8MHZ內部總線頻率和低功耗等性能,尤其還具有 8個字節(64位)Flash區的密碼保護 .
2.2 基站部分
系統的基站單元采用 PHILIPS公司的 RC500芯片.該芯片為目前用于 13.56MHz頻段非接觸通信的主流讀卡 IC.RC500芯片采用先進的調制和解調技術 ,支持 13.56MHz頻段所有被動非接觸式通信方式和協議,并支持ISO14443A中所有的層.RC500芯片內的發送器部分在不增加外接有源電路時可直接驅動的天線操作距離為 300mm,接收模塊部分則提供一個穩健可靠的解調/解碼電路,用于 ISO14443A兼容的應答信號[3]..。
圖3 系統硬件原理圖
第1頁第2頁 |