基于OTP的一次性電子錢包RFID卡
文章出處:http://xianjuhong.com 作者:劉敬術(shù),劉俊偉,王兼明,龔敏 人氣: 發(fā)表時間:2011年09月27日
1 引言
電子錢包是顧客在電子商務(wù)購物活動中常用的一種支付工具,是在小額購物或購買小商品時常用的新式錢包。電子錢包有兩種概念:一種是純粹的軟件,只要用于網(wǎng)上消費、賬戶管理,這類軟件通常與銀行賬戶或銀行卡賬戶連接在一起的;二是小額支付的智能儲值卡,持卡人預(yù)先在卡中存入一定的金額,交易時直接從卡中扣除交易金額,因為此類卡不像銀行卡那樣需要大型的系統(tǒng)支持,所以在一些活動的、小額的交易中應(yīng)用非常廣泛,最具代表性時公交卡。
電子錢包智能儲值卡一般是基于射頻識別技術(shù),并包括芯片、天線和封裝三個主要組成部分。電子錢包的芯片存儲值可以是數(shù)字現(xiàn)金和其他電子貨幣,可以在相應(yīng)的裝置上消費,并且可以顯示有多少錢在用戶的電子錢包內(nèi),如公共交通卡可以在相應(yīng)的公共交通讀卡機上讀出其存儲值,在其上進行消費。
隨著電子商務(wù)和技術(shù)的發(fā)展,電子錢包的使用已經(jīng)越來越多,但是現(xiàn)有的智能儲值卡都是基于EEPROM(電可擦除可編程只讀存儲器)工藝,其成本難以下降,阻礙了對電子錢包的利用。利用低成本的0TP(一次可編程)存儲器,結(jié)合模擬電路和數(shù)字電路實現(xiàn)一種一次性電子錢包。這種一次性電子錢包的基本功能是在發(fā)卡時將一定的金額存入卡中,然后最終用戶在讀卡機上以單位值或是單位值的倍數(shù)消費,直到金額消費完為止。因為OTP存儲器的只能一次編程的特性,使得基于這種存儲器的一次性電子錢包與基于EEPROM 的電子錢包在內(nèi)部操作上有很大的不同。
2 一次性電子錢包的功能
電子錢包一般包括以下幾個主要功能:初始化錢包、扣錢包、加錢包和讀錢包。初始化錢包是指將一定的金額在發(fā)卡商那里存人電子錢包中;扣錢包是支持電子錢包在指定的機具消費,每次消費扣除一定的金額;加錢包是指為電子錢包充值;讀錢包則是將電子錢包的余額讀出。一次性電子錢包沒有加錢包的功能,但其它功能從用戶層面來說跟S50等常用的電子錢包卡一樣的。
2.1 存儲器分配
一次性電子錢包的OTP存儲器的大小為8KBits,主要劃分為兩個功能區(qū):一個是存取面值和密碼等信息的操作區(qū),大小為2KBits;另一個則是記錄單位值使用情況的減法區(qū),大小為6KBits,減法區(qū)中每個Bit代表一個單位值。操作區(qū)又分為4個扇區(qū),每個扇區(qū)有4塊,每塊的大小為128 Bits。每個扇區(qū)的第4塊存儲密碼,扇區(qū)0的第一塊由造卡廠商寫入UID等數(shù)據(jù),扇區(qū)0的第二塊寫入一次性電子錢包面值的數(shù)據(jù),其它用戶自定義的數(shù)據(jù)塊可以由用戶寫人任何數(shù)據(jù)。
2.2 初始化錢包
電子錢包的面值是指發(fā)卡商將智能卡發(fā)到最終用戶手上時的最初金額。基于(OTP存儲器的一次電子錢包的面值由兩個數(shù)表示,分別為如單位值U是(32Bits)和單位值可使用次數(shù)是T16(Bits),在一個大小為128Bits 的 Block 中它的分配如圖1所示的格式寫入數(shù)據(jù)。面值等于單位值U乘以可使用次數(shù)T,如單位值是32’d2,可使用次數(shù)是16’d50,則面值就是100。減法區(qū)中,每個Bit代表一個單位值,一共有6000個Bit,即可使用次數(shù)T可設(shè)定的最大值為6000,但也可以是小于6000的任何數(shù)。面值塊設(shè)置一個塊指針,這個塊被寫入后,就編程這個指針為1。塊指針設(shè)置為1后,就不能對這個塊再進行寫入操作,且每次執(zhí)行扣錢包和讀錢包操作,都要檢查這個塊指針是否為1。
圖1存儲器分配圖
圖2 面值表示
2.3 扣錢包
一次性電子錢包進行面值的初始化后,就可以執(zhí)行減法操作了,但不能像S50那樣執(zhí)行加法和再充值等操作。一次性電子錢包減法操作分以下幾個步驟:第一步,卡和讀卡機之間相互通過身份認證和密碼校驗;第二步,從減法區(qū)的最后一個地址(第6000個)開始,以倒序的方法尋找最高位的被編程比特的地址,記為LBAddr第三步,從讀卡機接受減法值S,用S除以面值區(qū)中的單位值 ,得到結(jié)果商Q和余數(shù)R,如果余數(shù)R不為0,則表明減法值S不是單位值 的整數(shù)倍,操作失敗,否則進行下一步;第四步,用LBAddr減去減法區(qū)中的第一個比特的地址FBAddr,得到單位值使用次數(shù)UT,如果商Q和單位值的使用次數(shù)UT的和小于等于面值區(qū)中的次數(shù)T,則進行下一步,否則中斷。第五步,LBAddr 加上商Q得到新的編程地址NBAddr,接到讀卡機的編程命令后,編程第 NBAddr 個比特的值為1,并向讀卡機返回減法操作成功的信息。
圖3 扣錢包流程
扣錢包的操作步驟中,首先以倒序的方式尋找到第一個(以順序的方法則是最后一個)被編程的Bit的地址,然后根據(jù)這個地址以順序的方式算出該電子錢包中單位值的使用次數(shù)(即已消費的金額);如果再次消費的條件成立,則再次用順序的方式算出這次消費被編程的地址,最后在這個地址上編程為1(所有Bit的初始化值為0)。這樣每次做減法,無論減法值s是單位值的多少倍,都只編程一個Bit,本設(shè)計所采用的OTP 中,編程一個Bit 的數(shù)據(jù)大約只要200μs,而基于EEPROM的傳統(tǒng)方法則要編程1281個Bit的數(shù)據(jù),時間大約需要4ms,大大的縮小了編程時間。整個流程如圖3所示。
2.4 讀錢包
讀錢包是指將余額讀出,這是電子錢包中最基本的操作,其分三個步驟完成:第一步,卡和讀卡機之間相互通過身份認證和密碼校驗;第二步,從減法區(qū)的最后一個地址開始,以倒序的方法尋找最高位的被編程比特的地址,記為LBAddr;第三步,用LBAddr減去減法區(qū)中的第一個比特的地址FBAddr,得到單位值使用次數(shù)UT,并用減法區(qū)中的可使用次數(shù)T減去UT得到電子錢包單位值的未使用次數(shù)RT;第四步,將U乘以RT得到余額R,然后返回給讀卡機。
2.5 其它
除了具有一次性電子錢包的功能外,本設(shè)計還有共10塊的存儲空間供用戶存儲其它信息,可以作為一個具有加密功能的存儲卡來使用。同時每個扇區(qū)對應(yīng)著一個密碼塊,每個密碼塊都對應(yīng)著一個密碼指針。在密碼指針為零時,加密校驗使用的密碼為默認密碼,由數(shù)字電路自動給出。當(dāng)用戶對密碼塊進行編程后,就同時對相應(yīng)的密碼指針編程,此后加密校驗操作就使用用戶寫入的密碼。
3 電子錢包的實現(xiàn)
一次性電子錢包采用ISO/IEC 14443 TypeA 協(xié)議 ,兼容市面上流行的 MifareOne 系列指令 。除了不支持 INCREMENT 和RESTORE 指令外,其它指令格式與S50或其兼容卡一樣。包括模擬電路,一次性電子錢包的芯片如圖4所示。
圖4 芯片總體框圖
模擬電路中,整流電路的作用是將讀卡機中耦合過來的射頻信號交流電壓轉(zhuǎn)換成直流電源電壓,在整流電路后面加上一級穩(wěn)壓電路,防止直流電壓過高;上電復(fù)位電路為數(shù)字電路產(chǎn)生一個復(fù)位信號,在卡片進入卡機的有效磁場范圍后時復(fù)位數(shù)字電路的所有寄存器;解調(diào)電路則將載波中的數(shù)據(jù)信號解調(diào)出來作為數(shù)字電路的信號輸入;調(diào)制電路則是根據(jù)數(shù)字電路返回的信號調(diào)制天線,向讀卡機返回信號;時鐘整形電路則是在載波中整形除13.56M 的時鐘信號供給數(shù)字電路。
數(shù)字電路中,接收模塊主要是將以14443 TypeA 協(xié)議編碼的信號譯成二進制碼,并為以后的模塊提供各種分頻時鐘;數(shù)據(jù)處理模塊的功能主要是指令譯碼、0TP 存儲器進行讀寫操作、卡片的狀態(tài)轉(zhuǎn)移;加密單元采用流密碼對數(shù)據(jù)進行加密,除了14443 TypeA規(guī)定的命令外,其它命令的通訊都經(jīng)過加密;輸出模塊則以14443 TypeA 協(xié)議規(guī)定的格式向讀卡機返回信號。
存儲器方面,采用凱路公司的專利技術(shù)XPM存儲器。XPM 采取對氧化層擊穿的原理,實現(xiàn)一次寫入多次讀取。相對常規(guī) RFID 中使用EEP—ROM,這種存儲器在常規(guī)的 CMOS 工藝下就可以實現(xiàn),其成本要比 EEPROM 工藝低,并且數(shù)據(jù)保存能力可達5O年以上,而EEPROM 的數(shù)據(jù)保存能力在10年以下。XPM 的存儲機理使得它不像 EEPROM 那樣容易受外界干擾(如激光,微波)而造成數(shù)據(jù)丟失,使得它特別適合在公交卡,電子護照等安全領(lǐng)域內(nèi)應(yīng)用。
4 結(jié)語
在14443 TypeA 協(xié)議中實現(xiàn)了一種一次性電子錢包 RFID卡。該一次性電子錢包基于OTP 存儲器,指令和加密方法與市面通用的S50相兼容,可以很方便地應(yīng)用到現(xiàn)有的讀卡機系統(tǒng)中。一次性電子錢包的基本原理是減法區(qū)中每一個Bit代表一個單位值的使用,據(jù)此給出了一次性電子錢包面值的表示方法,扣錢包的實現(xiàn)步驟和讀余額的操作方法。在SMIC 0.18/μm 的工藝條件下實現(xiàn)了該一次性電子錢包,并流片測試成功。
(文/1.四川大學(xué)物理科學(xué)與技術(shù)學(xué)院微電子技術(shù)四川省重點實驗室,2.四川凱路威電子有限公司,1.2劉敬術(shù),1.2劉俊偉,2王兼明,1龔敏)