What is the avalanche effect, and what is the difference between Property A and Property B?
The avalanche effect means small input changes cause large output changes. Property A (each output bit flips with 50% probability) is stronger than Property B (about 50% of bits flip on average).
Property A (Strict Avalanche Criterion):
Changing a single input bit causes each output bit to flip with probability $\frac{1}{2}$, independently.
Property B (Avalanche Effect):
Changing a single input bit causes approximately half of the output bits to change on average.
Relationship:
$$A \Rightarrow B \quad \text{but} \quad B \not\Rightarrow A$$
Property A implies Property B (if each bit flips independently with 50% probability, then on average half will flip). But B does not imply A — you could have exactly half the bits always flip (deterministically), satisfying B but not A.
Why it matters: The avalanche effect ensures that similar inputs produce completely different hashes. The algorithm is public, so this is not about secrecy — without diffusion, an attacker could gradually modify an input and watch which output bits respond, steering inputs toward a target digest to mount pre-image or collision attacks far faster than brute force.
Go deeper:
Avalanche effect — the strict avalanche criterion and why it matters.