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

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

在这里插入图片描述

你或许已经坐在了历史上最好的观景台上。眼下的密码算法与协议——如零知识证明与安全多方计算等——正在深刻地改变社会个体/组织之间信任的来源和它的成本。密码技术可能会远远超出一个技术的范畴,最终对社会变革产生深远的影响。或许,我们将要看到的景象要远比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 anunfeasible computation 」。即:我们自己无法计算出来的东西。「output」在这里极为关键:敌手如果「知道」某个秘密,那么它(或者一个调用它的新算法)能够输出这个秘密。

这一概念在算法的世界里非常清晰,但它也是严谨安全性证明的噩梦:有时候一个算法「明明」应该知道某个秘密才能成功,可我们无法通过它或改编后的新算法来输出这个秘密。这里一个经典的例子就是Damgard的指数知识( knowledge of exponent )猜测,我们目前还无法将它建立在更为牢固的标准困难性假设上。

零知识证明与重置模拟(rewinding):

为什么简单的策略会失败先回顾图同构的零知识证明。如果两个图 (𝐺0,𝐺1 ) 的顶点之间存在着边保持的置换映射𝜋 ,我们则称俩图是同构的。对图同构的一个传统的数学证明就是同构映射𝜋本身

相关推荐

面向隐私计算+AI的TensorFlow深度定制化实践

面向隐私AI的TensorFlow深度定制化实践文章目录面向隐私AI的TensorFlow深度定制化实践TensorFlow 快速回顾TensorFlow 的核心概念TensorFlow 自定义算子库的扩展方法Rosetta 对 TensorFlow 的深度定制化计算图的转换构建过程小结参考文献参考文献在上一篇文章整体介绍中,我们整体上了介绍了基于深度学习框架开发隐私 AI 框架中的工程挑战和可行解决方案。在这一篇文章中,我们进一步结合 Rosetta 介绍如何定制化改造 TensorFlow 中前后

Matrix_element的博客 4655

下一代共识机制探究——基于DAG的BFT共识

本文将先介绍基础理论:基于 DAG 的 BFT 共识和基于轮的 BFT 共识,然后详细解读 DAGRider 、Tusk 以及 Bullshark 协议。

Matrix_element的博客 1653

【密码学探秘】EVM链和并行执行交易

在web3.0世界中,交易的处理性能一直是公链面临的一大技术挑战,如何在不降低安全性和去中心化程度的前提下显著的提升区块链交易的TPS无疑成为众多公链技术专家追逐的目标。是否可以既做到对EVM的兼容,又可以通过并行执行交易来达到提升性能的目的呢?

Matrix_element的博客 563

PrivacIN Week4课程回顾 | ZK应用实践

隐私学院【PrivacyIN】第一期ZK训练营第四课——《ZK Hands-on》如期开讲,主要介绍Circom电路开发和ZK应用实践。

Matrix_element的博客 2019

PrivacIN Week3课程回顾 | 韩博士讲授ZK电路开发 & zkEVM设计

隐私学院PrivacyIN首期ZK训练营第三课——《Applied ZK In Practice》开讲,由香港科技大学在读博士韩思远以ZK电路开发和zkEVM设计为主题,围绕零知识证明应用电路设计及zkEVM构建思路展开讲授。

Matrix_element的博客 857

PrivacyIN Week2 | 张宇鹏博导开讲经典零知识证明协议设计原理

隐私研究院PrivacyIN第一期ZK训练营课程精讲内容上线,本期课堂邀请到美国德州农工大学(Texas A&M University)计算机科学与工程学院的助理教授张宇鹏,主要介绍经典零知识证明协议设计原理,课堂主题为《Basic Principles of the Classic ZK Protocols (Groth16 Plonk Stark)》。

Matrix_element的博客 698

PrivacyIN Week1课程回顾 | 张宇鹏博导开讲零知识证明密码学基础&研究导论

隐私学院PrivacyIN第一期ZK训练营课程精讲内容上线,本期课堂邀请到美国德州农工大学(Texas A&M University)计算机科学与工程学院的助理教授张宇鹏,主要介绍ZK理论及相关应用,课堂主题为《Basics of ZK Cryptography & Research Overview》。

Matrix_element的博客 1793

PrivacyIN隐私学院第二期训练营开启报名 聚焦门限签名及安全多方计算

TSS(Threshold Signature Scheme 门限签名) 是MPC(安全多方计算)密钥管理的重要研究方向,可以支持多方管理私钥和资产。

Matrix_element的博客 1508

PrivacyIN课程 | 详尽解析ZK重要协议的设计理念【内含视频】

本期课程由德克萨斯农工大学计算机科学与工程系助理教授张宇鹏详细介绍了ZK重要协议的设计理念,包括:Groth16 Plonk Stark。不同电路满足不同的场景,从性能、可信启动等角度进行对比。

Matrix_element的博客 356

PrivacyIN课程视频 | Basics of ZKP Cryptography & Research Overview

初识零知识证明

Matrix_element的博客 343

PrivacyIN首期ZK训练营毕设启动 学术、投资导师全程护航

第二期再见!

Matrix_element的博客 364

转:PrivacyIN隐私学院掀起密码学热潮 首期密码学讲座今日开启

PrivacyIN将开启课程之外的系列讲座,首期讲座于今日7月28日20:30(UTC+8)开启

Matrix_element的博客 968

PrivacyIN隐私学院开启报名啦!打造密码学全球「私」塾

PrivacyIN隐私学院首期ZK训练营开启报名!

Matrix_element的博客 447

【隐私计算笔谈】零知识证明系列专题(二):一个个人化的视角:零知识、模拟与归约

> 你或许已经坐在了历史上最好的观景台上。眼下的密码算法与协议——如零知识证明与安全多方计算等——正在深刻地改变社会个体/组织之间信任的来源和它的成本。密码技术可能会远远超出一个技术的范畴,最终对社会变革产生深远的影响。或许,我们将要看到的景象要远比Michael Lewis「在金融业即将迎来变革的戏剧性时刻坐在位置最好的观景台前」所看到的更加波澜壮阔。——邓燚文 | 邓燚本文承接:【隐私计算笔谈】零知识证明系列专题(一):零知识证明与重置模拟文章目录Feige-Shamir:优雅的证据

Matrix_element的博客 1534

【隐私计算笔谈】MPC系列专题(十九):三方复制秘密共享(五)

文章目录三方OT跨表示形式的子秘密计算推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路【隐私计算笔谈】MPC系列专题(.

Matrix_element的博客 1584

【隐私计算笔谈】MPC系列专题(十八):三方复制秘密共享(四)

【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)在三方复制秘密共享的基本操作中,有些操作在算数电路的环Z2k{Z_{2^k}}Z2k​上进行效率高,而有些则在布尔电路上进行效率高,因此需要有操作将在环上表示的操作数转换为布尔表示(二进制表示),而操作数在安全多方计算中都是以子秘密( Share )的形式,因此实际是将环上表示的三方复制秘密共享子秘密转换为按比特共享的子秘密形式,记为[x]A→[x]B。之前的科普已经介绍过将在域Fq下的子秘密转换为按比特共享的子秘密形式,三方复制秘密共享

Matrix_element的博客 1336

【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)

作者 | 胡震恺 等【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)文章目录【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)三方复制秘密共享(二)推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私.

Matrix_element的博客 1456

【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)

作者 | 胡震恺 等【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)文章目录【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)Truncate ITruncate II推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元.

Matrix_element的博客 1569

【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享

【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享文章目录【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享三方复制秘密分享三方复制秘密分享复制秘密共享( three-party replicated secret sharing ),是另一种秘密共享技术。本次科普要介绍的是Araki等人的半诚实的三方复制秘密共享协议,用于在三方环境下的安全多方计算和秘密共享,可以容忍最多一个腐化用户,其相比于Shamir(2, 3)来说有非常小的通信量和计算量。首先介绍在布尔电路下的情景,假设参与者

Matrix_element的博客 2814

【隐私计算笔谈】MPC系列专题(十四):双方比较

【隐私计算笔谈】MPC系列专题(十四):双方比较文章目录【隐私计算笔谈】MPC系列专题(十四):双方比较双方比较双方比较之前已经介绍过了利用加密电路或者比特分解来实现安全多方比较。本次再介绍一种利用不经意传输来实现双方比较的方法。不经意传输在之前的科普进行过介绍,该比较协议的主要思路为:将需要比较的两个比特串分为多个部分,每个部分再进行比较,最后利用树形结构进行组合。假设有比特串????和比特串????,将比特串????划分为两个部分,分别为????1,????0,将比特串????也划分为????

Matrix_element的博客 1747

【隐私计算笔谈】MPC系列专题(十三):比特分解

【隐私计算笔谈】MPC系列专题(十三):比特分解文章目录【隐私计算笔谈】MPC系列专题(十三):比特分解比特分解推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺【隐私计算笔谈】

Matrix_element的博客 1042

【隐私计算笔谈】MPC系列专题(十二):比特比较

【隐私计算笔谈】MPC系列专题(十二):比特比较文章目录【隐私计算笔谈】MPC系列专题(十二):比特比较比特或比特比较(Bitwise Compare)推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题(六

Matrix_element的博客 1389

【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享

【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享共享随机数随机单比特分享(Joint Random Bit Sharing)推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】M

Matrix_element的博客 1685

【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算

【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算集合运算隐私保护集合交推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议

Matrix_element的博客 1619

【隐私计算笔谈】MPC系列专题(九):OT协议(三)

【隐私计算笔谈】MPC系列专题(九):OT协议(三)作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(九):OT协议(三)OT扩展协议推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题

Matrix_element的博客 2256

【隐私计算笔谈】MPC系列专题(八):OT协议(二)

【隐私计算笔谈】MPC系列专题(八):OT协议(二)作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(八):OT协议(二)通用的半诚实公钥OT协议Beaver的非黑盒构造推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BM

Matrix_element的博客 2940

【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路

【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路文章目录【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路Kolesnikov 的门估值秘密共享方案推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议Kolesniko

Matrix_element的博客 1702

【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺

【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺文章目录【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺零知识证明比特承诺零知识证明交互式证明系统由两方参与,分别为证明者( Prover )和验证者( Verifier ) 。证明者掌握某一秘密,证明者需要让验证者相信自己掌握该秘密。交互式证明过程需要多轮,最典型的是每一轮验证者向证明者发送一个询问信息( 挑战,Challenge ),证明者对询问信息进行计算,并回复信息响应( Response )。验证者根据证明者每一

Matrix_element的博客 1971

【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议

【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议文章目录【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议Beaver三元组BMR协议推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议Beaver三元组Beaver三元组( Beaver Triple )主要用

Matrix_element的博客 7652

【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议

【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议文章目录【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议GMW协议BGW协议推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路GMW协议GMW协议由Goldreich等人提出,基于混淆电路( Garbled Circuit ),支持多方的半诚实的安全计算协议。和之前所述的姚氏混淆电路估

Matrix_element的博客 6207
上一篇: 【隐私计算笔谈】MPC系列专题(十八):三方复制秘密共享(四)
下一篇: 【隐私计算笔谈】MPC系列专题(十九):三方复制秘密共享(五)
PlatON技术团队
PlatON技术团队 企业官方账号 企业官方账号
博客等级 码龄6年 326粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值