Chorba: A novel CRC32 implementation (2024)
arxiv.org
arxiv.org
> This implementation is named after the Serbian singer Bora Đorđević (also known as Bora Čorba) who was born in 1952 and died in 2024. His birth year matches the number of the GZIP standard RFC 1952 that describes a common CRC32 implementation, and the original proof of concept for this method used the polynomial x21 +x15 + x14 + x11 + x10 + x7 + x3 which is x1952×8 mod G(x).
That is indeed dedication.
/Edit: actually in all North Africa https://en.wikipedia.org/wiki/Chorba
Then again there are like 10 different ways to refer to soup in the various dialects.
I was looking at the zlib-ng crc32 implementation which is where I saw that it was recently updated to include your algorithm.
Good work, it's a surprisingly elegant solution when compared to the braiding approaches!
the part i really like is that it gives us small improvement on the pclmul too, as the non-accelerated algorithm doesn't really stand a chance against the accelerated opcode on newer hardware so it probably isn't going to see much use in practice. however... i think hardware solutions could possibly benefit (e.g. ethernet cards)
IIRC they're off by maybe a factor of 10 or 100, the test scripts just generate a bunch of (seeded) random data and then execute the CRC of X bits Y times and that's where the number comes from, it's consistent across the different tests even if the units are wrong