多应用智能卡的空间和时间优化
0 前 言
随着智能卡在金融、商业、交通中应用的推广,需要在智能卡上实现和支持的应用越来越多。多应用智能卡与单应用智能卡相比,更便于用户携带、使用和管理智能卡。但是多应用集成要求更大的数据存储空间和更强的数据处理能力。然而,智能卡作为一种移动安全设备,它的存储空间往往都是有限的,其自带的数据处理能力也是有限的。目前主流的智能卡的容量是32KB、64KB,特殊的大容量智能卡也不过几兆容量,时钟频率也仅为几兆赫兹到几十兆赫兹. 特别在使用智能卡同时支持多个复杂的应用,应用又具有复杂的逻辑时,对空间和时间响应的要求更高. 如何优化智能卡,使其空间得到充分地利用,响应更快,是利用智能卡实现多应用支持的关键。
目前智能卡空间和时间优化的研究主要集中在硬件优化、利用附加的装置和算法优化三个方面。如Adi Shamir提出了一种新的公开密钥方案减少原方案对RAM的访问,并且不使用专用的协处理器,安全性不变,但它主要针对RAM的使用[ 1 ] 。Pil Joong Lee等人提出了终端中安全设备“安全模块”,以支持Schnorr类型加密系统的预计算技术,而不需重新设计加密控制器[ 2 ]。Sung Bum Pan提出一种在智能卡上实现的趋低内存指纹匹配算法,在评估典型的指纹匹配算法每一步所执行的指令数和内存需求的基础上,针对内存消耗最多的步骤开发一种内存有效算法[ 3 ]。Cap C. H. 等提出了用虚拟内存扩展JavaCard数据存储能力的方法[ 4 ]。另外有的研究人员采用压缩算法,减少空间占用和数据传送时间;采用节约空间编码技术以更有效地利用有限的存储空间,或采用应用分割技术将部分代码放到智能卡终端以节省空间;还有的采用智能卡只存储持卡人的身份信息,其余数据放到外部数据库中,通过持卡人的身份信息调用相应的数据。对于从智能卡文件结构优化设计的角度,实现多应用智能卡空间和时间的优化则未有相关研究。
本文针对多应用智能卡的空间和时间优化需求,给出多应用智能卡空间利用率公式和时间消耗公式,研究多应用智能卡文件结构对智能卡空间和时间优化的影响因素,综合已有的优化方法和技术,提出相应的智能卡空间和时间优化设计策略,并给出一个应用实例。
1 智能卡的文件结构
安全体系是智能卡的核心部分,它涉及到智能卡的鉴别与核实,文件访问的权限控制机制。智能卡的文件结构都是围绕着实现智能卡安全体系,控制智能卡存储内容的安全而建立的。智能卡安全体系以目录为组织单位进行访问控制,安全控制的最小粒度是文件,文件结构直接影响智能卡的整体安全性。用户的应用数据都存放在智能卡的EEPROM中,以文件形式组织。智能卡文件系统是由专用文件DF (Dedicated File)和基本文件EF ( Elementary File)组成的。卡内数据的逻辑组织结构由专用文件DF的结构化分级组成。在根处的DF称作主文件(MF) 。MF是必备的,其它DF是任选的[ 5 ]。如图1 所示。基本文件的文件类型也是多种多样的,如二进制文件、定长记录文件,变长记录文件、公钥文件、私钥文件以及特殊的用于金融的钱包文件等。
通常智能卡中所有文件都是由文件头和文件主体组成。其在EEPROM中的存放格式如图2所示。文件头包括文件类型、文件标识符、权限等,要单独占有固定大小的存储空间。智能卡用这些文件空间来管理文件。文件主体则包含用户的应用数据,其占据的空间是智能卡的有效数据空间。
2 空间优化
2. 1 空间优化问题
由智能卡的文件组织树结构和智能卡中文件的存放格式可以看出,智能卡中DF和EF的个数,文件的大小都会对智能卡空间的优化产生影响。为了便于对智能卡空间优化问题的讨论,我们先给出如下智能卡空间的有效利用率计算公式。
其中p代表空间有效利用率, ST代表智能卡所能提供的用户空间的总和, SH代表文件头所占据的空间总和。SH可以通过式(2)获得。
其中ND代表包括MF在内的所有DF目录文件的个数, NE 代表包括key文件在内的所有EF文件的个数, S 代表智能卡文件文件头所占据的固定大小的存储空间。
由式(1)可以看出,要在智能卡有限的空间中支持多应用,存储更多的数据,应尽可能使智能卡空间的有效利用率p值大。对某一类型的智能卡用户空间总和ST值是一定的,因此要使p值大, SH值必须小。在式(2)中,智能卡文件头存储空间S是定值,因此要使SH值小,必须使DF目录文件的个数ND和EF文件的个数NE的总和最小。式(1)中SH也可以由式(3)获得。
其中N MF代表主文件的个数,它为常值1; N EMF代表主目录下基本文件的个数; N Di代表某一个智能卡所支持的应用所属DF目录文件个数的总和; N Ei代表某一个应用所属的包括key文件在内EF文件个数的总和; n代表智能卡所支持的应用的个数; S代表的含义与式(2)一样。由式(3)可以看出,智能卡多应用会使应用个数n值较大,因而使多应用智能卡SH值较大。
2. 2 空间优化策略
由式(2)和式(3)可以看出, 在多应用的条件下, 虽然要提高智能卡空间有效利用率,理论上需要使文件的总数最小,但是智能卡的多应用性质要求文件的个数多。文件的个数越多,应用的层次越清晰,结构化越强,有利于应用的分离和独立,也有利于智能卡应用的管理和扩展, 但是智能卡空间有效利用率将减小;相反,等量的应用数据的条件下,文件的个数越少,智能卡空间有效利用率越高,但是相应的每个文件的空间大,结构性不强,智能卡应用实现的数据耦合度高,管理难度大,智能卡应用的扩展性减小。
根据上述分析,我们提出如下智能卡文件结构设计策略进行智能卡空间优化:
1)在满足智能卡多应用需求,保证各应用独立和一定的应用扩展性条件下,尽量使应用数据集中,使智能卡中的文件个数的总和最小。
2)合理预先分配文件主体空间的大小。由于文件空间大小是在建立文件结构时预先分配的,在设计智能卡文件结构时尽可能详尽地考虑各种情况,对智能卡各种应用产生的数据进行准确的估计,包括数据的类型、数据的大小、数据的访问方式以及将来可能的扩展等各种数据特征。
3)选择合适的基本文件类型和文件主体数据组织方式。
文件中存储数据的使用方式决定了采用何种类型的文件格式,二进制文件用于存储顺序数据和一次性大量读写的数据或整体使用的数据,文件空间的整体利用率比记录文件高;记录文件可存储有选择性的随机读取数据,文件数据的有序性强,但因此要多占用数据空间。
3 时间优化
3. 1 时间优化问题
智能卡的响应时间由智能卡微处理器的时钟频率、ROM大小、擦写时间、通信速率、通信协议以及APDU的最大长度等硬件技术性能参数,以及智能卡数据的存储方式、存储的文件类型、数据的复杂性、读写和运算数据的量等共同决定的。在这里,我们主要从智能卡文件结构设计的角度在硬件参数一定的条件下,研究智能卡的时间优化问题。智能卡的响应时间由智能卡数据传输时间和数据处理时间两部分组成。智能卡数据处理时间由智能卡应用操作所需完成指令数和完成每个指令所需的时间所确定。这里的时间不包括未通过智能卡认证或多次认证所带来的时间消耗。智能卡的响应时间可以由如式(4)表示。
其中T表示完成智能卡应用操作的总时间; D 表示需要传输的总数据量; tu表示单位数据传输所需的时间,也就是通信速率; D·tu即为智能卡数据传输所需的时间; n表示所需完成的指令的个数; ti 表示完成某个指令i所需的时间。
3. 2 时间优化策略
在式(4)中, 因为tu和ti由智能卡硬件技术性能参数所确定,在智能卡种类和型号确定的情况下为确定值, 如Trip leDES时间、SHA算法时间、RSA签名、验证、加密和解密时间等,所以影响智能卡响应时间的主要因素是传输数据量D 和操作所需的指令数n。因此时间优化主要包括两个方面, 一方面是减少智能卡数据传输的数据量,另一方面是减少智能卡微处理器数据处理的指令数。根据上述分析,我们给出如下时间优化策略:
1) 将需要经常使用的数据结果保存在智能卡中,而不是每次使用时再计算。
2) 在不影响智能卡中保存的信息安全性的条件下,对应用进行分割,尽量将部分复杂计算放在智能卡外的计算平台上完成,充分利用其它计算平台的计算能力。
3) 对于机密性、完整性要求高和有发送方认证要求的高安全性数据才采用安全报文传送,以节约大量用于加密、校验以及附加数据传输的时间,提高响应速度,同时减少实现的难度和出错的可能性。
4) 与空间优化策略3)一样,选择合适的文件类型和文件主体数据组织方式。二进制文件以线性表的方式组织文件主体数据,通过使用地址偏移量访问。这种文件组织方式可以一次操作读写大量的数据,减少读写操作数,也就是减少指令数,但是存储数据的结构性不强。记录文件以链表的方式组织文件主体数据,用于组织具有相同属性的数据,结构化强,但同时访问多条记录时只能逐条记录访问,需要较多的指令操作。
5) 对于记录文件中记录的删除,采用Tombstone技术,在删除时只对被删除的记录予以标记,并不真正删除,在添加新记录时,用新记录覆盖删除记录。减少数据移动操作。
6) 采用数据压缩技术,对于不需要智能卡进行数据运算的数据,在将数据传送进智能卡以前先将数据压缩再传送,节约数据传送时间。
4 应用实例
我们在WatchData公司的TimeCOS/PK for32KB系列智能卡上实现了一个安全一卡通系统,集成管理用户的各种口令和密钥。该系统主要包括四个应用:发卡方应用、集成口令应用、集成密钥应用和扩展应用。图3 是该系统的文件组织结构树图。
发卡方应用负责管理智能卡,存储包括卡持有人的个人信息等内容。集成口令应用负责管理操作系统口令和各种应用口令。我们对W indows 2000和Windows XP操作系统的登录接口进行了开发,将基于口令的登录系统改为基于智能卡的登录系统,通过一个集中控制平台将Active Directory与智能卡集成,将用户账号与智能卡绑定。集成密钥应用管理PKI公私钥和其它密钥,如RSA私钥和MSWord、EXCEL、ACCESS、Adobe Acrobat的文档加密密钥。若用户使用MSWord、EXCEL、ACCESS、Ado2be Acrobat的文档加密功能,只需输入智能卡的口令,就能使用它们的文档加解密功能,无需记忆每个文档的加密密钥。这样就将用户的操作系统身份认证和文档加密的安全功能集成在一起了。用户只需使用一个口令,就可以使用所有相关的安全功能,无需关心具体的口令和密钥内容。扩展应用主要为系统提供扩展性。
在这个系统的智能卡文件结构设计和软件设计时我们综合使用并验证了上述的多应用智能卡空间和时间优化的策略。根据优化策略,主控密钥文件和控制密钥文件采用变长记录格式文件。由于每一个口令都具有相同的数据结构,结构化强,因此操作系统口令文件和各种应用系统口令文件采用定长的记录文件。同样,密钥集合文件也采用定长的记录文件。持卡人个人信息文件、公钥文件、私钥文件等存储顺序的数据,均采用透明的二进制格式文件。这样使智能卡的文件结构满足多应用的需求,同时实现智能卡空间和时间的优化。
5 结 语
本文在分析智能卡特殊文件结构的基础上,给出了全面描述智能卡空间利用率和时间响应的计算公式,根据计算公式分析并分别提出了多应用智能卡空间和时间优化策略,最后在安全一卡通中给出了一个应用优化策略的实例,验证优化策略,取得了预期的效果。
研究和实验过程中,我们同时发现智能卡空间和时间优化不是绝对的和独立的,两者存在制约关系,相互影响,兼顾空间和时间的优化是比较困难的,必须根据智能卡具体多应用环境进行权衡以达到智能卡应用的整体最优。
(文/上海交通大学计算机系CIT实验室 唐业 张申生)