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

分组密码:加密模式、可鉴别加密模式、加密认证模式

(本文由deepseek生成,仅供参考)

分组密码(如AES、DES)只能处理固定长度的数据块(如128位)。在实际应用中,我们需要处理任意长度的消息,这就需要工作模式来定义如何重复应用密码算法以安全地处理大量数据。

第一类:基础加密模式(仅提供机密性)

这类模式只关注如何将明文加密为密文,不提供完整性保护或认证

1. ECB - 电子密码本模式
  • 工作原理:将明文分割成独立的数据块,每个块用相同的密钥单独加密。

  • 示意图

明文块1 → 加密 → 密文块1
明文块2 → 加密 → 密文块2
...
  • 优点:简单、可并行计算。

  • 致命缺点

    • 相同的明文块总是产生相同的密文块,无法隐藏数据模式

    • 容易受到重放攻击和块重排攻击。

  • 现状绝对不应用于加密任何有意义的数据,仅在某些特定场景下使用。

2. CBC - 密码分组链接模式
  • 工作原理:每个明文块在加密前先与前一个密文块进行异或操作。第一个块使用初始化向量(IV)。

  • 示意图

IV →⊕→ 明文块1 → 加密 → 密文块1 →┐↘⊕→ 明文块2 → 加密 → 密文块2 →┘
  • 优点:隐藏了明文模式,相同的明文块会产生不同的密文块。

  • 缺点

    • 加密过程是串行的,无法并行化。

    • 需要填充机制来处理非整块数据。

    • 容易受到填充Oracle攻击

  • 应用:曾广泛用于TLS、IPsec等协议(现正被更安全的模式取代)。

3. CFB - 密码反馈模式
  • 工作原理:将分组密码转换为自同步的流密码。前一个密文块被加密后与当前明文块异或。

  • 示意图

IV → 加密 →→⊕→ 明文块1 → 密文块1 →┐↘加密 →→⊕→ 明文块2 → 密文块2 →┘
  • 优点:不需要填充,可以实时操作。

  • 缺点:加密是串行的,错误会传播。

4. OFB - 输出反馈模式
  • 工作原理:将分组密码转换为同步流密码。加密算法的输出被反馈为下一阶段的输入。

  • 示意图

IV → 加密 → 密钥流1 →⊕→ 明文块1 → 密文块1↘加密 → 密钥流2 →⊕→ 明文块2 → 密文块2
  • 优点:错误不会传播,预处理密钥流可能。

  • 缺点:必须确保IV不重复使用。

5. CTR - 计数器模式
  • 工作原理:使用一个递增的计数器值作为加密输入,产生的密钥流与明文异或。

  • 示意图

计数器1 → 加密 → 密钥流1 →⊕→ 明文块1 → 密文块1
计数器2 → 加密 → 密钥流2 →⊕→ 明文块2 → 密文块2
...
  • 优点

    • 可并行加密和解密

    • 不需要填充

    • 可以随机访问任意数据块

  • 缺点:必须确保计数器值不重复使用。

  • 应用:作为许多现代加密方案的基础,包括GCM模式。


第二类:可鉴别加密模式(提供机密性+完整性)

这类模式在基础加密之上增加了完整性验证,但通常不提供完整的认证保证。

特点
  • 能够检测数据是否被篡改

  • 但可能不提供对发送方的强认证

  • 通常是向完整认证加密模式过渡的中间形态

:在实际标准中,这一类别往往被更完善的AEAD模式所涵盖。


第三类:加密认证模式(AEAD - 认证加密与关联数据)

这是现代密码学的黄金标准,同时提供机密性、完整性和认证性。

核心特征
  • 机密性:防止未授权访问内容

  • 完整性:确保数据未被篡改

  • 认证性:验证数据来源

  • 关联数据:支持对未加密的元数据(如头部)进行认证

主要AEAD模式:

1. GCM - 伽罗瓦/计数器模式

  • 加密:基于CTR模式

  • 认证:使用GHASH在伽罗瓦域进行计算

  • 优点:高性能、可并行、有硬件加速支持

  • 应用:TLS 1.2/1.3、IPsec、SSH

2. CCM - 计数器与CBC-MAC模式

  • 加密:基于CTR模式

  • 认证:使用CBC-MAC

  • 特点:先认证后加密,需要预先知道消息长度

  • 应用:WPA2、蓝牙LE、IEEE 802.11

3. EAX模式

  • 加密:基于CTR模式

  • 认证:使用CMAC

  • 优点:对Nonce重复使用有更好的容错性

  • 应用:高安全要求场景

4. OCB - 偏移码本模式

  • 特点:在单个处理过程中同时完成加密和认证

  • 优点:效率极高

  • 历史:曾受专利限制,现已过期

5. ChaCha20-Poly1305

  • 加密:ChaCha20流密码

  • 认证:Poly1305 MAC

  • 优点:软件实现性能优异,抗侧信道攻击

  • 应用:TLS 1.2/1.3、WireGuard VPN


工作模式演进关系

text

基础加密模式 (仅机密性)↓
ECB → CBC → CFB/OFB → CTR (逐步改进)↓
可鉴别加密模式 (机密性 + 基本完整性)↓
加密认证模式/AEAD (机密性 + 完整性 + 认证性 + 关联数据)GCM, CCM, EAX, OCB, ChaCha20-Poly1305

分类总结与对比

类别主要功能代表性模式安全性现代应用推荐
基础加密模式仅机密性ECB, CBC, CFB, OFB, CTR低到中等避免使用(除CTR作为组件)
可鉴别加密模式机密性+完整性(过渡形态)中等被AEAD取代
加密认证模式(AEAD)机密性+完整性+认证性GCM, CCM, ChaCha20-Poly1305强烈推荐

如何选择工作模式?

绝对不应该使用的模式:
  • ECB:任何需要安全性的场景

  • 裸CBC/CFB/OFB:没有额外认证机制的场景

传统系统维护时的选择:
  • 如果必须使用基础模式,选择 CTR 或 CBC,但必须与HMAC以ETM方式组合

现代系统开发的选择:
  • 默认首选AES-GCM(有硬件加速时)

  • 移动/软件环境ChaCha20-Poly1305

  • 资源受限设备AES-CCM

  • 高性能需求AES-OCB(专利已过期)

特殊场景:
  • 只需要认证:使用 HMAC-SHA256 或 AES-CMAC

  • 磁盘加密:通常使用 XTS模式(专为磁盘加密设计)

关键实践建议

  1. 永远不要单独使用基础加密模式 - 必须配合MAC提供完整性保护

  2. 优先选择AEAD模式 - 它们专门设计来避免组合错误

  3. 正确管理Nonce/IV - 确保永不重复使用

  4. 验证认证标签 - 在解密任何数据之前先验证完整性

结论:分组密码工作模式的发展体现了密码学从"单纯加密"到"全面安全"的演进。在现代密码学实践中,AEAD模式已成为新系统的标准选择,它们提供了简单、高效且安全的"一站式"解决方案,避免了手动组合加密和认证时可能出现的各种安全陷阱。

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

相关文章:

  • RocketMQ高并发编程技巧(二)
  • 算法沉淀第二天(Catching the Krug)
  • redis-4.0.11-1.ky10.sw_64.rpm安装教程(申威麒麟V10 64位系统详细步骤)
  • 为企业为什么做网站企业网站建设注意什么
  • 从监听风险到绝对隐私:Zoom偷听门后,Briefing+CPolar重新定义远程会议安全标准
  • 网站源代码下载工具网站备案网站前置审批
  • 基于GENESIS64核心可视化组件GraphWorX64的工业图形设计解决方案
  • QML学习笔记(三十七)QML的Slider
  • 3:Django-migrate
  • 【Linux】网络基础概念
  • Go语言技术与应用(三):服务注册发现机制详解
  • 网线学习笔记
  • 【OpenHarmony】存储管理服务模块架构
  • 网站做报表网站维护是谁做的
  • 阿里云k8s部署微服务yaml和Dockerfile文件脚本
  • [Backstage] 后端插件 | 包架构 | 独立微服务 | by HTTP路由
  • java微服务-尚医通-编写接口
  • Go|sync.Pool|临时对象池,实现临时对象的复用,降低GC压力
  • go语言了解
  • 网站页面高度福建住房城乡建设部网站
  • 【Go】--数组和切片
  • 李宏毅机器学习笔记22
  • 重排反应是什么?从分子变化到四大关键特征解析
  • 服务治理与 API 网关:微服务流量管理的艺术
  • 怎样做企业的网站首页网站开发求职简历
  • 程序设计基础第2周上课前预习
  • 谷歌 chrome 浏览器安装crx插件(hackbar为例)
  • 分布式专题——43 ElasticSearch概述
  • Tomcat 启动后只显示 index.jsp,没有进入你的 Servlet 逻辑
  • 分布式之RabbitMQ的使用(3)QueueBuilder