...
I am winging this here, and no doubt missing some relevant technology, but the below *seems* possible:
1) You have a file of 200 photos you would like to send (say of chip designs to an Intel or someone).
2) With a new publicly available program and hashing function, you hash that file to something like:
d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
3) You put a password on your hash function, so that the intended receiver can enter the hash no. and password into that program
4) The program* then crunches out the original file (photos in this case).
* One thing (among many other things) I do not know is if hashing functions can be run in reverse by a program...
EDIT: Maybe the hashing function could be modified so that extra characters would give the program additional instructions in how to reconstruct the original files... (?)
You got the idea.
However of course this could not be done with a 1 way encryption method like SHA. It had to be with some kind of new 2 way encryption method.
I think there is room to evolve here, and maybe doing such an algorithm is not a hard as it looks.
Just a quick and dirty example:
Lets say this new algorithm would simply remove some kind of byte stream repetitions and would just store the position of those removed repetitions in the end of the byte stream.
You would probably save some bytes... then you do the same for X other amount of repetitions and you just store in the end of the byte stream the positions where the bytes were removed.
The decryption app would add those removed repetitions by reading the positions in the end of the byte stream.