. 一、古典密码学
核心: 替换法加密、移位法加密。
1.替换法
替换法就是使用固定的信息,将原文替换成密文。
例如:bee, 将b替换成w,e替换成p,那单词就变为wpp。
替换法的加密方式有两种,分别为:单表替换、多表替换。
- 单表替换:原文和密文使用的是同一张表(简单)。
- 多表替换:又多张表,原文和密文进行对比。
表单1:abcde - swtrp、表单2:abcde-chfhk、表单3:abcde-jftou
原文:bee 密钥:312 密文:fpk
2.移位法
移位法:按照字母,在字母表上面的位置进行移动。其中:最著名的是凯撒加密。
凯撒加密:
例子:abcde ——> 移2位 ——> cdefg
3.古典密码学破译方式:
使用频度分析法破译密码:在不知道密码的规则前提下,进行破译密码。
频率分析基于如下原理:在任何一种书面语言中,不同的字母或字母组合出现的频率各不相同。而且,对于以这种语言书写的任意一段文本,都具有大致相同的特征字母分布。
比如,在英语中,字母E出现的频率很高,而X则出现得较少。类似地,ST、NG、TH,以及QU等双字母组合出现的频率非常高,NZ、QJ组合则极少。英语中出现频率最高的12个字母可以简记为“ETAOIN SHRDLU”。在一个简单的替换密码中,明文中的每一个字母都被另一个字母替换,而且且明文中相同的字母在转换为密文时总是被同一个字母所替换。比如,所有的e都会被替换成 X.一个含有大量X的密文消息会向密码破译者暗示X替换e.
二、近代密码学
概率论出现后,古典密码学的安全性大大降低,为了保证密码的安全,在古典密码学的基础上进行了完善和优化,就有了近代密码学。
核心: 替换法加密、移位法加密
代表:恩尼格玛密码机:流加密,使用的也是移位法和替换法。 后面被图灵破解了。
三、现代密码学
1. 散列函数
MD5,SHA-1,SHA-256,SHA-512
2. 对称加密
对称加密,加密和解密时,使用的同一把密钥,所以一般也成为单密钥加密。
主流的加密方式有:DES加密、AES加密。
对称加密的核心原理:流加密、块加密
- 流加密:对信息流中的每一个元素(字母或者比特)作为基本的处理单元进行加密。
- 块加密:先对信息流分块,然后对每块进行加密。
这里需要提一下:古典密码学加密都是属于流加密的范畴。
对称加密的特点:
- 加密速度块,可以加密大文件。
- 密文不可逆。但是如果密钥文件泄露,会导致数据暴露。
- 加密后编码Ascii表找不到对应的字符,出现乱码。
- 一般结合Base64使用。
3. 加密模式
加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html
ECB : Electronic codebook, 电子密码本. 需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密