PZK via OWF

参考文献:

  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.mzph.cn/news/831422.shtml

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

相关文章

解决WordPress无法强制转换https问题

原因:我在用cs的时候,突然老鸟校园网突然断了,客户端cs连不上了,进程也杀不死,cpu占用100%,只能重启,但是重启后我的blog网站打不开了 开始以为是Nginx的问题,重启它说配置出了问题…

python学习笔记B-14:序列结构之元组--元组的访问与遍历

下面是几种元组的方位与遍历方法: t ("hello","python","world") print("原元组",t) print("t[1]",t[1]) print("t[0:3:2]",t[0:3:2]) #切片操作,从索引值0到索引值为2,步长为…

利用大语言模型(KIMI)构建智能产品的控制信息模型

数字化的核心是数字化建模,为一个事物构建数字模型是一项十分复杂的工作。不同的应用场景,对事物的关注重点的不同的。例如,对于一个智能传感器而言,从商业的角度看,产品的信息模型中应该包括产品的类型,名…

修改Ubuntu远程登录欢迎提示信息

无论何时登录公司的某些生产系统,你都会看到一些登录消息、警告或关于你已登录服务器的信息,如下所示。 修改方式 1.打开ubuntu终端,进入到/etc/update-motd.d目录下面 可以发现目录中的文件都是shell脚本, 用户登录时服务器会自动加载这个目录中的文件…

ThreeJS:坐标辅助器与轨道控制器

ThreeJS与右手坐标系 使用ThreeJS创建3D场景时,需要使用一个坐标系来定位和控制对象的位置和方向。 ThreeJS使用的坐标系是右手坐标系,即:X轴向右、Y轴向上、Z轴向前,如下图所示, ThreeJS-右手坐标系 Tips:…

【C++】命名冲突了怎么办?命名空间来解决你的烦恼!!!C++不同于C的命名方式——带你认识C++的命名空间

命名空间 导读一、什么是C?二、C的发展三、命名空间3.1 C语言中的重名冲突3.2 什么是命名空间?3.3 命名空间的定义3.4 命名空间的使用环境3.5 ::——作用域限定符3.6 命名空间的使用方法3.6.1 通过作用域限定符来指定作用域3.6.2 通过关键字using和关键字namespace…

云服务器+ASF实现全天挂卡挂时长

目录 前言正文1.安装下载2.编辑配置文件3.设置Steam社区证书4.启动ASF5.给游戏挂时长6.进阶-ASF自动启动且后台保活 前言 我遇到的最大的问题是,网络问题 其实不然,各大厂商的云服务器后台都有流量监控,意味着依靠一般方法是不能正常访问St…

变量内存和存储单位

基本数据类型及其占位符 存储单位 内存中的数据存储单元是由一个一个的二进制组成的,每个二进制只能存储0 和1 科学家为了更加方便存储更多的数据,把内存中8个二进制分为一组,叫做一个字节,Byte字节是最小的存储单位。(重点⭐⭐⭐…

聚焦Spring后置处理器分析对比

目录 一、理解Spring后置处理器 二、Spring后置处理器在IOC容器和bean对象生命周期的切入时机分析 (一)IOC 容器生命周期中的切入时机 (二)Bean 对象生命周期中的切入时机 三、BeanPostProcessor后置器分析 (一&…

OpenCV(三)—— 车牌筛选

本篇文章要介绍如何对从候选车牌中选出最终进行字符识别的车牌。 无论是通过 Sobel 还是 HSV 计算出的候选车牌都可能不止一个,需要对它们进行评分,选出最终要进行识别的车牌。这个过程中会用到两个理论知识:支持向量机和 HOG 特征。 1、支…

Redis__事务

文章目录 😊 作者:Lion J 💖 主页: https://blog.csdn.net/weixin_69252724 🎉 主题:Redis__事务 ⏱️ 创作时间:2024年05月02日 ———————————————— 这里写目录标题 文章目…

SSM+Vue在线OA办公系统

在线办公分三个用户登录,管理员,经理,员工。 SSM架构,maven管理工具,数据库Mysql,系统有文档,可有偿安装调试及讲解,项目保证质量。需要划到 最底 下可以联系到我。 功能如下&am…

蓝桥杯练习系统(算法训练)ALGO-950 逆序数奇偶

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 老虎moreD是一个勤于思考的青年,线性代数行列式时,其定义中提到了逆序数这一概念。不过众所周知我们…

nginx--location详细使用和账户认证

在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最高的一个uri,uri是用户请求的字符串,即域名后面的web文件路径,然后使用该location模块中的正则url和字符串串,如果匹配成功就结束搜索&…

C语言----贪吃蛇(补充)

各位看官好,我想大家应该已经看过鄙人的上一篇博客贪吃蛇了吧。鄙人在上一篇博客中只是着重的写了贪吃蛇的实现代码,但是前期的一些知识还没有具体的介绍,比如确认光标位置,句柄等。那么我这一篇博客就来补充上一篇博客所留下来的…

神经网络中的优化方法

一、引入 在传统的梯度下降优化算法中,如果碰到平缓区域,梯度值较小,参数优化变慢 ,遇到鞍点(是指在某些方向上梯度为零而在其他方向上梯度非零的点。),梯度为 0,参数无法优化&…

数据结构-AVL树

目录 什么是 AVL 树 ASL 度量查找效率 结构体定义 平衡调整 调整类型 左旋和右旋 右旋 左旋 左、右平衡调整 左平衡调整 右平衡调整 插入数据 模拟建立 AVL 树 什么是 AVL 树 二叉排序树的形状取决于数据集,当二叉树的高度越小、结构越合理&#xff0c…

thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程

介绍 thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程 上门预约服务派单小程序家政小程序同城预约开源代码独立版安装教程 程序完整,经过安装检测,可放心下载安装。 适合本地的一款上门预约服务小程序&#xff0…

计算机网络——初识网络

一、局域网与广域网 1.局域网(LAN) 局域网:即Local Area Network,简称LAN。Local即标识了局域⽹是本地,局部组建的⼀种私有⽹络。局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和…

A4的PDF按A3打印

先用办公软件打开,比如WPS。 选择打印-属性。 纸张选A3,如果是双面打印,选短边装订,然后在版面-页面排版-每张页数(N合1)选2。 不同打印机的具体配置可能不一样,但大体都是这个套路。