A Survey of Two Signature Aggregation Techniques學習筆記

1. 引言

Standford大學Dan Boneh等人2003年論文《A Survey of Two Signature Aggregation Techniques》。

針對的場景主要爲:
Given nn signatures on nn distinct messages from nn distinct users, it is possible to aggregate all these signatures into a single signature.
This single signature (and all nn original messages) will convince any verifier that the nn users signed the nn original messages (i.e., for i=1,,ni=1,\cdots,n, user ii signed message number ii).

實際應用有:

  • in a Public Key Infrastructure (PKI) of depth nn, user signatures are accompanied by a chain of nn certificates. The chain contains nn signatures by nn Certificate Authorities (CAs) on nn distinct certificates.
  • in the Secure BGP protocol (SBGP) each router receves a list of nn signatures attesting to a certain path of length nn in the network. A router signs its own segment in the path and forwards the resulting list of n+1n+1 signatures to the next router. The number of signatures in routing messages is linear in the length of the path.

以上兩種應用場景,都將受益於a method for compressing the list of signatures on distinct messages issued by distinct parties. 而aggregate signature可實現這樣的compression壓縮。

1.1 aggregate signature與multisignature的關係

multisignature是多個用戶對 同一消息mm 進行簽名,最終結果爲a single signature。

而aggregate signature 是需要combine signatures on distinct messages into an aggregate。

本論文中,主要調查了2套簽名方案:

  • general aggregation: short signature scheme of Boneh, Lynn, and Shacham.
  • sequential aggregation: Micali, Ohta, and Reyzin的multisignature scheme——built from any trapdoor permutation.

假設nn個users的公私鑰對分別爲(PKi,SKi)(PK_i,SK_i),User ii希望簽名的消息爲MiM_i

2. General aggregate signatures

在general aggregate signature機制中,user ii 對它的消息MiM_i生成簽名σi\sigma_i
nn個不同的簽名σ1,,σn\sigma_1,\cdots,\sigma_n通過a public aggregation algorithm來壓縮爲a single signature σ\sigma。同時存在aggregate verification algorithm,根據PK1,,PKn,M1,,MnσPK_1,\cdots,PK_n,M_1,\cdots,M_n以及\sigma,來驗證aggregate signature是否有效。

aggregation algorithm和aggregate verification algorithm:

  • aggregation algorithm:輸入爲signatures σ1,,σn\sigma_1,\cdots,\sigma_n on respective messages M1,,MnM_1,\cdots, M_n under respective public keys PK1,,PKnPK_1,\cdots,PK_n。輸出爲a single aggregate signature σ\sigma
  • aggregate verification algorithm:輸入爲an aggregate signature σ\sigma,messages M1,,MnM_1,\cdots,M_n以及public keys PK1,,PKnPK_1,\cdots,PK_n,驗證σ\sigma is a valid aggregate signature on the given messages under the given keys。

an aggregate signature可提供non-repudiation不可抵賴性at once on many different messages by many users。

general aggregate signature之所以爲general,是因爲public aggregation algorithm可由任何人執行,且不需要與簽名者進行交互。

Boneh, Lynn, and Shacham等人2003年論文《Aggregate and verifiably encrypted signatures from bilinear maps》中利用bilinear maps form algebraic geometry 實現了a general aggregate signature scheme。

2.1 Bilinear Maps

general aggregate signature的底層數學基礎主要有:

  • Gap Diffie-Hellman groups:arise from a separation between Computational Diffie-Hellman and Decision Diffie-Hellman;
  • bilinear groups:arise from the presence of a bilinear map, a function with certain properties。

Consider a multiplicative cyclic group GG of prime order pp, with generator gg

  • Computational Diffie-Hellman(CDH):Given g,ga,hGg,g^a,h\in G,計算haGh^a\in G。CDH assumption是指計算hah^a爲computationally infeasible。
  • Decision Diffie-Hellman(DDH):Given g,ga,h,hbGg,g^a,h,h^b\in G, decide whether aa equals bb. Tuples of this form——(g,ga,h,hb)(g,g^a,h,h^b)——are termed Diffie-Hellman tuple。DDH assumption是指在不知道的aa或者bb的情況下,很難判斷aa是否等於bb。【但是,參見2.2.2節,藉助bilinear group 可使DDH assumption不成立。】(參見博客 基於Sigma protocol實現的零知識證明protocol集錦 2.7節 Inequality of discrete logs中,若知道witness aabb,則可判斷aba\neq b是否成立。)

2.1.1 GDH Groups (Gap Diffie-Hellman groups)

對於大多數的cyclic group GG來說,如subgroups of Zq\mathbb{Z}_q^*,CDH和DDH assumption均成立。
但是,on certain elliptic-curve groups【如存在bilinear map的groups】,DDH problem is easy to solve, whereas CDH is believed hard [6,22]. CDH assumption成立而DDH assumption不成立的groups 稱爲 Gap Diffie-Hellman (GDH) groups。

2.1.2 Bilinear groups

目前,the only known examples of GDH groups have additional structure, namely, a bilinear map.
A bilinear map is a map e:G×GGTe:G\times G\rightarrow G_T,其中GTG_T爲another multiplicative cyclic group of prime order pp。具有如下屬性:

  • Computable可計算性:即存在有效的算法用於計算e(u,v)e(u,v),for all u,vGu,v\in G
  • Bilinear:對於所有的u,vGa,bZqu,v\in G和a,b\in \mathbb{Z}_qe(ua,vb)=e(u,v)abe(u^a,v^b)=e(u,v)^{ab}成立。
  • Non-degenerate:即e(g,g)1e(g,g)\neq 1

以上屬性還可衍生爲:【參見Boneh, Lynn, and Shacham等人2003年論文《Aggregate and verifiably encrypted signatures from bilinear maps》】

  • for any u1,u2,vGu_1,u_2,v\in Ge(u1u2,v)=e(u1,v)e(u2,v)e(u_1u_2,v)=e(u_1,v)\cdot e(u_2,v)成立。
  • for any u,vGu,v\in Ge(ψ(u),v)=e(ψ(v),u)e(\psi(u),v)=e(\psi(v),u)成立。

任何擁有map ee(滿足如上屬性)且CDH assumption成立的group,都可稱爲bilinear group。

bilinear map ee可用於解決DDH問題,如已知(g,ga,h,hb)(g,g^a,h,h^b)有:
a=bmod  pe(h,ga)=e(hb,g)a=b\mod p \Leftrightarrow e(h,g^a)=e(h^b,g)
從而使得DDH assumption不成立。

結論爲:
若group GG爲bilinear group,則GG也爲GDH group。

假設 E/FqE/\mathbb{F}_q爲an elliptic curve,設置GG爲 a subgroup (of prime order pp) of the curve’s group of points E(Fq)E(\mathbb{F}_q)
On certain cuves, the Weil pairing和modified Tate pairing可生成a bilinear map e:G×GGTe:G\times G\rightarrow G_T,其中group GTG_T爲a subgroup of Fqα\mathbb{F}_{q^{\alpha}}α\alpha爲a security multiplier that depends on the curve and on the group GG

multiplier α\alpha的取值需要權衡efficiency和security。α\alpha值越小,bilinear map的運算越快;而α\alpha值越大,則安全係數更高,the more difficult is the CDH problem on GG
目前的CDH algorithms on GG require solving the discrete logarithm problem either in the generic group GG (of order pp) or in the finite field Fqα\mathbb{F}_{q^{\alpha}}

MNT 家族curves具有large subgroups with security multiplier α=6\alpha=6,可滿足要求。

2.2 BLS Signature Scheme

(可參見博客 ECDSA VS Schnorr signature VS BLS signature 第3節內容。)

BLS short signature scheme works in any Gap Diffie-Hellman group GG,同時額外需要a hash function from the message space onto the group GG

假設G=<g>G=<g>爲a GDH group of prime order pp,with a hash function H:{0,1}GH:\{0,1\}^*\rightarrow G(可被認爲是a random oracle)。
任何string可都被前面,BLS signature爲 a single element of GG,整個BLS signature的流程如下:

  • Key Generation:選擇隨機數xRZpx\overset{R}{\leftarrow}\mathbb{Z}_p,計算v=gxv=g^x。公鑰爲vGv\in G,私鑰爲xZpx\in \mathbb{Z}_p
  • Signing:輸入爲私鑰xx和消息M{0,1}M\in\{0,1\}^*,計算hH(M)hG,σhxh\leftarrow H(M)其中h\in G, \sigma\leftarrow h^x。BLS簽名爲σG\sigma\in G
  • Verification:輸入爲公鑰vv,消息MM以及a signature σ\sigma,計算hH(M)h\leftarrow H(M),驗證(g,v,h,σ)(g,v,h,\sigma)爲a valid Diffie-Hellman tuple。(其實即是驗證e(g,σ)=e(v,h)e(g,\sigma)=e(v,h)是否成立。)

Its security against existential forgery under a chosen message attack can be shown based on the CDH assumption in GG [6].

BLS簽名σ=(x,y)G\sigma=(x,y)\in G,可只取xx座標表示(BLS remains valid and secure even if only the x-coordinate of every signature point σG\sigma\in G is transimitted.)。

對於MNT curve (with α=6\alpha=6) over a 170-bit field, BLS簽名的長度爲170bits,同時provide security comparable to that of 1024-bit RSA或者是320-bit DSA。
BLS signatures are half the size of DSA with comparable security。

BLS signature可擴展爲threshold signature, multisignature以及blind signature。

2.3 Bilinear Aggregate Signatures

bilinear aggregate signature要求group GG爲a bilinear group,而僅僅爲general GDH group是不夠的。

bilinear aggregate signature中引入了a random oracle hash function,輸入爲a string和an element of GGH:G×{0,1}GH:G\times\{0,1\}^*\rightarrow G

bilinear aggregate signature可支持general aggregation,可允許任何人來combine pre-existing signatures into an aggregate,對aggregated elements的順序無要求,如果確實需要的話,可在待簽名消息上附加index numbers。

Bilinear Aggregate Signatures在BLS Signature Scheme的基礎上,增加了AggregationAggregate Verification算法:

  • Key Generation:選擇隨機數xRZpx\overset{R}{\leftarrow}\mathbb{Z}_p,計算v=gxv=g^x。公鑰爲vGv\in G,私鑰爲xZpx\in \mathbb{Z}_p
  • Signing:輸入爲私鑰xx、消息M{0,1}M\in\{0,1\}^*和公鑰vv,計算hH(v,M)hG,σhxh\leftarrow H(v,M)其中h\in G, \sigma\leftarrow h^x。BLS簽名爲σG\sigma\in G
  • Verification:輸入爲公鑰vv,消息MM以及a signature σ\sigma,計算hH(v,M)h\leftarrow H(v,M),驗證(g,v,h,σ)(g,v,h,\sigma)爲a valid Diffie-Hellman tuple。(其實即是驗證e(g,σ)=e(v,h)e(g,\sigma)=e(v,h)是否成立。)
  • Aggregation:Arbitrarily assign to each user whose signature will be aggregated an index ii, ranging from 11 to nn. Each user ii provides a signature σiG\sigma_i\in G on a message Mi{0,1}M_i\in\{0,1\}^* of her choice. 計算σi=1nσi\sigma\leftarrow \prod_{i=1}^{n}\sigma_i。The aggregate signature is σG\sigma\in G
  • Aggregation Verification:輸入爲an aggregate signature σG\sigma\in G for a set of users indexed as before,original messages Mi{0,1}M_i\in\{0,1\}^* and public keys viGv_i\in G。計算hiH(vi,Mi)h_i\leftarrow H(v_i,M_i) for 1in1\leq i\leq n,驗證e(σ,g)=i=1ne(hi,vi)e(\sigma,g)=\prod_{i=1}^{n}e(h_i,v_i)是否成立。(根據2.1.2節衍生屬性可知其應成立。)

Bilinear Aggregate Signatures的安全性:當僅僅知道messages,public keys和the aggregate signature σ\sigma時,從σ\sigma中恢復各個單獨的signatures σ1,,σn\sigma_1,\cdots,\sigma_n爲hard。其安全性等價爲CDH assumption,詳細可參見Coron等人2003年論文《k-element aggregate extraction assumption is equivalent to the Diffie-Hellman assumption》。

Bilinear Aggregate Signatures支持incremental aggregation,即:
已知一個基於消息M1,,MnM_1,\cdots,M_n under public keys v1,,vnv_1,\cdots,v_n的aggregate signature σ\sigma

  • 增加一個簽名σn+1\sigma_{n+1} (on a message M_{n+1} under public key vn+1v_{n+1}) 可以aggregate爲:σσσn+1\sigma'\leftarrow \sigma\cdot \sigma_{n+1}
  • σ\sigma中的某個signature σj\sigma_j已知,則可從aggregate中移除:σσ/σj\sigma'\leftarrow \sigma/\sigma_j

3. Sequential aggregate signature

在sequential aggregation signature機制中,signature aggregation僅能在簽名過程中實現。每個簽名者依次在current aggregate的基礎上添加自己的簽名。在aggregate signature中有明確的順序要求,簽名者之間在aggregation過程中must communicate with each other。

sequential aggregation signature是分層構建的,像洋蔥依樣,第一各簽名aggregate後在最裏層。基本流程爲:

  • User 1 signs M1M_1 to obtain σ1\sigma_1;
  • User 2 then combines σ1\sigma_1 and M2M_2 to obtain σ2\sigma_2;(aggregate和簽名操作是在一起進行的。)
  • \cdots
  • The final signature σn\sigma_n binds user ii to MiM_i for all i=1,,ni=1,\cdots,n

sequential aggregation signature的最終長度與ordinary signature的長度一樣。

可基於類似RSA的homomorphic trapdoor permutation來實現sequential aggregate signature。
Micali, Ohta, and Reyzin 1999年論文《Provable subgroup signatures》(手稿,未發表)中的multisignature scheme可實現sequential aggregate signature,且Shacham 在其2003年論文《Sequential aggregate signatures from trapdoor homomorphic permutations》中進行了分析。

儘管general aggregation is more powerful than sequential aggregation,但是sequential aggregation可基於標準的primitives如RSA等來構建。

general aggregation和sequential aggregation均可用於compressing signatures in a certificate chain。

3.1 Trapdoor Homomorphic Permutations

sequential aggregation signature是基於trapdoor homomorphic permutation構建的。

permutation family Π\Pi 定義:
a collection of permutations of some domain DD. 每個Π\Pi中的permutation均有a description sSs\in S。Anyone given a description ss can evaluate the corresponding permutation。

permutation family Π\Pi 具有one-way屬性,即給定permutation description ss, it’s infeasible to invert the corresponding permutation.

permutation family Π\Pi 具有trapdoor屬性,若每個description ss 都有相應的trapdoor tTt\in T 使得it’s easy to invert the permutation corresponding to ss with tt,而infeasible without tt
trapdoor permutation family肯定是one-way的。

permutation family Π\Pi主要由Generate,EvaluateInvert算法組成:

  • Generate:輸出description sSs\in S of a permutation along with the corresponding trapdoor tTt\in T
  • Evaluate(s,)(s,\cdot):輸入爲description ss和a value xDx\in D,輸出爲aDa\in Daa爲the image of xx under the permutation。
  • Invert:輸入爲description ss,trapdoor tt和a value xDx\in D,輸出爲the preimage of aa under the permutation。

以上算法需滿足:Evaluate(s,)Evaluate(s,\cdot) be a permutation of DD for all (s,t)RGenerate(s,t)\overset{R}{\leftarrow} Generate,而Invert(s,t,Evaluate(s,x))=xInvert(s,t,Evaluate(s,x))=x hold for all (s,t)RGenerate(s,t)\overset{R}{\leftarrow} Generate and for all xDx\in D

trapdoor permutation具有homomorphic屬性,若在group內滿足:若a=π(x),b=π(y)a=\pi(x),b=\pi(y),則有ab=π(xy)a*b=\pi(x*y)
可將Generate算法的輸出理解爲a probability distribution Π\Pi on permutations,表示爲(π,π1)RΠ(\pi,\pi^{-1})\overset{R}{\leftarrow} \Pi其中π\pi對應爲the permutation Evaluate(s,)Evaluate(s,\cdot),而π1\pi^{-1}爲the inverse permutation Invert(s,t,)Invert(s,t,\cdot)

permutation family 中的每個permutation可對應different domain DD

3.2 Full-domain signatures

Full-domain signatures scheme中引入了一個random-oracle hash function H:{0,1}DH:\{0,1\}^*\rightarrow D。該hash函數可maps bit strings into the entire domain DD (rather than some subset of DD)。

Full-domain signatures算法流程爲:

  • Key Generation:對於特定用戶,選擇隨機(s,t)RGenerate(s,t)\overset{R}{\leftarrow} Generate。該用戶的公鑰爲ss,私鑰爲(s,t)(s,t)
  • Signing:對於特定用戶,輸入爲私鑰(s,t)(s,t),message M{0,1}M\in\{0,1\}^*,計算hH(M)h\leftarrow H(M),其中hDh\in D,計算σInvert(s,t,h)\sigma\leftarrow Invert(s,t,h)。The signature is σD\sigma\in D
  • Verification:輸入爲特定用戶的公鑰ss,message MM和a signature σ\sigma,計算hH(M)h\leftarrow H(M),驗證h=Evaluate(s,σ)h=Evaluate(s,\sigma)是否成立。

即,用戶通過σ=π1(H(M))\sigma=\pi^{-1}(H(M))來簽名,通過判斷π(σ)=H(M)\pi(\sigma)=H(M)來驗籤。

Π\Pi爲a trapdoor permutation family,則對當前已存在的existential forgery under a chosen message attack是安全的;若Π\Pi同時具有Homomorphic屬性,則其security reduction將更有效。

3.3 Sequential Aggregate Signatures

Sequential Aggregate Signatures是基於具有homomorphic屬性trapdoor permutation的full-domain hash signature scheme構建的。

以下Sequential Aggregate Signatures scheme是基於Micali, Ohta, and Reyzin 1999年論文《Provable subgroup signatures》(手稿,未發表)中的multisignature scheme來實現的。

論文中用到的向量基本定義如下:
在這裏插入圖片描述

Sequential Aggregate Signatures算法流程爲:

  • Key Generation:對於特定用戶,選擇隨機(s,t)RGenerate(s,t)\overset{R}{\leftarrow} Generate。該用戶的公鑰爲ss,私鑰爲(s,t)(s,t)
  • Aggregate Signing:輸入爲私鑰(s,t)(s,t),待簽名message M{0,1}M\in\{0,1\}^*以及a sequential aggregate signature σ\sigma' on a vector of messages MM under a vector of public keys ssNo key may appear twice in s\vec{s},同時要求vectors MMss的長度應該相同。當M=0|M|=0時,σ\sigma'值必須爲1(即the unit of DD)。
    計算hH(ss,MM)h\leftarrow H(\vec{s}||s,\vec{M}||M),其中hDh\in D,計算σInvert(s,t,hσ)\sigma\leftarrow Invert(s,t,h*\sigma')。The sequential aggregate signature is σD\sigma\in D
  • Aggregate Verification:輸入爲a sequential aggregate signature σ\sigma on messages M\vec{M} under public keys ss,其中M=s=i|\vec{M}|=|\vec{s}|=i。驗證時,首先設置σiσ\sigma_i\leftarrow \sigma,然後 for j=i,,1j=i,\cdots,1,依次計算σj1Evaluate(sj,σj)H(s1j,M1j)1\sigma_{j-1}\leftarrow Evaluate(\vec{s}_j,\vec{\sigma}_j)*H(\vec{s}|_1^j,\vec{M}|_1^j)^{-1},驗證σ0\sigma_0是否等於11

π\pi-理念表示的話,sequential aggregate signature可表示爲:
在這裏插入圖片描述
其中hj=H(s1j,M1j)h_j=H(\vec{s}|_1^j,\vec{M}|_1^j)

Π\Pi爲homomorphic trapdoor permutation family,則 trapdoor sequential aggregate signature scheme也是安全的。同時認爲,只要forger沒有獲取到所有的私鑰(如有1個私鑰是安全的),則該forger無法frame the remaining honest user。

3.4 Aggregating with RSA

RSA算法可參見博客 密碼學算法——RSA

具體爲:

  • N=pqN=pqp,qp,q爲2個large primes。
  • ed=1mod  ϕ(N)ed=1\mod \phi(N),其中t=(d)t=(d)爲私鑰,s=(N,e)s=(N,e)爲公鑰。
  • π(x)=xemod  N\pi(x)=x^e\mod N爲a permutation on ZN\mathbb{Z}_N^*π1(x)=xdmod  N\pi^{-1}(x)=x^d\mod N爲其inverse。

難點在於,兩個用戶無法共享相同的modulus NN,有2種方法來解決:
(假設nn個用戶的moduli分別爲N1,,NnN_1,\cdots, N_n,要求這些moduli具有接近的size,即log2N1=log2N2==log2Nn\left \lfloor\log_2{N_1} \right \rfloor=\left \lfloor\log_2{N_2} \right \rfloor=\cdots=\left \lfloor\log_2{N_n} \right \rfloor,假設NN爲所有N1,,NnN_1,\cdots, N_n中的最小值。The hash function HH maps into the set {1,,N1}\{1,\cdots, N-1\},對於無法map進去的,可iterating the hash(參見Bellare and Rogaway 1993論文《A paradigm for designing efficient protocols》第4章方法)。)

  • 第一種方法:約束N1<N2<<NnN_1<N_2<\cdots<N_n
    在這裏插入圖片描述
  • 第二種方法:對moduli無約束。
    在這裏插入圖片描述

第一種方法對signing keys的選擇限制更多。而第二種方法生成的aggregate signatures grow by one bit per signature。兩種方法都不再是full-domain hash signature schemes,但是由於所有的moduli具有幾乎相同的size, Coron的partial-domain hash anayasis [9]可適用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章