密码技术基础
对称加密:
- DES(已不安全)
- 三重DES(加密-解密-加密,三重DES对DES有向下兼容性,在重视兼容性的环境中还会继续使用,逐渐被AES替代)
- ASE
非对称加密:
- RSA(1024比特的RSA不应用于新用途,2048比特的RSA可在2030年前用于新用途,4096比特的RSA仍可在2031年后使用)
单向散列函数(输出散列值):
*能辨别出“篡改”,但无法辨别出“伪装”。所以还需要认证,比如消息认证码和数字签名。
- MD4,MD5:已被攻破
- SHA1:生成160比特,已被攻破
- SHA2:SHA-256,SHA-384,SHA-512
- SHA3:Keccak,可生成任意长度的散列值
消息认证码(消息被正确传输了么?):
*验证消息是否被准确传输,与密钥相关联的单向散列函数。输入消息与共享的密钥,输出固定长度的数据,称为MAC值,消息认证码只能验证消息是否被准确传输,无法向第三方证明是谁发的,因为共用一个密钥;消息到底是谁写的需要用到数字签名技术。
- SWIFT:
- IPsec:对IP协议增加安全性的方式
- SSL/TLS:
数字签名(谁写的?):
*双方用不同的密钥,数字签名分为两部分:a.生成消息签名的行为。b.验证消息签名的行为(可由接收者或第三方验证)。本质是将公钥密码反过来用:加密密钥只能自己有,解密密钥公有。单独使用数字签名无法保证机密性,需结合别的技术。
- RSA
- ELGamal
- DSA(只能被用于数字签名)
- ECDSA(基于DSA的数字签名技术,椭圆曲线密码,用于比特币)
- Rabin(用于公钥密码和数字签名)
证书(为公钥加上数字签名):
公钥证书记有姓名,组织,邮箱地址等信息,以及属于此人的公钥,并有认证机构(CA)施加数字签名。
公钥基础设施(PKI):
- 用户——使用PKI的实体
- 认证机构——颁发证书的人
- 仓库——保存证书的数据库
SSL/TLS:
用SSL/TLS承载HTTP,保证过程中:a.不能被窃听 b.不能被篡改 c.确认通信的对方真正的身份 ;分别是机密性,完整性,认证的问题。
- 机密性:使用对称密码,用伪随机数生成器来生成密钥,密钥通过公钥密码或Diffie-Hellman密钥交换。
- 完整性:使用消息认证码
- 认证:使用数字签名