Haskell solutions to the matasano cryptography challenges