Almost Optimal Short Adaptive Non-Interactive Zero Knowledge学习笔记

本文深入探讨了Hadamard乘积论证,一种用于并行乘法运算的非交互式零知识证明方案。通过利用多项式插值和算术电路,论证确保了数据的完整性和隐私保护。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

1. 背景知识

Helger Lipmaa 2014年eprint 论文《Almost Optimal Short Adaptive Non-Interactive Zero Knowledge》:

  • 提出新的Hadamard product argument。借助Gennaro等人2013年论文《Quadratic Span Programs and Succinct NIZKs without PCPs》的QAP机制,将Hadamard product argument理解为:The product argument is enssentially a polynomial quadratic arithmetic program (QAP) for the circuit that computes n n n multiplications in paralle, with additional elements to guarantee security in our setting。且在本文中的新的Hadamard product argument,Prover对应的计算有:3个polynomial interpolation(over Z p \mathbb{Z}_p Zp),1个polynomial multiplication(over Z p \mathbb{Z}_p Zp)、1个polynomial division(over Z p \mathbb{Z}_p Zp)和2个 n − n- nwide multi-exponentiations。Prover的计算时间为 Θ ( n log ⁡ n ) \Theta(n\log n) Θ(nlogn),assuming that p p p satisfies a mild criterion。
  • 采用了新的同态trapdoor commitment scheme——interpolating commitment scheme。【其实就是将2.1节中的 x x x替换为多项式 P i ( σ ) P_i(\sigma ) Pi(σ)来构建CRS。Groth 2010年论文《Short Pairing-based Non-interactive Zero-Knowledge Arguments》中的CRS特例化为: P 0 ( X ) = Z ( X ) = 1 , P i ( X ) = X i P_0(X)=Z(X)=1,P_i(X)=X^i P0(X)=Z(X)=1,Pi(X)=Xi。】
  • 新的shift argument。
  • 新的restriction argument。
  • 新的range argument。The new range argument can be seen as a short program in the scan vector parallel computation model [Ble90] that operates on committed vectors of length n n n。(可由1个restriction argument,1个shift argument,2个product argument组成。)
    在这里插入图片描述

2. trapdoor commitment scheme

2.1 何为trapdoor commitment scheme?

在这里插入图片描述
在这里插入图片描述
trapdoor commitment scheme主要针对的是CRS场景,如上图中的 x x x为trapdoor key,该key值应对Prover和Verifier均不可知(传说中的有毒垃圾?),否则,如对向量 0 ⃗ \vec{0} 0 的knowledge commitment ( c , c ^ ) , c = g t , c ^ = g ^ t (c,\hat{c}),c=g^t,\hat{c}=\hat{g}^t (c,c^),c=gt,c^=g^t,若Prover若知道x值,可将 c c copen为任意的消息 a 1 , ⋯   , a n ; r = t − ∑ i = 1 n a i x i a_1,\cdots,a_n;r=t-\sum_{i=1}^{n}a_ix^i a1,,an;r=ti=1naixi,使得Verifier验证 c = g r ∏ i = 1 n g i a i c=g^r\prod_{i=1}^{n}g_i^{a_i} c=gri=1ngiai c ^ = g ^ r ∏ i = 1 n g i ^ a i \hat{c}=\hat{g}^r\prod_{i=1}^{n}\hat{g_i}^{a_i} c^=g^ri=1ngi^ai以及 e ( g , c ^ ) = e ( g ^ , c ) e(g,\hat{c})=e(\hat{g},c) e(g,c^)=e(g^,c)均成立,从而破坏了commitment的binding属性要求。

2.2 pairing-based polynomial (trapdoor) commitment scheme

其实就是将2.1节中的 x x x替换为多项式 P i ( σ ) P_i(\sigma ) Pi(σ)来构建CRS。Groth 2010年论文《Short Pairing-based Non-interactive Zero-Knowledge Arguments》中的CRS特例化为: P 0 ( X ) = Z ( X ) = 1 , P i ( X ) = X i P_0(X)=Z(X)=1,P_i(X)=X^i P0(X)=Z(X)=1,Pi(X)=Xi

2.2.1 { P i } \{P_i\} {Pi}-Commitment Scheme

在这里插入图片描述
相应的trapdoor key为 ( σ , α ) (\sigma,\alpha) (σ,α),其security依赖于 q − q- qtype假设
在这里插入图片描述

2.2.2 Interpolating Commitment Scheme

Interpolating Commitment Scheme的核心思想为:将要commit的向量 a ⃗ = ( a 1 , ⋯   , a n ) \vec{a}=(a_1,\cdots,a_n) a =(a1,,an) n − 1 n-1 n1阶多项式系数表示 L a ( X ) = a 1 + a 2 X + ⋯ + a n X n − 1 L_a(X)=a_1+a_2X+\cdots+a_nX^{n-1} La(X)=a1+a2X++anXn1,该多项式再用 w i w_i wi【其中 Z ( X ) = X n − 1 , Z ( w i ) = 0 , w i = w i − 1 Z(X)=X^n-1,Z(w_i)=0,w_i=w^{i-1} Z(X)=Xn1Z(wi)=0wi=wi1,其中 w w w为n-th of root】进行Lagrange插值,对应的 n − 1 n-1 n1阶Lagrange basis polynomial为: l i ( X ) = ∏ j ≠ i X − w j w i − w j , 相 应 地 有 : l i ( w i ) = 1   a n d   l i ( w j ) = 0   f o r   j ≠ i l_i(X)=\prod_{j\neq i}^{}\frac{X-w_j}{w_i-w_j},相应地有:l_i(w_i)=1\ and\ l_i(w_j)=0\ for\ j\neq i li(X)=j=iwiwjXwjli(wi)=1 and li(wj)=0 for j=i
对应地: L a ( X ) = ∑ i = 1 n a i l i ( X ) L_a(X)=\sum_{i=1}^{n}a_il_i(X) La(X)=i=1naili(X) is the interpolating (Lagrange) polynomial of a ⃗ \vec{a} a at points w i w_i wi L a ( w i ) = a i L_a(w_i)=a_i La(wi)=ai
在这里插入图片描述
在这里插入图片描述

3. 零知识 Zero Knowledge

在这里插入图片描述

4. Hadamard Product Argument

单位矩阵 I n = ( 1 0 ⋯ 0 0 1 ⋯ 0 ⋱ ⋱ ⋱ 0 0 0 ⋯ 1 ) = ( e ⃗ 1 e ⃗ 2 ⋯ e ⃗ n ) I_n=\begin{pmatrix} 1 & 0 & \cdots & 0\\ 0 & 1 & \cdots & 0\\ \ddots & \ddots & \ddots & 0\\ 0 & 0 & \cdots & 1 \end{pmatrix}=\begin{pmatrix} \vec{e}_1 \\ \vec{e}_2 \\ \cdots \\ \vec{e}_n \end{pmatrix} In=1000100001=e 1e 2e n
全1向量为 1 ⃗ n = ( 1 , ⋯   , 1 ) \vec{1}_n=(1,\cdots,1) 1 n=(1,,1)

需证明:
a ⃗ ∘ b ⃗ = ( a 1 b 1 , ⋯   , a n b n ) = c ⃗ = ( c 1 , ⋯   , c n ) \vec{a}\circ \vec{b}=(a_1b_1,\cdots,a_nb_n)=\vec{c}=(c_1,\cdots,c_n) a b =(a1b1,,anbn)=c =(c1,,cn)
当且仅当:
( a ⃗ T I n ) ∘ ( b ⃗ T I n ) = ( c ⃗ T I n ) ∘ ( 1 ⃗ n T I n ) (\vec{a}^TI_n)\circ(\vec{b}^TI_n)=(\vec{c}^TI_n)\circ(\vec{1}_n^TI_n) (a TIn)(b TIn)=(c TIn)(1 nTIn)
⇒ \Rightarrow
( ∑ a i e ⃗ i ) ∘ ( ∑ b i e ⃗ i ) = ( ∑ c i e ⃗ i ) ∘ ( ∑ e ⃗ i ) (\sum a_i\vec{e}_i)\circ(\sum b_i\vec{e}_i)=(\sum c_i\vec{e}_i)\circ(\sum \vec{e}_i) (aie i)(bie i)=(cie i)(e i)

上述公式可理解为:有一个arithmetic circuit C C C,具有 n n n个parallel multiplication gates, that on given inputs a ⃗ \vec{a} a and b ⃗ \vec{b} b returns c ⃗ \vec{c} c as the output。

构建多项式: Q a ⃗ , b ⃗ , c ⃗ ( X ) = L a ( X ) L b ( X ) − L c ( X ) L 1 n ( X ) Q^{\vec{a},\vec{b},\vec{c}}(X)=L_a(X)L_b(X)-L_c(X)L_{1_n}(X) Qa ,b ,c (X)=La(X)Lb(X)Lc(X)L1n(X)
借助2.2.2节的Interpolating Commitment Scheme概念,取 n n n个不同值 w 1 , ⋯   , w n w_1,\cdots,w_n w1,,wn,满足 Z ( X ) = X n − 1 , Z ( w i ) = 0 Z(X)=X^n-1,Z(w_i)=0 Z(X)=Xn1Z(wi)=0。同时 L a ( X ) = ∑ i = 1 n a i l i ( X ) , L b ( X ) = ∑ i = 1 n b i l i ( X ) , L c ( X ) = ∑ i = 1 n c i l i ( X ) , L 1 n ( X ) = ∑ i = 1 n l i ( X ) L_a(X)=\sum_{i=1}^{n}a_il_i(X),L_b(X)=\sum_{i=1}^{n}b_il_i(X),L_c(X)=\sum_{i=1}^{n}c_il_i(X),L_{1_n}(X)=\sum_{i=1}^{n}l_i(X) La(X)=i=1naili(X)Lb(X)=i=1nbili(X)Lc(X)=i=1ncili(X)L1n(X)=i=1nli(X) n − 1 n-1 n1阶Lagrange basis polynomial l i ( X ) = ∏ j ≠ i X − w j w i − w j , 相 应 地 有 : l i ( w i ) = 1   a n d   l i ( w j ) = 0   f o r   j ≠ i l_i(X)=\prod_{j\neq i}^{}\frac{X-w_j}{w_i-w_j},相应地有:l_i(w_i)=1\ and\ l_i(w_j)=0\ for\ j\neq i li(X)=j=iwiwjXwjli(wi)=1 and li(wj)=0 for j=i。】,从而有 Q a ⃗ , b ⃗ , c ⃗ ( X ) Q^{\vec{a},\vec{b},\vec{c}}(X) Qa ,b ,c (X) ( n − 1 ) + ( n − 1 ) = 2 n − 2 (n-1)+(n-1)=2n-2 (n1)+(n1)=2n2阶。
a i b i = c i a_ib_i=c_i aibi=ci成立,则有:
Q a ⃗ , b ⃗ , c ⃗ ( w i ) = a i b i − c i = 0 Q^{\vec{a},\vec{b},\vec{c}}(w_i)=a_ib_i-c_i=0 Qa ,b ,c (wi)=aibici=0,即 Q a ⃗ , b ⃗ , c ⃗ ( X ) Q^{\vec{a},\vec{b},\vec{c}}(X) Qa ,b ,c (X) n n n个不同的 ( w 1 , ⋯   , w n ) (w_1,\cdots,w_n) (w1,,wn)均evaluate为0。
n n n阶多项式 Z ( X ) Z(X) Z(X)亦在 n n n个不同的 ( w 1 , ⋯   , w n ) (w_1,\cdots,w_n) (w1,,wn)均evaluate为0。

因此:
存在 ( 2 n − 2 ) − n = n − 2 (2n-2)-n=n-2 (2n2)n=n2 阶多项式 π ( X ) \pi(X) π(X),使得:
π ( X ) ⋅ Z ( X ) = Q a ⃗ , b ⃗ , c ⃗ ( X ) \pi(X)\cdot Z(X)=Q^{\vec{a},\vec{b},\vec{c}}(X) π(X)Z(X)=Qa ,b ,c (X)成立。

Witness: a ⃗ , b ⃗ , c ⃗ \vec{a},\vec{b},\vec{c} a ,b ,c
1)即证明Prover知道相应的 a ⃗ , b ⃗ , c ⃗ \vec{a},\vec{b},\vec{c} a ,b ,c 满足 a ⃗ ∘ b ⃗ = c ⃗ \vec{a}\circ\vec{b}=\vec{c} a b =c

2)改为证明Prover知道相应的 n − 2 n-2 n2 阶多项式 π ( X ) \pi(X) π(X),满足 π ( X ) ⋅ Z ( X ) = Q a ⃗ , b ⃗ , c ⃗ ( X ) \pi(X)\cdot Z(X)=Q^{\vec{a},\vec{b},\vec{c}}(X) π(X)Z(X)=Qa ,b ,c (X)

3)为了保证zero knowledge,引入随机变量 r a , r b , r c ← r Z p r_a,r_b,r_c\leftarrow _r \mathbb{Z}_p ra,rb,rcrZp,构建具有zero knowledge的多项式:
Q z k a ⃗ , b ⃗ , c ⃗ ( X ) = ( L a ( X ) + r a Z ( X ) ) ( L b ( X ) + r b Z ( X ) ) − ( L c ( X ) + r c Z ( X ) ) L 1 n ( X ) Q^{\vec{a},\vec{b},\vec{c}}_{zk}(X)=(L_a(X)+r_aZ(X))(L_b(X)+r_bZ(X))-(L_c(X)+r_cZ(X))L_{1_n}(X) Qzka ,b ,c (X)=(La(X)+raZ(X))(Lb(X)+rbZ(X))(Lc(X)+rcZ(X))L1n(X)
证明Prover知道相应的 n − 2 n-2 n2 阶多项式 π z k ( X ) \pi_{zk}(X) πzk(X),满足 π z k ( X ) ⋅ Z ( X ) = Q z k a ⃗ , b ⃗ , c ⃗ ( X ) \pi_{zk}(X)\cdot Z(X)=Q^{\vec{a},\vec{b},\vec{c}}_{zk}(X) πzk(X)Z(X)=Qzka ,b ,c (X)

n − 2 n-2 n2 阶多项式 π z k ( X ) = Q z k a ⃗ , b ⃗ , c ⃗ ( X ) / Z ( X ) = ∑ i = 0 n − 2 π i X i \pi_{zk}(X)=Q^{\vec{a},\vec{b},\vec{c}}_{zk}(X)/Z(X)=\sum_{i=0}^{n-2}\pi_iX^i πzk(X)=Qzka ,b ,c (X)/Z(X)=i=0n2πiXi 并不会reveal any information about the witness。

4)由于 π z k ( X ) \pi_{zk}(X) πzk(X) is not of sublinear length in n n n,Prover改为传输 the evaluation of π z k ( X ) \pi_{zk}(X) πzk(X) at a random secret point σ \sigma σ,同时借助2.2.2节的interpolating commitment scheme对应有:
c o m 1 ( c k 1 ; a ⃗ ; r a ) = g 1 r a Z ( σ ) + ∑ i = 1 n a i P i ( σ ) = g 1 r a Z ( σ ) + L a ( σ ) com_1(ck_1;\vec{a};r_a)=g_1^{r_aZ(\sigma)+\sum_{i=1}^{n}a_iP_i(\sigma)}=g_1^{r_aZ(\sigma)+L_a(\sigma)} com1(ck1;a ;ra)=g1raZ(σ)+i=1naiPi(σ)=g1raZ(σ)+La(σ)
从而有:
e ( g 1 π z k ( σ ) , g 2 Z ( σ ) ) = e ( g 2 , g 1 Q z k a ⃗ , b ⃗ , c ⃗ ( σ ) ) = e ( c o m 1 ( c k 1 ; a ⃗ ; r a ) , c o m 1 ( c k 2 ; b ⃗ ; r b ) ) / e ( c o m 1 ( c k 1 ; c ⃗ ; r c ) , c o m 1 ( c k 2 ; 1 ⃗ ; 0 ) ) e(g_1^{\pi_{zk}(\sigma),g_2^{Z(\sigma)}})=e(g_2,g_1^{Q^{\vec{a},\vec{b},\vec{c}}_{zk}(\sigma)})=e(com_1(ck_1;\vec{a};r_a),com_1(ck_2;\vec{b};r_b))/e(com_1(ck_1;\vec{c};r_c),com_1(ck_2;\vec{1};0)) e(g1πzk(σ),g2Z(σ))=e(g2,g1Qzka ,b ,c (σ))=e(com1(ck1;a ;ra),com1(ck2;b ;rb))/e(com1(ck1;c ;rc),com1(ck2;1 ;0)) 成立。

由于Prover 亦未知 random secret point σ \sigma σ,Prover需证明其知道 n − 2 n-2 n2 阶多项式 π z k ( X ) \pi_{zk}(X) πzk(X) 的系数 π 0 , π 1 , ⋯   , π n − 2 \pi_0,\pi_1,\cdots,\pi_{n-2} π0,π1,,πn2。同时需在CRS中包含相应的 ( g 1 σ , g 1 σ 2 , ⋯   , g 1 σ n − 2 ) (g_1^{\sigma},g_1^{\sigma^2},\cdots,g_1^{\sigma^{n-2}}) (g1σ,g1σ2,,g1σn2)。同时,为了实现knowledge commitment of π 0 , π 1 , ⋯   , π n − 2 \pi_0,\pi_1,\cdots,\pi_{n-2} π0,π1,,πn2,引入secret key β \beta β,构建CRS ( g 1 β σ , g 1 β σ 2 , ⋯   , g 1 β σ n − 2 ) (g_1^{\beta\sigma},g_1^{\beta\sigma^2},\cdots,g_1^{\beta\sigma^{n-2}}) (g1βσ,g1βσ2,,g1βσn2)
Prover计算: ( π , π β ) = ( g 1 , g 1 β ) ← ∏ i = 0 n − 2 ( g 1 σ i , g 1 β σ i ) π i (\pi,\pi^{\beta})=(g_1,g_1^{\beta})\leftarrow\prod_{i=0}^{n-2}(g_1^{\sigma^{i}},g_1^{\beta\sigma^{i}})^{\pi_i} (π,πβ)=(g1,g1β)i=0n2(g1σi,g1βσi)πi。其中 π \pi π即为 g 1 π z k ( σ ) = g 1 ∑ i = 0 n − 2 π i σ i = ∏ i = 0 n − 2 g 1 σ i g_1^{\pi_{zk}(\sigma)}=g_1^{\sum_{i=0}^{n-2}\pi_i\sigma^i}=\prod_{i=0}^{n-2}g_1^{\sigma^{i}} g1πzk(σ)=g1i=0n2πiσi=i=0n2g1σi

详细的Hadamard Product Argument证明思路如下图所示:
在这里插入图片描述

Prover和Verifier相应的计算量为:
在这里插入图片描述

5. right-shift-by- ξ \xi ξ argument

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. Restriction Argument

在这里插入图片描述

7. Range Argument

在这里插入图片描述

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生效的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生效,这样操作流程即告完成。如果设置仍然无法生效,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此时可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期版本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即时生效。此类问题的发生通常源于 CentOS 7 采用了不同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 提供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置时遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
代码转载自:https://pan.quark.cn/s/46fd08fb879c 网管教程 从入门到精通软件篇 ★一。★详尽的xp修复控制台指令及其应用!!! 放入xp(2000)的光盘,安装时选择R,执行修复! Windows XP(涵盖 Windows 2000)的控制台指令是在系统遭遇某些意外状况时的一种极具效用的诊断、检测以及恢复系统功能的工具。笔者确实一直期望能够将这方面的指令进行归纳,此次由老范辛苦整理了这份极具价值的秘籍。 Bootcfg bootcfg 命令用于启动配置与故障恢复(对大多数计算机而言,即 boot.ini 文件)。 带有特定参数的 bootcfg 命令仅在运用故障恢复控制台时方可使用。能够在命令行界面下运用带有不同参数的 bootcfg 命令。 用法: bootcfg /default 设定默认引导选项。 bootcfg /add 向引导清单中增添 Windows 安装。 bootcfg /rebuild 重复整个 Windows 安装流程并让用户选择需添加的项目。 注意:运用 bootcfg /rebuild 之前,应先借助 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 探查用于 Windows 安装的全部磁盘并展示结果。 注意:这些结果被静态存储,并用于当前会话。若在当前会话期间磁盘配置发生变动,为获取更新的探查结果,必须先重启计算机,然后再次探查磁盘。 bootcfg /list 列示引导清单中已有的项目。 bootcfg /disableredirect 在启动引导程序中禁用重定向。 bootcfg /redirect [ PortBaudRrate] |[ useBio...
代码下载链接: https://pan.quark.cn/s/fc524f791b68 AA制程,即Active Alignment,被理解为主动对准,是一种用于确定零部件装配中相对位置的方法。在摄像头封装阶段,涉及图像传感器、镜座、马达、镜头、线路板等多个部件的重复组装,而传统的封装设备如CSP及COB等,均是依据设备设定的参数进行零部件的移动装配,因而零部件的叠加误差会逐渐增大,最终在摄像头上表现为拍照最清晰的位置可能偏离画面中心、四边清晰度不均等现象。伴随智能手机和其他高端电子产品的普及,摄像头模组的性能正日益受到重视。高分辨率、卓越的低光表现以及稳定视频输出是现代用户所期望的。在摄像头模组的制造环节,各部件的精准定位对成像质量具有决定性作用。因此,一种名为“AA制程”(Active Alignment)的前沿技术被开发出来,成为摄像头精密对准的核心技术。 AA制程,即Active Alignment,是一种在摄像头封装过程中应用的主动对准方法。该方法在多个组件装配阶段发挥作用,涵盖图像传感器、镜座、马达、镜头和线路板等部件。传统的封装方式,例如CSP(Chip Scale Package)和COB(Chip On Board),依赖于设备预设的参数进行组装,但随着组件数量的增加,误差也会累积,最终影响摄像头的表现。例如在成像质量上可能出现中心位置偏移、四角清晰度不一致等问题。 AA制程技术的核心在于实时监测与主动调整。在组装过程中,它借助先进的检测设备持续监控半成品的状态,并根据实时信息对组装部件进行精确修正,从而显著降低装配误差。通过这种技术,能够确保摄像头模组中各组件的相对位置准确无误,从而使得最终的成像效果更加稳定,特别是在中心区域和四角的清晰度上...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值