转:https://blog.csdn.net/chengqiuming/article/details/82155036
一 什么是一次性密码本
只要通过暴力破解法对密钥空间进行遍历,无论是什么密文总有一天都能够被破译,然而,一次性密码本是个例外。即使用暴力破解法遍历整个密钥空间,一次性密码本也绝对无法被破解。
二 一次性密码本的加密
三 一次性密码本的解密
四 一次性密码本是无法破译的
我们假设对一次性密码本的密文尝试进行暴力破解,那么总有一天我们会尝试到和加密时相同的密钥,也就能解密出明文midnight,这是毋庸置疑的事实。然而即使我们能够解密出midnight这个字符,我们也无法判断它是否是正确的明文。
所谓暴力破解,就是按顺序将所有的密钥都尝试一遍,并判断所得到的是不是正确的明文的方法。然而,在一次性密码本中,由于我们无法判断得到的是不是正确的明文,因此一次性密码本是无法破译的。
五 为什么一次性密码本没有被使用
1 密钥配送问题
如果能有一种方法将密钥安全地发送出去,那么岂不是也可以用同样的方法来安全发送明文吗?
2 密钥保存问题
如果有办法安全保存与明文一样长的密钥,那不是也有办法安全保存明文本身吗?也就是说,从一开始我们根据就不需要密码。
3 密钥的重用
在一次性密码本中绝对不能重用过去用过的随机比特序列,一次性密码本中的“一次性”也正是由此而来。这是因为作为密钥的比特序列一旦泄密,过去所有的机密通信内容将全部被解密。
4 密钥的同步
当明文很长时,一次性密码本也会跟着变长。如果明文是一个大小为100MB的文件,则密钥的大小也一定是100MB。而且在通信过程中,发送者和接收者的密钥的比特序列不允许任何错位,否则错位的比特后的所有信息将无法解密。
5 密钥的生成
在一次性密码本中,需要生成大量的随机数。这里的随机数并不是通过计算机程序生成的伪随机数,而必须是无重复性的真正随机数。