Ваш метод сжатия предполагает, что существует только одна перестановка данной таблицы частот символов, которая будет генерировать данный хэш-код.Это ложное доказательство.
512-битный хеш может представлять порядка 1,34E + 154 уникальных значения.Число перестановок в 100-символьном файле равно 100 !, или 9,33E + 157.
При наличии 100-символьного файла для каждого возможного 512-битового хэш-кода существует более 6900 различных перестановок.
Использование большего хэш-кода не поможет.Количество хеш-кодов удваивается с каждым добавляемым вами битом, но число возможных перестановок увеличивается с каждым добавляемым в файл символом.