I think the full message version of my Rule 30 hash function has at least the following cryptographic benefits:
- Resistant against preimage attacks.
- Resistant against second-preimage attacks.
- Resistant against collision attacks.
- Resistant against chosen-prefix collision attacks.
- Resistant against length extension attacks.
- Resistant against brute-force attacks.
- Resistant against distinguishing attacks.
- Resistant against cryptanalysis.
- Close approximation to a random oracle.
"preimage resistance: for essentially all pre-specified outputs, it is computationally infeasible to find any input which hashes to that output, i.e., to find any preimage x such that h(x) = y when given any y for which a corresponding input is not known.[1]
second-preimage resistance: it is computationally infeasible to find any second input which has the same output as any specified input, i.e., given x, to find a second preimage x' ≠ x such that h(x) = h(x′).[1]" --
http://en.wikipedia.org/wiki/Preimage_attack"Collision attack
Find two different messages m1 and m2 such that hash(m1) = hash(m2).
Chosen-prefix collision attack
Given two different prefixes p1, p2 find two appendages m1 and m2 such that hash(p1 ∥ m1) = hash(p2 ∥ m2) (where ∥ is the concatenation operation)." --
http://en.wikipedia.org/wiki/Collision_attack"In cryptography and computer security, length extension attacks are a type of attack on certain types of hashes which allow inclusion of extra information." --
http://en.wikipedia.org/wiki/Length_extension_attack"In cryptography, a brute-force attack, or exhaustive key search, is a cryptanalytic attack that can, in theory, be used against any encrypted data[1] (except for data encrypted in an information-theoretically secure manner)." --
http://en.wikipedia.org/wiki/Brute_force_attack"In cryptography, a distinguishing attack is any form of cryptanalysis on data encrypted by a cipher that allows an attacker to distinguish the encrypted data from random data. [1]" --
http://en.wikipedia.org/wiki/Distinguishing_attack"In cryptography, a random oracle is an oracle (a theoretical black box) that responds to every unique query with a (truly) random response chosen uniformly from its output domain. If a query is repeated it responds the same way every time that query is submitted." --
http://en.wikipedia.org/wiki/Random_oracle