一种适用于多种加密标准的智能卡及其认证方法

文档序号:7884276阅读:226来源:国知局
专利名称:一种适用于多种加密标准的智能卡及其认证方法
技术领域
本发明涉及智能卡技术领域,尤其涉及一种适用于多种加密标准的智能卡及其认证方法。
背景技术
七十年代微电子技术的发展使制造信用卡格式的无用户接口的集成电路成为可能,这种带集成电路的信用卡成为智能卡。在智能卡中,可将数据存储器和逻辑单元集成在一个芯片中,该芯片的尺寸为几平方毫米。智能卡按照使用方式可以分为接触和非接触两大类。无论接触或非接触都需要具有很高的安全性和可靠性。
现今,智能卡主要被认为是保存机密数据的安全之处和运行加密算法的安全保密平台。智能卡中的数据和算法被认为拥有较高安全性的原因就是卡的硬件结构和延伸到智能卡外部的接口。从外面来看,智能卡的功能只能通过定义明确的软硬件接口被访问,这样智能卡就必须遵守某一安全策略。一方面,数据的访问可被设定在某种权限,从外部对机密数据的访问,如安全密钥等,可能被完全禁止。另一方面,智能卡不需要从外部进行个人操作就能执行算法。而智能卡中的算法自身也会得到保护,以防被修改或被读取。除了这些,智能卡还能够通过引入随机数和设定多个分级密钥来加强安全性。
在智能卡中,特别是非接触智能卡中,通常通过认证的方法,即通过对一个安全密钥作加密运算,并通过比较结果来保证访问的合法性,然后通过对智能卡和读卡机的通讯加密来保证数据的安全。其中,每次交易都会引入随机数而使加密过程不重复,并且通常对存储器的不同区域,智能卡会设定多套密钥。在同一个区域,智能卡也支持不同权限的两种密钥。
图1显示的是现有的支持一种加密标准的非接触智能卡的电路结构框图。如图1所示,非接触智能卡1通常由模拟接口模块11、逻辑控制模块12、加密模块13以及存储器14四个主要模块组成,其中逻辑控制模块12分别与模拟接口模块11、加密模块13以及存储器14连接在一起。加密模块13又进一步包含随机数产生模块131、加密算法模块132和判断电路模块133这三个子模块。
图2显示的是现有的支持一种加密标准的非接触智能卡的加密模块的电路结构框图。如图2所示,随机数产生模块131随机产生一个随机数并将该随机数传送到加密算法模块132中,由加密算法模块132按照加密算法对输入的随机数、非接触智能卡本身所具有的识别码和密钥、以及读卡机产生的随机数进行加密,得到智能卡1的加密流。接着,将得到的智能卡1的加密流与读卡机的加密流同时输入到判断电路模块133中,由判断电路模块133将两者进行比较,获得一个判断标志,根据判断标志判断读卡机与智能卡1之间是否匹配合法。
因此,一般来说,每种智能卡的加密算法是不同的,因此就会出现不同的加密标准。通常,一种智能卡仅支持一种加密算法,不同的加密算法标准下的读卡机和智能卡不能通用。
另外,为了生产和维护多种加密标准的智能卡和读卡机也是一件非常困难的事。因此,追求一种通用的支持多加密标准的电子设备系统一直是电子业界追求的目标。
为此,本发明提供了一种适用于多种加密标准的智能卡及其认证方法。

发明内容
本发明的目的在于提供一种适用于多种加密标准的智能卡及其认证方法,该智能卡及其认证方法能够在保证安全性的前提下,提高智能卡在多种加密标准下的通用性。
本发明的一种适用于多种加密标准的智能卡的认证方法包含以下步骤a、智能卡产生一个随机数,所述随机数与智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数按照n种不同的加密算法进行加密,分别获得n个具有不同加密标准的加密流,其中n是大于1的正整数;b、智能卡将步骤a中所获得的n个具有不同加密标准的加密流分别与读卡机的加密流进行比较,获得n个判断标志;c、根据步骤b中获得的n个判断标志,智能卡判断认证是否成功,若成功,则智能卡从步骤a获得的n个具有不同加密标准的加密流中选择与所述读卡机的加密标准对应的加密流作为本次操作过程中的加密流,若失败,智能卡结束操作。
其中,步骤a中的密钥指的是智能卡本身所具有的针对需要访问的存储器的特定密钥。步骤b中的读卡机的加密流是由读卡机按照相应加密算法对其自身产生的随机数,智能卡产生的随机数,以及智能卡本身所具有的识别码和密钥进行加密后获得的。
步骤b进一步包含以下步骤b1、当智能卡获得的加密流与读卡机的加密流相同时,智能卡获得的判断标志为“成功”;b2、当智能卡获得的加密流与读卡机的加密流不相同时,智能卡获得的判断标志为“失败”。
步骤c进一步包含以下步骤c1、当判断标志中有“成功”标志时,智能卡认证成功,智能卡选择具有所述“成功”判断标志的加密流作为本次操作过程中的加密流;c2、当判断标志中全为“失败”标志时,智能卡认证失败。
本发明的一种适用于多种加密标准的智能卡包含模拟接口模块、逻辑控制模块,加密模块以及存储器,逻辑控制单模块分别与模拟接口模块、加密模块以及存储器连接在一起,其中加密模块进一步包含随机数产生模块,用于随机产生一个随机数;n个加密算法模块,分别与随机数产生模块连接在一起,且每个加密算法模块中都含有一种不同的加密算法,用于将随机数产生模块产生的随机数与智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数按照n种不同的加密算法进行加密,获得n个具有不同加密标准的加密流,其中n是大于1的正整数;n个判断电路模块,分别与n个加密算法模块对应,并连接在一起,用于将由n个加密算法模块获得的n个具有不同加密标准的加密流分别与读卡机的加密流进行比较,获得n个判断标志;一个认证判断和加密流选择模块,与n个判断电路模块分别连接在一起,用于根据n个判断电路模块中分别获得的n个判断标志,判断认证是否成功,并在认证成功的情况下,选择与读卡机的加密标准对应的加密流作为本次操作过程中的加密流。
本发明的一种适用于多种加密标准的智能卡及其认证方法,使得同一个非接触或接触式智能卡可以和使用不同加密标准的电子设备之间进行识别和数据交换,而不必针对每个标准使用不同标准的非接触或接触式智能卡,而且本发明同时可以大大降低生产和维护多个不同标准的电子设备的工作和成本。


图1是现有的支持一种加密标准的非接触智能卡的电路结构框图;图2是图1所示的非接触智能卡的加密模块的电路结构框图;图3是本发明的适用于多种加密标准的非接触智能卡的电路结构框图;图4是图3所示的非接触智能卡的加密模块的电路结构框图;
图5是图3所示的非接触智能卡的认证判断和加密流选择模块的电路结构图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的说明。
图3显示的是本发明的适用于多种加密标准的非接触智能卡的电路结构框图。图4显示的是图3所示的非接触智能卡的加密模块的电路结构框图。如图3所示,本发明的适用于多种加密标准的非接触智能卡3包含一个模拟接口模块31,一个逻辑控制模块32,一个加密模块33以及一个存储器34,逻辑控制模块32分别与模拟接口模块31、加密模块33以及存储器34连接在一起。
其中,模拟接口模块31在整个非接触智能卡3中主要用于实现非接触智能卡3与读卡机之间的信息交换,并从读卡机中获取运行该非接触智能卡3所需的电源能量,它是非接触智能卡3与读卡机进行通信的主要接口设备;逻辑控制模块32主要用于根据实际需要执行各种操作指令,使非接触智能卡3能够在指令控制下实现各种操作,这些操作指令是读卡机与非接触智能卡3之间预先就约定好的;存储器34主要用于存储非接触智能卡3在操作的过程中产生的各种信息和数据;加密模块33是本发明的核心,它主要用于实现非接触智能卡3与读卡机之间的认证过程,判断非接触智能卡3与读卡机之间是否合法,并产生一个保证读卡机与非接触智能卡3之间通信安全的加密流。
现以两种加密标准为例进行说明,如图3所示,加密模块33进一步包含一个随机数产生模块331,两个加密算法模块332、333,即加密算法1模块332和加密算法2模块333,两个判断电路模块334、335,即判断电路1模块334和判断电路2模块335,以及一个认证判断和加密流选择模块336。
其中,随机数产生模块331主要用于产生一个随机数,并将产生的随机数同时传送给加密算法1模块332和加密算法2模块333;两个加密算法模块332、333,即加密算法1模块332和加密算法2模块333,分别与随机数产生模块331连接在一起,其中加密算法1模块332中具有加密算法1,而加密算法2模块333中具有加密算法2,加密算法1和加密算法2是两种不同的加密算法。结合图4所示,加密算法1模块332用于按照加密算法1对输入的由随机数产生模块331产生的随机数,智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数进行加密,获得具有加密标准1的加密流,并将该加密流传送给判断电路1模块334和认证判断和加密流选择模块336;同理,加密算法2模块333用于按照加密算法2对输入的由随机数产生模块331产生的随机数,智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数进行加密,获得具有加密标准2的加密流,并将该加密流传送给判断电路2模块335和认证判断和加密流选择模块336。
两个判断电路模块334、335,即判断电路1模块334和判断电路2模块335,由于判断电路模块中的比较电路与加密算法模块中的加密算法是相互对应并相互匹配的,因此两个判断电路模块334、335分别与两个加密算法模块332、333对应连接在一起,即判断电路1模块334与加密算法1模块332连接,而判断电路2模块335与加密算法2模块333连接。判断电路1模块334用于将输入的由加密算法1模块332获得的具有加密标准1的加密流与读卡机的加密流进行比较,获得判断标志1,并将该判断标志1传送给认证判断和加密流选择模块336;同理,判断电路2模块335用于将输入的由加密算法2模块333获得的具有加密标准2的加密流与读卡机的加密流进行比较,获得判断标志2,并将该判断标志2传送给认证判断和加密流选择模块336认证判断和加密流选择模块336,与判断电路1模块334和判断电路2模块335分别连接在一起。用于根据判断电路1模块334中获得的判断标志1和判断电路2模块335中获得的判断标志2,判断认证是否成功,并在认证成功的情况下,从输入的具有加密标准1的加密流和具有加密标准2的加密流中,选择与读卡机的加密标准对应的加密流作为本次操作中的加密流。
在对智能卡进行合法操作之前,特别是对非接触智能卡3进行合法操作之前,出于安全上的考虑,必须通过认证的方式来确保非接触智能卡3与读卡机之间的合法性。
图4显示的是图3所示的非接触智能卡3中的加密模块33的电路结构框图。如图4所示,在认证的过程中,加密模块33会把(UID,Unique Identification)和针对需要访问的存储器34的特定的密钥来作为认证过程的起始数据。通常对存储器34的不同区域,非接触智能卡3可设定多套密钥,而且,在存储器34的同一个区域内,非接触智能卡3也可以支持不同权限的两种密钥。同时,如图4所示,在认证的过程中,还需要两个随机数作为认证过程的起始数据,其中一个随机数是由非接触智能卡3自身所产生,即由加密模块33的随机数产生模块331产生,而另一个随机数则是由读卡机产生。加入这两个随机数的主要目的是为了使读卡机与非接触智能卡3之间的每次认证过程都不一样。
如图4所示,加密算法1模块332对输入的随机数产生模块331产生的随机数、非接触智能卡3本身所具有的识别码(UID)和密钥,以及读卡机产生的随机数按照加密算法1进行加密,获得具有加密标准1的加密流,并将得到的具有加密标准1的加密流输入到判断电路1模块334和认证判断和加密流选择模块336中。判断电路1模块334将输入的具有加密标准1的加密流与读卡机的加密流进行比较,当具有加密标准1的加密流与读卡机的加密流相同时,非接触智能卡3获得的判断标志1为“成功”;当具有加密标准1的加密流与读卡机的加密流不相同时,非接触智能卡3获得的判断标志1为“失败”。接着,判断电路1模块334将得到的判断标志1输入到认证判断和加密流选择模块336中。其中读卡机的加密流是读卡机按照其与非接触智能卡3都遵循但保密的加密算法,对读卡机自身产生的随机数与非接触智能卡3产生的随机数,以及非接触智能卡3具有的识别码(UID)和密钥进行加密后产生的加密流。非接触智能卡3产生的随机数是加密模块33经由逻辑控制模块32传送到模拟接口模块31中,由模拟接口模块31传送给读卡机的。
同理,加密算法2模块333对输入的随机数产生模块331产生的随机数,与非接触智能卡3本身所具有的识别码(UID)和密钥,以及读卡机产生的随机数按照加密算法2进行加密,获得具有加密标准2的加密流,并将得到的具有加密标准2的加密流输入到判断电路2模块335和认证判断和加密流选择模块336中。判断电路2模块335将输入的具有加密标准2的加密流与读卡机的加密流进行比较,当具有加密标准2的加密流与读卡机的加密流相同时,非接触智能卡3获得的判断标志2为“成功”;当具有加密标准2的加密流与读卡机的加密流不相同时,非接触智能卡3获得的判断标志2为“失败”。接着,判断电路2模块335将得到的判断标志1输入到认证判断和加密流选择模块336中。
图5显示的是图3所示的非接触智能卡3的认证判断和加密流选择模块336的电路结构图。如图5所示,认证判断和加密流选择模块336根据由判断电路1模块334和判断电路2模块335分别输入的判断标志1和判断标志2,由或门3361判断认证是否成功,若认证成功,则认证判断和加密流选择模块336中的选择器3362从输入的具有加密标准1的加密流和具有加密标准2的加密流中,选择与读卡机的对应的加密流作为非接触智能卡3在本次操作过程中保证与读卡机之间安全通信的加密流;若认证失败,则非接触智能卡3结束操作。即,当判断标志中有“成功”标志时,则表示认证成功,非接触智能卡3选择具有该“成功”判断标志的加密流作为本次操作过程中的加密流;当判断标志中全为“失败”标志时,则表示认证失败,非接触智能卡3结束操作。因此我们可以用下表来表示

能够实现认证判断和加密流选择模块336的功能的电路结构有很多,在本实施例中,图5显示的仅是实现本发明的认证判断和加密流选择模块336的功能的其中一个具体实例,因此本发明并不局限于该实例。
综上所述,本发明的一种适用于多种加密标准的智能卡的认证方法包含以下步骤a、智能卡产生一个随机数,该随机数与智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数按照n种不同的加密算法进行加密,分别获得n个具有不同加密标准的加密流,其中n是大于1的正整数;b、智能卡将步骤a中所获得的n个具有不同加密标准的加密流分别与读卡机的加密流进行比较,获得n个判断标志;c、根据步骤b中获得的n个判断标志,智能卡判断认证是否成功,若成功,则智能卡从步骤a获得的n个具有不同加密标准的加密流中选择与读卡机的加密标准对应的加密流作为本次操作过程中的加密流,若失败,智能卡结束操作。
其中,步骤b进一步包含以下步骤b1、当智能卡获得的加密流与读卡机的加密流相同时,智能卡获得的判断标志为“成功”;b2、当智能卡获得的加密流与读卡机的加密流不相同时,智能卡获得的判断标志为“失败”。
步骤c进一步包含以下步骤c1、当判断标志中有“成功”标志时,智能卡认证成功,智能卡选择具有所述“成功”判断标志的加密流作为本次操作过程中的加密流;c2、当判断标志中全为“失败”标志时,智能卡认证失败。
本发明的一种适用于多种加密标准的智能卡包含模拟接口模块31、逻辑控制模块32,加密模块33以及存储器34,逻辑控制单模块32分别与模拟接口模块31、加密模块33以及存储器34连接在一起,其中加密模块33进一步包含随机数产生模块331,用于产生一个随机数;
n个加密算法模块,分别与所述随机数产生模块331连接在一起,且每个加密算法模块中都含有一种不同的加密算法,分别用于将随机数产生模块331产生的随机数与智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数按照n种不同的加密算法进行加密,获得n个具有不同加密标准的加密流,其中n是大于1的正整数;n个判断电路模块,分别与n个加密算法模块对应并连接在一起,用于将由n个加密算法模块获得的n个具有不同加密标准的加密流分别与读卡机的加密流进行比较,获得n个判断标志;认证判断和加密流选择模块,与n个判断电路模块分别连接在一起,用于根据n个判断电路模块获得的n个判断标志,判断认证是否成功,并在认证成功的情况下,选择与读卡机的加密标准对应的加密流作为本次操作过程中的加密流。
本发明在0.6um CMOS的工艺上采用如图3所示的本发明的适用于多种加密标准的非接触智能卡的电路结构框图,实现了自适应支持两种或两种以上的加密标准的非接触智能卡芯片,得到了很好的效果。
在本实施例中,本发明以非接触智能卡为例,但本发明并不局限于非接触智能卡,也可使用到接触智能卡上,同样,在实施例中,本发明仅以两种加密算法为例,但本发明并不局限于两种加密算法,可以是三种、四种或更多。
虽然经过对本发明结合具体实施例进行描述,对于在本技术领域熟练的人士,根据上文的叙述作出的许多替代、修改与变化将是显而易见的。因此,当这样的替代、修改和变化落入附后的权利要求的精神和范围之内时,应该被包括在本发明中。
权利要求
1.一种适用于多种加密标准的智能卡的认证方法,其特征在于,所述方法包含以下步骤a、智能卡产生一个随机数,所述随机数与智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数按照n种不同的加密算法进行加密,分别获得n个具有不同加密标准的加密流,其中n是大于1的正整数;b、智能卡将步骤a中所获得的n个具有不同加密标准的加密流分别与所述读卡机的加密流进行比较,获得n个判断标志;c、根据步骤b中获得的n个判断标志,智能卡判断认证是否成功,若成功,则智能卡从步骤a获得的n个具有不同加密标准的加密流中选择与所述读卡机的加密标准对应的加密流作为本次操作过程中的加密流,若失败,智能卡结束操作。
2.如权利要求1所述的方法,其进一步特征在于,所述步骤a中的密钥指的是智能卡本身所具有的针对需要访问的存储器的特定密钥。
3.如权利要求1所述的方法,其进一步特征在于,所述步骤b中的读卡机的加密流是由读卡机按照相应加密算法对其自身产生的随机数、智能卡产生的随机数,以及智能卡本身所具有的识别码和密钥进行加密后获得的。
4.如权利要求1所述的方法,其进一步特征在于,所述步骤b进一步包含以下步骤b1、当智能卡获得的加密流与读卡机的加密流相同时,智能卡获得的判断标志为“成功”;b2、当智能卡获得的加密流与读卡机的加密流不相同时,智能卡获得的判断标志为“失败”。
5.如权利要求4所述的方法,其进一步特征在于,所述步骤c进一步包含以下步骤c1、当判断标志中有“成功”标志时,智能卡认证成功,智能卡选择具有所述“成功”判断标志的加密流作为本次操作过程中的加密流;c2、当判断标志中全为“失败”标志时,智能卡认证失败。
6.如权利要求1~5中任一权利要求所述的方法,其进一步特征在于,所述智能卡是非接触智能卡。
7.一种适用于多种加密标准的智能卡,所述智能卡包含模拟接口模块、逻辑控制模块,加密模块以及存储器,所述逻辑控制单模块分别与所述模拟接口模块、加密模块以及存储器连接在一起,其特征在于,所述加密模块进一步包含随机数产生模块,用于产生一个随机数;n个加密算法模块,分别与所述随机数产生模块连接在一起,且每个加密算法模块中都含有一种不同的加密算法,用于将所述随机数产生模块产生的随机数与智能卡本身所具有的识别码(UID)、密钥,以及读卡机产生的随机数按照n种不同的加密算法进行加密,获得n个具有不同加密标准的加密流,其中n是大于1的正整数;n个判断电路模块,分别与所述n个加密算法模块对应,并连接在一起,用于将由所述n个加密算法模块获得的n个具有不同加密标准的加密流分别与所述读卡机的加密流进行比较,获得n个判断标志;认证判断和加密流选择模块,与所述n个判断电路模块分别连接在一起,用于根据所述n个判断电路模块获得的n个判断标志,判断认证是否成功,并在认证成功的情况下,选择与所述读卡机的加密标准对应的加密流作为本次操作过程中的加密流。
8.如权利要求7所述的智能卡,其进一步特征在于,所述密钥指的是智能卡本身所具有的针对需要访问的存储器的特定密钥。
9.如权利要求7~8中任一权利要求所述的智能卡,其进一步特征在于,所述智能卡是非接触智能卡。
全文摘要
本发明提供了一种适用于多种加密标准的智能卡及其认证方法,该智能卡及其认证方法能够在保证安全性的前提下,使得同一个非接触或接触式智能卡可以和使用不同加密标准的电子设备之间进行识别和数据交换,而不必针对每个标准使用不同标准的非接触或接触式智能卡,提高智能卡在多种加密标准下的通用性,而且本发明可以同时大大降低生产和维护多个不同标准的电子设备的工作和成本。
文档编号H04L9/14GK1625099SQ20031010908
公开日2005年6月8日 申请日期2003年12月4日 优先权日2003年12月4日
发明者张纲 申请人:上海复旦微电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1