智能卡下载密码算法的方法技术

技术编号:13145716 阅读:112 留言:0更新日期:2016-04-10 09:03
本发明专利技术公开了一种智能卡下载密码算法的方法,其中,包括:编写下载命令,存储在读写器或终端内;读写器或终端发送规定的下载命令以及待下载的包括密码算法的数据,该智能卡操作系统解析该下载命令,根据该下载指令中的FLASH地址信息,将该密码算法的数据存储在相应的FLASH地址上,将原密码算法的数据替代;如该密码算法下载完成,则将密码算法数据与操作系统的指针进行关联,形成密码算法,以便智能卡操作系统进行调用,实现加解密功能。本发明专利技术智能卡下载密码算法的方法可以提高开发人员的开发效率,降低相互依赖性,替换密码算法无需擦除智能卡的数据,也无需重装操作系统,大大降低卡片的维护成本,缩短开发周期,为用户的使用提供了便捷。

【技术实现步骤摘要】

本专利技术涉及智能卡安全
,尤其涉及一种。
技术介绍
通常情况下,智能卡操作系统(COS)处理密码算法的方法是智能卡开发人员创建一个操作系统的工程,然后直接调用密码算法开发人员提供的动态库。密码算法的开发人员需提前提供密码算法动态库供智能卡开发人员调用,然后智能卡开发人员将密码算法动态库加载到操作系统工程中,生成操作系统安装包。最终,智能卡开发人员将这个安装包安装给智能卡,生产出带有加解密功能的智能卡。上面这种方法存在一些不足之处。智能卡开发人员必须提前得到密码算法的动态库,然后才可以进行开发;另外,安装好操作系统的智能卡无法单独替换密码算法,如果想替换密码算法,只能把智能卡上的数据全部擦除,然后重装操作系统。这种方法使得密码算法和智能卡操作系统两者相互依赖,为开发工作带来了难度,不便于智能卡的管理和维护。
技术实现思路
本专利技术的目的在于提供一种,用于解决上述现有技术的问题。本专利技术一种,其中,包括:编写下载命令,存储在读写器或终端内;读写器或终端发送规定的下载命令以及待下载的包括密码算法的数据,该智能卡操作系统解析该下载命令,根据该下载指令中的FLASH地址信息,将该密码算法的数据存储在相应的FLASH地址上,将原密码算法的数据替代;如该密码算法下载完成,则将密码算法数据与操作系统的指针进行关联,形成密码算法,以便智能卡操作系统进行调用,实现加解密功能。根据本专利技术的的一实施例,其中,还包括:在该密码算法下载完成后,根据下载的密码算法的版本信息,更改密码算法版本标志,记录更改记录,并结束下载。根据本专利技术的的一实施例,其中,下载的包括密码算法的数据的过程具体包括:读写器或终端将密码算法进行数据分包,对每个数据包进行CRC校验,然后将数据包和CRC校验一起发给智能卡;智能卡操作系统对收到的信息进行解析,提取出其中的数据包,并对数据包进行CRC计算校验,然后与读写器发来的CRC校验进行比较,如果正确就继续执行,如果不正确则向读写器报错;智能卡操作系统将解析得到的数据存储到命令中指定的内存上,并向读写器发送执行成功的状态码;重复上述过程,直至密码算法下载完成。根据本专利技术的的一实施例,其中,该智能卡下载的包括密码算法的数据之前,还包括初始化调用密码算法要使用的数据结构,以确定密码算法在该智能卡片FLASH中的待存放地址。与智能卡操作系统(COS)处理密码算法的现有方法相比,本专利技术提出的技术方法可以提高开发人员的开发效率,降低相互依赖性,替换密码算法无需擦除智能卡的数据,也无需重装操作系统,大大降低卡片的维护成本,缩短开发周期,为用户的使用提供了便捷。【附图说明】图1所示为本专利技术的主流程图;图2所示为智能卡下载密码算法中下载密码算法的流程图。【具体实施方式】为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的【具体实施方式】作进一步详细描述。本专利技术的目的就是提出一种独立化下载密码算法,能够确保密码算法安全保密的,降低智能卡开发人员对密码算法依赖性,提高智能卡可维护性的密码算法后下载的COS系统设计方法。图1是本专利技术技术方法的主流程图,如图1所示,本专利技术包括:编写下载命令,存储在读写器或终端内;使用可以与智能卡通信的读写器,读写器发送规定的下载命令以及待下载的密码算法的数据,智能卡操作系统解析该下载命令,根据该下载指令中的FLASH地址信息,将该密码算法的数据存储在相应的FLASH地址上,将原密码算法的数据替代;操作系统判断该密码算法已经下载完成,将新下载的密码算法数据与操作系统的指针进行关联成密码算法,以便智能卡操作系统进行调用,实现加解密功能。对于一实施例,在密码算法下载完成后,根据下载的密码算法的版本信息,更改密码算法版本标志,记录更改记录,同时结束下载。对于一实施例,还需要在智能卡操作系统中编写独立统一的密码算法下载命令,该命令可以将读写器发给智能卡的数据下载到指定的Flash地址上(如0x3099001),从而实现密码算法的替换。智能卡开发人员将编写好的智能卡操作系统安装到智能卡中。对于一实施例,智能卡在下载密码算法之前,还进行初始化,调用密码算法要使用的数据结构,以确定密码算法在卡片FLASH中的待存放地址。在本实施例中,创建了以下数据结构:加解密函数指针:用于定位加解密函数入口地址的指针变量,使用时我们将算法的内容下载到指定好的位置,使用加解密函数指针来实现加解密函数的调用。存储密码算法版本的标志:由于密码算法在使用过程中可能会经常更改,本专利技术中将密码算法版本存储在指定的内存地址上,如果进行了更改,可以直接更换该版本标志的内容,便于开发人员进行管理和维护。对于一实施例,为了更好更可靠的实现上述密码算法后下载的过程,在密码算法下载过程中,使用校验和的方式对下载的数据进行校验,如果校验出错,则重新下载,直到下载结束。下载结束后更新密码算法版本标志,便于开发人员判断当前使用的密码算法的版本,也可以防止其重复更新相同的密码算法。图2是本专利技术中下载密码算法的流程图,密码算法的下载过程包括下列步骤:(1)读写器将密码算法进行数据分包,比如每64字节一包,顺序分包,对每个数据包计算CRC校验,然后将数据包和CRC校验一起发给智能卡,智能卡操作系统COS负责接收和解析命令。(2) COS对收到的命令进行解析,提取出其中的数据包,并对数据包进行CRC计算校验,然后与读写器发来的校验进行比较,如果正确就执行(3),如果不正确则向读写器报错。(3)C0S将解析得到的数据存储到命令中指定的内存上,并向读写器发送执行成功的状态码。(4)重复上述过程,直至密码算法下载完成,然后将版本信息写入Flash中指定的地址上,本次下载过程结束。综上,本专利技术,使用密码算法后下载的方式,智能卡操作系统开发人员无需提前获得密码算法就可以直接进行开发,密码算法开发人员无需向智能卡开发人员提供密码算法动态库,使得密码算法和智能卡操作系统这两个原本相互依赖的部分变得相互独立。使用函数指针的方法将Flash中的内容与实际的函数功能相结合,保护彼此的核心内容不被别人知道,并且方便开发人员进行开发,缩短开发周期,如果后期需要将卡片中的密码算法进行更改,本专利技术无须重新制卡,只需将新的密码算法下载到卡片中即可,大大降低了卡片的维护成本。与智能卡操作系统(COS)处理密码算法的现有方法相比,本专利技术提出的技术方法可以提高开发人员的开发效率,降低相互依赖性,替换密码算法无需擦除智能卡的数据,也无需重装操作系统,大大降低卡片的维护成本,缩短开发周期,为用户的使用提供了便捷。以上所述仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本专利技术的保护范围。【主权项】1.一种,其特征在于,包括: 编写下载命令,存储在读写器或终端内; 读写器或终端发送规定的下载命令以及待下载的包括密码算法的数据,该智能卡操作系统解析该下载命令,根据该下载指令中的FLASH地址信息,将该密码算法的数据存储在相应的FLASH地址上,将原密码算法的数据替代; 如该密码算法下载完成,则将密码算法数据与操作系统的指针进行关联,形成密码算法,以便智能卡操作系统进行调本文档来自技高网
...

【技术保护点】
一种智能卡下载密码算法的方法,其特征在于,包括:编写下载命令,存储在读写器或终端内;读写器或终端发送规定的下载命令以及待下载的包括密码算法的数据,该智能卡操作系统解析该下载命令,根据该下载指令中的FLASH地址信息,将该密码算法的数据存储在相应的FLASH地址上,将原密码算法的数据替代;如该密码算法下载完成,则将密码算法数据与操作系统的指针进行关联,形成密码算法,以便智能卡操作系统进行调用,实现加解密功能。

【技术特征摘要】

【专利技术属性】
技术研发人员:王明晖闫国玉
申请(专利权)人:中国航天科工集团第二研究院七〇六所
类型:发明
国别省市:北京;11

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

1