登录 / 注册 / 中文版 / ENGLISH 
华虹首页 关于我们 产品中心 解决方案 服务支持 人力资源 新闻中心 联系我们
SOLUTION 解决方案
公交一卡通
身份识别
移动支付
社会保障
电信智能卡
解决方案 首页 >> 解决方案 >> 

基于SHC1108平台的高安全性认证技术

发布时间: 2010-7-27

基于SHC1108平台的高安全性认证技术

日前,工业和信息部发布了《关于做好应对部分IC卡出现严重安全漏洞工作的通知》,要求各地各机关和部门开展对IC卡使用情况的调查及应对工作。工信部的这则通知的背景是:目前主要应用于IC卡系统的非接触式逻辑加密卡MI芯片的安全算法已遭到破解!目前全国170个城市的约1.4亿张应用此技术的IC卡也都将面临巨大的安全隐患。

一个有效防范Mifare算法破解的根本解决方案就是升 改造现有IC卡系统,并逐步将逻辑加密卡替换为CPU卡。相比逻辑加密卡,虽然CPU卡出现的时间较晚,但因为CPU卡拥有独立的CPU处理器和芯片操作系统,可以更灵活的支持各种不同的应用需求,交易也更安全。其生命力也更旺盛,优势主要体现在几个方面:数据安全性更高、应用更加灵活、应用能力更多。

本文以上海华虹集成电路有限责任公司SHC1108非接CPU卡平台为例,介绍CPU卡中优于M1这类采用流密码算法的非接触式逻辑卡的安全特性,重点介绍了该平台提供的TDES密码算法模块和基于该平台的一种高安全性认证实现技术。

 

一、       SHC1108平台介绍

 

1SHC1108平台概述

       SHC1108 CPU卡产品平台是上海华虹自主研发地非接触式CPU卡平台,目前共有三类产品,该产品平台集成了Turbo8051微处理器(其指令集和MCS8051相兼容)、256字节IRAM512字节XRAM32K字节ROM 8K字节的EEPROM32位随机数电路、DES/TDES算法模块、符合ISO/IEC 14443 TYPEA规范的RF电路。SHC1108平台采用了0.25um CMOS EEPROM工艺并提供了安全机制的检查功能。典型应用如公共交通、电子支付、身份识别等。

    SHC1108 CPU卡系统框图如下图:


1 SHC1108系统结构图

 

2SHC1108平台中提供的安全机制

       SHC1108平台中提供了比较多的安全处理机制,有安全检测机制、存储器数据保护、符合FIPS140-2NIST SP800-22规范的随机数发生器、支持DES/TDES算法的硬件DES/TDES协处理器等。

SHC1108中,在CPU模式下具有很强的安全保护机制以防止EEPROM中的数据在非正常情况下被改写。除了上下电复位电路外,芯片还具有非正常场强的检测、高低温度的检测功能。一旦被检测出非正常使用,则相应安检寄存器中的相应位将被置1。同时,若安检寄存器中复位控制位处于使能状态,整个系统将被一直复位。另外,为防止检测电路本身受到攻击,特别提供温度检测模块的自检功能,提高系统的安全特性。

    存储器数据保护功能,提供了ROM数据、EEPROM(包括OTP)数据、IRAMXRAM数据保护功能;用一个特殊寄存器控制ROMEEPROMIRAMXRAM的加/解密功能控制,用户可以自己控制数据安全保护机制,提供了更灵活的配置方式。

SHC1108平台内的32位随机数发生器由随机源RNGOSC、控制处理逻辑DECCIP和数据存储寄存器组成,32位随机数发生器产生的随机数符合FIPS140-2NIST SP800-22规范。可提高非接触式CPU卡在三重认证等场合中的安全性。Mifare 1的算法被破解的一个主要原因是因为其三重认证中的随机数是16LFSR产生的伪随机数,导致在有限次数内可以被重复。SHC1108平台中的32位随机数发生器仅提供随机数,其随机数的如何运用,还可以通过用户的COS来控制,进一步提升系统的安全性能。

    SHC1108平台中,还提供了支持DES/TDES算法的硬件DES/TDES协处理器,该部分在下一节重点介绍。

 

3SHC1108平台中的密码算法模块

       SHC1108平台提供的密码算法模块是DES/TDES算法模块,系统提供了硬件实现DESData Encryption Standard)或TDESTriple-DES)算法的加密和解密运算。

DES协处理器具有如下功能:

§           支持DESTDES3DES)两种算法。

§           无论是DES还是TDES运算皆可工作于ECBELECTRONIC CODEBOOK,电子码本)和CBCCIPHER BLOCK CHAINING,密码分组链接)两种工作模式。

§           支持双KEY和三KEYTDES算法。

§           除了支持标准的16轮的DES核心运算外,还可支持只进行123轮的DES运算。

§           CBC模式下, 个加/解密数据的初始值(IV)的提供与否由用户选择;若不提供初始值,加密情况下输入明文不与IV作异或运算,解密时DES运算输出不与IV作异或而直接输出,即此时亦相当于ECB的情况。

§           运算速度快。单一DES16轮运算在16个周期内完成,标准TDES运算在48个周期内完成。

§           每次DES/TDES运算时,若所用KEY与前一次运算相同,不必重写密钥寄存器。

§           三个密钥共用同一SFR地址,依密钥写入的先后顺序区分具体密钥。

§           所有控制功能仅通过单一的控制寄存器来实现,精简协处理器结构。

§           数据寄存器装满自动启动DES/TDES运算,节省系统时间。

SHC1108 CPU卡平台提供的DES协处理器,可以支持如下工作模式:单密钥ECB2密钥ECB3密钥ECB、单密钥CBC2密钥CBC(外部CBC)3密钥CBC(外部CBC)

 

 

 

下图描述SHC1108 CPU卡平台中支持的3密钥CBC(外部CBC)运算流程

 

 

2 密钥CBC的运算流程图

 

 

 

 

二、       基于SHC1108的高安全性认证流程设计

非接触式逻辑加密卡M1芯片中使用了符合三重认证协议ISO9798-2的认证技术,其三重认证技术本身没有任何问题,其被破解的原因是在三重认证流程中使用的随机数产生方法和密码算法本身的安全性不够高,导致整个认证流程和通讯过程可以被破解。如前面介绍,M1芯片中,其随机数的产生是使用了一个16位的LFSR产生的伪随机数,其产生的序列 非重复长度为2^16,即64K,这样的数据长度对于目前这样的计算技术能力与速度,即使使用遍历的方法来重复攻击也已无任何难度。同时M1芯片中使用了序列密码算法,来对通讯数据进行流加密,该种算法结构简单,也是导致整个安全机制被破解的原因。

针对M1的安全算法被破解的情况,同时针对SHC1108 CPU卡平台提供的安全算法特点,本文提出了高安全性的认证技术,其具体描述如下。

 

1 基于SHC1108的高安全性认证流程

 


3 两次单向认证的通讯流程图

在本文中,采用了两次单向认证技术来实现读卡器与非接CPU卡的相互鉴别认证。如上图,为一个通用的两次单向认证通讯流程图。由于SHC1108平台本身提供了高随机性的随机数发生器及高安全性的DES硬件协处理器,因此我们充分利用这些硬件资源,图中RB为非接触CPU卡产生的64位随机数,RA为读卡器内部产生的64位随机数。TokenBA为卡到读卡机的认证令牌数据。

该认证流程中,内部认证指令的交互完成了读卡器对非接触式CPU卡的单次单向鉴别认证。获取随机数指令和外部认证指令的交互完成了非接触式CPU卡对读卡器的双次单向鉴别认证。

内部认证指令中,携带了64位随机数RA的明文和参与运算的密钥标识符K1。非接触式卡接收到该指令后,用密钥标识符K1对应的密钥,采用DES密码算法,对64位随机数RA进行加密,生成TokenBA,返回给读卡器。读卡器对接收的TokenBA进行对应的解密,恢复数据并与读卡器已知的RA进行比较,完成读卡器对非接触式CPU卡的鉴别认证。

获取随机数指令,非接触式CPU卡接收到该指令后,产生64位真随机数RB,返回给读卡器。

外部认证指令中,携带了RB的密文和参与运算的密钥标识符K2。其中RB为卡返回给读卡器的64位随机数,RB的密文是通过用密钥标识符K2对应的密钥,采用DES算法加密来实现。非接触式卡接收到该指令后,用密钥标识符K2对应的密钥,采用DES密码算法,对RB的密文进行解密,恢复数据,并与卡上原有的RB进行比较,完成非接触式CPU卡对读卡器的鉴别认证。

详细的相互认证流程如下:

1步,读卡机发送内部认证指令以及指令参数(随机数RA明文和密钥标识符K1)。

2步,SHC1108接收到内部认证指令,读取密钥标识符K1对应的密钥,采用DES密码算法,对RA进行加密,形成TokenBA,返回TokenBA给读卡器。

3步,读卡机收到TokenBA后,采用对应的方法解密,得到TokenBA的明文,并与读卡器已知的RA进行对比,如果对比成功,则通过读卡器对非接触式CPU卡的鉴别认证。如不一致,则表示该卡为非法卡。终止后续操作。

4步,在通过读卡器对非接触式CPU卡的鉴别认证后,读卡器发送获取随机数指令。

5步,SHC1108在接收到获取随机数指令后,通过片上的真随机数模块,产生64位真随机数RB,并返回给读卡器,同时保存在卡内部的随机数寄存器内。

6步,读卡器在获取随机数RB后,发送外部认证指令。其中外部认证指令中,携带了RB的密文和参与运算的密钥标识符K2。其中RB的密文是通过用密钥标识符K2对应的密钥,采用DES算法加密来实现。

7步,非接触式卡接收到该指令后,用密钥标识符对应的密钥,采用DES密码算法,对RB的密文进行解密,恢复数据,并与卡上原有的RB进行比较,如果对比成功,则通过非接触式CPU卡对读卡器的鉴别认证。如不一致,则表示读卡器为非法,终止后续操作。

8步,如果通过非接触式CPU卡对读卡器的鉴别认证,则非接触CPU卡返回认证通过信息。同时如果通过认证,则可以开放相应存储区的访问控制了。

 

 

2 基于SHC1108的认证流程安全性分析

 

在本文提出的高安全认证流程中,提出了将认证技术与具有更高安全性能的分组密码算法DES算法相结合,提升了非接触式卡与读卡机身份识别的安全性,增加非接触式卡与读卡机这两个通讯终端之间通讯的安全强度,也提高了非接触式卡的安全强度。其安全性能分析如下。

与传统的基于序列密码的流加密相比(比如在应用广泛的Mifare卡中就是采用基于序列密码的流加密作为加密算法),DES算法作为一种分组密码算法具有更强的特性。由于进行多轮的分组运算, 终加密输出的密文相对于明文来说具有“雪崩效应”,即使在同一密钥下,两次明文只具有简单的变化(比如64位明文中只有其中的1个位发生了改变,或者64位明文中只有两个位之间交换了一下位置等),其 终加密后对应的两次密文也将发生剧烈变化从而不会具有某些特殊的特征,这样,对于基于对称算法来设计的上层认证协议的安全性就提供了充分的便利性和保障。

另外在本文提出的认证流程中,其RB的产生使用了SHC1108上提供的32位真随机数产生器,该随机数发生器由随机源RNGOSC、控制处理逻辑DECCIP和数据存储寄存器组成,32位随机数发生器产生的随机数符合FIPS140-2NIST SP800-22规范。使用该随机数产生器产生的随机数进一步提高了非接触式CPU卡在认证等场合中的安全性。

 

3 基于CPU卡设计的认证技术的优点

由于非接触CPU卡中,使用了COS来处理大部分的数据通讯及数据处理流程,相比于固定逻辑的非接触式逻辑加密卡,有如下优点。

1.  不同应用可以有不同的认证流程。

2.  升 更新方便。

上面介绍了一种基于SHC1108的高安全特性认证流程,由于其流程控制采用COS来实现,完全可以在COS上作一些改变,来实现不同的系统应用使用完全不同的认证流程。比如在SHC1108中提供了多种DES协处理器的工作模式,因此在不同的系统应用中,就可以采用不同的DES协处理器工作模式。DES协处理器本身就提供了更高安全特性的TDES(三重DES)算法。

另外由于COS易于升 ,因此在认证流程中RB的产生和位数等特性都可以做修改,而这些修改均不会降低安全等 ,可以达到一种系统应用匹配一种特殊认证流程的目的,可以更灵活的支持各种不同的应用需求,交易也更安全。

正是基于非接CPU卡的这种高安全性和灵活性,众多专家及业界正大力推进CPU卡应用。而国家相关部门也做了大量工作,建设部IC卡应用服务中心在2008年就制订了两项国家行业标准,同时向建设部申报三项城市互联互通卡系列标准,为CPU卡的广泛应用及实现全国互联互通建立标准体系。

三、总结

      

       M1卡的攻击者主要利用其认证加密算法技术上的弱点非法获取密钥,达到复制、伪造和变造M1卡的目的。而通过采用非接触式CPU卡平台,如华虹的SHC1108 CPU卡平台,通过采用分组密码算法DES算法的协处理器和真随机数发生器,加上内嵌的诸多安全机制,并通过COS可以灵活多变改变DES协处理其算法本身使用规则,可以从根本上解决这一安全威胁。