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