Secure Hash Algorithm

Definition
A Secure Hash Algorithm (SHA) is

"[a] hash algorithm with the property that is computationally infeasible 1) to find a message that corresponds to a given message digest, or 2) to find two different messages that produce the same message digest."