文章目录

  • 一、报文鉴别
  • 二、鉴别分类
  • 三、报文鉴别
  • 四、密码散列函数
  • 五、MD5 算法
  • 六、SHA-1 安全散列算法
  • 七、MAC 报文鉴别码

一、报文鉴别


计算机网络安全措施 :

① 针对被动攻击 ( 截获 ) : 加密 ;

② 针对主动攻击 ( 篡改 , 伪造 ) : 需要使用 鉴别 ;

报文鉴别 : 接收方 可以 验证其接收到的 报文的真伪 ; 包括 发送者身份 , 内容 , 发送时间 , 报文序列等 ;

报文鉴别方法 : 加密 可以 实现 报文鉴别 , 但是网络中对于保密性不高的数据来说 , 可以不进行加密 , 接收者 需要使用 简单方法确认报文的真伪 ;

鉴别与授权 区别 : 这是两个不同的概念 ; 授权是指 所执行的操作是否被系统允许 ; 如 访问权限 , 读写权限 等 ;

二、鉴别分类


鉴别分类 :

① 报文鉴别 : 端点鉴别 + 报文完整性鉴别 ; 确认 报文 是由 发送者 发出 , 不是伪造的 ;

② 实体鉴别 : 端点鉴别 ; 确认 报文 发送者 实体 ( 应用进程 / 主机设备 / 人员 ) ;

三、报文鉴别


报文鉴别 : 报文 接收者 需要鉴别报文真伪 , 需要使用 数字签名 ;

① 弊端 : 增加计算负担 , 对数据很长的报文 进行 数字签名 , 需要 很大的计算量 ;

② 需求 : 在不需要对数据进行加密时 , 使用 简单方法 进行报文的真伪鉴别 ;

不需加密时 , 使用密码散列函数进行 真伪鉴别 ;

四、密码散列函数


散列函数 : 是非常简单的 报文 鉴别方法 , 计算量小 ;

① 散列值 : 散列函数 输入 很长的 值 , 输出 较短的 固定的值 ; 输出值 称为 散列值 / 散列 ;

② 对应关系 : 输入 和 输出 是 多对一 的 , 不同的输入 可能对应 相同的输出 ;

密码散列函数 :

① 概念 : 密码学 中使用的 散列函数 , 称为 密码散列函数 ;

② 单向性 ( 输入值 -> 散列值 ) : 给定 一个散列值 , 无法通过计算得出 输入值 ; 只能从 输入值 计算出 散列值 , 不能根据 散列值 计算 输入值 ;

③ 不可伪造 : 即使 固定长度的 散列值 被截获 , 截获者无法伪造出一个 对应的输入值 ( 明文 / 发送数据 ) ;

密码散列函数 示例 :

  • 报文摘要算法 MD5
  • 安全散列算法 SHA-1
  • 性能比较 : SHA-1 的计算量 高于 MD5 , SHA-1 安全性高与 MD5 ;

五、MD5 算法


MD5 算法 :

① 名称来源 : 报文摘要 ( Message Digest ) 算法 第五版 , 简称为 MD5 ;

② 无法计算反推报文 : 根据 MD5 算法 , 反推出报文 , 计算上几乎不可能 ; ( 撞库可以 , 但不是计算出来的 )

③ 原理 : 使用复杂的算法 , 将报文数据位打乱 , MD5 码每一位 都与 原报文中的每一位有关 , 原报文只要有一位改变 , 对应的 MD5 完全不同 ;

MD5 算法步骤 :

① 长度项 : 将 报文数据 模 2642^{64}264 计算余数 , 该余数 646464 位 , 追加在报文数据末尾 , 组成新的报文 ; 追加的余数 称为 长度项 ;

② 填充项 : 在 报文 和 长度项 之间填充 1 ~ 512 位数据 , 使填充后的 整体报文长度是 512512512 的整数倍 , 填充项 第一位是 111 , 后面都是 000 ;

③ 数据分组 : 将 填充后的 报文 分割成 512 位数据块 , 再将每个 512 位的数据块 分割成 四个 128 位小数据块 ;

④ 计算 : 将 四个 128 位数据块 , 按照顺序 使用不同的 散列函数 进行 四轮计算 ; 每轮计算中 , 128 位数据块拆分成 四个 32 位 小数据块进行计算 ;

直到计算出最后的 128 位的 MD5 值 ;

六、SHA-1 安全散列算法


SHA-1 安全散列算法 :

① 性能 : 比 MD5 算法更安全 , 但是计算复杂性高于 MD5 ;

② 版本 : SHA-1 , SHA-2 , SHA-3 ;

SHA-1 安全散列算法 原理 :

① 算法输入输出 : 输入码长 低于 2642^{64}264 位 , 输出码长 160160160 位 ;

② 计算过程 : 将明文 分割成 512 位数据块 , 每块都与当前的 报文摘要 集合 , 产生下一个报文摘要中间值 , 直到所有的数据库计算完毕 ;

③ 执行次数 : 上述工作共执行 五次 ;

④ 性能 : SHA-1 效率低于 MD5 , 抗穷举性高与 MD5 ;

七、MAC 报文鉴别码


MD5 缺陷 : MD5 报文鉴别 可以防止 篡改 , 但 不能防止 伪造 ; 不能实现报文鉴别 ;

伪造 示例 :

① 伪造报文 : 黑客 伪造了一个报文 , 并计算出其散列值 , 然后冒充 发送者 A 将其发给 接收者 B ;

② 验证伪造报文成功 : 接收者 B 收到 报文 和 散列值 , 通过计算后 , 发现该 报文 与 散列值 对应 , 就认为 该报文是 A 发送的 ;

MAC 报文鉴别码 :

① 散列值加密 : 上述 黑客 伪造了 报文 和 散列值 , 导致接收者接收了伪造报文 ; 这里为了防止上述情况 , 对 散列值 进行私钥加密 , 黑客没有对应的私钥 , 因此 无法伪造出对应加密的 散列值 , 接收者使用公钥解密 , 肯定无法与伪造的报文对应 , 这里就实现了身份鉴别 ;

② 报文鉴别码 MAC : 对散列值加密后的密文 , 称为 报文鉴别码 ( Message Authentication Code ) ;

报文鉴别码 可以 防伪造 , 防否认 ;

【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )相关推荐

  1. MD5单向散列算法详解

    历史: MD5 叫信息-摘要算法,是一种密码的算法,它可以对任何文件产生一个唯一的MD5验证码,每个文件的MD5码就如同每个人的指纹一样,都是不同的,这样,一旦这个文件在传输过程中,其内容被损坏或者被 ...

  2. 在报文摘要算法MD5中,首先要进行明文分组与填充,其中分组时明文报文摘要按照(42)位分组。【答案】C

    在报文摘要算法MD5中,首先要进行明文分组与填充,其中分组时明文报文摘要按照(42)位分组. (42)A.128 B.256 C.512 D.1024 [答案]C [解析]本题考查报文摘要算法的基础知 ...

  3. 散列算法比较:MD5、SHA1、SHA256有哪些区别

    在信息安全领域,经常会用到MD5.SHA1.SHA256算法.这三种算法都属于散列算法,或者叫作哈希算法.它们具有输入任意长度,输出长度固定,以及单向性(无法根据散列值还原出消息)的特点.那么,MD5 ...

  4. 散列算法(也叫:摘要算法)

    散列算法(也叫:摘要算法): 特点: ① 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的. ② 消息摘要看起来是"随机的".这些比特看上去是胡乱的杂凑在一起的. ③ 一般 ...

  5. MD5(单向散列算法)原理分析

    注:本文章转载于网络. MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. ...

  6. 称密码、非对称密码、散列算法与 PKI

    对称密码.非对称密码.散列算法与 PKI 密码学要解决的问题:机密性.完整性.身份验证(抗抵赖性): 一.对称密码: 对称密码技术:发件人和收件人使用其共同拥有的单个密钥 , 这种密钥既用于加密,也用 ...

  7. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01

    这个小项目包含了注册与登录,使用了springboot+mybatis+shiro的技术栈:当用户在浏览器登录时发起请求时,首先这一系列的请求会被拦截器进行拦截(ShiroFilter),然后拦截器根 ...

  8. shiro认证+授权(使用MD5+salt+散列加密)

    通过上文自定义realm分析源码可得https://blog.csdn.net/Kevinnsm/article/details/11183124 用户认证在doGetAuthenticationIn ...

  9. Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法

    一.Shiro介绍: 1.什么是shiro: (1)shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证.用户授权. (2)spring中有spring security,是一个 ...

最新文章

  1. Java中创建String的两种方式差异
  2. linux ftp服务器搭建及用户的分配,Linux搭建FTP服务器
  3. 关于c语言结构体偏移的一点思考
  4. 产品团队的批判性思维:如何通过合理的决策带来合理的结果?
  5. LeetCode-- Unique Binary Search Trees II
  6. 获得勾选框 html,是否可以在HTML中选中或未选中的勾选框中收集数据?
  7. mysql resultmap_MyBatis ResultMap
  8. [CH5E02] A Little Shop of Flowers
  9. 【Flutter】微信项目实战【04】发现界面搭建
  10. model.load_state_dict(checkpoint[‘state_dict‘]) KeyError: ‘state_dict‘
  11. 博客园添加背景音乐,给你的博文加点料
  12. 为什么我用腾讯会议录屏没声音?教你一招搞定!
  13. 三个臭皮匠赛过诸葛亮!白话Blending和Bagging
  14. P3840蜗牛一期--虚拟局域网VLAN
  15. 【LeetCode】﹝并查集ி﹞连通分量个数(套用模板一直爽)
  16. PS批量给图片加水印
  17. Windows下虚拟键盘鼠标(USB中文网)
  18. miscellaneous_7
  19. 电网电压的三相静止对称坐标系和三相电网电压的相量表示法
  20. 机器学习实战-泰坦尼克号生存预测案例

热门文章

  1. 网管日志-06.07.21
  2. npm: 权限阻止修复
  3. iOS pods更新失败
  4. QT删除QWidget或QLayout下的控件
  5. STM32 FSMC学习笔记+补充(LCD的FSMC配置)
  6. 关于编译原理的一点看法
  7. Cocoapods 第三方类库管理工具
  8. 如何将自己的站点与Ucenter整合——详解
  9. win10系统Docker和VMware WorkStation共存,远程工具连接Docker
  10. vue中如何使用mockjs摸拟接口的各种数据