Let's say I know a little bit about crypto in general, and wanted to write a software implementation of Keccak/SHA-3 as an academic endeavor. How hard would it be? I'm not looking to produce something that will be certifiably secure against side channel attacks, just something that is reasonably performant and can produce the correct results.