您当前的位置: 首页 > 

mutourend

暂无认证

  • 4浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ZKP+图片授权——PhotoProof:proofs of permissible photo edits

mutourend 发布时间:2022-09-30 18:15:08 ,浏览量:4

1. 引言

Trisha Datta和Dan Boneh 2022年9月博客 Using ZK Proofs to Fight Disinformation指出,当今找到某数字图像的来源和获取时间 变得越来越困难。图像来源在新闻媒体领域尤其值得关注,可避免信息误传。

开源代码实现为:

  • https://github.com/TrishaDatta/circom-circuits(circom)

理想情况下,图像应包含地理位置和时间戳信息,并附加这些信息的正确性证明。当用户在某线上新闻稿中看到该图片时,可根据相应的proof来验证地理位置和时间戳信息,从而无需信任文章的发布者 或 第三方事实追踪网站。可通过类似浏览器扩展程序的方式来自动探测和验证这样的proof。本文接下来将探讨如何实现类似的系统。

内容来源和真实性联盟(C2PA,Coalition for Content Provenance and Authenticity)提出了C2PA Technical Specification提出了一种基于数字签名的检验图像来源的标准。相机在拍摄时会自动附加一系列关于该照片的断言(如位置、时间戳)。但是,这些相片并不会直接发布,在发布到新闻报道中之前,它们通常会被裁剪、调整大小,并可能转换为灰度。一旦修改了,公众就不再是对原始图像验签,因为发布的修改版的照片。在C2PA标准中,当某签名照片被C2PA-enabled编辑应用程序 修改后,该编辑应用会对修改的地方进行签名。公众可验证这些签名来验证公开发布照片的位置和时间戳。

C2PA的这种方案存在一个问题:其需要信任编辑软件会对修改之处进行正确签名。若某adversary可提取编辑软件的签名密钥,则在仍然遵循C2PA协议的前提下,仍可为任何照片生成有效签名。这将让诚实的验证者信服该伪造的照片是一张有效的照片,尽管事实上该照片是伪造的是无效的。类似的,若该编辑软件有某个软件漏洞,使得在无需提取该编辑软件签名密钥的情况下,adversary可为其选择的任意照片签名。

为此,需要某种方案来对已签名照片进行编辑,使得仅有编辑过照片的人,可确信:

  • 1)原始的未编辑照片签名正确,具有其所声称的拍摄时间和地点;
  • 2)对原始签名照片,仅有允许的修改,如裁剪、调整大小、灰度转换。

整个方案无需信任编辑软件。

为证明编辑后的相片来源,可使用succinct zero-knowledge proofs。所谓zero-knowledge proof,是指声称其知道某个秘密witness,用户可在不知道该秘密witness是什么的情况下,验证该声称是正确的。zero-knowledge proof,应具有如下属性:

  • 1)完备性:对于正确的声明,验证将高概率成功;
  • 2)可靠性:对于错误的声明,验证将高概率失败;
  • 3)零知识性:意味着不会泄露秘密witness。(本场景是指不会泄露原始图像)

这些属性使得Verifier无需信任Prover,从而解决了C2PA协议中的信任问题。

对于在线新闻系统,其新闻稿内的每张照片,将附加如下信息:

  • 1)metadata信息(如位置和时间戳)
  • 2)对原始图片的修改描述
  • 3)a succinct zero knowledge proof

该succinct zero knowledge proof用于证明如下声明:

  • 1)Prover知道某未编辑照片由某C2PA相机正确签名;
  • 2)该未编辑签名照片的metadata 与 某公开照片的metadata 一致;
  • 3)新闻稿内的公开照片为 未编辑照片 + the claimed edits。

仅当其伴随有一个有效的零知识证明 且 对原始照片所做的一系列修改是“permissible”的 时,观众才接受该照片。“permissible”是指不会从根本上改变照片内容的编辑。(Associated Press示例)

在本方案中,强调了未修改照片及其签名 是秘密witness的一部分,对公众不可得。观众仅能看到修改后的照片、其metadata 以及 相应的零知识证明。“零知识”属性可确保原始照片仍是保密的:这是必须的,因原始照片中包含了需裁减掉的敏感内容。

2016年Naveh 和 TromerPhotoProof: Cryptographic Image Authentication for Any Set of Permissible Transformations论文中,为多种图片编辑(包括裁剪、换位、翻转、旋转和调整对比度/亮度)实现了零知识证明。这些工作展示了为相片编辑 编写零知识证明的灵活性,但其所实现的证明时间过长,所以并不实用。

幸运的是,过去6年来的技术进步,使得可在可行时间内,为相片编辑 生成零知识证明。为此,编写了一个程序来为裁剪、调整大小、灰度转换 创建零知识证明。裁剪、调整大小、灰度转换 这些都是Associated Press所允许的修改。该程序以circom语言来实现的。每个circom程序会生成一个零知识证明,以验证对于一系列(可能是秘密的)输入,其满足一系列约束。

本实现中:

  • 输入为原始图片、新图片(如新闻稿上展示的图片),与编辑相关的参数,the constraints assert that the new photo is obtained by performing the edit with the given parameters on the original photo。

以裁剪修改为例,程序如下非常直观:【即证明 新图片 与 裁剪范围内的原始图片 具有完全相同的RGB值】

pragma circom 2.0.0;

template Crop(hOrig, wOrig, hNew, wNew, hStartNew, wStartNew) {

    signal input orig[hOrig][wOrig][3];

    signal input new[hNew][wNew][3];

    signal output n_check;


    for (var i = 0; i <  hNew; i++) {

		for (var j = 0; j < wNew; j++) {

			for (var k = 0; k < 3; k++) {
				new[i][j][k] === orig[hStartNew + i][wStartNew + j][k];	
			}		
		}		
	}
	n_check             
关注
打赏
1664532908
查看更多评论
0.0377s