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