I had the idea of computing a 64 bit hash of a text string by assigning a unique binary 8x8 matrix to each character, and computing the hashes of larger strings by multiplying the matrices corresponding to the substrings. In this system both addition and multiplication of matrix elements would be modulo 2. If this works, it would have the benefit that the hash of two concatenated strings would be the product of their hashes.
This method would completely fall apart if some matrices were much more likely to turn up than others, if a large subset of the space of matrices were unusable, or if there were a risk of generating a degenerate matrix from the product of two non-degenerate matrices, causing the whole product to collapse. As a result, I have a few questions.
1) What percentage of the space of 64 bit values are usable as hashes, i.e. the matrix they represent does not have determinant zero?
2) Given two matrices chosen randomly from the set of usable hashes, is their product equally likely to generate any other matrix in the usable set, or are some products more likely than others?
3) Will the determinant of the product of two matrices with non-zero determinants ever be zero?
EDIT: My initial idea was to turn each 8 bit character with bits $abcdefgh$ into the following matrix:
$\begin{bmatrix} a \oplus h & a \oplus g & a \oplus f & a \oplus e & a \oplus d & a \oplus c & a \oplus b & 1 \\ b \oplus h & b \oplus g & b \oplus f & b \oplus e & b \oplus d & b \oplus c & 1 & 0 \\ c \oplus h & c \oplus g & c \oplus f & c \oplus e & c \oplus d & 1 & 0 & 0 \\ d \oplus h & d \oplus g & d \oplus f & d \oplus e & 1 & 0 & 0 & 0 \\ e \oplus h & e \oplus g & e \oplus f & 1 & 0 & 0 & 0 & 0 \\ f \oplus h & f \oplus g & 1 & 0 & 0 & 0 & 0 & 0 \\ g \oplus h & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}$
It turns out that because $\Bbb Z_2$ is a field, we can get pretty far using the basics of linear algebra.
The answer to 3) is the easiest: the answer to that is no. In particular, if $A$ and $B$ have non-zero determinant, then $\det(A) = \det(B) = 1 \pmod 2$, which means that $$ \det(AB) = \det(A)\det(B) = 1 \cdot 1 = 1 \pmod 2 $$
The answer to 1) is a little tricker, but the answer (as proven here) is that there are $$ \prod_{j=0}^7 (2^8-2^{j}) = (2^8-1)(2^8-2)\cdots(2^8 - 2^7) = \\ 5348063769211699200 \approx 2^{62.2} $$ You could also express the above product as $2^{28}\cdot \prod_{j=1}^8 (2^j-1)$. As a percentage, that comes out to: $29\%$ of the possible $8 \times 8$ matrices are "usable".
The answer to 2) is probably the trickiest to show explicitly, but the answer is yes. This is going to be the case for any finite group. It helps to note that the distribution is invariant under group actions.