一种智能卡安全文件系统的生成方法_3

文档序号:8259441阅读:来源:国知局
地址,然后文件链尾指针指向创建文件控制项的首地址;文件数据首地址等于目录剩余空间首地址,同时将目录控制项中的目录剩余空间首地址加上文件存储空间,形成创建新的下一个文件时的目录数据存储空间首地址,即DRSHA=DRSHA+FSS,也是判断是否满足下一个文件数据存储空间的参数之一。将更新后的目录控制项和新组建的文件控制项写回到原来对应控制项存储区,目录下的一个文件创建完成。
[0029]如图4所示,目录控制项链表构建了智能卡操作系统中根目录(MF)下各级目录之间的隶属关系,根目录没有同级目录只有下级目录,根目录下的任何一个目录都可有同级目录和下级目录,某一目录若有同级目录,则该目录的同级目录指针指向同级目录控制项的首地址,同级目录指针构成的链表即为该目录的全部同级目录。某一目录若有下级目录,则该目录的下级目录链首指针和链尾指针分别指向本目录下第一个和最后一个目录控制项的首地址,下级目录链首指针、链尾指针和下级目录各控制项中的同级目录指针共同构成的链表即为该目录的全部下级目录。且目录控制项中的目录数据首地址和目录申请空间规定了目录下所有文件数据在智能卡数据存储中的起始地址和存储空间,限制了整个目录下所有文件数据存储空间的大小,也构成了目录与目录之间、目录与不同目录文件之间数据访问控制的“防火墙”。而各目录下的基本工作文件则如图3所示构成相应文件控制项链表,若目录下无任何基本工作文件和子目录,则该目录为空目录,此种情况一般只存在于文件系统初始化创建期间。
[0030]在当前目录下创建第一个子目录时,首先判断目录下没有同目录标识符的目录存在并查找空目录控制项,将下级目录链首指针和下级目录链尾指针都指向该目录控制项,然后将当前目录控制项和新建目录控制项中的其它参数依据创建目录规则填写相应控制参数,最后将当前目录控制项和新建目录控制相关参数覆盖原有控制参数即可。则该目录控制项即为当前目录下所创建的子目录,并且当前目录所创建的其它目录均为当前目录的子目录,而所创建的各子目录之间均互为同级目录,因此创建第二个当前目录的下级目录时,将当前目录的下级目录链尾指针指向的目录控制项的同级目录指针和当前目录的下级目录链尾指针都指向新创建的空目录控制项首地址,其它工作流程与创建第一个目录工作流程相同。
[0031]本发明包括如下步骤:
步骤I,智能卡接收到预初始化命令,对智能卡数据存储器区域进行初始化检验,并根据命令中的参数决定创建目录控制项和文件控制项的数量;
步骤2,创建相应数量的空的目录控制项和空的文件控制项,构建起各自独立的一维顺序空目录控制项链表和一维顺序空文件控制项链表;
步骤3,在空目录控制项链表和空文件控制项链表的基础上,根据具体应用要求创建目录和文件,构建目录与目录之间的隶属关系,以及文件从属于目录的关系,构建具体应用的目录控制项链表和文件控制项链表;
步骤4,进行相应的目录与文件的选择与删除操作。
[0032](I)、目录控制项和文件控制项的建立方法
创建如图1、图2所示的目录控制项和文件控制项时,智能卡首先接收相应的卡预初始化命令,对卡中数据存储器区域进行初始化检验,即将整个数据存储区进行擦除和正确性检查。然后根据命令中的参数决定创建目录控制项和文件控制项的数量,创建相应数量的空目录控制项和空文件控制项,构建起一维顺序空目录控制项链表和一维顺序空文件控制项链表。
[0033]一个目录控制项占用64个字节,空目录项中的目录控制项首地址填写该目录控制项在智能卡数据存储器中的首地址,目录控制项中的其余参数设置成全FFH,并计算得到相应的CRC校验码。一个文件控制项占用32字节,空文件控制项中的文件控制项首地址填写该文件控制项在智能卡数据存储器中的首地址,文件控制项中的其余参数设置成全FH1,并计算得到相应的CRC校验码。可依据实际控制项中参数的多少来决定各控制项的长度,并将智能卡中的数据存储区划分成文件管理参数区、目录与文件控制项区和文件数据存储区;最后在文件管理参数区记录第一个目录控制项首地址、第一个文件控制项首地址、文件数据存储区首地址、文件数据存储区的首地址和存储容量、目录控制项的数量和文件控制项的数量等相关控制参数,至此,空的一维顺序目录控制项链表和空的一维文件控制项链表创建完成。
[0034](2)、目录和文件的创建方法
创建目录时必须先创建根目录,然后在根目录下创建相关应用目录和基本工作文件。为了减少删除文件与目录管理开销,规定当前目录的所有基本工作文件创建完成后,才能开始创建当前目录下的子目录,即基本工件文件的存储空间在所有子目录之前。创建目录时通过创建目录命令得到相应控制参数,如目录标识符、目录申请空间、目录名、其它控制参数等,为描述清晰,待创建的目录与文件控制项称为新目录控制项和新文件控制项,新目录和新文件控制项中各参数前加“X”,目录创建过程如下:
第一步,接收创建目录命令,检测相关参数和命令序列是否符合相关规定,若创建命令序列不满足相关规定,则禁止创建目录,否则执行下一步。
[0035]第二步,从当前目录的下级目录链首指针指示的目录控制项开始,到下级目录链尾指针指示的目录控制项为止,查找所要创建的目录标识符或目录名是否存在,若存在则创建目录终止,否则执行下一步。
[0036]第三步,从目录控制项链表首地址开始,依次查找第一个出现的空目录控制项,若目录控制项链表中无空控制项,则禁止创建目录,否则待创建的新目录控制项存在,执行下一步。
[0037]第四步,判断当前目录数据首地址加当前目录申请空间是否大于或等于当前目录剩余空间首地址加新目录申请空间,即DDHA+DSA ^ DRSHA+XDSA,若判断结果为假,则说明当前目录剩余空间小于创建目录的申请空间,禁止创建目录,否则执行下一步。
[0038]第五步,新目录中的目录数据首地址等于当前目录控制项中目录剩余空间首地址,即XDDHA = DRSHA,修改当前目录的剩余地址空间,即DRSHA = DRSHA+XDAS。
[0039]第六步,判断当前目录下级目录链表指针是否为空,若为空则创建的子目录为该目录下的第一个子目录,当前下级目录链首指针和尾指针均指向新目录控制项首地址,即ndlhp=xdcfa、ndltp=xdcfa ;若不为空,则下级目录链尾指针指向的目录控制项中的同级目录指针指向新目录控制项首地址,然后下级目录链尾指针指向新目录控制项首地址,即NDLTP — PDP=XDCFA, NDLTP=XDCFA。
[0040]第七步,新目录控制项依据创建命令写入其他相关参数,并使新建目录控制项与数据存储空间绑定在一起。
[0041]第八步,修改过目录控制项参数的各控制项重新计算CRC码,并覆盖原有对应控制项,目录创建正常结束。
[0042]文件必须创建在某一存在的目录下,创建文件时通过创建文件命令得到相应控制参数,如文件标识符、文件申请空间、读权限、写权限、其它控制参数等,其文件创建过程如下:
第一步,接收创建文件命令,检测相关参数和命令序列是否符合相关规定,若创建命令序列不满足相关规定,则禁止创建文件,否则执行下一步。
[0043]第二步,从当前目录的文件链首指针指示的文件控制项开始,到文件链尾指针指示的文件控制项为止,查找所要创建的文件标识符是否存在,若存在则创建文件终止,否则执行下一步。
[0044]第三步,从文件控制项链表首地址开始,依次查找第一个出现的空文件控制项,若文件控制项链表中无空控制项,则禁止创建文件,否则,新文件控制项存在,执行下一步。
[0045]第四步,判断本目录控制项中目录数据首地址加上目录申请空间是否大于等于目录剩余空间首地址加上新文件的文件存储空间,即DDHA+DAS ^ DRSHA+XFSS,若前述判断为假,则当前目录剩余地址空间小于新创建文件的文件存储空间,禁止创建文件,否则执行下一步。
[0046]第五步,新文件控制项中的文件数据首地址等于目录控制项中的目录剩余空间首地址,即XFDFA=DRSHA,修改当前目录的目录剩余地址空间,即DRSHA = DRSHA +XFSS。
[0047]第六步,判断当前目录文件链尾指针是否为空,若为空则创建的文件为该目录下的第一个文件,当前目录文件链首指针和链尾指针均指向新文件控制项首地址,即Flhp=XFCFA、Fltp=XFCFA ;若不为空,则文件链尾指针指示的文件控制项中的文件链指针指向新文件控制项首地址,然后文件链尾指针也指向新文件控制项首地址,即FLTP — FLp=XFCFA、FLTP=XFCFA。
[0048]第七步,新文件控制项依据创建命令写入相关参数,并使新建文件控制项与数据存储器空间绑定在一起。
[0049]第八步,当前目录控制项和修改参数的各文件控制项重新计算CRC码,并覆盖原有对应控制项,文件创建正常结束。
[0050](3)、目录与文件的访问与删除方法
根目录选择采用默认方式,第一个目录控制项中存放根目录的相关信息,且为文件系统的根。除根目录外,任何一个目录一定是另一个目录的子目录或同级目录,任何一个文件一定是某一目录下的文件,因此,根据目录与文件的相互隶属关系,采用目录标识符或者目录名,从当前目录控制项的NDLHP指针指向的目录控制项开始,到NDLTP指针指向的目录控制
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1