利用零知识证明打击虚假信息

  • boneh_
  • 发布于 2022-11-25 14:15
  • 阅读 50

文章探讨了数字图像的来源验证,特别是新闻媒体中的图像伪造问题。提出了使用零知识证明结合内容来源和真实性联盟(C2PA)标准的方法,确保即使对图像进行了编辑,公众也能验证图像的原始性和编辑的合规性。实施的算法在处理图像裁剪、尺寸调整和灰度转换方面,验证过程的时间和效果均有良好表现。

作者 Trisha Datta 和 Dan Boneh

验证数字图像的拍摄时间和地点变得越来越困难。图像来源在新闻媒体领域尤为令人关注。在俄罗斯于二月入侵乌克兰后,几张照片视频在网上流传,虚假声称展示了冲突情况。一个典型的例子是这个所谓的并排对比两张照片;第一张据称显示的是俄罗斯轰炸后的叙利亚,第二张则声称展示的是俄罗斯入侵后的乌克兰。USA Today的后续分析显示,第一张照片实际上是2017年在伊拉克拍摄的,第二张照片虽然确实是乌克兰的,但拍摄时间是在入侵的两周之前。虽然这些事实核查服务很重要,但让个人能够亲自验证照片的来源,将能使他们不必依赖第三方,并赋权于他们以保护自己免受这种错误信息的影响。

在理想的情况下,照片将附带地理位置和时间戳,以及这些信息正确性的证明。那么,如果用户在网上的新闻文章中看到照片,他们可以利用提供的证明来验证照片拍摄的时间和地点,而不必信任文章的出版商或第三方事实核查网站。这项验证可以通过某种浏览器扩展来执行,该扩展可以自动检测和验证这些证明。该博客的其余部分将讨论我们启用这种系统的尝试。

内容来源与真实性联盟(C2PA)提出了一项验证图像来源的标准,该标准依赖于数字签名。相机将“数字签名”每张照片,并附上一系列关于该照片的声明(例如,地点、时间戳)。然而,照片并不会以原样发布;它们通常会被裁剪、调整大小,并可能转换为灰度,然后才会发布到新闻报道中。一旦进行了这些编辑,公众就无法验证原始图像上的签名,因为仅发布了编辑过的图像。在C2PA标准中,当签名照片由支持C2PA的编辑应用程序进行编辑时,编辑应用程序将签署所发生的编辑。公众可以验证这些签名以验证发布照片的地点和时间戳。

这种C2PA方法的问题在于它依赖于信任编辑软件签名进行的编辑是否正确。如果对手能够从编辑软件中提取签名密钥,他们可以为任何图像生成有效的签名,同时仍遵循C2PA协议。这将使诚实的验证者相信伪造的图像是有效的照片,即使它并不是。同样,编辑软件中的软件漏洞可能使得对手可以签名其选择的任何图像,即使没有提取软件的签名密钥。

因此,我们需要一种方法来编辑签名照片,以便只拥有编辑过照片的查看者可以确信(i)原始未编辑的照片已正确签名,并在声称的时间和地点拍摄,以及(ii)对签名照片仅进行了允许的编辑,例如裁剪、调整大小和灰度。该方案的安全性不应依赖于信任编辑软件。

为证明编辑照片的来源,我们使用简洁的零知识证明。零知识证明是一个关于秘密见证的声明,用户可以在不学习任何关于见证内容的信息的情况下进行验证,只需知道该声明是真实的。这些证明是完整的,这意味着在真实声明上高概率成功验证,是声音的,这意味着在虚假声明上高概率验证失败,并且是零知识的,这意味着原始图像的内容没有被透露。这些特性意味着验证者不需要信任证明者,从而解决了C2PA协议提出的信任问题。

在上述在线新闻系统中,我们将采用这些零知识证明。每张在新闻文章中显示的照片都将附带其元数据(例如,地点和时间戳)、对原始照片所做编辑的描述和简洁的零知识证明。该证明证明以下陈述:

“证明确保人(i)知道一张由C2PA相机正确签名的未编辑照片, (ii) 未编辑签名照片的元数据与附加到公共照片的元数据相同,并且 (iii) 新闻文章中的公共照片是将声称的编辑应用于未编辑照片的结果。”

查看者仅会接受附带有效零知识证明的照片,并且对原始照片所做的编辑列表是“被允许的”。我们所指的“被允许的”编辑是指不会从根本上改变照片内容的编辑(这个来自美联社的列表包含了一些示例)。

我们强调未编辑照片及其签名是秘密见证的一部分,公众无法访问查看者只看到编辑后的照片、其元数据和零知识证明。由于“零知识”特性,确保原始照片保持秘密;这在原始照片包含需要裁剪掉的敏感内容的情况下是可取的。

在2016年,Naveh 和 Tromer 实现了零知识证明,以处理各种照片编辑,包括裁剪、转置、翻转、旋转和调整对比度/亮度。尽管这项工作展示了为图像编辑编写零知识证明的可行性,但实现的证明时间过大,无法实用。

幸运的是,在过去六年中取得的进展现在允许我们以可行的时间生成图像编辑的零知识证明。为了证明这一点,我们实现了生成裁剪、调整大小和灰度转换的零知识证明的程序,这些全部包含在美联社发布的允许编辑列表中。我们的实现是用Circom语言编写的,该语言旨在生成零知识证明。每个Circom程序生成一个零知识证明,验证一组(可能是秘密)输入的约束条件是否得到满足。在我们的实现中,输入为原始照片、新照片(例如,在在线新闻文章中显示的照片)和与编辑相关的参数,并且约束条件确认新照片是通过对原始照片进行编辑的给定参数而获得的。我们将在下面讨论每个程序和证明生成的时间结果。

我们的裁剪证明生成程序创建的约束条件确认新照片在裁剪范围内具有与原始照片相同的RGB值。表1显示了该程序的时间结果。

表1: 裁剪图像的证明生成时间

我们的调整大小证明生成程序创建的约束条件确认新照片可以通过双线性调整大小的方式从原始照片获得,该方式通过对原始图像中四个像素的RGB值进行加权线性组合来计算调整大小后图像每个像素的RGB值。我们的Circom程序实现了这篇博客文章中概述的调整大小逻辑,与tensorflow的图像调整大小操作一致。表2显示了该程序的时间结果。

表2: 调整图像大小的证明生成时间

我们的灰度证明生成程序创建的约束条件确认新照片的RGB值可以通过对原始照片RGB值应用Photoshop使用的标准灰度计算来获得。这个公式通过对RGB值进行加权线性组合来获得一个像素的值:grayValue = 0.30R + 0.59G + 0.11B。为了适应该计算中涉及的浮点数,我们将值按100倍缩放,并作为秘钥见证的一部分传入用于四舍五入计算的余数。表3显示了该程序的时间结果。

表3: 灰度转换的证明生成时间

我们在一个Google Cloud e2-standard-8 VM实例(八个核心,32 GB内存)上运行了实验。报告的数字适用于“现实”的图像尺寸。特别是之前提到的签名生成Sony相机是一台3300万像素的相机,并且, 根据客户端的不同,_《纽约时报》_上的照片调整为2048 x 1363像素。

由于这里描述的所有证明仅需由发布者生成一次,因此报告的时间适合实际使用。验证时间与图像大小无关,大约需要一百毫秒。

  • 原文链接: medium.com/@boneh/using-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
boneh_
boneh_
江湖只有他的大名,没有他的介绍。