2024年5月10日发(作者:)

一次性密钥

不管是哪加密方式,不论它在刚出现时宣称有多么牢不可破,随着时间的迁移,它总

会暴露出弱点,从一个强大的加密方式变成一个较弱的加密方式。就算目前所使用的那些

还没有被破解的加密方式,在不断升级的CPU时钟频率前提下,暴力破解所需的时间也越

来越短了。

在加密算法的发展过程中,有很多算法都已经被破解或被证明不够安全,唯有一种加

密算法一直存在了93年。这种算法叫做一次性密钥(one-time pad)。在1917年, Gilbert

Vernam开发了一种叫做Vernam Cipher 的加密方法,使用电传技术,通过打有密钥的

纸带进行数据加密和解密。结果便出现了当时最强的对称加密技术。

美国陆军上尉Joseph Mauborgne注意到,这是真正随机产生的密钥,不会有任何

重复的可能,因此Vernam cipher可以做到更强大的效果。于是,基于纸带密钥的方法,

在一沓纸上印有随即字母或数字,作为密钥的加密算法出现了。相同的一沓纸可以给两个

人用,每个页面上的每个字符只能用一次(每张纸上的字符或数字用完,则销毁该密码纸),

这种方式可以避免敌人通过枚举法暴力破解信息。由于这种分法密钥流数据的技术是基于

可销毁的纸张的,因此也被认为是一次性密钥。

信息理论之父Claude Shannon曾经通过数学方法,证明这种一次性密钥如果使用得

当,是无法被破解的,而所谓的使用得当,是指及时销毁所使用的密钥页,即使对方拿到

了密码本的其余部分,也无法进行解密。同样的理念也可以用于数字系统,但是要确保计

算机具有足够的安全措施以及全面的考虑,防止黑客入侵一次性密钥系统。比如,一些昂

贵的数据恢复系统会将已删除的文件恢复,其中就有可能恢复那些一次性的密钥文件。因

此如果使用数字化的一次性密钥系统,就要确保所删除的密钥文件是被彻底删除,无法恢

复的。

一次性密钥加密方式有时候非常不方便,因此现在很少有人在用这种加密方式。而正

是由于这种不便性,我们实际需要的是一些理论上有些弱的加密方式,比如AES/Rijndael

以及Twofish 。一次密钥的不方便性在于:

由于一次性密钥是一种对称加密方式,进行加密通信的双方需要拥有完全一样的密钥

数据。而在某些环境下,这种条件是无法实现的,因为要想让双方都拥有这个密钥,就意

味着必须有一种足够安全的方式让双方共享或传递密钥数据,而如果有了这样的安全环境,

也就不需要再使用一次性密钥了。而一般来说通过物理方式传递密钥(比如亲手交给对方)

才能实现一次性密钥的优势。

一次性密钥必须和所加密内如一样长。这意味着,如果你要对一个3GB的文件进行加

密,就需要有一个3GB的一次性密钥。

相同的一次性密钥只能在两人间保存,如果超过两人知晓这个密钥,就不再安全了。

比如,如果在多个人之间传送不同的信息,并且不能让接受者获知其它人所接受的信息内

容,只用一个相同的密钥是完全达不到加密效果的。相反,如果采用非对称的加密方式,

我们就只需提供一个唯一的公钥给人们,每个人都通过自己的私钥对数据进行加密解密,

他们彼此之间是无法获知对方所加密的信息内容的,除非私钥被盗取或者通过日益强大的

计算机系统经过暴力破解出来。这是因为当信息被公钥加密后,只有相关的私钥才可以将

其解密。

重复使用一次性密钥存在潜在的安全风险,因为它面临着已知明文漏洞。Kerckhoffs

的理论是,保证一次性密钥系统安全的前提是保证密钥安全,但是在米加密信息和明文信