LINKS

 

 

[回首页]

智能卡与椭圆曲线密码体制

黄强,李宝,冯登国

(中国科学院软件所 信息安全技术工程研究中心 北京 100080)

(中国科大研究生院 信息安全国家重点实验室 北京 100039)

 

椭圆曲线密码体制(Elliptic Curve Cryptosystem—ECC)是目前已知的所有公钥密码体制中能够提供最高比特强度(strength-per-bit)的一种公钥体制,而智能卡已广泛用于金融、电信等领域,利用椭圆曲线密码体制对时间和空间资源要求不高的优点去弥补智能卡资源受限的缺点,不仅将大大提高智能卡的应用水平而且还将大大拓宽智能卡的应用领域。

 

智能卡

 

IC卡一般用于指一张给定大小的塑料卡片,上面封装了集成电路芯片,用于存储和处理数据。由塑料基片(有或没有磁条)、接触面、集成电路三部分组成。我们常把它们分成接触卡和非接触卡两类,其中接触卡常用的有存储卡(包括加密存储卡)、CPU卡,非接触卡主要有射频卡。对于CPU卡,就是我们这里所说的智能卡(Smart Card),其实可把它当作一个带有大脑的卡片,其大脑就是一个小的嵌入式计算机芯片。这种芯片可以被编程执行某项任务或是存储一些数据,但这种芯片只不过是小型的,它的处理能力与常见的桌面计算机是不能相提并论的。

目前,智能卡已广泛用于金融、电信、电子钱包、政府、公用事业、交通、医疗、机构内部管理等领域。另外,智能卡也正在应用于因特网应用程序之中。智能卡首次真正意义上的应用出现在法国。1985年法国银行发行1600万张智能卡,1986年法国电信发行700万张智能卡。这标志着智能卡大规模应用的开始。现在,智能卡已经在日本和欧洲广为应用,并且在美国受到了欢迎。

在我国,智能卡的应用具有极为广阔的前景,这已经成为参与到这项事业中的人们的一项共识。但不可否认,现阶段智能卡在中国的应用还处于较为简单的层次,技术开发和应用水平都比较低下。值得一提的是,尽管目前国内许多地方已使用智能卡,且涉及领域很广,但使用的智能卡芯片,大多由国外进口。因此,我们不仅要掌握智能卡生产的关键技术,而且还要切实实行强强联合,具备自己的规模化开发、生产能力,从而形成我们自己的智能卡产业。

智能卡的应用还在不断发展,正趋向多样化。与此同时,半导体方面的技术进步使智能卡的能力、实用性、易用性大大提高,价格却不断下降。这些都有力地促进了智能卡的市场需求。从长远的眼光看,智能卡取代磁卡是必然的趋势,而且随着技术进步,卡的应用范围会越来越广,卡的能力将会越来越高。

关于智能卡的标准主要有:

ISO7816最广为人知的智能卡标准。我国已采用其第一、二、三部分为国家标准。此标准主要是定义了塑料基片的物理和尺寸特性(7816/1),触点的尺寸和位置(7816/2),信息交换的底层协议描述(7816/3)。7816/4论述了跨行业的命令集。

CEN专用于电子钱包的CEN标准(TC224,WG10)。描述了卡的数据和指令,以及相关的交易和应用。

EMN世界主要信用卡联合体Visa,Mastercard和Europay创立于1993年,于1996年修订完毕。.定义了银行用CPU卡的协议、数据和指令。提供了除卡内部保护机制之外的附加安全措施。

ETSI用于统一欧洲的数字蜂窝通信标准。已得到欧洲所有移动通信网的支持,将在世界范围内进一步扩大影响。

SET用于电子商务的标准,是“安全电子交易” (Secure Electronic Transaction)的缩写。此标准由Visa和Mastercard共同制定。目前在Internet上使用极为广泛,系统将向用户要求卡号和失效日期,然后信息被加密和核实。值得注意的是,系统只检查卡的有效性,而不判断使用者的合法性。

C-SET是和SET类似的标准,由法国人制定。C-SET是“芯片安全交易”的缩写(Chip-SecureElectronicTransaction),面向法国银行的CPU智能卡。该标准使用与计算机连接的小型读写器识别用户身份,用户需另输入密码来签署交易。

其中C-SET和SET具备可互操作性。另外PC/SC、OCF、OpenCard也是值得注意的技术标准。

为了开发智能卡应用程序,需要一个智能卡阅读器、与阅读器通信的软件以及与插入阅读器的卡通信的软件,当然还要有智能卡及相关硬件设备。其中智能卡阅读器使应用程序能够从智能卡接收或是发出命令,起着中坚的作用。在市场上有许多种类的阅读器,其中最为流行的是Serial、PCcard和Keyboard模型。

 

椭圆曲线密码体制

 

公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。

椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:

y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)

所确定的平面曲线。其中系数ai(I=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。

椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式

mP=P+P+…+P=Q (2)

中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这个困难问题设计而来。椭圆曲线应用到密码学上最早是由Neal Koblitz 和Victor Miller在1985年分别独立提出的。

椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更多的情况参见下表,其中列出ECC与RSA在相同加密强度下的密钥比特数。从这个例子可以看出ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。

 

ECC
RSA

106
512

132
768

155
1,024

211
2,048


 

德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司实现了椭圆曲线密码体制,我国也有一些密码学者做了这方面的工作。许多标准化组织已经或正在制定关于椭圆曲线的标准,同时也有许多的厂商已经或正在开发基于椭圆曲线的产品。对于椭圆曲线密码的研究也是方兴未艾,从ASIACRYPTO’98上专门开辟了ECC的栏目可见一斑。

在椭圆曲线密码体制的标准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它们所开发的椭圆曲线标准的文档有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。一旦椭圆曲线密码系统的标准形成之后,椭圆曲线密码被大规模使用也就指日可待了!

 

椭圆曲线密码与智能卡

智能卡常用在安全性要求比较高的场合,其中与密码学结合起来应用的情况则最多 。这些是由于用智能卡来实现密码有许多好处所决定的。首先智能卡本身含有许多安全特性能够保护敏感数据和安全的处理环境;另外智能卡能保护秘密钥匙也是相当重要的,因为“一切秘密寓于秘钥之中”,为了能达到密码所提供的安全服务,秘密钥匙绝对不能被泄秘。将密码应用于智能卡确实很好,然而为了能广泛地使用智能卡,为安全原因所增加的成本却不能太多。

智能卡小巧方便倍受青睐,但它的资源却极为有限。用智能卡来实现安全系统面临着许多的挑战,集中地表现在存储器容量和计算能力方面受到的限制。目前市场上的大多数智能卡有128到1024字节的RAM,1K到16K字节的EEPROM,6K到16K字节的ROM,CPU通常为8比特的,典型的时钟频率为3.57MHz。任何存储或者是处理能力的增强都意味着智能卡成本的迅速提高。

另外智能卡的数据传送是相对慢的,为提高应用的效率到可接受的程度,基本的数据单元必须要小(这样可以减速少智能卡与卡终端之间的数据流量)。如果说密码所提供的服务在存储要求和处理能力要求方面的有效性是为了降低智能卡的成本,那么传送时间的减少则意味着实用性的增强。

椭圆曲线密码体制的优点对于智能卡应用是非常重要的,他们主要表现为以下几个方面:

节省存储空间

由于椭圆曲线密码的密钥较短,这可以为智能卡节省较多的存储空间,不仅能降低智能卡成本,同时也使得其它程序可利用更多的存储器来完成复杂的任务。

节省带宽,提高实用性

采用ECC所设计的安全服务能使用相对较短的密钥和数据。较短的密钥可以减小对EEPROM的需求量,而较短的数据可以减少在卡与应用程序之间传送的数据,从而减少了传送的时间。

节省处理时间,不需要附加的硬件

使用ECC可以减少处理时间的事实使它能很好地适应智能卡平台,这个特点是相当重要的。其它公开密钥系统需要如此多的计算时间以致于常由一个专门的硬件设备(密码协处理器)来完成。这不仅占用宝贵的空间也提高了智能卡的成本。而ECC可以在有限的智能卡ROM中实现,不需要附加的硬件来完成。

能够适应未来更高安全的需要

当智能卡需要更高的安全性时,需要使用更长的密钥。ECC能够继续提供安全服务而只需增加很少的系统资源。这就意味着使用ECC,智能卡有能力提供高安全级的服务而不需增加智能卡的成本。

生成私钥公钥对很方便

在私钥公钥对生成方面,ECC也具有独特的优点。公开密钥体制中的私钥必须严格保密,为达到真正的非抵赖性,私钥必须对所有其他人是完全的不可存取。当前使用其它类型公钥系统的应用中,私钥装入卡中是在一个安全环境中来进行的。因为计算复杂性的原因,在卡中产生密钥是不现实的。但是在ECC中,产生密钥对的时间是非常短的,因为它基本上只需一个随机数生成器就可以了,即使在计算能力非常有限的智能卡中也能够产生。

总之,ECC密钥短对所带来的各优点恰好弥补了智能卡的各种局限。不仅能有效地降低智能卡的生产成本,也能提高智能卡的实用性。

 

 

四、发展前景

目前,智能卡的生产及应用有很多支持者,椭圆曲线密码体制的优越性也得到了不少公司及厂商的认同。加拿大的Certicom 把公司的整个赌注都投在椭圆曲线密码上,专门生产ECC产品,给其它公司提供服务。Motorala、Gemplus 、Schlumberger、VeriFone等世界智能卡及智能卡系统名牌厂商都正在或计划使用ECC。SET的发展商GlobeSet公司则计划将ECC用于付费应用当中。SET协议的创立者Visa和Mastercard组织对ECC也给予了相当的关注。RSA数据安全公司也在他们的BSAFE工具包中提供了ECC。智能卡销售商Gemplus SA已同Stardard Chartered银行及新加坡国立大学达成协议,共同研究基于芯片的用于银行和电子商务产品及服务的新一代技术。该联盟将研究椭圆曲线加密体制的技术并在基于芯片的产品和服务中采用这项技术。

为了切实可行地发展我国的智能卡应用,把椭圆曲线密码与智能卡有机地结合起来,智能卡商家、智能卡用户与密码学者应切实地进行合作。上面提到的Gemplus与Stardard Chartered银行及新加坡国立大学的合作就是一个值得我们借鉴的例子。事实上,椭圆曲线密码已经在市场经济的大海中掀起了一股应用的浪潮,尤其在智能卡应用当中更是如此。这是机遇更是挑战,我们唯有迎头赶上,别无选择。

 

(,2000-11-03)