- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代
- 密码学 - 传统密码
- 密码学 - 加密的需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组成部分
- 密码系统的攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力攻击
- 密码系统 - 密码分析技术
- 密码学的类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学哈希函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥撤销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - Feistel 分组密码
- 分组密码的操作模式
- 分组密码的操作模式
- 电子密码本 (ECB) 模式
- 密码分组链接 (CBC) 模式
- 密码反馈 (CFB) 模式
- 输出反馈 (OFB) 模式
- 计数器 (CTR) 模式
- 经典密码
- 密码学 - 反向密码
- 密码学 - 凯撒密码
- 密码学 - ROT13 算法
- 密码学 - 置换密码
- 密码学 - 加密置换密码
- 密码学 - 解密置换密码
- 密码学 - 乘法密码
- 密码学 - 仿射密码
- 密码学 - 简单替换密码
- 密码学 - 简单替换密码的加密
- 密码学 - 简单替换密码的解密
- 密码学 - 维吉尼亚密码
- 密码学 - 维吉尼亚密码的实现
- 现代密码
- Base64 编码与解码
- 密码学 - XOR 加密
- 替换技术
- 密码学 - 单字母替换密码
- 密码学 - 单字母替换密码的破解
- 密码学 - 多字母替换密码
- 密码学 - Playfair 密码
- 密码学 - Hill 密码
- 多字母替换密码
- 密码学 - 一次性密码本密码
- 一次性密码本密码的实现
- 密码学 - 置换技术
- 密码学 - 栅栏密码
- 密码学 - 列置换密码
- 密码学 -隐写术
- 对称算法
- 密码学 - 数据加密
- 密码学 - 加密算法
- 密码学 - 数据加密标准 (DES)
- 密码学 - 三重 DES
- 密码学 - 双重 DES
- 高级加密标准 (AES)
- 密码学 - AES 结构
- 密码学 - AES 变换函数
- 密码学 - 字节替换变换
- 密码学 - 行移位变换
- 密码学 - 列混淆变换
- 密码学 - 轮密钥加变换
- 密码学 - AES 密钥扩展算法
- 密码学 - Blowfish 算法
- 密码学 - SHA 算法
- 密码学 - RC4 算法
- 密码学 - Camellia 加密算法
- 密码学 - ChaCha20 加密算法
- 密码学 - CAST5 加密算法
- 密码学 - SEED 加密算法
- 密码学 - SM4 加密算法
- IDEA - 国际数据加密算法
- 公钥(非对称)密码算法
- 密码学 - RSA 算法
- 密码学 - RSA 加密
- 密码学 - RSA 解密
- 密码学 - 创建 RSA 密钥
- 密码学 - 破解 RSA 密码
- 密码学 - ECDSA 算法
- 密码学 - DSA 算法
- 密码学 - Diffie-Hellman 算法
- 密码学中的数据完整性
- 密码学中的数据完整性
- 消息认证
- 密码学数字签名
- 公钥基础设施 (PKI)
- 哈希
- MD5(消息摘要算法 5)
- SHA-1(安全哈希算法 1)
- SHA-256(安全哈希算法 256 位)
- SHA-512(安全哈希算法 512 位)
- SHA-3(安全哈希算法 3)
- 哈希密码
- Bcrypt 哈希模块
- 现代密码学
- 量子密码学
- 后量子密码学
- 密码协议
- 密码学 - SSL/TLS 协议
- 密码学 - SSH 协议
- 密码学 - IPsec 协议
- 密码学 - PGP 协议
- 图像与文件加密
- 密码学 - 图像
- 密码学 - 文件
- 隐写术 - 图像
- 文件加密和解密
- 密码学 - 文件加密
- 密码学 - 文件解密
- 物联网中的密码学
- 物联网安全挑战、威胁和攻击
- 物联网安全的密码技术
- 物联网设备的通信协议
- 常用的密码技术
- 自定义构建密码算法(混合密码学)
- 云密码学
- 量子密码学
- 密码学中的图像隐写术
- DNA 密码学
- 密码学中的一次性密码 (OTP) 算法
- 区别
- 密码学 - MD5 与 SHA1
- 密码学 - RSA 与 DSA
- 密码学 - RSA 与 Diffie-Hellman
- 密码学与密码学
- 密码学 - 密码学与密码分析
- 密码学 - 经典与量子
- 密码学与隐写术
- 密码学与加密
- 密码学与网络安全
- 密码学 - 流密码与分组密码
- 密码学 - AES 与 DES 密码
- 密码学 - 对称与非对称
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
消息认证
在上一章中,我们讨论了数据完整性威胁以及使用哈希技术来检测数据是否发生了任何修改攻击。
数据存在的另一种威胁是缺乏消息认证。在这种威胁中,用户不确定消息的发起者。可以使用与加密情况下使用的密钥相同的秘密密钥的密码技术来提供消息认证。
消息认证码 (MAC)
MAC 算法是一种对称密钥密码技术,用于提供消息认证。为了建立 MAC 过程,发送方和接收方共享一个对称密钥 K。
本质上,MAC 是对发送的消息生成的加密校验和,它与消息一起发送以确保消息认证。
使用 MAC 进行身份验证的过程如下图所示:
现在让我们详细了解整个过程:
发送方使用某种公开的 MAC 算法,输入消息和秘密密钥 K,并生成 MAC 值。
与哈希类似,MAC 函数也将任意长的输入压缩成固定长度的输出。哈希和 MAC 的主要区别在于 MAC 在压缩过程中使用秘密密钥。
发送方将消息和 MAC 一起转发。在这里,我们假设消息以明文发送,因为我们关注的是提供消息来源身份验证,而不是机密性。如果需要机密性,则需要对消息进行加密。
收到消息和 MAC 后,接收方将接收到的消息和共享密钥 K 输入 MAC 算法,并重新计算 MAC 值。
接收方现在检查新计算的 MAC 与从发送方收到的 MAC 是否相等。如果匹配,则接收方接受消息并确保消息是由预期的发送方发送的。
如果计算出的 MAC 与发送方发送的 MAC 不匹配,接收方无法确定是消息被更改了还是来源被伪造了。底线是,接收方安全地假设该消息不是真实的。
MAC 的局限性
MAC 主要有两个局限性,两者都是由于其对称操作的性质:
共享密钥的建立。
它可以在拥有共享密钥的预先确定的合法用户之间提供消息认证。
这需要在使用 MAC 之前建立共享密钥。
无法提供不可否认性
不可否认性是指确保消息发起人无法否认任何先前发送的消息、承诺或行为。
MAC 技术不提供不可否认性服务。如果发送方和接收方就消息来源发生争议,MAC 无法证明消息确实是发送方发送的。
虽然第三方无法计算 MAC,但发送方仍可能否认发送了消息,并声称接收方伪造了它,因为不可能确定是哪一方计算了 MAC。
这两种局限性都可以通过使用下一节中讨论的基于公钥的数字签名来克服。