一. 什么是密码学
密码学的英语单词是 Cryptograghy,是由希腊单词 Kryptos(隐藏)和 Graphin(写)派生出来的,最初代表的意思是用来隐秘的传递信息。隐藏和写就是隐写,在古典密码学的发展中就有一门称为隐写术的技术,比如说藏头诗就是一种隐写术。在《巨人的陨落》中,艾瑟尔和弟弟比利就是通过每隔两个单词就会加一个单词来作为加密后的密文,这也是隐写术的一个例子。隐写术发展到今天演变为数字水印技术,一般在文件中加一个标识信息(即数字水印),可以起到追踪溯源,防伪和版权保护的作用。
密码学一开始的功能是在有恶意攻击者存在的环境下,保护双方通信安全,现在是用来保护信息安全的核心技术。
二. 密码学的历史——古典密码学和现代密码学
古典密码学
古典密码算法主要采用代换和置换技术。
(1)代换:使用一个一一映射代换表(即只能一对一,不能一对多或者多对一)建立一个替换规则。
如摩斯电码,凯撒密码,栅栏密码,滚筒密码等。
(2)置换:根据一定的规则对原文进行重新排列,像洗牌一样。
如置换密码等。
一般来说,解决古典密码的通用方法是词频统计方法——英文中,e使用的次数最多,z最低,可以以此建立密码表与密文之间的联系
总结古典密码学的特点:
- 计算强度小
- 出现在 DES 之前
- 数据安全基于算法的保密。这和现代密码有很大的差距,只要知道加密方法,就能轻易的获取明文。现代的密码基于秘钥的加密,算法都是公开的,而且公开的密码算法安全性更高,能被更多人评论和使用,加强漏洞的修补。
- 以字母表为主要加密对象。古典密码大多数是对有意义的文字进行加密,而现代密码是对比特序列进行加密。这也是现代密码和古典密码的区别,而且古典密码的分析方法也是用字母频率分析表来破解的。
- 替换和置换技术
- 密码分析方法基于字母与字母组合的频率特性以及明文的可读性
现代密码学
现代密码学主要有三个方向:私钥密码(对称密码)、公钥密码(非对称密码)、安全协议。
私钥密码
也称对称密码,使用同一个私钥对密文进行加密和解密操作。密文需要双方保密,因此称为私钥密码。
对称密码有两个设计原则,一个是扩散(Diffusion):明文的统计结构被扩散消失到密文的长程统计特性,使得明文和密文之间的统计关系尽量复杂;另一个是混乱(confusion):使得密文的统计特性与密钥的取值之间的关系尽量复杂。
对称密码的代表:AES,DES,SM4加密算法
公钥密码
代表有RSA算法
(未完待续)