HyperAIHyperAI

Command Palette

Search for a command to run...

基于大语言模型引导的程序进化实现针对感知哈希算法的定向黑盒攻击

Aleksei S. Krylov Denis S. Rakhov Veronica Veselova Dmitry Bolokhov Oleg Y. Rogov

摘要

感知哈希算法(PHA)被广泛部署用于检测良性变换下的图像伪造,但其对对抗性选择扰动的鲁棒性仍知之甚少,且鲜有可证明的保证。我们提出了一种基于GigaEvo和OpenEvolve的新型进化框架,用于对感知哈希算法进行定向第二图像攻击。我们使用综合评分评估攻击性能,该评分同时考虑归一化汉明距离低于阈值p的对抗图像比例(攻击成功率)、向哈希函数发出的查询次数以及相对于原始图像的L2失真。在四个已部署的PHA(pHash、PDQ、PhotoDNA、NeuralHash)上对30对ImageNet图像进行的实验表明,我们的进化方法在使用显著更少的哈希函数查询次数的同时,实现了与现有黑盒基线相当或更好的攻击成功率,并生成了相对于原始图像具有更低L2失真的对抗图像。与最佳优化种子相比,最佳进化程序将预定义的综合攻击评分降低了:NeuralHash 41.2%、PDQ 38.3%、pHash 34.0%、PhotoDNA 8.1%。与基于梯度的方法不同,我们的框架不需要PHA架构的内部知识,并能自然处理哈希输出的不可微、离散化特性。这些结果揭示了广泛部署的内容审核流程中此前未报告的漏洞,并推动了可证明鲁棒感知哈希方案的发展。

一句话总结

来自MIPT等机构的研究人员提出了GigaEvo和OpenEvolve,这是一个针对感知哈希算法(PHA)的进化攻击框架,利用黑盒、查询高效、低失真的对抗图像,在四个已部署的PHA上使NeuralHash的复合评分最多降低41.2%,并在无需梯度信息的情况下暴露了内容审核管线的漏洞。

核心贡献

  • 一个结合GigaEvo和OpenEvolve的黑盒进化框架,能够对感知哈希算法执行有目标的第二图像攻击,无需了解哈希函数的内部知识,自然处理其不可微和离散化的输出。
  • 在30对ImageNet图像上对四种广泛部署的感知哈希算法(pHash、PDQ、PhotoDNA、NeuralHash)的实验表明,该进化方法在攻击成功率上与现有黑盒基线相当或更优,同时使用的查询次数显著减少,且生成的对抗图像L2失真更低。
  • 最佳进化程序相对于最优优化种子,在NeuralHash上复合评分(同时衡量攻击成功率、查询次数和失真)降低41.2%,PDQ上降低38.3%,pHash上降低34.0%,PhotoDNA上降低8.1%,揭示了内容审核管线中此前未报告的漏洞。

引言

感知哈希算法(PHA)将图像映射为紧凑的二进制字符串,用于快速近似重复检测、版权执法和安全扫描,要求它们在对良性编辑(调整大小、压缩)保持稳定的同时能区分不同内容。先前的工作表明,PHA可以抵抗常见的非对抗性变换,但易受白盒梯度攻击的影响,且即使较大的哈希空间也可能因某些语义类别(如人脸)而崩溃。系统性鲁棒性保证的一个关键障碍在于,PHA将连续特征提取与离散量化相结合,导致在跨过阈值时微小的特征变化会产生较大的汉明差距,但尚未发展出针对每个实例的理论。作者通过提出一个基于GigaEvo和OpenEvolve的黑盒进化攻击框架来解决这一空白,该框架搜索对抗性扰动,使源图像的哈希与指定目标哈希高度匹配。在pHash、PDQ、PhotoDNA和NeuralHash上的评估表明,该方法实现了比现有黑盒基线更高的攻击成功率和更低的L2失真,表明进化搜索自然处理了PHA的不可微离散输出,而无需梯度信息或内部算法知识。

数据集

以下是围绕所要求各点组织的简洁数据集描述。

  • 组成与来源 数据集由从ImageNet中采样的30对图像组成。

  • 子集细节 只有一个固定的基准子集,包含30对图像。除从ImageNet初始采样外,未描述任何额外的过滤规则。每张图像使用双线性插值调整为256×256像素,并保持RGB格式。计算L2距离度量时直接使用像素值。

  • 论文中的使用 作者使用相同的30对图像进行超参数优化、程序进化(自动化搜索过程)以及最终报告的对比。由于同一小型集合同时用于搜索和评估,基准测试充当受控测试平台,而非部署规模的泛化测试。不存在单独的训练或验证划分;该数据集不用于监督模型训练,而是作为算法搜索的固定评估环境。

  • 处理细节 未提及任何裁剪策略或额外的元数据构建。唯一的预处理是双线性调整到256×256并保持RGB表示。L2距离直接在调整后的像素值上计算。

方法

作者将有目标的第二图像攻击形式化为一个黑盒优化问题。给定源图像 xsx_sxs、目标图像 xtx_txt 和目标哈希 ht=H(xt)h_t = \mathcal{H}(x_t)ht=H(xt),攻击者必须生成一个与 xsx_sxs 接近的对抗图像 xx'x,并满足

d(H(x),ht)τ0,d(\mathcal{H}(x'), h_t) \leq \tau_0,d(H(x),ht)τ0,

其中 ddd 对于二进制哈希是汉明距离,对于 PhotoDNA 描述符是 L1L_1L1 距离。基准测试仅使用目标图像计算 hth_tht;攻击接收源图像、通过预言机返回的目标哈希、匹配阈值以及查询反馈。它们无法访问梯度、内部哈希特征或目标图像本身。匹配阈值 τ0\tau_0τ0 针对每个哈希函数固定,攻击不进行优化:pHash 为 12,PDQ 为 92,PhotoDNA 为 3855,NeuralHash 为 17。只有外部重新计算的距离落在相应阈值内,运行才被视为成功。

优化过程由在一组图像对上评估的哈希相似性损失引导。攻击成功率(ASR)定义为

ASR=1Ni=1N1 ⁣[minjd(H(xi,j),ht,i)τ0],\mathrm{ASR} = \frac{1}{N} \sum_{i=1}^{N} \mathbf{1}\!\left[ \min_j d(\mathcal{H}(x_{i,j}'), h_{t,i}) \leq \tau_0 \right],ASR=N1i=1N1[jmind(H(xi,j),ht,i)τ0],

其中 jjj 索引攻击期间观察到的候选。预言机在整个运行过程中维护最佳哈希距离候选,攻击返回一个 xbestx_{\mathrm{best}}xbest 图像用于外部评估。此设计避免了惩罚那些最终迭代劣于先前观察到的候选的攻击。

视觉失真由像素空间 L2L_2L2 距离和 LPIPS 衡量,查询代价计算哈希预言机调用次数。主要排名标准是一个实现分数

S=L2+0.02Qmax(ASR,0.05),S = \frac{\overline{L_2} + 0.02\,\overline{Q}}{\max(\mathrm{ASR}, 0.05)},S=max(ASR,0.05)L2+0.02Q,

并添加技术性零成功惩罚:SS+100001[ASR=0]S \leftarrow S + 10000 \cdot \mathbf{1}[\mathrm{ASR} = 0]SS+100001[ASR=0]。分数越低越好。均值在所有评估对(包括失败案例)上计算。分母惩罚低 ASR 的攻击,分子则倾向于更低的 L2L_2L2 失真和更少的查询。系数 0.02=1/500.02 = 1/500.02=1/50 将 50 次额外的预言机调用等同于一个单位的 L2L_2L2 代价。 LPIPS 单独报告,在当前基准表中不属于 SSS 的一部分。

所有攻击都通过一个通用函数接口执行:

run_attack(xs,O,θ,B,r)R,\text{run\_attack}(x_s, O, \theta, B, r) \rightarrow R,run_attack(xs,O,θ,B,r)R,

其中 OOO 是哈希预言机,θ\thetaθ 是攻击参数,BBB 是查询预算,rrr 是随机种子,RRR 包含攻击找到的最佳图像。这个简单的约定用于手工编写的基线和 LLM 生成的 Python 程序。

预言机是唯一的反馈来源。它存储目标哈希,将候选图像裁剪到有效像素范围,统计查询次数,强制执行预算,并只返回当前与目标哈希的距离。这构成了一个分级距离的黑盒预言机,而非硬标签匹配/不匹配的 API。从 xsx_sxshth_tht 的初始距离在预言机创建时计算,但不计入攻击查询。在运行期间,预言机按哈希距离维护一个最佳候选。

评估器充当最终真值来源。攻击返回后,它会重新计算 H(xbest)\mathcal{H}(x_{\mathrm{best}})H(xbest)、成功状态、最终哈希距离、L2L_2L2 失真、LPIPS(如有需要)、查询次数和分数。它不信任攻击自身报告的成功标记或指标。这对于程序进化尤为重要:生成的代码可以搜索更好的候选,但不能通过改变记账或输出格式来改善报告结果。同一个评估器用于原始基线、优化配置和进化程序。

配置优化针对每个哈希独立进行,使用 Optuna 框架和树状结构 Parzen 估计器采样器。第一阶段搜索能可靠达到阈值的配置;第二阶段按公式 3 中的分数对配置进行排序。这种两阶段设计避免了选择视觉上干净但很少碰撞的攻击,同时一旦成功仍倾向于更低的失真和更少的查询。由此得到的优化配置构成 LLM 进化阶段的种子上下文。

在程序进化中,GigaEvolve 和 OpenEvolve 接收优化后的攻击实现、经验笔记和评估器约定。候选程序通过 LLM 变异生成,并在基准图像对上执行。有效候选必须实现公式 5 中的接口;无效程序、运行时故障和格式错误的结果由评估器分配惩罚分数。OpenEvolve 最大化框架原生的分数,因此适配器暴露 S-SS,同时保留所有原始指标以供分析。GigaEvolve 使用相同的评估器并在搜索过程中存储候选谱系。进化产生的变化是算法性的而非表面性的:搜索基、更新调度、重启、裁剪策略、停滞处理以及成功后细化均可由生成代码修改,但评分函数和基准对保留在候选程序外部。

种子算法组合包含五种攻击。SimBA 贪心地测试有符号基方向。NES 从随机扰动中估计梯度。ZO-SignSGD 是一个局部零阶符号梯度基线。Prokos 种子是对 Prokos 等人提出的有目标感知哈希攻击家族的适配。ATKScopes 使用多分辨率扰动并通过 Adam 进行优化,是组合中最强的尺度感知种子。每种种子攻击均以原始配置和针对每个哈希的优化配置进行评估。

实验

该研究评估了一个三阶段攻击流水线:首先,对手工编写的种子攻击进行超参数优化以最大化攻击成功率;其次,使用复合分数对视觉质量和查询效率进行联合优化;第三,通过 LLM 驱动的进化搜索,在固定的 30 对图像基准上对完整的 Python 攻击程序进行变异,并在每个哈希特定的查询预算下执行。实验将进化后的程序与优化种子和多个软标签基线进行比较,发现程序进化一致地改善了复合分数,尽管改善不总是在所有个体指标上均匀体现。进化后的攻击显示出针对哈希的特定结构适应,结果强调,对感知哈希系统的鲁棒性评估需要审计算法级别的攻击,而非固定的默认配置。

感知哈希算法对程序进化攻击的易感性各不相同。基于经典 DCT 的哈希(如 pHash 和 PDQ)在攻击在低频搜索空间中操作时更容易成为目标,而 PhotoDNA 和 NeuralHash 需要更大的扰动,并以高感知失真实现基准碰撞;NeuralHash 仍是最难的目标,攻击成功率有限且查询代价更高。一旦搜索在合适的低频空间中进行,pHash 和 PDQ 更容易被攻击。对 PhotoDNA 和 NeuralHash,LPIPS 仍然很高,因此所实现的碰撞是基准结果,而非视觉上不可察觉的示例。进化程序降低了所有哈希的最终分数,表明算法搜索空间的改变优于单纯的参数调整。对 PhotoDNA 需要更大的扰动,但进化后的候选仍相对于优化种子降低了分数。NeuralHash 是最难的目标:其最佳进化攻击成功率为 0.83,且比经典哈希要求更多的查询。OpenEvolve 在 pHash 和 PDQ 上给出了最佳分数,而基于 GigaEvo 的流水线在 PhotoDNA 和 NeuralHash 上给出了最佳分数,表明进化后端具有互补的优势。

该研究在有针对性的第二图像攻击下比较了四种感知哈希算法,揭示哈希的几何结构强烈影响攻击难度。使用全局 DCT 特征的经典哈希(pHash、PDQ)更容易成为目标,而 PhotoDNA 和 NeuralHash 需要更大的失真且成功率较低,NeuralHash 最为鲁棒。每个哈希的固定匹配阈值定义了碰撞标准,对基于神经网络的哈希的攻击通常产生基准碰撞而非视觉上不可察觉的结果。pHash 和 PDQ 依赖全局 DCT 结构,更容易被攻击;而 PhotoDNA 使用中等尺度梯度特征,NeuralHash 使用神经嵌入,使其对碰撞攻击更具抵抗力。NeuralHash 是最难的目标:最佳进化攻击仅达到 0.83 的成功率,并比经典哈希要求更多的查询。固定的匹配阈值(pHash 为 12,PDQ 为 92,PhotoDNA 为 3855,NeuralHash 为 17)不由攻击优化,为成功碰撞设定了距离边界。对 PhotoDNA 和 NeuralHash 的攻击往往产生高感知失真,因此被解释为基准碰撞,而非视觉上不可察觉的对抗样本。

外部评估器使用一个结合检测率、失真和查询代价的复合分数跟踪攻击成功。进化程序改善了所有哈希的复合分数,但增益并不总是转化为感知相似度、像素距离或查询次数的同步改善。NeuralHash 是最难的目标,需要更多查询且仅产生高 LPIPS 的基准碰撞,而非视觉上不可察觉的示例。进化程序降低了所有哈希的复合分数,表明算法变化带来的收益超越了参数调整。复合分数 S 是一个排名标准;个体指标如 L2、LPIPS 和查询次数仍需报告,因为改善并非在所有指标上单调。对 NeuralHash,LPIPS 仍然很高,因此攻击应被解释为基准碰撞,而非视觉上不可察觉的示例。在攻击利用低频搜索空间后,pHash 和 PDQ 更容易成为目标,而 PhotoDNA 和 NeuralHash 需要更大的扰动。

程序进化将攻击分数降低到超参数调整所能达到的水平以下,且 OpenEvolve 在 pHash 和 PDQ 上给出最佳分数,基于 GigaEvolve 的流水线在 PhotoDNA 和 NeuralHash 上领先。对 PhotoDNA 和 NeuralHash,LPIPS 仍然很高,因此这些不是视觉上不可察觉的攻击,而是基准碰撞。进化程序进行了算法性改变,而非仅仅是参数变化,它们通常会在失真、查询次数和成功率之间进行权衡,因此所有指标都需要报告。两个进化后端是互补的:OpenEvolve 在 pHash 和 PDQ 上表现最佳,而基于 GigaEvolve 的流水线在 PhotoDNA 和 NeuralHash 上表现卓越。进化程序不是单纯的参数变体;它们包含结构性变化和一个在达到碰撞阈值后降低失真的细化阶段。对 PhotoDNA 和 NeuralHash,LPIPS 仍然很高,因此这些攻击应被视为基准碰撞,而非视觉上不可察觉的示例。进化后的候选并非同时改善所有指标;它们可能用更多查询换取更干净的图像,或在保持攻击成功率的同时降低失真。该基准作为一种审计协议,表明在默认攻击下显得鲁棒的系统,可能需要针对经过强化的、程序进化得到的攻击进行评估。

该协议从手工编写的种子评估,经每个哈希的配置优化,再到程序进化,表明进化攻击程序降低了所有哈希的复合分数,超越了超参数调整所能达到的水平。改善并非在所有指标上均匀体现,两个进化后端互补:OpenEvolve 在 pHash 和 PDQ 上表现最佳,而 GigaEvolve 在 PhotoDNA 和 NeuralHash 上给出最佳分数。PhotoDNA 和 NeuralHash 的攻击仍为高 LPIPS 的基准碰撞,NeuralHash 是最难的目标,最佳进化攻击的成功率仅为 0.83。配置优化显著改善了 pHash、PDQ 和 NeuralHash,但进化程序进一步降低了所有哈希的最终分数,表明算法变化的重要性超越了标量超参数。进化后的候选并非同时改善所有指标;一个候选可能用更多查询实现更低失真,因此报告所有个体指标是必要的。PhotoDNA 和 NeuralHash 的攻击保持高 LPIPS,应解释为基准碰撞而非视觉上不可察觉的示例。两个进化后端互补:OpenEvolve 在 pHash 和 PDQ 上给出最佳分数,而基于 GigaEvo 的流水线在 PhotoDNA 和 NeuralHash 上给出最佳分数。当攻击在低频搜索空间中操作时,pHash 和 PDQ 更容易成为目标,而 NeuralHash 需要更多查询,其最佳进化 ASR 仅为 0.83。该协议作为一种审计:一个在默认攻击设置下显得鲁棒的哈希系统,在经过每个哈希的超参数调整和程序进化后可能变得脆弱。

该研究使用一个多阶段攻击协议评估了四种感知哈希算法,该协议进化搜索程序而不仅仅是超参数调整,比较了手工编写的种子、配置优化和程序进化。基于经典 DCT 的哈希(pHash、PDQ)在攻击利用低频搜索空间时更容易成为目标,而 PhotoDNA 和 NeuralHash 需要更大的扰动,且仅产生高感知失真的基准碰撞。程序进化降低了所有哈希的复合分数,后端互补(OpenEvolve 用于 pHash 和 PDQ,GigaEvolve 用于 PhotoDNA 和 NeuralHash),NeuralHash 被证明是最鲁棒的目标,需要更多查询且攻击成功率仅为 0.83。该协议作为一种审计,表明在默认攻击下显得鲁棒的系统,经过进化程序改变后可能变得脆弱。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供