实际的密钥穷举搜索
虽然我们不想引入任何复杂的计算,但也许告诉读者某些事实是有价值的,它们可以让我们对某些情况下密钥的数目有一些“感性”认识。很明显,任何一位商业应用系统的设计者,都会希望他设计的系统在(至少)几年内应是安全的,因此他必须考虑技术进步的影响。这经常要借助于一条相当粗略的经验法则的帮助,该法则就是摩尔定律,它认为在成本不变的情况下,计算能力每18个月增长一倍。
为了对密钥数目大小有感性认识,我们来注意以下事实:一年有31,536,000秒,它大约在224与225之间。如果有人能够每秒钟试算一个密钥,那么他一年可搜索225个密钥。如果他有一台计算机能够每秒试算100万个密钥,那么搜索225个密钥所需要的时间大大少于一分钟。这是一个巨大的变化,虽然看起来十分简单,但它标志着计算机的问世已经影响到系统安全所需的密钥数。在讨论密码算法时,一些作者关注密钥本身的大小,另一些作者关注密钥的数量。我们回忆一下,长度为s的信息有2s个比特模式,它意味着,如果每个可能的比特模式都代表一个密钥,那么说一个系统有s比特长的密钥,等价于说它有2s个密钥。还要注意,如果每一可能的比特模式代表一个密钥,只要在密钥长度上额外加一个比特,其效果则是密钥个数的加倍。
最著名的对称分组密码是数据加密标准(DES)。它发布于1976年,在金融部门得到了广泛的应用。DES有256个密钥,自它首次面世以来,有关它的加密水平是否足够“强”的问题,人们一直争论不休。在1998年,一个名叫电子前沿基金会(EFF)的组织设计并制造了一块专用硬件,用于对DES密钥进行穷举搜索,总造价约达250,000美元,它大概能用5天左右的时间找出一个密钥。尽管EFF没有宣称他们已优化了自己的设计,但该设计已被认为是提供了评价目前这项技术所处状态的标准。粗略地说,就是花250,000美元就能够建造一台机器,它能在一周左右的时间内对256个密钥搜索一遍。由上述事实我们可以推断:通过增加成本或增加密钥数目,并考虑到像摩尔定律那样的影响之后,我们可以在指定花费的条件下,非常粗略地估算出在不久的将来任一时期搜索指定数目的密钥所需的时间。
除了专用硬件之外,现在已经有了其他一些众所周知的穷举搜索的尝试,典型的做法是把基于开放网络的密钥搜索的计算能力累加起来。最有意义的大概要属1999年1月所完成的一次搜索。它将EFF的硬件和互联网上的协作结合起来,参与搜索的有100,000台计算机,用不到一天的时间就找出了56比特的DES密钥。
我们之所以关注DES的密钥搜索,是因为DES是一种受到高度重视的算法。在20世纪70年代中期刚设计出来时,它被认为是很强的。现在,虽只过了25年,但DES的密钥可以在不到一天的时间内被找出来。值得注意的是,无论是现在的DES用户还是DES的设计者都未对近期搜索DES密钥的成功表示惊讶;设计者早就告诫说(1976年),它只能用15年。大多数DES的近期用户现在使用的是称为三重DES的算法,其中的密钥是两个或是三个DES密钥(即其长度为112或168比特)。三重DES如下图所示,用两个DES密钥k1和k2来加密,其中E和D分别表示加密和解密。
有两个密钥的三重DES
为了见识在密钥上额外添加8个比特后的戏剧性效果,我们看一下在1998年初开始的一个对所谓RC5算法的64比特密钥进行的联网搜索。经过超过1,250天对大约占潜在密钥总量44%的密钥的试算,还没有找出那个正确的密钥。
2001年,美国国家标准与技术研究所(NIST)公布了一个新的加密算法,“可用于保护电子数据资料”。它被称为高级加密标准(AES),是从NIST所征集的几个算法中选出来的。征集的要求是让对称分组密码能使用128、192和256比特去加密和解密区组大小为128比特的数据。被选出的这个算法定名为Rijndael,是由两个比利时人琼·达曼(Joan Daemen)和文森特·赖伊曼(Vincent Rijmen)设计的。因为AES使用的最小密钥长度是128比特,它似乎足以抵御基于现有技术的密钥穷举搜索法。
我们已经提到过依据摩尔定律可以对现有技术在今后若干年内的进步给出粗略的估计。但摩尔定律并未考虑到革命性的新技术可能产生的巨大影响。量子计算就属于这类新技术。量子计算利用量子态进行演算,它允许采用平行计算的方式。目前科学家仅制造出很小的量子计算机,因此从本质上说,它还仅是一个理论概念。然而,一旦量子计算机变成现实,形势将发生巨变。现在世界各地都投入了可观的资金,支持量子计算可行性的研究。如果足够精微的量子计算机能制造成功,它将显著地提高密钥穷举搜索的速度。粗略估计它能在给定时间内搜索长度比现在增加一倍的密钥。因此,粗略地说,量子计算机搜索2128个密钥就像现在搜索264个密钥一样快。
研究者对建造量子计算机的可能性持谨慎态度。无论如何,该领域存在着一些乐观的情绪,我们不应忽略其成功的可能性。