当前位置: 首页 > news >正文

【软考备考】 数据与文件的加解密种类详解和使用场景

  • 数据加解密:一个广义的概念,指对任何数字信息(包括文件、网络数据包、数据库字段等)进行加密和解密。

  • 文件加解密:数据加解密的一个子集,特指对存储在文件系统中的文件进行加解密。

在技术和原理上,两者是相通的。我们通常根据“加密对象”和“使用场景”来区分具体的加解密技术。


一、 按密钥体系分类(最核心的分类)

这是理解所有加密技术的基础,主要分为对称加密和非对称加密。

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为例:

  1. 密钥交换(使用非对称加密)

    • 浏览器连接到服务器。

    • 服务器将其SSL证书(包含公钥)发送给浏览器。

    • 浏览器生成一个随机的对称会话密钥

    • 浏览器使用服务器的公钥加密这个会话密钥,并发送给服务器。

    • 服务器使用自己的私钥解密,得到会话密钥。

  2. 数据传输(使用对称加密)

    • 此时,双方都安全地拥有了同一把对称会话密钥

    • 后续所有的HTTP请求和响应数据,都使用这把会话密钥(如AES算法)进行高速的加密和解密。

为什么这么做?

  • 利用非对称加密解决了对称密钥的安全分发问题

  • 利用对称加密对实际数据进行处理,保证了高效性


四、 其他重要概念

1. 哈希算法

虽然它不是加密(因为不可逆),但在数据安全场景中与加解密密不可分。

  • 原理:将任意长度的输入通过散列算法变换成固定长度的输出(哈希值)。它是一种单向密码体制。

  • 特点:单向性、抗碰撞性(很难找到两个不同的输入得到相同的输出)。

  • 常见算法:MD5(已不安全)、SHA-1(已不安全)、SHA-256、SHA-3

  • 使用场景

    • 数据完整性校验:下载文件后,计算其哈希值与官网提供的对比,验证文件是否被篡改。

    • 数字签名:对数据的哈希值进行签名,而非对数据本身。

    • 密码存储:网站数据库不存储用户明文密码,只存储其哈希值。

2. 数字证书与PKI
  • 数字证书:相当于网络世界的“身份证”,由权威的证书颁发机构签发。它将一个实体(如网站)的身份信息与其公钥绑定在一起。

  • PKI:公钥基础设施,是创建、管理、分发、使用、存储和撤销数字证书所需的一系列硬件、软件、策略和流程的总和。

  • 作用:解决“公钥信任”问题。确保你拿到的公钥确实是你要通信的那一方的,而不是攻击者伪造的。

软考备考要点总结

  1. 必考:对称加密 vs 非对称加密的原理、优缺点、代表算法。

  2. 重点:混合加密体系的流程和设计思想(为什么结合使用)。

  3. 重点:数字签名和哈希函数的流程和作用(完整性、不可否认性)。

  4. 理解:不同使用场景下应选择何种加密技术(如大量数据用对称,密钥分发用非对称)。

  5. 记忆:常见算法的归属(AES是对称,RSA/ECC是非对称,SHA-256是哈希)。

http://www.dtcms.com/a/512159.html

相关文章:

  • GitLab 版本控制与管理指南
  • Python动态方法调用全解:从字符串到执行的艺术
  • Blender入门学习03
  • 网站建设龙兵科技嘉兴网站建设网站建设
  • html代码下载网站怎么优化关键词
  • Kafka面试精讲 Day 27:监控告警与故障排查
  • C++ ABI:编译报错之:gcc 4.8.1 切 gcc 6.1.0
  • OLED-on-silicon(OLEDoS)技术正成为VR/MR设备显示技术的未来大趋势
  • QML学习笔记(四十四)QML与C++交互:对QML对象设置objectName
  • 网站制作全包多少钱演出票务网站建设
  • 用 Go 手搓一个 NTP 服务:从“时间混乱“到“精准同步“的奇幻之旅
  • 如何设计一个高并发系统?
  • 仓颉语言核心技术全解析与实战教程
  • 【多维聚类算法】RQ-Kmeans 利用残差信息 捕捉细节特征
  • 【代码随想录算法训练营——Day44】动态规划——1143.最长公共子序列、1035.不相交的线、53.最大子序和、392.判断子序列
  • 北住房和城乡建设厅网站亦庄建设局网站
  • 做生鲜食品最好的网站深圳网站建设犀牛云
  • Spring—容器
  • 汉南公司网站建设山东定制版网站建设公司
  • .NET WinForms + WPF 综合学习路线:从传统到现代的.NET桌面开发
  • 怀柔做网站设计师网上接单被骗
  • Go语言实战:入门篇-4:与数据库、redis、消息队列、API
  • Go语言:一文学搞懂核心函数“make”
  • 什么网站是教做纸工的测量为什么要建站
  • 徐州专业做网站的提高自己网站
  • FFmpeg--FlvPaser源码解析
  • html+js 实现生活缴费页面模板
  • Linux小课堂: 定时与延时执行机制之date、at、sleep 与 crontab 的深度解析
  • Linux第二弹
  • 【VSCode中git管理工具】无法初始化仓库