图解密码技术(第三章)
对称密码(共享密钥密码)
使用对称密码进行加密,就要尽可能地打乱密文,这样才能达到加密的目的。
密码算法有时会涉及开发者的专利和授权等问题,因此使用密码算法时,要先调查一下该算法的专利和授权信息。
- 编码 encoding,异或XOR exclusive or
- 一次性密码本 one-time pad,无条件安全 unconditionally secure,理论上无法破译 theoretically unbreakable,流密码 stream cipher
从文字密码到比特序列密码
编码
- 将现实世界中的东西映射为比特序列的操作称为编码
小测验1 字母→数字的映射和恺撒密码
答:原来的数字为明文,加密后的数字是密文。A的明文为0,密文为3.以此类推,到了x之后,就不能单纯加3,x由23变为0.所以,运算为:密文=(明文+3)mod 26.mod为取余运算。
XOR
-
XOR的运算规则如下:两个相同的数进行XOR运算的结果一定为0.
0 XOR 0 =0
0 XOR 1 =1
1 XOR 0 =1
1 XOR 1 =0
- A XOR B再与B 进行XOR运算会得到A
- 明文A用密钥B进行加密,得到密文A XOR B
- 将密文A XOR B用密钥B进行解密,得到明文A
- 对于密码技术来说,是否可以预测是非常重要的一点。能够产生不可预测的比特序列,对于密码技术的贡献是巨大的。这种不可预测的比特序列就成为随机数。
一次性密码本——绝对不会被破译的密码
一次性密码本的加密
- 原理:将明文与一串随机的比特序列进行XOR运算。
一次性密码本的解密
- 原理:用密文和密钥进行XOR运算,就可以得到明文。
一次性密码本是无法破译的
暴力破解总有一天我们会尝试到和加密时相同的密钥,我们能够解出明文。但是即使我们能够解出一个字符,我们也无法判断它是否是正确的明文。
- 暴力破解是将所有的密钥都尝试一边,并判断所得到的是不是正确的明文的方法。在一次性密码本中,无法判断,因此无法破译。
一次性密码本又称为维纳密码,香农证明了它无法破译。所以它是无条件安全的,在理论上无法破译的。
一次性密码本没有被使用
-
密钥的配送
没有安全传送与明文长度相等的密钥,如果有,就可以用相同的办法传送明文了
-
密钥的保存
如果有安全保存与明文长度相等的密钥的办法,那也就有了安全保存明文本身的办法了。
-
密钥的重用
一次性密码本中绝对不能重用过去用过的随机比特序列,否则会泄露通信机密
-
密钥的同步
明文和密钥长度一样,如果明文很大,那么密钥也很大,通信过程中很可能就
-
密钥的生成
随机数不是计算机程序生成的伪随机数,而必须是无重现性的真正随机数
出于上述原因,只有那些机密性胜过一切的猜想。例如,大国之间的热线。但是一次性密码本的思路却孕育出了流密码。
小测验2 一次性密码本与压缩
答:一次性密码本的密钥是随机的比特序列,不能被压缩。
压缩软件压缩的原理是找出重复的序列,替换成较短的数据。而随机的比特序列是不能被压缩的。