以下无损数据压缩算法在理论上是否有效?

Is the following lossless data compression algorithm theoretically valid?

我想知道下面的算法是否是一个有效的无损数据压缩算法(虽然对传统计算机不实用,也许是量子计算机?)。

在较高的简化级别上,压缩步骤为:

  1. 计算未压缩文本的字符频率。
  2. 计算未压缩文本的 SHA3-512(或其他哈希函数)。
  3. 连接 SHA3-512 和字符频率(这是现在将写入文件的压缩文本)。

并且在高度和简化的层次上,解压步骤是:

  1. 使用压缩文件中的字符频率,生成未压缩文本的排列(记录是哪一个)。
  2. 计算步骤 1 中生成的排列的 SHA3-512。
  3. 如果步骤2计算出的SHA3-512与压缩文件中的SHA3-512匹配,则解压完成。否则,转到步骤 1。

是否有可能与未压缩文本的排列发生 SHA3-512 冲突(即给定字符频率的两个排列是否可以具有相同的 SHA3-512?)?如果是这样,什么时候开始发生(即在多少个未压缩的文本字符之后?)?

一个简化的例子如下:

您的压缩方法假定给定字符频率 table 只有一种排列会生成给定的哈希码。事实证明这是错误的。

一个 512 位哈希可以表示 1.34E+154 个唯一值的数量级。 100个字符的文件中的排列数为100!,即9.33E+157。

给定一个 100 个字符的文件,每个可能的 512 位哈希码有超过 6,900 种不同的排列。

使用更大的哈希码也无济于事。每添加一位,哈希码的数量就会翻倍,但可能的排列数量会随着添加到文件中的每个字符而增加。