分享|常见加密技术
加密是为了保护数据的安全,进行数据校验,或者进行认证。但从加密和认证角度来说,加密分为:对称加密、非对称加密,另外还有不可逆的摘要(Digest)算法。前几天在团队分享加密相关的知识,也是现学现卖,看了本书和在网上查了些资料就开始讲了,废话不多说了,进入本篇文章的主题。
加密相关的基础知识
- 对称加密
- 对称加密,通常加密双方持有相同的密钥,其解密算法通常是加密算法的逆运算,经典的是 DES 算法
- 基于对称加密算法的通信双方共同持用一个密钥,因此通信用户多时会产生大量密钥
- 对与对称密钥在网络上传输是不安全的(尤其是首次)
- 对称密钥由于双方都持有相同的密钥,因此不能用于认证,密钥不具有唯一标识性
- 其特点是:运算快,适合对数据加密
- 对称加密
- 对称加密即公私钥加密技术,可以用来加密,也可以用来做认证
- 加密:公钥进行加密,私钥进行解密
- 认证:私钥进行签名,公钥可以验证,并且验证可以确定唯一性
- 对称加密经典的实现是 RSA——基于大素数,另外还有基于离散对数和椭圆曲线来实现的
- 典型的应用:SSL/TLS、SSH
- 特点:运算慢,不适合对大量数据加密;因为有两个密钥,加解密不能单靠一个,因此适合在网络上传输;因为私钥通常只有一个,具有唯一性,因此适合做认证
- 对称加密即公私钥加密技术,可以用来加密,也可以用来做认证
- 单向加密/信息摘要/信息指纹
- 信息摘要(Message Digest)是对一块数据进行运算而生成的一段固定的字符串,32 位、64 位等
- 其特点:无论数据多大,都是固定长度的输出;加密不可逆,常用来做验证;
常见加密技术
对称加密,常见的是 DES、3DES、DESX 等,通过了解古典的加密和 DES 加密的原理可知道,DES 加密的轮数特别多,使其密钥空间特别大,以此来防御破解。其中,3DES 是进行三次同样的算法,比一次的要慢 3 倍。
单向加密,常见的是 MD4、MD5、SHA、SHA1、HMAC 等,不同的是 HMAC 是一种加盐的单向加密,对于不同的密钥有不同的输出,对密码有很好的保护。