PZK via OWF

news2024/11/24 1:29:54

参考文献:

  1. [SMP88] Santis A, Micali S, Persiano G. Non-Interactive Zero-Knowledge with Preprocessing[C]//Advances in Cryptology—CRYPTO’88.
  2. [LS90] Lapidot D, Shamir A. Publicly verifiable non-interactive zero-knowledge proofs[C]//Advances in Cryptology-CRYPTO’90: Proceedings 10. Springer Berlin Heidelberg, 1991: 353-365.

文章目录

  • ZKP with Pre-processing
  • PZK for Hamiltonicity
  • NIZK with CRS for any NP

ZKP with Pre-processing

[SMP88] 提出了一个弱化版本的 NIZK 系统,叫做 ZKP with Pre-processing(PZK)。它是一个 IP 系统,可以明确地分成交互阶段和非交互阶段。在交互阶段,Prover 和 Verifier 仅仅交换一些和要证明的 statement 无关的信息(预处理);在非交互阶段,Prover 发送 proof 给到 Verifier,后者不必回复。

PZK 应当具备如下的属性:

在这里插入图片描述

PZK for Hamiltonicity

[SMP88] 利用 any one-way encryption scheme 构造 PZK,后续 [LS90] 证明 PZK 只需要基于 OWF 存在性。他们构造了一个类似于 Blum’s ZK-PoK for Hamiltonian cycle 的 PZK,它的基础步骤是:

  • 在交互阶段,
    1. P 和 V 生成 n n n 个点的随机 HC,记为 H H H
    2. H H H 的邻接矩阵的各个 entry 替换为隐藏它的某随机串,记为矩阵 S ∈ ( Σ ∗ ) n × n S \in (\Sigma^*)^{n \times n} S(Σ)n×n
    3. 使得 P 知晓 H H H S S S,而 V 不知道 H H H 但是持有 S S S
  • 在非交互阶段,P 向 V 证明某个 n n n 点的图 G G G 包含 HC
    1. P 生成一个随机置换 π \pi π,将 H H H 嵌入到 G G G,即 π ( H ) ⊆ G \pi(H) \subseteq G π(H)G
    2. P 将 π ( H ) \pi(H) π(H) 对应的(隐藏的)邻接矩阵 π ( S ) \pi(S) π(S) 中的那些不是 G G G 的边的邻接值揭示给 V,同时也发送 π \pi π
    3. V 检查这些被揭示的邻接值(就是检查它们和 π ( S ) \pi(S) π(S) 的绑定关系),如果都是 0 0 0 则接受(意味着 π ( H ) \pi(H) π(H) 包含在 G G G 内部),否则拒绝

这个过程是 ZK 的,容易被模拟。为了获得 PZK with negl. s.e.,可以这么做:

  1. 在交互阶段,P 生成 l l l 个随机矩阵 S 1 , ⋯   , S l S_1,\cdots,S_l S1,,Sl 发送给 V,然后 V 回应 k k k 个随机比特 c 1 , ⋯   , c l c_1,\cdots,c_l c1,,cl
  2. 在非交互阶段,假如 c i = 0 c_i=0 ci=0 那么 P 揭示 S i S_i Si 的全部 entry 给 V(检查 H i H_i Hi 是个 HC),假如 c i = 1 c_i=1 ci=1 那么 P 就按照上述的基础步骤执行(检查 π i ( H i ) ⊆ G \pi_i(H_i) \subseteq G πi(Hi)G

这个 PZK 和 Blum’s ZK-PoK 的区别是:前者只在最后的非交互阶段依赖于 G G G(为了 NIZK 只需较弱的假设),而后者的所有通信轮次都依赖于 G G G(为了 NIZK 需要很强的假设)

NIZK with CRS for any NP

[LS90] 把上述 PZK 的交互阶段,使用 common random string(CRS)来预计算:随机生成矩阵序列,使得高概率存在某个矩阵是 Hamiltonian matrix,将它用于上述的 PZK 执行。

为了从 CRS 中获得随机性(注意 CRS 是公开的固定比特串),P 使用 Goldreich-Levin Hard-core 来生成随机的 HC 邻接矩阵:

  1. 目标矩阵是 B ∈ { 0 , 1 } n 2 × n 2 B \in \{0,1\}^{n^2 \times n^2} B{0,1}n2×n2,使得满足 P r ( B i j = 1 ) = 1 / n 3 , ∀ i , j Pr(B_{ij}=1)=1/n^3, \forall i,j Pr(Bij=1)=1/n3,i,j
  2. [LS90] 将恰好含有 n n n 1 1 1 且它们组成了 n n n 阶置换子矩阵的 B B B 称之为 proper,将 n n n 阶置换子矩阵形成了 HC 的 B B B 称之为 good
  3. 将 CRS划分为 k k k 比特的分块 r i r_i ri,给定某个 OWP f f f(P 可以求逆,V 不可以求逆),定义 x j = f − 1 ( r 2 j + 0 ) , y j = r 2 j + 1 x_{j}=f^{-1}(r_{2j+0}), y_{j}=r_{2j+1} xj=f1(r2j+0),yj=r2j+1,计算硬核 s j = ⟨ x j , y j ⟩ ( m o d 2 ) s_{j} = \langle x_{j}, y_{j}\rangle \pmod{2} sj=xj,yj(mod2),它们对 V 来说是不可预测的,形成了 hidden random string(HRS
  4. 再将 HRS 划分为 m = log ⁡ ( n 3 ) m=\log(n^3) m=log(n3) 比特的分块 a i a_i ai,设置 b i = 1    ⟺    a i = 2 m − 1 b_i=1 \iff a_i=2^m-1 bi=1ai=2m1,易知 P r ( b i = 1 ) = 1 / n 3 Pr(b_i=1)=1/n^3 Pr(bi=1)=1/n3,它们被用于构造随机矩阵 B B B
  5. P 可以求逆 f f f 构造出 B B B,而 V 需要验证它是否是 good 矩阵(要求 P 公开 b i b_i bi 及其对应的 x j x_j xj,于是 V 可用 CRS 可以检验它们),从而被应用到上述的 PZK for HC 中
    1. 如果 B B B 包含至少 n + 1 n+1 n+1 1 1 1,则揭示其中的 n + 1 n+1 n+1 个位置
    2. 如果 B B B 包含至多 n − 1 n-1 n1 1 1 1,则揭示全部的位置
    3. 如果 B B B 存在某行/某列含有至少两个 1 1 1,则揭示这两个位置
    4. 现在 B B B 是 proper 矩阵,揭示并消除那些全零的行/列,获得 n n n 阶置换阵 N N N
    5. 如果 N N N 不是汉密尔顿圈,那么揭示全部的位置
    6. 现在 N N N 是 good 矩阵,它作为某随机 HC 的邻接矩阵,可以被应用到 PZK for HC 中
  6. 将上述过程重复 n 3 n^3 n3 次,如果每次 V 检验 P 揭示的位置都是正确的,且每次的 PZK for HC 也都是接受,那么 V 就最终接受 P 的声明,否则拒绝

[LS90] 证明了随机矩阵 B B B 恰好是一个汉密尔顿圈的概率是 ≥ d n − 2 \ge dn^{-2} dn2,其中 d d d 是某常数。如果使用 2 n 7 k m 2n^7km 2n7km 比特的 CRS 生成 n 3 n^3 n3 个这种矩阵,那么以至少 1 − e − n 1-e^{-n} 1en 的概率存在某个矩阵是 good 的。对上述的 PZK for HC 重复 l l l 次以获得 negl. s.e.,则共计需要 O ( n 7 k m l ) O(n^7kml) O(n7kml) 比特的 CRS。

由于 HC 是一个 NPC 问题,因此假设 OWF/OWP 存在,那么就存在 NIZK with CRS for any NP。

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

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

相关文章

C++ stack和queue的使用方法与模拟实现

文章目录 一、 stack的使用方法二、 queue的使用方法三、 容器适配器四、 stack的模拟实现五、 queue的模拟实现 一、 stack的使用方法 stack介绍文档 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的…

8 聚类算法

目录 0 背景 1 Kmeans 1.1 聚类数量k的确定 2 DBSCAN 2.1 三个点 2.2 算法流程 3 层次聚类 3.1 过程 4 基于分布的聚类:高斯混合模型 0 背景 聚类算法是一种无监督学习技术,用于将数据集中的数据点划分为不同的组或簇,使得同一组内的数据点彼此相…

线性卷积和圆周卷积

文章目录 【 1. 线性卷积 】1.1 图解分析1.2 矩阵相乘实现线性卷积1.3 圆周卷积实现线性卷积1.4 实例:线性卷积的两种实现方法【 2. 圆周卷积 】2.1 图解分析2.2 矩阵相乘实现圆周卷积2.3 频域点乘实现圆周卷积2.4 实例:圆周卷积两种实现方法【 3. 线性卷积和圆周卷积的等价 …

算法导论 总结索引 | 第三部分 第十二章:二叉搜索树

1、搜索树数据结构 支持 许多动态集合操作,包括 SEARCH、MINIMUM、MAXIMUM、PREDECESSOR、SUCCESSOR、INSERT 和 DELETE 等。使用搜索树 既可以作为一个字典 又可以作为一个优先队列 2、二叉搜索树上的基本操作 所花费的时间 与这棵树的高度成正比。对于有n个结点的…

发卡盗u源码系统搭建ZHU

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包去除后门板,最好是部署智能合约后用合约地址来授权包含转账支付页面盗U授权源码。 完美提U,教程包含如何提u 。功能完美。 1.Php静态 2.目录puicta 3.扩sal 4.ssl不强https

Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现

摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元&#xff0c…

QT5之事件——包含提升控件

事件概述 信号就是事件的一种,事件由用户触发; 鼠标点击窗口,也可以检测到事件;产生事件后,传给事件处理,判断事件类型,后执行事件相应函数; 类似单片机的中断(中断向量…

STL 标准模板库

以下是一些常用的STL容器: vector:动态数组,提供快速的随机访问。list:双向链表,支持快速插入和删除操作。set:有序集合,存储唯一的元素。map:有序映射,存储键值对。sta…

数据库(MySQL)—— DQL语句(基本查询和条件查询)

数据库(MySQL)—— DQL语句(基本查询和条件查询) 什么是DQL语句基本查询查询多个字段字段设置别名去除重复记录 条件查询语法条件 我们今天进入MySQL的DQL语句的学习: 什么是DQL语句 MySQL中的DQL(Data Q…

【Docker第一课】docker的基本命令和试启动容器(详细图解)

目录 知识梗概 docker的初步了解 了解docker常用命令 试开启容器(这里演示nginx、python3和mysql) 1、nginx容器的启动 2、python3容器的启动 docker的作用 虚拟机与容器的区别 写在前面: 本专栏你将了解docker一些入门知识&#xff…

【解决方案】Can‘t exec “locale”: No such file or directory

【解决方案】Cant exec “locale”: No such file or directory 还可能出现的错误: 1. 报错原因: 缺少ldconfig 2. 解决方案: sudo apt-get download libc-bin dpkg -x libc-bin*.deb unpackdir/ sudo cp unpackdir/sbin/ldconfig /sbin/ s…

机器学习:深入解析SVM的核心概念【三、核函数】

核函数 **问题一:为什么说是有限维就一定存在高维空间可分呢?**原始空间与特征空间为什么映射到高维空间可以实现可分核函数的作用 **问题二:最终怎么得到函数**从对偶问题到决策函数的步骤:结论 **问题三:为什么说特征…

Coursera: An Introduction to American Law 学习笔记 Week 04: Constitutional Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 04: Constitutional LawKey Constitutional Law TermsSup…

Golang chan 实现原理

Golang:context基于go1.22版本 chan的作用和使用方法共享内存的优缺点 chan 的使用方法 chanel 的底层结构channel 结构体创建channel写流程异常处理写时有阻塞读流程写时无阻塞读流程,缓冲区有空间写时无阻塞读流程,缓冲区无空间写流程整体架…

PC通过串口发送指令控制LED+串口中断

如何让单片机接收数据? 首先要打开SCON中的串行接收控制位REN。当REN1时为允许接收状态,可以接收信息。 因此令SCON 0x50; 怎么知道收到数据? 利用RI接收中断请求标志位。当串行接收到第8位结束时由内部硬件自动置为RI1&#…

Matlab各个版本介绍、区别分析及推荐

MATLAB,由美国MathWorks公司出品,是一款广泛应用的商业数学软件。自其诞生之初,MATLAB便以其强大的矩阵计算能力、灵活的编程环境以及广泛的应用领域,赢得了全球科研工作者和工程师的青睐。本文将详细介绍MATLAB的各个版本&#x…

基于springboot+vue+Mysql的学生毕业离校系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

牛客美团2024年春招第一场笔试【技术】解题

1.小美的平衡矩阵 小美拿到了一个n∗n的矩阵,其中每个元素是 0 或者 1。 小美认为一个矩形区域是完美的,当且仅当该区域内 0 的数量恰好等于 1 的数量。 现在,小美希望你回答有多少个i∗i的完美矩形区域。你需要回答1≤i≤n的所有答案 输出…

ArcGIS+ChatGPT双剑合璧:从数据读取到空间分析,一站式掌握GIS与AI融合的前沿科技!

目录 专题一 AI大模型应用 专题二 ArcGIS工作流程及功能 专题三 prompt的使用技巧 专题四 AI助力工作流程 专题五 AI助力数据读取 专题六 AI助力数据编辑与处理 专题七 AI助力空间分析 专题八 AI助力遥感分析 专题九 AI助力二次开发 专题十 AI助力科研绘图 专题十一…

chrome extension插件替换网络请求中的useragent

感觉Chrome商店中的插件不能很好的实现自己想要的效果,那么就来自己动手吧。 本文以百度为例: 一般来说网页请求如下: 当前使用的useragent是User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safar…