Pretty much!
A mirror is purely specular reflection, so you end up with a perfect image of the object. If you had a wavy mirror, you'd get a wavy image. Now, imagine that you wanted to cancel out the effect of the waves and get a perfect image back. You could create what would essentially be a "negative" of the shape of the mirror. That way, each light "beam" would get corrected back to its original position, forming a perfect image again.
The challenge here is that the waves on your mirror are extremely small and complex, so it's impossible to create a negative since no one knows exactly what wavy pattern we're dealing with. One way to solve this is to use a known image (point source), produce a random "negative" and evaluate its performance in recreating the object. We then keep the best parts of that negative and slightly modify the rest to see how that improves the image. Repeat that process multiple times and you end up with a very good negative made simply of an array of pixels (SLM). Once your negative has been optimized for a point source, it will work for any image.
In a way, decoding the scattering medium is similar to playing a very difficult game of Mastermind, where the codemaker is nature and the codebreaker is a computer.
Hope this clarifies it, thanks for asking!
Yeah, you could use a cryptographic analogy very well. The texture and specular properties of the surface are like the secret key, but you can identify part of it directly from an image of the surface by itself. Teasing apart the parts of the surface that provide information, and from which angle this information originates, is the puzzle part. With a very high resolution image, it gets a lot easier because you can infer textural patterning in the nonspecular reflective surface.