Разработчик переписал SHA-1 с обнаружением коллизий и ускорил проверку git-пакетов вдвое
Solving for faster SHA-1 collision detection
В бэкенде git-сервера проверка пакетов на M4 занимает 12,5 секунды, 84% времени уходит на SHA-1 с обнаружением коллизий. Существующая библиотека sha1-checked работает на 28–29% от скорости обычного SHA-1. Автор создал sha1dc на Rust: аппаратное ускорение SHA-1 и генератор кода, который с помощью решателя укладывает проверки коллизий в SIMD-группы. В результате скорость выросла до 68–81% от обычного SHA-1, а проверка пакетов git ускорилась вдвое.
Без фильтра хеширование ползло бы со скоростью около 40 MiB/s, и именно фильтр — это то, на что SHA-1 с обнаружением коллизий тратит время сверх обычного SHA-1.