密码学初级教程(四)单向散列函数-指纹-
2016-02-01 02:18
253 查看
密码学家工具箱中的6个重要的工具:
对称密码公钥密码
单向散列函数
消息认证码
数字签名
伪随机数生成器
单向散列函数-指纹
单向散列函数是为了保证消息的完整性,也称为一致性。碰撞:两个不同的消息产生同一个散列值的情况称为碰撞。
抗碰撞性:难以发现碰撞的性质称为抗碰撞性。
弱抗碰撞性:要找到和该条消息具有相同散列值的另外一条消息是非常困难的。
强抗碰撞性:要找到散列值相同的两条不同的消息是非常困难的。
单向性:无法通过散列值反算出消息的性质。
单向散列函数也称为消息摘要函数(message digest function)、哈希函数
单向散列函数输出的散列值也称为消息摘要(message digest)或者指纹(fingerprint)
MD4能够产生128比特的散列值,
MD5能够产生128比特的散列值。强抗碰撞性已经被攻破,因此它也不安全了。
SHA-1:160比特的散列值,消息上限为264比特,在实际使用中没有问题。强抗碰撞性已于2005年被攻破。
SHA-2代-SHA-256:256比特,消息上限为264比特,还未被攻破。
SHA-2代-SHA-384:384比特,消息上限为2128比特,还未被攻破。
SHA-2代-SHA-512:512比特,消息上限为2128比特,还未被攻破。
对单向散列函数的攻击
暴力破解:试图破解单向散列函数的“弱抗碰撞性”的攻击。生日攻击:这是一种试图破解单向散列函数的“强抗碰撞性”的攻击。
单向散列函数能够辨别出“篡改”,但无法辨别出“伪装”。
相关文章推荐
- Codeforces 621B Wet Shark and Bishops(判定对角线点+组合数统计)
- 密码学初级教程(八)SSL/TLS-为了更安全的通信
- 一次郁闷的58同城经历
- 记录Android-Studio遇到的各种坑
- openCV学习记录:滤镜:霓虹&曝光
- 出现error: unable to create file tests/P_str_escape/str\\escape.rs的解决办法
- resultType跟resultMap不能同时存在
- Codeforces Round #341 (Div. 2) C. Wet Shark and Flowers
- Codeforces 621A Wet Shark and Odd and Even
- Divide and conquer:Sumsets(POJ 2549)
- 添加系统右键菜单项 管理员取得所有权(W)(带盾牌)
- [android]_[ImageView点击变暗]
- 自定义View笔记一
- 重建二叉树
- 《解释的工具:生活中的经济学原理》读书笔记7(完)
- [android]_[Async异步任务使用]
- 补充:函数间只能用this
- A*启发式搜索算法详解 人工智能
- 【原】AFNetworking源码阅读(五)
- 重设(Resize)Bitmap大小以及获取到圆形头像(Rounded Avatar)的方法