密码学 - 密码学的历史

202 阅读4分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

1.1.1 古典密码学

① 替换法

利用固定的信息将原文替换为密文。

  • 单表替换

    abcd -> qwer,原文依据一张表进行内容的替换。

  • 多表替换

    表一:abcd -> qwer,表二:abcd -> asdf,表三:abcd -> zxcv

    原文(abcd)根据密匙(3121)使用不同加密表对原文进行替换生成密文(zwdr)

    a -> 表三:z,b -> 表一:w,c -> 表二:d,d -> 表一:r

②移位法(凯撒加密)

按照字母在字母表上的位置移动加密生成密文。

③破解方式

将明文字母的出现频率与密文字母的频率相比较的过程。通过分析每个符号出现的频率而轻易地破译代换式密码。在每种语言中,冗长的文章中的字母表现出一种可对之进行分辨的频率。

1.1.2 近代密码学

①复式替换法(恩尼格玛密码机)

具有二十六个键位的密码机结合三个(甚至更多)的转子与一个密文显示器便构成了最简便的恩尼格玛密码机。当按下键盘上的一个字母键,相应加密后的字母在显示器上通过灯泡闪亮来显示,而转子就自动地转动一个字母的位置。为防止密文被暴力人工破解,密码机还结合以可拆卸交换位置的转子从而增加了Ann的可能性(对于三个转子来说就是A33=6种)。

使用“恩尼格玛”通讯时,发信人首先要调节三个转子的方向(而这个转子的初始方向就是密匙,是收发双方必须预先约定好的),然后依次键入明文,并把显示器上灯泡闪亮的字母依次记下来,最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去。收信方收到电文后,只要也使用一台“恩尼格玛”,按照原来的约定,把转子的方向调整到和发信方相同的初始方向上,然后依次键入收到的密文,显示器上自动闪亮的字母就是明文了。加密和解密的过程完全一样,这就是反射器的作用,同时反射器的一个副作用就是一个字母永远也不会被加密成它自己,因为反射器中一个字母总是被连接到另一个不同的字母。

②破解方式

图灵开始重新思考,经过仔细分析恩尼格玛机的工作原理,他又发现了一个重大缺陷——恩尼格玛机对同一个字母连续加密的话,是不会加密成相同字母的,而且这个字母也不会被加密成它本身。利用这一缺陷,图灵在1939年底提出了一种基于crib的破解方法。

1.1.3 现代密码学

①散列函数

通过求余、取余、调整长度、与链接变量进行循环运算等操作。得出加密结果,结果不可逆。

常见的加密方式:MD5、SHA-1、SHA-256。

②对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

  • 序列密码(流密码)

    对信息流中的每一个元素(char / byte)一一进行加密。

  • 分组密码(块密码)

    将原文分成块,对不同块进行一一加密。

③非对称加密

对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

常见的加密方式:RSA、ECC