Java 卡关键技术的研究及实现
文章编号:1001-9081(2006)03-0742-04
Java卡关键技术的研究及实现
李彦超,吕丽民,胡新建
(浙江工业大学信息工程学院,浙江杭州310014)
(lyc@http://doc.guandang.net)
根据最新Java卡规范,对Java卡的关键技术进行了深入研究和分析,提供了Java卡系统摘 要:
在AT90SC智能卡上的一种具体实施。详细描述了Java卡实施所采用的系统构架和工作流程,深入
并讨论了为提高Java卡虚拟机执行效率所采取的策略。测试分析Java卡虚拟机和API等关键技术,
结果表明,该Java卡系统能够正确高效地解释及执行Java卡应用程序。
关键词:Java卡;智能卡;JCRE;JCVM;applet;API中图分类号:TP368.1 文献标识码:A
StudyandimplementationofJavacardkeytechnology
LIYan-chao,LüLi-min,HUXin-jian
(CollegeofInformationEngineering,ZhejiangUniversityofTechnology,HangzhouZhejiang310014,China)Abstract:AccordingtothelatestspecificationsofJavacard,thekeytechnologyofJavacardwasanalyzedindepth.ArealimplementationofJavacardsysteminAT90SCsmartcardwasprovided.Thesystemarchitectureandworkflowoftheimplementationweredescribed.SuchkeytechnologyasJavacardvirtualmachineandAPIwereanalyzed.ThepolicyofimprovingexecutingefficiencyofJavacardvirtualmachinewasdiscussed.ThetestingresultsshowthattheJavacardsystemcaninterpretandexecutetheJavacardappletscorrectlyandefficiently.
Keywords:Javacard;smartcard;JCRE;JCVM;applet;API
场正开始起步。在台湾和香港已经使用了相关的Java卡产品,如台湾的保健卡和香港的八达通卡等。但是,从总体上看,国内Java卡的研究和发展速度相对比较缓慢。在国内市场上,缺少具有自主知识产权的Java卡系统。
本文根据Sun公司公布的JavaCard2.2.1规范,提供了Java卡系统的一种具体实施方案。文章详细描述了Java卡系统实施所采用的整体方案,深入分析了Java卡虚拟机和API等关键技术。Java卡实施采用了ATMEL公司的AT90SC6464C智能卡,其硬件环境为:16位CPU,64K的FLASH,1K的RAM和64K的EEPROM。
0 引言
[1]
Java卡是一种可以运行Java程序的智能卡。它充分
利用了Java的平台无关性,使得Java技术“一次编写,随处运行”的思想在智能卡上得以实现。1996年,Sun公司公布了Java卡技术规范,目前Java卡规范的最新版本是2.2.1。
传统智能卡应用一般都是在专用开发环境,使用汇编或C语言进行开发。由于不同卡生产商对其智能卡定义了独特的指令集和编程接口,开发人员需要花费大量的时间熟悉底层通信接口协议、内存管理等智能卡硬件细节。此外,由于不同智能卡的开发环境不通用,使得应用在不同生产商的卡上进行移植变得非常复杂。
与传统的智能卡相比,Java卡有许多优点:
第一,平台无关性。符合Java卡规范的应用程序可以在不同制造商发行的Java卡中运行。
第二,支持一卡多用和重用。Java卡允许多个应用程序安全地运行在同一卡上。而且可以在不更换卡片的情况下,根据需要动态添加或删除卡中的应用。
第三,灵活性。Java语言的面向对象特性使得编程极为灵活,可利用通用的Java开发工具进行应用的开发。
第四,安全性。Java卡继承了Java语言的安全特性,包括原子事务、应用防火墙等。由于其独特的优势,Java卡技术已经成为智能卡的主流发展趋势。
国外对Java卡的研究较早,如今Java卡已广泛运用于用户身份识别、交通、通讯及金融等领域。在国内,Java卡的市
1 Java卡系统整体方案
1.1 Java
卡系统构架
收稿日期:2005-10-26 修订日期:2005-12-29
浙江省重大基础软件产品专项(2004C11052);浙江省科学技术厅重点科研工业项目(2005C21030) 基金项目:
作者简介:李彦超(1980-),男,江西南昌人,硕士研究生,主要研究方向:嵌入式系统、信息安全; 吕丽民(1961-),男,浙江缙云人,副教
胡新建(1980-),男,浙江临海人,硕士研究生,主要研究方向:嵌入式系统、信息安全.授,硕士,主要研究方向:计算机智能技术、信息安全;
AppletINSTALLER,JCAPI(JavaCardApplicationProgrammingInterface)及扩展API。
在系统构架图中,位于底层的COS主要负责对智能卡的RAM、EEPROM、串口及中断等硬件资源进行管理。JCRE是Java卡的核心部分,处于中间层,主要用于维护Java卡系统运行时的环境,负责Java卡Applet的执行及卡内Applet的安全。其中,JCNM是JCRE与COS的接口。JCVM则主要完成Java语言字节码的解析及执行任务。Java卡应用编程接口JCAPI,为Java卡应用提供了核心类库。JavaCardAppletINSTALLER负责Java卡应用的下载、安装及卸载等工作。Java卡应用开发商或其他Java卡开发商开发的通用型API,可以作为JCRE的扩展API。位于Java卡系统构架顶部的是Java卡Applet。从图中可以看出,Java卡允许多个应用程序同时存在于同一张智能卡上。当然,卡上的Applet不一定都处于工作状态,只有被选中后才进入工作状态。按照ISO7816规范,智能卡上最多允许四个应用处于工作状态。同时,在某一时刻只可能有一个当前Applet,即只有一个Applet处于运行状态,其他Applet处于等待状态。1.2 Java卡系统工作流程
Java卡系统是一个以处理APDU(ApplicationProtocolDataUnit)指令流为中心的系统。COS的核心处理部分是一个等待/分发APDU指令的无限循环。Java卡接收CAD(CardAcceptanceDevice,也称为读卡器)发出的APDU请求指令,分析并分发给相应模块进行处理,并将APDU响应指令返回给CAD,实现与CAD
的交互。
Context访问当前对象。对象类型则用来区分类对象与数组对象。对于数组对象,可进一步区分为boolean,byte,short和reference数组对象。对象所属类Context与所属类的引用可以定位该对象的类定义。数组可以看成是类http://doc.guandang.netng.Object的对象。临时对象标志用于区分对象是否是临时对象(TransientObject)。所谓临时对象,是指该对象的数据内容(实例域或数组数据),在卡断电后不需要保存,但对象本身需要保存。在Java卡重新上电或应用被取消选定后,临时对
[3]象的数据内容清空成默认值(0,false或null)。因此,JCVM
具体的编译器,一般来说采用这种结构,代码平均定位时间较长。此外,JCVM的解释函数代码长度过长,在运行时,容易产生缺页中断。KVM(KilobyteVirtualMachine,一个手持式设采用的便是这种解释方式。而查表备上使用的Java虚拟机)
解释方式,则首先为每个操作码建立一个相应处理函数,然后定义一个函数指针数组,该数组保存操作码处理函数的地址。函数地址在该数组中的偏移量与函数相应的操作码值对应。在解释执行阶段,以字节码的操作码值作为偏移量,便可直接定位到该字节码的相应处理函数,如图4所示。采用查表解释执行方式,代码定位时间均衡且较短,但增加了一定的程序空间消耗。经过对测试数据进行仔细比较,发现查表解释方临时对象的数据内容可以存放在RAM里,而不需要存放在EEPROM中。由于智能卡写EEPROM操作的耗时远远大于写RAM操作,所以,在编写Java卡应用程序时,应尽量将那些不需要永久保存数据内容的对象创建为临时对象。2.4 异常处理及异常对象全局化
Java卡虚拟机和Java虚拟机 …… 此处隐藏:6717字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




