康崇皓 石琦玉 張 寧 何鐵軍
城市軌道交通單程票票卡結構規劃及實現
康崇皓1石琦玉2張 寧2何鐵軍2
(1.蘇州市軌道交通集團有限公司江蘇蘇州215006;2.東南大學智能運輸系統研究中心南京210096)
為安全高效地使用單程票,以Utralight票卡介質為研究對象,在分析票卡特性以及單程票業務需求的基礎上,對票卡結構進行功能區劃分,規劃單程票各功能區的字段內容并合理分配票卡存儲空間,討論票卡交易安全的加密算法。結合票卡結構的字段設計以及單程票業務功能,對單程票在流通過程中的各項操作流程進行詳細的設計。
軌道交通;單程票;票卡結構;操作流程
自動售檢票系統(automatic fare collection,AFC)是直接服務于乘客的設施,乘客的購票、進站、出站等都是通過AFC實現[1],而乘客進出站的憑證就是票卡,票卡也是運營單位進行票務管理的基礎,在城市軌道交通的運營管理方面具有舉足輕重的作用。票卡作為票務數據統計的依據和乘客乘車的憑證,記錄著與乘客乘車相關的信息以及與票務數據統計相關的信息[2-3]:一方面,乘客通過票卡與車站的AFC設備進行交互,完成乘車出行;另一方面,運營單位通過票卡與AFC設備之間的交易記錄信息進行客流的統計分析及預測,從而掌握客流的分布規律,以此指導城市軌道交通的運營管理。
現階段國內軌道交通系統的主要票卡種類包括單程票、行李票、往返票、出站票、普通儲值票、計次票、區段票、限期票、團體票、紀念票、個性票、優惠票、員工票、測試票等近20種,其中單程票、儲值票、計次票、員工票是基本票種。在軌道交通運營的初始階段,使用單程票的客流占總客流的比例非常可觀,就蘇州軌道交通而言,可以達到總客流的一半以上,甚至達到2/3。在運營進入成熟期,乘客開始接受軌道交通出行方式,較為方便的儲值票的占有比例上升,致使單程票的使用比例跌至一半以下。城市軌道交通吸引的客流很大一部分來源于不穩定的雜散客流,他們往往使用單程票乘車,即使是在運營成熟期,節假日時由于不穩定的雜散客流作用也會使單程票的使用比例增加。單程票在操作流程上比儲值票多了購票環節,因票種單一,便于生產,考慮到單程票的成本問題(其成本不能高于城市軌道交通的最低票價),采用的收費介質往往存儲空間非常有限,且本身并不具備安全保障機制,如果在AFC系統設計初期沒有對單程票進行針對性的研究,將給以后的運營管理帶來風險。因此,本文以蘇州軌道交通AFC系統的建設為背景,以Utralight卡為例,討論單程票的票卡結構規劃及實現,以期為其他城市的軌道交通提供參考。
Utralight是用NXP MF0 IC U10制作的卡片或標簽,符合ISO14443A標準,可以制作成籌碼型和不同規格的薄卡型車票,是城市軌道交通系統單程票比較常用的票卡[4]。Utralight卡價格便宜,其通信速率最大可達106 KBaud,讀寫距離在10 cm以內,讀寫時間在1 ms到2 ms之間,擦寫壽命在20萬次以上,數據保存期限在5年以上,其工作頻率13.56 MHz與常用的高頻讀寫器匹配。但是Utralight卡的缺點也比較突出,首先其容量十分有限(512 bit),其次Utralight卡本身不具備安全機制,需要對其進行安全性設計。
單程票基本業務需求包括:初始化時能夠記錄初始化信息;發售時能夠記錄票價、發售時間、有效期等信息;進站操作時能記錄進站時間、進站設備編號等信息;出站時能夠核對乘車區間或距離與票價是否對應,以決定是否允許乘客出站,同時記錄乘客的出站時間、出站設備編號等信息。
單程票實現初始化、發售、進站和出站等功能時須通過特定的操作流程對存儲在其中的特定數據信息進行讀寫。這些特定的數據信息以字段的形式存儲于Utralight票卡扇區的塊中,在擦寫過程中必須以4個字節為單位進行存儲,否則可能會導致卡片損壞,所以Utralight票卡的各個功能區大小必須是4字節的整數倍,然后配合合適的操作流程對這些信息進行必要的讀寫。因此,首先需要根據業務的功能需求設計相關字段來存放數據信息,并將各字段合理分配到卡結構中的相關功能區,再設計出一定的流程來操作這些字段,以實現單程票的各項功能。
完成單程票票卡結構字段的規劃是實現單程票操作流程的基礎,同時票卡結構字段的設計對票卡安全性的設計至關重要。下面首先對單程票的票卡進行功能結構區劃分,然后根據票卡功能區的劃分對票卡結構各功能區所需設置的字段進行分析。
2.1 功能區劃分
根據以上對單程票的業務功能需求分析,可以將其劃分為4個功能區,具體內容如下。
1)發行區:記錄單程票的發行日期、流水號、卡片印刷類型、發行批次號、密鑰版本號以及是否為紀念卡等發行數據信息,其中還包括與安全相關的發行區MAC碼(message authentication code,報文認證碼)信息。發行區的數據信息大小為8 Byte。
2)發售區:記錄單程票發售時的票卡類型(如普通單程票、預賦值單程票、出站票等)、票卡使用次數、購票日期、有效期、購票金額、售票車站代碼、售票設備編號以及發售區MAC碼等相關數據信息。發售區是票卡信息最為豐富的功能區,總共占用20 Byte。
3)進站區:記錄進站時間、進站編號、進站設備編號、進站模式代碼以及進站區MAC碼等進站信息。進站區的數據信息大小為12 Byte。
4)出站區:記錄出站時間、出站編號、拒絕出站代碼以及出站MAC碼等出站信息。出站區的數據信息大小為8 Byte。
2.2 字段設計
票卡結構字段設計按照功能區劃分,每個功能區分別包含了特定的字段信息,具體字段設計如下。
2.2.1 發行區
發行區存儲的是與票卡發行相關的數據信息,這些信息與票卡初始化關系緊密,而票卡的初始化是票卡操作的重要環節,所以該區字段設計是票卡完成其他功能的基礎信息,其所需字段如表1所示。
2.2.2 發售區
不同于儲值票,單程票多出了購票環節,所以單程票的發售大多與購票同步。除了在應對大客流疏散的情況下,考慮到自動售票機的服務能力,對一些單程票進行預賦值發售,這種情況下發售與購票是不同步的。根據現場發售和預賦值發售這兩種情況對票卡信息的需求就可以完成發售區的票卡結構字段設計,具體設計內容如表2所示。

表2 發售區字段
2.2.3 進站區
進站是票卡交易的主要環節,客流信息的統計也要靠其完成,所以進站區的票卡結構字段必須包括進站時間和地點等詳細的進站信息,同時還要判斷票卡是否合法,從而做出是否允許進站的決定。據此,進站區的票卡結構字段設計如表3所示。

表3 進站區字段
2.2.4 出站區
出站區需要判斷是否允許出站,若拒絕出站,則提供拒絕出站的原因,除此之外,出站區也需要具有統計客流的相關功能。其票卡結構字段設計如表4所示。

表4 出站區字段
城市軌道交通單程票出于成本的考慮,選用的芯片比較廉價,安全性較差。Utralight卡不是邏輯加密卡,其自身不具有安全機制[5]。為防止票卡信息被偽造而導致的運輸服務費流失,在單程票票卡中寫入相應數據信息時,需要根據單程票交易密鑰對寫入的數據信息進行特定的加密運算,由運算結果得到報文認證碼(MAC),然后將MAC碼寫入票卡。在票卡結構的字段設計中,每個功能區的MAC碼都來源于此,票卡交易時相關設備能夠根據MAC碼驗證票卡是否偽造或被篡改。
單程票的安全性設計其實是單程票MAC碼加密算法分析的過程,加密主要分為對稱加密和非對稱加密兩種,對稱式加密算法在加密和解密時使用同一個密鑰,這種加密技術是目前采用最為廣泛的,DES加密算法就是一種對稱的加密算法;非對稱加密算法在加密和解密時所使用的是兩個密鑰,分別是公開密鑰和私有密鑰,兩者中無論哪種密鑰對數據信息進行加密,只有對應的另一種密鑰才能解密。
單程票的MAC碼加密算法采用CBC 3DES[6]算法,CBC是加密塊鏈模式算法,其特點是加密的密文長度必須是8個字節,并且需要加入初始向量。在初始向量和密鑰相同的情況下,相同的明文總是產生相同的密文,所以可以采用不同的初始向量來避免相同的明文產生相同的密文,這樣一定程度上能抵抗字典的攻擊。除此之外,CBC模式的密文塊要依賴前續的操作結果,所以密文塊不能進行重新排序,并且一旦發生錯誤會影響當前和之后的密文。DES算法是將輸入的64位數據塊按位以某種特定方式進行組合,進行16次迭代置換,然后按照一定規則進行逆置換得到密文輸出。DES密鑰8的倍數位是奇偶校驗位,不參與DES運算,所以密鑰實際可用的只有56位[7]。3DES使用3條56位的密鑰對數據進行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碼計算的數據元集,一般情況下,參與MAC碼計算的數據元集包括具有唯一性的數據域、表征報文特征的數據域以及與交易相關的數據域[9]。結合單程票的票卡結構字段信息對票卡結構各個功能區MAC碼的數據元集進行分析研究可知:與發行區MAC計算相關的數據域主要包括物理卡號和邏輯卡號,分為兩步計算,首先計算其臨時MAC碼,然后計算其真正的MAC碼;發售區的MAC碼除與自身包含的邏輯字段有關外,還與票卡的物理卡號及邏輯卡號的特定字節有關;進站區的MAC碼計算與票卡的物理卡號以及進站區相關的字段有關;出站區與進站區的相似。在明確了各個功能區MAC碼計算的數據元集后,通過字節連接操作、異或運算以及CBC 3DES加密運算等可以得到各個功能區的MAC碼,從而實現單程票的信息安全保障。
單程票操作包括初始化、預賦值、預賦值票繳銷、售票、進站、出站、退票、票查詢、更新、注銷和重編碼等11項業務內容。下面對應用頻繁且具有代表性的5種業務內容具體操作流程的實現過程進行詳細分析,為單程票的票卡功能實現提供設計依據。
4.1 初始化操作
單程票的初始化操作是其他操作流程的基礎,單程票的所有操作都必須先判斷票卡是否進行過初始化。單程票初始化操作的作用是對票卡的發行區寫入相應的數據,同時將其他區所有字段的數據信息設置為0。初始化是在車票編碼分揀機中完成的,其具體操作流程如圖1所示,其中計算發行區MAC碼、并將返回的計算結果寫入發行區相應字段是單程票初始化的主要環節。另外,OTP(one time programmable,一次性編程)區域如果被改寫,說明票卡已被使用,無法再次初始化。

圖1 初始化操作流程
4.2 售票操作
售票操作流程主要是在票卡發售區的各字段寫入相應的信息,為進出站操作做準備。售票操作的具體流程如圖2所示,首先判斷發行區信息是否正確,也就是判斷票卡是否完成初始化操作,其次根據票卡是否超過其最大使用次數判斷是否需要回收票卡,然后計算發售區MAC碼,并將返回的計算結果寫入發售區相應字段。
4.3 進站操作

圖2 售票操作流程
票卡的進站操作流程是在閘機中完成的,在進站操作時,讀寫器設備首先會讀取票卡的所有區段信息,然后判斷發行區信息是否正確,這與售票過程相同,主要是MAC碼的安全機制驗證;其次判斷發售區的MAC碼是否正確,然后判斷進站區MAC碼是否正確:如果進站區MAC碼正確,則判斷票卡邏輯卡號是否在讀寫器本地中有記錄,根據讀寫器的記錄決定票卡是否轉入進站流程;如果進站區MAC碼不正確,則對車票的測試位和設備的測試模式進行匹配,如果匹配則繼續判斷購票車站是否為當前進站車站編號,然后判斷購票日期與進站日期是否超過有效期,從而決定是否允許進站。最后,引入參數對進站區進行寫卡操作,在進站寫卡過程中引入了重寫機制,在不超過3次寫卡操作的情況下成功寫卡都視為有效,然后驗證是否寫入正確,寫入正確就表示進站操作完成。
4.4 出站操作
出站操作也是在閘機中完成的,主要內容是驗證卡的正確合法性以及是否允許出站。首先判斷票卡發行區信息是否正確,然后判斷發售區MAC碼是否正確,這些操作可以驗證單程票的票卡是否正確合法,防止票卡偽造;其次,判斷票卡種類是否為出站票,如果為出站票則繼續判斷發售站編碼是否為當前車站編碼以及票卡是否過期,然后進行寫卡,寫入出站日期、出站編號等信息,并使發售區和進站區的MAC碼清零,寫入成功后,則表示完成出站;如果票卡不是出站票,則轉入判斷是否超程,超程則不能出站,如果沒有超程繼續判斷更新標志位是否更新,若未更新繼續判斷單程票是否超時,未超時以及更新位標志表示更新完成的情況下都轉入寫卡出站,寫卡成功后就表示完成出站。
4.5 預賦值操作
預賦值單程票是為疏散可預見性大客流而提前發售的票卡,在售票之前就對票卡的金額進行賦值。在大客流發生時售票機的售票能力有限,此時預賦值票卡可以按照預先寫入的票價進行人工售票,以此來緩解自動售票機的服務壓力。單程票的預賦值操作是在車票編碼分揀機中完成的,其具體流程如圖3所示,其中驗證票卡是否初始化以及在發售區寫入預賦值相關信息是該流程的關鍵環節。

圖3 預賦值操作流程
Utralight單程票票卡結構和票卡操作流程的合理設計不僅可以滿足軌道交通AFC系統的票務管理需求,而且能夠滿足隨機不穩定乘客的出行需求,并能保證單程票的票卡安全,防止運輸服務費的流失。在研究分析Utralight卡的性能以及單程票基本功能的基礎上,完成了單程票票卡結構功能區的劃分,詳細地規劃了各功能區的字段內容。與此同時,研究了單程票MAC碼的加密算法以確保票卡信息的安全性,最后對單程票的主要操作流程進行了設計,為實現單程票的基本功能奠定基礎。
[1]徐明.軌道交通自動售檢票系統設計[D].上海:復旦大學,2005.
[2]宋亞娜,張寧,何鐵軍.軌道交通儲值票票卡結構與操作流程研究[J].城市軌道交通研究,2014,17(1):65-68.
[3]朱嘉斌,錢曙杰.城市軌道交通售檢票系統系列票卡的兼容[J].都市快軌交通,2015,28(1):28-30.
[4]康崇皓.軌道交通自動售檢票系統票卡發行方案探討[J].鐵道通信信號,2010,46(12):42-44.
[5]張寧,何鐵軍,余彥翔.地鐵Ultralight單程票安全解決方案研究[J].交通與計算機,2007,25(5):34-37.
[6]鄧悅恒.3DES算法原理與設計[J].電腦知識與技術,2011,7(20):4817-4818.
[7]陳通.基于3-DES算法的列控系統車地安全通信研究與實現[D].北京:北京交通大學,2009.
[8]李少芳.DES算法加密過程的探討[J].計算機與現代化,2006(8):102-104.
[9]謝林光.淺談加密技術的概念、加密方法以及應用[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
康崇皓,男,工程師,從事軌道交通機電工程專業研究,kangchonghao@foxmail.com
蘇州市軌道交通專項研究項目(szgdky2013002)
doi:10.3969/j.issn.1672-6073.2016.02.018