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

文档序号:8259441阅读:534来源:国知局
一种智能卡安全文件系统的生成方法
【技术领域】
[0001]本发明涉及智能卡和智能卡操作系统设计领域,具体涉及一种智能卡安全文件系统的生成方法。
【背景技术】
[0002]目前基于智能卡操作系统中的文件系统,依据IS0/IEC7816-4标准只定义了相关的文件类型和MF根目录的相关规范,目录与文件的组织与结构由设计者依据具体应用功能进行设计,因此,智能卡操作系统中的文件系统没有统一的技术规范。而流行的智能卡文件系统有两种模式,一种是借鉴硬盘文件管理的文件分配表(FAT)模式,将智能卡数据存储器划分成大小相等的若干块,以块为单位管理智能卡的数据存储器,文件与数据存储块关联在一起,这种模式的文件系统管理开销大,数据存储器利用率低,但可扩充性与可操控性好,文件系统的安全性差。另一种模式是采用标识、长度和值域(TLV)嵌套结构的文件组织形式,上层目录嵌套下层目录,同层目录嵌套本层目录下的文件,同一目录下文件采用相互独立的类TLV形式组合在一起,以智能卡CPU的字作为数据存储器的管理粒度,因而这种文件系统模式存储器的利用率高,但由于文件控制参数与文件数据存储空间组合在一起,其可扩充性和可操控性较差,不利于构建同一目录下文件之间的“防火墙”,因而其文件系统的安全性也较差。
[0003]因此,如何提高智能卡数据存储器的利用率,增强文件系统的安全性、健壮性、可扩充性和可操控性,构建同层目录之间、同层文件之间以及不同层目录、文件之间的“防火墙”功能,是当前需要解决的问题。

【发明内容】

[0004]本发明的目的在于设计一种智能卡安全文件系统的生成方法,提高数据存储器的利用率,在改善文件系统的健壮性、可扩展性和可操控性的同时,构建同层目录之间、同层文件之间,以及不同层目录与文件之间的“防火墙”功能,适应智能卡各种大小数据存储器空间需求,满足不同具体应用要求的智能卡操作系统中的文件系统功能。
[0005]本发明采用以下技术方案:
一种智能卡安全文件系统的生成方法,包括如下步骤:
步骤I,智能卡接收到预初始化命令,对智能卡数据存储器区域进行初始化检验,并根据命令中的参数决定创建目录控制项和文件控制项的数量;
步骤2,创建相应数量的空的目录控制项和空的文件控制项,构建起各自独立的空目录控制项链表和空文件控制项链表;所述空目录控制项链表和空文件控制项链表为一维顺序的空目录控制项链表和空文件控制项链表,空目录控制项链表和空文件控制项链表各自独立;
步骤3,在空目录控制项链表和空文件控制项链表的基础上,创建目录和文件,构建目录与目录之间的隶属关系,以及文件从属于目录的关系,构建具体应用的目录控制项链表和文件控制项链表;根据具体应用要求创建目录和文件,本发明可适用不同的智能卡安全文件系统;
步骤4,进行相应的目录与文件的选择与删除操作。
[0006]作为优选,所述目录控制项包括目录控制项首地址(DCFA)、目录标识符(DirlD)、同级目录指针(PDP)、下级目录链首指针(NDLHP)、下级目录链尾指针(NDLTP)、目录剩余空间首地址(DRSHA)、文件链首指针(FLHP)、文件链尾指针(FLTP)、目录数据首地址(DDHA)、目录申请空间(DAS )、目录其他控制参数(DOCP )和CRC校验码。
[0007]作为优选,所述目录标识符由2字节组成,同级目录中目录标识符和目录其他控制参数中的目录名是唯一的;同级目录指针指向同级目录的目录控制项首地址构成同级目录控制项的前后关系;下级目录链首指针和链尾指针分别指向本目录第一个和最后一个子目录控制项的首地址,同级目录指针、下级目录链首指针和链尾指针共同构成本目录的子目录控制项链表;文件链首指针和链尾指针分别指向本目录下第一个和最后一个文件的文件控制项首地址,文件链首指针、文件链尾指针与文件控制项中的文件链指针共同构成本目录下文件控制项链表;目录申请空间为本目录下所有文件数据存储空间之和,目录剩余空间首地址为已分配给创建文件和目录后还余下的文件数据存储空间首地址,目录创建时目录剩余空间首地址等于目录数据首地址。
[0008]上述各指针和地址根据存储器寻址方式和智能卡性能确定其长度;其他控制参数包括目录名长度、目录名、目录创建权限、目录删除权限、目录访问权限和目录创建时间等,根据目录的具体应用需要确定其参数数量和各参数的长度。
[0009]作为优选,所述文件控制项包括文件控制项首地址(FCFA)、文件标识符(FID)、文件链指针(FLP)、文件类型(FT)、文件数据首地址(FDFA)、文件存储空间(FSS)、读操作权限(RP)、写操作权限(WP)、文件其他控制参数(FOCP)和CRC码;所述文件标识符为文件名,由2字节组成,它是查找文件的唯一参数,同一目录下的文件标识符不能相同;文件链指针指向本目录下的下一个文件控制项首地址,构成本目录下所有文件控制项的前后关系;文件数据首地址指向本文件数据在数据存储空间的第一个字节地址,也是文件访问智能卡数据存储器的上界;文件存储空间定义了文件需要存储的数据量,与文件数据首地址结合规定了文件访问智能卡数据存储器的下界;文件类型规定文件存储数据的结构。
[0010]读操作权限和写操作权限规定对文件数据进行读写操作时,智能卡操作系统所处的安全状态。其他控制参数根据文件功能与类型不同进行定义,如记录数、记录号、记录指针、删除权限、终止权限、记录长度、创建时间、最后修改时间等。
[0011]作为优选,所述目录的创建方法为:
第一步,接收创建目录命令,检测相关参数和命令序列是否符合规定,若创建命令不符合规定,则禁止创建目录,否则执行下一步;
第二步,从当前目录的下级目录链首指针指示的目录控制项开始,到下级目录链尾指针指示的目录控制项为止,查找所要创建的目录标识符或目录名是否存在,若存在则创建目录终止,否则执行下一步;
第三步,从目录控制项链表首地址开始,依次查找第一个出现的空目录控制项,若目录控制项链表中无空控制项,则禁止创建目录,否则待创建的新目录控制项存在,执行下一
I K
少; 第四步,判断当前目录数据首地址加当前目录申请空间是否大于或等于当前目录剩余空间首地址加新目录申请空间,即DDHA+DSA ^ DRSHA+XDSA,若判断结果为假,则说明当前目录剩余空间小于创建目录的申请空间,禁止创建目录,否则执行下一步;
第五步,新目录中的目录数据首地址等于当前目录控制项中目录剩余空间首地址,即XDDHA = DRSHA,修改当前目录的剩余地址空间,即DRSHA = DRSHA+XDAS ;
第六步,判断当前目录下级目录链表指针是否为空,若为空则创建的子目录为该目录下的第一个子目录,当前下级目录链首指针和尾指针均指向新目录控制项首地址,即ndlhp=xdcfa、ndltp=xdcfa ;若不为空,则下级目录链尾指针指向的目录控制项中的同级目录指针指向新目录控制项首地址,然后下级目录链尾指针指向新目录控制项首地址,即NDLTP — PDP=XDCFA, NDLTP=XDCFA ;
第七步,新目录控制项依据创建命令写入其他相关参数,并使新建目录控制项与数据存储空间绑定在一起;
第八步,修改过目录控制项参数的各控制项重新计算CRC码,并覆盖原有对应控制项,目录创建结束。
[0012]作为优选,所述文件控制项的创建方法具体为:
第一步,接收创建文件命令,检测相关参数和命令序列是否符合相关规定,若创建命令不符合相关规定,则禁止创建文件,否则执行下一步;
第二步,从当前目录的文件链首指针指示的文件控制项开始,到文件链尾指针指示的文件控制项为止,查找所要创建的文件标识符是否存在,若存在则创建文件终止,否则执行下一步;
第三步,从文件控制项链表首地址开始,依次查找第一个出现的空文件控制项,若文件控制项链表中无空文件控制项,则禁止创建文件,否则,新文件控制项存在,执行下一步;第四步,判断本目录控制项中目录数据首地址加上目录申请空间是否大于等于目录剩余空间首地址加上新文件的文件存储空间,即DDHA+DAS ^ DRSHA+XFSS,若前述判断为假,则当前目录剩余地址空间小于新创建文件的文件存储空间,禁止创建文件,否则执行下一
I K
少;
第五步,新文件控制项中的文件数据首地址等于目录控制项中的目录剩余空间首地址,即XFDFA=DRSHA,修改当前目录的目录剩余地址空间,即DRSHA = DRSHA +XFSS ;
第六步,判断当前目录文件链尾指针是否为空,若为空则创建的文件为该目录下的第一个文件,当前目录文件链首指针和链尾指针均指向新文件控制项首地址,即FLHP=XFCFA、fltp=xfcfa;若不为空,则文件链尾指针指示的文件控制项中的文件链指针指向新文件控制项首地址,然后文件链尾指针也指向新文件控制项首地址,即FLTP — FLP=XFCFA,Fltp=XFCFA ;
第七步,新文件控制项依据创建命令写入相关参数,并使新建文件控制项与数据存储器空间绑定在一起;
第八步,当前目录控制项和修改参数的各文件控制项重新计算CRC码,并覆盖原有对应控制项,文件创建正常结束。
[0013]作为
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1