hash: adhere to NIST paper properly
sha512: add implementation