基于Σ协议的零知识知识证明认证编译器
1. 引言
零知识知识证明(ZK - PoK)是一种双方协议,由证明者和验证者参与。证明者能借此让验证者相信自己知晓满足特定关系的秘密值(知识证明或稳健性),同时验证者无法获取该秘密的任何信息(零知识)。
ZK - PoK在众多密码学应用中是重要的构建模块,如投票方案、生物识别认证、群签名、交互式可验证计算、电子现金和安全多方计算等。然而,ZK - PoK的设计、实现和形式安全属性验证等工作目前主要依靠人工完成,这既耗时又容易出错。其稳健性属性需要为每个协议从头证明,即使是该领域的专家也可能在协议设计中出现错误。
为解决这些难题,我们推出了一款基于Σ协议的ZK - PoK编译器及相关集成工具,旨在使ZK - PoK更易于实践,让更多的密码学和安全工程师能够使用。
2. 主要贡献
我们提供了一个工具包,它以ZK - PoK证明目标的抽象描述为输入,输出经过验证的稳健协议的C语言实现。具体贡献如下:
- 全面支持Σ协议 :编译器及其输入语言支持文献中所有相关的基本Σ协议和组合技术。用户可以指定任意群同态的原像证明,并通过逻辑与(AND)和或(OR)运算符进行组合,还能证明秘密之间的代数关系。可自动生成的协议示例涵盖了多种应用场景。
- 自动决策与优化 :编译器会自动选择协议中的安全参数和区间,消除因参数选择不一致导致的安全漏洞。同时,它能够自动重写证明目标,降低生成协议的复杂度。
- 形式化验证 :编译器会生成协议稳健性的形式化证明,通过Isabelle/HOL
基于Σ协议的零知识证明编译器
超级会员免费看
订阅专栏 解锁全文
637

被折叠的 条评论
为什么被折叠?



