• 密码学基础:搞懂Hash函数SHA1、SHA-2、SHA3(1)


    目录

    1.消息摘要(Hash)

    2.SHA-1

    3.SHA-2

    4.小结


    1.消息摘要(Hash)

    Hash函数是一种单向密码体制,把任意长度的输入经过变换得到一个固定长度的输出,同时它还具备单向性,只能从明文到密文,不能逆向,正是由于Hash函数的单向性和输出长度固定的特性,使得其广泛应用在数据完整性验证和数字签名等领域。

    常见Hash函数基本采用迭代结构,接收输入消息M,将其拆分为n个固定长度分组,如果最后一个数据块不满足要求,则需进行填充;该算法重复使用压缩函数f,进行计算得到最终输出,如下图所示:

    图 1 Hash函数过程

    常见的函数包含SHA-1、SHA-2家族、SHA-3家族、MD5、SM3等。

    2.SHA-1

    SHA全称Secure HASH Algorithm,由NIST开发;SHA-1于1995年进行修订发布,要求输入最大长度2^64 -1位数据,输出固定160位消息摘要,处理过程按照512位数据块进行分组。

    SHA1的IV设定方法为十六进制数(0-F),每两个数构成一个字节,其中A(32bit数)顺时针0-7,B顺时针8-F,C逆时针F-8,D逆时针7-0,E取C3\D2\E1\F0,因此固定为:

    (0x67452301U), (0xEFCDAB89U), (0x98BADCFEU), (0x10325476U),(0xC3D2E1F0U)

    不过,在2017年,研究人员成功实施了对SHA-1算法的碰撞攻击,找到了两个不同的消息,但具有相同的SHA-1散列值。这引发了对SHA-1安全性的担忧,因为碰撞攻击可能导致数字签名和其他安全机制的破坏,因此在应用中不建议使用该算法。

    3.SHA-2

    SHA-2是一系列Hash函数的统称,其中包括SHA-224\256\384\512等,区别主要在于函数内部结果和生成的摘要值长度,SHA-512还有另外变体为SHA512_224、SHA512_256,主要是基于SHA512产生的摘要值进行截断,与SHA512区别在于IV和输出长度不一致。

    其中,SHA-224\256分组大小为512位,SHA-384, SHA-512, SHA-512/224和SHA-512/256分组大小为1024bit。

    SHA-224生成224位消息摘要,初始IV为:

       (0xC1059ED8U),(0x367CD507U),(0x3070DD17U),(0xF70E5939U),

       (0xFFC00B31U),(0x68581511U),(0x64F98FA7U),(0xBEFA4FA4U)

    SHA-256生成256位消息摘要,初始IV(取自然界前8个素数平方根小数部分前32位)为:

        (0x6A09E667U),(0xBB67AE85U),(0x3C6EF372U),(0xA54FF53AU),

    (0x510E527FU),(0x9B05688CU),(0x1F83D9ABU),(0x5BE0CD19U)

    SHA384生成384位消息摘要,初始IV为:

    (0xCBBB9D5DC1059ED8),(0x629A292A367CD507),

    (0x9159015A3070DD17), (0x152FECD8F70E5939),

    (0x67332667FFC00B31), (0x8EB44A8768581511),

    (0xDB0C2E0D64F98FA7), (0x47B5481DBEFA4FA4)

    4.小结

    这里我们先就将基础的SHA1\2讲解了,接下来我们继续聊SHA-3、SHA2变体SHA512_224\256等。 

  • 相关阅读:
    Docker搭建Mysql主从复制
    【红日靶场】vulnstack1-完整渗透过程
    内存泄漏Memory leak
    基于SSH开发物流仓储调度系统 课程设计 大作业 毕业设计
    etcd实现大规模服务治理应用实战
    一个完全纯净的windows资源站
    Python:实现quantum entanglement量子纠缠技术算法(附完整源码)
    关于电脑一天24小时多少度电电脑的一天用电量计算
    apisix健康检查测试
    为什么Java中“1000==1000”为false,而”100==100“为true?
  • 原文地址:https://blog.csdn.net/djkeyzx/article/details/140929146