【问题标题】:Hash functions and polynomial division [closed]哈希函数和多项式除法
【发布时间】:2017-11-19 08:41:09
【问题描述】:

我了解 CRC 通过生成校验和来验证数据完整性,校验和是多项式长除法的结果。我听说散列值被称为散列校验和,所以我的问题是散列函数是否也使用某种多项式除法?我知道他们将数据分解成块密码,所以我的猜测是哈希函数在多项式检查值和它如何划分为不同块之间建立了某种关系。如果我离这里很远,有人可以告诉我吗?

【问题讨论】:

  • 这似乎不是一个编程问题。你可能想问数学或密码学。
  • 我投票结束这个问题,因为它是一个数学问题。
  • 我很抱歉。我实际上只是下载了该应用程序,并没有意识到我在哪里发布。请问版主可以移动这个话题吗?谢谢。
  • 这是一个合法的 CS 问题,OP 只是问错了问题(即混淆了几个概念)
  • 我投票决定将此问题作为离题结束,因为它已被交叉发布在更适合的 Stack Exchange 网站上。 crypto.stackexchange.com/questions/48364/…

标签: hash md5 sha1 checksum crc


【解决方案1】:

CRC 是一个散列函数,但还有许多其他方法可以实现散列函数。其他方式一般不使用多项式除法,但也有一些使用 CRC 作为散列计算的部分,以便利用硬件 CRC 指令。大多数哈希函数使用长而复杂的一系列与、非、异或、整数加法、乘法和模数。

【讨论】:

  • 所以让我澄清一下:哈希函数是一种单向压缩函数,是吗?那么在这方面CRC可以被认为是一个散列函数?
  • 没有。如果您有某种方法可以解压缩结果,则只能将其称为“压缩”。单向函数则不能被视为压缩。散列函数只是将任意长度的消息映射为固定位数。然后,许多可能的消息必然会映射到相同的值。一个好的散列函数会给出非常不同的值,而消息的变化很小,并将消息的散列值传播到所有可能的散列值上。
  • 我的印象是(并且已经接受了学术界的指导)哈希函数压缩函数。根据Wikipedia:“单向压缩函数例如用于加密哈希函数内部的 Merkle-Damgård 构造”。我在这里混淆了概念吗?
  • 他们在这里混淆了概念。这是“压缩”一词的可怕用法。然而,在搜索中,我发现散列函数的短语“压缩函数”似乎使用相对广泛。所以我们被它困住了。在任何情况下,散列函数,即使您称其为压缩函数,也不能用于数据压缩,因为数据无法恢复。这是函数的“单向”方面,其中花费了大量精力来确保实际上不可能恢复原始数据,即使哈希长度相同数据。
  • 我知道哈希值不能轻易地反转(或解压缩)回原始摘要,如果有的话。我想对术语压缩有不同的语义观点。无论哪种方式,我的问题是想知道哈希函数是否为了执行“压缩”,使用多项式长除法的多次迭代来得出一个比原始数据短的值,我现在看到的情况并非如此。
猜你喜欢
  • 2016-02-28
  • 1970-01-01
  • 2012-12-14
  • 2017-01-22
  • 1970-01-01
  • 2016-06-20
  • 2019-03-25
  • 2016-03-25
  • 2011-02-27
相关资源
最近更新 更多