It's established wisdom to hash password multiple times with a salt to increase the time it takes per brute force iteration. At the same time (unless the algorithm guarantees otherwise) there's a minuscule but non-zero chance of ending up with a fixed point or cycle, whereby (for example)
hash(hash(hash_so_far + salt) + salt) = hash(hash_so_far + salt)
hash(hash(hash(hash_so_far + salt) + salt) + salt) = hash(hash_so_far + salt)
Such identities or short* cycles would be security black holes - more iterations wouldn't mean harder to crack - and an algorithm where such cycles are common would be worse than useless, leading to a couple obvious questions:
- Are the mean and median cycle lengths known for common algorithms such as MD* and SHA-*?
- Are there useful* algorithms which guarantee that the smallest cycle is the entire output space?
* AFAICT, any useful hashing algorithm (finite output, deterministic) would have at least one "trivial" cycle, when the output space has been exhausted.