群签名定义
群签名是一种特殊的签名算法,最初是为了实现隐匿支付而应用在区块链领域。其能很好地隐藏签名者身份,既能让节点验证交易签名的正确性,又不会暴露交易发起者的公钥信息。这一特性在联盟链中有着广阔的应用前景。
从密码学的角度,匿名性有两种含义:
1.给定一个密文,无法还原其公钥,主要用于密码算法的安全性分析;
2.用户使用密码方案过程中不会发生身份信息的泄露,更符合现实世界的语义。
群签名的性质
1.群中任意成员都可以使用自己的私钥代表群对消息进行签名,接受签名者不知道具体是哪一个群成员签名
2.群管理员可以根据证书查找群成员的身份
群签名算法的实现
1.创建群,由群主执行,生成群主私钥和群公钥;
2.新增群成员,由群主执行,生成群成员私钥和证书,证书用于证明群成员身份;
3.生成群签名,群成员通过私钥对信息签名;
4.验证群签名,验证者可通过群公钥验证签名的合法性,验证者可以判定这个签名确实来自这个群,但无法确定是哪一个群成员的签名;
5.打开群签名,群主可通过签名信息获取签名者证书,从而追踪到签名者身份。
BBS04方案(Short Group Signatures)
满足两大条件:
1.为了方便成员管理,需要支持群成员的撤销;
2.考虑到区块链存储资源有限,因此签名数据不能太大,可对齐标准的RSA签名。
BBS04方案基于双线性对构造,群管理员可根据不同的线性对初始化群。不同线性对类型下的群签名存储和计算开销如下: