导语:本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,全民课堂等你来学。这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。
【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】
9.5采用群组公钥的机制
根据2020年4月28日国家市场监督管理总局、国家标准化管理委员会发布的中华人民共和国国家标准公告(2020年第8号),全国信息安全标准化技术委员会归口的GB/T 20281-2020《信息安全技术防火墙安全技术要求和测试评价方法》等26项国家标准正式发布(其中7项密码标准),其中便有GB/T 38647,为采用群组公钥的机制。
-名词解释-
辅助签名方 assistant signer:可以帮助主要签名方去创建匿名签名,但不可以独立地产生匿名签名的实体
成员列表 member-list:包含群组成员身份及其对应的群组成员证书的列表。
主要签名方 principal signer:拥有群组成员签名密钥的实体,主签名方可以使用该密钥来创建匿名签名。
密钥种子值 secret seed value:群组成员所知的并且用来导出群组成员私钥的保密数据。
安全参数 security parameter:决定一个机制安全强度的变量。
-采用群组公钥机制的过程-
- 密钥生成过程
- 签名过程
- 验证过程
- 打开过程(如果机制支持打开能力)
- 连接过程(如果机制支持连接能力)
- 撤销过程
下面从中选取几个流程进行详细介绍:
| 密钥产生过程
密钥产生过程由两部分组成:建立过程和群组成员发布过程。
建立过程输入安全参数并产生群组公钥gpk和它对应的群组成员发布密钥gmik,群组成员打开密钥gmok和群组签名连接密钥gslk。
管理密钥gmik,gmok,和gslk分别由群组成员发布方、群组成员打开方和群组签名连接方安全存储。
群组成员发布过程如下:群组成员发布方管理一个成员列表LIST=(LIST[1],…,LIST[n]) ,其中n是目前已注册群组成员的数量。列表的每一条记录包含每一个注册用户的个人信息。两个子过程,用户加入 (由加入用户使用其身份ID进行) 和发布 (由群组成员发布方运行) 交互产生一个群组成员签名密钥如下图:
| 签名过程
群组成员签名密钥包括一个指数κ,κ表示该密钥已经进行了κ次撤销列表指数RI(群组签名撤销过程相关)注册更新。设λ是RI中最新的撤销密钥数量。为了产生一个签名,群组成员签名密钥需要λ次RI的注册更新。
已产生的签名包括一个λ,λ表示签名是使用已进行λ次RI的注册更新的密钥生成的。该签名可以使用已进行λ次RI的注册更新的群组公钥验证。
| 验证过程
验证签名的指数为ρ,使用的群组公钥已经过ρ次RI的注册更新,应注意ρ可能不是RI中的最新的撤销密钥数量,因为一些密钥可能在之前的验证中被撤销。
| 撤销过程
RI是撤销指数列表,它包含目前已撤销群组成员的所有指数。无论何时密钥被撤销,RI都能马上将它更新进去。RL是一个包含目前已撤销群组成员隐私信息的列表。假设RL总是更新到最新的撤销指数RI。任何人都可以公开的使用RL和RI。列表RI和RL的初始设置为空。
该撤销过程是一个全局撤销。它执行三个子过程,产生RL (由发布方执行),更新gpk(由任意一方执行)和更新usk(由合法签名方或群组成员执行)。
今天的课程就到这里啦,下节课我们将继续学习基于身份的群签名算法,敬请期待!
同学们可以关注PlatON公众号,持续学习哦。我们下节课见啦。
本文转载自https://mp.weixin.qq.com/s/R6FvSNWOsfuee6qn58a7tg