10.5 硬件加密与软件加密
硬件
直到最近,所有加密产品都是特定的硬件形式。这些加/解密盒子被嵌入到通信线路中,然后对所有通过的数据进行加密。虽然软件加密在今天正变得很流行,硬件仍是商业和军事应用的主要选择。例如,NSA只对硬件加密授权使用。为什么这样是有原因的:
首先是速度。正如我们在第三部分看到的那样,加密算法含有很多对明文比特的复杂运算,没有哪类这样的操作能在一般的计算机上进行。两种最常见的加密算法,DES和RSA在普通用途的微处理器上运行没有效率可言。尽管一些密码设计者不断尝试使他们的算法更适合软件实现,但特殊的硬件将一直获得速度之胜利。
另外,加密常常是高强度的计算任务。计算机微处理器对此效率不高,将加密移到芯片上,即使那个芯片仅是另一个处理器,也会使整个系统速度加快。
硬件流行的第二个原因是安全性。对运行在一般的、没有物理保护的计算机上的某个加密算法,Mallory可以用各种跟踪工具秘密修改算法而使任何人都不知道。硬件加密设备可以安全地封装起来,以避免此类事情发生,防窜改盒能防止别人修改硬件加密设备。特殊目的的VLSI芯片可以覆盖一层化学物质,使得任何企图对它们内部进行访问都将导致芯片逻辑的破坏。美国政府的Clipper和Capstone芯片(参见24.16和24.17节)都被设计成防窜改,芯片设计成这样就使Mallory不可能读到未加密的密钥。
IBM发明了一种用来加密主机数据和通信的加密系统[515,1027]。它包括用防窜改模块保存密钥,这个系统在24.1节中讨论。
电磁幅射有时会暴露电子设备内正在处理的东西。可以将加密盒子屏蔽起来,使得信息不致泄露。通用计算机也可以屏蔽,但却是个复杂得多的问题。美军称这类操作为TEMPEST,这个课题远远超出本书范围。
硬件流行的最后一个原因是易于安装。大多数加密应用与普通计算机无关。多数人希望加密他们的电话会话、传真或数据链路。将专用加密硬件放在电话、传真机和调制解调器中比放在微处理器或软件中便宜得多。
当加密数据来自计算机时,安装一个专用加密设备也比修改计算机系统软件更容易。加密应该是不可见的,它不应该妨碍用户。对于软件要做到这点的唯一办法是将加密程序写在操作系统软件的深处,这很不容易。另一方面,就是初学者也能将加密盒插在他们的计算机和外接调制解调器之间。
目前,市场上有三类基本的加密硬件:自带加密模块(可完成一些如银行口令确认和密钥管理等功能),用于通信链路的专用加密盒以及可插入个人计算机的插卡。
一些加密盒是为一些具体的通信链路设计的,如T—1加密盒设计成不加密同步比特。用于同步或异步通信链路的加密盒是不同的。较新的一些加密盒趋向于处理更高的比特率和高通用性。
即使如此 ,许多加密设备也有一些不相容问题,购买者应该小心注意这些差别,并了解他们的特殊用处,避免自己购买的加密设备不能满足要求。特别要注意,硬件类型、操作系统、应用软件、网络等方面的限制。
PC-板加密器通常将所有写到硬盘上的东西进行加密,并且可以配置以将写到软盘和串口的东西都加密。并不为这些板卡屏蔽电磁辐射或物理干扰,因为如果计算机不受影响,保护这些板卡是没有意义的。
越来越多的公司开始将加密硬件设备安装到他们的通信设备上。保密电话、传真机和调制解调器都可买到。
虽然有多少种设备、就有多少种不同的解决方案,但这些设备的内部密钥管理通常是安全的。一些方案在一种场合比在另一场合更合适,购买者应该懂得哪类密钥管理与加密盒相结合,哪类是自己所期望的。
软件
任何加密算法都可以用软件实现。软件实现的不利之处是速度、开销、和易于改动(或操作)。有利之处是灵活性和可移植性,易使用,易升级。本书末尾采用C语言写的算法,稍作修改便可以在任何计算机上实现。可以不花一分钱将他们容易地复制下来,并安装在许多机器上。他们也能和大型应用如通信或字处理程序相结合。
软件加密程序很大众化,并可以用于大多数操作系统。这些是用于保护个人文件;用户通常必须手工加解密文件。密钥管理方案的安全性是重要的:密钥不应当储存在磁盘的任何一处(甚至也不应该写在处理器与磁盘交换数据的内存中)。密钥和未加密文件在加密后应删除,许多程序对这点都很草率,但用户必须仔细选择。
当然,Mallory可以一直用无用的东西替换软件加密算法,但对大多数用户来说,这不是什么问题。如果Mallory能够潜入办公室将加密程序修改掉,也能将一个隐形摄象机置于墙中,搭线窃听电话线路,或者将一台TEMPEST检测仪放于墙下。如果Mallory确实比一般用户更强有力的话,那么用户早在游戏开始之前就输掉了。