一种实现智能卡高速安全通讯的方法转让专利

申请号 : CN200510114881.0

文献号 : CN1968085B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡鹏

申请人 : 北京握奇数据系统有限公司

摘要 :

本发明公开了一种实现智能卡高速安全通讯的方法,用在智能卡与终端之间,包括如下步骤:在智能卡内的通讯协议中增加数据处理控制字;在智能卡初始化时,根据初始化命令中包含的控制字内容判断是否由智能卡本身执行数据加/解密处理;如果是,则智能卡通过自身的微处理器执行数据的加/解密处理,并将处理后的数据传送给终端。本发明利用智能卡上自带的微处理器完成对需要加/解密的数据的加/解密计算,有效地提高了智能卡对大数据量的处理能力。本发明可广泛应用于智能卡与终端设备的通讯上,特别是在银行、证券、保险、公安、国防等对数据安全性要求较高的应用系统中。

权利要求 :

1.一种实现智能卡高速安全通讯的方法,用在智能卡与终端之间,其特征在于:在所述智能卡内的通讯协议中增加数据处理控制字;

在所述智能卡初始化时,根据所述通讯协议中的包含所述数据处理控制字的初始化命令,对所述智能卡进行数据加/解密处理的初始化操作;

在所述智能卡初始化后,所述智能卡判断所述终端发送的数据中是否包含所述数据处理控制字;

如果是,则所述智能卡通过自身的微处理器根据数据加/解密处理的初始化值执行所述数据的加/解密处理,并将处理后的数据传送给所述终端。

2.如权利要求1所述的实现智能卡高速安全通讯的方法,其特征在于:所述初始化时,初始化命令中的数据存储到智能卡的存储器中,并反馈数据通知终端;完成数据处理后,终端向智能卡再次发送初始化命令,释放原存储在智能卡存储器中的数据。

3.如权利要求1所述的实现智能卡高速安全通讯的方法,其特征在于:所述初始化时,首先提取通道的工作方式,然后再提取通道的算法标识,从而取出通道的密钥。

4.如权利要求3所述的实现智能卡高速安全通讯的方法,其特征在于:所述智能卡根据初始化时提取的通道密钥,调用与之相关的加/解密算法进行数据的加/解密处理。

5.如权利要求4所述的实现智能卡高速安全通讯的方法,其特征在于:所述加/解密算法包括但不限于DES、3DES、RSA和SSF33。

6.如权利要求1至5中任意一项所述的实现智能卡高速安全通讯的方法,其特征在于:所述智能卡初始化和加/解密运算的过程中,通过响应报文数据域回送的状态码判断有关进程是否顺利完成。

7.如权利要求1所述的实现智能卡高速安全通讯的方法,其特征在于:所述数据处理控制字包括但不限于CLA和INS。

8.如权利要求1所述的实现智能卡高速安全通讯的方法,其特征在于:由通讯协议中的P2代码控制所述智能卡的数据通道的开闭。

9.如权利要求1所述的实现智能卡高速安全通讯的方法,其特征在于:所述智能卡与所述终端通过通用串行总线进行通讯。

10.如权利要求1所述的实现智能卡高速安全通讯的方法,其特征在于:所述智能卡通过ISO7816方式与所述终端进行通讯。

说明书 :

技术领域

本发明涉及一种实现智能卡高速、安全通讯的方法,属于数字信息传输技术领域。

背景技术

随着计算机技术和互联网技术的迅猛发展,我国的信息网络建设进入了快速发展的黄金时期,从“政府上网办公-电子政务”到“网上电子交易-电子商务”,信息网络已经渗透到人们生活的各个角落,并正逐步改变着人们的生产和生活方式。与此同时,伴随着信息网络建设的高潮而来的计算机和网络犯罪也不断出现,并日益猖獗。在网上银行多次发生假网站骗取用户密码的疯狂敛财事件。由此,人们针对在信息网络内的数据采用身份识别和加密技术的保护达成了共识,并在电子政务及电子商务系统中开始广泛使用智能卡产品,作为用户身份识别的唯一标识工具,为用户的敏感数据加上一把电子锁。但是,如何提高智能卡的数据处理速度,扩大智能卡的应用范围;如何更加安全、有效地利用智能卡对网络中传输的数据实现实时加、解密处理,从而保证用户在安全、快捷、方便的前提下享受信息网络提供的服务。以上这些就成为信息网络的建设者们需要尽快解决的问题,也是现在信息安全领域普遍关注的热点话题。
当前,全球智能卡相关技术正在快速发展,很多芯片厂家已经推出了具有USB接口的32位或更高速的智能卡芯片。如图1所示,其为一种现有的智能卡芯片的内部组成模块示意图。该智能卡芯片包括微处理器、闪存FLASH、电可擦出只读存储器EEPROM、静态存储器SRAM块、乘法协处理器模块、存储管理保护模块、安全检测与保护模块、非对称算法协处理器、对称算法协处理器、随机数函数发生器、时钟处理模块、电源管理模块、中断控制器、定时器,此智能设备中的微处理器、FLASH、EEPROM、SRAM、乘法协处理器、存储管理保护模块与数据总线相连,并通过桥连接器与连接到数据总线的安全检测与保护模块、非对称算法协处理器、对称算法协处理器、随机数函数发生器、时钟处理模块、电源管理模块、中断控制器、定时器相连接,它还包括外部通讯接口模块,通讯接口模块都可分别通过数据总线与微处理器、FLASH、EEPROM、SRAM4、乘法协处理器、存储管理保护模块、安全检测与保护模块、非对称算法协处理器、对称算法协处理器相连,用于在加/解密设备与外部终端之间传递数据。外部通讯接口模块包括通用串行总线架构接口模块、ISO7816接口模块。
采用上述芯片开发的智能卡和USBKEY产品确实加快了数据的处理速度。但在使用中,人们发现由于符合ISO7816-3/4标准的智能卡的通讯协议和命令部分中并没有规定如何利用智能卡内部的CPU完成对大数据量进行加/解密处理的协议及命令,从而导致无法充分地发挥具有USB接口的32位或更高速的智能卡芯片处理数据的真实能力,并限制了根据此芯片开发的智能卡或USBKEY直接在卡内进行数据处理的速度。

发明内容

本发明的目的是提供一种实现智能卡高速、安全通讯的方法。该方法通过特定的数据传输模式,可以实现在智能卡内部对离散化的大数据量进行高速、安全的加/解密处理操作。
为实现上述的发明目的,本发明采用下述的技术方案:
一种实现智能卡高速安全通讯的方法,用在智能卡与终端之间,其特征在于:
在所述智能卡内的通讯协议中增加数据处理控制字;
在所述智能卡初始化时,根据所述通讯协议中的包含所述数据处理控制字的初始化命令,对所述智能卡进行数据加/解密处理的初始化操作;
在所述智能卡初始化后,所述智能卡判断所述终端发送的数据中是否包含所述数据处理控制字;
如果是,则所述智能卡通过自身的微处理器根据数据加/解密处理的初始化值执行数据的加/解密处理,并将处理后的数据传送给所述终端。
其中,初始化时,初始化命令中的数据存储到智能卡的存储器中,并反馈数据通知终端;完成数据处理后,终端向智能卡再次发送初始化命令,释放原存储在智能卡存储器中的数据。
初始化时,首先提取通道的工作方式,然后再提取通道的算法标识,从而取出通道的密钥。
所述智能卡根据初始化时提取的通道密钥,调用与之相关的加/解密算法进行数据的加/解密处理。
所述加/解密算法包括但不限于DES、3DES、RSA和SSF33。
所述智能卡初始化和加/解密运算的过程中,通过响应报文数据域回送的状态码判断有关进程是否顺利完成。
所述数据处理控制字包括但不限于CLA和INS。
由通讯协议中的P2代码控制所述智能卡的数据通道的开闭。
所述智能卡与所述终端通过通用串行总线进行通讯。
或者,所述智能卡通过ISO7816方式与所述终端进行通讯。
本发明所述的实现智能卡高速、安全通讯的方法采用智能卡为加密载体,利用智能卡上自带的微处理器完成对需要加/解密的数据的加/解密计算,有效地提高了智能卡对大数据量的处理能力,同时本发明提供了灵活、快捷的通信方法,大大方便了用户的使用。本发明可广泛应用于智能卡与终端设备的通讯上,特别是在网络上信息传递和终端硬盘数据的加密存储或移动保护,如银行、证券、保险、公安、国防等对数据安全性要求较高的应用系统中。

附图说明

下面结合附图和具体实施方式对本发明作进一步的说明。
图1是一种现有的智能卡的构成模块图;
图2是本发明中,智能卡与终端之间进行通讯的原理示意图;
图3是本发明中,智能卡通讯协议与其它部分关系示意图;
图4是本发明中,智能卡初始化命令的处理方法流程图;
图5是本发明中,智能卡加/解密命令的处理方法流程图;
图6是本发明中,智能卡支持高速通讯命令的主流程图。

具体实施方式

本发明所述的实现智能卡高速、安全通讯的方法主要适用于如图1所示的具有USB接口的智能卡芯片。作为一个优选的实施例,智能卡芯片最好是一个基于32位或以上的精简指令及计算机(RISC)处理器的高安全芯上系统(SOC)芯片,具备高处理能力、高安全性、低功耗、低成本等特点。该芯片的关键特性如下所示:
一、处理器性能
微处理器为专门定制的高安全CPU核,它是32位或以上的RISC,采用5级流水线,频率可变,主频可工作在100MHz以上,硬件有乘法协处理器;微处理器采用整体安全概念,具有优异的安全性能和处理能力;它采用高性能的高速缓冲存储器(CACHE),包括1K字节指令CACHE和1K字节数据CACHE;存储管理和保护单元(MMU)可以配置关闭,关闭后支持段管理模式,最大支持空间为128MB,面向应用的存储分区,支持可变页长,采用多级查找结构,支持虚拟存储空间管理,支持硬件安全访问控制,外围组件访问受控。
二、芯上存储单元
电可擦出只读存储器(EEROM)为32KB,用于数据和程序的存储空间,可进行单字节的读、擦除、写,可进行单字节或多字节最大为64字节的擦除、写,最少擦写次数30万次,室温下数据保持时间最少10年,在擦写性能方面,单字节写时间为20微秒(us),页擦除时间为4毫秒(ms),EEPROM的编程电压在芯片内产生。FLASH为128KB,用于存储、函数库以及设备驱动存储空间,128字节页的擦除、写,最少檫写次数2万次,室温下数据保持时间最少10年,擦写性能为单字节写时间20us,页擦除时间4ms,其静态存储器大小为8KB。
三、外围组件
外围组件包括:1、硬件纠错码(ECC)协处理器。2、硬件数据加密标准(DES)协处理器。硬件数据加密标准(DES)协处理器支持DES、包括2KEY和3KEY的3DES算法的加密解密,支持电子密本方式(EBC)和链式块处理方式(CBC)的加密和解密,优化的数据传送通道,端口数据加/解密速度双向达到3Mbps。3、高速真随机数发生器。其随机数发生码率为2Mbps。4、USB接口。它支持USB1.1协议全速率或更高,支持三端点,每一个端点支持双缓冲器(Buffer),端口利用率高,有1个串行接口,符合ISO7816-3标准,时钟最大支持5MHz,速率最高支持310Kbps,1个GPIO接口,2个32位定时器,内置振荡控制器和相同步逻辑(PLL),可外部接4MHz晶体,支持上电复位。
四、安全特性
具有硬件存储管理和保护、高低电压检测、高低频率检测、防止差分能量分析/静态能量分析(DPA/SPA)攻击、存储区域加密、总线加扰、时钟和复位信号脉冲过滤、安全优化布线功能,每一个芯片唯一序列号。
五、电气特性
整个芯片的功耗小于200mw(5V情况下),3级低功耗模式控制,即维持模式、休眠模式、掉电模式。电源有ISO模式:2.7-5.5V和USB模式:3.6V-5.5V。防静电技术指标(ESD)保护在4000V以上。芯片管脚导线接出(Bond)位置符合ISO7816-2规范。
下面,详细介绍本发明所提供的实现智能卡高速、安全通讯方法的实现过程。
图2所示为本实施例中的智能卡与终端之间进行通讯的原理示意图。这里所说的终端包括但不限于有线终端、无线终端,手持终端、手机等。在图2所示的实施例中,智能卡通过USB接口与终端进行数据信息的交互。但需强调的是,本发明所述的方法并不只限于采用USB接口进行通讯一种情况,采用ISO7816方式进行通讯也是适用的。
本发明所述方法的核心就在于通过新设的数据处理控制字,扩展了原有的智能卡通讯协议。这一新的智能卡通讯协议如图3所示,位于终端驱动层,即嵌入智能卡的驱动程序中。这样,智能卡就可以按照新的控制字提供的内容,充分发挥自身数据处理的能力,实现数据的高速、安全传输。
作为本发明所述方法的第一步,首先要在对上述的智能卡进行初始化操作。这里的初始化操作的目的是在智能卡开辟对应的空间,保存用户需要的各项设置,并利用这些设置进行以后的数据处理操作。需要进行的设置包括加/解密模式的设置、加/解密算法的选择、密钥保护信息、密钥值的确定等。
初始化操作是通过如表1所示的初始化数据流加/解密通道(Initialstream channel)命令来实现的。表1为该初始化数据流加/解密通道命令的报文编码及功能说明。

  Lc   00H  XXH   00H表示关闭对应通道,释放RAM空间  Data域数据长度。   Data   ----   见文件控制信息说明(表2)   Le     00H或02H     02H表示需要返回当前设备中分配的可用  的通道标识;  00H表示关闭此通道
                      表1
表2所示为表1中的文件控制信息的说明。
                           表2
密钥控制信息的说明参见表3所示:  b7   B6   b5   b4   b3   b2   b1   b0  描述   X   X   X   X   X   X   X   0  数据域中的密钥值为明文  X   X   X   X   X   X   X   1  数据域中的密钥值为密文  X   X   X   X   X   X   0   X  数据域中的密钥值不计算MAC  X   X   X   X   X   X   1   X  数据域中的密钥值计算MAC  X   X   X   0   X   X   X   X  当前通道进行流加密操作  X   X   X   1   X   X   X   X  当前通道进行流解密操作
                           表3
在智能卡每次上电复位后,准备进行大数据量加/解密处理之前,用户都应该对智能卡进行初始化操作。在初始化操作命令中,本发明新增加定义了智能卡操作所需要的数据处理控制字CLA和INS。这两个控制字的作用是区分用户是在使用符合现有的ISO7816规范的基本智能卡命令操作设备还是使用本发明新增加的数据流加/解密命令对智能卡进行操作。
参见图4所示,智能卡初始化工作的基本流程包括如下的步骤:首先是确认是否需要打开通讯通道,如果需要则进一步判断是否有空闲通道,如果存在空闲通道的话,则进一步取得该通道的初始化信息,并从初始化信息中提取通道的工作方式信息和有关的算法标识,这样,智能卡内的微处理器就可以根据与该算法配套的密钥进行加/解密运算。获得密钥之后,保存该通道的信息。如果没有需要打开的通道或者不存在空闲通道的情况下,直接结束初始化流程。
在表1中,标识位P2表示需要设置或关闭的加/解密通道数量。在本实施例中,P2为8位,因此该实施例中可支持逻辑通道最多可以是256个。通过P2的设置,可以对256个通道分别进行初始化,智能卡会独立保存256个通道的信息。这样,用户的应用程序可以分时使用256个通道处理数据流。
通道的工作状态可以通过响应报文数据来显示。表4为响应报文数据域的示例。其可能回送的代码及其含义如下所示:  SW1 SW2   意义
   9000   命令成功执行   6700   错误的长度   6A86   参数P1P2错误   6985   使用条件不满足   6982   不满足安全状态   6A81   功能不支持   9400   通道已满   9403   密钥未找到
              表4
响应报文数据域显示的是当前设备中所分配的可用的通道,这些可用的通道按照用户的要求(是使用基本智能卡命令操作设备还是使用数据流加/解密命令对智能卡进行操作)进行初始化设置。
智能卡初始化工作完成后,就可以通过数据流加/解密命令对智能卡进行操作,进而可以利用智能卡内部的数据处理能力,在智能卡内部对以数据包形式出现的大数据量的数据进行高速、安全的加/解密处理。具体而言,终端将所需要处理的数据送入智能卡中进行数据处理。智能卡根据已保存在智能卡存储器中的初始化信息选择对应的通道、工作模式。智能卡中的微处理器判断数据包中是否包含加/解密命令控制字,不是则按照ISO7816的基本处理方式处理数据,是则根据加解密设备存储器中的密钥调用对称或非对称算法加/解密函数对数据进行加/解密处理,完成后将数据回送终端。
下面,结合图5对智能卡执行加/解密处理的过程作一说明。如图4所示,智能卡在通过图4所示的步骤提取通道信息之后,进一步调用有关的加/解密算法,如DES、3DES、RSA、SSF33等进行加密/解密运算,完成后通过该通道向终端回送加/解密运算结果。
前面已经提到,本发明在智能卡数据流加/解密命令中定义了智能卡操作所需要的数据处理控制字(CLA和INS),此控制字的作用是区分用户是在使用基本的智能卡命令操作设备还是在使用数据流加/解密命令对智能卡进行操作,基本智能卡命令是ISO7816规范已经规定的,而数据流加/解密命令在现有的ISO7816规范中没有规定。
在智能卡进行数据加/解密处理的过程中,有关的数据流加/解密命令的报文编码与前述的初始化过程有所不同。其具体的内容参见表5所示。

                  表5
而在数据加/解密处理的过程中,响应报文数据域也与初始化过程时有所不同,其可能回送的状态码如表6所示:  SW1 SW2   意义   9000   命令成功执行   6700   错误的长度   6A86   参数P1P2错误   6985   使用条件不满足   6982   不满足安全状态   6A81   功能不支持   9401   通道尚未打开
                表6
如图6所示,基于本发明所示方法实现的智能卡高速、安全通讯的过程包括如下的步骤:首先由主机准备需要智能卡进行处理的数据流数据,然后,主机通过获取设备handle(句柄)的方式,并经过密钥认证取得对智能卡的控制权。一旦取得了智能卡的控制权,就向其发送初始化数据流加/解密通道命令,如果智能卡返回的状态码是9000(含义是“命令成功执行”),则进一步向其发送加/解密数据流命令,如果智能卡返回数据,并且返回的状态码是9000的话,表示数据已经在智能卡中处理完毕,接下来就是主机向智能卡发送关闭加/解密数据流命令,并将有关数据处理的情况通知有关应用程序。
以上对本发明的具体实施方式进行了详细的解说。对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。