散列函数的应用及其安全性 付淅 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
![](/assets/blank.gif)
● 2002年,公布了SHA-2(SHA-256、SHA-384、SHA-512)
● 2008年,增加了SHA-224
![](/assets/blank.gif)
转载于: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 ...
最新文章
- 1020 Tree Traversals
- CNN 的一些可视化方法!
- 在原有Android项目中快速集成React Native
- python string模块安装_python String模块-阿里云开发者社区
- spark出现bytes consumed error的问题
- 【渝粤教育】电大中专测量学 (5)作业 题库
- Vigenère密码(信息学奥赛一本通-T1402)
- Javascript中暂停功能的实现
- java创建一个图形类getv_java建立类和对象分糖果
- 逆序链表--递归思路
- Free Syslog Forwarder–免费的Syslog转发工具
- Arcgis实现路线等线方向箭头表示
- 《计算机操作系统》(第四版)汤小丹 第二章思维导图
- caffe 安装报错解决办法
- 关于Hsql无法插入的问题
- 物料的周期单位价格突然高得离谱
- java.net.UnknownHostException: localhsot
- 【农历】计算方法--- (阳历转阴历)
- 计算机视觉——三维视觉 I
- c# 的取负数_c# – 负数范围可枚举
热门文章
- 【原创】从AutoCAD中提取明细栏和标题栏中的数据
- windows---ccproxy 报错 ccproxy cannot connect to the control service
- Computer Systems A Programmer's Perspective
- 新建vivado工程仿真或修改原仿真代码后,仿真波形不更新问题(已解决)
- 几张图看懂区块链技术到底是什么?
- Android 控件描边只描一边
- 工程、科学、技术的相互关系
- U盘将FAT32转换NTFS时提示卷有不一致性请运行chkdsk,这样处理就ok
- linux超薄笔记本推荐,2016超薄笔记本买什么好
- 免费教程大型网站整理大集合