实现Java卡个人化的方法及装置的制作方法

文档序号:7748004阅读:403来源:国知局
专利名称:实现Java卡个人化的方法及装置的制作方法
技术领域
本发明涉及智能IC卡应用领域,尤其涉及一种实现Java卡个人化的方法及装置。
背景技术
一卡多用是随着智能IC卡应用领域拓展而产生的技术要求,Java卡日益成为一卡多用芯片卡的主流选择,而全球平台(GlcAal Platform, GP)规范是当前Java卡所遵循的一个卡管理规范。依据GP规范,在管理卡片内容之前必须在Java卡上建立起安全通道以进行实体的双向认证并保证此后数据传输的完整性和机密性。在建立安全通道时,涉及到Java卡上的两个关键数据元密钥派生数据(KEYDATA)和个人化主密钥(KMC)。这两个数据元之间是有关联关系的=Java卡的个人化主密钥(KMC)是由发卡行主密钥对密钥派生数据(KEYDATA)分散后的结果。根据GP规范,建立安全通道时发卡行会在INITIALUE UPDATE指令中指明使用哪个版本的KMC ;卡片在INITIALUE UPDATE指令的响应数据中会包含KEYDATA值和用指定的KMC对指定的数据计算出的卡片密文。收到卡片的响应数据后,发卡行会用主密钥对KEYDATA值分散得到一个密钥,并用这个密钥来验证卡片密文。从这个过程中可以看出,如果卡片内的KEYDATA和KMC失去了一致性的关联关系,发卡行验证卡片密文就会败,安全通道也不能成功建立。根据GP规范,卡片用STORE DATA指令修改KEYDATA的值必须保证原子性操作,即要么没有修改,要么全部修改,不会出现只修改了一部份数据的现象。根据GP规范,卡片用PUT KEY指令修改KMC的值必须保证原子性操作,即要么没有修改,要么全部修改,不会出现只修改了一部份数据的现象。卡片商在Java卡的预个人化过程中会预置KEYDATA和KMC的缺省值,而发卡行在个人化的过程中会将KEYDATA和KMC的值替换为发卡行设置的值。依据GP规范,KEYDATA通过STORE DATA指令来修改,KMC通过PUT KEY指令来修改。Java卡的个人化流程一般如下 个人化开始 在Java卡上建立安全通道,如果不成功则中止个人化流程。·(与本发明无关的一些个人化操作) 用STORE DATA指令将KEYDATA的值修改为发卡行设置的值。 用PUT KEY指令将KMC的值修改为发卡行设置的值。·(与本发明无关的一些个人化操作) 个人化结束在这个流程中,如果在使用STORE DATA指令修改KEYDATA的值和使用PUT KEY指令修改KMC的值之间出现异常情况中止了个人化流程,就会造成Java卡中的KEYDATA和KMC失去了关联性,以致后续不能在卡上建立起安全通道,从而造成卡片的报废。

发明内容
本发明所要解决的技术问题是提供一种实现Java卡个人化的方法,该方法可在修改KEYDATA和KMC的过程中即使出现异常中止的情况也能保障这两个数据之间的关联性,避免卡片在个人化过程中异常终止而造成的卡片报废问题。本发明进一步所要解决的技术问题是提供一种实现Java卡个人化的装置,该装置可在修改KEYDATA和KMC的过程中即使出现异常中止的情况也能保障这两个数据之间的关联性,避免卡片在个人化过程中异常终止而造成的卡片报废问题。为解决上述技术问题,本发明采用如下技术方案一种实现Java卡个人化的方法,包括以下步骤新增临时个人化主密钥步骤,新增一个与发卡行设置的个人化主密钥存在关联关系的临时个人化主密钥;密钥参数修改步骤,将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;安全通道建立步骤,下一次为本卡建立安全通道时,在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。其中,所述安全通道建立步骤包括有第一安全通道建立步骤,指定使用卡片商预置的个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,执行下述第二安全通道建立步骤;第二安全通道建立步骤,指定使用所述临时个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,失败中止。其中,所述密钥参数修改步骤包括有密钥派生数据值修改步骤,使用STORE DATA指令修改密钥派生数据值,将其值从卡片商预置的值修改为发卡行设置的值;个人化主密钥值修改步骤,使用PUT KEY指令修改个人化主密钥值,将其值从卡片商预置的值修改为发卡行设置的值。优选地,在所述个人化主密钥值修改步骤之后还包括有删除临时个人化主密钥步骤,使用DELETE指令删除所述新增的临时个人化主密钥。优选地,在所述新增临时个人化主密钥步骤中,使用PUT KEY指令新增所述临时个人化主密钥,且所述临时个人化主密钥值与所述发卡行设置的个人化主密钥值相同。相应地,本发明还公开了一种实现Java卡个人化的装置,该装置包括有新增临时个人化主密钥单元,用于新增一个与发卡行设置的个人化主密钥存在关联关系的临时个人化主密钥;密钥参数修改单元,用于将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;安全通道建立单元,用于下一次为本卡建立安全通道时,在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。其中,所述安全通道建立单元包括有
5
第一安全通道建立单元,用于指定使用卡片商预置的个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,启动下述第二安全通道建立单元;第二安全通道建立单元,用于指定使用所述临时个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,失败中止。其中,所述密钥参数修改单元包括有密钥派生数据值修改单元,用于使用STORE DATA指令更改密钥派生数据值,将其值从卡片商预置的值修改为发卡行设置的值;个人化主密钥值修改单元,用于使用PUT KEY指令修改个人化主密钥值,将其值从卡片商预置的值修改为发卡行设置的值。优选地,所述个人化主密钥值修改单元还连接有删除临时个人化主密钥单元,用于使用DELETE指令删除新增的临时个人化主密钥。优选地,所述新增临时个人化主密钥单元使用PUT KEY指令新增所述临时个人化主密钥,且所述临时个人化主密钥值与所述发卡行设置的个人化主密钥值相同。本发明的有益效果是本发明的实施例通过新增一个临时的KMC并在建立安全通道时尝试两个KMC的流程,从而在完全遵循当前Java卡规范的基础上避免了 Java卡个人化过程中异常中止后卡片报废的问题。下面结合附图对本发明作进一步的详细描述。


图1是本发明的实现Java卡个人化的方法一个实施例的方法流程图。图2是本发明的实现Java卡个人化的装置一个实施例的组成结构图。
具体实施例方式下面参考图1详细描述本发明的实现Java卡个人化的方法的一个实施例;如图所示,其中KEYDATA0代表卡片商预置的KEYDATA值,KMCO代表卡片商预置的KMC值;KEYDATA1代表发卡行设置的KEYDATA值,KMCl代表发卡行设置的KMC值。本实施例实现一次Java卡个人化主要包括以下流程在新增临时个人化主密钥步骤S 1中,新增一个临时个人化主密钥,新增KMC的值与发卡行设置的KEYDATA值之间存在关联关系;在密钥参数修改步骤S2中,将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;在安全通道建立步骤S3中,在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。作为本实施例的一个实现方式,在所述新增临时个人化主密钥步骤S 1中,使用PUT KEY指令新增所述临时个人化主密钥,且所述临时个人化主密钥值与所述发卡行设置的个人化主密钥值相同。具体实现时,所述安全通道建立步骤S3可具体包括有
6
第一安全通道建立步骤S31,指定使用卡片商预置的个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,执行下述第二安全通道建立步骤;第二安全通道建立步骤S32,指定使用所述临时个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,失败中止。所述密钥参数修改步骤S2包括有密钥派生数据值修改步骤S21,使用STORE DATA指令修改密钥派生数据值,将其值从卡片商预置的值修改为发卡行设置的值;个人化主密钥值修改步骤S22,使用PUT KEY指令修改个人化主密钥值,将其值从卡片商预置的值修改为发卡行设置的值。另外,为了使个人化操作后卡内最终数据与现有技术等效考虑,在所述个人化主密钥值修改步骤S22之后还可包括在删除临时个人化主密钥步骤S4中,使用DELETE指令删除所述新增的临时个人
化主密钥。下面参考图2详细描述本发明的实现Java卡个人化的装置的一个实施例;如图所示,本实施例主要包括有新增临时个人化主密钥单元1,用于新增一个临时个人化主密钥,新增KMC的值与发卡行设置的KEYDATA值之间存在关联关系;密钥参数修改单元2,用于将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;安全通道建立单元3,用于在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。作为本实施例的一个实现方式,所述新增临时个人化主密钥单元1使用PUT KEY指令新增所述临时个人化主密钥,且所述临时个人化主密钥值与所述发卡行设置的个人化主密钥值相同。具体实现时,所述安全通道建立单元3可具体包括有第一安全通道建立单元31,用于指定使用卡片商预置的个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,启动下述第二安全通道建立单元22 ;第二安全通道建立单元32,用于指定使用所述临时个人化主密钥建立安全通道;若建立成功,则进入安全通道建立状态,否则,失败中止。 所述密钥参数修改单元2可具体包括有密钥派生数据值修改单元21,用于使用STORE DATA指令更改密钥派生数据值,将其值从卡片商预置的值修改为发卡行设置的值;个人化主密钥值修改单元22,用于使用PUT KEY指令修改个人化主密钥值,将其值从卡片商预置的值修改为发卡行设置的值。另外,为了使个人化操作后卡内最终数据与现有技术等效考虑,所述个人化主密钥值修改单元22还连接有删除临时个人化主密钥单元4,用于使用DELETE指令删除新增的临时个人化主密钥。与现有技术相比,本发明有如下优点基于新增的一个临时KMC并在建立安全通
7道时尝试使用两个KMC的流程,实现了 Java卡在个人化过程中异常中止后仍可以建立安全通道的方法,解决了个人化过程中异常中止造成的废卡问题。 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
权利要求
1.一种实现Java卡个人化的方法,其特征在于,该方法包括以下步骤新增临时个人化主密钥步骤,新增一个与发卡行设置的个人化主密钥存在关联关系的临时个人化主密钥;密钥参数修改步骤,将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;安全通道建立步骤,下一次为本卡建立安全通道时,在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。
2.如权利要求1所述的实现Java卡个人化的方法,其特征在于,所述安全通道建立步骤包括有第一安全通道建立步骤,指定使用卡片商预置的个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,执行下述第二安全通道建立步骤;第二安全通道建立步骤,指定使用所述临时个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,失败中止。
3.如权利要求2所述的实现Java卡个人化的方法,其特征在于,所述密钥参数修改步骤包括有密钥派生数据值修改步骤,使用STORE DATA指令修改密钥派生数据值,将其值从卡片商预置的值修改为发卡行设置的值;个人化主密钥值修改步骤,使用PUT KEY指令修改个人化主密钥值,将其值从卡片商预置的值修改为发卡行设置的值。
4.如权利要求3所述的实现Java卡个人化的方法,其特征在于,在所述个人化主密钥值修改步骤之后还包括有删除临时个人化主密钥步骤,使用DELETE指令删除所述新增的临时个人化主密钥。
5.如权利要求1-4中任一项所述的实现Java卡个人化的方法,其特征在于,在所述新增临时个人化主密钥步骤中,使用PUT KEY指令新增所述临时个人化主密钥,且所述临时个人化主密钥值与所述发卡行设置的个人化主密钥值相同。
6.一种实现Java卡个人化的装置,其特征在于,该装置包括有新增临时个人化主密钥单元,用于新增一个与发卡行设置的个人化主密钥存在关联关系的临时个人化主密钥;密钥参数修改单元,用于将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;安全通道建立单元,用于下一次为本卡建立安全通道时,在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。
7.如权利要求1所述的实现Java卡个人化的装置,其特征在于,所述安全通道建立单元包括有第一安全通道建立单元,用于指定使用卡片商预置的个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,启动下述第二安全通道建立单元;第二安全通道建立单元,用于指定使用所述临时个人化主密钥建立安全通道;若成功,则进入安全通道建立状态,否则,失败中止。
8.如权利要求7所述的实现Java卡个人化的装置,其特征在于,所述密钥参数修改单元包括有密钥派生数据值修改单元,用于使用STORE DATA指令更改密钥派生数据值,将其值从卡片商预置的值修改为发卡行设置的值;个人化主密钥值修改单元,用于使用PUT KEY指令修改个人化主密钥值,将其值从卡片商预置的值修改为发卡行设置的值。
9.如权利要求8所述的实现Java卡个人化的装置,其特征在于,所述个人化主密钥值修改单元还连接有删除临时个人化主密钥单元,用于使用DELETE指令删除新增的临时个人化主密钥。
10.如权利要求6-9中任一项所述的实现Java卡个人化的装置,其特征在于,所述新增临时个人化主密钥单元使用PUT KEY指令新增所述临时个人化主密钥,且所述临时个人化主密钥值与所述发卡行设置的个人化主密钥值相同。
全文摘要
本发明公开一种实现Java卡个人化的方法,包括以下步骤新增临时个人化主密钥步骤,新增一个与发卡行设置的个人化主密钥存在关联关系的临时个人化主密钥;密钥参数修改步骤,将密钥派生数据值和所述卡片商预置的个人化主密钥值修改为发卡行设置的值;安全通道建立步骤,下一次为本卡建立安全通道时,在使用卡片商预置的个人化主密钥建立安全通道失败的情况下,指定使用所述临时个人化主密钥建立安全通道。本发明还公开了一种实现Java卡个人化的装置。本发明可在修改KEYDATA和KMC的过程中即使出现异常中止的情况也能保障这两个数据之间的关联性,避免卡片在个人化过程中异常终止而造成的卡片报废问题。
文档编号H04L9/08GK102394743SQ20111022821
公开日2012年3月28日 申请日期2011年8月10日 优先权日2011年8月10日
发明者朱文玄, 沈恺, 王琴 申请人:武汉天喻信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1