submited by

Style Pass

Beamsplitter (named for the optical device) is a family of hash functions parameterized over the choice of a high-entropy random 10x64 S-box. All s-boxes tested so far pass all SMHasher tests. It's not particularly fast, and at ~550 - 800MB/s (depending on hardware) is faster than SHA1, SHA2 and SHA3.

Any random set of 8192 bytes can, with usefully high probability, form another 10x64 S-box leading to another good beamsplitter hash.

If this works, beamsplitter would be a universal hash, or in other words the set of hashes parameterized by the s-box would form a universal family

Note the fail could be noise because the test that failed (Sparse) has a random 7% chance of failing in any run. See this issue on SMHasher. If that's the case, so far no weak, properly chosen boxes are found.

In order to make this into a universal hash, it's not sufficient to simply replace T with any random, high entropy s-box, it's also necessary to hash that chosen s-box using the original s-box, and use that hashed s-box as the s-box for the function. This ensures, that, given two input s-boxes, the actual s-boxes the function uses will be vastly different, which means you can't easily find two functions that will hash a message to the same value (no easier than finding a collission with the original hash, anyway).

Read more github.com/c...