利用基于ECC算法的密码芯片实现安全高效的加密卡
通信网络特别是互联网的高速发展使得信息安全这个问题受到人们的普遍关注。在信息安全算法中,RSA方法的优点主要是原理简单、易于使用。但是,随着分解大整数方法的完善、计算机速度的提高以及计算机网络的发展,作为RSA加解密安全保障的大整数要求越来越大。为保证RSA使用的安全性,密钥的位数不断增加,目前一般认为RSA需要1024位以上的字长才具有安全保障。但是,密钥长度的增加导致加解密的速度大大降低,硬件实现也变得越来越复杂,这给使用 RSA的应用带来了极大的负担(尤其是进行大量安全交易的电子商务),从而使其应用范围日益受到制约。
ECC算法只需采用较短的密钥就可以达到和RSA算法相同的加密强度,它的数论基础是有限域上的椭圆曲线离散对数问题,现在还没有针对这个难题的亚指数时间算法,因此,ECC算法具有每比特最高的安全强度。由于智能卡在CPU处理能力和RAM大小上受限,采用一种运算量小同时能提供高加密强度的公钥密码机制对于实现数字签名应用非常关键。ECC在这方面具有明显优势,160位ECC算法的安全性相当于1024位的RSA算法,而210位的ECC则相当于 2048位的RSA。相信ECC技术在信息安全领域中的应用将会越来越广泛。
目前许多智能卡/USB Key芯片厂商都在产品上实现了支持ECC的公钥密码硬件协处理器。例如:恩智浦半导体的智能卡芯片可以在40ms内实现192位的ECC数字签名操作;意法半导体的一些产品通过协处理器和快速乘法与累加指令为实现RSA和ECC算法提供了方便;英飞凌的SLE66CxxP通过一个硬件模数运算单元,可以加速RSA和ECC等公钥密码算法的处理;Atmel公司的AT90SC19264RC、AT91SC25672RC等产品也都实现了针对公钥密码算法的硬件协处理器。在高性能的认证和加密芯片方面:Siemens的PLUTO-IC是一种基于GF(p)域曲线ECC算法的高性能加密芯片,ECC的模长达到320位;ELCRODAT-6-2是一种用于ISDN通讯网的加密芯片,它同样基于GF(p)域曲线的ECC算法,ECC的模长达到256位。
国内也有大批采用ECC技术的芯片陆续问世,其中比较有影响的是北京中电华大电子设计有限责任公司和深圳市中兴集成电路设计有限公司的智能卡/USB Key芯片,北京华大信安科技有限公司的高性能ECC芯片系列等,它们均能支持ECC国家标准算法和多种ECC国际标准算法。
基于ECC密码芯片组的加密卡的系统框图
ISECMM1256BV1安全芯片是北京华大信安科技有限公司为解决当前信息安全产品设计过程中存在的问题而推出的ECC算法芯片。该芯片是一款高效通用的公钥密码芯片,它从硬件上实现了ECC国家标准算法、ECC国际标准算法以及RSA算法,同时还实现了一些Hash标准算法,包括Hash国家标准算法(又称SM3密码杂凑算法)、SHA-1和SHA-256。还可以将ECC密钥对存储在芯片中,芯片内部设有Flash存储区用于存储和管理最高达64 对的ECC密钥对,该区域被称为“密钥池”。只有经过授权认证的用户才能获取密钥池中ECC密钥对的操作权限。为保护密钥池中ECC私钥的安全性,芯片中的SCE实现方案加入了防侧信道攻击(Side Channel Attack, SCA)技术,以加强对密钥池中私钥的保护。
在芯片的应用上,由于PCI总线的传输速率在PC机的对外接口中具有很大优势,因此目前的加密卡都选择PCI总线与PC机进行通讯。图1给出了基于华大信安ECC密码芯片ISECMM1256BV1的PCI加密卡的基本平台,PCI总线被总线转换芯片组转换成SRAM总线、准SRAM总线和SPI总线。 PC通过提供给PCI总线不同的基地址来达到分别访问每个芯片的目的,应用起来十分方便。ISECMM1256BV1安全芯片内部含有一颗CPU,通过嵌入代码对ECC的算法引擎进行了打包,因此在应用过程中无需关心ECC的算法实现和协议实现问题。这款加密卡通过总线转换芯片组让PC机直接访问 ISECMM1256BV1芯片来满足ECC及RSA算法应用的需求。此外,在板卡上加入了随机数芯片和SCB2芯片,增加了ECB、CBC和OFB等多种运算模式,扩大了加密卡的应用范围。作为加密卡的基本模式,在该方案的基础上可以任意扩展用户所需的密码算法芯片,对卡的功能进行扩展,以满足用户的不同需求。基于该方案能够很方便地实现ECC算法、RSA算法和SCB2算法等应用,为信息安全保驾护航。
作者:侯鸿飞
Email: houhf@hed.com.cn
北京华大信安科技有限公司