首先:我知道 AES 是分组密码而不是散列函数。但是,我坚持使用 RAM 和闪存很少的微 Controller ,并且 AES-128 已经在其上实现并用于其预期目的 - 加密。
不幸的是,我还必须在同一个微 Controller 上实现用于文件完整性检查的散列函数。鉴于资源有限,我想知道是否可以使用现有的 AES 算法而不是 MD5 进行散列。这样做的一种可能性是:
从理论上讲,我认为这应该有效。如果文件中的任何地方都存在损坏的数据,则会导致所有后续块中出现差异。
现在,最大的问题是:这种方法在碰撞方面的表现如何?或者换一种说法:最终的“散列”分布情况如何?
最佳答案
听起来您想使用 AES-CMAC ,一种基于 AES 的认证算法。
关于encryption - 使用 AES 进行文件完整性检查,替换 MD5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4633949/