CN106293529A - 一种智能卡存储数据的方法、装置和智能卡 - Google Patents
一种智能卡存储数据的方法、装置和智能卡 Download PDFInfo
- Publication number
- CN106293529A CN106293529A CN201610644982.7A CN201610644982A CN106293529A CN 106293529 A CN106293529 A CN 106293529A CN 201610644982 A CN201610644982 A CN 201610644982A CN 106293529 A CN106293529 A CN 106293529A
- Authority
- CN
- China
- Prior art keywords
- data
- smart card
- application
- module data
- compression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/077—Constructional details, e.g. mounting of circuits in the carrier
- G06K19/0772—Physical layout of the record carrier
- G06K19/07732—Physical layout of the record carrier the record carrier having a housing or construction similar to well-known portable memory devices, such as SD cards, USB or memory sticks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种智能卡存储数据的方法、装置和智能卡,其中,该方法包括:智能卡接收可信任服务平台发送的应用数据包;其中,应用数据包包括方法组件数据;智能卡获取方法组件数据对应的组件标识信息;其中,组件标识信息包括:应用数据包的应用标识符和方法组件数据的校验值;智能卡采用数据压缩算法将方法组件数据进行压缩;智能卡保存压缩记录信息和压缩后的方法组件数据;其中,压缩记录信息包括:组件标识信息、压缩后的方法组件数据的存储地址和压缩后的方法组件数据的长度。本发明可以降低应用数据包占据的存储空间,提高智能卡存储空间利用率。
Description
技术领域
本发明涉及智能卡技术领域,具体而言,涉及一种智能卡存储数据的方法、装置和智能卡。
背景技术
随着智能卡的普及,日常消费、移动支付场景的不断丰富,基于智能卡的多种应用为用户提供了更便捷更安全的服务。用户手中的智能卡除了可以完成日常的现金业务外,还可参与其他线上线下的优惠活动、积分、生活缴费、交通出行等多途径多类别的消费活动。用户还可以通过移动终端自主下载商户、银行等其他运营机构的智能卡应用完成支付,积分等业务。
但是伴随着应用的不断丰富,需求的服务不断增多,而用户的智能卡(或移动终端中的嵌入式安全单元eSE)存储空间有限,应用的组件信息以及个人数据占用了大量的存储空间,导致用户下载的应用较少;同时,当用户智能卡空间不足时,用户需选择删除现有的智能卡应用来释放空间,而删除智能卡应用容易造成应用个人数据的丢失;且当用户需要安装多个应用而又空间不足时,就需要更换智能卡或eSE,该eSE由于嵌入在手机终端中,导致更换成本较高。
针对上述智能卡存储空间利用率较低的问题,目前尚未提出有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提供一种智能卡存储数据的方法、装置和智能卡,可以降低应用数据包占据的存储空间,提高智能卡存储空间利用率。
第一方面,本发明实施例提供了一种智能卡存储数据的方法,包括:智能卡接收可信任服务平台发送的应用数据包;其中,智能卡为独立的芯片卡或者嵌入于移动终端内的安全芯片卡,应用数据包包括方法组件数据;智能卡获取方法组件数据对应的组件标识信息;其中,组件标识信息包括:应用数据包的应用标识符和方法组件数据的校验值;智能卡采用数据压缩算法将方法组件数据进行压缩;其中,数据压缩算法包括游程编码算法或哈弗曼编码算法;智能卡保存压缩记录信息和压缩后的方法组件数据;其中,压缩记录信息包括:组件标识信息、压缩后的方法组件数据的存储地址和压缩后的方法组件数据的长度。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述智能卡获取方法组件数据对应的组件标识信息包括:智能卡从应用数据包中提取应用数据包的应用标识符;智能卡采用消息摘要算法计算方法组件数据的原始摘要值,将原始摘要值作为方法组件数据的校验值,原始摘要值记录有方法组件数据的摘要信息。
结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述方法还包括:智能卡接收启用应用数据包对应的应用的请求消息,请求消息携带有应用数据包的应用标识符;当请求消息中的应用标识符对应的解压标识为未解压时,智能卡根据保存的压缩记录信息获取请求消息中的应用标识符对应的压缩后的方法组件数据;智能卡对压缩后的方法组件数据进行解压缩,得到方法组件数据;智能卡记录应用标识符对应的解压标识为已解压。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述智能卡对压缩后的方法组件数据进行解压缩,得到方法组件数据包括:智能卡采用数据压缩算法对应的解压算法,对压缩后的方法组件数据进行解压缩;智能卡获取解压后的数据对应的校验值;当获取的校验值和压缩记录信息的组件标识信息中的校验值一致时,智能卡确定解压后的数据为方法组件数据。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述智能卡对压缩后的方法组件数据进行解压缩之后,方法还包括:智能卡在自身的存储区内查找是否保存有与组件标识信息对应的个人数据;如果是,智能卡从上述个人数据的存储地址提取所述个人数据;如果否,智能卡向可信任服务平台获取组件标识信息对应的个人数据,将获取到的个人数据保存至方法组件数据对应的位置。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,上述方法还包括:当接收到删除应用指令时,智能卡从应用指令中提取欲删除的应用的应用标识符;智能卡将提取到的应用标识符对应的组件标识信息和个人数据保留,并转移至指定位置;智能卡删除提取的应用标识符对应的方法组件数据和压缩记录信息。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,上述智能卡保存压缩记录信息包括:智能卡以注册表的形式保存压缩记录信息;其中,注册表包括:组件标识信息对应的表项、压缩后的方法组件数据的存储地址表项、压缩后的方法组件数据的长度表项和个人数据保存位置的表项;智能卡在注册表中设置上述个人数据保存的指定位置。
第二方面,本发明实施例提供了一种智能卡存储数据的装置,包括:应用数据包接收模块,用于接收可信任服务平台发送的应用数据包;其中,智能卡为独立的芯片卡或者嵌入于移动终端内的安全芯片卡,应用数据包包括方法组件数据;组件标识信息获取模块,用于获取方法组件数据对应的组件标识信息;其中,组件标识信息包括:应用数据包的应用标识符和方法组件数据的校验值;压缩模块,用于采用数据压缩算法将方法组件数据进行压缩;其中,数据压缩算法包括游程编码算法或哈弗曼编码算法;保存模块,用于保存压缩记录信息和压缩后的方法组件数据;其中,压缩记录信息包括:组件标识信息、压缩后的方法组件数据的存储地址和压缩后的方法组件数据的长度。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述组件标识信息获取模块包括:应用标识符提取单元,用于从应用数据包中提取应用数据包的应用标识符;原始摘要值计算单元,用于采用消息摘要算法计算方法组件数据的原始摘要值,将原始摘要值作为方法组件数据的校验值,原始摘要值记录有方法组件数据的摘要信息。
第三方面,本发明实施例提供了一种智能卡,包括上述智能卡存储数据的装置。
本发明实施例提供的一种智能卡存储数据的方法、装置和智能卡,上述智能卡通过接收到的应用数据包内的方法组件数据对应的组件标识信息,可以获取该应用数据包的应用标识符和方法组件数据的校验值等数据;智能卡通过数据压缩算法将方法组件数据进行压缩,并将上述组件标识信息等压缩记录信息和压缩后的方法组件数据进行保存;上述方式可以降低应用数据包占据的存储空间,提高智能卡存储空间利用率,增加智能卡的应用安装数量,进而提升用户对智能卡的服务体验。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种智能卡存储数据的方法的流程图;
图2示出了本发明实施例所提供的一种智能卡存储数据的方法中,智能卡获取方法组件数据对应的组件标识信息具体方法的流程图;
图3示出了本发明实施例所提供的一种智能卡存储数据的装置的结构示意图;
图4示出了本发明实施例所提供的一种智能卡存储数据的装置中,组件标识信息获取模块的结构示意图;
图5示出了本发明实施例所提供的一种智能卡的结构示意图;
图6示出了本发明实施例所提供的一种智能卡数据传输系统的结构示意图;
图7示出了本发明实施例所提供的一种智能卡应用安装方法的流程图;
图8示出了本发明实施例所提供的一种智能卡应用使用方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到现有的智能卡存储空间利用率较低的问题,本发明实施例提供了一种智能卡存储数据的方法、装置和智能卡;该技术可以应用于基于JAVA程序的智能卡或者基于其他相关程序的智能卡上,还可以应用于嵌入在手机、平板电脑等移动终端或者其他智能终端内的嵌入式安全单元eSE上;该技术可以采用相关的软件和硬件实现,下面通过实施例进行描述。
实施例1
参见图1所示的一种智能卡存储数据的方法的流程图,该方法包括如下步骤:
步骤S102,智能卡接收可信任服务平台发送的应用数据包;其中,该智能卡为独立的芯片卡或者嵌入于移动终端内的安全芯片卡,该应用数据包包括方法组件数据;
在现有的智能卡中,通常保存有类组件、方法组件、静态组件、导出组件共4个组件;上述应用数据包安装后,类组件,静态组件,导出组件的内容保存至预先分配的空间内,且该空间地址记录在注册表中;应用下载以后可以安装多个应用,每个应用对应着一组个人化数据,而这些多个应用对应的多组个人化数据使用的是相同的组件内容;所以上述组件信息会单独存放;另外,类组件、静态组件、导出组件在使用过程中可能会发生数据变化,当数据变化时需要重新压缩,增加了时间成本,且占用的空间并不是太大;而上述方法组件中包含该应用的执行逻辑,占有存储空间较大,且该方法组件数据在该应用的生命周期内不发生变化,因此,本发明实施例主要选取上述方法组件数据作为存储过程中的压缩对象,而其他组件则还是按照相关技术的存储方式存储即可。
步骤S104,上述智能卡获取方法组件数据对应的组件标识信息;其中,该组件标识信息包括:应用数据包的应用标识符和方法组件数据的校验值;
步骤S106,上述智能卡采用数据压缩算法将方法组件数据进行压缩;其中,该数据压缩算法包括游程编码算法或哈弗曼编码算法;
上述智能卡在接收可信任服务平台发送的应用数据包后,可以自动调用数据压缩算法对相关数据进行压缩;还可以通过外界终端等装置对智能卡内的数据压缩算法进行激活或者调用。
步骤S108,上述智能卡保存压缩记录信息和压缩后的方法组件数据;其中,该压缩记录信息包括:组件标识信息、压缩后的方法组件数据的存储地址和压缩后的方法组件数据的长度。
本发明实施例提供的一种智能卡存储数据的方法,上述智能卡通过接收到的应用数据包内的方法组件数据对应的组件标识信息,可以获取该应用数据包的应用标识符和方法组件数据的校验值等数据;智能卡通过数据压缩算法将方法组件数据进行压缩,并将上述组件标识信息等压缩记录信息和压缩后的方法组件数据进行保存;上述方式可以降低应用数据包占据的存储空间,提高智能卡存储空间利用率,增加智能卡的应用安装数量,进而提升用户对智能卡的服务体验。
考虑到智能卡中的应用在使用时需要验证解压后的应用数据是否正确,上述智能卡获取方法组件数据对应的组件标识信息,如图2所示,包括如下步骤:
步骤S202,智能卡从应用数据包中提取应用数据包的应用标识符;其中,该应用标识符用于记录该应用的标识名称;
步骤S204,上述智能卡采用消息摘要算法计算方法组件数据的原始摘要值,将原始摘要值作为方法组件数据的校验值,原始摘要值记录有方法组件数据的摘要信息。其中,该原始摘要值记录了原始方法组件信息的摘要结果,用于校验解压所否正确;上述消息摘要算法包括安全散列算法sha-1和消息摘要算法第五版md5。
通过上述方式可以获取应用数据包在压缩之前的应用标识符和原始摘要值,用以对解压缩后的数据进行校验。
由于上述压缩后的应用数据在该应用使用时无法直接运行,本发明实施例在实际应用时,上述方法还包括如下步骤:(1)智能卡接收启用应用数据包对应的应用的请求消息,该请求消息携带有应用数据包的应用标识符;(2)当该请求消息中的应用标识符对应的解压标识为未解压(可以根据请求消息中携带的应用标识符,查找预先的解压记录,该解压记录可以是每次解压缩应用的方法组件数据时生成的,其可以包括应用标识符和解压标识)时,智能卡根据保存的压缩记录信息获取请求消息中的应用标识符对应的压缩后的方法组件数据;(3)智能卡对压缩后的方法组件数据进行解压缩,得到方法组件数据;(4)智能卡记录上述应用标识符对应的解压标识为已解压;当后续再次接收到启用上述应用数据包对应的应用的请求消息时,如果该请求消息中的应用标识符对应的解压标识为已解压,则可以直接启用该应用,不需要再次进行解压缩操作。通过上述方式可以方便识别什么情况下需要进行解压操作,什么情况下,可以直接启用应用。
为了确保解压后的数据正确、且正常运行,上述智能卡对压缩后的方法组件数据进行解压缩,得到方法组件数据包括如下步骤:(1)智能卡采用上述数据压缩算法对应的解压算法,对压缩后的方法组件数据进行解压缩;(2)智能卡获取解压后的数据对应的校验值;(3)当获取的校验值和上述压缩记录信息的组件标识信息中的校验值一致时,智能卡确定解压后的数据为上述方法组件数据。如果上述校验值为数据的摘要值,则解压后获取的校验值也是采用上述消息摘要算法对解压后的数据计算的摘要值。上述方式通过比较解压后的校验值和压缩记录信息的组件标识信息中的校验值,可以确保解压数据的正确,进而使当前应用正常运行。
为了获取与应用相关的个人数据,上述智能卡对压缩后的方法组件数据进行解压缩之后,上述方法还包括如下步骤:智能卡在自身的存储区内查找是否保存有与组件标识信息对应的个人数据;如果是,智能卡从上述个人数据的存储地址提取所述个人数据;如果否,智能卡向可信任服务平台获取组件标识信息对应的个人数据,将获取到的个人数据保存至方法组件数据对应的位置。具体地,上述个人数据可以使用该应用对应的注册表中记录的个人数据存储地址的内容;上述方式可以便捷地获取与当前应用相关的个人数据,避免了智能卡重复向可信任服务平台获取个人数据。
完成上述解压操作后,即可以得到该应用的方法组件数据,通过上述个人数据的获取方式可以得到该应用的个人数据,而其它组件数据(类组件、静态组件和导出组件)则可以采用相关技术直接获取(例如,根据其他组件数据保存的地址直接提取,当然,其它组件数据的存储地址等信息可以写入注册表中),进而可以保障该应用的正常启动运行。
进一步,为了避免当应用被删除时,个人数据的丢失,本发明实施例在实际实现时,上述方法还包括如下步骤:(1)当接收到删除应用指令时,智能卡从应用指令中提取欲删除的应用的应用标识符;(2)智能卡将提取到的应用标识符对应的组件标识信息和个人数据保留,并转移至指定位置;(3)智能卡删除提取的应用标识符对应的方法组件数据和压缩记录信息。通过上述方法可以把删除的应用所对应组件标识信息和个人数据暂时保存,以便当该应用再次安装时,快速获取相关个人数据。
优选地,为了可靠、便捷地保存和获取相关压缩记录信息,上述智能卡保存压缩记录信息,包括如下步骤:(1)智能卡以注册表的形式保存压缩记录信息;其中,该注册表包括:组件标识信息对应的表项、压缩后的方法组件数据的存储地址表项、压缩后的方法组件数据的长度表项和个人数据保存位置的表项;(2)智能卡在注册表中设置上述个人数据保存的指定位置的。上述通过注册表的方式可以准确地保存相关压缩记录信息,并且当该信息使用时,智能卡可以便捷地获取相关信息。
实施例2
对应于上述方法实施例,本发明实施例提供了一种智能卡存储数据的装置,参见图3所示的一种智能卡存储数据的装置的结构示意图,该装置包括如下部分:
应用数据包接收模块32,用于接收可信任服务平台发送的应用数据包;其中,该智能卡为独立的芯片卡或者嵌入于移动终端内的安全芯片卡,该应用数据包包括方法组件数据;
组件标识信息获取模块34,与上述应用数据包接收模块32连接,用于获取方法组件数据对应的组件标识信息;其中,该组件标识信息包括:应用数据包的应用标识符和方法组件数据的校验值;
压缩模块36,与上述组件标识信息获取模块34连接,用于采用数据压缩算法将方法组件数据进行压缩;其中,该数据压缩算法包括游程编码算法或哈弗曼编码算法;
保存模块38,与上述压缩模块36连接,用于保存压缩记录信息和压缩后的方法组件数据;其中,该压缩记录信息包括:组件标识信息、压缩后的方法组件数据的存储地址和压缩后的方法组件数据的长度。
本发明实施例提供的一种智能卡存储数据的装置,上述智能卡通过接收到的应用数据包内的方法组件数据对应的组件标识信息,可以获取该应用数据包的应用标识符和方法组件数据的校验值等数据;智能卡通过数据压缩算法将方法组件数据进行压缩,并将上述组件标识信息等压缩记录信息和压缩后的方法组件数据进行保存;上述方式可以降低应用数据包占据的存储空间,提高智能卡存储空间利用率,增加智能卡的应用安装数量,进而提升用户对智能卡的服务体验。
考虑到智能卡中的应用在使用时需要验证解压后的应用数据是否正确,上述组件标识信息获取模块,如图4所示,包括如下部分:
应用标识符提取单元42,用于从应用数据包中提取应用数据包的应用标识符;
原始摘要值计算单元44,用于采用消息摘要算法计算方法组件数据的原始摘要值,将原始摘要值作为方法组件数据的校验值,该原始摘要值记录有方法组件数据的摘要信息。
通过上述方式可以获取应用数据包在压缩之前的应用标识符和始摘要值,用以对解压缩后的数据进行校验。
实施例3
对应于上述实施例1或实施例2,本发明实施例提供了一种智能卡,该智能卡包括上述智能卡存储数据的装置;上述实施例1中提供的一种智能卡存储数据的方法可以应用于该智能卡中;参见图5所示的一种智能卡的结构示意图;上述实施例2中提供的一种智能卡存储数据的装置可以设置于该智能卡中压缩/解压模块50中;压缩/解压模块50能够完成方法组件的数据压缩存储、方法组件数据的解压执行以及支持个人数据的恢复等功能。
另外,该智能卡还包括第三方应用存储区52、主/附安全域54、GP(GlobalPlatform,全球平台组织)管理平台56、JavaCard平台58(该JavaCard平台也称为虚拟机或运行环境)和驱动器59(该驱动器也称为Driver&OS驱动)
上述智能卡中的应用数据主要包括应用组件信息及应用个人数据两部分;该应用组件信息主要包括应用使用的Java类属性,应用执行逻辑等,主要用于Java虚拟机解析;应用个人数据存储了不同用户的个性化信息,该信息可以包括姓名、卡号、消费余额、消费记录等数据;用户通过银行或其他运营机构的可信任服务管理平台TSM(相当于实施例1中的可信任服务平台)下载应用后,通过上述GP管理平台可以完成应用组件的安装,同时请求TSM下发用户的个人数据写入当前应用对应的存储区域中;智能卡完成个人数据的写入后,用户可以正常使用该智能卡内的应用。应用的组件信息以及应用个人数据都存储在卡片中非易失性存储器中。应用的删除将回收应用的组件信息及应用数据。
实施例4
为了进一步对上述本发明实施例提供的一种智能卡存储数据的方法、装置和智能卡进行说明,本发明实施例提供了一种高空间利用率的Java智能卡,该Java智能卡可以使用上述方法实施例提供的一种智能卡存储数据的方法对数据进行压缩、解压和保存等处理;该Java智能卡相当于实施例3中提供的一种智能卡。在上述Java智能卡中,应用的组件信息可以通过数据压缩后的方式进行存储,且在应用使用过程中将组件信息解压,减少了每个应用的存储空间;而当应用需要临时删除时,可暂时保存个人数据,当应用重新安装后能够继续使用。
第三方应用的应用代码通过卡外虚拟机生成CAP文件,该CAP文件包含12个不同的组件信息,该组件信息根据GP管理平台发出的指令,按照一定的下载顺序下载至上述Java智能卡中,该Java智能卡存储成保存类组件、方法组件、静态组件、导出组件等共4个组件;其中,该应用的执行逻辑存在在上述方法组件中;该方法组件是在应用的生命周期内时不会改变的数据,并且也是占用空间最大的部分。由于智能卡是一种单线程的模式,在一次使用过程中一般只有一个应用处于激活状态,其他的应用数据及组件信息将不会被使用,因此将不使用的应用数据中的方法组件进行压缩保存,可以大大降低应用数据占用的存储空间。
具体地,上述Java智能卡在应用下载时实现对方法组件的压缩存储,并记录下原有方法组件的校验值用于解压验证;当外部终端试图选择该应用时,Java智能卡能够通过数据解压算法完成方法组件信息的恢复,比对恢复数据校验值与原方法组件信息的校验值;当应用重新安装后,Java智能卡使用原有的个人数据。
Java智能卡应用的下载可以通过字节流的指令下发至卡片解析完成。当Java智能卡接收下载指令时,Java智能卡在卡片的存储区内开辟应用信息注册表的空间,同时写入下载应用的应用身份AID(ApplicationIdentity)标识符,随后解析字节流中的方法组件内容;当接收完方法组件信息后,通过HASH摘要算法(该HASH摘要算法包括SHA-1算法和MD5算法)对整个方法组件的信息进行一次摘要计算,并将摘要结果以及原始长度写入注册表内,随后对方法组件信息进行压缩算法处理进压缩结果写入分配的地址中,完成后将压缩结果所在的地址写入注册表项。当应用安装时,将应用安装过程的应用数据所在地址写入注册表相应项中;其中,上述HASH摘要算法可以对原始数据进行一系列的算数运算;对于不同的数据,计算出来的摘要结果不一样,因此摘要运算通常可以检验数据的完整性。
上述应用信息注册表(相当于上述实施例1中的注册表)如表1所示:
表1
该应用信息注册表中,应用标识符AID用于记录该应用的标识名称;方法组件长度Method Len记录了原始方法组件所占用的空间;方法组件摘要值Hash记录了原始方法组件信息的摘要结果,用于校验解压所否正确;压缩后长度Compress Len记录了压缩后数据长度,用于后期回收空间;压缩数据地址Method Addr记录了压缩方法组件的存放地址;应用数据地址App Addr存放应用个人数据存放地址,用于恢复应用数据。
实施例5
本发明实施例提供了一种智能卡存储数据的具体方法,该方法可以对上述实施例1中的一种智能卡存储数据的方法进行具体的说明;该方法还可以应用于实施例3提供的一种智能卡中;上述一种智能卡存储数据的具体方法包括如下步骤:
(1)当用户请求下载智能卡应用后,可信任服务平台TSM下发CAP下载指令数据包内容至智能卡内;
(2)智能卡接收完方法组件后,计算方法组件HASH校验值并存储;同时利用数据压缩算法将方法组件信息进行压缩并存储,完成应用安装;上述数据压缩算法可以采用游程编码算法RLE或者哈夫曼编码算法,以RLE算法为例,当下载的方法组件信息片段如下:
18 | 20 | 7A | A4 | A4 | A4 | A4 | A4 | A4 | A4 | 70 | FF | FF | FF | FF | FF | 7A |
上述信息片段经过压缩后如下:
18 | 20 | 7A | 00 | 07 | A4 | 70 | 00 | 05 | FF | 7A |
上述RLE算法中将连续的7个‘A4’编码为00 07 A4,‘00’标识压缩开始,‘07’表明连续出现字符的长度,‘A4’表明连续出现的字符。
(3)可信任服务平台TSM下发用户的应用个人数据并写入应用数据中,完成应用个人化。
(4)用户在使用应用时,智能卡根据终端选择应用的AID,根据该AID查找应用方法组件的压缩内容存放位置,并调用解压算法还原方法组件;当上述方法组件还原完成后,计算方法组件HASH结果,并与原数据HASH结果比对。如果HASH结果正确,执行后续操作;如果HASH结果错误,返回错误状态码;移动终端可根据状态码提示用户应用数据损坏,可重新下载安装应用并保留个人数据;或者提示用户删除应用数据重新安装。
(5)当解压还原成功后,智能卡记录当前还原的应用AID,若下次相同应用请求服务时,可避免重复的解压还原过程。
(6)在应用安装过程中,如果智能卡存储空间不足,智能卡返回错误状态码;移动终端可根据状态码提示用户当前智能卡存储空间不足,可选择临时删除不使用的智能卡应用并保留用户数据或者完整删除应用。
(7)当用户选择临时删除应用时,智能卡将回收应用的组件信息所占用的空间,原应用个人数据将保存;当用户再次安装已删除应用时,智能卡将查找卡片内已有的智能卡应用数据;如果卡片内没有找到原始的应用数据,则提示用户申请新的个人数据;如果存在个人数据,则比对新安装应用的方法组件HASH结果是否与原HASH结果相同;若相同则使用原有个人数据,若不同(可能由于应用更新)则提示用户申请新的个人数据;另外,当应用更新后,新安装应用的方法组件HASH结果与原HASH结果也会不相同,此时也会提示用户申请新的个人数据。
实施例6
本发明实施例提供了另一种智能卡存储数据的具体方法;该方法可以对上述实施例1中的一种智能卡存储数据的方法进行具体的说明;该方法还可以应用于实施例3提供的一种智能卡中;该方法以用户新申请下载商城积分应用为例进行说明,参见图6所示的一种智能卡数据传输系统的结构示意图,该系统包括智能卡60、内置eSE64、智能终端62和远程可信任服务平台66;其中,智能卡60通过近场通信技术NFC与上述智能终端进行数据传输;上述内置eSE64嵌入于智能终端62内,通过输入输出端口IO与智能终端62进行数据传输;上述智能终端通过网络与远程可信任服务平台66进行数据传输。
以上述一种智能卡数据传输系统为基础,参见图7所示的一种智能卡应用安装方法的流程图,该方法包括如下步骤:
步骤S702,智能终端发起安装请求;
步骤S704,智能卡与服务器互认证;
在该步骤中,智能终端向远程TSM平台发起更新请求,服务器首先与卡片进行互认证(服务器生成8字节随机数下发至智能卡,智能卡用卡内密钥对8字节服务端随机数进行加密,生成服务端密文,同时生成智能卡随机数随同服务端密文返回服务器,该服务器接收后校验服务端密文是否与自身密钥加密所得结果一致,若不相同,则认证失败,结束请求;若相同,则对收到的卡片随机数使用服务端密钥进行加密得到卡片密文返回智能卡,智能卡接收后校验卡片密文是否与自身密钥加密卡片随机数所得结果一致,若不相同,拒绝后续指令,若相同,则互认证通过);
步骤S706,服务器下发安装数据;其中,远程TSM平台下发应用的安装数据报文至终端,终端转发至智能卡进行安装;
步骤S708,智能卡计算应用方法组件HASH;即,计算智能卡内方法组件的摘要结果;
步骤S710,智能卡存储压缩方法组件数据;
步骤S712,智能卡判断智能卡内部的存储区是否存在应用个人化数据;如果是,执行步骤S714;如果否,执行步骤S716;
根据应用的AID查找卡片内是否存在商城积分的应用个人化数据,如果是新安装的应用,则智能卡内不存在个人化数据,则提示终端该应用待个人化;并将之前计算的方法组件的HASH结果存储在智能卡注册表中;
步骤S714,智能卡判断原方法HASH结果是否与当前计算的HASH一致;如果是,执行步骤S718;如果否,执行步骤S716;
步骤S716,智能卡请求服务器下发个人化数据;即,终端请求后,TSM下发用户的个人化信息至智能卡完成应用的个人化;
步骤S718,智能卡存储个人化数据。
以上述一种智能卡数据传输系统为基础,参见图8所示的一种智能卡应用使用方法的流程图,该方法包括如下步骤:
步骤S802,服务终端发起选择应用指令;
步骤S804,智能卡获取选择应用AID;
步骤S806,智能卡查找当前已解压的应用AID;
步骤S808,智能卡判断已解压应用AID是否与待选择应用AID相同;如果是,执行步骤S816;如果否,执行步骤S810;
步骤S810,智能卡根据AID查找注册表内压缩方法组件所在地址;
步骤S812,智能卡调用解压算法还原方法组件;
步骤S814,智能卡修改已解压应用AID记录为当前AID;
考虑到存储空间的原因,在具体应用中,一般处于解压状态的应用的个数优选为一个,因此在使用的时候会将压缩内容还原,但是原压缩内容会被保留,如果智能卡收到来自不同应用的请求时,会解压其他应用数据来替换这部分的原始方法组件。同时,出于节约时间的考虑,压缩算法可以只在下载应用的时候调用。当然为了更加省空间的考虑,每次解压完后将压缩内容删除也是可行的。
步骤S816,智能卡执行后续服务指令。
具体地,用户在商场使用积分应用时,商场终端首先发起选择应用指令并附带应用的AID,智能卡获取AID后查找应用的数据存放地址;若当前应用之前已完成解压还原,则跳过解压还原过程;若之前还原的应用不是商城积分应用,则开始调用解压算法对该应用方法组件进行还原,还原完成后重新计算方法组件的HASH结果,该HASH结果与压缩前的HASH比对一致之后,应用可正常执行应用逻辑;若不一致,说明数据损坏,提示应用重新安装商城积分应用。
当智能卡空间不足时,用户试图临时删除商城积分应用,智能卡将删除压缩的方法组件但保留应用的个人化数据、HASH结果和AID等数据,供之后重新安装时使用。
本发明实施例提供了一种智能卡存储数据的方法、装置和智能卡,能够减少智能卡内应用占用的空间,提升应用安装数量,进而使用户享受到更多的智能卡服务,避免用户更换卡片,减少用户成本。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种智能卡存储数据的方法,其特征在于,包括:
智能卡接收可信任服务平台发送的应用数据包;其中,所述智能卡为独立的芯片卡或者嵌入于移动终端内的安全芯片卡,所述应用数据包包括方法组件数据;
所述智能卡获取所述方法组件数据对应的组件标识信息;其中,所述组件标识信息包括:所述应用数据包的应用标识符和所述方法组件数据的校验值;
所述智能卡采用数据压缩算法将所述方法组件数据进行压缩;其中,所述数据压缩算法包括游程编码算法或哈弗曼编码算法;
所述智能卡保存压缩记录信息和压缩后的所述方法组件数据;其中,所述压缩记录信息包括:所述组件标识信息、压缩后的所述方法组件数据的存储地址和压缩后的所述方法组件数据的长度。
2.根据权利要求1所述的方法,其特征在于,所述智能卡获取所述方法组件数据对应的组件标识信息包括:
所述智能卡从所述应用数据包中提取所述应用数据包的应用标识符;
所述智能卡采用消息摘要算法计算所述方法组件数据的原始摘要值,将所述原始摘要值作为所述方法组件数据的校验值,所述原始摘要值记录有所述方法组件数据的摘要信息。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述智能卡接收启用所述应用数据包对应的应用的请求消息,所述请求消息携带有所述应用数据包的应用标识符;
当所述请求消息中的应用标识符对应的解压标识为未解压时,所述智能卡根据保存的所述压缩记录信息获取所述请求消息中的应用标识符对应的压缩后的所述方法组件数据;
所述智能卡对压缩后的所述方法组件数据进行解压缩,得到所述方法组件数据;
所述智能卡记录所述应用标识符对应的解压标识为已解压。
4.根据权利要求3所述的方法,其特征在于,所述智能卡对压缩后的所述方法组件数据进行解压缩,得到所述方法组件数据包括:
所述智能卡采用所述数据压缩算法对应的解压算法,对压缩后的所述方法组件数据进行解压缩;
所述智能卡获取解压后的数据对应的校验值;
当获取的所述校验值和所述压缩记录信息的组件标识信息中的所述校验值一致时,所述智能卡确定所述解压后的数据为所述方法组件数据。
5.根据权利要求3所述的方法,其特征在于,所述智能卡对压缩后的所述方法组件数据进行解压缩之后,所述方法还包括:
所述智能卡在自身的存储区内查找是否保存有与所述组件标识信息对应的个人数据;
如果是,智能卡从所述个人数据的存储地址提取所述个人数据;
如果否,所述智能卡向所述可信任服务平台获取所述组件标识信息对应的个人数据,将获取到的所述个人数据保存至所述方法组件数据对应的位置。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当接收到删除应用指令时,所述智能卡从所述应用指令中提取欲删除的应用的应用标识符;
所述智能卡将提取到的所述应用标识符对应的组件标识信息和个人数据保留,并转移至指定位置;
所述智能卡删除提取的所述应用标识符对应的方法组件数据和所述压缩记录信息。
7.根据权利要求6所述的方法,其特征在于,所述智能卡保存压缩记录信息包括:
所述智能卡以注册表的形式保存压缩记录信息;其中,所述注册表包括:组件标识信息对应的表项、压缩后的所述方法组件数据的存储地址表项、压缩后的所述方法组件数据的长度表项和个人数据保存位置的表项;
所述智能卡在所述注册表中设置所述个人数据保存的指定位置。
8.一种智能卡存储数据的装置,其特征在于,包括:
应用数据包接收模块,用于接收可信任服务平台发送的应用数据包;其中,所述智能卡为独立的芯片卡或者嵌入于移动终端内的安全芯片卡,所述应用数据包包括方法组件数据;
组件标识信息获取模块,用于获取所述方法组件数据对应的组件标识信息;其中,所述组件标识信息包括:所述应用数据包的应用标识符和所述方法组件数据的校验值;
压缩模块,用于采用数据压缩算法将所述方法组件数据进行压缩;其中,所述数据压缩算法包括游程编码算法或哈弗曼编码算法;
保存模块,用于保存压缩记录信息和压缩后的所述方法组件数据;其中,所述压缩记录信息包括:所述组件标识信息、压缩后的所述方法组件数据的存储地址和压缩后的所述方法组件数据的长度。
9.根据权利要求8所述的装置,其特征在于,所述组件标识信息获取模块包括:
应用标识符提取单元,用于从所述应用数据包中提取所述应用数据包的应用标识符;
原始摘要值计算单元,用于采用消息摘要算法计算所述方法组件数据的原始摘要值,将所述原始摘要值作为所述方法组件数据的校验值,所述原始摘要值记录有所述方法组件数据的摘要信息。
10.一种智能卡,其特征在于,包括权利要求8或9中所述的智能卡存储数据的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610644982.7A CN106293529A (zh) | 2016-08-08 | 2016-08-08 | 一种智能卡存储数据的方法、装置和智能卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610644982.7A CN106293529A (zh) | 2016-08-08 | 2016-08-08 | 一种智能卡存储数据的方法、装置和智能卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106293529A true CN106293529A (zh) | 2017-01-04 |
Family
ID=57666643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610644982.7A Pending CN106293529A (zh) | 2016-08-08 | 2016-08-08 | 一种智能卡存储数据的方法、装置和智能卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293529A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446785A (zh) * | 2018-10-15 | 2019-03-08 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其个人化数据的存储管理方法 |
CN109445815A (zh) * | 2018-10-15 | 2019-03-08 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其应用升级方法 |
CN110166452A (zh) * | 2019-05-21 | 2019-08-23 | 东信和平科技股份有限公司 | 一种基于JavaCard共享接口的访问控制方法及系统 |
CN110727720A (zh) * | 2019-10-21 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 列表显示及查询方法、装置、存储介质和计算机设备 |
CN114968312A (zh) * | 2022-07-12 | 2022-08-30 | 紫光同芯微电子有限公司 | 用于变更智能卡cap文件的方法、装置及系统 |
CN116827691A (zh) * | 2023-08-29 | 2023-09-29 | 紫光同芯微电子有限公司 | 用于数据传输的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687900A (zh) * | 2005-06-16 | 2005-10-26 | 北京航空航天大学 | 智能卡运行环境的控制方法 |
CN101510332A (zh) * | 2008-12-25 | 2009-08-19 | 北京握奇数据系统有限公司 | 一种智能卡中存储空间的管理方法和装置 |
-
2016
- 2016-08-08 CN CN201610644982.7A patent/CN106293529A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687900A (zh) * | 2005-06-16 | 2005-10-26 | 北京航空航天大学 | 智能卡运行环境的控制方法 |
CN101510332A (zh) * | 2008-12-25 | 2009-08-19 | 北京握奇数据系统有限公司 | 一种智能卡中存储空间的管理方法和装置 |
Non-Patent Citations (2)
Title |
---|
MIN-SIK JIN: "A study on how to reduce time and space by redefining new bytecode for Java card", 《PROCEEDINGS OF THE 11TH IEEE INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS》 * |
向文等: "基于混合模式的Java卡字节码优化器", 《计算机工程与科学》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446785A (zh) * | 2018-10-15 | 2019-03-08 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其个人化数据的存储管理方法 |
CN109445815A (zh) * | 2018-10-15 | 2019-03-08 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其应用升级方法 |
CN109446785B (zh) * | 2018-10-15 | 2019-11-08 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其个人化数据的存储管理方法 |
CN110166452A (zh) * | 2019-05-21 | 2019-08-23 | 东信和平科技股份有限公司 | 一种基于JavaCard共享接口的访问控制方法及系统 |
CN110166452B (zh) * | 2019-05-21 | 2022-03-04 | 东信和平科技股份有限公司 | 一种基于JavaCard共享接口的访问控制方法及系统 |
CN110727720A (zh) * | 2019-10-21 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 列表显示及查询方法、装置、存储介质和计算机设备 |
CN110727720B (zh) * | 2019-10-21 | 2023-06-20 | 腾讯科技(深圳)有限公司 | 列表显示及查询方法、装置、存储介质和计算机设备 |
CN114968312A (zh) * | 2022-07-12 | 2022-08-30 | 紫光同芯微电子有限公司 | 用于变更智能卡cap文件的方法、装置及系统 |
CN114968312B (zh) * | 2022-07-12 | 2022-11-22 | 紫光同芯微电子有限公司 | 用于变更智能卡cap文件的方法、装置及系统 |
CN116827691A (zh) * | 2023-08-29 | 2023-09-29 | 紫光同芯微电子有限公司 | 用于数据传输的方法及系统 |
CN116827691B (zh) * | 2023-08-29 | 2024-02-02 | 紫光同芯微电子有限公司 | 用于数据传输的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293529A (zh) | 一种智能卡存储数据的方法、装置和智能卡 | |
US20200174801A1 (en) | Information processing apparatus, ic chip, information processing method, program, and information processing system | |
US9456027B2 (en) | Methods, secure element, server, computer programs and computer program products for improved application management | |
US8555060B2 (en) | Managing method, device and terminal for application program | |
CN107273148B (zh) | 数据的更新驱动迁移 | |
CN107864109B (zh) | 一种nfc智能卡应用数据迁移方法 | |
CN103455349A (zh) | 应用程序访问智能卡的方法和装置 | |
US20190335017A1 (en) | Limited-resource java card device | |
CN107526608A (zh) | 一种ota升级包升级方法及设备 | |
CN109977039A (zh) | 硬盘加密密钥存储方法、装置、设备及可读存储介质 | |
US20090065325A1 (en) | Smart Card Customization | |
CN112416391A (zh) | 系统升级方法、装置、计算机设备和存储介质 | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN114238883A (zh) | 一种身份验证方法、装置、设备及存储介质 | |
WO2016063659A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN106228090A (zh) | 一种多主安全域Java智能卡及其实现方法 | |
EP4280053A1 (en) | Method and system for upgrading firmware of vehicle infotainment system | |
CN104504324B (zh) | 移动应用认证加固方法和系统 | |
CN103309758B (zh) | 一种卡应用下载的方法、系统和装置 | |
US10387054B2 (en) | Secure element including a non-volatile memory and methods for saving and restoring data including defragmenting and compressing data stored in occupied and free regions | |
CN109002710B (zh) | 一种检测方法、装置及计算机可读存储介质 | |
CN101227682A (zh) | 一种保护终端中数据安全的方法及装置 | |
CN109618327B (zh) | 一种软体适配的方法和装置、电子设备、可读存储介质 | |
CN108990046B (zh) | 移动网络的连接方法 | |
US10489775B2 (en) | Integrated circuit card adapted to transfer first data from a first application for use by a second application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |
|
RJ01 | Rejection of invention patent application after publication |