Cryptographic hash functions from expander graphs