1、给出散列函数的具体应用

(1)消息认证,防止系统遭到主动攻击。有两个方面的目的:

  a.验证消息的发送者是真的。

  b.验证数据完整性,消息在传输、存储过程中未被篡改、重放或延迟,由于雪崩性,稍有改动一比对就会发现。

(2)产生数字签名:计算H(m),然后私钥加密,确认信息发布者,提供身份认证和不可抵赖性。

(3)密钥推导:天生单向性,密钥导出函数(KDF),用于将密钥扩展到更长的密钥或获得所需格式的密钥。

(4)伪随机数生成:通常使用TRNG来产生种子。不知道种子情况下,不管知道序列多少位,都无法预测下一位,从产生的任何值都不能推断出种子值。

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

散列函数的安全性

  (1)先说一下生日攻击,生日攻击法可用于攻击任何Hah算法,只依赖于Hash值的长度。生日悖论:在一个教室里只要有23或23以上的人数,至少有两个人生日相同的概率就大于等于0.5;在一个教室中,找一个生日与某人生日相同的概率不小于0.5时,只需要有学生183人。在碰撞中,使用生日攻击,当进行2^(n/2)次的选择明文攻击下成功的概率将超过0.63。所以生日攻击对散列函数安全性是非常大的,生日攻击对散列函数的安全提出一个必要条件,消息一定要够长。统计结果表明,当Hash值长度为128比特时,任意两个报文M1、M2具有相同hash值的概率接近零。标准安全hash值为160比特。

  (2)MD5。先了解了一下MD5的加密过程

  1.消息填充:将消息长度填充至差64位就是512的倍数。那64位是表示填充长度的,是先从低位表示填充长度的。

  2.填充后的消息是512的倍数,然后按512分组,每组又是16个32位长的字。

  3.初始化中间结果:128位的缓存区来存储中间结果,对其初始化4个32位长的寄存器分别存放四个固定的整数。

  4.迭代压缩:每个分组经压缩函数HMD5处理。

  5.    输出:最后一个HMD5的输出即为消息摘要。

  王小云教授的成就是找到了MD5迅速碰撞的方法,这是个巨大的进步,但距离实用价值还有很大距离。哈希函数是不可逆的,从MD5哈希值反向推出原始信息是不可能的,王教授只是找到了快速碰撞的方法。就是根据MD5哈希值快速找到另外一个报文也是这个哈希值,但是理论上一个MD5哈希值对应无穷多的原始报文,目前想根据MD5哈希值对原始报文信息进行篡改还是不可能的。

  (3)SHA-1。与前身MD5相比,SHA-1的输出长度更长(MD5输出长度为128bit,而SHA-1的输出长度为160bit),这也意味着出现哈希碰撞的概率更低。同时,SHA-1的安全性似乎也比MD5更好。王小云教授所在的团队提出了一个一种寻找SHA-1碰撞的,相对快速的攻击方法,这标志着SHA-1存在漏洞。

目前安全散列函数的发展

  2004年8月中国密码学家王小云教授等首次公布了提出一种寻找MD5碰撞的新方法。目前利用该方法用普通微机几分钟内即可找到MD5的碰撞,MD5已经被彻底攻破。MD5已经受了重伤;它的应用就要淘汰。SHA-1仍然活着,但也不会很长。著名计算机公司SUN的LINUX专家Val Henson则说:“以前我们说"SHA-1可以放心用,其他的不是不安全就是未知", 现在我们只能这么总结了:"SHA-1不安全,其他的都完了"。近些年,应用最广泛的散列函数是SHA。

  ● 1995年公布SHA-1
   ● 2002年,公布了SHA-2(SHA-256、SHA-384、SHA-512)
   ● 2008年,增加了SHA-224

  针对王小云教授等破译的以MD5为代表的Hash函数算法的报告,美国国家技术与标准局(NIST)于2004年8月24日发表专门评论,评论的主要内容为:“在最近的国际密码学会议(Crypto 2004)上,研究人员宣布他们发现了破解数种HASH算法的方法,其中包括MD4,MD5,HAVAL-128,RIPEMD还有 SHA-0。分析表明,于1994年替代SHA-0成为联邦信息处理标准的SHA-1的减弱条件的变种算法能够被破解;但完整的SHA-1并没有被破解,也没有找到SHA-1的碰撞。研究结果说明SHA-1的安全性暂时没有问题,但随着技术的发展,技术与标准局计划在2010年之前逐步淘汰SHA-1,换用其他更长更安全的算法(如SHA-224、SHA-256、SHA-384和SHA-512)来替代。”

  现在Google,facebook,微软,苹果等早已经换成了暂时安全的sha-256,sha-512等算法,属于sha-2系列,发布快十五年了,应该很快就可以看到国际主流的网站更换sha-3算法了。

3、md5算法来验证软件完整性时可能出现的问题

  (1)对于第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件,会打印出不同的字符,但它们的MD5是一样的。密码学家曾使用“构造前缀碰撞法”来进行攻击,用了不到两天,得出结论:MD5算法不应再用于任何软件完整性检查或代码签名的用途!现在,如果仅仅是想要生成 MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。
这几位密码学家编写的“快速 MD5 碰撞生成器”:

http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
源代码:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip

  (2)签名算法受到威胁。王小云教授发现,可以很快的找到MD5的“碰撞”,就是两个文件可以产生相同的“指纹”。这意味着,当你在网络上使用电子签名签署一份合同后,还可能找到另外一份具有相同签名不同内容的合同,这样两份合同的真伪性便无从辨别。王小云教授的研究成果证实了利用MD5算法的碰撞可以严重威胁信息系统安全,这一发现使目前电子签名的法律效力和技术体系受到威胁。

转载于:https://www.cnblogs.com/yanglqa/p/9032289.html

2016012086+杨岚青+散列函数应用及安全性相关推荐

  1. 上海交通大学计算机科学杨岚青博士,上海交通大学2014年硕士生拟录取名单公示(4)...

    上海交通大学2014年硕士生拟录取名单公示(4) 时间:2014-04-16 整理:一品考研网 发表评论 020 机械与动力工程学院 085226 核能与核技术工程 专业学位1024841024802 ...

  2. 上海交通大学计算机科学杨岚青博士,孤立性肺结节外科诊断相关问题的研究

    孤立性肺结节外科诊断相关问题的研究 [摘要]:第一部分实性结节和亚实性结节的对比分析目的探讨实性结节和亚实性结节的病理特点并结合临床.影像学资料进行对比分析.方法回顾性分析自2012年1月到2015年 ...

  3. 锦佰安科技副总裁杨海青:AI行为识别身份认证助力移动金融支付安全

    7月27日,2018金融科技与支付安全(山东)论坛在青岛成功举办.本次论坛由山东省支付清算协会.山东省信息网络安全协会主办,金科创新社承办.论坛吸引了近百位金融业内权威.网络安全专家就金融科技与安全等 ...

  4. 宋词有感 — 杨俊青

    今天,我读完了宋词三百首.宋词是宋朝的一些词人写下的"诗".宋词.唐诗.元曲,这是耸立在我国韵文史上的三座绚丽的高峰.在三百余年的两宋文坛,最为成功,最富有创造性的文学莫过于词了. ...

  5. 软件工程导论团队项目

    软件工程导论团队项目(速课小龙) 一.团队介绍 1.团队成员 邓  旭 2016012068 (组长) 陈逸璇 2016012056 周紫伊 2016012043 谢月鹏 2016012066 洪泽芳 ...

  6. 信息系统分析与设计杨选辉_信息系统分析与设计

    spContent=本课程按照传统的结构化开发方法由浅入深.完整地介绍了信息系统的设计与开发的全过程:还着重介绍了当前最为流行的面向对象的信息系统分析与设计方法. 课程精选了开发过程中最基本.最实用的 ...

  7. 基于SSM的概念可视化程序设计学习系统 毕业设计-附源码021009

    SSM概念可视化程序设计学习系统 摘 要 随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使用人们的生活与工作方式发生了很大的改观.网络技术的应用使得计算机之间通信.在线学习成为可能,而 ...

  8. 基于java的CRM客户关系管理系统的设计与实现

    本科毕业设计(论文) 题 目: 基于java的CRM客户关系管理系统的设计与实现 专题题目: 说 明 请按以下顺序编排: 封面 任务书 开题报告 中外文摘要及关键词 目录 正文 附录(可选) 参考文献 ...

  9. java基于ssm的学校教务管理系统的设计与实现论文-计算机毕业设计

    学校教务管理系统的设计与实现 摘 要 学校教务管理信息化是提高办公效率的主要途径,随着我国高等教育的快速发展,学校办学规模的不断扩大,在校学生人数不断增多,办学层次出现多元化,由一地办学发展到多地多点 ...

最新文章

  1. 倪光南:看好鸿蒙系统,坚持生态体系创新才能不被“卡脖子”
  2. Azure:不能把同一个certificate同时用于Azure Management和RDP
  3. Paxos与zookeeper
  4. Redis数据持久化之AOF持久化
  5. python实例化类执行顺序_Python实例化class的执行顺序
  6. 【计组实验】P1 logisim完成单周期处理器开发 MIPS指令集
  7. CCF大专委2018年大数据发展趋势预测
  8. 流行的某导航网站系统源码 收录系统源码
  9. atxserver运行没有反应_硫酸盐对厌氧系统的影响及运行注意事项!
  10. 微信号都可以改了,那淘宝号呢?官方硬核回应遭网友吐槽:你没有心!
  11. Linux启动流程与模块管理(15)
  12. Spring Aware接口注入
  13. CLion:使用CLion新建一个C语言项目
  14. 武忠祥<高等数学辅导讲义> 第一章
  15. 手把手全面解读思科(Cisco)网络技术学院 考试折扣号申请说明
  16. PostgreSQL 修改数据库用户的密码
  17. Thinkphp5的项目配置到西部数码虚拟主机
  18. php项目排期表模板,最近在开发后台管理,想问下广告排期表怎么做?
  19. 【CodeForces】【BFS】【状压】718E Matvey's Birthday
  20. 淘宝网携手富友软件助力时尚行业电子商务营销

热门文章

  1. WinCE驱动编写小结
  2. Apache2 之虚拟主机设置指南
  3. html+js浏览器检测
  4. 汽车之家全系车型(包含历史停售车型)图片--参数分析
  5. apache 提示You don't have permission to access /test.php on this server.怎样解决
  6. springboot配置spring.profiles.active多环境支持
  7. IDEA配置自定义maven库
  8. 关于函数的调用是否加括号的问题
  9. 51Nod 1294 修改数组 —— LIS
  10. JSON.stringify()和JSON.parse()分别是什么