零知识证明(Sigma和Flat-shamir)

news2024/11/19 6:20:08

概述

定义:大概的定义就是prover可以向verifier证明自己给定的信息是大概率正确的,但是不泄露任何附加信息,包含信息本身。
举例
这里以一个比较经典的例子,即向红绿色盲(无法区分红色和绿色,看红色和绿色颜色差不多)证明两个小球(红球和绿球)的颜色是不同的。步骤如下,
首先让视觉正常的prover,把两个球分别放在色盲验证者的两只手上并记住球的颜色和位置,接着让色盲把手背过去,自行决定是否要交换球的位置,然后双手握球向prover展示,最后prover给出结论是否交换过。
整个例子很好的体现了零知识证明,验证者色盲在交互结束后除了能够相信手上的两个球颜色确实不同以外,无法获得任何信息,虽然这里会有个 1 2 \frac 1 2 21的概率问题,但可以通过重复来降低概率。

分类

分类一:

  • Proof of Knowledge:prover的确持有该知识。
  • Proof of membership:可能不持有。

分类二:

  • 交互式:交互式就是prover和verifier需要交互式的多次通信,才能生成一个proof用于验证。
  • 非交互式:非交互式就是prover直接发送一个proof,verifier可以直接验证正确性。

基三个基本性质

  • 可靠性(Soundness): 如果verifier接受这个证明,那么这个statement就大概率是正确的。
  • 完备性(Completeness): 给定某个statement的有效证据, 如果prover和verifier均诚实运行协议,且这个statement是正确的, 那么verifier相信该statement的正确性。
  • 零知识: prover能向verifier证明某个陈述的正确性而不泄露除正确性以外的其他任何信息,可以认为假设存在一个完全不知道任何相关信息的simulator,可以模拟出verifier对该证明进行验证。
    • 完美零知识性:整个协议中,证明者泄露给verifier的额外信息是0。
    • 统计学零知识性:额外信息可忽略
    • 基于算力假设:多项式时间内,额外信息是可忽略的

Sigma协议

是一种特殊的三轮零知识证明协议,基本流程如图
image.png

Sigma协议的性质

**知识合理性(Knowledge Soundness):**传统的soundness是,如果verifier接受,那么大概率proof就是真的。而这里的Knowledge Soundness则是存在一个extractor,它可以和prover进行交互,如果prover有witness,那么extractor就可以通过多次的交互提取出这样一个witness。
换句话说就是,prover需要持有statement的相关的知识才能拿出可信的proof,即如果prover没有statement的知识,那么就无法说服verifier。相当于约束了prover,使得他无法骗人,如,prover说自己知道某个难题的解,verifier肯定不相信,那么就按照prover给的流程进行一步步推,最后发现确实可以,假如prover不知道解题的流程,那么是一定说服不了verifier的。
2-特殊合理性(2-Special Soundness):
image.png
如果有两个transport,那么上面的两个 a a a是一样的,而 e e e z z z则是不一样的,把这两个transport交给extractor就能提取出witness,同理需要k个transport的话,就是k-Special Soundness
特殊诚实验证者零知识性(SHZK,Special Honest verifuer Zero-knowledge):
只能满足honest的verifier,malicious是不行的。
image.png
存在一个simulator,对于任意给定的一个challenge,也就是 e e e,这个simulator都能输出一组 ( a ′ , e , z ′ ) (a',e,z') (a,e,z),和真正的prover与verifier交互基本无法区分。
简单说就是,整个协议的交互是不会泄露任何有用的东西,主要约束verifier,使得其除了结果以外一无所知。

一个例子-Schnorr协议

G G G是一个阶为素数 p p p的一个乘法群(BTW,在椭圆曲线上面也是类似的), g g g则是它的生成元, w w w为私钥, x = g w x=g^w x=gw则为公钥,整个协议就是prover向verifier证明其拥有 P K PK PK对应的 S K SK SK,大致过程如图
image.png

  1. 首先prover随机选择一个随机数 t t t,作用是用于保护私钥无法被verifier直接提取出来,然后计算 a = g t a=g^t a=gt,发送给verifier。
  2. verifier随机选择一个挑战 e e e,发送给prover。
  3. prover计算 z = t + e ⋅ w z=t+e \cdot w z=t+ew
  4. verifier进行验证,即计算 g z = ? a x e g^z \stackrel{?}= ax^e gz=?axe

证明

  • Knowledge Soundness

在最后的验算中已经证明了,接下来证明

  • 2- Speclai Soundness

即构造两个transport,看看extractor与之交互后能否提取出witness,如图
image.png
可以看到结果是可以提取出来的

  • SHVZK

创建一个模拟器,它将模拟prover,给定任意一个挑战 e e e后,会生成相应结果 ( a , e , z ) (a,e,z) (a,e,z)
image.png
z z z是随机的, g , x , e g,x,e g,x,e都是已知的,则 a a a是随机,和正常prover计算的 a = g t a=g^t a=gt都是随机的,那么Sim和真实prover的所生成的参数是identical distribution的。
注意,Sim无法在真实世界使用,因为它少了一个order的信息,也就是真实世界执行顺序是定好的先给出 a a a再给出 e e e。如果证明发生在虚拟机环境中,那么证明是有风险的,因为虚拟机可以反复snapshot,然后rewind,相当于order不会严格的执行,且虚拟机的randness是用的主机的,那么这个randness 就可以被固定,从而导致知识 w w w泄露。

Flat-shamir转换

采用Hash函数的方法将交互式零知识证明转换为非交互式零知识证明,这样就通过减少通信步骤而提高了通信的效率。对比交互式证明好处有二,
其一是verifier无需在线,
其二是可以同时向所有人证明。
image.png
hash里面不仅仅是 a a a,还要包括之前statement。
prover可以自己计算出一个 a a a x x x来“创造”出一个 e e e(将它看作是verifier发送过来的),并计算 z z z直接发送给verifier。verifier自己能够知道 a a a x x x,所以他也可以计算出 e e e,然后收到来自prover的 z z z,从而完成验证,整个过程就可以省略交互。

参考

隐私计算基础理论-零知识证明
初识「零知识」与「证明」(郭宇)
从交互到非交互式零知识证明
零知识证明:一个略微严肃的科普

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于RFID技术的并列式挤奶厅方案

随着现代农业的不断发展,RFID技术已经广泛应用于畜牧业生产中。在奶牛养殖领域,RFID技术可以帮助养殖场管理人员实现奶牛的精准管理,提高生产效率。本文将介绍一种基于RFID技术的并列式挤奶厅方案,该方案可以实现对每头奶牛的精准…

网络安全(黑客)必备工具包

1. NMap 作为Network Mapper的缩写,NMap是一个开源的免费安全扫描工具,可用于安全审计和网络发现。它适用于Windows、Linux、HP-UX、Solaris、BSD变体(包括Mac OS)以及AmigaOS。Nmap可用于探测网络上哪些主机可访问,它们正在运行的操作系统类…

Keil MDK编程环境下的 STM32 IAP下载(学习笔记)

IAP的引入 不同的程序下载方式 ICP ICP(In Circuit Programing)。在电路编程,可通过 CPU 的 Debug Access Port 烧录代码,比如 ARM Cortex 的 Debug Interface 主要是 SWD(Serial Wire Debug) 或 JTAG(Joint Test Action Group); ISP ISP(I…

合宙Air724UG Cat.1模块硬件设计指南--Wifi扫描

概述 Air724UG具有WiFi Scan功能,支持2.4G频段下的802.11b,802.11g,802.11n等WiFi技术协议,结合模块本身支持的蓝牙功能,二者共用一路天线。 Air724UG以主动的方式,在每个信道上发出Probe Request帧&#x…

Java集合框架中取出元素时的比较问题:“==“与equals()方法

今天随便刷力扣的时候看到了最小栈&#xff0c;发现力扣上没做过&#xff0c;题不难&#xff0c;于是做了一下 一开始的代码如下&#xff1a; class MinStack {Deque<Integer> stack;Deque<Integer> minStack;public MinStack() {stack new LinkedList<>()…

HHU商务数据挖掘期末考点复习

文章目录 第一章 概述第二章 商务智能过程2.1四个部分2.2数据仓库与数据库2.3在线分析处理与在线事务处理 第三章 关联分析3.1 频繁模式与关联规则3.2 相关性度量liftcosine 第四章 分类4.1决策树4.1.1 信息熵的概念4.1.2 计算目标变量的信息熵4.1.3 算条件熵4.1.4 信息增益4.1…

从专用模型到大模型

背景&#xff1a; 在开始文章正文之前&#xff0c;我们来讲讲为何突然大模型火了&#xff0c;大模型和专用模型到底有何差异。 大模型火之前专业模型其实已经能够很好的配合做很多很复杂的事情。如果只是从提高工作效率的角度来讲应该是发展模型的专业问题解决能力&#xff0…

SpringSecurity实现Remember-Me实践

【1】基于会话技术的实现 也就是基于Cookie的实现。 ① 登录页面 这里name"remember-me"表示“记住我”的复选框&#xff0c;默认key是remember-me。 <form action"/user/login" method"post"><input type"text" name&q…

Jmeter连接数据库并进行操作

一&#xff1a;加一个JDBC组件 二、填写连接信息&#xff1a; 三&#xff1a;添加JDBC请求 四、填写sql并运行

[centos] 新买的服务器环境搭建

由于去年买的云服务器快过期了,然后最近又新买了一个服务器,所以就写下了这篇文章, 虽然可以镜像搭建,但是本身原服务器就没有多少东西,所以我选择了手动搭建... 再且,也可以帮我再熟悉一下 centos 环境... 当然很多都是我之前OneNote的学习笔记,这里就直接复制和粘贴了(&#…

操作系统3——处理机调度与死锁

本系列博客重点在深圳大学操作系统课程的核心内容梳理&#xff0c;参考书目《计算机操作系统》&#xff08;有问题欢迎在评论区讨论指出&#xff0c;或直接私信联系我&#xff09;。 梗概 本篇博客主要介绍操作系统第三章处理机调度与死锁的相关知识。 目录 一、调度基本概念…

【FFmpeg实战】MP4封装格式分析

原文地址&#xff1a;https://www.cnblogs.com/moonwalk/p/16244932.html 解析工具&#xff1a; https://gpac.github.io/mp4box.js/test/filereader.html (mp4box) 1. 概述 mp4 容器格式相较于 flv、ts 容器格式来说&#xff0c;其定义较为复杂&#xff0c;本篇文章主要记录…

1.计算机是如何工作的(上)

文章目录 1.计算机发展史2.冯诺依曼体系&#xff08;Von Neumann Architecture&#xff09;3.CPU 基本工作流程3.1逻辑门3.1.1电子开关 —— 机械继电器(Mechanical Relay)3.1.2门电路(Gate Circuit) 3.2算术逻辑单元 ALU&#xff08;Arithmetic & Logic Unit&#xff09;3…

BossPlayerCTF 靶场

sudo nmap -sn 192.168.28.0/24 sudo nmap -sT --min-rate 10000 -p- 192.168.28.40 sudo nmap -sT -sV -sC -O -p22,80 192.168.28.40 -oA nmapscan/detail sudo nmap --scriptvuln -p22,80 192.168.28.40 -oA nmapscan/vuln 访问80 查看web源码&#xff1a; robots.txt ec…

AI EXPO 2023 | 图技术激活数据资产论坛圆满落幕

2023年6月25日下午&#xff0c;由新一代人工智能产业技术创新战略联盟、苏州市人工智能协同创新中心与苏州市大数据服务中心协会联合主办&#xff0c;浙江创邻科技有限公司承办的「2023全球人工智能产品应用博览会-图技术激活数据资产主题论坛」在苏州国际博览中心圆满落幕&…

JavaWeb小记——重定向和内部转发

目录 重定向 原理图 重定向语句 重定向特点 内部转发 原理图 请求转发特点 路径的书写 请求域对象request 特点 请求转发特点 重定向特点 重定向 原理图 重定向语句 response.setStatus(302); response.setHeader("location","http://www.baidu.c…

kubectl get cs显示unhealthy的解决办法

01、问题描述 使用kubectl get cs查看K8s组件状态&#xff0c;发现scheduler和controller-manager状态为Unhealthy&#xff0c;但集群可以正常使用。 [rootk8s-master ~]# kubectl get cs Warning: v1 ComponentStatus is deprecated in v1.19 NAME STATUS …

matplotlib——2. 形状和路径(Shape and Collection)底纹(hatch)

文章目录 1. 形状和路径1.1 PatchCollection替换热力图数字1.1.1原始的数字代码1.1.2 替换为PatchCollection的代码 1.2 PatchCollection绘制目标检测&#xff08;COCO&#xff09;标签1.3 PatchCollection绘制分割&#xff08;COCO&#xff09;标签 2. 底纹&#xff08;hatch&…

搭建Zabbix服务(Linux系统)

环境&#xff1a; centos7、lamp、防火墙关闭、selinux关闭 配置阿里云zabbix yum源 [rootchenshuyi ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm 获取https://mirrors.aliyun.com/zabbix/zabbix/…

开启iis服务器通过php获取MySQL数据

开启iis服务器通过php获取MySQL数据 第一步开启iis服务器。 具体的可以查看这个&#xff1a;http://www.wokk.cn/40547.html 1.全部勾选,把万维网服务和web管理工具全部勾选。 2.添加网站&#xff0c;在网站这里添加网站&#xff0c;物理连接路径为你的网站存放的根目录。 3…