为什么Git不使用更现代化的SHA? [英] Why doesn't Git use more modern SHA?

查看:161
本文介绍了为什么Git不使用更现代化的SHA?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我读到Git使用SHA-1摘要作为修订版的ID。为什么它不使用更现代版本的SHA?

解决方案

更新:上述问题和这个答案是从2015年开始的。自那时以来,Google宣布了第一次SHA-1冲突: https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html






很显然,我只能从外部推测Git继续使用SHA-1的原因,但这可能是以下原因之一:


  1. Git是Linus Torvald的创作,而Linus显然不想用SHA1替代另一种哈希算法。 他做出了合理的说法,即成功的SHA-针对Git的1次基于碰撞的攻击要比实现碰撞本身困难得多,并且考虑到SHA-1比它应该是弱的而不是完全破碎的,至少在今天使它实质上远离可行的攻击。此外,他指出,如果碰撞物体比现有物体晚到达,那么成功攻击就会实现的很少,因为后者会被认为与有效物体相同并被忽略(尽管其他人已经指出反过来可能发生)。

  2. 更改软件非常耗时且容易出错,尤其是当现有基础架构和基于现有协议的数据必须迁移时。即使那些以加密安全性为系统唯一点的软件和硬件产品的制造商仍然处于从SHA-1和其他弱点算法转移的过程中。试想一下,所有那些硬编码的 unsigned char [20] 缓冲区遍布整个地方;-),在开始时编程加密敏捷性要容易得多,而不是稍后对其进行改造。

  3. SHA-1的性能优于各种SHA-2哈希值(可能不是现在成为一个交易断路器,但可能是10年前的一个棘手问题) ),并且SHA-2的存储容量更大。

一些链接:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆