<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

                  工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

                  動(dòng)態(tài)多應用智能卡文件系統的研究與設計

                  文章出處:http://psychicreadingswithdeb.com 作者:中國一卡通網(wǎng) 收編&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年10月08日

                  [文章內容簡(jiǎn)介]:本文根據ISO7816國際標準,設計了智能卡文件類(lèi)型及組織結構、文件訪(fǎng)問(wèn)及管理,同時(shí)詳細設計了文件系統中文件分配表和文件管理指令,使其可以滿(mǎn)足動(dòng)態(tài)存儲應用的需求。

                      引言

                      智能卡或稱(chēng) IC 卡,英文名稱(chēng)為SMART Card 或Integrated CircuitCard。它是由一個(gè)集成電路芯片嵌 于塑料基片中封裝而成??ㄖ械募呻娐钒ㄖ醒胩幚砥?CPU) ,閃存(EEPROM)、隨機存儲器 (RAM)、只讀存儲器(ROM) 等[1]。動(dòng)態(tài)多應用智能卡允許一張卡片上可以同時(shí)容納多個(gè)應用,并且在 不同的場(chǎng)合使用不同的應用,同時(shí)應用本身還可以根據需要隨時(shí)下載到卡中或從卡中刪除。這給供卡 方、發(fā)卡方和持卡方都帶來(lái)了好處。動(dòng)態(tài)多應用智能卡將是智能卡未來(lái)發(fā)展的總趨勢。

                      1 智能卡文件系統的設計模型

                      1.1 文件的類(lèi)型及組織結構

                      本系統遵守ISO/IEC 781* 標準所定義文件標準。根據標準,可以支持專(zhuān)用文件(DF)和基本 文件(EF)兩種文件??▋鹊奈募倪壿嫿M織結構由下列專(zhuān)用文件的結構化分級組成,在根處的DF 稱(chēng)為主文件(MF)。該MF 是必備的。其他DF 是任選的。定義兩種類(lèi)型的EF:1)內部EF(KEF)。 存儲那些預期由卡解釋的數據。如密鑰。2)工作EF(WEF)。存儲那些預期不由卡解釋的數據。

                      EF 結構有以下幾種,1)透明結構。指的是二進(jìn)制的或雜亂無(wú)章的結構。換句話(huà)說(shuō),一個(gè)透明文 件根本沒(méi)有內部結構。該結構的文件可以通過(guò)使用偏移值進(jìn)行讀出和寫(xiě)入。READ BINARY 和 UPDATE BINARY 命令可用于這些方面。2)記錄結構。是基于鏈接固定長(cháng)度的記錄文件結構,這種 結構的數據可以自由存儲,存取的最小單位是一個(gè)記錄。該操作系統支持線(xiàn)性定長(cháng)記錄結構,并且記 錄長(cháng)度必須為4 個(gè)字節的偶數倍數,并且小于一頁(yè)大小,這樣就防止一條記錄跨頁(yè)存儲。

                      文件的邏輯組織結構如圖 1 所示。文件系統是一個(gè)樹(shù)型結構,根目錄為MF。MF(主文件)是 特殊的文件,是文件系統的根,在卡片中唯一存在,相當于DOS 的根目錄。EF(基本文件)建在DF 下,存儲應用的各種數據和管理信息。DF(專(zhuān)有文件)一般僅相當于DOS 的子目錄,但主文件MF 的一個(gè)DF 則代表了一個(gè)應用。MF 下和應用的根DF 下都有一KEF,用于存儲密鑰或PIN。MF 下的 DF 中建立的EF 和DF 都只能由該應用使用,其他應用不能訪(fǎng)問(wèn)。

                      智能卡中的目錄文件(MF 和DF)僅由文件頭標組成,EF 文件是由文件頭標和文件體兩部分組 成的。文件頭中包含文件的標識、大小、訪(fǎng)問(wèn)權限和其他基本信息。文件頭的長(cháng)度是一定的。EF 的 文件體就是各種卡片應用所需的數據元。其大小是在文件創(chuàng )建時(shí)就確定的。

                      1.2 文件訪(fǎng)問(wèn)以及文件管理

                      所有EF 文件頭中都含有屬性字段,指明此文件的特殊信息。屬性字段占兩字節,字段中的每一 比特位代表一種屬性。它們在創(chuàng )建時(shí)確定,不允許更改。目前只使用了前三個(gè)比特位,分別是:

                      1)可刪除屬性。此屬性位為1 表示可以被刪除,0 表示不可被刪除。

                      2)可寫(xiě)屬性。此屬性位為1 表示可以被修改,0 則表明此文件為只讀文件。

                      3)可讀屬性。此屬性位為1 表明此文件可以被瀏覽,0 表示不可以被瀏覽。

                      應用要對文件訪(fǎng)問(wèn)需要達到一定的安全狀態(tài)。當該應用的進(jìn)程現有狀態(tài)滿(mǎn)足所需要狀態(tài),并且符 合和該文件的屬性要求時(shí),該進(jìn)程才能訪(fǎng)問(wèn)文件。當前進(jìn)程的安全狀態(tài)是由其是否滿(mǎn)足當前目錄文件 下的KEF 中的相應密鑰決定的。在MF 下僅有DF(應用目錄),沒(méi)有EF 文件,其KEF 則只含有創(chuàng ) 建密鑰,讀密鑰,刪除密鑰。而一般的KEF 文件中含有四個(gè)密鑰,分別是讀密鑰,寫(xiě)密鑰, 創(chuàng )建密 鑰,刪除密鑰。

                      為了方便文件管理,有一些典型變量要保存在 RAM 中,把這些變量封裝成一個(gè)結構體CMB, 放在進(jìn)程的PCB 中。一個(gè)CMB 塊包含如下變量:1)mfhead。此變量總指向最高層MF 文件頭地址。 2)mfsecurity。此變量表明MF 達到的安全狀態(tài)。其初始值在進(jìn)程建立時(shí)賦值。3)dfsecurity。此變量 表明現行選擇的DF 達到的安全狀態(tài)。其初值在進(jìn)程建立時(shí)賦值。4)currentdf、currentwef。這兩個(gè) 變量分別為當前DF、當前WEF 文件頭地址。在進(jìn)程時(shí)它們的值為NULL,在進(jìn)程運行過(guò)程中由 SELECT 命令顯式賦值。5)currentrecord_adr。此變量在當前WEF 為記錄結構時(shí)使用,它指向當前使 用記錄號, 如為透明文件,無(wú)效地址。在進(jìn)程建立或者重新選擇WEF 時(shí),其值被賦為0。由記錄結構 WEF 讀、寫(xiě)命令更改。6)currentef_kef。此變量為當前DF 下KEF 文件頭地址。當創(chuàng )建進(jìn)程時(shí),就 會(huì )創(chuàng )建一個(gè)CMB 塊,其 currentdf 被賦為當時(shí)正在訪(fǎng)問(wèn)的DF,安全狀態(tài)被賦為0。如果currentdf 為 0 時(shí),表示當前的工作目錄為MF。

                      1.3 EEPROM 的劃分

                      該智能卡的EEPROM 大小為256K,其中分為應用數據區(32K),應用代碼去(160K),系統區 (16K)以及交換區(48K)。

                      應用數據區存放著(zhù)應用的配置數據,并且都是以文件的形式存儲的。應用數據區的 EEPROM 是 以頁(yè)的形式動(dòng)態(tài)分配給各個(gè)應用,每頁(yè)大小為32 字節。每個(gè)文件的頁(yè)地址信息由文件分配表詳細記 錄。應用代碼區存放著(zhù)應用的運行代碼。應用代碼區分為40 塊,每塊大小為4K。塊和應用是一一對 應的關(guān)系,即每塊對映一個(gè)應用。系統區:存放操作系統的信息以及用于管理應用及文件的一些系統 表:應用使用表,文件分配表,文件打開(kāi)表,數據區使用表。文件打開(kāi)表是用來(lái)防止讀寫(xiě)沖突的,當 某文件正在被改寫(xiě)時(shí),需要給該文件上鎖,等對該文件操作完成后再對該文件解鎖。

                      數據區使用表記錄了應用數據文件在數據區的存儲情況,當一個(gè)應用要訪(fǎng)問(wèn)某一個(gè)數據文件時(shí),需要查看該表,檢查 該文件是否屬于該應用,防止應用篡改其他應用的數據文件。操作系統的信息用超級塊記錄。交換區 就是當內存不足時(shí),使用交換區來(lái)擴充內存。

                      2 文件系統

                      2.1 文件分配表

                      該操作系統中,文件系統僅設計到應用數據區,和應用系統區以及應用代碼去無(wú)關(guān),所以文件系 統占32K 的EEPROM 空間。數據區是以頁(yè)的形式分配給文件的,每頁(yè)大小是32 字節,共設有1024 頁(yè)。存儲在系統區的文件分配表占用1K 空間。分配表如圖2 所示:該表一共有1024 頁(yè)(用十六進(jìn)制 表示),第1 頁(yè)代表數據區的前32 個(gè)字節,以后依次類(lèi)推。當表項為FFFF,表示文件結束。當記錄 為FFFE 時(shí),該頁(yè)可用。每頁(yè)的表項記錄該文件下一頁(yè)的頁(yè)碼。如圖所示。該文件占用的頁(yè)碼分別是 1,0xC,0xD,0x10,0x14。

                      2.2 文件管理的指令

                      1)SELECT FILE(選擇文件):建立文件成功后,才能進(jìn)行文件選擇,面向對象文件管理系統要 求在文件被選中之后才可以進(jìn)行存取處理。文件選擇就是通知操作系統即將對哪個(gè)文件進(jìn)行訪(fǎng)問(wèn)。新 文件的成功選擇將導致前面的選擇無(wú)效。這就意味著(zhù)在任何時(shí)候被選中的文件只有一個(gè)。該文件系統 的支持根據文件的FID 進(jìn)行文件的選擇。

                      2)CREATE FILE(創(chuàng )建文件):該命令允許在智能卡中建立EF、KEF、DF。在執行該命令之前, 必須先達到特定的安全狀態(tài)。在創(chuàng )建時(shí),判斷創(chuàng )建地址是否有效,即CMB 塊的相應地址。同時(shí)創(chuàng )建 時(shí)會(huì )影響目錄樹(shù)的結構,可能需要修改其父親節點(diǎn)或者其兄弟節點(diǎn),因此要檢測所影響的結點(diǎn)是否可 以訪(fǎng)問(wèn),如果需要修改的節點(diǎn)不可被訪(fǎng)問(wèn),該命令則不能執行。對于EF 和KEF,他們都擁有文件體, 則根據其大小具體分配。在申請頁(yè)面時(shí),一次把所需要的頁(yè)數全部分配給該文件,并且在文件分配表 里建立好映像。然后文件系統再根據文件分配表,把文件體寫(xiě)入EEPROM 中。

                      3)DELETE FILE(刪除文件):是把指定的智能卡的文件從存儲器中刪除,其釋放的存儲空間由 操作系統收回。文件系統的文件是存儲在應用數據區,因此該命令的操作對象是數據區的文件,并不 涉及其他存儲區域的數據。MF 為文件系統的根目錄,是不可被刪除的。

                      KEF 為DF 中的密鑰文件, 僅刪除KEF 會(huì )對其上層DF 造成極大的安全隱患,因此不提供單純的刪除KEF 操作,把該操作是嵌 入在刪除DF。該命令分為兩類(lèi):刪除DF 和刪除EF。刪除DF 函數僅刪除沒(méi)有子DF 文件的DF 文件, 如果所刪除的DF 具有直接子DF 文件(可以有EF 文件),則DF 不能直接刪除,需要首先刪除子DF文件,然后再使用本函數刪除。該操作會(huì )影響其父親節點(diǎn)或兄弟節點(diǎn)以及子EF 節點(diǎn),所以刪除之前 需要查看文件打開(kāi)表,檢查這些文件是否可以訪(fǎng)問(wèn),如果有不可以訪(fǎng)問(wèn)的節點(diǎn),則退出返回相應的錯 誤信息。

                      當然執行該操作之前,必須達到一定的要求安全狀態(tài)。刪除EF 時(shí),操作對象是CMB 塊中 的當前工作文件EF,因此要刪除某EF 之前需要先選擇該文件。如果當前工作文件地址無(wú)效,則返回 相應的錯誤信息。當然執行該操作之前,必須達到一定的要求安全狀態(tài)并且該EF 具有可刪除屬性。

                      4)VERIFY 命令用來(lái)把傳送給智能卡的秘密對象和所存儲的基準值相比較,根據比較結果,改 變CMB 塊中的安全狀態(tài)。該操作系統的密鑰存儲在密鑰文件KEF 中,位于MF 的KEF 被用來(lái)作為 智能卡中所有應用通用的密鑰,如果是DF 的KEF,則它僅可用于在DF 內的有關(guān)應用,即應用的專(zhuān) 用密鑰。

                      該命令的操作對象默認為CMB塊中指向的當前所使用密鑰文件。一般的密鑰文件含有四個(gè)密鑰, 分別是:
                      (1)瀏覽密鑰:滿(mǎn)足該密鑰后,可以讀該目錄下的所有EF 文件和子DF 頭標。
                      (2)更新密 鑰:滿(mǎn)足該密鑰后,可以在該目錄下的所有EF 文件中執行更新操作。
                      (3)刪除密鑰:滿(mǎn)足該密鑰后, 可以在該目錄下執行刪除操作。
                      (4)創(chuàng )建操作:滿(mǎn)足該密鑰后,可以在該目錄下執行刪除操作。因此, verify 函數就是判斷其滿(mǎn)足相應的密鑰,然后改變CMB 塊中的安全狀態(tài),使其可以執行后需操作。

                      對于每一個(gè)密鑰都有一個(gè)重試計數器。對于肯定的比較結果,它被賦予零,對于否定的比較結果, 它增量1。如果重試計數器達到對大值,則絕對沒(méi)有任何可能再進(jìn)行對密鑰的進(jìn)一步比較。為了保證 安全,先對計數器字段加一并寫(xiě)入到記錄中。然后比較讀出密鑰和輸入密鑰是否匹配。匹配則將0 寫(xiě) 入到記錄的計數器字段中,并將安全狀態(tài)設置為OK 結果狀態(tài)。否則將安全狀態(tài)設置為NOK 結果狀 態(tài),并返回允許嘗試的剩余次數或記錄被鎖。

                      3 結論

                      本文研究并設計動(dòng)態(tài)多應用智能卡文件系統。利用文件分配表為每個(gè)文件建立映像,利用 CMB 塊進(jìn)行文件管理,設置文件訪(fǎng)問(wèn)機制保證了每個(gè)應用的讀寫(xiě)安全,最后詳細設計文件操作命令,使得 應用可以對文件進(jìn)行建立,刪除等操作。 

                  本文關(guān)鍵詞:智能卡,集成電路,IC卡,芯片
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>