Performance and Security Tradeoffs in Cryptographic Hash Functions