概述
在传统解密技术中,当发信人打算给报文加密,使得只有某个接收人能够对它解密时,发信人和收信人共有一个密钥(secret key)。密钥是加密算法和解密算法使用的一段信息。因为任何得到密钥的人都能够加密和解密报文,故保守密钥的秘密对密码的安全是至关重要的。
如果密钥太短,则可以通过蛮力搜索整个密钥空间发现它。甚至长一些的密钥也可能容易受到某些攻击。使密码绝对安全的唯一办法是使用与发送的全部报文一样长的密钥。2
双重密钥是在密码中,一种掩护弱密码(理解起来简单,容易被破解的密码)和半弱密码的方法。具体指采用两个56位的密钥K1和K2,发送方用K1加密、K2解密,再使用K1加密;接收方则使用K1解密、K2加密,再使用K1解密,其效果相当于将密钥长度加倍。1
这种称做双重密钥加密的方案是加密技术的突破。在这些方案中,有一些特殊的密钥对:使用一个密钥加密的消息只能使用另一个密钥才能解密。而且,任一个密钥都不能导出另一个密钥(如果没有太多的计算的话),因此,窃听者即使知道了一个密钥也不能确定其他密钥。
打比方说,B有这样的一对密钥(称它们为X和Y)。然后要求A给他发送使用这两个密钥之一加密的消息(如X)。当然,所用的通道是不可靠的,因此,敏锐的窃听者立即获取此消息,并且知道A将使用密钥X对秘密消息加密。当A向B发送加密消息时,B使用另一密钥Y来解密。同时,窃听者也设法复制这份加密消息,但他不能进行解密,因为他没有密钥Y。只知道X是没用的,甚至要解密那些用X加密的消息时也是如此。由于Y不能由X推导出来,窃听者不能做任何事情。这样A和B就可以通过不可靠的通道安全地发送消息。3
双重密钥加密这里仅用一个片面的和有些缺陷的例子来说明双重密钥加密。
用密钥3转换明码文本:
Neet me at the 1 ibrary.
转换成的密文为:
Phhw ph dw wkf oleudub.
现在,如果要将ciphertext重新转换成cleartext。但不使用密钥值3。那么怎么样才能破译密码?可以使用密钥值23,并且使用的编码技术与转换cleartext到ciphertext所用的技术相同。这表示以一个在它之后23个间距的字母替代它,而不是以在它之前3个间距的字母替代。
当然,这是相同的事情,因为3+23=26,这是字母表中字母的数目。只要两个密钥的总和等于26,使用1个密钥编码,然后使用另一个密钥再次对它进行编码,将会使每个字母转换成它原来的字母,回到最初的cleartext。
那是双重密钥加密的一个示例。这里有两个密钥,使用其中一个编码的消息只能用另一‘个密钥才能破译密码。例如,如果应用了两次密钥值3,第二次使用密钥值6时才能有效破译加密的消息!
无可否认,这个示例是有缺陷的。由一个密钥导出另一个密钥一般来说是可能的,而且不能阻止窃听者通过反向应用加密逻辑,使用加密密钥本身对消息进行解密。但真正的双重密钥加密术使这些事情变得极其困难。两个密钥间的数学关系不是如此简单,并不是像我们所做的那样仅将它从26中减去就可从一个密钥导出另一个。并且实际使用的编码逻辑(算法)是不能反向应用的。
有一种所谓的单向数学算法,它只能一个方向应用。如果这样的数学性质看上去不可思议,那请考虑这个问题:将两个大的质数相乘以得到它们的乘积是相当容易的,但若将此乘积分解成最初的质数因子就不是那么容易了。在双重密钥加密技术中使用的编码算法与这个性质有关。某些事情单向进行是容易的,但反向进行时就不那么容易了。
因此,从3导出23是不可能的,并且使用数值3也不可能解密,这就是本例中所讲的双重密钥加密技术。一个使用密钥3加密的消息根本不能用3解密,只能使用23才能解密。而且如果不能由3导出23,那么没有人能解密消息。
现在任何人都可以使用相同的算法,但使用不同的密钥。打比方说,A获得了密钥对5和21,并要求B使用密钥5为他发送消息。B这样做了,A使用另一密钥21轻易地破解了它, (当然它是由26减去5得到的,但我们假设它是通过其他一些非常复杂的过程才推导出的)。而拙劣的窃听者设法截取了加密密钥值5和加密文本,但由于他无法由5推导出21因而不能对消息解密,并且加密算法是单向进行的。不可能使用字母表中它之崩的某字母替换此字母。
上述便是双重密钥加密技术的全部内容。3
双重密钥生成密钥生成不同类型的密钥可用不同的方法生成。好的密钥应具有良好的随机性,主要包括长周期性、非线性、等概率性、不可预测性等。
(1)主机主密钥是产生其他加密密钥的密钥,其生存周期较长,故其安全性要求最高。通常从自然界中的真随机现象提取或由伪随机数生成器来生成,有时候也采用真随机现象提取与伪随机数生成器结合的办法来产生高质量的随机序列作为主机主密钥。
从真随机现象提取随机数,通常采用物理噪声源法。物理噪声源主要是基于力学的噪声源和基于电子学的噪声源。基于电子学的噪声源是目前的主要密钥产生技术,可以制成随机数产生芯片。基于这些物理现象可制造基于硬件的随机数生成器。基于软件的生成器可以使用系统时钟,敲击键盘和鼠标移动中的消逝时间,操作系统的参数量,如网络统计量等,构造软件随机比特生成器。另外,可以使用伪随机数生成器,如BBS伪随机比特生成器,ANSI X 9.17伪随机数生成器。
(2)密钥加密密钥可由随机数生成器产生,也可由密钥管理员选定。密钥加密密钥构成的密钥表存储在主机中的辅助存储器中,只有密钥产生器才能对此表进行增加、修改、删除和更换,其副本则以秘密方式发送给相应的终端或主机。一个由押个用户组成的通信网,若任一对用户问需要保密通信,则需要个密钥加密密钥。
(3)会话密钥可在密钥加密密钥控制下通过加密算法动态产生,例如,用密钥加密密钥控制DES算法产生。
密钥对生成在基于公钥加密体制的安全体系中。任何通信实体都拥有一对密钥对,密钥对中包含公钥和私钥,并且公钥与私钥相互结合使用。安全、可靠的密钥对生成技术是保证信息安全通信的基础,目前密钥对的生成方式主要有:
(1)由密钥对持有者系统生成。密钥对由持有者系统生成并存储于系统中,密钥对在使用过程中始终未离开系统,这种密钥对生成和管理技术可以有效地防止密钥对的泄露。
(2)由密钥管理中心系统生成。密钥对在密钥管理中心的系统中生成,然后通过安全信道分发到密钥对持有者系统,这种密钥对生成技术主要适合处理能力和存储空间都有限的持有者系统。4