  Quantum software frameworks provide software engineers with the tools to
study quantum algorithms as applied to practical problems. We implement
classical hash functions MD5, SHA-1, SHA-2, and SHA-3 as quantum oracles to
study the computational resource requirements of conducting a preimage attack
with Grover's Algorithm. We introduce an improvement to the SHA-3 oracle that
reduces the number of logical qubits required in the Keccak block permutation
by 40%.
