As the Ethereum platform relies on the Keccak256 hash algorithm, I'd like to get a better understanding of it.
My rough understanding is something like this:
a function accepting a finite set of bits into an giant imaginary rubik's cube which is then shunted about in a specific way. A subset of 256 bits are then returned. The function has the property that a change to a single input bit causes the output to change in an unpredictable way.
Is the above approximately true? You might see where I got the rubik's cube idea from if you look at Figure 1 here (I think this is the right spec).
There's also this, which I've read through, but it has not really soaked in.
How does the Keccak256 hash function work?