信息安全与密码学博士:应该掌握的52个知识--(3)T50-- BLS配对签名方案

孤者浪人 提交于 2020-01-28 19:15:47

BLS配对签名方案

目录

方案概述

背景知识

数学公式

签名属性[2]


 

方案概述

BLS是Boneh–Lynn–Shacham的简称,他们3个人在2003年提出了一个签名方法,因此以他们的名字命名。该签名基于双线性对,是为了解决多次签名多次验签的低效而提出的多次签名方案。

1. 方案可以将多次签名聚合(Aggregation),只用一次签名验证即可![1]

2. 该签名方案是常用的短签名方案。[2]

方案用于多个成员的组的签名中。

背景知识

这个方案的签名生成用到了椭圆曲线群(Elliptic Curve Group)的概念,验签用到了双线性对(Bilingual Pairing)的内容。

双线性对 e: G X G -> G_T

e表示一个非退化的可计算的双线性对。其中G, G_T是以素数r 为阶的群。g是群的生成元。BLS的签名是椭圆曲线群中的元素。

CDH难题,间隙群(gap group)

CDH难题,指 Computational Diffie-Hellman难题。对离散(离散很重要,通过mod实现)对数难题来说,等效于已知g,g^x和g^y计算g^(xy)。对椭圆曲线上的点乘运算,等效于已知aG,bG,G,求abG,其中G为基点.

间隙群,是指一个群,在这个群中,CDH问题是难解的,而DDH难题可以有效解决。(这一群的存在也说明,DDH的难度不超过CDH问题的难度)。

DDH难题的解法 [2]

首先,解决DDH难题等价于:(以离散对数为例)已知g^x,g^y,g^z,g,可以通过某种方式验证 z=xy。

后来发展,可以通过在双线性对上验证: e(g^x, g^y)=e(g, g^z)  来间接验证 z=xy.   [2]【以下理解存疑】

具体地:通过使用双线性对的双线性性这一属性,使用(x+y+z)次。查看

e(g^x, g^y)= e(g, g)^[xy]  ?= e(g.g^z)= e(g.g)^z

数学公式

S1: 密钥生成

选择私钥x 属于[0 ,r-1] 。r是群的阶数,一个大素数。 签名者保存私钥,发布公钥 g^x。

S2: 签名

m是要签名的消息,计算h=H(m),签名为 s=h^x。其中H为哈希算法。

S3: 验签

验证者已知 签名s, 公钥g^x,公共信息g ,e, 消息m

验证:e(s,g)= e(H(m) , g^x).

签名属性[2]

1. 简单的阈值签名

2. 签名聚合

3. 唯一性和确定性

 

 

参考文献:

[1]. https://github.com/okblockchainlab/okchain/wiki/BLS%E5%A4%9A%E9%87%8D%E7%AD%BE%E5%90%8D

[2]. https://en.wikipedia.org/wiki/Boneh%E2%80%93Lynn%E2%80%93Shacham

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!