小编Mak*_*kai的帖子

使用AES进行文件完整性检查,替换MD5

首先:我知道AES是块密码而不是散列函数.但是,我坚持使用微控制器,RAM和闪存很少,并且已经在其上实现了AES-128并用于其预期目的 - 加密.

不幸的是,我还必须在同一个微控制器上实现文件完整性检查的散列函数.鉴于资源有限,我想知道是否可以使用现有的AES算法代替MD5进行散列.这样做的一种可能性是:

  1. 使用虚拟密钥加密文件的第一个块(例如全部为零)
  2. 使用先前的加密块作为密钥加密下一个块
  3. 继续这种方式,直到文件中的所有数据都已处理完毕
  4. 使用最后一个加密块作为哈希

从理论上讲,我认为这应该有效.如果文件中的任何位置存在损坏的数据,则会导致所有后续块中的差异.

现在,最大的问题是:这种方法在碰撞方面的表现如何?或者换句话说:最终的"哈希"的分布情况如何?

encryption hash md5 aes

6
推荐指数
1
解决办法
1958
查看次数

标签 统计

aes ×1

encryption ×1

hash ×1

md5 ×1