举例说明区块链的加密算法 简析区块链中密码算法的应用
根据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的注册更新的群组公钥验证。
该签名过程输入群组公共参数 (,,,),,,,),群组公钥,群组成员签名密钥=(κ, x, y, z, A), 消息M∈{0,1}*,其中κ(≤ λ) 是签名方i最后更新的撤销列表指数i,而λ在所有群组成员中最新的撤销列表指数。
验证过程
验证签名的指数为ρ,使用的群组公钥已经过ρ次RI的注册更新,应注意ρ可能不是RI中的最新的撤销密钥数量,因为一些密钥可能在之前的验证中被撤销。
撤销过程
RI是撤销指数列表,它包含目前已撤销群组成员的所有指数。无论何时密钥被撤销,RI都能马上将它更新进去。RL是一个包含目前已撤销群组成员隐私信息的列表。假设RL总是更新到最新的撤销指数RI。任何人都可以公开的使用RL和RI。列表RI和RL的初始设置为空。
该撤销过程是一个全局撤销。它执行三个子过程,产生RL (由发布方执行),更新gpk(由任意一方执行)和更新usk(由合法签名方或群组成员执行)。
今天的课程就到这里啦,下节课我们将继续学习基于身份的群签名算法,敬请期待!
【区块链与密码学】课堂回顾:
区块链与密码学系列文章合集