简述一次性密码本

如果要说古典密码中,哪个最安全,那么一次性密码本一定会有一席之地。从理论层面上来说,它是牢不可破的(无法暴力破解),但在实际操作中却存在一些问题。今天我们就一起来了解这个“绝对安全的密码”——一次性密码本。

一次性密码本简介

一次性密码本英文名为One-time Pad或者OTP,是在1882年被弗兰克·米勒(Frank Miller)发现并沿用至今,它是以随机的密钥(key)组成明文,且只使用一次,需要通信双方事先去沟通一个一次性的,与被加密信息长度相等或者更长的密钥。

一次性密码本

一次性密码本的加密方法

一次性密码本的加密方式非常简单,就是将明文(待传信息的编码)和一串随机生成的二进制码进行XOR(异或)运算。

  1. 将明文编码,即转换为二进制。
  2. 随机生成和明文二进制位数相同的密钥。
  3. 将明文和密钥的二进制进行XOR操作,生成密文。

一次性密码本

一次性密码本的解密方法

解密过程依靠的是XOR操作的自反性,先简单介绍一下异或操作,如果异或的两个bit相同结果为0,异或的两个bit不同结果为1。例如:

0 XOR 0 = 0

0 XOR 1 = 1

1 XOR 0 = 1

1 XOR 1 = 0

异或还有一个非常重要的性质:自反性,a XOR b = c,c XOR b = a即对同一数进行两次异或结果将回到最初的状态。

由此,通过明文和密钥异或得到的密文,再通过将密文和密钥再次异或操作得到明文。

一次性密码本

一次性密码本的优点

虽然一次性密码本非常简单,但是一次性密码本是绝对无法破解的,这个破解并不是指现有的计算能力不够,而是指即使拥有无穷大的计算能力也无法破解。

假设我们拿到了密文并进行暴力破解,也就是将所有顺序的密钥尝试一遍,假设密文长度是32bit,那么我们将得到232数量的明文。显然我们无法判断哪一个是正确的明文,因为在所有的组合排列中可能生成多个有意义的文字。所以这种解密是无意义的,就像是我知道了原文的长度,然后自己构造这个长度的原文。因此一次性密码本是无法破译的。

一次性密码本的缺点

  • 密钥太长

一次性密码本是用与原文等长的密钥做异或得到的,如果原文很大,那么相应的密钥也就非常大。

  • 无法重用密钥

这即是一次性密码本的缺点也是优点,意味着使用时每次都要不停的更换密钥,增加了复杂性,但也保障了安全性。

一次性密码本

  • 密钥的配送

因为密钥和原文以及密文都是等长的,目标端如果想解密就必须拿到密钥,如果能够机密的传输密钥给目标端,那为什么不直接将原文机密的传送给目标端呢?

  • 密钥的保存

每次加密都需要换一个密钥,这意味着每一个明文都需要保存一个同样长度的密钥,如果明文已经可以很好的保存了,那何必多做一步加密呢?


虽然一次性密码本非常安全,但在现在中却很难使用,但是它却为很多其他的加密算法提供了灵感,由此也产生了多个变种。

相关推荐

简述曲路密码

在古典密码中大致可以分为移位和替换两种,在移位密码中字母不变,位置改变;替换密码中则是字母改变,位置不变。今天我们就来了解一种比较简单的移位密码——曲路密码。 曲路密码的简介 曲路密码发明者和发明时间 ...

简述ADFGVX密码

在之前的文章中,我们了解了波利比乌斯密码,它是一种棋盘方阵密码,而我们今天要了解的密码是由它改良而来,在第一次世界大战中被德军广泛使用的ADFGVX密码。 ADFGVX密码简介 ADFGVX密码被认为是“人力加密时代 ...

简述培根密码

大家应该都吃过培根这种食物,但你可知道在古典密码中有一种以“培根”为命名的密码算法。今天我们就来通过本文了解一下这个“培根密码”。 培根密码简介 培根密码有名“倍康尼密码”,英文明文Bacon's cipher,它并不 ...

简述KeeLoq加密算法

随着物联网的发展,越来越多的设备开始智能化,这其中就少不了加密算法的保驾护航。今天我们要了解的就是广泛应用于无线认证领域的加密算法——KeeLoq加密算法。 KeeLoq算法简介 KeeLoq算法最初是由南非Willem Smi ...