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

消息鉴别码的种类

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

消息鉴别码(Message Authentication Code, MAC)的生成方式主要有以下几类,它们基于不同的密码学原理构建:


一、基于对称密码分组密码的MAC

这类MAC利用分组密码(如AES)的核心组件来构建。

1. CBC-MAC
  • 原理:使用密文分组链接模式(CBC),但只取最后一个密文分组作为MAC值。

  • 流程

    1. 将消息分割成多个分组。

    2. 使用一个对称密钥和分组密码算法,以CBC模式对消息进行加密。

    3. 最后一个分组的密文(或其中一部分)作为MAC。

  • 特点

    • 简单高效,但必须保证消息长度固定,否则不安全。

    • 对于变长消息,标准做法是使用EMACXCBC-MAC等变体。

2. CMAC
  • 原理:CBC-MAC的改进版,由NIST标准化,适用于变长消息。

  • 流程

    1. 在CBC-MAC的基础上,通过生成子密钥对最后一个分组进行处理。

    2. 通过异或和移位操作,确保即使消息长度不同,也能安全生成MAC。

  • 特点

    • 推荐使用,比CBC-MAC更安全,支持任意长度的消息。

    • 常见于AES-CMAC。


二、基于密码学哈希函数的MAC

这类MAC利用哈希函数的抗碰撞性来构建。

1. HMAC
  • 原理:使用密钥与哈希函数(如SHA-256、SM3)组合,通过两次哈希运算生成MAC。

  • 流程

    1. 将密钥与固定的填充值异或,生成内外两层密钥。

    2. 先进行内层哈希:H( (key ⊕ ipad) || message )

    3. 再进行外层哈希:H( (key ⊕ opad) || 内层哈希结果 ),输出最终MAC。

  • 特点

    • 应用最广泛,安全性依赖于底层哈希函数。

    • 标准化(RFC 2104,FIPS PUB 198-1),支持任何加密哈希函数。


三、基于通用哈希函数的MAC

这类MAC使用数学运算而非密码学哈希,通常追求极快的运算速度。

1. GMAC
  • 原理:GCM(Galois/Counter Mode)认证模式中的认证部分,基于有限域上的乘法哈希。

  • 流程

    1. 将消息分组,在有限域(如GF(2^128))上按霍纳法则进行迭代乘加。

    2. 最终结果与经过处理的初始向量等数据组合,生成认证标签。

  • 特点

    • 速度极快,支持硬件并行化。

    • 通常与CTR模式加密结合,形成GCM模式,提供“认证加密”。

2. Poly1305
  • 原理:与GMAC类似,使用不同的素数模数进行多项式求值。

  • 流程

    1. 在整数模一个素数(2^130-5)的域上,对消息进行多项式求值。

    2. 结果与一个一次性密钥(通常来自AES或ChaCha20)组合,生成128位标签。

  • 特点

    • 高速、安全,常与ChaCha20流密码结合,形成ChaCha20-Poly1305认证加密算法。

    • 被TLS 1.3、SSH等协议广泛采用。


四、其他特殊类型的MAC

1. 可并行MAC
  • 示例HMAC本身是串行的,但基于某些哈希函数(如SHA-3/Keccak)可以设计并行MAC。

  • 特点:适用于多核处理器或硬件加速场景。

2. 基于泛哈希的WMAC
  • 原理:使用泛哈希函数族,通过随机选择哈希函数来生成MAC。

  • 特点:理论证明安全,但实际应用较少。


总结与对比

MAC类型基础构件安全性依赖性能特点典型应用
CBC-MAC分组密码(如AES)分组密码的安全性较快,但消息需定长旧系统(需使用其安全变体)
CMAC分组密码(如AES)分组密码的安全性高效,支持变长消息无线通信、IPsec
HMAC密码学哈希(如SHA-256)哈希函数的抗碰撞性稳健,广泛优化TLS、IPsec、API认证
GMAC有限域运算底层分组密码和GHASH极快,支持硬件并行GCM模式认证加密
Poly1305模运算一次性密钥的随机性极快,轻量级ChaCha20-Poly1305

选择建议

  • 通用场景:优先选择 HMAC-SHA256 或 HMAC-SM3(国密),因其安全性经过严格验证,库支持完善。

  • 高性能需求:在支持AES-NI的平台上,AES-GCM(含GMAC)是首选;在其他平台(如移动设备),ChaCha20-Poly1305 性能更优。

  • 资源受限环境CMAC 可能是一个轻量级的选择,尤其当已部署了AES硬件加速时。

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

相关文章:

  • C++设计模式之行为型模式:策略模式(Strategy)
  • 接口安全测试实战:从数据库错误泄露看如何构建安全防线
  • h5游戏网站建设做网站被网警找
  • 微美全息(NASDAQ:WIMI)融合区块链+AI+IoT 三大技术,解锁物联网入侵检测新范式
  • Shiro_认证绕过漏洞复现:原理详解+环境搭建+渗透实践(CVE-2020-1957)
  • 三维实时渲染应用开发及场景设计
  • RK3588 + 银河麒麟部署 swarm 集群指南
  • 基于 PyTorch 实现 MNIST 手写数字识别
  • 网站建设找王科杰信誉wordpress企业产品列表
  • 深入 Spring 依赖注入底层原理
  • WebRTC技术如何实现音视频通话
  • 韩国免费行情网站的推荐理由门户网站建设工作会议
  • Python psycopg2 教程
  • 5CEBA2U15I7N 阿尔特拉 Altera Cyclone V FPGA
  • 辉县市工程建设网站建设网站做宣传的免费渠道有那种
  • 2025年10月13日总结
  • perl-Test-Simple-1.302195-5.fc39.noarch.rpm 怎么安装?Fedora 39 安装步骤讲解
  • 图像处理之浓度(AI 调研)
  • 问答网站建设怎么提问郑州网站建设网络推广
  • T:堆的基本介绍
  • Spide - Personal Blog Magazine WordPress Theme Download
  • 使用江科大串口发送函数发送freertos的vTaskList出现跑飞
  • 关于做书的网站中国人做跨电商有什么网站
  • asp网站上传到服务器上之后一打开就是download嘟嘟嘟在线观看播放免费
  • 网站域名审核时间兰州做网站一咨询兰州做网站公司
  • Transformer实战(22)——使用FLAIR进行语义相似性评估
  • Kubernetes:初始化集群(导入Rancher2)
  • 通用:JVM垃圾回收机制
  • Shell脚本技巧:去除文件中字符串两端空白
  • python内置模块-re模块介绍使用