首页 百科知识 一次一密密码

一次一密密码

时间:2023-06-17 百科知识 版权反馈
【摘要】:2.2.4 一次一密密码1917年,Major Joseph Mauborgne和AT &T公司的Gilbert Vernam发明了一次一密乱码本的加密方案。加密是明文字符和一次一密乱码本密钥字符的模26加法。如果窃听者不能得到用来加密消息的一次一密乱码本,这个方案是完全保密的。使用一次一密乱码本需要注意的是:密钥字母必须随机产生。

2.2.4 一次一密密码

1917年,Major Joseph Mauborgne和AT &T公司的Gilbert Vernam发明了一次一密乱码本的加密方案。通常,一次一密乱码本是一个大的不重复的真随机密钥字母集,这个密钥字母集被写在几张纸上,并一起粘成一个乱码本,它最初用于电传打字机。发方用乱码本中的每一密钥字母准确地加密一个明文字符。加密是明文字符和一次一密乱码本密钥字符的模26加法。

每个密钥仅对一个消息使用一次。发方对所发的消息加密,然后销毁乱码本中用过的一页或用过的磁带部分。收方有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符。收方在解密消息后销毁乱码本中用过的一页或用过的磁带部分。新的消息则用乱码本中新的密钥加密。

例如,如果消息是:

ONETIMEPAD,

而取自乱码本的密钥序列是

TBFRGFARFM,

那么密文就是

IPKLPSFHGQ,

因为

O+T mod26=I

N+B mod26=P

E+F mod26=K

……

如果窃听者不能得到用来加密消息的一次一密乱码本,这个方案是完全保密的。由于给出的密文消息相当于同样长度的任何可能的明文消息,且每一密钥序列都是等概率的(记住,密钥是以随机方式产生的),破译者没有任何信息用来对密文进行密码分析,密钥序列也可能是:

POYYAEAAZX

解密出来是:

SALMONEGGS

或密钥序列为:

BXFGBMTMXM

解密出来的明文为:

GREENFLUID

由于明文消息是等概率的,所以密码分析者没有办法确定哪一个明文消息是正确的。随机密钥序列异或一非随机的明文消息将产生完全随机的密文消息,即便现代的高速计算机对此也无能为力。

使用一次一密乱码本需要注意的是:

(1)密钥字母必须随机产生。对这种方案的攻击主要是针对用来产生密钥序列的方法。伪随机数发生器通常只有非随机性,所以不能用于产生随机密钥序列。采用真随机源,它才是安全的。

(2)密钥序列不能重复使用。如果密码分析家有多个密钥重叠的密文,那么即使你用多兆字节的乱码本,他也能重构明文。他可以把每排密文移来移去,并计算每个位置的适配量。如果它们排列正确,则适配的比例会突然升高(准确的百分比与明文的语种有关)。从这一点来说,密码分析是容易的,它类似于重合指数法,只不过用两个“周期”。所以千万别重复使用密钥序列。

一次一密乱码本的想法很容易推广到二进制数据的加密,只需用由二进制数字组成的乱码本代替由字母组成的密乱码本,用异或代替一次一密乱码本的明文字符加法即可。解密时用同样的乱码本对密文异或,其他保持不变。这种方法现在主要用于高度机密的低带宽信道,而在高速宽带通信信道上工作还有很大的困难;密钥比特必须随机,密钥序列的长度要等于消息的长度,并且绝不能重复使用;必须准确地复制两份随机数比特,且销毁已经使用过的比特;要确保发方和收方完全同步,一旦收方有一比特的偏移(或者一些比特在传送过程中丢失了),消息就变成了乱码;如果某些比特在传送中出现差错,则这些比特就不能正确地解密。因此,尽管一次一密乱码本不能破译,但却只能局限于某些应用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈