物聯傳媒 旗下網站
登錄 注冊
RFID世界網 >  成功案例  >  服裝  >  正文

Mifare1卡及其讀寫器ASIC模塊之“密碼操作”研究與其應用程序開發

作者:智薈科技
日期:2008-06-18 16:05:56
摘要:非接觸式智能卡已經廣泛地應用于各類門禁控制系統,公共交通支付系統,e-purse系統,高速公路不停車收費系統,IBMS(智能大樓管理系統),海關過境身份識別,以及醫療保險系統等等。
關鍵詞:RFID
 
關鍵字: 非接觸式智能卡  ASIC模塊
1、序言
  非接觸式智能卡已經廣泛地應用于各類門禁控制系統,公共交通支付系統,e-purse系統,高速公路不停車收費系統,IBMS(智能大樓管理系統),海關過境身份識別,以及醫療保險系統等等。
  非接觸式智能卡以其高度安全保密性,通信高速性,使用方便性,成本日漸低廉等而受到廣泛使用,給我們的生活質量帶來了很大的提高。因此,如何認識、理解智能卡,特別是帶有非常神秘色彩的非接觸式智能卡,已引起很多智能卡的使用者,包括智能卡專業研發的IT科研人員的極大的興趣和愛好。筆者在此很愿意將自己多年來在智能卡(接觸式智能卡及非接觸式智能卡)方面的研究及其軟硬件應用開發的經驗與大家一同交流和分享,以取得我國金卡工程事業的更進一步的發展。
  在此,筆者將以符合ISO/IEC14443TYPEA標準的Mifare1S50系列非接觸式智能卡及其讀寫設備專用IC(ASIC)RC150/170模塊為對象,與大家一起就“關于非接觸式智能卡及其讀寫器ASIC模塊之‘密碼操作’”作一些研究與探討,并將用標準的Intel-51系列微處理器匯編語言進行實際的應用程序的開發。在筆者曾設計和開發的眾多智能卡項目中,本文所給出的應用程序都有著良好的運行效果。

2、非接觸式智能卡及其讀寫器ASIC模塊RC150/170
  Mifare1S50非接觸式智能卡片有著16個Sector(扇區);每個Sector包含4個Block(塊);每個Block具有16個byte的存儲容量。Sector被定義為Sector0至Sector15;Block被分為Block0至Block3;整個Mifare1S50非接觸式智能卡共有64個Block。
  Sector0中的Block0記錄了該張智能卡的序列號(SerialNumber)以及生產廠商的標志信息等,這些信息已在卡片出廠時固化,不能更改。因此該Block不能再復用為應用數據塊。
  每個Sector中的Block3被特別用來存放對該Sector中應用塊Block0,1,2及其本身Block3進行數據存取的密碼及存取權限。整個Mifare1S50非接觸式智能卡共有16個Block3。根據絕對地址編址,他們可被編為Block3(在Sector0中),Block7(在Sector1中),Block11(在Sector2中),以及Block63(在Sector15中)等等。
  對于某一Sector中的Block3的絕對地址編址可以由下列公式計算得到:
  Block X=(N+1)*4-1
  其中:X:絕對地址編址的Block塊號
     N:Sector扇號,0至15
  Block3有16個byte組成。前6個字節是密碼A(KEYA),KEYA的缺省值可能為“A0A1A2A3A4A5”;最后6個字節是密碼B(KEYB),KEYB的缺省值可能為“B0B1B2B3B4B5”;中間4個字節是控制字節,缺省值可能為“FFH07H80H69H”;利用KEYA或KEYB并遵守早已定義在4個控制字節中的存取條件,我們便能對該密碼(KEYA或KEYB)所對應的Sector內的應用塊Block0,1,2進行數據讀/寫/更新等操作。
  由于非接觸式智能卡的操作,包括數據流的傳遞等都是以“非接觸”方式來完成的,因此在MCU與非接觸式智能卡之間必須有一個傳遞密碼(或數據流)的中間媒體,即ASIC模塊。RC150/170就是這樣一種ASIC模塊。它擔負著非接觸式智能卡與MCU(微處理機)之間所有的密碼/數據相互傳遞的重要任務。對非接觸式智能卡進行密碼操作,變成對RC150/170ASIC模塊進行密碼操作。RC150/170ASIC模塊與非接觸式智能卡之間的信息傳遞(包括密碼等)對用戶來說是透明的,會自動傳遞并完成。因此如何對非接觸式智能卡進行“密碼操作”(對Block3的操作)變成如何對RC150/170ASIC模塊進行密碼操作。Philips公司的MCM200模塊,MCM500模塊或SB201,SB601(Uni-VisionEngineeringLtd.的產品)模塊中都包含有RC150/170ASIC模塊,因此本文所討論的內容,包括下面設計的程序等,也適用于這些模塊。RC170是RC150的新一代ASIC模塊,速度較快。
  在研究ASIC模塊RC150/170的時候,我們必須關注所有與“密碼操作”有關的寄存器/存儲器的情況。
  ●密碼數據寄存器KeyDataRegister(寄存器地址:0x0A);
  ●密碼地址寄存器KeyAddressRegister(寄存器地址:0x0C);
  ●密碼狀態/控制寄存器KeyStatus&ControlRegister(KEYSTACON)(寄存器地址:0x0B);
  ●其他相關寄存器。
所有這些與“密碼操作”相關的寄存器都是“只可寫不可讀”的,即WOM(Write-Only-Memory)。因此不要試圖去讀取這些寄存器的內容。

3、“密碼操作”的研究及其應用程序開發
3.1“LOAD_KEY”密碼存取
3.1.1設置新的密碼值
3.1.4設置密碼數據寄存器KeyDataRegister(寄存器地址:0x0A)
3.2“AUTHENTICATION”(密碼認證)
  “AUTHENTICATION”(密碼認證)操作必須按照如下的幾個步驟進行:
   ●設置ASIC模塊中的TOC/BCNTS寄存器等
   ●設置密碼狀態/控制寄存器KeyStatus&ControlRegister(KEYSTACON)
   ●設置密碼地址寄存器KeyAddressRegister(寄存器地址:0x0C)
   ●設置AUTHENTICATION指令碼
   ●密碼地址變換
   ●校驗STACON寄存器,以確定這次的“AUTHENTICATION”密碼認證是否有效
   ●關閉TOC及一些其它操作等
  由于“AUTHENTICATION”(密碼認證)操作同“LOAD_KEY”(密碼存取)操作相互類似,在此不再重復。
  只有在完全完成了上述的兩個主要的密碼操作步驟,并且得當了ASIC模塊“OK”的響應,非接觸式智能卡上相對應與剛才進行過密碼操作的某一扇區Sectorm內的Block0,1,2才能被MCU進行訪問,包括進行讀/寫等數據操作。一旦要求對另一扇區Sectorn內的Block進行數據讀寫時,則必須重新開始對扇區Sectorn進行密碼操作,包括“LOAD_KEY”(密碼存取)操作和“AUTHENTICATION”(密碼認證)操作等。

4、結束語
  非接觸式智能卡技術雖然至今只有4~5年的成熟發展期,但是由于它的高度保密性,以及使用的方便性,得到了很快的普及。這種普及又加速了非接觸式智能卡技術的飛躍發展。它同銀行用接觸式CPU卡相互融合,產生了新的雙界面智能卡(Contact&ContactlessInterface),在e-purse電子錢包系統等方面取得到了很大的成功。世界上一些著名的大公司,如SONY公司等,也介入了非接觸式智能卡技術領域,并且SONY的非接觸式智能卡技術又有著非常獨到之處。根據筆者對SONY非接觸式智能卡技術的使用、研究和了解,相對MIFARE而言,其在讀卡的速度、穩定性、誤碼率等性能上都有很大的提高,這也是其溶入了新的技術所致。
 
未完,更多的資訊請點擊www.233633.com查看,RFID技術資料下載請登陸http://bbs/233633.com.或您可通過以下方式進行咨詢:
聯系人:廖先生、袁小姐 
電話(TEL):086-020-87511987
郵箱服務:zhihui@233633.com   
網站:http://www.233633.com
產品技術QQ:445119338
系統方案QQ:350704625
在線咨詢QQ:243313899
 
智能識別,薈萃百家之長!
 
作者:智薈科技
來源:智薈RFID科技網
版權所有,歡迎大家轉摘,轉摘請注明作者和出處!