SHA-1碰撞检测提速:让Git验证快两倍
Solving for faster SHA-1 collision detection
在优化Enroute的Git服务器后端时,我发现现有的sha1-checked库在碰撞检测上拖慢了性能,仅达到普通SHA-1速度的28%。为了解决这个问题,我重写了SHA-1算法,推出了sha1dc。通过利用SIMD指令集和自研的代码生成器,我将碰撞检测的开销大幅降低,使速度提升至普通SHA-1的68%至81%。这一改进不仅让Git包验证速度翻倍,还揭示了如何通过算法优化在安全与性能之间找到最佳平衡点。
理想情况下,我们当然都会为Git对象使用SHA-256,但迁移工作……幸运的是,我们可以通过检测SHA-1状态空间内的制造碰撞来缓解这一安全问题。