区块链技术中的群签名算法
May 2nd, 2022

采用群组公钥的机制

根据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:决定一个机制安全强度的变量。

采用群组公钥机制的过程

1密钥生成过程

2签名过程

3验证过程

4打开过程(如果机制支持打开能力)

5连接过程(如果机制支持连接能力)

6撤销过程

下面从中选取几个流程进行详细介绍:

1密钥产生过程

密钥产生过程由两部分组成: 建立过程和群组成员发布过程。

建立过程输入安全参数并产生群组公钥gpk和它对应的群组成员发布密钥gmik,群组成员打开密钥gmok和群组签名连接密钥gslk。

管理密钥gmik,gmok,和gslk分别由群组成员发布方、群组成员打开方和群组签名连接方安全存储。

群组成员发布过程如下:群组成员发布方管理一个成员列表LIST=(LIST[1],…,LIST[n]) ,其中n是目前已注册群组成员的数量。列表的每一条记录包含每一个注册用户的个人信息。两个子过程,用户加入 (由加入用户使用其身份ID进行) 和发布 (由群组成员发布方运行) 交互产生一个群组成员签名密钥。

2签名过程

群组成员签名密钥包括一个指数κ,κ表示该密钥已经进行了κ次撤销列表指数RI(群组签名撤销过程相关)注册更新。设λ是RI中最新的撤销密钥数量。为了产生一个签名,群组成员签名密钥需要λ次RI的注册更新。

已产生的签名包括一个λ,λ表示签名是使用已进行λ次RI的注册更新的密钥生成的。该签名可以使用已进行λ次RI的注册更新的群组公钥验证。

该签名过程输入群组公共参数 ( , , , ), , , , ),群组公钥 ,群组成员签名密钥 =(κ, x, y, z, A), 消息M∈{0,1}*,其中κ(≤ λ) 是签名方i最后更新的撤销列表指数i,而λ在所有群组成员中最新的撤销列表指数。

3验证过程

验证签名的指数为ρ,使用的群组公钥已经过ρ次RI的注册更新,应注意ρ可能不是RI中的最新的撤销密钥数量,因为一些密钥可能在之前的验证中被撤销。

4撤销过程

RI是撤销指数列表,它包含目前已撤销群组成员的所有指数。无论何时密钥被撤销,RI都能马上将它更新进去。RL是一个包含目前已撤销群组成员隐私信息的列表。假设RL总是更新到最新的撤销指数RI。任何人都可以公开地使用RL和RI。列表RI和RL的初始设置为空。

该撤销过程是一个全局撤销。它执行三个子过程,产生RL (由发布方执行),更新gpk(由任意一方执行)和更新usk(由合法签名方或群组成员执行)。

Subscribe to luobo
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from luobo

Skeleton

Skeleton

Skeleton