论文部分内容阅读
随着信息技术的发展,信息安全的重要性不断提升,智能卡作为一种信息的安全载体,其应用越来越广泛。传统智能卡受早期内存限制,维持了单应用的特性,但随着软硬件技术发展和应用领域扩展,一卡多应用已经逐步成为未来智能卡的发展方向。Java智能卡技术继承Java技术平台无关性的特点,为多应用的实现奠定良好的基础,目前,Java智能卡已经成为多应用智能卡的主要发展方向。 本研究基于成熟的传统智能卡技术进行研究,通过通用CPU8051加软件实现Java智能卡虚拟机的方式,对Java智能卡的实现进行初步尝试。Java智能卡技术中的核心是Java智能卡虚拟机的设计与实现。本文主要对Java智能卡虚拟机进行研究,设计并实现符合Java智能卡规范的虚拟机。首先学习了解Java智能卡应用的体系结构和开发流程,并对Java虚拟机规范中虚拟机模型、指令集和重要文件结构进行细致的分析。接着根据自顶向下的设计方法,对Java智能卡虚拟机的总体结构进行划分,分为包装载器、运行数据区和指令执行引擎。详细研究每个功能模块的设计和实现方法,主要包括应用的下载、注册、解析,运行时数据的存储结构和访问方式,以及指令的解释执行。最后进行基于FPGA的测试,在指令级进行全面深入的白盒测试,在系统级用标准测试用例进行黑盒测试,充分验证虚拟机的功能,并进行性能测试和简要评估。智能卡是资源紧缺的平台,因此着重研究并设计实现对存储空间和执行速度的优化。提出预解析方案,通过预解析器减少智能卡执行过程中动态链接层数,加快Java智能卡应用文件的解析速度。利用堆空间的连续存储结构和基于偏移量的访问方式,在保证堆数据访问速度的同时节省存储空间。通过链表的存储结构为Java栈动态分配内存,从而实现Java栈与卡中其他模块的内存空间共享。增加自定义指令,通过指令分析和频率统计,将部分频繁出现的组合指令简化为单独的指令,提高指令执行的整体效率。本文的设计和实现基于成熟的智能卡软硬件设计平台进行,测试基于FPGA完成,验证Java智能卡虚拟机实现方法的可行性,为虚拟机的软硬件综合实现提供参考,对多应用智能卡的实现有一定实际意义。