2016011998 张舒凯 散列函数的应用及其安全性

1.散列函数的具体应用

(1)消息认证:散列函数用于消息认证---消息认证是用来验证消息完整性的一种机制和服务,函数值称为消息摘要,确保收到的数据和发送时的一样(即没有修改、插入、删除或重放),发送者根据待发送的消息使用散列函数f计算一组散列值,再把散列函数值和消息发送出去;接受者收到后统一进行计算,并进行比对,具体方法:

1.使用对称密码算法加密消息和散列码;

2.使用对称密码算法只对散列码进行加密;

3.不使用加密算法,仅使用散列函数;

4.将整个消息和散列值加密。

(2)数字签名:散列函数用于数字签名,进行数字签名时使用用户的私钥加密消息的散列函数的计算值,这种方法应用更加广泛,常见方法:

a.使用发送方的私钥利用公钥密码算法对散列码进行加密;

b.先用发送方的私钥加密散列码,再用对称密码中的密钥对消息和公钥算法加密结果进行加密。

(3)散列函数可以用来产生单向口令文件

(4)散列函数可以用来检测入侵和病毒,通过将每个文件的散列值记录并计算验证是否被修改

(5)散列函数可以用来构建随机函数(PRF)或用于伪随机数发生器(PRNG)

(6)散列函数可以用于鉴权协议。

2.结合生日攻击以及2004、2005年王晓云教授有关MD5安全性和2017年Google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展

(1) 生日攻击是一种通过 “生日悖论”模型来分析散列碰撞的安全性的方法。其基本原理为假定散列函数H有种可能输出(即输出为位),H作用于k个随机输入,则时至少有一个重复出现,发生碰撞现象。这种方法对散列函数的安全性提出了极大的挑战。

(2) MD5安全性:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。然而,在2004年、2005年,王晓云教授提出的一种新方法已经成功攻破MD5,使用该方法只需要2^39次尝试就可以构造出一个MD5碰撞,因此,只需要一台普通的计算机在很短时间内就能破解MD5加密后的消息。

(3) SHA-1的安全性:近年来,安全散列函数(SHA)是使用最广泛的散列函数。然而在2017年已经被攻破,2002年,NIST发布了修订版FIPS 180-2,散列值长度依次为256、384和512位,即SHA-2算法。

(4)散列函数的安全性:其安全性由散列码长度决定,散列函数抵抗暴力攻击的强度完全依赖于算法生成的散列码长度。王晓云教授的碰撞算法提供了一种加速构造碰撞来破解MD5算法的方法,除此之外还有长度拓展攻击,暴力攻击,密码分析方法

(5)安全散列函数的发展:尽管散列函数方法比较优秀,但也不是万能的。常见的单向散列函数有MD和SHA两类。HAVAL为MD系列最新的版本,SHA-1在1995年出现,但目前已经被攻破,因此更加安全,但由于经济原因,应用SHA-1算法加密的https页面虽然并不安全,但无法立刻被SHA-2取代。

3.结合MD5中的选择前缀碰撞及链接中的helloworld.exe和goodbyworld.exe两个可执行文件的MD5消息摘要值和两个文件的执行结果说明MD5算法来验证软件完整性时可能出现的问题:

(1)MD5算法:它的全称是message-digest algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。

(2)MD5算法的选择前缀碰撞:如果两个文件存在任何碰撞(冲突)的地方,发生前缀碰撞后,这两个文件完全相同,即得到相同的MD5。第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的MD5消息摘要值相同,即文件内容不同,但是MD5相同,这说明MD5算法存在着不安全性。正如第二问中谈到,利用王晓云教授的方法,MD5算法已经被彻底攻破。

(3)MD5算法来验证软件完整性时可能出现的问题:

<1>无法保证文件的来源可靠性,即不能确认接收方接收到的文件与发送方

的发出文件一致;

<2>无法保证文件的完整性和正确性,即文件可能被篡改或损坏;

<3>当验证效率较低时,会出现验证时间过长,给中间攻击者的攻击行为提供足够的攻击时间而增加安全风险。

原文地址:https://www.cnblogs.com/canshou/p/9028603.html

时间: 2024-08-26 06:56:37

2016011998 张舒凯 散列函数的应用及其安全性的相关文章

2016012092+张洪宇+散列函数的应用及其安全性

一.散列函数的应用 参考网址:https://baike.so.com/doc/6950285-7172686.html 1.文件校验 我们比较熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏.MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的命令. 2.数字签名 Hash 算

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

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

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

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

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

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

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函数具有这样的特点:对于大的输入集合使用该函数,产生的输出结果均匀分

2016012012+胡雅馨+散列函数的应用及其安全性

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

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

1:散列函数的具体应用 使用一个散列函数可以很直观的检测出数据在传输时发生的错误. MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验(Checksum)算法. 2:散列函数的安全性 生日攻击:生日攻击就是利用散列函数发生碰撞的可能性,进行n次尝试直到找到一对碰撞的输入.一个40比特长的消息摘要是很不安全的,大约一百万次随机Hash可至少以50%的概率找到一个碰撞. Google 的安全团队攻破了SHA-1安全加密算法.这次攻破被命名为 SHAttere