原创 IC卡内文件的类型(1)

2008-12-7 22:13 3441 5 5 分类: 软件与OS
根据树状的卡内文件结构,IC卡内的文件分为3种类型:主文件MF、专用文件DF、基本文件EF。

  1、主文件MF

    在每一张卡片文件系统的文件树中都只存在着一个根文件,其他所有文件都是该文件的子文件。

    这个文件也是整个卡片的入口,称为MF(Master File)。每一张卡片中有且只有一个MF。

    MF也是文件系统中最重要的一个文件,对卡片的操作通常从选择MF开始。此外,由于MF的特殊性,通常将MF的标识符定义为3F00,这样,对于不同的卡片,通常都可以通过这一默认的标识符进行MF的选择操作。由于MF不存在父文件,在卡片的应用阶段又必须存在,所以在卡片的初始化阶段就必须首先建立MF。除此之外,MF的其他属性与DF完全类似。

  2、专用文件DF

    DF类似于PC文件系统中的目录文件,一般情况下,也可以将MF看作是特殊的DF。

    如果把MF作为卡片的逻辑映射的话,一个DF往往可以看作是一类数据或者一个应用在卡内的映射。通常,同级的DF之间完全独立,COS能够确保它们之间的数据独立性和安全性;对于不同级的DF之间,包括具有父子关系的DF,在实际的应用阶段可以根据实际应用的定义实现隔绝或者托管的安全逻辑。

    为了标识不同的DF,每一个DF具有一个同级DF下唯一的文件标识符和一个卡内全局唯一的应用标识符(AID)。

    在实现上,文件标识符通常采用一个Word类型的整数来标识,而且其值为0x100的倍数,例如3F00、4F00、5F00等等。1F00和2F00通常保留作为系统特殊文件标识。应用标识符AID通常是一个有限长的二进制串,通常作为该DF对应的应用的简单描述。使用文件标识符和应用标识符都可以对当前文件子层DF文件进行检索,如果使用3F00使用文件标识符检索条件,则COS自动选择MF;如果卡片资源允许的话,COS也可以实现对卡内所有DF或者当前DF以下包含的所有子DF文件进行检索,这时一般采用AID作为检索条件。

    可以将DF分为DDF和ADF两类。

   (1)目录专用文件DDF

    如果在一个DF下还包含子DF的话,也就是,在文件树中如果子结点不全部为叶子结点的话,这样的DF被称为DDF(Directory Definition File)。

    一般的,DDF可以作为一组应用(DF)的集合,也可以作为一个复杂多层次应用的入口。

    在多应用卡中,MF下通常包含了多个DF,这里的MF就是一个典型的DDF。为了维护管理DDF下所有的DF,在每一个DDF下一般可以包含一个系统文件(DIR文件),记录所有子DF的入口。

   (2)应用专用文件ADF

    如果在一个DF下不包含有其它的子DF的话,也就是,在文件树中如果所有的子结点全部都是叶子结点的话,这样的DF称为ADF(Application Definition File)。

    一般的,ADF是一个应用在卡内的逻辑映射,ADF下包含的都是存数据文件,从卡外来看,一个ADF可以看作是一个只包含了文件控制信息和存数据对象的集合。

    ADF下没有DF文件,所以也就不需要DIR文件。
  
    从理论上说,只要卡片空间允许,在卡内可以建立无数多层的文件结构。但是,从卡片的实际应用来看,很少有应用会要求超过3层的DF结构,即MF、DDF、ADF;更一般的来看,如果卡片资源有限,应用目标明确的话,COS可以只支持两层的DF结构,即MF、ADF(MF是卡内唯一的DDF)。

    COS对多层次DF结构的支持可以带来很大的应用灵活性,但是同时也会造成COS开发的复杂度大大提升。DF层次的选择和卡片面向的应用有很大的关系,可以根据不同的应用需求来进行选择。例如,在只支持单一应用的COS中,可以直接将MF作为ADF,不支持DDF;对于支持多应用的COS,通常可以选择两层的DF结构,MF下的每一个ADF对应一个独立的应用;对于卡片资源丰富,可以支持复杂应用模式,建立动态应用体系的卡片来说,可以选择实现3层甚至无限多层DF的模式。


文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条