智能卡的密码学

时间:2008-11-21

  智能卡除作为数据载体之外,还被用做授权媒体和解密模块。因此,即使在智能卡的早期,密码在智能卡的应用中已取得了中心地位。今天,这门学科的作用和方法已成为智能卡技术的一个固定部分了。

  密码学这一学科领域可分为两个部分,称之为密码术和密码分析,见图1 。密码术研究对数据加密和解密的方法,而密码分析则试图去破译已有的密码系统。

  图1  密码学的两个分科是密码术和密码分析

  对于智能卡来说,它在现有的密码处理和实际应用中取得了的令人瞩目的成效。因此,我们将注意其应用方法和理论基础的基本特点。虽然如此,在和理论方面比起来更多关注于密码术的实际应用方面。

  密码术的四个基本目的是保持报文的保密性(机密性);保证报文的完整性和对报文的鉴另刂;以及对报文的约束力(不可否认性),参看图2。这些目的是相互独立的,并对所考虑的系统提出了不同的要求。机密性意味着只有报文的预定收件人才能解密其内容。鉴别意味着可以验证在传输过程中收到报文的收件人没有被改变。如果发送者能够验证某个收件人收到了一给定的报文,这就是说报文是受约束的并且不能被否认。

  图3和图4中给出了加密过程中本书所用之符号,下面的术语和原理是理解本节其余部分的必备前提。

  简而言之,加密技术中有三种数据类型。第1种是明文,它们是未加密的数据;第2种是加密的数据被称为密文;第3种是密钥,它们中的一个或多个是加密或解密所需的。这三种类型的数据用一个加密算法予以处理。目前,用于智能卡的算法一般来说是面向字组的,这就是说,明文或密文仅能以固定长度的数据分组进行处理(对DES来说为8字节的长度)。

  图2  密码术的四个独立目的的分类

  图3  本书中加密算法所用的符号

  作为一个规律,现代加密算法都是基于Kerckhoff原理,当Auguste Kerckhoff于1835~1903年提出一个算法的全部秘密仅立足于密钥的秘密性之上,而不是加密算法的秘密性,这项原理后来被命名为Kerckho饪原理。这条一般都了解但经常被忽视的原理,其结果是发表了许多民用部门应用的加密算法,而且一部分已经标准化了。

  和Kerckhoff原理相对的是秘密的隐蔽性原理。按照这条原理,系统的秘密性是建立在一个自诩的攻击者根本不了解系统是如何工作的观念基础上。这条原理已经很古老了,但在今天还经常被用到。然而,应当注意不要单独在这条原理的基础上去发展一个密码系统(或任何其他系统)。到目前为止,任何单独基于此原理的系统绝大多数在短时间内都已被攻破。在我们这个信息社会里,一般说来不可能把一个系统的技术细节长期保持为秘密,这正是这条原理所依据的基础。

  当然,对报文的非预期的截获会由于隐蔽性的使用而大大的受到限制。因此,这条原理曾一再重复地和Kerckhoff原理同时使用。在许多大型系统中,它被作为一个补充的秘密等级设置在内。今天,已发表的加密算法的秘密性,实际上仅以计算机处理能力为基础,隐蔽性方法的采用增加了防范攻击的保护程度。

  如果保护仅仅依赖于假定潜在的攻击者没有足够的处理能力的话,将很快被技术进步的步伐所打破。像“需要用1 000年的时间才能破译这个密码系统”之类的断言是不能信赖的。因为,它们都立足于目前采用的处理能力和算法,并没有把未来的发展考虑在内。一般而言,这些都是未知的。处理器的运算能力每18个月大约增加一倍,这说明每个处理器的能力在25年后将提高约25 000倍。

  图4  本书中加密过程所用的记号

  近,日益增加的计算机联网,开辟了对密钥或加密系统进行严重攻击的另一途径。考虑一个发布在Internet网上的破译DES密钥的邀请,将会被滚雪球般的传递给数百万个用户。如果,只有当前用户②的百分之一参加了这项行动,将相当于给潜在的攻击者提供了有30 000台单独计算机组成的并行计算机。

  智能卡中所用加密技术的分类如图5所示,其中主要的内容将在本章中予以说明。

  加密算法可划分为两种类型:对称的和非对称的,这种划分立足于所用的密钥。这里,“对称”的意思是算法采用同一个密钥来加密和解密。相反,非对称算法(它于1976年由Whitfield Diffie和Martin E.Hellman提出)在加密和解密时使用不同的密钥。

  一个和加密算法经常联系在一起的术语是密钥空间的大小,它指的是对于一个特定的加密算法能够使用的可能的密钥数量,一个较大的密钥空间是加密算法安全性的数个准则之一。

  近才崭露头角的对智能卡从技术上实现加密算法的需求是对干扰的自由度。在行文中,它的涵义是算法的执行时间必须和密钥、明文或密文无关。如果这项要求得不到满足,则有可能在比较短的时间内发现密钥,这就是说整个加密系统被攻破了。

  在密码学中,一个系统或算法的理论和实际安全性之间是有重大区别的。如果对一个攻击者给他以无限的时间和辅助手段仍不能攻破系统时,则此系统在理论上是安全的。例如,即使一个攻击者需要100年的时间和数台超级计算机的辅助才能攻破它,仍不能认为系统在理论上是安全的。当一个系统在有限的时间和技术手段的辅助下仍不能为攻击者所破时,则它就被认为在实际上是安全的。

  一个加密系统可以保证报文的机密性与/和可靠性。攻破系统意味着机密性与/或可靠性再也得不到保证了。例如,如果一个攻击者可以计算出一加密算法的秘密密钥,他就可以解除用加密对数据提供的保护,以便研究其内容并按照他的期望予以改变。攻击者对报文的可能

  ① 为方便读者,本书采用英文缩写(原书为德文缩写)——译者注

  ② 在1998年的夏天,Internet的用户大约有1亿个。用户数是指数型增长的,尚未达到饱和点操纵方式,如图4所示。

  图5 智能卡中所用加密技术的分类

  图6 攻击者能利用的各种可选择的操纵的分类

  有大量的方法可破译加密算法的密钥,在“只有密文”的攻击中,攻击者只知道密文并试图从密文算出密钥或明文。一种比较有成功可能的攻击方法是“已知明文”的攻击,其中包括了攻击者知道了属于同一秘密密钥的数对明文¨密文对。如果攻击者用“选择明文”和“选择密文”攻击能产生自己的明文-密文对时,他成功的机会还要大些,因为可以通过试验来发现秘密密钥,这些基本的攻击方法如图7所示。

  图7  对密码的基本攻击方法的分类 

     用反复试验法(一种强力攻击)来找出密钥,当然是复杂的攻击方法。对于这种方法来说,是用已知的明文-密文对并利用巨大的处理能力去试验所有可能的密钥来试图找出正确的密钥。显然,对此方法而言,通常具有超级计算机的处理能力是一个必要的前提。统计表明,在找到一个正确的密钥之前,平均需要试验可能的密钥中的一半。自然,一个巨大的密钥空间会显著地增加这种攻击的困难程度。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com


  
上一篇:上海通用君威2.0L节气门位置传感器检测
下一篇:进气歧管压力传感器检测

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料