1. 密码技术
- 对称密码
- 公钥密码
- 单向散列函数
- 消息认证码
- 数字签名
- 伪随机数生成器
对称(symmetric)加密和非对称加密
对称加密:用来加密和解密的秘钥是一样的 非对称加密:用来加密和解密的秘钥是不一样的
单向散列
用来证明完整性,例如 MD5
2. 历史上的密码
将密码算法和密钥分开考虑,解决了希望重复使用,但重复使用会增加风险的难题
3. 对称密码(共享密钥密码)
算法
- DES
- 3DES
- AES
4. 分组密码的模式
5. 公钥密码
特征
- public key
- private key 算法
- RSA
- ECC
密文 = 明文^E mod N 明文 = 密文^D mod N (E,N) 组成公钥 (D,N) 组成私钥
6. 混合密码系统
7. 单向散列函数
特征:消息完整性 算法:
- SHA-3(Keccak)
- RIPEMD-160(比特币)
8. 消息认证码(MAC)
用途:识别篡改和伪装 场景
- SWIFT
- IPsec
- SSL/TLS
9. 数字签名(digital signature)
用途:识别篡改和伪装,防止否认 算法
- RSA
- RSA-PSS(Probabilistic Signature Scheme)
- ECDSA
- DSA
- Rabin
10. 证书——为公钥加上数字签名
公钥证书(Public-Key Certificate, PKC)
11. 密钥
盐(salt)是由伪随机数生成器生成的随机数,在生成密钥(KEK)时会和口令一起被输入单向散列函数。可以用来防御字典攻击。
12. 随机数
伪随机数:通过软件实现的随机数并不是真的随机