首页> 中国专利> 在具有集成电路的卡中应用软件初始化的设备和方法

在具有集成电路的卡中应用软件初始化的设备和方法

摘要

本发明涉及一种集成电路设备,它包含一个存储器以及至少一个驻留在所述的存储器内的应用程序。本发明的特征在于:该应用程序包含至少一个可配置变量以及一个至少有一个参考单元的列表;所述的存储器,一方面,包含至少一个用于初始化所述变量的方法,其中所述的方法用几个参数进行配置,其中一个参数是所述的参考单元列表,另一方面,包含用于传送数据、特别是包含分配给该可配置变量的值的数据的命令。本发明尤其适用于智能卡。

著录项

  • 公开/公告号CN1333903A

    专利类型发明专利

  • 公开/公告日2002-01-30

    原文格式PDF

  • 申请/专利权人 施蓝姆伯格系统公司;

    申请/专利号CN99815578.0

  • 发明设计人 扬尼克·伯里安;

    申请日1999-12-08

  • 分类号G07F7/10;

  • 代理机构柳沈知识产权律师事务所;

  • 代理人黄敏

  • 地址 法国蒙特鲁日

  • 入库时间 2023-12-17 14:06:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-26

    未缴年费专利权终止 IPC(主分类):G07F7/10 授权公告日:20040519 终止日期:20161208 申请日:19991208

    专利权的终止

  • 2012-10-03

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G07F7/10 变更前: 变更后: 申请日:19991208

    专利权人的姓名或者名称、地址的变更

  • 2005-09-07

    专利权人的姓名或者名称、地址的变更 变更前: 变更后: 申请日:19991208

    专利权人的姓名或者名称、地址的变更

  • 2004-05-19

    授权

    授权

  • 2002-03-06

    实质审查的生效

    实质审查的生效

  • 2002-01-30

    公开

    公开

查看全部

说明书

本发明涉及一个集成电路设备,它包含一个存储器以及至少一个驻留在该存储器中的应用软件。它还涉及一种用于在这种设备中初始化一个应用程序的方法。

特别地,这些设备是带有涉及健康领域的应用程序的智能卡等便携式物品、移动电话、以及银行交易机等。

这种智能卡包含一个在其中集成了电子单元的卡体,该卡体通常包含一个控制单元(诸如一个中央处理单元或者CPU)和一个存储器。这个存储器包含至少一个包含有统一(unitary)单元的应用程序,指定这些统一单元的值以使该程序能够执行,当执行该应用程序时这些单元是不会改变的。将这些单元称为可配置变量。

关于上述变量的配置,现有技术提供了一些设备,这些设备在一个所谓的初始化阶段使用包含分配给变量的数据的文件。这个初始化阶段对于恰当地执行该应用程序是必要的。为了做到这一点,这些设备包含控制装置,用于在所述文件内修改初始化数据的值,然后把这些数据赋值给所述的变量。当这些变量永久地存储在该存储器内时,即使在卡不再通电的情况下它们仍保持它们的初值。

虽然这些设备允许对一个应用程序进行配置,然而这些初始值在两个实质上具有相同大小的存储器空间内进行了复制,其中一个空间包含这些初始化数据文件,而另一个是分配给用所述数据进行初始化的变量的存储器空间,由于智能卡有限的可用存储器容量,因此这是成问题的。此外,这种应用程序的执行时间实质上也增加了,特别是由于在每次执行该程序时都需要执行该初始化阶段,即使在初始值没有改变时也要如此,因为初始化阶段是该应用程序不可分割的部分。最后,还有这样的情况如该应用程序没有文件存取的权限,或者卡干脆没有与之相关的文件。

因此,根据本发明要解决的一个技术问题是提供一种具有一个集成电路的设备,该设备包含一个存储器和至少一个驻留在所述存储器内的应用程序,本发明还提供了一种用于在这种设备中初始化一个应用程序的方法,一方面,该方法允许不必复制数据就可配置一个应用程序,因此避免了由于上述文件而损失存储器空间;另一方面,该方法避免增加所述应用程序的执行时间。

根据本发明,对提出的技术问题的一个解决方案为:所述应用程序包含至少一个可配置变量以及至少一个参考单元的一列表,其中所述存储器一方面包含至少一个用于初始化所述变量的方法(means),其中所述方法用几个参数来进行设置,其中一个参数是参考单元列表,另一方面,所述存储器包含用于发送数据的命令,该数据具体包含分配给可配置变量的值。

根据本发明的第二个目的,这种解决方案的特征在于:该初始化方法包含如下步骤:

-在所述应用程序内生成至少一个可配置变量以及一个包含至少一个参考单元的列表;

-发送具体包含分配给可配置变量的值的数据;

-通过使用一个初始化方法初始化所述变量,其中所述方法用几个参数进行设置,其中一个参数是参考单元列表。

因此,如以下详细所示那样,通过使用修改分配给可配置变量值的命令,以及通过使用参考单元列表作为一个参数传递给初始化方法,该列表允许在由命令发送的值和该应用程序中要配置的变量之间建立一个连接,依据本发明的设备能够对卡存储器进行最优化管理以及对一个应用程序中地变量进行直接配置。

结合附图中非局限性的实例以及下面对本发明的描述,本发明的其它特征和优点将变得更加明显。

图1是一个集成电路设备在此是一个智能卡的原理图。

图2是图1的卡中的一个存储器的原理图。

图3是图1所示的卡中的一个应用程序的原理图。

图4是图1所示的卡中的一个指令的原理图。

图5是在图2的存储器中的应用程序上的一个单元列表的原理图。

图6是图1所示的卡中的存储器的另一原理图。

图7是一个显示了包含在图3的应用程序中的变量的原理图。

图1中显示了一个集成设备10,在这儿是一个智能卡。卡10包含一个控制单元11(例如一个中央处理单元或者CPU)、一个存储器12、和一个用于电子连接例如连到一个读卡机连接器的连接块13。

存储器12如图2所示。它包含一个应用程序A。程序A包含至少一个可配置变量V和一个包含至少一个参考单元R的列表L。一方面,存储器包含至少一个用于所述变量V的初始化方法MI,所述方法由几个参数进行设置,其中一个参数是参考单元的列表L;另一方面,存储器包含一个命令CDE,用于发送具体包含分配给可配置变量的值的数据。方法MI作为一个函数或者软件的一部分来实现。在图3中,应用程序A有三个可配置变量V1、V2和V3,以及一个包含三个参考单元R1、R2和R3的列表L。

为了让程序A正确执行,就不得不对它的变量进行配置,也就是说,必须对它们赋值。

在第一步,向卡10发送命令CDE。它包含有数据,如许多参考单元R、在一列表中参考单元的索引编号、相关值等。在图4中,命令CDE发送以下三个字母数字值:GSM APPLICATION,DIAL以及CALLING。这些值前面带有对应于三个参考单元的索引1、2和3。

当应用程序A接收到命令CDE时,就执行它,从而这样开始调用方法MI的初始化阶段。

第二步,在由命令CDE发送的值和特定列表L的参考单元之间建立一个连接。对初始化方法MI进行配置的参考单元列表L允许建立这个连接。其中的其它参数是由命令CDE发送的数据。指定列表L,例如可以通过提供它的名字来进行。在图5中,L被称作CUSTOMELEMENT。它包含三个参考单元:MENU、TEXT和MESSAGE,分别和字母数字值GSM APPLICATION、DIAL以及CALLING相关。这些值来自于命令CDE。

第三步,利用参考单元R,初始化方法MI在列表L的值和要配置的变量V之间建立了一个连接。为了做到这一点,一个参考单元R定位一个可配置变量V。在图3中,R1、R2和R3分别涉及变量V1、V2和V3,后者是内容必须进行全部或者部分初始化的变量。通过使用这些不同的连接,把这些值传输到所述的变量中。

一旦已经执行了传输,应用程序A的配置就完成了,然后能够依照要求进行程序的其它部分。依据本发明的设备没有文件,因此变量已经直接进行配置。

应当注意到,依据本发明,命令CDE还允许读取可配置变量的内容,因为该命令包含一个被称为MODE的参数,它表明该指令是否应该发送或读取数据。因此,能够随时读取变量V的值,从而总是能够知道应用程序的配置。

为节省存储空间、以及使初始化更相容而允许一个或多个应用程序使用同一初始化方法MI,这是有用的。因此,不考虑应用程序A,至少有一个初始化方法MI驻留在存储器内。因此,方法MI能被驻留在卡10上的任何应用程序使用,并且不专门用于任何特定程序A。如图6所示,方法MI与应用程序A1和A2无关,因此可以被这些程序中的任何一个使用。

然而,通过提供除MI1以外的方法,允许为一个给定的应用程序定制初始化方法,这也是有用的,例如在希望具有一个不同于MI1所使用的数据交换协议的情况下,即使用一个不同的初始化数据格式。如图6所示,至少有一个应用程序A2包含初始化方法MI2。为了配置在A2中的变量,如果变量符合MI1和MI2方法各自的数据格式的话,就有可能使用所述方法中的任意一个。

还应当注意到,也有可能避免使用独立于任何应用程序的方法MI,在这种情况下将每个初始化方法MI分配给一个给定的应用程序,或者相反地,仅仅使用独立的方法。

更具体地说,本发明可以用于使用高级语言编制的应用程序,例如,尤其是所谓的JAVA语言(注册商标)。这种语言基于类、继承、属性、以及方法等概念,这是本领域技术人员所公知的。

在应用程序A是用JAVA编写的情况下,可配置变量为对象,且参考单元的一个列表指的是一组对象。在图7中,存储器12包含一个应用程序A。应用程序A至少具有两个可配置变量V1以及V3,它们被同一个列表所引用,并且是从同一个父类C0衍生出来。此外,所述的应用程序A至少具有两个可配置变量V1和V2,它们被同一个列表所访问,并且是同一个类C1的实例。不同的类要么在应用程序A中定义,要么相互独立地,例如在一个库内定义。这些可配置变量保持在存储器12内。

要注意到:列表L要么表示具有公共特征的对象,在这种情况下变量或者对象V1和V3从类C0中继承属性At1和方法M1以及M2,但是具有它们自己的属性和方法;列表要么表示共享它们所有特征的对象,在这种情况下V1和V2是同一个类C1的实例,类C1具有属性At2以及方法M3。为了配置这些对象,列表L应具有和这些对象所属类的父类相同的类型。这样,方法MI1将仅仅允许配置对象V1、V2以及V3的一部分内容,即属性At1。还有可能提供其他更复杂的方法MI2用于配置变量V1和V2的属性集At1和At2。

基于列表L的类型的定义,本发明允许修改明确指定的对象的属性值,因此防止由于疏忽而改变其他对象内容的值。此外,根据本发明,包含应用程序A中的所有变量的存储单元不是直接进行访问的,因此就没有所有那些变量可以被欺骗性修改的危险。

本发明的另一个优点是这些变量或者对象保持在存储器中。这意味着,一旦已经对它们配置了以后,而且如果它们在应用程序A的执行期间没有被修改,则所述对象甚至在程序A执行之后仍保持它们的初始值。如果不希望在另一次执行A之前修改这些值的话,用户不需要发送用于配置应用程序A的命令CDE,因此,就不再需要初始化阶段,而且不需要触发初始化方法MI。因此,就减少了执行时间。

如上所述,JAVA语言在几个方面都比较有吸引力,但是它的一个最强大的特征是包含安全方法,其中一些方法检查一个应用程序A中的每个指令以及它的参数是有效的。例如,如果一个指令要求位于存储器12内一给定地址的一个字节表格作为一个参数,但是指定了一个禁用的存储器地址作为代替,该安全方法将允许探测这个错误,因此阻止访问禁用的存储器。为了利用这些验证安全方法,根据本发明,初始化方法MI用和应用程序A相同的语言即JAVA来定义。因此,如果方法MI的一个参数是错误的,则程序将不会执行,并且伪造者将不能访问禁用的存储单元。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号