Re: Who creates the hash?
Seems the process at a high level is:
1. Convert the image to black & white (their words, although I'd assume grey scale due to step 4).
2. Resize to a fixed size.
3. Split up into a grid.
4. Each grid has a histogram of intensity gradients or edges found.
5. The final 'DNA' (i.e. hash) is then generated from this histogram data.
Seems the 'DNA' as they call it, is basically a collection of meta data, per grid of the original image.
It doesn't matter what the size of the picture to check is, or if the colours have been altered, the resulting hash should be the same each time.
They also talk about comparing 'similar PhotoDNA', so seems the hashes can be compared for similarities, not just exact matches. Just a guess, but this implies that perhaps cropped images, or composites with partial matches can also be compared.
For video, they basically run the same process against a subset of frames from a known video. The comparison then seems to be to run the process against all frames in the new video, as they might have edited it, so the subset of frames originally hashed, may not be in the same place in the new video that needs to be checked.
Edit: Forgot to mention, seems the resulting PhotoDNA data is very small, so you can have very large data sets, and search them very quickly.