A few weeks ago, I wrote in this journal about my adventures with specs and standards. Well, I've added another algorithm to my crypto-library: SHA3... and oh my... they found an even more confusing way of expressing that than I've seen before. Here's the official NIST document about it... have a read if you dare. My personal enemy was Chapter 4 - "Sponge Construction" which is essentially very easy, but it is defined in a very, very, very lenghty way using letters as symbols for just about everything. No easy read IMHO.
This document does not leave open questions, but it's a "grasp all at once or none at all" case. Not really easy to read up on it because you go from one "huh?" to the next until you finally read all and read it again when you know all the forward-references...
Much to my surprise, the actual implementation worked like a charm, almost on the first try the test vecors were a match to my implementation.
On another note, I finally also implemented a random number generator, based on the "Fortuna" implementation. Works fine as well.