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