zoukankan      html  css  js  c++  java
  • 密码学初级教程(四)单向散列函数-指纹-

    密码学家工具箱中的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比特,还未被攻破。

    对单向散列函数的攻击


    暴力破解:试图破解单向散列函数的“弱抗碰撞性”的攻击。

    生日攻击:这是一种试图破解单向散列函数的“强抗碰撞性”的攻击。

    单向散列函数能够辨别出“篡改”,但无法辨别出“伪装”。

  • 相关阅读:
    进程同步和死锁;事务、悲观锁、乐观锁、表锁、行锁
    快速排序
    oracle索引分类
    数据结构
    MySQL视图
    sql优化的方法
    MySQL索引
    转:关于ROWNUM的使用
    转载:mybatis踩坑之——foreach循环嵌套if判断
    Spring 注意事项
  • 原文地址:https://www.cnblogs.com/yaochc/p/5174309.html
Copyright © 2011-2022 走看看