It's our wits that make us men.

2019/4/28《图解密码技术》第三章

Posted on By LuLu

图解密码技术(第三章)

对称密码(共享密钥密码)

使用对称密码进行加密,就要尽可能地打乱密文,这样才能达到加密的目的。

密码算法有时会涉及开发者的专利和授权等问题,因此使用密码算法时,要先调查一下该算法的专利和授权信息。

  • 编码 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 一次性密码本与压缩

答:一次性密码本的密钥是随机的比特序列,不能被压缩。

压缩软件压缩的原理是找出重复的序列,替换成较短的数据。而随机的比特序列是不能被压缩的。