050-18424508

第一个零知识证明协议:二次剩余2020-09-10 23:21

人类对很多概念的了解是漫长的、不断更新且交错的。

第一个零知识证明协议:二次剩余

即使今天很多人看了零科学知识证明的定义,还是不会一头雾水。不必担忧,明确提出这个概念的图灵奖级别论文《交互证明系统的科学知识复杂度》(GMR[85]),曾倒数四次被业界顶级的计算出来理论研讨会STOC拒绝接受。显然不只是我们,那个时代最聪明的头脑们某种程度无法解读这篇极为重要的论文所蕴藏的深刻印象意义。在《不可思议的零科学知识证明》一文中,我们通过三个小故事讲解了零科学知识证明里面的最重要概念:红绿色盲游戏(交互和随机性),阿里巴巴洞穴(模拟器),旅行中的数学家(非交互和公开发表检验)。但从直觉到严苛的定义、证明之间,必须一些新的工具和方法论。这些由GMR[85]第一次得出,并且在之后获得普遍的研究和推展。第一个月的零科学知识证明协议是二次剩下(Quadratic Residue)的判断,通过它,我们讲解零科学知识证明中的工具——计算出来不能区分(computationally indistinguable)和仿真范式(simulation paradigm),并且得出适当的证明。背景科学知识二次剩下是数论里面历史悠久的问题,源于同余理论的研究。高斯在《算术研究》中,第一次系统的研究了剩下理论,总结了还包括欧拉、费马、纳让德等前人的理论成果。在自然数的领域里面,余数(remainder)和模数(modulus)所指的都是公式a = nq + r 中的r;在高斯引进了同余符号≡后,则这个公式可以等价的写a ≡ r (mod n)。定义:如果不存在整数x,使得 a ≡ x^k (mod n),则x叫作a模n的(k次)原根,其中当k = 2时,则称之为a是模n的二次剩下。比如 12 ≡ 25 ≡ 5^2 (mod 13)。这种幂形式似乎更有了高斯的兴趣,在他的著作中研究了还包括一次同余、二次同余以及古志同余等关系。在后面的文章后我们还将提及同余与群论的关系。二次剩下问题,即等价相质数的a, n(否则,a ≡ 0 (mod n)),辨别a是否是模n的二次剩下(否不存在模平方根x)。人们在找寻这个问题的算法时,找到它的可玩性等价于整数分解成难题(integer factoring)。当n是质数时,不存在多项式时间算法,但n是合数时,则去找将近多项式时间的算法。二次剩下问题是一个NP问题。二次剩下问题的零科学知识证明协议GMR[85]利用二次剩下问题结构了第一个零科学知识证明协议,来解决问题以下问题:Alice声称”a是模n的二次剩下“,她可以必要展出模平方根x(或者是n的因数分解),但她想外泄除了“a是模n的二次剩下“外的任何信息;Bob一方面就让防止被Alice愚弄,另外一方面,有可能也想尽办法想在和Alice的交流中取得“额外的信息”。尽管上述使用了Alice和Bob这样的人格化比喻,但所有的计算机协议的执行者实际都是运营在计算机上的程序。在理论分析中,一般使用图灵机模型(Turing Machine,TM)。也就是说Alice,Bob是两台TM。

第一个零知识证明协议:二次剩余

其中Alice作为证明者(prover)被指出有无限计算资源,所以她需要计算出来出模平方根,或者说需要答案NP问题;Bob作为检验者(verifier),受限于计算资源,无法密码出模平方根x,否则他就能自己辨别Alice的声称否为真了。Alice对Bob说道,有两个公式:s ≡ r^2 (mod n)as ≡ (xr)^2 (mod n)如果s和as都是模n的二次剩下,那么 a也是模n的二次剩下。但我会重复使用仅有展出给你,我每次随机分解第一个公式,然后除以a获得第二个公式,并且按照你抛掷硬币的结果随机展出其中一个:如果你扔到0,我就给你公式1的模平方根r;如果你扔到1,我就给你公式2的模平方根rx。下面是协议的示意图:运营这个协议m次,如果Alice顺利通过check,则以 1-(1/2)^m的概率劝说Bob。那么我们看下这个协议要符合的目的:1. 如果Alice能计算出来出模平方根x,则她需要已完成给定次挑战;2. 如果Alice无法计算出来出模平方根x,则她无论使用什么策略,也不会以很大概率被Bob拒绝接受;3. 不管Bob使用什么策略,也无法从Alice这里获得“a是模n的二次剩下“外的任何信息;其中:1. 显而易见,2. 由于Alice不告诉Bob不会扔到什么结果,则她无法通过操控第一步中的s来通过测试(如果她告诉是0,则不会分解s ≡ r^2 (mod n),如果她告诉是1,网卓新闻网,她可以通过分解s ≡ r^2/a (mod n),这样发送到的w就是r,也能通过检查);3. 直觉上来看,Bob扔到0,回到r;扔到1,回到rx,Bob无法从s ≡ r^2 (mod n)中计算出来出有r,无法提供x。分析3并无法叫人失望,因为按照定义,Bob不仅会获知x,也无法取得除命题为真外的“任何“信息。如何证明一个协议知道做了零科学知识外泄呢?如何证明「零科学知识」Bob作为检验者,在零科学知识证明协议运营过程中,需要“看见”的信息还包括Alice发过来每条记录(transcript)以及自己的抛掷硬币结果(local coins),即view = {tanscript, local coins}。如果不存在某个计算资源和Bob一样的图灵机S,需要独立国家的通过某个算法在概率多项式时间内仿真一个view',view和view'无法区分。那么Bob实际可以自己在家运营这个协议取得等价的信息,那么Alice在交互证明中除了劝说Bob命题为真外,没外泄任何信息。