IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 密码学与网络安全 - 12 消息认证码 -> 正文阅读

[网络协议]密码学与网络安全 - 12 消息认证码

12 消息认证码

12.1 对消息认证的要求

攻击类型:

保密消息

  1. 消息透露给没有合法密钥的任何人或程序
  2. 传输分析 在面向连接的应用中,分析连接的频率和持续时间,确定消息的数量和长度,无连接应用中确定消息数量和长度

消息认证

  1. 伪装
  2. 内容修改
  3. 顺序修改
  4. 计时修改:对消息的延迟和重播

数字签名

  1. 发送方否认

数字签名和抗攻击协议

  1. 接收方否认

12.2 消息认证函数

消息认证或数字签名机制在功能上基本都有上下两层,下层是产生某种认证符的函数,上层协议中将函数作为原语使接收方可以验证消息的真实性

可以产生认证符的函数类型

  1. Hash函数:以哈希值直接作为认证符号
  2. 消息加密:将密文作为认证符
  3. 消息认证码(MAC):它是消息和密钥的函数,它产生定长的值,以该值作为认证符

12.2.1 消息加密

对称密码中,A和B共享密钥K,A使用密钥K加密M,B可以使用K解密,在这种机制下,可以实现保密性和提供认证。问题在于M如果是任何位模式的情况下,B则无法判断密文是否是合法的明文所产生。为此必须限制合法明文是可能位模式的一个子集。这样伪造明文的攻击就很小了。但是接收方自动识别明文合法仍然很难,解决方案是在明文中加入错误检测码等使得明文具有某种易识别的结构,并且不通过加密函数不能重复这种结构,接受者解密后通过计算这个检验序列就能够判断是否是合法明文了

公钥加密。直接使用公钥加密Pm x PB= Pm x nB x G ,B使用nB和G反解出Pm很简单,但此时任何人都可能冒充a,因此不能保证真实性。若要提供认证,A则可以使用私钥加密,但是同样的任何人都能验证,无法提供保密性。若要实现保密和认证,A可以先使用私钥加密M,再用B的公钥加密上一步加密后的结果.但是很明显,操作复杂

12.2.2 消息认证码MAC

假设A和B事先都知道公共密钥K,A使用K生成一个数据块附加再M尾,B使用K同样计算块再比较则可以判别消息是否被修改、是否来自A以及消息序列是否正确(如果消息中使用了序列号的话)

可以看到A和B都是顺序计算的,所以MAC算法不要求可逆性,但是加密算法必须是可逆的

对称加密和公钥加密都可以实现消息认证,为什么还需要消息认证码呢?

  1. 将消息广播给接收者们,中心节点需要验证
  2. 接收者解密后再验证过程复杂,耗时耗资源
  3. 验证明文的计算机程序
  4. 一些场景不关心消息的保密性只关心认证
  5. 认证和保密分割开,使用更加灵活
  6. 仅仅在消息接受期间保护不够,使用加密机制的话,解密后就不再受保护,而使用验证可以一直保护信息不被修改

12.3 对消息认证码的要求

MAC称为密码校验和

若要加密的话,可以使用对称密码或者公钥密码

12.4 MAC的安全性

12.4.1 穷举攻击

12.4.2 密码分析

MAC的种类很多,各有各的分析

12.5 基于Hash函数的的MAC:HMAC

12.5.1 HMAC的设计目标

只能更好不能坏

12.5.2 HMAC算法

也是使用了密钥K

12.5.3 HMAC的安全性

依赖Hash函数的强度

12.6 基于分组密码的MAC:DAA和CMAC

12.6.1 数据认证算法

采用DES运算的密文块链接(CBC)方式,已经废止

12.6.2 基于密码的消息认证码(CMAC)

12.7 认证加密:CCM和GCM

认证加密是提供保密性和认证完整性的加密系统

四种认证和加密方案

  1. 先Hash 再加密
  2. 先认证再加密
  3. 先加密再认证
  4. 独立进行加密和认证

12.7.1 分组密码链 - 消息认证码

用于保护无限局域网的安全

12.7.2 Galois/计数器模式CCM

可以提高吞吐率和低成本、低延迟

基于CTR的认证加密方案在高速网络中是最高效的工作模式

12.8 密钥封装 KW

12.8.1 应用背景

使用三重DES或AES作为底层加密算法,目的是使通信双方安全交换密钥

一个协议通常需要调用不同层次的密钥,底层密钥调用更加频繁,高级密钥用来加密底层密钥

密钥封装模式是鲁棒的

12.8.2 密钥封装算法

对于64位分组操作

12.9 使用Hash函数和MAC的伪随机数生成器

12.9.1 基于哈希函数的PRNG

12.9.1 基于MAC的PRNG

让人更放心

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:44:47  更:2022-05-15 11:44:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:52:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码