密码学学习笔记——Sigma Protocol

潘业达 安比技术社区 2020-06-24 16:37
本文作者潘业达,安比技术社区小伙伴,来自富士通研发中心。


Basic definitions


Definition 1

Effective relation

Effective relation 指的是一组二元关系 Image 其中 Image 为有效的可辨认的有限集合。 Image 中的元素被称作statements。如果 Image ,则称 Image 为 Image 的witness。


Definition 2

Sigma protocol

设 Image 是一个effective relation。那么一对 Image 构建在 Image 上的一个Sigma protocol 为:

  • Image 是一个叫做 Image 的交互式协议,其输入为一个witness-statement对Image

  • Image 是一个叫做 Image 的交互式协议,其输入为一个witness Image

  • Image 和 Image 的交互过程为:

    • 首先 Image 计算一个承诺(commitment) Image ,将其发送给 Image ;

    • 在收到了来自 Image 的消息 Image 后, Image 在有限的挑战空间 Image 中随机选取一个挑战元素(challenge),并将其发送给 Image ;

    • 在接收到来自 Image 的挑战 Image 后, Image 计算出一个反馈(response) Image ,将其发送给 Image ;

    • 在收到了来自 Image 的消息 Image 后,Image 输出accept或者reject。 Image 的输出由statement Image 和交互中的消息 Image 严格计算得出。

协议的要求是,对于所有的 Image ,当 Image 与 Image 交互后, Image 总是输出accept。需要注意的是,为了系统的安全性,挑战空间的大小应该为sup-poly(超过多项式大小)。

Image

Figure 1 Sigma protocol的执行过程


Definition 3

Knowledge soundness

设 Image 是关于关系 Image 的一个Sigma协议。如果醉在一个高效的确定性的算法Image (称作一个witness extractor)使得:给定一个statement Image ,以及两个关于 Image 被accepted的conversation Image 和 Image ,并且 Image , Image 能够输出 Image 使得Image(i.e., Image 是 Image 的witness)则我们称 Image 提供 knowledge soundness


Definition 4

Special honest verifier zero knowledge

设 Image 是关于关系 Image 的一个Sigma协议,且挑战空间为 Image 。如果存在一个高效的概率性算法 Image (称作simulator),其输入为 Image 且满足:

  1. 对于所有的输入Image , Image 能够输出一对 Image 使得Image 对于 Image 是一个被accpeted的conversation。

  2. 对于全体Image,我们计算Image

使得Image 的分布同 Image 和 Image 之间conversation的分布相同,则我们称 Image 是special HVZK。Special的原因在于:1) Image 需要 Image 作为额外输出;2)就算 Image 的witness不存在,Image也可以输出一个被accepted的conversation。


Schnorr's identification protocol

一个经典的Sigma protocol例子

协议过程


设 Image 是一个阶为素数 Image 的循环群,其生成元为 Image 。设证明人 Image 保存私钥 Image ,对应的公钥匙为 Image 。 Image 需要向 Image 证明其拥有 Image 。这里 Image 是witness, Image 是statement。Shnorr's identification protocol的协议过程为:

  • 密钥生成算法产生公私钥:Image其中验证密钥 Image ,私钥为 Image 。

  • Image使用Image 初始化, Image 使用Image 初始化,Image 和 Image 之间的交互过程为:

    1. Image 计算 Image ,并将 Image 发送给 Image ;

    2. Image 计算 Image ,并将 Image 发送给 Image ;

    3. Image 计算 Image ,并将 Image 发送给 Image ;

    4. Image 检查如果 ImageImage 输出accept,否则输出reject。

Image

Figure 2: Schnorr’s identification protocol 过程

安全性


Schnorr‘s protocol 的安全性是构建在离散对数问题上的,其证明的方式为假设攻击者在不知道 Image 可以构建对于一个 Image 合法的conversations,那么我们就可以利用攻击者的能力来解决离散对数问题。由于逆否命题是等价,如果离散对数问题无法攻破,那么Schorr's protocol 就是安全的。

proof:假设攻击者对于 Image 可以产生两个被accepted的conversation Image 和 Image 其中 Image ,则有 Image 以及 Image ,两式相除的 Image ,其中 Image , Image 。由于 Image ,且群 Image 是素阶循环群,因此 Image ,则有 Image ,则我们的到了离散对数问题 Image 的解 Image 。 


HVZK


证明HVZK在于如何构建一个产生conversation并被verifier接受的 Image ,且 Image 产的conversation中元素的分布和正常 Image 交互产生的conversation中元素的概率分布相同。设 Image ,则 Image 计算:

Image

在真实的交互过程中, Image 和 Image分别在挑战空间 Image 和 Image 中服从均匀分布,且 Image 相互独立。此外 Image 是由 Image 唯一确定的,因此可以明显看出, Image 产生的conversation中元素的概率分布同正常交互所产的conversation中元素的概率分布相同。


Knowledge soundness


由Knowledge soundness 的定义以及Schnorr's protocol的安全性分析可知,Schnorr's protocol满足Knowledge soundness。


Sigma protocol的一些例子


1

Okamoto’s protocol

设 Image 是一个阶为素数 Image 的循环群,其生成元为 Image。 Image 是群中任意一个元素。Okamoto’s protocol中的关系为:

Image

协议的过程为: