一种无证书有序聚合签名方法、系统及相关装置制造方法及图纸

技术编号:36962289 阅读:19 留言:0更新日期:2023-03-22 19:22
本申请公开了一种无证书有序聚合签名方法、系统及相关装置,涉及信息安全技术领域。本公开的方法包括以下步骤:(1)密钥生成中心(KGC)生成系统公共参数params和系统主密钥msk;(2)KGC输入msk和用户身份标识ID,生成用户部分私钥D

【技术实现步骤摘要】
一种无证书有序聚合签名方法、系统及相关装置


[0001]本专利技术涉及信息安全
,尤其涉及一种无证书有序聚合签名方法、系统及相关装置。

技术介绍

[0002]在信息安全领域,经常遇到多个用户对不同消息进行签名。比如,为了提高基于边界网关协议(Border Gateway Protocol,BGP)的域间路由系统的安全性,可以要求每个自治系统(Autonomous System,AS)的BGP发言人对收到的网络前缀、自治域路径(Autonomous System Path,AS

PATH)和下一跳AS进行签名,实现对AS

PATH的完整性保护。随着AS和路由器数量的增长,这种签名的数量和验证的计算量会大大增加,给BGP发言人带来庞大的计算负担。此时,利用顺序聚合签名就可以将这些签名按顺序聚合形成一个签名,一方面减少了签名的数量,另一方面减少了验证的计算开销,并且可以通过签名验证实现对AS

PATH完整性的验证。而无证书公钥密码体制在不需要公钥证书的同时消除了基于身份公钥系统中的密钥托管问题,将无证书有序聚合签名应用于基于BGP的域间路由系统,不仅可以保护AS

PATH的完整性,还可以对每一跳签名者(即BGP发言人)的身份进行验证。
[0003]现有技术中,很多无证书有序聚合签名的签名长度会随着签名数量的增加而增加,虽然减少了签名数量,但存储和通信开销并没有较大改善。

技术实现思路

[0004]有鉴于此,本专利技术的目的是针对现有技术的不足,提供一种无证书有序聚合签名方法、系统及相关装置。
[0005]为达到上述目的,本专利技术采用以下技术方案:
[0006]第一方面,提供了一种无证书有序聚合签名方法,包括以下步骤:(1)系统初始化:密钥生成中心(KGC)生成系统公共参数params和系统主密钥msk;(2)部分私钥生成:KGC输入msk和用户身份标识ID,生成用户部分私钥D
ID
;(3)用户密钥生成:签名用户终端输入身份标识ID和部分私钥D
ID
,生成签名私钥sk
ID
和公钥PK
ID
;(4)有序聚合签名生成:签名用户终端按顺序依次生成签名σ
i
,最后一个签名用户终端输出聚合签名σ=σ
n
;(5)签名验证:验证用户终端输入由用户身份标识、公钥和消息构成的顺序列表L及聚合签名σ,输出0或1,其中,0表示签名无效,1表示签名有效。
[0007]进一步的,所述步骤(1)系统初始化由KGC执行,具体步骤为:

选择阶为素数p的加法循环群(G,+)和阶为p的乘法循环群(G
T
,
·
),P为G的一个生成元;选择双线性映射e:G
×
G

G
T


选择3个安全哈希函数H1:{0,1}
*

G
*
,H2:{0,1}

G
*
,

随机选择将s作为主私钥msk秘密保存;

计算P
pub
=sP,将P
pub
作为系统公钥;

公布系统公共参数params=(G,G
T
,p,e,P,P
pub
,H1,H2,H)。
[0008]所述步骤(2)部分私钥生成由KGC执行,具体步骤为:

从用户数据库中获取签名
用户身份标识ID,如果数据库中没有相关用户的数据,则数据库先向各个签名用户发送请求,获取用户身份标识ID并保存到数据库中。

计算D
ID
=sH1(ID),将D
ID
作为用户部分私钥;

通过秘密信道将部分私钥D
ID
发送给身份标识为ID的签名用户。
[0009]所述步骤(3)用户密钥生成由各签名用户终端执行,具体步骤为:

接收KGC通过秘密信道发送过来的部分私钥D
ID


选取随机数作为秘密值;

将秘密值与从KGC接收的部分私钥结合,生成签名用户的私钥sk
ID
=(D
ID
,x
ID
);

计算公钥PK
ID
=x
ID
P并公开。
[0010]所述步骤(4)有序聚合签名生成由签名用户终端N1,N2,...,N
n
按顺序执行,具体步骤为:

签名数据初始化:签名用户N1对消息m1进行签名之前,签名σ0=(0
G
,0
G
)、临时数据τ0=(0
G
,0)、信息列表其中0
G
为加法循环群(G,+)中的零元,表示空集;

签名数据接收:签名用户终端N
i
(i=2,3,...,n)对消息m
i
进行签名之前,先通过公开信道接收前一个签名用户终端N
i
‑1发送过来的签名σ
i
‑1=(U
i
‑1,V
i
‑1)、临时数据τ
i
‑1=(T
i
‑1,t
i
‑1)和顺序列表

签名:签名用户终端N1,N2,...,N
n
按顺序依次对m
i
(i=1,2,

,n)进行签名,其中,签名用户终端N
i
首先选择随机数计算h
i
=H(PK
i
||m
i
),然后计算t
i
=t
i
‑1+h
i
x
i
+r
i
modp,U
i
=U
i
‑1+r
i
P,V
i
=V
i
‑1+D
i
+(h
i
x
i
+r
i
)T
i
‑1+t
i
H2(ID
i
)和T
i
=T
i
‑1+H2(ID
i
),最后将身份标识ID
i
、公钥PK
i
、消息m
i
加入顺序列表

签名数据发送或输出:若i<n,则签名用户终端N
i
将顺序列表临时数据τ
i
=(T
i
,t
i...

【技术保护点】

【技术特征摘要】
1.一种无证书有序聚合签名方法,其特征在于,包括以下步骤:(1)系统初始化:密钥生成中心(KGC)生成系统公共参数params和系统主密钥msk;(2)部分私钥生成:KGC输入msk和用户身份标识ID,生成用户部分私钥D
ID
;(3)用户密钥生成:签名用户终端输入身份标识ID和部分私钥D
ID
,生成签名私钥sk
ID
和公钥PK
ID
;(4)有序聚合签名生成:签名用户终端按顺序依次生成签名σ
i
,最后一个签名用户终端输出聚合签名σ=σ
n
;(5)签名验证:验证用户终端输入由用户身份标识、公钥和消息构成的顺序列表L及聚合签名σ,输出0或1,其中,0表示签名无效,1表示签名有效。所述步骤(1)系统初始化由密钥生成中心(KGC)执行,具体包括以下步骤:

选择阶为素数p的加法循环群(G,+)和阶为p的乘法循环群(G
T
,
·
),P为G的一个生成元;选择双线性映射e:G
×
G

G
T


选择3个安全哈希函数H1:{0,1}
*

G
*
,H2:{0,1}

G
*
,H:

随机选择将s作为主私钥msk秘密保存;

计算P
pub
=sP,将P
pub
作为系统公钥;

公布系统公共参数params=(G,G
T
,p,e,P,P
pub
,H1,H2,H)。所述步骤(2)部分私钥生成由KGC执行,具体包括以下步骤:

从用户数据库中获取签名用户身份标识ID,如果数据库中没有相关用户的数据,则数据库先向各个签名用户发送请求,获取用户身份标识ID并保存到数据库中。

计算D
ID
=sH1(ID),将D
ID
作为用户部分私钥;

通过秘密信道将部分私钥D
ID
发送给身份标识为ID的签名用户。所述步骤(3)用户密钥生成由各签名用户终端执行,具体包括以下步骤:

接收KGC通过秘密信道发送过来的部分私钥D
ID


选取随机数作为秘密值;

将秘密值与从KGC接收的部分私钥结合,生成签名用户的私钥sk
ID
=(D
ID
,x
ID
);

计算公钥PK
ID
=x
ID
P并公开。2.如权利要求1所述的一种无证书有序聚合签名方法,其特征在于,所述步骤(4)有序聚合签名生成由签名用户终端N1,N2,...,N
n
按顺序执行,具体步骤为:

签名数据初始化:签名用户N1对消息m1进行签名之前,签名σ0=(0
G
,0
G
)、临时数据τ0=(0
G
,0)、信息列表其中0
G
为加法循环群(G,+)中的零元,表示空集;

签名数据接收:签名用户终端N
i
(i=2,3,...,n)对消息m
i
进行签名之前,先通过公开信道接收前一个签名用户终端N
i
‑1发送过来的签名σ
i
‑1=(U
i
‑1,V
i
‑1)、临时数据τ
i
‑1=(T
i
‑1,t
i
‑1)和顺序列表

签名:签名用户终端N1,N2,...,N
n
按顺序依次对m
i
(i=1,2,

,n)进行签名,其中,签名用户终端N
i
首先选择随机数计算h
i
=H(PK
i
||m
i
),然后计算t
i
=t
i
‑1+h
i
x
i
+r
i
mod p,U
i
=U
i
‑1+r
i
P,V
...

【专利技术属性】
技术研发人员:何俊杰刘正辉孙芳
申请(专利权)人:河南三庚网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1