散列函数的应用及其安全性 付淅 2016012063
题目内容要求:(1) 给出散列函数的具体应用。(2) 结合生日攻击、以及2004、2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展。问题2的回答可以参考下面给出的第一个链接。(3)结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法在验证软件完整性时可能出现的问题。
链接1:https://www.win.tue.nl/hashclash/
链接2:http://www.win.tue.nl/hashclash/SoftIntCodeSign/
一、散列函数的具体应用
散列函数,也称哈希函数(HASH),就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
对于HASH函数的使用,有很多误区,在此特列举其使用场景以及常见的使用误区。但是不论如何,我们都该记得HASH函数的特点:固定长度的输出,单向不可逆,碰撞约束。
正确的应用场景:
1,数据校验
HASH函数有类似数据冗余校验类似的功能,但是它比简单的冗余校验碰撞的概率要小得多,顾而在现在密码学中总是用HASH来做关键数据的验证。
2,单向性的运用
利用HASH函数的这个特点,我们能够实现口令,密码等安全数据的安全存储。密码等很多关键数据我们需要在数据库中存储,但是在实际运用的过程中,只是作比较操作,顾而我们可以比较HASH结果。这一点相信在银行等系统中有所运用。
3,碰撞约束以及有限固定摘要长度
数字签名正是运用了这些特点来提高效率的。我们知道非对称加密算法速度较低,通过HASH处理我们可以使其仅仅作用于HASH摘要上,从而提高效率。
4,可以运用HASH到随机数的生成和密码,salt值等的衍生中
因为HASH算法能够最大限度的保证其唯一性,故而可以运用到关键数据的衍生中(从一个随机的种子数产生,并且不暴露种子本身秘密)。
二、散列函数的安全性以及目前安全散列函数的发展
单向散列函数或者安全散列函数之所以重要,不仅在于消息认证(消息摘要,数据指纹),还有数字签名(加强版的消息认证)和验证数据的完整性。常见的单向散列函数有MD5和SHA。散列函数的两个特点:1.输出固定长度的 2. 不可逆转
生日攻击:利用“两个集合相交”问题的原理生成散列函数碰撞,达到目的的攻击称为生日攻击,也称为平方根攻击。生日攻击方法没有利用Hash函数的结构和任何代数弱性质,它只依赖于消息摘要的长度,即Hash值的长度。
MD5:用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一,主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
简单散列函数
所有的散列函数都按照下面的基本操作,把输入(消息、文件等)看成n比特块的序列。对输入用迭代方法处理一块,生成n比特的散列函数。
Ci = bi1⊕ bi2⊕ … ⊕ bim
● 2002年,公布了SHA-2(SHA-256、SHA-384、SHA-512)
● 2008年,增加了SHA-224
转载于:https://www.cnblogs.com/fux137/p/9021774.html
散列函数的应用及其安全性 付淅 2016012063相关推荐
- 2016012009 马佳欣 散列函数的应用及其安全性
散列函数的应用及其安全性 马佳欣 2016012009 (1)散列函数的具体应用 由于散列函数的应用的多样性,它们经常是专为某一应用而设计的.例如,加密散列函数假设存在一个要找到具有 ...
- 2016012075 谢月月 散列函数的应用及其安全性
散列函数的应用及其安全性 一.散列函数的应用 1.消息认证: (1).消息认证的定义:消息认证是用来验证消息完整性的一项机制或服务.消息认证确保收到的数据确实和发送时的一样(即没有修改.插 ...
- 2016012026 管凌波 散列函数的应用及其安全性
2016012026 管凌波 散列函数的应用及其安全性 一.散列函数是什么. 散列函数即为Hash函数,就是把任意长度的输入(预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是 ...
- 2016012072+张济吨+散列函数的应用及其安全性
一.散列函数的具体应用 1.消息认证 消息认证是用来验证消息完整性的一种机制或服务.消息认证确保收到的数据确实和发送时的一样(及没有修改.插入.删除或重放).此外,还要求消息认证机制确 ...
- 2016012056+陈逸璇+散列函数的应用及其安全性
散列函数的应用及其安全性 一.散列函数的应用 1.错误校正 使用一个散列函数可以很直观的检测出数据在传输时发生的错误. 2. 语音识别 对于像从一个已知列表中匹配一个MP3文件这样的应用,一种可能的方 ...
- 散列函数的应用及其安全性
一.散列函数的具体应用: 1.文件校验 我们比较熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏.M ...
- 2016012028 赵莉 散列函数的应用及其安全性
目录: 一.散列函数的具体应用: 二.散列函数的安全性以及目前安全散列函数的发展: 三.md5算法来验证软件完整性时可能出现的问题. 一.散列函数的具体应用 密码学中,Hash函数被广泛应用于各种不同 ...
- 2016012025 童宇欣 散列函数的应用及其安全性
一.散列函数的具体应用 密码学中,Hash函数被广泛应用于各种不同的安全应用和网络协议中.以下是散列函数的一些具体应用. 1.消息认证 (1)消息认证概念:消息认证是用来验证消息完整性的一种机制和服务 ...
- 丁小帅+2016012047+作业5
散列函数的应用及其安全性 本次作业为扩展有关散列函数安全性的知识扩展. 作业题目:散列函数的应用及其安全性. 内容要求: (1) 给出散列函数的具体应用. (2) 结合生日攻击.以及2004.2005 ...
最新文章
- 转载一个关于JavaScript几种继承方法的总结
- C语言学习笔记---随机数rand()函数
- 内置函数filter()
- [问题2014S07] 解答
- Python【每日一问】35
- MonkeyTest小结
- Drools规则引擎入门小demo
- 开场PPT动画怎么做炫酷
- UI - PS如何导入不同的字体
- android flurry 教程,android一种统计工具Flurry的使用说明
- uboot启动流程详细分析(基于i.m6ull)
- 永磁直流电机 matlab仿真,永磁直流电动机的Simulink建模仿真优秀教学.doc
- mysql表分区数量限制_详解MySQL分区表的局限和限制的代码实例
- Redis学习笔记(B站狂神说)(自己总结方便复习)
- 怎么修复老照片?给你推荐这几个修复方法
- maven项目安装本地包实战演示
- 麒麟V10 arm 环境配置yum源
- 微信小程序上划加载下划刷新
- 安科瑞ANSVC无功补偿装置的应用
- android固件集成
热门文章
- chatroom项目手册
- LPK病毒专杀工具C源代码
- 【L2-031 深入虎穴】天梯赛L2系列详解
- ENVI高分一号卫星预处理:以GF-1/WFV多光谱数据为例(含定标系数)
- java 静态全局变量_静态变量static和全局变量global
- php正则匹配sg-nc-wap_Pandas基础操作(上)
- CREO:CREO软件之零件【模型】操作之复制/粘贴、再生模型、旋转中心开关、隐含、只读、特征操作、模型缩放的简介及其使用方法(图文教程)之详细攻略
- FPGA的学习:HDMI显示器驱动设计与验证
- 简述 RPF机制,PIM-DM工作机制,PIM-SM工作机制
- Android 听筒扬声器切换(多机型兼容、兼容5.0以上)