淺談基于CPU卡的流量計(jì)功能要求及設(shè)計(jì)方案
隨著城市燃?xì)庥脩舻目焖侔l(fā)展及應(yīng)用,CPU卡流量計(jì)因功能強(qiáng)大、安全性能強(qiáng)的優(yōu)點(diǎn)在城市燃?xì)鈶?yīng)用中越來越廣泛,它取代了傳統(tǒng)的上門抄表工作,為燃?xì)夤竟?jié)省了大量的人力、物力。根據(jù)CPU卡以及城市燃?xì)獾奶攸c(diǎn),設(shè)計(jì)了用于城市燃?xì)獾腃PU卡文件結(jié)構(gòu)以及密鑰管理體系,實(shí)現(xiàn)了CPU卡流量計(jì)的計(jì)量及預(yù)付費(fèi)功能。
0 引言
IC卡是一種半導(dǎo)體卡,其采用微電子技術(shù)進(jìn)行信息的存儲、處理。自1970 年誕生第一張IC卡以來, IC卡經(jīng)歷了一般存儲卡、加密存儲卡、CPU卡和超級智能卡4 個(gè)時(shí)代。IC卡是多學(xué)科技術(shù)綜合發(fā)展的結(jié)果,它的應(yīng)用已成為一個(gè)國家科技發(fā)展水平的標(biāo)志之一[1]。
IC卡在城市燃?xì)饬髁坑?jì)量上的應(yīng)用越來越廣泛。在CPU卡流量計(jì)之前,大量使用的是邏輯加密卡。由于邏輯加密卡的技術(shù)所限,產(chǎn)品供應(yīng)商的密鑰不能向應(yīng)用方( 燃?xì)夤? 公開,因此應(yīng)用方無法掌握核心安全,系統(tǒng)安全取決于產(chǎn)品供應(yīng)商,并且不同型號的邏輯加密卡互不兼容,導(dǎo)致不同廠商的芯片數(shù)據(jù)存儲方案也不兼容,應(yīng)用方在使用多家卡表時(shí)會帶來多種密鑰和密鑰算法管理上的復(fù)雜化[2 - 3]。
CPU卡又稱智能卡,卡片內(nèi)自帶CPU,程序容量和數(shù)據(jù)容量大,且?guī)Ъ?、解密算法協(xié)處理器,運(yùn)算速度快[4]。采用CPU卡,并且制定一種統(tǒng)一的技術(shù)規(guī)范,燃?xì)夤灸芡耆莆誄PU卡流量計(jì)的技術(shù)核心及密鑰算法,保證燃?xì)鉁?zhǔn)確計(jì)量、實(shí)現(xiàn)先購氣再用氣、防止用戶偷氣。由此可見,CPU卡工業(yè)流量計(jì)成功應(yīng)用的關(guān)鍵是設(shè)計(jì)完善的CPU卡密鑰系統(tǒng)[5]。
1 CPU卡流量計(jì)的功能要求
目前,新型的CPU卡流量計(jì)是集計(jì)量基表、電子表頭和控制閥于一體的流量計(jì)。此前,CPU卡流量計(jì)通常是集成商將流量計(jì)和IC卡控制閥通過電氣連接而成,流量計(jì)在計(jì)量一定的量( 通常為1 m3 ) 時(shí)輸出一個(gè)脈沖給IC卡控制閥, IC卡控制閥進(jìn)行扣減,當(dāng)扣減超過允許透支量時(shí),控制閥關(guān)閉。對于這種方式,電氣連接的可靠性是關(guān)鍵,經(jīng)常出現(xiàn)的情況是扣減不同步,流量計(jì)運(yùn)行的量與IC卡控制閥扣減的量不盡相同,造成計(jì)量糾紛。
所以,從CPU卡流量計(jì)功能上講,一體化流量計(jì)是發(fā)展的趨勢。燃?xì)赓Q(mào)易中,用戶通過CPU卡購氣后充值到流量計(jì)中,燃?xì)夤就ㄟ^CPU卡達(dá)到管理用戶用氣的目的,CPU卡起著聯(lián)系用戶和燃?xì)夤镜年P(guān)鍵作用。另外,當(dāng)上游氣價(jià)浮動(dòng)時(shí),燃?xì)夤灸芗皶r(shí)通過CPU卡或其他方式調(diào)整氣價(jià)。
綜上所述,CPU卡應(yīng)至少保存如下信息: 用戶信息、燃?xì)夤緲?biāo)志、購氣量和購氣次數(shù),以及為安全需要而設(shè)計(jì)的密鑰組、不同功能卡的卡標(biāo)志。為避免異常操作造成卡內(nèi)數(shù)據(jù)丟失,還可以在卡文件中記錄主要操作過程,異常操作后再次插卡能恢復(fù)繼續(xù)進(jìn)行正常的操作。
2 密鑰體系總體設(shè)計(jì)
本密鑰體系設(shè)計(jì)采用三級分散四級密鑰方式,從根密鑰逐級分散,到最終的應(yīng)用卡片密鑰,如圖1 所示。
圖1 密鑰體系圖
2. 1 密鑰的管理
由圖1 可見,在密鑰體系中,各應(yīng)用卡處在體系的最底層,其密鑰是根據(jù)上一級母卡和分散因子進(jìn)行密鑰分散得到的。因此,必須加強(qiáng)對母卡的管理。為防止各級母卡在應(yīng)用中不可預(yù)料的物理性損壞,必須對各級母卡進(jìn)行備份并根據(jù)單位需要設(shè)置管理權(quán)限。
2. 2 密鑰分散
在進(jìn)行密碼運(yùn)算時(shí),可根據(jù)密鑰長度選擇數(shù)據(jù)加密標(biāo)準(zhǔn)( data encryption standard,DES) ,或3DES 算法。一般而言,密鑰長度為8 B 用DES,16 B 用3DES 算法。這兩種算法的邏輯框圖如圖2 所示。
圖2 運(yùn)算邏輯框圖
2. 3 DES 算法
DES 算法為一種對稱密碼體制,它是IBM 公司于1975 年研究成功并公開發(fā)表的,開創(chuàng)了公開全部算法的先例。DES 算法的基本技巧是把每一位明文的影響盡可能迅速地作用到較多位輸出密文中去; 同時(shí)把每一位密鑰的影響盡可能擴(kuò)散到較多位輸出密文中,以隱蔽明文的統(tǒng)計(jì)特性。
DES 主要采用替換和移位的方法,用56 位密鑰( 密鑰為64 位,其中8 位是奇偶校驗(yàn)位,所以實(shí)際上密鑰為56 位) 對64 位二進(jìn)制數(shù)據(jù)塊進(jìn)行加密。每次加密可對64 位的輸入數(shù)據(jù)進(jìn)行16 輪編碼,經(jīng)一系列替換和移位后,輸入的64 位輸入數(shù)據(jù)被轉(zhuǎn)換成完全不同的64 位的輸出數(shù)據(jù)。
3DES 是在DES 的基礎(chǔ)上采用三重DES,即用兩個(gè)56 位的密鑰K1、K2進(jìn)行加密與解密。發(fā)送方用K1加密、K2解密,再使用K1加密; 接收方使用K1解密、K2加密,再使用K1解密,其效果相當(dāng)于密鑰長度加倍。[6]
3 CPU卡密鑰類型及應(yīng)用
所有CPU卡的密鑰類型如下。在實(shí)際應(yīng)用中,可以根據(jù)系統(tǒng)要求適當(dāng)刪減。
DES 加密密鑰,用于進(jìn)行DES 加密運(yùn)算的密鑰,在內(nèi)部認(rèn)證操作時(shí)使用。
DES 解密密鑰,用于進(jìn)行DES 解密運(yùn)算的密鑰,在內(nèi)部認(rèn)證操作時(shí)使用。
DES&MAC 密鑰,用于進(jìn)行報(bào)文鑒別代碼( messageauthentication code,MAC) 運(yùn)算的密鑰,在內(nèi)部認(rèn)證操作時(shí)使用。
內(nèi)部密鑰,用于產(chǎn)生消費(fèi)、取現(xiàn)和圈存交易中使用的交易驗(yàn)證碼( transaction authentication code,TAC) ,涉及圈存、圈提、消費(fèi)/取現(xiàn)、修改透支限額操作命令。
維護(hù)密鑰,用于在以安全報(bào)文方式訪問文件時(shí),產(chǎn)生安全報(bào)文的密鑰。它涉及讀/寫文件/記錄、存款、扣款、卡片鎖定、應(yīng)用鎖定和應(yīng)用解鎖操作命令。