当前课程知识点:网络空间安全技术 > 第4章 网络空间安全防御加密与认证技术 > 4.4 哈希技术 > 4.4 哈希技术
同学们,大家好
今天我们一起来学习
《网络空间安全技术》这门课程的第三篇
网络空间安全防御技术体系
第4章网络空间安全防御加密与认证技术的第四部分内容
哈希技术
在这一节里面
我们分以下几点来跟大家一起讨论
首先
我们要讨论哈希函数的概念和特点
第二我们要讨论
针对哈希算法的攻击及其防御
第三点是介绍传统的哈希算法
第四点我们重点来考察
我们的国产商用哈希算法
第五点是我们这一节的思考与拓展的内容
首先我们来看第一点
哈希函数的概念和特点
首先我们来看哈希函数的概念
所谓哈希函数又称为散列函数
杂凑函数或者是消息摘要函数
它是可以将任意长度的消息M
也就是输入
映射输出为一个长度较短
而且长度固定的值H(M)
称H(M) 为哈希值
或者叫散列值
或者叫杂凑值或者叫消息摘要
哈希函数
本质上它是一种不可逆的压缩映射
压缩映射是指散列值的空间
通常要远小于输入的消息空间
因此
不可能从散列值来确定唯一的输入值
说它是不可逆的映射是指单向密码体制
也就是说从明文到密文的不可逆映射
因此它仅有加密过程而没有解密过程
接下来我们来看一下哈希函数的特点
它的特点主要有六个
首先第一个是易于压缩
也就是说
对于任意大小的原始输入信息
哈希值的长度是很小的
第二个是正向快速(传递)
给定了明文和哈希算法
可以在有限的时间和资源内快速求得
第三个特点是逆向困难
也就是说
从哈希输出
无法倒推输入的原始数值
第四点是抗碰撞性
理想的哈希函数
应该是无碰撞的
第五点是高灵敏性
原始输入信息的微小差异
产生的哈希值可能会截然不同
第六点是长度一致
也就是说长度不同的输入信息
经过散列计算以后
它的哈希值长度是一致的
这就是哈希的六个特点
接下来我们来看一下哈希技术的用途
第一个是数据校验
也就是用来校验数据信息的完整性
第二个是数字签名
也就是说用来
提供信息服务的不可否认性
第三个是鉴权协议
用来验证
用户是否拥有访问系统的权利
接下来我们讨论
针对哈希算法的攻击及其防御
首先
我们要看哈希算法攻击的基本思想
接下来我们讨论一下
碰撞表攻击法与加盐哈希
第三个我们简单介绍一下差分攻击法
首先我们来看
哈希算法攻击的基本思想
我们如何实现针对哈希算法的攻击呢
也就说是逆向还是碰撞
在逆向方面它存在着一定的困难性
任意长的数据经过哈希处理之后
本质上是进行了
有信息损失的这么一种
压缩运算
压缩后所含的信息量已经大大的减少
缺乏还原出初始数据的信息
那么从碰撞的角度考虑,来考察
碰撞的可能性
找到一个原文
算出来的哈希值与已知的哈希值一致
需要利用到
计算哈希值
所需的时间成本和空间成本
可以通过
碰撞表攻击法
和差分攻击法等来实现攻击
接下来我们来看一下碰撞表攻击法与加盐哈希
碰撞表攻击法它的特点
是用来寻求破解的途径
那么暴力碰撞法呢
它的本质是利用计算机的资源
来尝试碰撞
已知的哈希值
穷举法需要耗费极大的时间成本
那么字典法呢也需要
耗费极大的空间成本
因此它在工程上呢是不可行的
第二种方法是时空折衷法
首先我们来看一下彩虹表法
彩虹表是为碰撞哈希值
而准备的预先计算好的一个表
常用于恢复由有限集字符
组成的固定长度的纯文本
它的本质是解决逆向破解难题的“密码对 ”表
哈希链算法
它是利用时空权衡思想
而设计的一种算法来实现
时间和空间的折衷
接下来我们来看一下加盐哈希
利用查表法和彩虹表法的前提是
只有所有数值均以相同的方式
进行哈希加密时才有效
因此我们可以通过
随机化哈希来阻止此类攻击
因此即便是同一个初始值
分别进行两次哈希得到的哈希值
也是不相同的
由此使得碰撞类方法不再有效
那么其中
加盐哈希的一个重要的参数就是盐值
所谓盐值是指在初始值进行哈希之前
混入一段“随机”的字符串也就是“盐值”
即便是同一个初始值
每次都会被哈希为完全不同字符串
而且攻击者无法确知盐值
于是就无法预先计算出一个查询表
或者是彩虹表
那么接下来我们看一下盐值的管理
为了校验初始值是否正确
需要储存盐值
通常将其与哈希值一起存放在
账户的数据库中
或者直接存储为哈希字符串的一部分
接下来我们来看一下差分攻击法
差分攻击法
它的关键在于寻找差分和差分路径
给定一个特定长度的原文M1
加上一个特定常数得到新的明文M2
通过哈希运算
M1和M2就可以得到相同的哈希值
构造差分路径
涉及到如何处理差分循环移位和
选择高概率的充分条件
中国科学家王小云利用差分攻击算法
寻找到了MD5
SHA-1等哈希算法的可能碰撞
为提升全球网络空间的信息安全
做出了杰出的中国贡献
接下来我们来讨论一下
传统的哈希算法
首先我们来看传统哈希算法的分类
接下来
要介绍MD系列算法
以及SHA系列算法
传统哈希算法的分类
从哈希函数概念诞生至今
已经提出了几十种哈希算法
那么每类算法
对应不同的参数
又会形成不同的算法实现
比如说MD系列包括MD2、MD3
MD4、MD5等
SHA系列
包括SHA-1、SHA-224、SHA-256
SHA-384、SHA-512等
当然此外还有其他的一些
哈希算法
比如说CRC-32校验算法
我们来看一下MD系列算法
我们以MD5算法为例
MD5是由美国密码学家
罗纳德.李维斯特设计
于1992年公开
由 MD4导出
MD5算法原理是MD5码
以
512位分组来处理输入的信息
而且
每一个分组又被划分为16个
32位的子分组
经过这样一系列处理算法的输出
由四个32位分组组成
将这四个32位分组级联之后
将生成一个128位的散列值
我们也称为报文摘要
接下来我们讨论MD5算法的安全性
由于MD5算法普遍、稳定
快速的特点,曾广泛应用于
普通数据的安全保护和认证领域
2004年
中国科学家王小云证实
MD5算法无法阻止碰撞
因此不适用于安全性认证
如SSL公开密钥认证
或是数字签名等用途
在实际的应用当中
可遭受到彩虹表等攻击
目前MD5
已经逐步退出了历史舞台
接下来我们看一下第二类
典型的哈希算法
SHA系列算法
我们以SHA-256算法为例
SHA-256算法是
SHA-2算法下的细分算法之一
它是由美国国家安全局(NSA)研发
是其SHA-1的后继者
这个算法的原理是输入按
512位分组进行处理
通过常量的初始化、信息预处理
使用逻辑运算
得到一个256位的散列值
也叫做报文摘要
我们来讨论一下
SHA-256 算法的安全性
SHA系列算法标准是至今世界上使用
最为广泛
而且是安全性比较好的哈希算法之一
目前SHA-256算法
得到了全面推广应用
比如说在区块链当中
它用的哈希函数
就是使用的SHA-256
2005年
王小云证实
SHA-1算法无法防止碰撞
因此不适用于安全性认证
但目前SHA-2算法仍然是安全的
SHA-256安全的主要原因是
该算法产生碰撞的可能性比较小
而且它的报文摘要比较长
因此加大了彩虹表攻击的时间复杂度
和空间复杂度
相对于MD5来说呢
SHA-256更为安全
同学们接下来我们来重点讨论一下
国产商用哈希算法
国产商用哈希算法
主要是SM3杂凑算法
也称为哈希算法或散列算法
这个算法是由我国国家密码管理局于
2010年12月17日发布
相关的标准是
GM/T0004-2012
《SM3密码杂凑算法》
SM3算法给出了杂凑函数算法的计算方法
和相关的计算步骤
并给出了运算示例
在国产商用密码体系当中
SM3主要用于数字签名及验证
消息认证码生成及验证、随机数生成等
而且SM3算法是公开的
目前
它可以满足多种密码应用的安全需求
此外SM3杂凑算法还在SM2
SM9标准当中得到了具体的应用
接下来我们来看一下
SM3算法的国际影响
从安全性上来说
SM3的安全性及效率与
SHA-256相当
含有我国
SM3杂凑算法密码算法的
ISO/IEC10118
《信息安全技术杂凑函数第3部分:专用杂凑函数》
第4版由国际标准化组织
ISO发布
标志着SM3的算法
正式成为国际标准
同学们
接下来我们来看一下这一节的思考与拓展
我们提出的问题是
如何考虑
SM3算法与国际同类算法的比较
我们给出一些提示
比如说在结构实现方面
SM3算法有哪些特点
在自主可控方面
SM3算法能起到哪些作用
在算法安全方面
SM3算法存在哪些优势
还有哪些方面需要改进
这是我们这节课需要同学们
思考和拓展的问题
同学们
本讲结束
感谢观看
下次再见,谢谢
-课程总览
-1.1 网络与网络空间
-1.2 网络安全与网络空间安全
-1.3 网络空间安全与国家安全
-1.4 网络空间安全威胁 风险与攻防
-第1章 习题
--第1章 习题
-2.1 安全理论 技术 与工程的关系
-2.2 网络空间信息系统安全工程
-2.3 网络空间安全技术体系
-2.4 网络安全与攻防对抗模型
-第2章 习题
--第2章 习题
-3.1 攻击模型与攻击链
-3.2 攻击向量与攻击面
-3.3 攻击图
--3.3 攻击图
-3.4 网络安全攻击技术分类
-3.5 典型的安全攻击方法
-第3章 习题
--第3章 习题
-4.1 密码与加密概述
-4.2 对称加密技术
-4.3 非对称加密技术
-4.4 哈希技术
--4.4 哈希技术
-4.5 认证技术与PKI体系
-第4章 习题
--第4章 习题
-5.1 信任体系与零信任安全
-5.2 操作系统与终端安全
-5.3 网络安全防护架构
-5.4 典型的网络安全技术
-第5章 习题
--第5章 习题
-6.1 漏洞扫描与漏洞挖掘技术
-6.2 Web安全技术
-6.3 软件安全技术
-6.4 数据安全技术体系
-6.5 信息隐藏技术
-第6章 习题
--第6章 习题
-7.1 网络安全风险评估技术
-7.2 网络安全测评技术
-7.3 网络安全等级保护
-7.4 网络安全情报分析与态势感知技术
-7.5 内容安全技术
-第7章 习题
--第7章 习题
-8.1 工业控制系统安全保障
-8.2 物联网安全保障
-8.3 信息物理系统安全保障
-8.4 云计算安全保障
-8.5 区块链安全保障
-第8章 习题
--第8章 习题