【隐私计算笔谈】零知识证明系列专题(一):零知识证明与重置模拟

本文探讨了零知识证明的概念,特别是重置模拟在密码学和隐私计算中的应用。作者通过历史背景和实例解释了零知识证明的起源、安全性归约、模拟和知识抽取的重要性。文章指出,尽管简单的重置策略在并行执行时可能失败,但这一领域的研究对于建立信任和保护隐私具有重大意义,并为未来的一般性计算提供了零知识证明的可能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【隐私计算笔谈】零知识证明系列专题(一):零知识证明与重置模拟

在这里插入图片描述

你或许已经坐在了历史上最好的观景台上。眼下的密码算法与协议——如零知识证明与安全多方计算等——正在深刻地改变社会个体/组织之间信任的来源和它的成本。密码技术可能会远远超出一个技术的范畴,最终对社会变革产生深远的影响。或许,我们将要看到的景象要远比Michael Lewis「在金融业即将迎来变革的戏剧性时刻坐在位置最好的观景台前」所看到的更加波澜壮阔。

——邓燚

文 | 邓燚

文章目录

起源

我开始研究密码学和零知识证明的时候当然完全想象不到它们今天所产生的影响。那时只是觉得密码概念和构造新鲜而有趣,当然还很重要,如你的基金申请书上所说的。

念博士第一年(2004)是基于pairing的IBE/signature进入井喷的前期。我也开始读一个超级腕的论文,他会在每篇论文后面留一个公开问题。那时每看到一个公开问题都会很兴奋,不管理不理解,总算有个问题可以思考了。不过只读过他三篇论文。

我刚花了两周时间拼命弄懂他第一篇论文留下的问题后,他的第二篇论文出现了,声称解决了他的第一篇文章中的问题,但是文末还是留下一个看起来有点难的公开问题;我又花了两周去弄懂这个新问题,很不幸的是他的第三篇论文如期而至,声称已经解决了第二个问题。当然,在文末他又留下了第三个公开问题。

我怀着礼貌读完了他的第三篇论文,但再没有心思去琢磨他的第三个问题了。那时开始对这个圈子和对自己都产生了失望。迷茫中拾起了Goldreich写的密码学基础。这本书对于几乎没有任何基础的我非常困难,每次重读它都会觉得上一次读的时候有点什么误会。但不知什么原因它使我平静了一点,不是那么急切地去找一个题目了。

读到最后零知识章节时,我留意了一下当时的一些主流会议这一领域的论文,通常都有但一年也只有几篇。那时便觉得自己可以尝试一下这个看起来很有趣竞争又不太激烈的领域。

第二年我读到Barak非黑盒模拟技术与分布式并发零知识时,对当时的一个重要问题——是否存在常数轮的完全并发的零知识协议——产生了很大的兴趣。读了Barak文章大概一个月后,我感觉到自己能够通过扩展Barak的技术构造这样的协议了。

当时非常兴奋,给Barak写了一封邮件,详细描述了自己的想法。第二天一大早便收到了Barak的邮件(他当时应该在IAS做博后,现在应该不会有空及时给读者回信了),他花了很长的篇幅给我解释了为什么我的想法是错误的。

这个问题也便一直困扰我至今。虽然十五年后依然没有答案,但我对密码学和安全性归约/模拟的认识几乎都来自对它的研究。密码学中许多独立于具体安全模型的安全性归约/模拟的创新都诞生于对这个(或紧密相关的)问题的研究之中。

**这篇文章将描述一部分零知识证明研究所带来的模拟/归约的技术。**由于时间和篇幅的原因,我们完全忽略了基于代数技巧的和各种依赖具体模型的模拟/归约技术。也由于个人的兴趣和十分有限的见识,偏见与不完整就难免了。

**安全性归约,模拟,知识与知识的抽取。**密码算法/协议的安全性(如可信/可靠性,隐私等)都源于底层问题(假定中的)计算困难性[1]。密码算法/协议的安全性证明通常指如下安全性「归约」: 给定一个(声称成功地攻破该算法/协议安全性的)敌手算法,我们构造一个高效的归约算法通过调用该敌手算法来打破底层困难性假设,从而在逻辑上完成了「如果底层困难性假设成立那么目标系统是安全的」这一命题。

下面我们经常会等同看待归约,模拟与知识/秘密的抽取。在归约算法调用敌手算法过程中,它需要模拟敌手在真实世界中看到的视图(view,为什么?)。因此模拟是整个归约最为关键的一环,这是为什么通常将它俩等同起来的原因。

假设给定一个涉及两方的构造(A,B)和一个扮演角色A的敌手𝒜。在模拟𝒜(在真实攻击中)所观察到的景象时,模拟算法(模拟器)通常需要在没有诚实方B的私有输入的情况下扮演B(以及其他可能的setup)的角色。这通常有两种途径(大多是两种途径的混合):

  1. 利用底层困难性/不可区分性假设本身模拟。这在非交互密码算法中常见,如证明ElGamal加密的CPA安全性时,模拟算法通过给敌手𝒜输入可能无效的密文来利用它打破底层的DDH假设。这里的模拟简单而直接,底层DDH的不可区分性本身就假定了无论密文是否正常,𝒜的表现几乎都一样。

  2. 通过从𝒜身上抽取( extract )到某些秘密/知识,或在有setup的场景下,模拟器自身扮演其他可信/诚实方来生成对模拟有利的(公共)输入,进而模拟诚实的B。这在交互密码协议的安全性证明中非常普遍,如下面将提到的经典Feige-Shamir零知识协议。

第二种模拟方法中的关键就是秘密/知识的抽取。我们很多时候在谈论安全性归约时,它的核心就是模拟,或者知识的抽取。事实上,第二种模拟方法给一般性的密码协议设计提供了一个原则:我们设计一个诚实方B的算法时,要使得在拥有诚实方的私有输入或对方和/或公共输入的某些秘密的前提下,我们均能顺利执行诚实方算法。

什么是「知识」?或者,怎么定义一个算法「知道」某个秘密/知识呢?Goldwasser他们在其开创性论文[GMR,STOC 85]中对知识的定义就是「 the output of an

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值