区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

导语:本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,全民课堂等你来学。这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

9.6 CZK03算法

基于ID的数字签名方案中,双线性的引入为验证签名和打开签名都提供方便,CZK03群签名方案的安全性在随机预言机模型下是可证明安全的,但是即使是获得群成员证书的群成员在产生每一个签名时都需要从群管理员处获得新的授权,效率非常低,也使得群管理员的速度成为限制整个系统的瓶颈。

Gap Diffie-Hellman群

区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I是由生成元P产生的循环加法群,它的阶为素数q,假设区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I中求逆和乘法是有效的,我们将以下问题引入区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

  • DLP:已知两个元素PQ,找到一个整数区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,使得等式Q=nP成立
  • CDHP :已知P,aP,bP,其中a,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,计算abP
  • DDHP :已知P,aP,bP,cP,其中a,b,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,判断等式c≡ab mod q是否成立

如果DDHP可以在多项式时间内解出,但没有多项式时间算法可以在不可忽略的概率下解出CDHPDLP,则我们称为Gap Diffie-Hellman群。

下面介绍CZK03的算法流程:

1. Setup()

群管理员区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I令为Gap Diffie-Hellman群,生成元为P且它的阶为素数q区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I为一个阶为素数q的乘法循环群,一个双线性对映射为e:区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I×区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I。相关hash函数为区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I×区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I×区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

群管理员随机选择一个数区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,设置群管理员公钥区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I=sP群公钥为γ={区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I}。

用户随机选择一个数区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I,并将区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 IP发送给群管理员。群管理员计算用户的部分私钥区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I=s区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I(ID||T,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I)并将它通过安全信道发送给用户。

2. Enroll()

群成员区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

  • 随机选择区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I
  • 计算区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I
  • 计算区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

群管理员

  • 验证等式是否成立:
区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I
  • 计算区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

3. Sign()

群成员区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

  • 随机选择区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I
  • 计算
区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I
  • {U,V,W,T,区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I}为群成员对消息m的签名

4. Verify()

接收者

如果时间戳T是有效的,验证者计算:

区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

若以下等式成立,则验证者接受这个签名:

区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

5. Open()

对于一个有效的群签名,群管理者能通过区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I轻松确定签名用户的身份。而且用户无法抵赖,这是因为群管理者能提供等式:

区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

证明这个签名确实是用户签署的。

今天的课程就到这里啦,下节课我们将继续学习基于身份的群签名算法,敬请期待!

区块链与密码学全民课堂第9-6讲:基于身份的群签名算法 I

同学们可以关注PlatON公众号,持续学习哦。我们下节课见啦。

本文转载自https://mp.weixin.qq.com/s/qH2kDmprsFjuYfv1_FZpcw

(0)
PlatONWorldPlatONWorld编辑
上一篇 2021-05-31 13:06
下一篇 2021-05-31 16:36

相关推荐

发表回复

登录后才能评论
测试111