将群分割为m个子群
共有三层签名验证方案,第一层是对子群内单个节点签名验证(离散对数);第二层是每个子群计算验证成功的节点数,如果大于子群阈值则进行下一步计算;第三层是利用shamir秘密分割进行验证。
群密钥生成
生成元\(\alpha\) (用于离散对数)
大质数 \(u, v\) 满足 $ v|(u-1)$
多项式函数\(f(x), g_A(x), g_B(x), g_C(x)\) (有多少个子群就选取多少个g(x)函数,下面都是以两个子群A,B为例) 最高次幂分别为\(t-1, t_A-1, t_B-1\)
群私钥为\(SK_C=(12)\)
群公钥为\(PK_C=(13)\)
将\(f(x_i), g_A(y_{A_j} ), g_B(y_{B_k})\)秘密分发给每一个节点,同时计算\(\lambda_i , \mu_i\),一并作为节点的私钥
shamir秘密分割的拉格朗日插值法:
\(\lambda_i , \mu_i\)分别对应\(f(x), g(x)\)的拉格朗日系数系数, 满足下式:
节点\(i\)的公钥\(PK_{C_i}=(14)\)
单个节点的签名验证(离散对数)
\(t_X\) 是X子群的门限
子群X的公钥\(r_{X_i}=(15) ,r_X=(16)\)
子群X下的节点\(i\)的签名\(S_{X_i}=(17)\)
签名验证(18)
(18)式中\(r_i\) 与(15)的$r_{X_i} $相同
正确性证明:
可靠性基于离散对数
子群门限验证
对于每一个子群X,如果步骤二中验证成功的节点数\(t'_X \ge t_X\), 进行下一步。
群门限签名
聚合后的签名 \(S_C\)为所有参与验证的节点签名相加
(20)中\(S_C\)定义与后面证明有出入,应该是默认在\(t_A'\)个参与验证的节点中,只选取\(t_A\)(门限值)个节点计算。
论文这个地方可能存在错误:
验证:
证明如下:
标签:联盟,验证,门限,签名,子群,对数,节点 From: https://www.cnblogs.com/avengekiller/p/17155063.html