The Pseudo Random Function

Diffing out the PRF written with @alex and @reaperhulk during pairing.

Needs tests.
Should this go in `utils.py`? Thoughts?