图解密码技术学习-第二章 历史上的密码

凯撒密码

原理

  • 凯撒密码的实现方式就是对字母进行平移,加密向右平移的话,解密就向左平移
  • 凯撒密码的算法就是平移,密钥就是平移的长度

破解

  • 凯撒密码是可以被暴力破解的。原因是如果是26个英文字母的话,字母的便宜最多也就是26种,把这些都尝试一遍是不需要花太多时间和成本的

简单替换密码

原理

  • 这个算法也很简单,实质上就是一张字母对照表。例如,字母A对应字母H,以此类推。
  • 这个算法里的密钥就是这张字母对照表

破解

  • 暴力破解此算法很难。因为密钥空间会有 252423...*1 = 4兆的1000兆倍,破解需要花费的时间太长了
  • 此算法仍旧可以破解。对照表的特点是,相同字母每次加密后的值不是随机的,而是固定的。如果一篇文章很长,会导致相同的明文字母会重复出现多次,而相同的密文也就重复多次。完全可以根据英文字母在单词的出现频率的多少,来猜测对应的字母代表什么
  • 相同明文每次加密后变成固定值的密码算法是不安全的

Enigma

原理

  • Enigma的密码原理还是非常先进和现代的,体现在下面几个地方。
    1、出现了密钥加密密钥,即针对加密密钥进行加密。现在的加密算法还在进行加密。
    2、对于相同的明文,每次加密后生成的密文不相同,这点根据上面简单替换密码的破解,就知道其重要性
    3、具备简单的容错。对于加密密钥,通过重复两次,进行容错的校验。虽然这给破解带来了便利。
    4、不依赖于加密算法本身来实现加密。由于存在加密密钥,所以哪怕即使拿到了Enigma机器,也没办法破解密文。
  • Enigma的机械结构:
    由接线板、三个转子组成。当输入一个字符时,电流通过由接线板和转子同时确定的线路,会产生到一个新的对应字符上。这个类似现在由软件实现的加密算法了。
  • Enigma加解密的步骤:
    1、加密加密密钥。用于加密明文的密钥,是由发送者想出来的三个字母。这个由于需要用于解密,要发送给接收方,所以需要针对此加密密钥进行加密。
    针对加密密钥进行加密,使用的密钥是国防军发布的"每日密码本"的当日密码
    首先根据当日密码设置Enigma机器,然后发送者想一个加密密钥,在机器上输入2次。每输入一个字符,第一个转子就旋转一下,保证了每个字符加密后的结果都不同。
    最终得到的是加密后的6个字符,也就是2遍的加密密码。
    2、加密发送明文。发送者想出的加密密钥是三个字符的,其实是表示三个转子的初始位置设置。
    所以,首先根据加密密钥设置三个转子的初始位置,然后再逐个输入正文的字符。
    由于每输入一个字符后,三个转子都会根据之前的规定旋转,所以即使是相同的明文,加密后的结果也不相同。
    3、合并发送。将加密后的加密密钥 和 加密后的密文 合并后,一起发送给接收者。
    4、解密加密密钥。接收者拿到发送后的全文后,先取前6个字符,再依据每日密码设置机器进行解密。
    如果解密后的6个字符是重复两次的相同字符时,证明发送过程没有问题。
    5、解密正文。根据解密后的加密密钥设置机器,然后输入正文,完整正文的解密。

破解

  • 弱点
    1、用于加密密钥的密钥不是随机的。这个是指的每日密码本是固定的,而且是预先设定发布的,其安全性大大降低。
    2、加密密钥是头6个字符且重复2次。相当于所有人都知道密钥存放的地方,而且很有规律,这样可以方便猜测极为关键的加密密钥。
    3、加密密钥的加密强度较弱。相对于正文的加密是三个转子都旋转,加密加密密钥时只有一个转子旋转,强度自然减弱。
    4、加密密钥是人为想出的。是的,人才是所有保密手段中最薄弱的环节。人可能想到的加密密钥是aaa之类的简单密钥,这样破解的人可以猜测,即使不能直接猜测出来,也大大方便了推导。
  • 破解
    突破口还是在加密密钥的特性上,就是上面弱点的第2点上。
    再加上,用于加密加密密钥的每日密码一天内是没法变化的,这就导致一个结果是一天之内有大量的样本用于解密。
    转子总共才3个,每个转子的位置只有26个,所以也就有262626种可能性。使用机器暴力是可以找到每日密码做相关破解。
  • 趣事
    德国人为了测试机器,发布了一条全l(小写L)的消息,这条用于测试的消息给了盟军以破解的方便。
    因为加密后不可能加密成原来的字符,所以可以通过密文推测明文就是全l,因为通篇没有出现l这个字符。
    根据大量的样本进行排列组合,就推测初接线板和转子状态的线索。

密码算法和密钥分开

原因也很简单,密码算法是需要重用的,但是密钥不能重用,因为重用会带来破解风险。

你可能感兴趣的:(图解密码技术学习-第二章 历史上的密码)