加密算法介绍
# 加密算法介绍
加密方法可以分为两大类。一类是对称加密,一类是非对称加密算法。
对称加密算法使用的是单钥加密(private key cryptography);而非对称加密算法使用的是双钥加密(public key cryptography)。前者的加密和解密过程都用同一套密码,后者的加密和解密过程用的是两套密码。
# 加密基本概念
为什么要加密:有时候,一些信息是敏感并重要的信息,为了确保这些信息在传输过程中不给其他人看到,我们需要对其进行加密。例如,二战期间,电报传输的就是加密后的情报,这样,不懂得如何解密的人,即使看到了也不知道讲了什么。
怎么加密:这取决于通信双方的约定。
- 例如,如果用英文通信,可以将信息中的每个字母按照字母表中的顺序前移三位。比如,D→A,E→B,F→C。如此一来,原文为 “secret message” 的信息就变成了 “pbzobq jbppxdb” 。
- 这样,即使有人截获了信息,她咋一看也是无法知道讲了什么的,除非能猜到怎么解密。
- 而接收方可以很容易反转密码,依靠 A → D, B → E, C → F 之类的规则破译信息的内容
这种挪动字符来加密的方式,是一种加密规则(当然,这个加密规则比较简单,容易破解,这里只是举个例子);而具体挪动多少位,可以理解为是一个密钥。即使知道了加密规则,而不知道密钥的话,也是很难破译出来原本的信息的。
除此之外,还有很多加密方式,例如将每个英文字母转为二进制,然后对二进制做一些异或运算等;转为二进制并做异或就是一种加密规则,而具体和什么数做异或运算,就是密钥。
这里引入几个名词
- 明文:加密前的信息,常用 message 或缩写 m 表示。
- 加密算法:使用什么算法进行加密
- 密钥:用来和明文一起做加密运算,可以理解为密码,常用 key 来表示
- 密文:加密后的信息,常用英文单词 Cipher 或 缩写 c 表示
一个公式:密文 = 加密规则(明文 + 密钥),有点像一个函数 y = f(x)
# 小结
所谓加密,只不过是根据一定的转换规则,将数据转换成另一种形式而已。例如:
- 摩斯电码也可以看成一种加密,对于不懂摩斯电码概念的人来说,听到了也不知道在说什么
- 将中文转换成外语,其实也是一种转换,听不懂外语的人,听到了也不知道说什么,甚至不知道是什么外语。例如,二战期间,据说美国根据印第安纳瓦霍部落的土著语所编制了一套密码,直到二战结束,该密码也未被敌人破译。
重要的是,加密规则和密钥不能泄漏!否则再复杂的加密方式也会被解密。
# 参考
上次更新: 2024/10/1 17:03:07
- 01
- 中国网络防火长城简史 转载10-12
- 03
- 公告:博客近期 RSS 相关问题10-02