信息安全C散列函数的应用及其安全性2016011992

1:散列函数的具体应用

使用一个散列函数可以很直观的检测出数据在传输时发生的错误。

MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验(Checksum)算法。

2:散列函数的安全性

生日攻击:生日攻击就是利用散列函数发生碰撞的可能性,进行n次尝试直到找到一对碰撞的输入。一个40比特长的消息摘要是很不安全的,大约一百万次随机Hash可至少以50%的概率找到一个碰撞。

Google 的安全团队攻破了SHA-1安全加密算法。这次攻破被命名为 SHAttered attack。研究者提供了两张内容截然不同,在颜色上存在明显差异,但 SHA-1 哈希值却完全相同的 PDF 文件作为证明。哈希碰撞(hash collision,即两个不同文件哈希值一致,也有译作哈希冲突)本来不应该发生。但实际上,当哈希算法存在漏洞时,一个有足够实力的攻击者能够制造出碰撞。进而,攻击者可以用去攻击那些依靠哈希值来校验文件的系统,植入错误的文件造成恶果。

1、已知哈希函数的输出,要求它的输入是困难的,即已知c=Hash(m),求m是困难的。这表明函数应该具有单向性。

2、已知m,计算Hash(m)是容易的。这表明函数应该具有快速性。

3、已知,构造m2使Hash(m2)=c1是困难的。这表明函数应该具有抗碰撞性。

4、c=Hash(m),c的每一比特都与m的每一比特有关,并有高度敏感性。即每改变m的一比特,都将对c产生明显影响。这表明函数应该具有雪崩性。

5、作为一种数字签名,还要求哈希函数除了信息m自身之外,应该基于发信方的秘密信息对信息m进行确认。

6、接受的输入m数据没有长度限制;对输入任何长度的m数据能够生成该输入报文固定长度的输出。3:安全散列函数的发展

2005年MD5的攻破似乎宣告了SHA或许为仅存的安全散列算法。

  SHA-0:SHA由美国标准与技术研究所(NIST)设计并于1993年发表,该版本称为SHA-0,由于很快被发现存在安全隐患,

  SHA-1:1995年发布了SHA-1。

  SHA-2:2002年,NIST分别发布了SHA-256、SHA-384、SHA-512,这些算法统称SHA-2。2008年又新增了SHA-224。

4:md5验证软件完整性可能出现的问题

1. 前缀碰撞

构造前缀碰撞法可以让两个内容不同的文件,在发生前缀碰撞后,使得两个文件内容变得完全相同,也就是得到相同的MD5。第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的MD5消息摘要值相同,虽然这两个程序会在屏幕上打印出不同的字符,但是他们的MD5是一样的,说明MD5算法前缀碰撞法并不安全,MD5 算法不应再被用于任何软件完整性检查或代码签名的用途!。

2. md5算法在验证软件完整性时可能出现的问题

1)程序在屏幕上可能打印出不同的字符,但是它们的 MD5 都是一样的。

2)不能通过校验MD5来知道网站是否被黑客攻击或者植入病毒木马。

3)当软件过大时,在验证过程中所需的时间也会大大增加,第三方攻击的成功概率也会增加。

4)无法保证文件的完整性和正确性,文件可能被篡改或损坏。

  

 

原文地址:https://www.cnblogs.com/Written/p/9033495.html

时间: 2024-08-30 01:33:20

信息安全C散列函数的应用及其安全性2016011992的相关文章

散列函数的应用及其安全性

散列函数的应用及其安全性 一.散列函数的具体应用 Hash(散列函数),一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. 由于散列函数的应用的多样性,它们

2016012099+陈杰+散列函数的应用及其安全性

作业五要求: 作业题目:散列函数的应用及其安全性.内容要求:(1) 给出散列函数的具体应用.(2) 结合生日攻击.以及2004.2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展.问题2的回答可以结合下面给出的第一个链接.(3)结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法来验证软件完整性时

2016012093 马雪 散列函数的应用及其安全性

散列函数的应用及其安全性 一.给出散列函数的具体应用. 1.消息认证 (1)概念:消息认证是用来验证消息完整性的一种机制和服务.消息认证确保收到的消息和发送时是一样的,同时.此外,还要确保发送方声称的身份是真实有效的,当Hash函数用于提供消息认证功能时,被称为消息摘要. (2)使用本质:发送者根据待发送的消息使用该函数计算一组Hash值,然后将Hash值和消息一起发送过去.接收者收到后对于消息执行同样Hash计算,并将结果与收到的Hash值进行对比.如果不匹配,则接收者推断出消息(也可能是Ha

2016012010 赵瑞雪 散列函数的应用及其安全性

作业题目:散列函数的应用及其安全性 内容要求:(1) 给出散列函数的具体应用 (2) 结合生日攻击.以及2004.2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展.问题2的回答可以参考下面给出的第一个链接 (3) 结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法在验证软件完整性时可能出现的问

2016012013 王雪 散列函数的应用及其安全性

散列函数的应用及其安全性 一.散列函数的具体应用 Hash函数 1.Hash算法是把任意长度的输入数据经过算法压缩,输出一个尺寸小了很多的固定长度的数据,即哈希值.哈希值也称为输入数据的数字指纹(Digital Fingerprint)或消息摘要(Message Digest)等.Hash函数具备以下的性质: 2.给定输入数据,很容易计算出它的哈希值: 3.反过来,给定哈希值,倒推出输入数据则很难,计算上不可行.这就是哈希函数的单向性,在技术上称为抗原像攻击性: 4.给定哈希值,想要找出能够产生

2016012026 管凌波 散列函数的应用及其安全性

2016012026 管凌波 散列函数的应用及其安全性 一.散列函数是什么. 散列函数即为Hash函数,就是把任意长度的输入(预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. 因此,一个"好"的Hash函数具有这样的特点:对于大的输入集合使用该函数,产生的输出结果均匀分

2016012030+王超超+散列函数的应用及其安全性

一.散列函数的具体应用 1.单向散列函数在密码学中的应用     A.数字签名技术       a. 利用单向散列函数计算出需要签名的消息的邮摘,再利用签名算法对邮摘签名来代替直接对原来的消息进行签名.        b.有效地提高了签名的效率和速度,也减少了传输的信息量,节约了网络的带宽.     B.消息的完整性认证        a.通常做法是文件的所有者用Hash算法计算出文件的Hash值,自己保存Hash值的一份拷贝,然后把文件存放在一个公开的地方.需要验证一个           文

2016012006崔啸寒 散列函数的应用及其安全性

目录: Ⅰ 散列函数的具体应用. Ⅱ 结合生日攻击.以及2004.2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展. Ⅲ 结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法在验证软件完整性时可能出现的问题. 正文: Ⅰ 散列函数的具体应用. 首先,散列函数的定义是: 散列函数一般指哈希函数(H

2016012003+陈琦+散列函数的应用及其安全性

一.散列函数的具体应用 1.散列函数的定义: Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. 2.Hash算法在信息安全方面的应用: (1)文件