I never really understood why is it so.
Encrypted data must be indistinguishible from random, thus, if you replace any random projection of a file with your data, the result should be completely unrecognizable. It shouldn't really matter if your algorithms are public.
Is the problem that it's hard to get random projections from modern data? If so, why not use older formats?