[devel] hash collision in rpm
Dmitry V. Levin
ldv на altlinux.org
Ср Май 5 16:10:04 MSK 2021
On Wed, May 05, 2021 at 08:40:27AM +0300, Alexey Tourbin wrote:
[...]
> By the way, there's a clever way to detect collisions at a higher
> level, even though low-level collisions are unavoidable, subject to
> implacable math. We can take advantage of the fact that the build
> system synchronizes package builds across a few architectures.
> Currently, if a missing symbol goes undetected due to a hash
> collision, it does so on all architectures simultaneously. To change
> that, we need to hash symbols differently, depending on the target
> architecture (we can pass seed=hash(arch) to the hash function, or use
> different initialization vectors IV=hash(arch)). The desired outcome
> is that when a missing symbol goes undetected, it does so, with an
> overwhelming probability, on only one target. Roughly speaking, if
> the probability of an undetected missing symbol is 10^-3 on a single
> target, it must be 10^-6 on two targets, 10^-9 on thee targets, etc.
This looks very promising indeed. I suppose the gain would justify
the necessary rebuilding of all packages with set-versions in their
arch-specific dependencies.
--
ldv
Подробная информация о списке рассылки Devel