密码学笔记之 什么是SHA

SHA是一种安全哈希算法,校验文件与原文件的是否一致,以保证没有被篡改过

举个现实生活的例子

我们每个人都需要一个用于区分自己与他人不同的标志
也许你会想用姓名或者身份证等来代表你,但是这些都不是有效的区分你和他人的方法
因为姓名可能重复身份证可以伪造。所以目前最可靠的可能就是你的基因序列了,
但这样做的成本就太高了,所以指纹是一个不错的选择

互联网的例子

同样,互联网传输数据也需要标示一个文件,以确认文件的唯一性
而SHA就是生成文件唯一性的一种方式(算法)

SHA算法

SHA是一组算法的统称

  • SHA0 (发布之后很快就被NSA撤回,是SHA-1的前身)
  • SHA1
  • SHA2
    • SHA224
    • SHA256
    • SHA384
    • SHA512
  • SHA3 (2015年正式发布,SHA-3并不是要取代SHA-2,因为SHA-2目前并没有出现明显的弱点)

SHA算法家族哈希值大小及输出长度

  • SHA-1算法的哈希值大小为160位,其计算输出长度为40位。
  • SHA-224算法的哈希值大小为224位,其计算输出长度为56位。
  • SHA-256算法的哈希值大小为256位,其计算输出长度为64位。
  • SHA-384算法的哈希值大小为384位,其计算输出长度为96位。
  • SHA-512算法的哈希值大小为384位,其计算输出长度为128位。

SHA-1不再推荐使用

早在2014年,Chrome小组就宣布将逐渐淘汰对SHA-1的使用。

SHA-1攻击

  • 在2005年,密码学家证明SHA-1的破解速度比预期提高了2000倍。但是破解仍然是极其困难和昂贵的。但是随着计算机变得越来越快和越来越廉价,在互联网上停止使用SHA-1算法只是时间的问题。
  • SHA-1早在2011年就已经被建议替换。只不过因为兼容性问题和成本问题,有些对安全不太重视的厂商还在使用SHA-1
Comments
Write a Comment