As Antoine de Maricourt says, this weakens the key.
I think it is a serious problem and it is a dangerous answer to a small
question. I compute hashes and patterns for database lookup eight
at a time, which is faster (much more "optimizable") than one
after the other. Then I also use the smallest as the "canonical"
and simply discard the others. Since database lookup is so fast
that's not a problem at all. Other situations where hashes are needed
do not require verifying rotations, so the advantage of Nick's idea
is very small (IMO).

But the question is: Does someone do the opposite, i.e. "playing"
with the hash values to make then *stronger*? Even with 32 bit
hashes, triple ko can be detected with probability = 1 for any
sequence of alternating BWBW or WBWB of length less than 8.
(Tripe Ko is a sequence of length 6) I don't know if that is published.
In fact, unless you have a computer allowing to store a 2^64 bit
table, "strong" collision analysis can only be done for 32 bit hashes
(With my hardware where I can manage a 4 gigabit table decently.
Checking that all 4x4x2(colors) squares in a 19x19 array form a
base and replacing the invalid hashes as needed takes about 15
hours on a P4D at 3.4GHz) Of course, once you have a strong
32 bit hash set you can fill the higher 32 bits with random bits
to have a 64 bit set.


computer-go mailing list

Reply via email to