Argument of Knowledge包含三个PPT算法(S, P, V):CRS生成器 S ( λ ) → σ ^ S(\lambda)\rightarrow\hat{\sigma} S(λ)→σ^,prover P ( s ) P(s) P(s), verifier V ( t ) V(t) V(t)。
Argument of Knowledge应满足Perfect completeness和Statistical Witness-Extended Emulation。
敌手 A A A在没有密钥的情况下不能生成有效的签名,即使他可以自适应地破坏一些诚实的参与者并获得他们的密钥。正式定义:
Random oracle C O CO CO输出查询的私钥, S O SO SO输出一个签名(除非查询的 p k ^ j \hat{pk}_j pk^j不在环 p k pk pk中,终止)
包括Type-H和Type T两类,本文类比Type-T签名。
Type-T签名
生成签名:commit function A A A outputs a commitment R R R, hash function H H H outputs a challenge c c c, response function Z Z Z outputs a response z z z.
验证签名:重构 R R R并验证 c = H ( M , R ′ ) c=H(M,R') c=H(M,R′)
Type-T环签名:包含一个challenge和n个response
三步公钥认证协议
Fiat-Shamir变换可以将Canonical Identification变成非交互证明(用hash生成challenge,不需要交互)
即满足4个属性的Canonical Identification:
签名者(已知一组公钥 p k 1 , . . . , p k n pk_1,...,pk_n pk1,...,pkn和私钥 s k j sk_j skj):
(1) 随机选择 r j r_j rj(line 5)
(2) 随机选择challenges c 1 , . . . c j − 1 , c j + 1 , . . . , c n c_1,...c_{j-1},c_{j+1},...,c_n c1,...cj−1,cj+1,...,cn(line 5)
(3) 用function A A A、 V 2 V_2 V2和运算符 ⊙ \odot ⊙生成一个R-环(line 6)
(4) 用运算符 ⊗ \otimes ⊗生成一个C-环(line 7)
(5) 计算剩下的 c j = H ( m , p k , R ) ⊘ c j + 1 ⊘ . . . ⊘ c n ⊘ c 1 ⊘ . . . ⊘ c j − 1 c_j=H(m,pk,R)\oslash c_{j+1}\oslash...\oslash c_n\oslash c_1\oslash...\oslash c_{j-1} cj=H(m,pk,R)⊘cj+1⊘...⊘cn⊘c1⊘...⊘cj−1( ⊘ \oslash ⊘是 ⊗ \otimes ⊗的逆运算)故而有: c 1 ⊗ . . . ⊗ c n = H ( m , p k , R ) c_1\otimes ...\otimes c_n=H(m,pk,R) c1⊗...⊗cn=H(m,pk,R)
(6)计算response z ← Z ( s k j , c j , r j ) z\leftarrow Z(sk_j,c_j,r_j) z←Z(skj,cj,rj),生成签名包含一个response z z z和n个challenges ( c 1 , . . . , c n ) (c_1,...,c_n) (c1,...,cn)
和AOS相比的优势:
DualRing安全和匿名证明见原文。
a [ : l ] : ( a 1 , . . . , a l ) \mathbf{a}_{[:l]}:(a_1,...,a_l) a[:l]:(a1,...,al) a [ l : ] : ( a l + 1 , . . . , a n ) \mathbf{a}_{[l:]}:(a_{l+1},...,a_n) a[l:]:(al+1,...,an)
a ∘ b : \mathbf{a}\circ\mathbf{b}: a∘b:Hadamard product ( a 1 b 1 , a 2 b 2 , . . . , a n b n ) (a_1b_1,a_2b_2,...,a_nb_n) (a1b1,a2b2,...,anbn)
⟨ a , b ⟩ : \left\langle\mathbf{a},\mathbf{b}\right\rangle: ⟨a,b⟩:内积 ∑ i = 1 n a i b i \sum_{i=1}^{n}a_ib_i ∑i=1naibi
a b : ( a 1 b , a 2 b , . . . , a n b ) \mathbf{a}^b:(a_1^b,a_2^b,...,a_n^b) ab:(a1b,a2b,...,anb)
a + b : ( a 1 + b , . . . , a n + b ) \mathbf{a}+b:(a_1+b,...,a_n+b) a+b:(a1+b,...,an+b)
a b : ( ∏ i = 1 n a i b i ) \mathbf{a^b}:(\prod_{i=1}^{n}a_i^{b_i}) ab:(∏i=1naibi)
是Bullet proofs中内积证明的一种变体。内积证明是要证明关系:
证明者P使验证者V信服: c c c是两个被承诺的向量 a , b \mathbf{a,b} a,b的内积( ∑ i = 1 n a i b i \sum_{i=1}^n a_ib_i ∑i=1naibi)
Bullet proofs将证明的通信复杂度降到 O ( l o g n ) O(log n) O(logn):通过运行一个递归算法 P F P_F PF,在每一轮中两个规模为 n n n的向量 a , b \mathbf{a},\mathbf{b} a,b被提交为承诺 ( L , R ) (L,R) (L,R),对挑战 x x x计算两个规模 n / 2 n/2 n/2的证明向量 a ′ , b ′ \mathbf{a}',\mathbf{b}' a′,b′,有 L x 2 P R − x 2 L^{x^2}PR^{-x^2} Lx2PR−x2与 a ′ , b ′ , ⟨ a ′ , b ′ ⟩ \mathbf{a}',\mathbf{b}',\left\langle\mathbf{a}',\mathbf{b}'\right\rangle a′,b′,⟨a′,b′⟩的承诺相等。在下一轮,以 a ′ , b ′ \mathbf{a}',\mathbf{b}' a′,b′为算法 P F P_F PF的输入。直到 n = 1 n=1 n=1递归结束。
Sum Argument:
关系:
P向V证明它知道标量 a \mathbf{a} a的一个向量,使 P = g a P=\mathbf{g^{a}} P=ga且 c = ∑ a c=\sum\mathbf{a} c=∑a。尽管Sum Argument能通过设置向量 b \mathbf{b} b为 1 n 1^n 1n由内积证明变换得到,但这种方法的效率低于本方法。
p a r a m \mathbf{param} param:generator u ∈ G u\in\mathbb{G} u∈G在群 G \mathbb{G} G中阶为 p p p,hash函数 H Z , H Z ′ : { 0 , 1 } ∗ → Z p H_Z,H'_Z:\{0,1\}^*\rightarrow\mathbb{Z}_p HZ,HZ′:{0,1}∗→Zp.
N I S A ( p a r a m , g , P , c , a ) → NISA(\mathbf{param},\mathbf{g},P,c,\mathbf{a})\rightarrow NISA(param,g,P,c,a)→ a proof π \pi π.(Non-interactive Sum Argument)
V E R I F Y ( p a r a m , g , P , c , π ) → 1 / 0 VERIFY(\mathbf{param},\mathbf{g},P,c,\pi)\rightarrow1/0 VERIFY(param,g,P,c,π)→1/0.
P F P_F PF 中 n ≠ 1 n\neq1 n=1时:
将sum argument of knowledge的DualRing和Schnorridentification相结合,给出了基于DL的紧凑环签名的完整构造。
将sum argument匹配到ring signature
注意前面提到的sum argument要证明的关系可整理为:
而上文提出的通用环签名的验证包括(算法15-17行):
有趣的是,Type-T* canonical identification的两个实例(基于DL和RSA的)都满足 V 2 ( p k i , c i ) = p k i c i V_2(pk_i,c_i)=pk_i^{c_i} V2(pki,ci)=pkici.因此可以将sum argument用于关系:(哎,巧了么这不)
因此可以从匹配NISA的Type-T* canonical identification构造一个对数规模的环签名。
构造
将NISA加入DualRing中:
定义奇数模 q q q, R q R_q Rq是一个 d d d维的环 Z q [ X ] / ( X d + 1 ) \mathbb{Z}_q[X]/(X^d+1) Zq[X]/(Xd+1)
I n \bm{I}_n In是规模为 n n n的单位矩阵
U k \mathfrak{U}_k Uk是 Z [ X ] / ( X d + 1 ) \mathbb{Z}[X]/(X^d+1) Z[X]/(Xd+1)中的一个多项式集合,无穷范数不超过 k ∈ Z + k\in\mathbb{Z}^+ k∈Z+
U \mathcal{U} U是均匀分布
多项式(或多项式向量)的欧氏范数 ∥ ⋅ ∥ \|\cdot\| ∥⋅∥ 和 无穷范数 ∥ ⋅ ∥ ∞ \|\cdot\|_{\infty} ∥⋅∥∞标准定义
定义挑战空间: C = { c ∈ Z [ X ] / ( X d + 1 ) : ∥ c ∥ ∞ = 1 } \mathcal{C}=\{c\in\mathbb{Z}[X]/(X^d+1):\|c\|_{\infty}=1\} C={c∈Z[X]/(Xd+1):∥c∥∞=1},注意 ∣ C ∣ = 3 d |\mathcal{C}|=3^d ∣C∣=3d
Type-T* canonical identification from M-LWE/SIS,用拒绝采用技术保证没有签名者密钥的信息在response中被泄露。格基的Canonical Identification实例算法:
满足Canonical Identification的四个属性: