【一】密码学笔记 - 《图解密码技术》第三版
1. 单向散列函数
当我们在一些大型的软件门户网站下载软件的时候,通常软件发布者会发布软件的同时发布软件的散列值。散列值就是使用单向散列函数计算出来的,比如我们常见的hash。
单向散列函数保证的并不是机密性,而是完整性。
2. 数字签名
数字签名是一种能够确保完整性、提供认证并防止否认的密码技术。
3. 密码学家的工具箱
对称密码、公钥密码、单向散列函数、消息认证码、数字签名、伪随机数生成器

4. 隐写术
隐藏消息本身,比如藏头诗、数字水印。 密码隐藏的是内容,隐写术隐藏的是消息本身。而且他俩是可以结合在一起使用的。
5. 密码的常识
- 不要使用保密的密码算法
- 使用低强度的密码比不进行任何加密更危险
- 任何密码总有一天都会被破解
- 密码知识信息安全的一部分
5.1 不要使用保密的密码算法
密码算法的密码最终无一例外地都会被暴露出来,使用保密的密码算法会整个密码系统都随之土崩瓦解。
开发高强度的密码算法是非常困难的。密码算法的强度并不像数学一样能够进行严密的证明。 如果将密码算法的详细信息以及程序的源代码全部交给专业密码的破译者,并为其提供大量的明文和密文样本,在这样的情况下破译一段密文任然会花上相当一段时间,那么就说明这是高强度密码。
6. 凯撒密码

7. 简单替换密码
将需要加密的内容实用其他字符进行代替。
在解密的时候需要替换表才能进行解密。