零知识图像编辑与压缩,一张压缩图怎么自证出身

一张发出去的 JPEG 能否证明它出自已锁定的源图,编辑一步没错。这篇论文把这句话变成机器可核验的命题,办法是把常见图像编辑折进 baseline JPEG 压缩管线,再用零知识证明作证。漏洞很具体,相机的内钥签名和内容凭证式编辑历史一过有损压缩就作废,此前那批图像零知识编辑证明也都没活过有损编码。它适合机构之间对传需要溯源的图,一个证明发给一万人看的场合用不上。

相机的签名为什么一压缩就掉

相机给图和元数据签名用的是机内私钥,验证者沿证书链回溯到制造商。有损压缩为减小体积会做微小改动,遮挡主体也在改图,签名失效。照片使用前几乎总是先被 JPEG 压过一遍,再叠裁剪、色彩平衡这类后处理。内容凭证标准让编辑软件给描述修改的元数据签名,只保证元数据出自那个软件,要放心还得信开发者永不滥用私钥。

有损压缩为什么难住零知识证明

零知识这件事可以分成四块说。承诺是给源图算一枚钉子,论文给了 none、Poseidon、SHA256 三种,拿到钉子就知道是哪张图,证明者换不了源图;论文也提醒光哈希算不上隐藏,一像素的图能被反推。见证是那张源图,只有证明者看得见。算术电路把图像处理写成门,加法、乘法、常数乘、移位、比较、除法都算,颜色变换、子采样、8×8 DCT、量化一个都躲不掉。证明系统用 LPZK,把见证编成高维空间里的一条直线,验证者只抽查一个随机点就判断整条线合不合规,代价是在线通信量与电路规模成正比,好处是证明者时间与内存都低,域用梅森素数 2^31−1,给 30 bit 统计安全。

难在每一步都得变成门,电路一大,耗时和内存跟着涨。论文只用 24-bit RGB BMP 作源图,RAW 与 DNG 都没碰。工程上卡得最紧的是位宽预算,DCT 一步要比输入宽 22 bit,于是 DCT 前重缩放到 8-bit,量化之后把重缩放与量化合成第二次也是最后一次重缩放,其余变换靠位宽跟踪塞进同一次,因为重缩放是乘法门最集中的一步。DCT 用快速算法,8 点一维只要 12 个乘常数门加 32 个加法门,先行后列,每步保持 8-bit 精度。

把编辑塞进压缩管线凭什么几乎不花钱

baseline JPEG 的 YCbCr 转换本身就是仿射变换,对比度、亮度、白平衡、灰度全能并进这一步。这类变换只含加法与常数乘,近乎免费,只吃重缩放的位宽预算。论文的例子,3-bit 对比度加 8-bit 白平衡加 12-bit YCbCr 转换,23-bit 的活儿一次以 16-bit 算完。

模糊用盒式近似高斯,按行一趟再按列一趟,好复用免费的加法门。半径带来的位宽扩张是平方量级,重复次数是指数量级,预算紧时优先放大半径。模糊与半透明图层都挪到已子采样的色度通道上,面积减半,图层公开,下方内容转为秘密。区域遮挡优先用过量化,每通道每像素只多一次常数乘,模糊却要引入昂贵除法,因子给到 1024 时区域直接变纯黑,代价是失真粒度受 8×8 DCT 限制。Huffman 是无损步骤,扔在零知识之外;发布 Huffman 版本,验证者就能解出与证明者一致的量化 DCT 块。

一次证明要跑多久传多少数据

数字都带条件,论文在两台 4 核机器上测,16 GiB 内存。中等尺寸那档(1800×1216)纯压缩约 657 秒,11 分钟;加 Poseidon 承诺约 996 秒,16.6 分钟;一千万像素档纯压缩约 3506 秒,58 分钟。证明者到验证者的通信量,中等尺寸无承诺时 30.34 GB,改用 SHA256 会涨到 265.21 GB,每像素乘法门从 681.92 涨到 7212.23。要速度用 Poseidon,中等尺寸加承诺仍有每秒 2196.97 像素;要接着用相机生态既有的 SHA256 签名链,得按每像素乘法门翻十倍的代价备机器。

证明了没改坏能证明是真的吗

论文列了三类防不住的攻击面,场景被摆拍、生成图被翻拍、编辑历史配着误导性语境。它也不给摄影师匿名。它证的是编辑被忠实执行。分界线,机构间传图对账能用,广播式核验要等简洁后端,源图换成 RAW 得先处理降噪,论文点名它显著更难。