多應(yīng)用智能卡的空間和時間優(yōu)化
文章出處:http://m.compasssalessolutions.com 作者:唐業(yè) 張申生 人氣: 發(fā)表時間:2011年09月30日
0 前 言
隨著智能卡在金融、商業(yè)、交通中應(yīng)用的推廣,需要在智能卡上實現(xiàn)和支持的應(yīng)用越來越多。多應(yīng)用智能卡與單應(yīng)用智能卡相比,更便于用戶攜帶、使用和管理智能卡。但是多應(yīng)用集成要求更大的數(shù)據(jù)存儲空間和更強的數(shù)據(jù)處理能力。然而,智能卡作為一種移動安全設(shè)備,它的存儲空間往往都是有限的,其自帶的數(shù)據(jù)處理能力也是有限的。目前主流的智能卡的容量是32KB、64KB,特殊的大容量智能卡也不過幾兆容量,時鐘頻率也僅為幾兆赫茲到幾十兆赫茲. 特別在使用智能卡同時支持多個復(fù)雜的應(yīng)用,應(yīng)用又具有復(fù)雜的邏輯時,對空間和時間響應(yīng)的要求更高. 如何優(yōu)化智能卡,使其空間得到充分地利用,響應(yīng)更快,是利用智能卡實現(xiàn)多應(yīng)用支持的關(guān)鍵。
目前智能卡空間和時間優(yōu)化的研究主要集中在硬件優(yōu)化、利用附加的裝置和算法優(yōu)化三個方面。如Adi Shamir提出了一種新的公開密鑰方案減少原方案對RAM的訪問,并且不使用專用的協(xié)處理器,安全性不變,但它主要針對RAM的使用[ 1 ] 。Pil Joong Lee等人提出了終端中安全設(shè)備“安全模塊”,以支持Schnorr類型加密系統(tǒng)的預(yù)計算技術(shù),而不需重新設(shè)計加密控制器[ 2 ]。Sung Bum Pan提出一種在智能卡上實現(xiàn)的趨低內(nèi)存指紋匹配算法,在評估典型的指紋匹配算法每一步所執(zhí)行的指令數(shù)和內(nèi)存需求的基礎(chǔ)上,針對內(nèi)存消耗最多的步驟開發(fā)一種內(nèi)存有效算法[ 3 ]。Cap C. H. 等提出了用虛擬內(nèi)存擴展JavaCard數(shù)據(jù)存儲能力的方法[ 4 ]。另外有的研究人員采用壓縮算法,減少空間占用和數(shù)據(jù)傳送時間;采用節(jié)約空間編碼技術(shù)以更有效地利用有限的存儲空間,或采用應(yīng)用分割技術(shù)將部分代碼放到智能卡終端以節(jié)省空間;還有的采用智能卡只存儲持卡人的身份信息,其余數(shù)據(jù)放到外部數(shù)據(jù)庫中,通過持卡人的身份信息調(diào)用相應(yīng)的數(shù)據(jù)。對于從智能卡文件結(jié)構(gòu)優(yōu)化設(shè)計的角度,實現(xiàn)多應(yīng)用智能卡空間和時間的優(yōu)化則未有相關(guān)研究。
本文針對多應(yīng)用智能卡的空間和時間優(yōu)化需求,給出多應(yīng)用智能卡空間利用率公式和時間消耗公式,研究多應(yīng)用智能卡文件結(jié)構(gòu)對智能卡空間和時間優(yōu)化的影響因素,綜合已有的優(yōu)化方法和技術(shù),提出相應(yīng)的智能卡空間和時間優(yōu)化設(shè)計策略,并給出一個應(yīng)用實例。
1 智能卡的文件結(jié)構(gòu)
安全體系是智能卡的核心部分,它涉及到智能卡的鑒別與核實,文件訪問的權(quán)限控制機制。智能卡的文件結(jié)構(gòu)都是圍繞著實現(xiàn)智能卡安全體系,控制智能卡存儲內(nèi)容的安全而建立的。智能卡安全體系以目錄為組織單位進行訪問控制,安全控制的最小粒度是文件,文件結(jié)構(gòu)直接影響智能卡的整體安全性。用戶的應(yīng)用數(shù)據(jù)都存放在智能卡的EEPROM中,以文件形式組織。智能卡文件系統(tǒng)是由專用文件DF (Dedicated File)和基本文件EF ( Elementary File)組成的??▋?nèi)數(shù)據(jù)的邏輯組織結(jié)構(gòu)由專用文件DF的結(jié)構(gòu)化分級組成。在根處的DF稱作主文件(MF) 。MF是必備的,其它DF是任選的[ 5 ]。如圖1 所示?;疚募奈募愋鸵彩嵌喾N多樣的,如二進制文件、定長記錄文件,變長記錄文件、公鑰文件、私鑰文件以及特殊的用于金融的錢包文件等。
通常智能卡中所有文件都是由文件頭和文件主體組成。其在EEPROM中的存放格式如圖2所示。文件頭包括文件類型、文件標(biāo)識符、權(quán)限等,要單獨占有固定大小的存儲空間。智能卡用這些文件空間來管理文件。文件主體則包含用戶的應(yīng)用數(shù)據(jù),其占據(jù)的空間是智能卡的有效數(shù)據(jù)空間。
2 空間優(yōu)化
2. 1 空間優(yōu)化問題
由智能卡的文件組織樹結(jié)構(gòu)和智能卡中文件的存放格式可以看出,智能卡中DF和EF的個數(shù),文件的大小都會對智能卡空間的優(yōu)化產(chǎn)生影響。為了便于對智能卡空間優(yōu)化問題的討論,我們先給出如下智能卡空間的有效利用率計算公式。
其中p代表空間有效利用率, ST代表智能卡所能提供的用戶空間的總和, SH代表文件頭所占據(jù)的空間總和。SH可以通過式(2)獲得。
其中ND代表包括MF在內(nèi)的所有DF目錄文件的個數(shù), NE 代表包括key文件在內(nèi)的所有EF文件的個數(shù), S 代表智能卡文件文件頭所占據(jù)的固定大小的存儲空間。
由式(1)可以看出,要在智能卡有限的空間中支持多應(yīng)用,存儲更多的數(shù)據(jù),應(yīng)盡可能使智能卡空間的有效利用率p值大。對某一類型的智能卡用戶空間總和ST值是一定的,因此要使p值大, SH值必須小。在式(2)中,智能卡文件頭存儲空間S是定值,因此要使SH值小,必須使DF目錄文件的個數(shù)ND和EF文件的個數(shù)NE的總和最小。式(1)中SH也可以由式(3)獲得。
其中N MF代表主文件的個數(shù),它為常值1; N EMF代表主目錄下基本文件的個數(shù); N Di代表某一個智能卡所支持的應(yīng)用所屬DF目錄文件個數(shù)的總和; N Ei代表某一個應(yīng)用所屬的包括key文件在內(nèi)EF文件個數(shù)的總和; n代表智能卡所支持的應(yīng)用的個數(shù); S代表的含義與式(2)一樣。由式(3)可以看出,智能卡多應(yīng)用會使應(yīng)用個數(shù)n值較大,因而使多應(yīng)用智能卡SH值較大。
2. 2 空間優(yōu)化策略
由式(2)和式(3)可以看出, 在多應(yīng)用的條件下, 雖然要提高智能卡空間有效利用率,理論上需要使文件的總數(shù)最小,但是智能卡的多應(yīng)用性質(zhì)要求文件的個數(shù)多。文件的個數(shù)越多,應(yīng)用的層次越清晰,結(jié)構(gòu)化越強,有利于應(yīng)用的分離和獨立,也有利于智能卡應(yīng)用的管理和擴展, 但是智能卡空間有效利用率將減小;相反,等量的應(yīng)用數(shù)據(jù)的條件下,文件的個數(shù)越少,智能卡空間有效利用率越高,但是相應(yīng)的每個文件的空間大,結(jié)構(gòu)性不強,智能卡應(yīng)用實現(xiàn)的數(shù)據(jù)耦合度高,管理難度大,智能卡應(yīng)用的擴展性減小。
根據(jù)上述分析,我們提出如下智能卡文件結(jié)構(gòu)設(shè)計策略進行智能卡空間優(yōu)化:
1)在滿足智能卡多應(yīng)用需求,保證各應(yīng)用獨立和一定的應(yīng)用擴展性條件下,盡量使應(yīng)用數(shù)據(jù)集中,使智能卡中的文件個數(shù)的總和最小。
2)合理預(yù)先分配文件主體空間的大小。由于文件空間大小是在建立文件結(jié)構(gòu)時預(yù)先分配的,在設(shè)計智能卡文件結(jié)構(gòu)時盡可能詳盡地考慮各種情況,對智能卡各種應(yīng)用產(chǎn)生的數(shù)據(jù)進行準(zhǔn)確的估計,包括數(shù)據(jù)的類型、數(shù)據(jù)的大小、數(shù)據(jù)的訪問方式以及將來可能的擴展等各種數(shù)據(jù)特征。
3)選擇合適的基本文件類型和文件主體數(shù)據(jù)組織方式。
文件中存儲數(shù)據(jù)的使用方式?jīng)Q定了采用何種類型的文件格式,二進制文件用于存儲順序數(shù)據(jù)和一次性大量讀寫的數(shù)據(jù)或整體使用的數(shù)據(jù),文件空間的整體利用率比記錄文件高;記錄文件可存儲有選擇性的隨機讀取數(shù)據(jù),文件數(shù)據(jù)的有序性強,但因此要多占用數(shù)據(jù)空間。
3 時間優(yōu)化
3. 1 時間優(yōu)化問題
智能卡的響應(yīng)時間由智能卡微處理器的時鐘頻率、ROM大小、擦寫時間、通信速率、通信協(xié)議以及APDU的最大長度等硬件技術(shù)性能參數(shù),以及智能卡數(shù)據(jù)的存儲方式、存儲的文件類型、數(shù)據(jù)的復(fù)雜性、讀寫和運算數(shù)據(jù)的量等共同決定的。在這里,我們主要從智能卡文件結(jié)構(gòu)設(shè)計的角度在硬件參數(shù)一定的條件下,研究智能卡的時間優(yōu)化問題。智能卡的響應(yīng)時間由智能卡數(shù)據(jù)傳輸時間和數(shù)據(jù)處理時間兩部分組成。智能卡數(shù)據(jù)處理時間由智能卡應(yīng)用操作所需完成指令數(shù)和完成每個指令所需的時間所確定。這里的時間不包括未通過智能卡認(rèn)證或多次認(rèn)證所帶來的時間消耗。智能卡的響應(yīng)時間可以由如式(4)表示。
其中T表示完成智能卡應(yīng)用操作的總時間; D 表示需要傳輸?shù)目倲?shù)據(jù)量; tu表示單位數(shù)據(jù)傳輸所需的時間,也就是通信速率; D·tu即為智能卡數(shù)據(jù)傳輸所需的時間; n表示所需完成的指令的個數(shù); ti 表示完成某個指令i所需的時間。
3. 2 時間優(yōu)化策略
在式(4)中, 因為tu和ti由智能卡硬件技術(shù)性能參數(shù)所確定,在智能卡種類和型號確定的情況下為確定值, 如Trip leDES時間、SHA算法時間、RSA簽名、驗證、加密和解密時間等,所以影響智能卡響應(yīng)時間的主要因素是傳輸數(shù)據(jù)量D 和操作所需的指令數(shù)n。因此時間優(yōu)化主要包括兩個方面, 一方面是減少智能卡數(shù)據(jù)傳輸?shù)臄?shù)據(jù)量,另一方面是減少智能卡微處理器數(shù)據(jù)處理的指令數(shù)。根據(jù)上述分析,我們給出如下時間優(yōu)化策略:
1) 將需要經(jīng)常使用的數(shù)據(jù)結(jié)果保存在智能卡中,而不是每次使用時再計算。
2) 在不影響智能卡中保存的信息安全性的條件下,對應(yīng)用進行分割,盡量將部分復(fù)雜計算放在智能卡外的計算平臺上完成,充分利用其它計算平臺的計算能力。
3) 對于機密性、完整性要求高和有發(fā)送方認(rèn)證要求的高安全性數(shù)據(jù)才采用安全報文傳送,以節(jié)約大量用于加密、校驗以及附加數(shù)據(jù)傳輸?shù)臅r間,提高響應(yīng)速度,同時減少實現(xiàn)的難度和出錯的可能性。
4) 與空間優(yōu)化策略3)一樣,選擇合適的文件類型和文件主體數(shù)據(jù)組織方式。二進制文件以線性表的方式組織文件主體數(shù)據(jù),通過使用地址偏移量訪問。這種文件組織方式可以一次操作讀寫大量的數(shù)據(jù),減少讀寫操作數(shù),也就是減少指令數(shù),但是存儲數(shù)據(jù)的結(jié)構(gòu)性不強。記錄文件以鏈表的方式組織文件主體數(shù)據(jù),用于組織具有相同屬性的數(shù)據(jù),結(jié)構(gòu)化強,但同時訪問多條記錄時只能逐條記錄訪問,需要較多的指令操作。
5) 對于記錄文件中記錄的刪除,采用Tombstone技術(shù),在刪除時只對被刪除的記錄予以標(biāo)記,并不真正刪除,在添加新記錄時,用新記錄覆蓋刪除記錄。減少數(shù)據(jù)移動操作。
6) 采用數(shù)據(jù)壓縮技術(shù),對于不需要智能卡進行數(shù)據(jù)運算的數(shù)據(jù),在將數(shù)據(jù)傳送進智能卡以前先將數(shù)據(jù)壓縮再傳送,節(jié)約數(shù)據(jù)傳送時間。
4 應(yīng)用實例
我們在WatchData公司的TimeCOS/PK for32KB系列智能卡上實現(xiàn)了一個安全一卡通系統(tǒng),集成管理用戶的各種口令和密鑰。該系統(tǒng)主要包括四個應(yīng)用:發(fā)卡方應(yīng)用、集成口令應(yīng)用、集成密鑰應(yīng)用和擴展應(yīng)用。圖3 是該系統(tǒng)的文件組織結(jié)構(gòu)樹圖。
發(fā)卡方應(yīng)用負責(zé)管理智能卡,存儲包括卡持有人的個人信息等內(nèi)容。集成口令應(yīng)用負責(zé)管理操作系統(tǒng)口令和各種應(yīng)用口令。我們對W indows 2000和Windows XP操作系統(tǒng)的登錄接口進行了開發(fā),將基于口令的登錄系統(tǒng)改為基于智能卡的登錄系統(tǒng),通過一個集中控制平臺將Active Directory與智能卡集成,將用戶賬號與智能卡綁定。集成密鑰應(yīng)用管理PKI公私鑰和其它密鑰,如RSA私鑰和MSWord、EXCEL、ACCESS、Adobe Acrobat的文檔加密密鑰。若用戶使用MSWord、EXCEL、ACCESS、Ado2be Acrobat的文檔加密功能,只需輸入智能卡的口令,就能使用它們的文檔加解密功能,無需記憶每個文檔的加密密鑰。這樣就將用戶的操作系統(tǒng)身份認(rèn)證和文檔加密的安全功能集成在一起了。用戶只需使用一個口令,就可以使用所有相關(guān)的安全功能,無需關(guān)心具體的口令和密鑰內(nèi)容。擴展應(yīng)用主要為系統(tǒng)提供擴展性。
在這個系統(tǒng)的智能卡文件結(jié)構(gòu)設(shè)計和軟件設(shè)計時我們綜合使用并驗證了上述的多應(yīng)用智能卡空間和時間優(yōu)化的策略。根據(jù)優(yōu)化策略,主控密鑰文件和控制密鑰文件采用變長記錄格式文件。由于每一個口令都具有相同的數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)化強,因此操作系統(tǒng)口令文件和各種應(yīng)用系統(tǒng)口令文件采用定長的記錄文件。同樣,密鑰集合文件也采用定長的記錄文件。持卡人個人信息文件、公鑰文件、私鑰文件等存儲順序的數(shù)據(jù),均采用透明的二進制格式文件。這樣使智能卡的文件結(jié)構(gòu)滿足多應(yīng)用的需求,同時實現(xiàn)智能卡空間和時間的優(yōu)化。
5 結(jié) 語
本文在分析智能卡特殊文件結(jié)構(gòu)的基礎(chǔ)上,給出了全面描述智能卡空間利用率和時間響應(yīng)的計算公式,根據(jù)計算公式分析并分別提出了多應(yīng)用智能卡空間和時間優(yōu)化策略,最后在安全一卡通中給出了一個應(yīng)用優(yōu)化策略的實例,驗證優(yōu)化策略,取得了預(yù)期的效果。
研究和實驗過程中,我們同時發(fā)現(xiàn)智能卡空間和時間優(yōu)化不是絕對的和獨立的,兩者存在制約關(guān)系,相互影響,兼顧空間和時間的優(yōu)化是比較困難的,必須根據(jù)智能卡具體多應(yīng)用環(huán)境進行權(quán)衡以達到智能卡應(yīng)用的整體最優(yōu)。
(文/上海交通大學(xué)計算機系CIT實驗室 唐業(yè) 張申生)