目录
一、加解密定义
二、加密技术分类
2.1、对称加密
2.2、非对称加密
三、对称加密算法
四、非对称加密算法
五、对称加密和非对称加密比较
六、对称加密和非对称加密结合
一、加解密定义
数据加密:对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”。
数据解密:对密文使用相应的算法和密钥进行解密处理,将密文解密成明文的过程。
二、加密技术分类
2.1、对称加密
对称加密又称为共享密钥加密,它使用同一个密钥对数据进行加密和解密。即发送和接收数据的双方必须使用相同的密钥。
经对称加密算法加密后的密文被非法用户窃取后无法读取其中的信息,可实现数据的机密性。
一般用在对大量数据进行加解密的场景,如IPSec VPN中对业务数据加解密。
2.2、非对称加密
非对称加密使用两个不同的密钥,公开密钥(简称公钥)和私有密钥(简称私钥)。公钥和私钥是一对,如果用公钥对数据加密,只有用对应的私钥才能解密。
非对称加密中一般用私钥用来保护数据。公钥可在网络中公开传递,解决了密钥交互不安全的问题。
一般用来对密钥或身份信息等敏感信息加密,如数字签名
三、对称加密算法
对称加密算法的加密和解密都是用同一个密钥。
如图所示,客户端与服务器进行数据交互,采用对称加密算法。客户端与服务器事先协商好对称密钥A,具体加解密过程如下:
常见的对称加解密算法
算法 | 描述 |
---|---|
DES | Data Encryption Standard,即数据加密标准。DES算法是以64位为块,在加密端把数据分成多块,对每块数据进行加密,生成密文;在解密端则把64位密文转换为64位明文。各个块之间建立一定的联系,DES使用16个迭代块来完成迭代。其中,加密和解密使用56位密钥 |
3DES | Triple DES,即三重数据加密标准 |
AES | Advanced Encryption Standard,即高级加密标准。AES支持多种变长密钥,如128位、192位、256位以及384位等 |
SM1 | SM1加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用 |
SM4 | SM4无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位 |
其他 | IDEA等 |
四、非对称加密算法
非对称加密算法需要一组密钥对,分别是公钥和私钥,这两个密钥是成对出现的。
非对称加密解决了对称密钥的发布和管理问题,一个用于加密信息,另一个则用于解密信息,通信双方无需事先交换密钥就可进行保密通信。通常以公钥作为加密密钥,以私钥作为解密密钥。
如图所示,客户端与服务器进行数据交互,采用非对称加密算法,具体加解密过程如下:
常见的非对称加解密算法
算法 | 描述 |
DH | DH(Diffie-Hellman)算法在IPSec中尤其重要,用于解决秘钥交换问题。因为不可能长期使用同一个秘钥,为了保证足够的安全, 所以需要动态的在两端获得秘钥 |
RSA | 名称由RSA三个提出者(Ron Rivest、Adi Shamir和Leonard Adleman)的姓氏首字母组合而成,这种算法的可靠性由对极大整数做因数分解的难度决定。RSA既能实现数字签名,又能实现加解密 |
DSA | DSA(Digital Signature Algorithm)即数字签名算法,又称DSS(Digital Signature Standard,数字签名标准)。DSA仅能实现数字签名,不能用于加解密 |
五、对称加密和非对称加密比较
加密算法 | 优点 | 缺点 | 使用场景 |
---|---|---|---|
对称加密 | 效率高,算法简单,系统开销小,适合加密大量数据 | 实现困难,扩展性差 | 对大量数据进行加解密 |
非对称加密 | 无法从一个密钥推导出另一个密钥;公钥加密的信息只能用私钥进行解密 | 算法非常复杂,导致加密大量数据所用的时间较长,而且加密后的报文较长,不利于网络传输 | 对密钥或身份信息等敏感信息加密 |
六、对称加密和非对称加密结合
采用非对称加密与对称加密结合的方式,可以减少非对称加密的次数,HTTPS就是采用了这种方案。首先通过非对称加密交换对称加密密钥,然后使用对称加密算法加密业务数据,具体交互流程如下: