图像哈希相似度匹配可能吗?

计算科学 矩阵 算法 近似 图像处理
2021-12-13 10:09:26

我有以下问题:

  1. 我们有两个面部图像文件 (JPEG),一个的矩阵,其值在 0-255 之间。128×128
  2. 我们想使用函数对两个图像文件进行哈希处理。我知道,但不知道正在由另一个机构 (a) 发送f(x,key)xkeykey
  3. 应该不可能将恢复为图像。现在两者都应该是哈希值。f(x,key)
  4. 是否有一个函数可以比较现在已散列但不可恢复的两张人脸图像的相似性?
2个回答

假设您正在谈论加密哈希(与用于加速查找的哈希相反),我认为您提出了相互矛盾的要求。

哈希的目的是从输入值中删除任何信息,本质上看起来像随机映射Cryptographic Hash因此,使用它来比较 2 个输入是否以某种方式接近(相似)是行不通的。

另一方面,如果您要问是否可以比较两张脸的相似性,您可以考虑映射人脸-> 人脸测量向量,然后您可以在距离的某个向量空间定义中进行比较。但是您不会涉及到“钥匙”。密钥的目的是什么?您想隐藏有关所涉及面孔性质的信息吗?但是,我认为这行不通,因为那样密切的措施就会失败。

免责声明:密码学和散列不是我的主要专业领域。

因此,假设我们有两个图像分别具有相应的哈希这里,,其中是散列函数。ABhAhBhA=f(A,key)hB=f(B,key)f

我们还希望不存在,这意味着它涉及计算量极大的过程。f1(hA,[key])

现在,我们想知道,在给定哈希可以测量之间的相似性。然而,这直接与计算量大的要求相矛盾,因为它为我提供了一个选项来构建过程,方法是构建一系列越来越相似的图像,这些图像将迭代收敛到原本的。g(hA,hB)ABhAhBf1f1

所以,我想说,即使存在这样的函数,这样的过程也会因为只有哈希值而严重损害了图像的不可恢复性。

附录

(构造):f1

输入: ,hAf

程序:

  1. 取初始图像猜测(随机,或基于已知的东西)B(0)
  2. 使用计算hB(0)f
  3. 计算 )g(hA,hB(0)
  4. 如果的值小于容差 -> 停止。否则继续。g
  5. 根据一些程序(遗传算法、黑盒优化等)找到新的图像猜测返回步骤 2。B(1)

当然,很难找到基于的有效过程;但是,它仍然比尝试破解一个好的散列函数要好得多。B(i+1)B(i)g(hA,hB(i))