It is obvious that there are different hashes. I am looking for a reference on hash complexity as it relates to strength because I am considering making a "bad hash". I have read a few things on the impossibility of making an efficient hash based on a block cipher, and then I thought that there are cases for bad hashes. Here is an example of why I am considering this.
In hardware, you have a branch instruction. The branch instructions that branch on memory address are a concern If you can augment this memory address, you can leave the memory segment. As a simple example, consider a BRANCH of 6, and this looks like
BRANCH OFFSET MEMORY 1000 0110
It would be interesting to have a hash that results in some valid construct for a valid memory range. The point of the hash is to not reveal the valid memory range.
BRANCH HASH OFFSET 1000 XXXX XXXX
An interrupt would occur if the memory offset is outside the allowed hash. The time available to calculate this hash would be small, so it could not be a good hash.
Is there a reference on complexity and strength so I might consider this further?