第一章 环游密码世界
1.角色
2.加密之前的叫明文,加密后的叫密文
3.加密算法,解密算法,2者合在一起为密码算法
4.密码算法需要秘钥,秘钥就是一个字符串
5.对称密码:在加密和解密时使用同一秘钥,又叫公共秘钥密码、传统密码、私钥密码、共享秘钥密码
6.公钥密码:在加密和解密时,使用不同的秘钥,非对称秘钥。
7.混合密码系统:将对称密码和公钥密码结合在一起使用
8.单向散列函数(散列值,哈希值,消息摘要),不是保证数据的安全性,而是保证数据的完整性
9.消息认证码,不仅要保证完整性,还要有认证机制
10.数字签名,确保完整性,提供认证并防止否认
11.伪随机数生成器,生成随机数
12.隐写术,通过一定的逻辑隐藏消息本身(藏头诗),不能代替密码。可以将密码和隐写术结合
第二章 历史上的密码
1.凯撒密码
将明文按照一定顺序平移进行加密。可以通过穷举法(暴力破解)来破解
2.简单密码替换
将明文字母表替换成另一套字母表的方式。发送者和接受者必须同时拥有该表
使用暴力破解密码替换比较困难
3.频率分析
利用明文中字母出现的频率与密文中出现的频率一致性。然后根据英文中单词出现的频率,词根等特性来全部破解。高频词和低频词都能成为线索
4.Enigma
通过转子,每日设定初始密码等手段,同时加密秘钥及消息本身
5.密码算法和秘钥是区别的
凯撒密码,密码算法:平移。秘钥:平移字母数量
简单替换密码,密码算法:按照替换表对字母进行替换。秘钥:替换表
Enigma,密码算法:通过Enigma机器,转子,旋转对字母进行替换。秘钥:每日密码,转子顺序,位置。
6.加密过程中一定存在可变的部分,这部分就是秘钥。算法可以重复使用,但是重复使用风险太大,所以添加可变的部分,秘钥。
第三章 对称密码
XOR 一次性密码
1.XOR可以用在密码技术上。
2.A XOR B XOR B = A。所以B就是一个秘钥,只要B够复杂,就可以构造一个难以破译的密码
3.一次性密码本
一般的秘钥是一直使用的。所有的文本都会使用同一个秘钥。那么在解密的时候就可以根据解密出来的文本是不是有意义的来判断该解密的秘钥是否正确。
但是随机产生一个二进制序列秘钥,与消息本身进行XOR操作,就可以进行加密。因为当这个秘钥是随机产生的,并只使用一次,所以认为这个秘钥是任何值,解密后所有的有意义的文本都是可能的。所以,一次性密码本是无法破解的。
问题:
秘钥无法安全配送,如果秘钥能安全配送,也可以同样安全的配送明文
秘钥保存,和配送一样,把秘钥和明文置于同一位置
秘钥和明文必须大小是相等的,一方面是当明文过大时,秘钥也会很大,另一方面是在传输的过程中如果出错则无法解密
秘钥的生成无法做到真正的随机
DES
1.对称加密,现能在短时间破解,已不安全
2.将64比特的明文通过64位的秘钥(56位真正的秘钥+8位校验位)加密成64位的密文,解密则反向操作
3.如果需要加密的明文大于64位,则以64位进行分组,然后循环调用DES对各自的64位进行加密
4.Feistel网络
5.子秘钥每次可以不同,加密过后左右位置对调
6.加密步骤:
将输入的数据分为左右2部分,各32位
将输入的右侧直接发送到输出的右侧
将输入的右侧发送到轮函数
轮函数根据右侧数据和子秘钥,计算出一串比特序列
将左侧数据和上面的比特序列XOR运算,输出到左侧数据
7.解密步骤:
只要按照加密步骤反向操作就可以了,主要就是子秘钥的顺序要反着来。XOR的特性保证一定能够解密
三重DES
1.使用3个秘钥依次进行加密、解密、加密的操作。因为DES操作的特性,所以不论加密还是解密其实都是同样的操作。当2个秘钥相同时,加密后再解密可以得到明文。当2个秘钥不同时,加密之后再解密,也相当于加密。所以设置为加密、解密、加密是为了兼容DES。
2.当3个秘钥都相同时,和DES一样。
3.当1,3使用相同的秘钥,2使用不同的秘钥,称为DES-EDE2。当3个秘钥都不一样时,称为DES-EDE3
4.处理速度不高,安全性也出现问题
AES
1.AES是一种新标准的对称密码算法,通过筛选后确定了Rijndael为最终的AES算法
2.Rijndael的分组长度