一种智能卡及其工作方法技术

技术编号:26417879 阅读:27 留言:0更新日期:2020-11-20 14:12
本申请公开了一种智能卡及其工作方法,包括如下步骤:响应于调用应用的命令,启动虚拟机;虚拟机将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令。本申请提供的智能卡,由于使用二进制指令格式生成应用,配合特定的虚拟机工作方法进行读取和执行,从而使得此二进制格式文件可以在智能卡上被执行,发挥通用的硬件性能并以原生应用的速度运行。

【技术实现步骤摘要】
一种智能卡及其工作方法
本申请涉及智能卡领域,尤其涉及一种智能卡及其工作方法。
技术介绍
现有的智能卡基本采用Java技术,Java卡技术已经被业界广泛接受。Java卡技术包括Java卡运行环境(JavaCardRuntimeEnvironment,JCRE)、Java卡虚拟机(JavaCardVirtualMachine,JCVM)和Java卡应用编程接口(JavaCardApplicationProgrammingInterfaces,JCAPI)三个部分。虚拟机是用于实现应用独立性和应用平台无关性的关键。是对真实计算机资源的一个抽象,为解释性语言提供一套完整的虚拟机接口,即定义了一个虚拟命令集合,为解释语言开发的应用程序和计算机资源之间提供一个可移植接口。在解释执行时,每次提交一个虚拟命令给虚拟机执行。Java卡虚拟机包含两部分,卡上部分包括Java卡字节码解释器。Java卡转换器是卡外部分,运行于PC或工作站。卡上和卡外部分一起实现了虚拟机的全部功能。转换器装载与预处理构成Java包的类文件和输出CAP(convertedapplet)文件。而后将CAP文件装载到Java智能卡中并由解释器执行。现有的基于Java技术的智能卡系统存在执行效率较低的技术问题。
技术实现思路
本申请的目的在于提供一种执行效率更高、运行速度更快、同时兼具兼容性的智能卡。本申请提供一种智能卡工作方法,包括如下步骤:响应于调用应用的命令,启动虚拟机;虚拟机将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令。优选地,所述应用由多个模块组成,每个模块均由二进制字节码组成。优选地,所述至少一条虚拟机指令组成一个虚拟机指令集,多个虚拟机指令集和组成全局指令队列。优选地,使用虚拟上下文保存转换过程中的执行数据,在退出应用时,将虚拟上下文映射到智能卡存储器中。优选地,虚拟机循环读取全局指令队列,执行应用相应功能。本申请提供的智能卡工作方法具有如上所述的步骤,由于使用二进制指令格式生成应用,配合特定的虚拟机工作方法进行读取和执行,从而使得此二进制格式文件可以在智能卡上被执行,发挥通用的硬件性能并以原生应用的速度运行。此外,本申请还提供一种智能卡,包括如下部件:存储器,存储应用;虚拟机,响应于调用应用的命令,将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令。优选地,所述应用由多个模块组成,每个模块均由二进制字节码组成。优选地,所述虚拟机包括如下子部件:虚拟上下文VMContext,用于保存转换过程中的执行数据;初始化模块VMInit,用于在虚拟机启动时,初始化虚拟机;退出模块VMExit,在退出应用时,将虚拟上下文映射到智能卡存储器中;调度器Dispatcher,将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令;执行器,循环读取虚拟机指令,执行应用相应功能。优选地,智能卡还包括:所述至少一条虚拟机指令组成一个虚拟机指令集,多个虚拟机指令集组成全局指令队列。优选地,智能卡中存储多个应用,通过固定存储空间大小和地址校验实现应用边界限制。由于本申请提供的智能卡适用于以上所述的智能卡工作方法,因此,该智能卡具有和以上所述的智能卡工作方法相同的有益效果,此处不再进行赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例中的智能卡的结构示意图;图2为本申请第二实施例中的智能卡的结构示意图;图3为应用边界示意图;图4为本申请实施例中的虚拟机的结构示意图;图5为本申请实施例中的智能卡的工作流程图;图6为应用形成过程的示意图;图7为应用生成以及在智能卡上运行的示意图;图8为智能卡系统结构图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。实施例一本申请实施例提供一种智能卡,具体地,如图1所示,该智能卡100包括:存储器110,存储应用;虚拟机120,响应于调用应用的命令,将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令。通过该智能卡实现以二进制字节码存储的应用的运行,优选的,二进制字节码可以是WASM(WebAssembly缩写)格式存储。实施例二依据实施例二,智能卡100还包括如图2所示的部件:硬件:包括CPU、存储器(ROM、EEPROM(Flash)以及RAM)、各种处理器以及输入输出电路通信。硬件抽象层:隐藏了平台的硬件接口细节,直接和硬件通讯,为上层提供抽象支持。上层进行硬件操作时,不需要了解具体细节,从而大大减少智能卡系统理解和开发的复杂度。嵌入式平台通常遵循层次化的设计方法,易于移植。操作系统:包括通信协议、内存管理、加密算法、虚拟机以及应用安装程序等多个模块。通信协议模块提供智能卡需要的各种通信协议转换;加密算法模块提供加密、解密以及数字签名等功能。内存管理模块为虚拟机以及应用安装程序模块提供存储支持。应用安装程序将应用安装到卡内。API(ApplicationProgramInterface应用程序接口):为了使智能卡编程更简单而提供内置API,这些API提供的功能符合智能卡的系统架构,为应用提供服务,提供与硬件无关的统一开发接口。内置API包括加密API(CryptoAPI)、APDU(ApplicationProtocolDataUnit应用协议数据单元)API、存储器API(MemoryAPI)、事务API(TransactionAPI)以及算法API(ArithmeticAPI)等。其中加密API提供密码技术服务,如加解密、签名、随机数、摘要计算等算法相关功能;APDUAPI提供通信服务,即智能卡和终端交互数据,应用开发者利用APDUAPI中提供的方法极其容易地处理APDU命令。事务API提供事务保护服务,包括开始事务、提交事务和废弃事务等功能。算法API提供加、减、乘、除,求余数及面向位操作等算术功能,其中加、减、乘、除,求余数支持BCD格式。应用程序:实现卡上不同功能的应用服务。智能卡为多应用智能卡,每张卡内可以下载多个实现不同功能的应用。每个应用都是通过应用标识符(AID)来唯一标识和选择的。每个应用也有自己的应用空间,由防火墙保护。应用本文档来自技高网...

【技术保护点】
1.一种智能卡工作方法,包括如下步骤:/n响应于调用应用的命令,启动虚拟机;/n虚拟机将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令。/n

【技术特征摘要】
1.一种智能卡工作方法,包括如下步骤:
响应于调用应用的命令,启动虚拟机;
虚拟机将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识别的至少一条虚拟机指令。


2.根据权利要求1所述的智能卡工作方法,其特征在于,所述应用由多个模块组成,每个模块均由二进制字节码组成。


3.根据权利要求1所述的智能卡工作方法,其特征在于,所述至少一条虚拟机指令组成一个虚拟机指令集和,多个虚拟机指令集和组成全局指令队列。


4.根据权利要求1所述的智能卡工作方法,其特征在于,使用虚拟上下文保存转换过程中的执行数据,在退出应用时,将虚拟上下文映射到智能卡存储器中。


5.根据权利要求3所述的智能卡工作方法,其特征在于,虚拟机循环读取全局指令队列,执行应用相应功能。


6.一种智能卡,包括如下部件:
存储器,存储应用;
虚拟机,响应于调用应用的命令,将应用中的由二进制字节码组成的语句转换为智能卡操作系统可识...

【专利技术属性】
技术研发人员:刘建明李娜
申请(专利权)人:恒宝股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1