A Survey of Two Signature Aggregation Techniques学习笔记

1. 引言

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

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

实际应用有:

  • in a Public Key Infrastructure (PKI) of depth n n , user signatures are accompanied by a chain of n n certificates. The chain contains n n signatures by n n Certificate Authorities (CAs) on n n distinct certificates.
  • in the Secure BGP protocol (SBGP) each router receves a list of n n signatures attesting to a certain path of length n n in the network. A router signs its own segment in the path and forwards the resulting list of n + 1 n+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是多个用户对 同一消息 m m 进行签名,最终结果为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.

假设 n n 个users的公私钥对分别为 ( P K i , S K i ) (PK_i,SK_i) ,User i i 希望签名的消息为 M i M_i

2. General aggregate signatures

在general aggregate signature机制中,user i i 对它的消息 M i M_i 生成签名 σ i \sigma_i
n n 个不同的签名 σ 1 , , σ n \sigma_1,\cdots,\sigma_n 通过a public aggregation algorithm来压缩为a single signature σ \sigma 。同时存在aggregate verification algorithm,根据 P K 1 , , P K n , M 1 , , M n σ 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 M 1 , , M n M_1,\cdots, M_n under respective public keys P K 1 , , P K n PK_1,\cdots,PK_n 。输出为a single aggregate signature σ \sigma
  • aggregate verification algorithm:输入为an aggregate signature σ \sigma ,messages M 1 , , M n M_1,\cdots,M_n 以及public keys P K 1 , , P K n PK_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 G G of prime order p p , with generator g g

  • Computational Diffie-Hellman(CDH):Given g , g a , h G g,g^a,h\in G ,计算 h a G h^a\in G 。CDH assumption是指计算 h a h^a 为computationally infeasible。
  • Decision Diffie-Hellman(DDH):Given g , g a , h , h b G g,g^a,h,h^b\in G , decide whether a a equals b b . Tuples of this form—— ( g , g a , h , h b ) (g,g^a,h,h^b) ——are termed Diffie-Hellman tuple。DDH assumption是指在不知道的 a a 或者 b b 的情况下,很难判断 a a 是否等于 b b 。【但是,参见2.2.2节,借助bilinear group 可使DDH assumption不成立。】(参见博客 基于Sigma protocol实现的零知识证明protocol集锦 2.7节 Inequality of discrete logs中,若知道witness a a b b ,则可判断 a b a\neq b 是否成立。)

2.1.1 GDH Groups (Gap Diffie-Hellman groups)

对于大多数的cyclic group G G 来说,如subgroups of Z q \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 × G G T e:G\times G\rightarrow G_T ,其中 G T G_T 为another multiplicative cyclic group of prime order p p 。具有如下属性:

  • Computable可计算性:即存在有效的算法用于计算 e ( u , v ) e(u,v) ,for all u , v G u,v\in G
  • Bilinear:对于所有的 u , v G a , b Z q u,v\in G和a,b\in \mathbb{Z}_q e ( u a , v b ) = e ( u , v ) a b e(u^a,v^b)=e(u,v)^{ab} 成立。
  • Non-degenerate:即 e ( g , g ) 1 e(g,g)\neq 1

以上属性还可衍生为:【参见Boneh, Lynn, and Shacham等人2003年论文《Aggregate and verifiably encrypted signatures from bilinear maps》】

  • for any u 1 , u 2 , v G u_1,u_2,v\in G e ( u 1 u 2 , v ) = e ( u 1 , v ) e ( u 2 , v ) e(u_1u_2,v)=e(u_1,v)\cdot e(u_2,v) 成立。
  • for any u , v G u,v\in G e ( ψ ( u ) , v ) = e ( ψ ( v ) , u ) e(\psi(u),v)=e(\psi(v),u) 成立。

任何拥有map e e (满足如上属性)且CDH assumption成立的group,都可称为bilinear group。

bilinear map e e 可用于解决DDH问题,如已知 ( g , g a , h , h b ) (g,g^a,h,h^b) 有:
a = b m o d    p e ( h , g a ) = e ( h b , g ) a=b\mod p \Leftrightarrow e(h,g^a)=e(h^b,g)
从而使得DDH assumption不成立。

结论为:
若group G G 为bilinear group,则 G G 也为GDH group。

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

multiplier α \alpha 的取值需要权衡efficiency和security。 α \alpha 值越小,bilinear map的运算越快;而 α \alpha 值越大,则安全系数更高,the more difficult is the CDH problem on G G
目前的CDH algorithms on G G require solving the discrete logarithm problem either in the generic group G G (of order p p ) or in the finite field F q α \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 G G ,同时额外需要a hash function from the message space onto the group G G

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

  • Key Generation:选择随机数 x R Z p x\overset{R}{\leftarrow}\mathbb{Z}_p ,计算 v = g x v=g^x 。公钥为 v G v\in G ,私钥为 x Z p x\in \mathbb{Z}_p
  • Signing:输入为私钥 x x 和消息 M { 0 , 1 } M\in\{0,1\}^* ,计算 h H ( M ) h G , σ h x h\leftarrow H(M)其中h\in G, \sigma\leftarrow h^x 。BLS签名为 σ G \sigma\in G
  • Verification:输入为公钥 v v ,消息 M M 以及a signature σ \sigma ,计算 h H ( 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 G G [6].

BLS签名 σ = ( x , y ) G \sigma=(x,y)\in G ,可只取 x x 坐标表示(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 G G 为a bilinear group,而仅仅为general GDH group是不够的。

bilinear aggregate signature中引入了a random oracle hash function,输入为a string和an element of G G H : G × { 0 , 1 } G H: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:选择随机数 x R Z p x\overset{R}{\leftarrow}\mathbb{Z}_p ,计算 v = g x v=g^x 。公钥为 v G v\in G ,私钥为 x Z p x\in \mathbb{Z}_p
  • Signing:输入为私钥 x x 、消息 M { 0 , 1 } M\in\{0,1\}^* 和公钥 v v ,计算 h H ( v , M ) h G , σ h x h\leftarrow H(v,M)其中h\in G, \sigma\leftarrow h^x 。BLS签名为 σ G \sigma\in G
  • Verification:输入为公钥 v v ,消息 M M 以及a signature σ \sigma ,计算 h H ( 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 i i , ranging from 1 1 to n n . Each user i i provides a signature σ i G \sigma_i\in G on a message M i { 0 , 1 } M_i\in\{0,1\}^* of her choice. 计算 σ i = 1 n σ 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 M i { 0 , 1 } M_i\in\{0,1\}^* and public keys v i G v_i\in G 。计算 h i H ( v i , M i ) h_i\leftarrow H(v_i,M_i) for 1 i n 1\leq i\leq n ,验证 e ( σ , g ) = i = 1 n e ( h i , v i ) 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,即:
已知一个基于消息 M 1 , , M n M_1,\cdots,M_n under public keys v 1 , , v n v_1,\cdots,v_n 的aggregate signature σ \sigma

  • 增加一个签名 σ n + 1 \sigma_{n+1} (on a message M_{n+1} under public key v n + 1 v_{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 M 1 M_1 to obtain σ 1 \sigma_1 ;
  • User 2 then combines σ 1 \sigma_1 and M 2 M_2 to obtain σ 2 \sigma_2 ;(aggregate和签名操作是在一起进行的。)
  • \cdots
  • The final signature σ n \sigma_n binds user i i to M i M_i for all i = 1 , , n i=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 D D . 每个 Π \Pi 中的permutation均有a description s S s\in S 。Anyone given a description s s can evaluate the corresponding permutation。

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

permutation family Π \Pi 具有trapdoor属性,若每个description s s 都有相应的trapdoor t T t\in T 使得it’s easy to invert the permutation corresponding to s s with t t ,而infeasible without t t
trapdoor permutation family肯定是one-way的。

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

  • Generate:输出description s S s\in S of a permutation along with the corresponding trapdoor t T t\in T
  • Evaluate ( s , ) (s,\cdot) :输入为description s s 和a value x D x\in D ,输出为 a D a\in D a a 为the image of x x under the permutation。
  • Invert:输入为description s s ,trapdoor t t 和a value x D x\in D ,输出为the preimage of a a under the permutation。

以上算法需满足: E v a l u a t e ( s , ) Evaluate(s,\cdot) be a permutation of D D for all ( s , t ) R G e n e r a t e (s,t)\overset{R}{\leftarrow} Generate ,而 I n v e r t ( s , t , E v a l u a t e ( s , x ) ) = x Invert(s,t,Evaluate(s,x))=x hold for all ( s , t ) R G e n e r a t e (s,t)\overset{R}{\leftarrow} Generate and for all x D x\in D

trapdoor permutation具有homomorphic属性,若在group内满足:若 a = π ( x ) , b = π ( y ) a=\pi(x),b=\pi(y) ,则有 a b = π ( x y ) a*b=\pi(x*y)
可将Generate算法的输出理解为a probability distribution Π \Pi on permutations,表示为 ( π , π 1 ) R Π (\pi,\pi^{-1})\overset{R}{\leftarrow} \Pi 其中 π \pi 对应为the permutation E v a l u a t e ( s , ) Evaluate(s,\cdot) ,而 π 1 \pi^{-1} 为the inverse permutation I n v e r t ( s , t , ) Invert(s,t,\cdot)

permutation family 中的每个permutation可对应different domain D D

3.2 Full-domain signatures

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

Full-domain signatures算法流程为:

  • Key Generation:对于特定用户,选择随机 ( s , t ) R G e n e r a t e (s,t)\overset{R}{\leftarrow} Generate 。该用户的公钥为 s s ,私钥为 ( s , t ) (s,t)
  • Signing:对于特定用户,输入为私钥 ( s , t ) (s,t) ,message M { 0 , 1 } M\in\{0,1\}^* ,计算 h H ( M ) h\leftarrow H(M) ,其中 h D h\in D ,计算 σ I n v e r t ( s , t , h ) \sigma\leftarrow Invert(s,t,h) 。The signature is σ D \sigma\in D
  • Verification:输入为特定用户的公钥 s s ,message M M 和a signature σ \sigma ,计算 h H ( M ) h\leftarrow H(M) ,验证 h = E v a l u a t e ( 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 ) R G e n e r a t e (s,t)\overset{R}{\leftarrow} Generate 。该用户的公钥为 s s ,私钥为 ( 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 M M under a vector of public keys s s No key may appear twice in s \vec{s} ,同时要求vectors M M s s 的长度应该相同。当 M = 0 |M|=0 时, σ \sigma' 值必须为1(即the unit of D D )。
    计算 h H ( s s , M M ) h\leftarrow H(\vec{s}||s,\vec{M}||M) ,其中 h D h\in D ,计算 σ I n v e r t ( 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 s s ,其中 M = s = i |\vec{M}|=|\vec{s}|=i 。验证时,首先设置 σ i σ \sigma_i\leftarrow \sigma ,然后 for j = i , , 1 j=i,\cdots,1 ,依次计算 σ j 1 E v a l u a t e ( s j , σ j ) H ( s 1 j , M 1 j ) 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 是否等于 1 1

π \pi- 理念表示的话,sequential aggregate signature可表示为:
在这里插入图片描述
其中 h j = H ( s 1 j , M 1 j ) 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 = p q N=pq p , q p,q 为2个large primes。
  • e d = 1 m o d    ϕ ( N ) ed=1\mod \phi(N) ,其中 t = ( d ) t=(d) 为私钥, s = ( N , e ) s=(N,e) 为公钥。
  • π ( x ) = x e m o d    N \pi(x)=x^e\mod N 为a permutation on Z N \mathbb{Z}_N^* π 1 ( x ) = x d m o d    N \pi^{-1}(x)=x^d\mod N 为其inverse。

难点在于,两个用户无法共享相同的modulus N N ,有2种方法来解决:
(假设 n n 个用户的moduli分别为 N 1 , , N n N_1,\cdots, N_n ,要求这些moduli具有接近的size,即 log 2 N 1 = log 2 N 2 = = log 2 N n \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 ,假设 N N 为所有 N 1 , , N n N_1,\cdots, N_n 中的最小值。The hash function H H maps into the set { 1 , , N 1 } \{1,\cdots, N-1\} ,对于无法map进去的,可iterating the hash(参见Bellare and Rogaway 1993论文《A paradigm for designing efficient protocols》第4章方法)。)

  • 第一种方法:约束 N 1 < N 2 < < N n N_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]可适用。

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/106932774