A hashing system produces hash values by manipulating n-bit sequences in
accordance with a selected distance d error correction code ("ECC") over
an associated Galois Field. The current system produces a hash value for
a given n-bit sequence by treating the sequence as either a corrupted
n-bit ECC codeword or as "n" information bits of an (n+r)-bit ECC
codeword. The hashing system may decode the n bits as a corrupted
codeword of an (n, k, d) perfect ECC to produce an n-bit error-free
codeword, and then use as the hash value the information bits of the
error-free codeword. Alternatively, the hashing system may treat the
n-bit sequence as a corrupted code word of a cyclic distance d ECC, and
map the codeword to an (n-k)-bit "error pattern" that the system then
uses as the hash value. The hashing system may instead treat the n-bit
sequence as n "information" bits and encode the bits in accordance with
an (n+r, n, d) ECC, to produce an r-bit hash value that consists of the
associated redundancy bits.