Cryptographic Hash Properties: Pre-image, Collision, and Avalanche Resistance