【软考备考】 数据与文件的加解密种类详解和使用场景
-
数据加解密:一个广义的概念,指对任何数字信息(包括文件、网络数据包、数据库字段等)进行加密和解密。
-
文件加解密:数据加解密的一个子集,特指对存储在文件系统中的文件进行加解密。
在技术和原理上,两者是相通的。我们通常根据“加密对象”和“使用场景”来区分具体的加解密技术。
一、 按密钥体系分类(最核心的分类)
这是理解所有加密技术的基础,主要分为对称加密和非对称加密。
1. 对称加密
-
原理:加密和解密使用同一把密钥。发送方和接收方必须预先安全地共享这把密钥。
-
模型:明文 + 密钥 -> 加密 -> 密文;密文 + 密钥 -> 解密 -> 明文
-
特点:
-
优点:算法效率高,加解密速度快,适合处理大量数据。
-
缺点:密钥分发和管理困难。如果有多方通信,需要为每对通信对象维护一个单独的密钥,密钥数量会呈组合数增长(
n(n-1)/2
)。
-
-
常见算法:
-
DES:已破解,不安全,现在基本不用。
-
3DES:DES的增强版,执行三次DES,速度较慢,安全性尚可,但逐渐被淘汰。
-
AES:当前最主流、最安全的对称加密算法,速度快,安全性高,被美国政府选为标准。
-
IDEA:国际数据加密算法,在PGP邮件加密中有应用。
-
-
使用场景:
-
文件加密:对硬盘上的文件、文件夹进行加密(如VeraCrypt、BitLocker等磁盘加密工具,其底层对文件数据的加密通常使用AES)。
-
数据库加密:对数据库中某个字段或整个数据文件进行加密存储。
-
HTTPS连接中的数据传输:在SSL/TLS握手建立后,用于加密实际传输的应用层数据(如网页内容、表单数据)。
-
VPN通道加密:在IPSec VPN或SSL VPN中,用于加密隧道内传输的所有数据。
-
2. 非对称加密
-
原理:使用一对密钥,即公钥和私钥。公钥可以公开,私钥必须严格保密。用公钥加密的数据,只能用对应的私钥解密;用私钥加密的数据(即签名),可以用对应的公钥验证。
-
模型:
-
加密:明文 + 接收方公钥 -> 加密 -> 密文;密文 + 接收方私钥 -> 解密 -> 明文
-
签名:明文哈希值 + 发送方私钥 -> 加密 -> 数字签名;数字签名 + 发送方公钥 -> 解密 -> 哈希值(用于验证)
-
-
特点:
-
优点:解决了密钥分发问题,无需预先共享秘密。
-
缺点:算法复杂,加解密速度非常慢(比对称加密慢1000倍以上),不适合加密大量数据。
-
-
常见算法:
-
RSA:最经典、应用最广泛的非对称加密算法。
-
ECC:椭圆曲线加密算法,与RSA同等安全强度下,密钥更短,计算更快,资源消耗更少,常用于移动设备。
-
DSA:主要用于数字签名,不用于加密。
-
-
使用场景:
-
数字签名与身份认证:验证软件发布者、文档签署者的身份,确保数据完整性和不可否认性。
-
安全密钥交换:在HTTPS的TLS握手阶段,用于安全地交换对称加密的会话密钥(如RSA密钥交换)。
-
小数据量加密:例如,加密对称加密的密钥本身。
-
二、 按加密目标/场景分类
1. 文件级加密
对整个文件或文档进行加密。
-
技术实现:通常使用对称加密(如AES)。
-
使用场景:
-
压缩文件加密:WinRAR、7-Zip在压缩时提供的密码保护功能。
-
办公文档加密:Microsoft Word、Excel、PDF文件可以设置打开密码和修改密码。
-
磁盘/分区加密:BitLocker (Windows)、FileVault (macOS)、VeraCrypt (跨平台) 对整个磁盘或分区进行实时加解密,对用户透明。
-
2. 数据库加密
-
透明存储加密:数据库引擎层面自动对数据文件进行加密,应用程序无感知。主要用于防止数据库文件被直接窃取后的数据泄露。
-
场景:Oracle TDE, SQL Server TDE, MySQL企业版TDE。
-
-
列级加密:对数据库中特定的敏感列(如身份证号、信用卡号)进行加密。可以是透明的,也可以由应用程序控制。
-
场景:加密存储用户的敏感个人信息。
-
3. 通信链路加密
对网络传输过程中的数据进行加密,防止窃听。
-
技术实现:通常采用混合加密体系(见下文),即用非对称加密协商对称会话密钥,再用对称加密加密实际数据。
-
使用场景:
-
HTTPS/SSL/TLS:保护网站与浏览器之间的通信安全。
-
SSH:保护远程登录会话的安全。
-
IPSec VPN:在两个网络网关之间建立加密隧道。
-
Wi-Fi加密 (WPA2/WPA3):保护无线局域网的安全。
-
三、 混合加密体系:对称与非对称的结合
这是现代安全通信的基石,它结合了两种加密方式的优点。
以HTTPS访问https://www.example.com为例:
-
密钥交换(使用非对称加密):
-
浏览器连接到服务器。
-
服务器将其SSL证书(包含公钥)发送给浏览器。
-
浏览器生成一个随机的对称会话密钥。
-
浏览器使用服务器的公钥加密这个会话密钥,并发送给服务器。
-
服务器使用自己的私钥解密,得到会话密钥。
-
-
数据传输(使用对称加密):
-
此时,双方都安全地拥有了同一把对称会话密钥。
-
后续所有的HTTP请求和响应数据,都使用这把会话密钥(如AES算法)进行高速的加密和解密。
-
为什么这么做?
-
利用非对称加密解决了对称密钥的安全分发问题。
-
利用对称加密对实际数据进行处理,保证了高效性。
四、 其他重要概念
1. 哈希算法
虽然它不是加密(因为不可逆),但在数据安全场景中与加解密密不可分。
-
原理:将任意长度的输入通过散列算法变换成固定长度的输出(哈希值)。它是一种单向密码体制。
-
特点:单向性、抗碰撞性(很难找到两个不同的输入得到相同的输出)。
-
常见算法:MD5(已不安全)、SHA-1(已不安全)、SHA-256、SHA-3。
-
使用场景:
-
数据完整性校验:下载文件后,计算其哈希值与官网提供的对比,验证文件是否被篡改。
-
数字签名:对数据的哈希值进行签名,而非对数据本身。
-
密码存储:网站数据库不存储用户明文密码,只存储其哈希值。
-
2. 数字证书与PKI
-
数字证书:相当于网络世界的“身份证”,由权威的证书颁发机构签发。它将一个实体(如网站)的身份信息与其公钥绑定在一起。
-
PKI:公钥基础设施,是创建、管理、分发、使用、存储和撤销数字证书所需的一系列硬件、软件、策略和流程的总和。
-
作用:解决“公钥信任”问题。确保你拿到的公钥确实是你要通信的那一方的,而不是攻击者伪造的。
软考备考要点总结
-
必考:对称加密 vs 非对称加密的原理、优缺点、代表算法。
-
重点:混合加密体系的流程和设计思想(为什么结合使用)。
-
重点:数字签名和哈希函数的流程和作用(完整性、不可否认性)。
-
理解:不同使用场景下应选择何种加密技术(如大量数据用对称,密钥分发用非对称)。
-
记忆:常见算法的归属(AES是对称,RSA/ECC是非对称,SHA-256是哈希)。