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