最近一直在看密码学相关的知识,虽然一年前已经看过了,但一段时间没用了,就容易忘记。
所以想在这里写一篇密码学简史,顺便梳理一下相关知识。
密码学对普通人来讲,看起来是很高深的,但实际情况是每天大家都要用到大量密码学的算法。只要你在用手机电脑上网,购物,聊天,那就一定会有很多密码学相关的算法在后面默默地工作着,这些幕后英雄在偷偷地保障着你在数字时代,你的隐私不被窃取,你的聊天记录不会被人看到,你的银行密码不会被人抓到。
每次你在App里面发起一次购物请求,在聊天App里面发出“你好”,后台有大量的加密算法在默默地运行。
而在这里我想慢慢地给大家解释清楚这后面所发生的一切。
密码学简单来说就是把你说的话,发的消息进行各种转换,就算别人看到转换之后的内容,也无法看到你真实说了什么。
所以这里你会第一次接触到两个概念
- 明文(PlainText):就是你真实说的话,发的消息
- 密文(CipherText):就是经常各种转换内容,别人第一次看到时会一脸懵,不知道具体是什么
大道至简,简单粗暴。
人类的文明史,其实也是密码学的演进史,人类从古至今,其实都是一直在追求如何将明文进行各种转换,变成密文,而不被变人知晓真实内容。
当然魔高一尺,道高一丈,你越是进行各种转换,别人就越想知道,经过几百年,上千年的迭代演进,攻防转换,渐渐地形成了密码学(Cryptography)的概念。
密码学分类
一般可以分为古典密码学(Classic Cryptography)和现代密码学(Modern Cryptography), 分类标准其实也很简单,大概以时间为界,比如1970年以前叫古典密码学,1970年之后就是现代密码学。
古典密码学(Classic Cryptography)
假设你在古代,你不想让别人看到你写的消息,你该怎么做?
最先想到的可能就是对发的消息进行替换?
比如:今天晚上发起攻击
我们可以进行简单替换:“后天早上回家吃饭”
- 今天-后天
- 晚上-早上
- 发起-回家
- 攻击-吃饭
当然这里只是为了描述这个概念,感兴趣你完全可以自己弄一个对照列表,只有知道这个对照表的人才能解读出真实内容。
或者我们对它的顺序进行各种打乱: 晚发上攻今起天击,而这个顺序对应表只有你知道。
上面这个例子其实就是一种朴素的古典密码学的加密方法:替换密码(Substitution Cipher)。
好了,现在你对古典密码学有了一些基本的概念,它是根据一些经验,手工设计出来的,甚至每个人都能根据一些想法设计出自己的密码。
那历史上又出现过哪些比较有名的加密方法呢,这里我直接截图的维斯百科上对古典密码学的总结归类。

其实真的是百花奇放,各种分门别类,这里我总感觉应该只是收集了一些传播范围比较广的一些加密方法。





