康崇皓 石琦玉 張 寧 何鐵軍
城市軌道交通單程票票卡結(jié)構(gòu)規(guī)劃及實現(xiàn)
康崇皓1石琦玉2張 寧2何鐵軍2
(1.蘇州市軌道交通集團有限公司江蘇蘇州215006;2.東南大學(xué)智能運輸系統(tǒng)研究中心南京210096)
為安全高效地使用單程票,以Utralight票卡介質(zhì)為研究對象,在分析票卡特性以及單程票業(yè)務(wù)需求的基礎(chǔ)上,對票卡結(jié)構(gòu)進行功能區(qū)劃分,規(guī)劃單程票各功能區(qū)的字段內(nèi)容并合理分配票卡存儲空間,討論票卡交易安全的加密算法。結(jié)合票卡結(jié)構(gòu)的字段設(shè)計以及單程票業(yè)務(wù)功能,對單程票在流通過程中的各項操作流程進行詳細的設(shè)計。
軌道交通;單程票;票卡結(jié)構(gòu);操作流程
自動售檢票系統(tǒng)(automatic fare collection,AFC)是直接服務(wù)于乘客的設(shè)施,乘客的購票、進站、出站等都是通過AFC實現(xiàn)[1],而乘客進出站的憑證就是票卡,票卡也是運營單位進行票務(wù)管理的基礎(chǔ),在城市軌道交通的運營管理方面具有舉足輕重的作用。票卡作為票務(wù)數(shù)據(jù)統(tǒng)計的依據(jù)和乘客乘車的憑證,記錄著與乘客乘車相關(guān)的信息以及與票務(wù)數(shù)據(jù)統(tǒng)計相關(guān)的信息[2-3]:一方面,乘客通過票卡與車站的AFC設(shè)備進行交互,完成乘車出行;另一方面,運營單位通過票卡與AFC設(shè)備之間的交易記錄信息進行客流的統(tǒng)計分析及預(yù)測,從而掌握客流的分布規(guī)律,以此指導(dǎo)城市軌道交通的運營管理。
現(xiàn)階段國內(nèi)軌道交通系統(tǒng)的主要票卡種類包括單程票、行李票、往返票、出站票、普通儲值票、計次票、區(qū)段票、限期票、團體票、紀念票、個性票、優(yōu)惠票、員工票、測試票等近20種,其中單程票、儲值票、計次票、員工票是基本票種。在軌道交通運營的初始階段,使用單程票的客流占總客流的比例非常可觀,就蘇州軌道交通而言,可以達到總客流的一半以上,甚至達到2/3。在運營進入成熟期,乘客開始接受軌道交通出行方式,較為方便的儲值票的占有比例上升,致使單程票的使用比例跌至一半以下。城市軌道交通吸引的客流很大一部分來源于不穩(wěn)定的雜散客流,他們往往使用單程票乘車,即使是在運營成熟期,節(jié)假日時由于不穩(wěn)定的雜散客流作用也會使單程票的使用比例增加。單程票在操作流程上比儲值票多了購票環(huán)節(jié),因票種單一,便于生產(chǎn),考慮到單程票的成本問題(其成本不能高于城市軌道交通的最低票價),采用的收費介質(zhì)往往存儲空間非常有限,且本身并不具備安全保障機制,如果在AFC系統(tǒng)設(shè)計初期沒有對單程票進行針對性的研究,將給以后的運營管理帶來風(fēng)險。因此,本文以蘇州軌道交通AFC系統(tǒng)的建設(shè)為背景,以Utralight卡為例,討論單程票的票卡結(jié)構(gòu)規(guī)劃及實現(xiàn),以期為其他城市的軌道交通提供參考。
Utralight是用NXP MF0 IC U10制作的卡片或標簽,符合ISO14443A標準,可以制作成籌碼型和不同規(guī)格的薄卡型車票,是城市軌道交通系統(tǒng)單程票比較常用的票卡[4]。Utralight卡價格便宜,其通信速率最大可達106 KBaud,讀寫距離在10 cm以內(nèi),讀寫時間在1 ms到2 ms之間,擦寫壽命在20萬次以上,數(shù)據(jù)保存期限在5年以上,其工作頻率13.56 MHz與常用的高頻讀寫器匹配。但是Utralight卡的缺點也比較突出,首先其容量十分有限(512 bit),其次Utralight卡本身不具備安全機制,需要對其進行安全性設(shè)計。
單程票基本業(yè)務(wù)需求包括:初始化時能夠記錄初始化信息;發(fā)售時能夠記錄票價、發(fā)售時間、有效期等信息;進站操作時能記錄進站時間、進站設(shè)備編號等信息;出站時能夠核對乘車區(qū)間或距離與票價是否對應(yīng),以決定是否允許乘客出站,同時記錄乘客的出站時間、出站設(shè)備編號等信息。
單程票實現(xiàn)初始化、發(fā)售、進站和出站等功能時須通過特定的操作流程對存儲在其中的特定數(shù)據(jù)信息進行讀寫。這些特定的數(shù)據(jù)信息以字段的形式存儲于Utralight票卡扇區(qū)的塊中,在擦寫過程中必須以4個字節(jié)為單位進行存儲,否則可能會導(dǎo)致卡片損壞,所以Utralight票卡的各個功能區(qū)大小必須是4字節(jié)的整數(shù)倍,然后配合合適的操作流程對這些信息進行必要的讀寫。因此,首先需要根據(jù)業(yè)務(wù)的功能需求設(shè)計相關(guān)字段來存放數(shù)據(jù)信息,并將各字段合理分配到卡結(jié)構(gòu)中的相關(guān)功能區(qū),再設(shè)計出一定的流程來操作這些字段,以實現(xiàn)單程票的各項功能。
完成單程票票卡結(jié)構(gòu)字段的規(guī)劃是實現(xiàn)單程票操作流程的基礎(chǔ),同時票卡結(jié)構(gòu)字段的設(shè)計對票卡安全性的設(shè)計至關(guān)重要。下面首先對單程票的票卡進行功能結(jié)構(gòu)區(qū)劃分,然后根據(jù)票卡功能區(qū)的劃分對票卡結(jié)構(gòu)各功能區(qū)所需設(shè)置的字段進行分析。
2.1 功能區(qū)劃分
根據(jù)以上對單程票的業(yè)務(wù)功能需求分析,可以將其劃分為4個功能區(qū),具體內(nèi)容如下。
1)發(fā)行區(qū):記錄單程票的發(fā)行日期、流水號、卡片印刷類型、發(fā)行批次號、密鑰版本號以及是否為紀念卡等發(fā)行數(shù)據(jù)信息,其中還包括與安全相關(guān)的發(fā)行區(qū)MAC碼(message authentication code,報文認證碼)信息。發(fā)行區(qū)的數(shù)據(jù)信息大小為8 Byte。
2)發(fā)售區(qū):記錄單程票發(fā)售時的票卡類型(如普通單程票、預(yù)賦值單程票、出站票等)、票卡使用次數(shù)、購票日期、有效期、購票金額、售票車站代碼、售票設(shè)備編號以及發(fā)售區(qū)MAC碼等相關(guān)數(shù)據(jù)信息。發(fā)售區(qū)是票卡信息最為豐富的功能區(qū),總共占用20 Byte。
3)進站區(qū):記錄進站時間、進站編號、進站設(shè)備編號、進站模式代碼以及進站區(qū)MAC碼等進站信息。進站區(qū)的數(shù)據(jù)信息大小為12 Byte。
4)出站區(qū):記錄出站時間、出站編號、拒絕出站代碼以及出站MAC碼等出站信息。出站區(qū)的數(shù)據(jù)信息大小為8 Byte。
2.2 字段設(shè)計
票卡結(jié)構(gòu)字段設(shè)計按照功能區(qū)劃分,每個功能區(qū)分別包含了特定的字段信息,具體字段設(shè)計如下。
2.2.1 發(fā)行區(qū)
發(fā)行區(qū)存儲的是與票卡發(fā)行相關(guān)的數(shù)據(jù)信息,這些信息與票卡初始化關(guān)系緊密,而票卡的初始化是票卡操作的重要環(huán)節(jié),所以該區(qū)字段設(shè)計是票卡完成其他功能的基礎(chǔ)信息,其所需字段如表1所示。
2.2.2 發(fā)售區(qū)
不同于儲值票,單程票多出了購票環(huán)節(jié),所以單程票的發(fā)售大多與購票同步。除了在應(yīng)對大客流疏散的情況下,考慮到自動售票機的服務(wù)能力,對一些單程票進行預(yù)賦值發(fā)售,這種情況下發(fā)售與購票是不同步的。根據(jù)現(xiàn)場發(fā)售和預(yù)賦值發(fā)售這兩種情況對票卡信息的需求就可以完成發(fā)售區(qū)的票卡結(jié)構(gòu)字段設(shè)計,具體設(shè)計內(nèi)容如表2所示。
表2 發(fā)售區(qū)字段
2.2.3 進站區(qū)
進站是票卡交易的主要環(huán)節(jié),客流信息的統(tǒng)計也要靠其完成,所以進站區(qū)的票卡結(jié)構(gòu)字段必須包括進站時間和地點等詳細的進站信息,同時還要判斷票卡是否合法,從而做出是否允許進站的決定。據(jù)此,進站區(qū)的票卡結(jié)構(gòu)字段設(shè)計如表3所示。
表3 進站區(qū)字段
2.2.4 出站區(qū)
出站區(qū)需要判斷是否允許出站,若拒絕出站,則提供拒絕出站的原因,除此之外,出站區(qū)也需要具有統(tǒng)計客流的相關(guān)功能。其票卡結(jié)構(gòu)字段設(shè)計如表4所示。
表4 出站區(qū)字段
城市軌道交通單程票出于成本的考慮,選用的芯片比較廉價,安全性較差。Utralight卡不是邏輯加密卡,其自身不具有安全機制[5]。為防止票卡信息被偽造而導(dǎo)致的運輸服務(wù)費流失,在單程票票卡中寫入相應(yīng)數(shù)據(jù)信息時,需要根據(jù)單程票交易密鑰對寫入的數(shù)據(jù)信息進行特定的加密運算,由運算結(jié)果得到報文認證碼(MAC),然后將MAC碼寫入票卡。在票卡結(jié)構(gòu)的字段設(shè)計中,每個功能區(qū)的MAC碼都來源于此,票卡交易時相關(guān)設(shè)備能夠根據(jù)MAC碼驗證票卡是否偽造或被篡改。
單程票的安全性設(shè)計其實是單程票MAC碼加密算法分析的過程,加密主要分為對稱加密和非對稱加密兩種,對稱式加密算法在加密和解密時使用同一個密鑰,這種加密技術(shù)是目前采用最為廣泛的,DES加密算法就是一種對稱的加密算法;非對稱加密算法在加密和解密時所使用的是兩個密鑰,分別是公開密鑰和私有密鑰,兩者中無論哪種密鑰對數(shù)據(jù)信息進行加密,只有對應(yīng)的另一種密鑰才能解密。
單程票的MAC碼加密算法采用CBC 3DES[6]算法,CBC是加密塊鏈模式算法,其特點是加密的密文長度必須是8個字節(jié),并且需要加入初始向量。在初始向量和密鑰相同的情況下,相同的明文總是產(chǎn)生相同的密文,所以可以采用不同的初始向量來避免相同的明文產(chǎn)生相同的密文,這樣一定程度上能抵抗字典的攻擊。除此之外,CBC模式的密文塊要依賴前續(xù)的操作結(jié)果,所以密文塊不能進行重新排序,并且一旦發(fā)生錯誤會影響當前和之后的密文。DES算法是將輸入的64位數(shù)據(jù)塊按位以某種特定方式進行組合,進行16次迭代置換,然后按照一定規(guī)則進行逆置換得到密文輸出。DES密鑰8的倍數(shù)位是奇偶校驗位,不參與DES運算,所以密鑰實際可用的只有56位[7]。3DES使用3條56位的密鑰對數(shù)據(jù)進行3次加密,相對于DES其安全性更高。如果用Ek()和Dk()代表DES算法的加密和解密過程,k代表DES算法使用的密鑰,P代表明文,C代表密文,那么,3DES加密過程為:C=Ek3(Dk2 (Ek1(P))),3DES解密過程為:P=Dk1(Ek2(Dk3 (C))),其中3個密鑰不能全部相同[8]。
生成MAC碼不僅需要加密算法,還需要確定參與MAC碼計算的數(shù)據(jù)元集,一般情況下,參與MAC碼計算的數(shù)據(jù)元集包括具有唯一性的數(shù)據(jù)域、表征報文特征的數(shù)據(jù)域以及與交易相關(guān)的數(shù)據(jù)域[9]。結(jié)合單程票的票卡結(jié)構(gòu)字段信息對票卡結(jié)構(gòu)各個功能區(qū)MAC碼的數(shù)據(jù)元集進行分析研究可知:與發(fā)行區(qū)MAC計算相關(guān)的數(shù)據(jù)域主要包括物理卡號和邏輯卡號,分為兩步計算,首先計算其臨時MAC碼,然后計算其真正的MAC碼;發(fā)售區(qū)的MAC碼除與自身包含的邏輯字段有關(guān)外,還與票卡的物理卡號及邏輯卡號的特定字節(jié)有關(guān);進站區(qū)的MAC碼計算與票卡的物理卡號以及進站區(qū)相關(guān)的字段有關(guān);出站區(qū)與進站區(qū)的相似。在明確了各個功能區(qū)MAC碼計算的數(shù)據(jù)元集后,通過字節(jié)連接操作、異或運算以及CBC 3DES加密運算等可以得到各個功能區(qū)的MAC碼,從而實現(xiàn)單程票的信息安全保障。
單程票操作包括初始化、預(yù)賦值、預(yù)賦值票繳銷、售票、進站、出站、退票、票查詢、更新、注銷和重編碼等11項業(yè)務(wù)內(nèi)容。下面對應(yīng)用頻繁且具有代表性的5種業(yè)務(wù)內(nèi)容具體操作流程的實現(xiàn)過程進行詳細分析,為單程票的票卡功能實現(xiàn)提供設(shè)計依據(jù)。
4.1 初始化操作
單程票的初始化操作是其他操作流程的基礎(chǔ),單程票的所有操作都必須先判斷票卡是否進行過初始化。單程票初始化操作的作用是對票卡的發(fā)行區(qū)寫入相應(yīng)的數(shù)據(jù),同時將其他區(qū)所有字段的數(shù)據(jù)信息設(shè)置為0。初始化是在車票編碼分揀機中完成的,其具體操作流程如圖1所示,其中計算發(fā)行區(qū)MAC碼、并將返回的計算結(jié)果寫入發(fā)行區(qū)相應(yīng)字段是單程票初始化的主要環(huán)節(jié)。另外,OTP(one time programmable,一次性編程)區(qū)域如果被改寫,說明票卡已被使用,無法再次初始化。
圖1 初始化操作流程
4.2 售票操作
售票操作流程主要是在票卡發(fā)售區(qū)的各字段寫入相應(yīng)的信息,為進出站操作做準備。售票操作的具體流程如圖2所示,首先判斷發(fā)行區(qū)信息是否正確,也就是判斷票卡是否完成初始化操作,其次根據(jù)票卡是否超過其最大使用次數(shù)判斷是否需要回收票卡,然后計算發(fā)售區(qū)MAC碼,并將返回的計算結(jié)果寫入發(fā)售區(qū)相應(yīng)字段。
4.3 進站操作
圖2 售票操作流程
票卡的進站操作流程是在閘機中完成的,在進站操作時,讀寫器設(shè)備首先會讀取票卡的所有區(qū)段信息,然后判斷發(fā)行區(qū)信息是否正確,這與售票過程相同,主要是MAC碼的安全機制驗證;其次判斷發(fā)售區(qū)的MAC碼是否正確,然后判斷進站區(qū)MAC碼是否正確:如果進站區(qū)MAC碼正確,則判斷票卡邏輯卡號是否在讀寫器本地中有記錄,根據(jù)讀寫器的記錄決定票卡是否轉(zhuǎn)入進站流程;如果進站區(qū)MAC碼不正確,則對車票的測試位和設(shè)備的測試模式進行匹配,如果匹配則繼續(xù)判斷購票車站是否為當前進站車站編號,然后判斷購票日期與進站日期是否超過有效期,從而決定是否允許進站。最后,引入?yún)?shù)對進站區(qū)進行寫卡操作,在進站寫卡過程中引入了重寫機制,在不超過3次寫卡操作的情況下成功寫卡都視為有效,然后驗證是否寫入正確,寫入正確就表示進站操作完成。
4.4 出站操作
出站操作也是在閘機中完成的,主要內(nèi)容是驗證卡的正確合法性以及是否允許出站。首先判斷票卡發(fā)行區(qū)信息是否正確,然后判斷發(fā)售區(qū)MAC碼是否正確,這些操作可以驗證單程票的票卡是否正確合法,防止票卡偽造;其次,判斷票卡種類是否為出站票,如果為出站票則繼續(xù)判斷發(fā)售站編碼是否為當前車站編碼以及票卡是否過期,然后進行寫卡,寫入出站日期、出站編號等信息,并使發(fā)售區(qū)和進站區(qū)的MAC碼清零,寫入成功后,則表示完成出站;如果票卡不是出站票,則轉(zhuǎn)入判斷是否超程,超程則不能出站,如果沒有超程繼續(xù)判斷更新標志位是否更新,若未更新繼續(xù)判斷單程票是否超時,未超時以及更新位標志表示更新完成的情況下都轉(zhuǎn)入寫卡出站,寫卡成功后就表示完成出站。
4.5 預(yù)賦值操作
預(yù)賦值單程票是為疏散可預(yù)見性大客流而提前發(fā)售的票卡,在售票之前就對票卡的金額進行賦值。在大客流發(fā)生時售票機的售票能力有限,此時預(yù)賦值票卡可以按照預(yù)先寫入的票價進行人工售票,以此來緩解自動售票機的服務(wù)壓力。單程票的預(yù)賦值操作是在車票編碼分揀機中完成的,其具體流程如圖3所示,其中驗證票卡是否初始化以及在發(fā)售區(qū)寫入預(yù)賦值相關(guān)信息是該流程的關(guān)鍵環(huán)節(jié)。
圖3 預(yù)賦值操作流程
Utralight單程票票卡結(jié)構(gòu)和票卡操作流程的合理設(shè)計不僅可以滿足軌道交通AFC系統(tǒng)的票務(wù)管理需求,而且能夠滿足隨機不穩(wěn)定乘客的出行需求,并能保證單程票的票卡安全,防止運輸服務(wù)費的流失。在研究分析Utralight卡的性能以及單程票基本功能的基礎(chǔ)上,完成了單程票票卡結(jié)構(gòu)功能區(qū)的劃分,詳細地規(guī)劃了各功能區(qū)的字段內(nèi)容。與此同時,研究了單程票MAC碼的加密算法以確保票卡信息的安全性,最后對單程票的主要操作流程進行了設(shè)計,為實現(xiàn)單程票的基本功能奠定基礎(chǔ)。
[1]徐明.軌道交通自動售檢票系統(tǒng)設(shè)計[D].上海:復(fù)旦大學(xué),2005.
[2]宋亞娜,張寧,何鐵軍.軌道交通儲值票票卡結(jié)構(gòu)與操作流程研究[J].城市軌道交通研究,2014,17(1):65-68.
[3]朱嘉斌,錢曙杰.城市軌道交通售檢票系統(tǒng)系列票卡的兼容[J].都市快軌交通,2015,28(1):28-30.
[4]康崇皓.軌道交通自動售檢票系統(tǒng)票卡發(fā)行方案探討[J].鐵道通信信號,2010,46(12):42-44.
[5]張寧,何鐵軍,余彥翔.地鐵Ultralight單程票安全解決方案研究[J].交通與計算機,2007,25(5):34-37.
[6]鄧悅恒.3DES算法原理與設(shè)計[J].電腦知識與技術(shù),2011,7(20):4817-4818.
[7]陳通.基于3-DES算法的列控系統(tǒng)車地安全通信研究與實現(xiàn)[D].北京:北京交通大學(xué),2009.
[8]李少芳.DES算法加密過程的探討[J].計算機與現(xiàn)代化,2006(8):102-104.
[9]謝林光.淺談加密技術(shù)的概念、加密方法以及應(yīng)用[J].中國科技信息,2009(21):100-102.
(編輯:王艷菊)
Research on Ticket Structure and Operation Procedure of Single Journey Ticket in Urban Rail Transit
Kang Chonghao1ShiQiyu2Zhang Ning2He Tiejun2
(1.Suzhou Railway Co.,Ltd.,Suzhou 215006;2.ITS Institute of Southeast University,Nanjing 210018)
In order to use single journey ticket safely and efficiently,with Utralight card being taken as the research object,functional zone of card structure is classified on the basis of card features and single journey ticket business requirement analysis.Field contentof each functional zone of single journey ticket is planned and the storage space of card is allocated in a more reasonable way.And encryption algorithm of card transaction security is discussed.Considering the field design of card structure and the business function of single journey ticket,the operational processes of single journey ticket in the circulation process are designed in detail.
rail transit;single journey ticket;ticket structure;operation procedure
F530.7
A
1672-6073(2016)02-0075-05
10.3969/j.issn.1672-6073.2016.02.017
2015-04-25
2015-06-07
康崇皓,男,工程師,從事軌道交通機電工程專業(yè)研究,kangchonghao@foxmail.com
蘇州市軌道交通專項研究項目(szgdky2013002)
doi:10.3969/j.issn.1672-6073.2016.02.018