发布时间:2008-11-21阅读:969
只有很少量的智能卡微控制器具有能用来执行RSA算法的算术处理单元,这是因为这样的能力将额外占用芯片上的空间,而增加它的价格。
然而,事实上补充的非对称鉴别过程将提供增加的保护,使对它的应用有了吸引力,因为攻击者需要破译的是两种加密算法而不是一种。由于卡上没有合适的算术处理单元而出现的问题,可以用终端对卡进行静态鉴别来做权宜之计的处理。这仅仅需要在终端内的验证,而在终端内增加的安全模块不会显著增大其成本。因此,这种方案比起采用特殊的智能卡微控制器来要经济得多。此外,这种方法显然较快,因为和动态非对称鉴别的两次相比只需要一次非对称加密。
然而,这种折中的代价是降低了鉴别过程的安全性。对于静态过程,当然对重用先前的数据没有保护,这就是为什么它仅用做对卡的鉴别的补充验证,此前它已经用动态对称方法核查过了。
工作过程基本如下:当每张智能卡个人化时,卡专有信息被输人卡中。例如,这可以是卡编号以及持卡人的名字和地址,这些信息在卡的生命周期中不会改变。作为卡个人化的一部分,用一个在系统中整体使用的秘密密钥算出这些信息的数字签名。当卡用于一终端时,终端由卡的一个文件读出数字签名和所签署的数据。终端有公开密钥,它对系统中的所有卡都有效,可以用这个密钥加密它所读得的签名并比较它从卡读出的数据,如果它们相同,则卡已被终端鉴明。
图1所示为这一过程,除了对数据重新输人缺乏保护外,还另有一不利之处。整体密钥被用来产生和验证签名,虽然在终端中这个密钥不需要保护,因为它是公开的。基本上在大型系统中不会使此密钥对所有的卡都是一样的。如果此密钥被攻破,或由于任何其他理由它成了已知的,鉴别在整个系统中被变得毫无价值,这就是说对于静态鉴别必需要引人卡专有密钥对。
图1 终端用整体的密钥对一智能卡的单方向静态非对称鉴别的原理
然而,这里出现了一个终端的存储容量的问题,为了验证签名每个终端都必须储存有所有可使用的公开密钥。例如,即使是一个中等规模的系统具有1百万张智能卡,这将使每个终端要有64MB存储器来储存密钥,假定是512位的RSA密钥,这将使终端的价格上升到系统运营者不能接受的水平。
当使用对称过程时,很容易从主密钥导出卡专有密钥。①对于非对称方法,由于密钥产生方法的缘故,这是不可能的。因此,当需要卡专有密钥时,就采取了不同的手段。验证签名用的公开密钥在卡中是和签名存在一起的,在前述例子的系统中,存储公开密钥所需的存储量仍旧是64MB,但现在是分布在1百万张卡的⒍字节的信息包中。于是,终端从智能卡文件中读出公开密钥并可用来核查签名,这样就避免了在每一个终端中存储系统的所有公开密钥。
然而,现在一个攻击者可以产生一对密钥并用这对密钥去签署在一个伪卡中的信息,终端将读出公开密钥并认为卡是真实的。因此,需要对上述方法做出改进,这包括对存在每张卡中的公开密钥和卡专有密钥用一个整体秘密密钥的组合的签署,然后把签字存储在每张卡中。
现在,终端的工作如下:它首先从卡中读出公开密钥和卡专有密钥,然后用整体公开密钥检查卡专有密钥的真实性。若卡专有密钥是真实的,则终端读出真正的数据并用存储在智能卡中的公开密钥核查它们。这一过程的原理,已表明在图2之中。
图2 终端用卡专有密钥对智能卡进行单方向静态非对称鉴别的原理
这两种方法已经应用在某些系统中了,在未来的岁月里它们的应用还会增加。然而,随着把一个非对称加密算法的算术处理部件包括在智能卡的微控制器中而不显著增加其价格时,这两种方法将失去其大部分的意义。它们的最大缺陷是没有对早先会话数据再输人的保护,虽然这一点可以部分使用各种技巧予以补偿,诸如在后继的加密算法中再使用签署的数据,但它仍不能达到动态鉴别方法所提供的保护水平。
下一篇:智能卡的测试随机数