一种异构环签名方法与流程

文档序号:23983039发布日期:2021-02-20 11:02阅读:94来源:国知局
一种异构环签名方法与流程

[0001]
本发明属于信息安全技术领域,具体涉及一种异构环签名方法。


背景技术:

[0002]
基于公钥基础设施(public key infrastructure,以下简称pki)的公钥密码体制被称为是传统公钥密码体制,该体制是先产生用户的私钥再产生用户的公钥,因而公钥是一串无意义的二进制串,与用户的身份没有必然联系,所以需要一个可信第三方
--
认证中心(certificate authority,以下简称ca)颁发一个证书来把用户的公钥与其身份信息进行绑定。证书在从产生到销毁的整个生命周期内,其管理费用非常昂贵,这阻碍了传统公钥密码体制的广泛使用。
[0003]
基于身份的密码体制可以降低高昂的证书管理费用,它是shamir于1984年在crypto’84中提出的概念。基于身份的密码体制是先确定用户的公钥,再由一个可信第三方—私钥生成中心(private key generator,以下简称pkg)计算相应的私钥。因而公钥可以取为用户的身份信息,从而省去了公钥证书,降低了公钥管理的费用。
[0004]
环签名是一种面向群体的签名,它是rivest等人于2001年在asiacrypt’2001中提出的概念。签名时,环签名者首先自发地选取其他n-1个人连同自己构成一个具有n个用户的环,然后他使用自己的私钥和其他n-1个人的公钥产生一个环签名。验证者可以确信该环签名来自这个环,但是无法确定是环中的哪个成员所为。环签名能实现签名者的无条件匿名性,因而它在匿名电子选举、匿名举报、电子货币、密钥分配和安全多方计算中发挥重要作用。
[0005]
紧随rivest等人的工作,bresson等人提出门限环签名方案,即t个签名者自发地选取其他n-t个人构成一个环。签名时,这t个签名者使用自己的私钥和其他n-t个人的公钥产生一个门限环签名。验证者可以确信该门限环签名来自这个环,但是无法确定是环中的哪t个成员所为。zhang等人提出首个基于身份的环签名方案。实际应用中,用户的密钥可能来自于不同的签名方案,如rsa签名方案或schnorr签名方案。针对这种情况,abe等人提出一个允许混合使用不同签名方案的密钥的环签名方案,liu等人提出相应的门限环签名方案,但是他们仍然没有考虑用户的密钥可能来自于不同的密码体制的问题。


技术实现要素:

[0006]
本发明的目的在于克服上述现有技术的缺陷,考虑环中n个用户可能属于不同的公钥密码体制,提出一种基于公钥基础设施环境的用户与基于身份环境的用户构成一个环来进行环签名的方法,使得环签名在实际应用中更容易实施。
[0007]
本发明通过以下技术方案来实现:
[0008]
一种异构环签名方法,基于公钥基础设施环境的用户与基于身份环境的用户构成一个环来进行环签名;包括以下具体步骤:
[0009]
步骤1、系统初始化:设定系统参数,用于公钥基础设施环境的用户密钥生成、基于
身份环境的用户密钥生成、环签名和验证环签名几个步骤。
[0010]
步骤2、公钥基础设施环境的用户密钥生成:公钥基础设施环境的用户基于系统参数随机选取一个秘密值x作为私钥,并计算公钥pk;
[0011]
步骤3、基于身份环境的用户密钥生成:基于身份环境的用户提交自己的身份信息id
u
给私钥生成中心pkg,pkg根据系统参数、用户身份信息id
u
生成用户的私钥d
u
并秘密地发送给基于身份环境的用户。
[0012]
步骤4、环签名:实际签名者首先选择n1个基于公钥基础设施环境的用户和n2个基于身份环境的用户构成一个具有n=(n1+n2)个用户的环r,然后根据系统参数、自己的私钥、消息m、其他n-1个用户的公钥生成一个环签名σ。
[0013]
步骤5、验证环签名:验证者根据系统参数、收到的环签名、消息m、环中n个用户的公钥验证环签名σ的正确性,如果不正确就拒绝;否则接受。
[0014]
作为本发明的优选,进一步地,所述步骤1的系统参数设置具体为:
[0015]
安全参数k为正整数;私钥生成中心选择一个循环加法群g1和一个循环乘法群g2,两个群的阶都为素数q,选择g1的一个生成元p,一个双线性映射e:g1×
g1→
g2和两个散列函数:h1:{0,1}
*

g1,其中{0,1}
*
表示任意比特长的二进制序列组成的集合,是由所有大于等于1且小于q的正整数组成的有限域;然后私钥生成中心随机选择作为主私钥,计算p
pub
=sp作为主公钥;系统公开参数为{e,g1,g2,q,p,p
pub
,h1,h2},私钥生成中心保密主私钥s。
[0016]
所述步骤2公钥基础设施环境的用户密钥生成具体包括:
[0017]
用户随机选取作为他的私钥,并计算他的公钥为pk=xp。
[0018]
所述步骤3基于身份环境的用户密钥生成:
[0019]
给定用户身份id
u
,私钥生成中心计算用户的私钥为d
u
=sq
u
,q
u
=h1(id
u
)。
[0020]
所述步骤4环签名具体包括:
[0021]
实际签名者a首先选择n1个基于公钥基础设施环境的用户和n2个基于身份环境的用户构成一个具有n=(n1+n2)个用户的环r,设这n1个用户的公钥分别为pk1、pk2、

、pk
n1
,这n2个用户的身份分别为id1、id2、

、id
n2
,实际签名者a计算q1=h1(id1)、q2=h1(id2)、

、q
n2
=h1(id
n2
),设环r={pk1,pk2,

,pk
n1
,q1,q2,

,q
n2
},n1+n2=n;
[0022]
(1)实际签名者a属于公钥基础设施环境:设实际签名者a的私钥为x
s
,1≤s≤n1,消息m∈{0,1}
*
,实际签名者a按如下方式产生一个环签名σ=(u
11
,u
12
,

,u
1n1
,u
21
,u
22
,

,u
2n2
,v):
[0023]
(1.1)对每一个i∈{1,2,

,n1},且i≠{s},随机选择u
1i
∈g1;对每一个j∈{1,2,

,n2},随机选择u
2j
∈g1,随机选择
[0024]
(1.2)对每一个i∈{1,2,

,n1},且i≠{s},计算h
1i
=h2(u
1i
,m,r,p
pub
);对每一个j∈{1,2,

,n2},计算h
2j
=h2(u
2j
,m,r,p
pub
);
[0025]
(1.3)计算h
1s
=h2(u
1s
,m,r,p
pub
),v=(r+h
1s
x
s
)p
pub

[0026]
(2)实际签名者a属于基于身份环境:设实际签名者a的私钥为d
s
,1≤s≤n2,消息m
∈{0,1}
*
,实际签名者a按如下方式产生一个环签名σ=(u
11
,u
12
,

,u
1n1
,u
21
,u
22
,

,u
2n2
,v):
[0027]
(2.1)对每一个i∈{1,2,

,n1},随机选择u
1i
∈g1;对每一个j∈{1,2,

,n2},且j≠{s},随机选择u
2j
∈g1,随机选择
[0028]
(2.2)对每一个i∈{1,2,

,n1},计算h
1i
=h2(u
1i
,m,r,p
pub
);对每一个j∈{1,2,

,n2},且j≠{s},计算h
2j
=h2(u
2j
,m,r,p
pub
);
[0029]
(2.3)计算h
2s
=h2(u
2s
,m,r,p
pub
),v=(r+h
2s
)d
s

[0030]
所述步骤5验证环签名具体包括:
[0031]
给定一个环签名σ=(u
11
,u
12
,

,u
1n1
,u
21
,u
22
,

,u
2n2
,v),验证者b如下进行:
[0032]
(1)对每一个i∈{1,2,

,n1},计算h
1i
=h2(u
1i
,m,r,p
pub
);对每一个j∈{1,2,

,n2},计算h
2j
=h2(u
2j
,m,r,p
pub
);
[0033]
(2)验证等式是否成立;成立就接受,否则拒绝。
[0034]
由于采用了上述技术方案,本发明的有益效果是:
[0035]
基于公钥基础设施环境的用户和基于身份环境的用户可构成一个环来进行环签名;
附图说明
[0036]
图1是本发明异构环签名方法的流程图;
[0037]
图2是本发明异构环签名方法的算法说明图。
具体实施方式
[0038]
下面结合附图对本发明做详细描述。
[0039]
如图1、2所示,本发明提供了一种异构环签名方法,在所述异构环签名方法的应用场景中,实际签名者选取基于公钥基础设施环境的用户和基于身份环境的用户构成一个环来进行环签名,实现了环的异构性,使得环签名在实际应用中更容易实施。本发明的具体过程如下:
[0040]
步骤1、系统初始化。
[0041]
安全参数k为正整数;私钥生成中心选择一个循环加法群g1和一个循环乘法群g2,两个群的阶都为素数q,选择g1的一个生成元p,一个双线性映射e:g1×
g1→
g2和两个散列函数:h1:{0,1}
*

g1,其中{0,1}
*
表示任意比特长的二进制序列组成的集合,是由所有大于等于1且小于q的正整数组成的有限域;然后私钥生成中心随机选择作为主私钥,计算p
pub
=sp作为主公钥;系统公开参数为{e,g1,g2,q,p,p
pub
,h1,h2},私钥生成中心保密主私钥s。
[0042]
步骤2、公钥基础设施环境的用户密钥生成。
[0043]
用户随机选取作为他的私钥,并计算他的公钥为pk=xp。
[0044]
步骤3、基于身份环境的用户密钥生成。
[0045]
给定用户身份id
u
,私钥生成中心计算用户的私钥为d
u
=sq
u
,q
u
=h1(id
u
)。
[0046]
步骤4、环签名。
[0047]
实际签名者a首先选择n1个基于公钥基础设施环境的用户和n2个基于身份环境的用户构成一个具有n=(n1+n2)个用户的环r,设这n1个用户的公钥分别为pk1、pk2、

、pk
n1
,这n2个用户的身份分别为id1、id2、

、id
n2
,实际签名者a计算q1=h1(id1)、q2=h1(id2)、

、q
n2
=h1(id
n2
),设环r={pk1,pk2,

,pk
n1
,q1,q2,

,q
n2
},n1+n2=n;
[0048]
(1)实际签名者a属于公钥基础设施环境:设实际签名者a的私钥为x
s
,1≤s≤n1,消息m∈{0,1}
*
,实际签名者a按如下方式产生一个环签名σ=(u
11
,u
12
,

,u
1n1
,u
21
,u
22
,

,u
2n2
,v):
[0049]
(1.1)对每一个i∈{1,2,

,n1},且i≠{s},随机选择u
1i
∈g1;对每一个j∈{1,2,

,n2},随机选择u
2j
∈g1,随机选择
[0050]
(1.2)对每一个i∈{1,2,

,n1},且i≠{s},计算h
1i
=h2(u
1i
,m,r,p
pub
);对每一个j∈{1,2,

,n2},计算h
2j
=h2(u
2j
,m,r,p
pub
);
[0051]
(1.3)计算h
1s
=h2(u
1s
,m,r,p
pub
),v=(r+h
1s
x
s
)p
pub

[0052]
(2)实际签名者a属于基于身份环境:设实际签名者a的私钥为d
s
,1≤s≤n2,消息m∈{0,1}
*
,实际签名者a按如下方式产生一个环签名σ=(u
11
,u
12
,

,u
1n1
,u
21
,u
22
,

,u
2n2
,v):
[0053]
(2.1)对每一个i∈{1,2,

,n1},随机选择u
1i
∈g1;对每一个j∈{1,2,

,n2},且j≠{s},随机选择u
2j
∈g1,随机选择
[0054]
(2.2)对每一个i∈{1,2,

,n1},计算h
1i
=h2(u
1i
,m,r,p
pub
);对每一个j∈{1,2,

,n2},且j≠{s},计算h
2j
=h2(u
2j
,m,r,p
pub
);
[0055]
(2.3)计算h
2s
=h2(u
2s
,m,r,p
pub
),v=(r+h
2s
)d
s

[0056]
步骤5、验证环签名。
[0057]
给定一个环签名σ=(u
11
,u
12
,

,u
1n1
,u
21
,u
22
,

,u
2n2
,v),验证者b如下进行:
[0058]
(1)对每一个i∈{1,2,

,n1},计算h
1i
=h2(u
1i
,m,r,p
pub
);对每一个j∈{1,2,

,n2},计算h
2j
=h2(u
2j
,m,r,p
pub
);
[0059]
(2)验证等式是否成立;成立就接受,否则拒绝。
[0060]
本发明使得实际签名者可以选取基于公钥基础设施环境的用户和基于身份环境的用户构成一个环来进行环签名,从而使得环签名在实际应用中更容易实施。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1