高效零知识知识证明:原理与应用
在当今的信息安全领域,零知识证明(Zero-Knowledge Proofs)作为一种强大的技术,能够在不泄露敏感信息的情况下证明某个陈述的真实性。本文将深入探讨高效零知识知识证明的相关概念、协议及其安全性。
知识证明与完美零知识的定义
知识证明(Proof of Knowledge)是一种协议,用于证明证明者确实知道某个特定的信息。对于一个二元关系 $R = {(\alpha, \beta)}$,我们采用 Bellare 和 Goldreich 的定义。该定义包含完整性条件,即如果证明者确实知道他所声称知道的内容,验证者将接受证明。技术上的可靠性条件如下:存在一个函数 $\kappa : {0, 1}^* \to [0, 1]$(知识误差)和一个概率期望多项式时间的预言机 $E$(知识提取器)。对于任意声称知道给定公共字符串 $\alpha$ 的见证 $\beta$ 的证明者 $P$,设 $\epsilon(\alpha)$ 为 $P$ 的成功概率。则 $E$ 可以对 $P$ 进行可回退的黑盒访问,要么输出 $\alpha$ 的见证 $\beta$,要么输出一个特殊的停止符号。并且,$E$ 输出见证的概率大于或等于 $\epsilon(\alpha) - \kappa(\alpha)$。
完美零知识(Perfect Zero-Knowledge)是通过通常的黑盒形式定义的,要求期望多项式时间的通用模拟器在对验证者进行可回退的黑盒访问时生成的对话,与证明者和验证者在“现实生活”中的交互产生的对话完全不可区分。
Σ 协议的定义与基本理论
Σ 协议(Σ-Protocols)是一种三方交互协议,由概率多项式时间