群签名技术的理解和总结

 

定义一个群G,G = {U1, U2,...,Ut}。其中群成员可以代表群进行签名。C 表示密钥生成中心KGC。

准备阶段

这个阶段,C会生成各个群成员的私钥和共同拥有的公钥。(缺少的一会在补充)

主要步骤如下:分为9步

1.选择两个大素数p和q。令p = u1rp1+1且q = u2rq1+1。其中r、p1、q1都是素数。u1, u2 Z with gcd(u1, u2) = 2(gcd表示最大公约数)。令u1=2v1,u2=2v2。且v1,v2为质数。r为设定的比特长度

2.计算n = pq, φ(n)=(p 1)(q 1) = u1u2r2p1q1,这里r2是r的平方。λ(n) = lcm(p 1, q 1) = 2v1v2rp1q1,lcm是表示求两个或者多个数的最小公倍数。这个函数又叫做卡迈尔函数。

为什么要选择(p-1)*(q-1)作为计算的基础?
直观地说,是为了使用费马小定理,从ap-1 ≡ 1(mod p)可以看出,费马小定理可以把一个基于指数的大数的模转换为一个小数,这也是要求p、q必须为素数的原因。其实,费马小定理是欧拉定理的特例,欧拉定理:
对任意的整数(a,m)=1,存在公式:
aφ(m)≡1(mod m)
其中φ(m)称为m的既约剩余系的大小,即那些与m互质的余数的个数,当m为素数p时,φ(p)=p-1(除0外其他余数都与p互质),则得到费马小定理。
同样,应用欧拉素数公式可以得到:φ(N)=φ(p*q)=(p-1)*(q-1),这就是选择(p-1)*(q-1)作为计算基础的根本原因。 

3.C 选择一个α Zn 且阶数为r (mod n), gcd(α, φ(n)) = 1. g Zn such that gλ(n) 1 (mod n)  这个g认为是生成元。

α = g λ ( n ) /r  (mod n ).(λ ( n)是次幂)  通过这个式子能求出α

4.C生成一个私钥随机数s∈Z∗r并确定β = αs(s是次幂) (mod n).(这里是群管理员私钥,我这么理解的)

5.C发布的n、r、αβ是公开的,而元素p、q和s是保密的。

6.C通过生成四个随机数a0, b0, c0, d0来设置其群成员里的私钥。

7.C通过计算确定G的共享公钥

8.C计算整数h, k∈Zr,使h = a0 + sb0 (mod r)和k = c0 + sd0 (mod r)

9.私钥的构成(ai, bi, ci, di) and ai, bi, ci, di Zr  。四个元素构成的。首先会随机数bi和di。然后通过公式

计算出ai 和 ci。C计算生成了所有群成员的私钥,通过安全通道传递给群成员。

二、参数和密钥的验证

验证群中的每个成员的私钥和共享的公钥有关。

三、群签名

一个消息M,经过哈希函数SHA-2 h(M) = m.群成员对m进行签名。fi = ai + cim (mod r), gi = bi + dim (mod r)。可以发布消息M的群签名,即(f,g)=(fi, gi)。签名使用自己的私钥。

四、验证

任何验证者知道消息M、哈希函数h、群G的公钥(P, Q)和组签名(f, g),可以通过以下计算来检查签名是否有效:

验证过程如下:

如果相等证明这个签名属于群G,否则不属于群G

五、签名用户的查找

针对于要查找群G中的某个成员,需要循环的遍历每个成员。

具体操作如下:

当这个式子成立的时候停止。就找到了签名的成员Uj
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值