一种适用于涉密信息系统的聚合签名方法及系统转让专利

申请号 : CN202110123600.7

文献号 : CN112446052B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 易鹏

申请人 : 东方微电科技(武汉)有限公司

摘要 :

本发明提供一种适用于涉密信息系统的聚合签名方法及系统,方法包括:根据输入的安全参数h,输出公共参数par和系统主密钥a;计算每一个用户Ui的公钥vi;根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi;根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名信息;对聚合签名信息进行验证,以确定生成的聚合签名是否来自指定的多个用户。本发明的聚合签名方法将多个用户对多个消息的签名压缩成为一个签名(聚合签名),极大地减少了计算量,使得整个签名过程的通信效率成指数级提高。

权利要求 :

1.一种适用于涉密信息系统的聚合签名方法,其特征在于,包括:根据输入的安全参数h,输出公共参数par和系统主密钥a;

计算每一个用户Ui的公钥vi;

根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi;

根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名信息;

对所述聚合签名信息进行验证,以确定生成的聚合签名是否来自指定的多个用户,其中,1<i≤n,n为用户数;

其中,所述根据输入的安全参数h,输出公共参数par和系统主密钥a包括:当输入安全参数h时,在素数阶 的椭圆曲线上选择加法群G和乘法群 ;

令g是G的生成元,双线性映射为 ;

定义三个耐碰撞的Hash函数: , , ,其中, 为小于p的正整数组成的集合, 表示有不确定个集合;

密钥生成中心KGC随机在 中选取系统主密钥a并计算系统公钥 ,并公开公共参数 ;其中,所述计算每一个用户Ui的公钥vi包括:

根据用户Ui随机选取的秘密值 ,计算用户Ui的公钥 ;

所述根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi,包括:当输入公共参数par、系统主密钥a和用户Ui时,KGC计算 ;

当输入待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi,签名者计算 , , ,

计算用户Ui对于待签名消息mi的签名信息 。

2.根据权利要求1所述的聚合签名方法,其特征在于,所述根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名,包括:当输入元组 时,计算聚合签名信息 ;

其中, 为状态信息集合,M为待签名消息的集合,σi为用户Ui对于待签名消息mi的签名信息。

3.根据权利要求2所述的聚合签名方法,其特征在于,所述对所述聚合签名进行验证,以确定生成的聚合签名是否来自指定的多个用户包括:当输入元组 后,计算 、 和 ,以及计算 , , , ;

计算 ;

验证等式 是否成立,如果成立,则验证成功,否则,验证失败。

4.根据权利要求1所述的聚合签名方法,其特征在于,所述当输入公共参数par、系统主密钥a和用户Ui时,KGC计算 还包括:计算用户Ui的部分私钥 ,并通过安全通信信道将部分私钥 发送给对应的用户Ui。

5.一种适用于涉密信息系统的聚合签名系统,其特征在于,包括:输出模块,用于根据输入的安全参数h,输出公共参数par和系统主密钥a;

计算模块,用于计算每一个用户Ui的公钥vi;以及根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi;

生成模块,用于根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名信息;

验证模块,用于对所述聚合签名信息进行验证,以确定生成的聚合签名是否来自指定的多个用户;

其中,所述根据输入的安全参数h,输出公共参数par和系统主密钥a包括:当输入安全参数h时,在素数阶 的椭圆曲线上选择加法群G和乘法群 ;

令g是G的生成元,双线性映射为 ;

定义三个耐碰撞的Hash函数: , , ,其中, 为小于p的正整数组成的集合, 表示有不确定个集合;

密钥生成中心KGC随机在 中选取系统主密钥a并计算系统公钥 ,并公开公共参数 ;其中,所述计算每一个用户Ui的公钥vi包括:

根据用户Ui随机选取的秘密值 ,计算用户Ui的公钥 ;

所述根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi,包括:当输入公共参数par、系统主密钥a和用户Ui时,KGC计算 ;

当输入待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi,签名者计算 , , ,

计算用户Ui对于待签名消息mi的签名信息 。

6.一种电子设备,其特征在于,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现如权利要求1‑4任一项所述的聚合签名方法的步骤。

7.一种计算机可读存储介质,其特征在于,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现如权利要求1‑4任一项所述的聚合签名方法的步骤。

说明书 :

一种适用于涉密信息系统的聚合签名方法及系统

技术领域

[0001] 本发明涉及数字签名技术领域,更具体地,涉及一种适用于涉密信息系统的聚合签名方法及系统。

背景技术

[0002] 无证书公钥密码体制(CL‑PKC)有效地避免了密钥托管问题,聚合签名是在无证书密钥托管的基础上提出的,其原理是将多个用户对不同消息的签名压缩为一个签名,即聚
合签名。验证者只需对聚合签名进行验证,即可实现对多个签名的批量验证,这可以大大减
少签名验证者的工作量。
[0003] 2005年,Song等人提出了一种基于身份的聚合签名方案,但该方案后来被证明是不安全的。2007年,Gong等人提出了一种基于双线性映射的聚合签名方案,但是Gong等人的
方案后来被证明在敌手的攻击下是不安全的。此后,很多聚合签名方案在聚合签名的过程
中都存在一定的局限性,即签名聚合器每次必须共享一部分信息,导致方案的不安全性。在
2015年,Cheng等人提出了一种使用无证书聚合签名的方案,虽然签名聚合器不需要共享一
部分信息,但依然被证明在敌手的攻击下是不安全的。2018年,Li等人提出了一种新的无证
书聚合签名方案,表明Cheng等人的方案具有一定的安全风险,无法抵抗合谋攻击。2019年,
Xie等人提出了一种运用于的无线传感器网络的无证书聚合签名方案,指出Li等人的方案
不具备抵抗不同类型敌手攻击的能力。自此,聚合签名的安全性依旧是一个值得深入研究
的课题。

发明内容

[0004] 本发明提供一种克服上述问题或者至少部分地解决上述问题的一种适用于涉密信息系统的聚合签名方法及系统。
[0005] 根据本发明的第一方面,提供了一种适用于涉密信息系统的聚合签名方法,包括:根据输入的安全参数h,输出公共参数par和系统主密钥a;计算每一个用户Ui的公钥vi;根据
输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计
算用户Ui对于待签名消息mi的签名信息σi;根据用户Ui对于待签名消息mi的签名信息σi,生
成所有用户对所有待签名消息的聚合签名信息;对聚合签名信息进行验证,以确定生成的
聚合签名是否来自指定的多个用户,其中,1<i≤n,n为用户数,n为正整数。
[0006] 在上述技术方案的基础上,本发明还可以作出如下改进。
[0007] 可选的,所述根据输入的安全参数h,输出公共参数par和系统主密钥a包括:
[0008] 当输入安全参数h时,在素数阶 的椭圆曲线上选择加法群G和乘法群 ;
[0009] 令g是G的生成元,双线性映射为 ;
[0010] 定 义 三 个 耐 碰 撞的 Ha s h 函 数 : , ,,其中, 为小于p的正整数组成的集合, 表示有不确定个集合;
[0011] 密钥生成中心KGC随机在 中选取系统主密钥a并计算系统公钥 ,并公开公共参数 。
[0012] 可选的,所述计算每一个用户Ui的公钥vi包括:
[0013] 根据用户Ui随机选取的秘密值 ,计算用户Ui的公钥 。
[0014] 可选的,所述根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi,包括:
[0015] 当输入公共参数par、系统主密钥a和用户Ui时,KGC计算 ;
[0016] 当输入待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi,签名者计算 , , ,

[0017] 计算用户Ui对于待签名消息mi的签名信息 。
[0018] 可选的,所述根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名,包括:
[0019] 当输入元组 时,计算聚合签名信息 ;
[0020] 其中,为状态信息集合,M为待签名消息的集合,σi为用户Ui对于待签名消息mi的签名信息。
[0021] 可选的,对聚合签名进行验证,以确定生成的聚合签名是否来自指定的多个用户包括:
[0022] 当输入元组 后,计算 、 和,以及计算 , , , ;
[0023] 计算 ;
[0024] 验证等式 是否成立,如果成立,则验证成功,否则,验证失败。
[0025] 可选的,当输入公共参数par、系统主密钥a和用户Ui时,KGC计算 还包括:
[0026] 计算用户Ui的部分私钥 ,并通过安全通信信道将部分私钥 发送给对应的用户Ui。
[0027] 根据本发明的第二方面,提供一种适用于涉密信息系统的聚合签名系统,包括:
[0028] 输出模块,用于根据输入的安全参数h,输出公共参数par和系统主密钥a;
[0029] 计算模块,用于计算每一个用户Ui的公钥vi;以及根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息
mi的签名信息σi;
[0030] 生成模块,用于根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名信息;
[0031] 验证模块,用于对所述聚合签名信息进行验证,以确定生成的聚合签名是否来自指定的多个用户。
[0032] 根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现聚合签名方法的步骤。
[0033] 根据本发明的第四方法,提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现聚合签名方法的步骤。
[0034] 本发明提供的一种聚合签名方法、系统、电子设备及存储介质,将多个用户对多个消息的签名压缩成为一个签名(聚合签名),极大地减少了计算量,使得整个签名过程的通
信效率成指数级提高。

附图说明

[0035] 图1为本发明提供的一种适用于涉密信息系统的聚合签名方法流程图;
[0036] 图2为本发明提供的一种适用于涉密信息系统的聚合签名系统结构示意图;
[0037] 图3为本发明提供的一种可能的电子设备的硬件结构示意图;
[0038] 图4为本发明提供的一种可能的计算机可读存储介质的硬件结构示意图。

具体实施方式

[0039] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0040] 图1为本发明提供的一种适用于涉密信息系统的聚合签名方法流程图,如图1所示,方法包括:101、根据输入的安全参数h,输出公共参数par和系统主密钥a;102、计算每一
个用户Ui的公钥vi;103、根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公
共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi;104、根据用户Ui对
于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名信息;105、对聚
合签名信息进行验证,以确定生成的聚合签名是否来自指定的多个用户。
[0041] 可以理解的是,在对本发明提供的聚合签名方法进行详细介绍之前,对本发明中所用到的相关概念进行如下描述:
[0042] 1、双线性对(Bilinear Pairing):
[0043] 令G是p阶加法群,GT是p阶乘法群,p是素数,g为G的生成元,双线性映射,且满足下面的性质:
[0044] (1)双线性: ,其中, , 为小于p的正整数组成的集合且集合不含0元素。
[0045] (2)非退化性: 。
[0046] (3)高效可计算性:存在一个算法计算 。
[0047] 2、困难问题假定:
[0048] CDH(computational Diffie‑Hellman)—困难问题。令群G与群GT均为p阶的循环群,p是素数,g为G的生成元,那么,循环群G的CDH‑问题为:给定随机的 ,计算
xyg, 。
[0049] 基于上述的基本概念,本发明提供了一种运用于涉密信息系统的安全可靠的聚合签名方法,具体为,根据输入的安全参数h,KGC输出公共参数par和系统主密钥a,对于任一
个用户,其公共参数和系统主密钥是相同的。然后,对于不同的用户Ui,计算其对应的公钥
vi。根据用户Ui,以及用户Ui对应的待签名消息mi、状态信息λi、用户Ui的公钥vi、公共参数
par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi。对于n个用户,均可计算对
应的一个签名信息,根据每一个用户对多条消息的签名信息,生成所有用户对所有签名消
息的聚合签名信息。最后对生成的聚合签名信息进行验证,以确定生成的聚合签名信息是
否来自于指定的多个用户,即该聚合签名信息是否由指定的多个用户签名计算而来。
[0050] 本发明提供的聚合签名方法将多个用户对多个消息的签名压缩成为一个签名(聚合签名),极大地减少了计算量,使得整个签名过程的通信效率成指数级提高。
[0051] 在一种可能的实施例方式中,可以理解的是,根据输入的安全参数h,密钥生成中心Key Generation Center (KGC)输出公共参数par和系统主密钥a包括:当输入安全参数h
时,在素数阶 的椭圆曲线上选择加法群G和乘法群GT;令g是G的生成元,双线性映射
为 ;定义三个耐碰撞的Hash函数: ,
,其中, 为小于p的正整数组成的集合,
表示有不确定个集合;KGC随机在 中选取系统主密钥a并计算系统公钥 ,并公开
公共参数 。其中,公共参数par和系统主密钥a由所
有的用户共享,也就是,对于所有的用户而言,公共参数par和系统主密钥a都是相同的。
[0052] 在一种可能的实施例方式中,计算每一个用户Ui的公钥vi包括:根据用户Ui随机选取的秘密值 ,计算用户Ui的公钥 。
[0053] 在一种可能的实施例方式中,可以理解的是,本发明的应用场景为多个用户对多个待签名消息进行联合签名的情形,对于用户Ui,其对应的待签名消息为mi,对应的状态参
数为λi。比如,有10个用户,分别对10个待签名消息进行签名,第一个用户对第一个待签名
消息进行签名,第二个用户对第二个待签名消息进行签名,以此类推,第十个用户对第十个
待签名消息进行签名。根据前述已经计算出来的系统公共参数par和系统主密钥a,以及用
户Ui对应的公钥vi,计算用户Ui对于待签名消息mi的签名信息σi,其中,1<i≤n,n为用户数,
n为正整数。
[0054] 具体的,根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi,包括:当输入公共参数
par、系统主密钥a和用户Ui时,KGC计算 和 ,其中, 为用户的部分私
钥,在整个签名的过程中,对于计算的每一个用户的部分私钥,均通过安全通信信道发送给
对应的用户,只有对应的用户才能得到部分私钥,保证了数据传输的安全性。当输入待签名
消息mi、状态信息λi、用户Ui、用户Ui的公钥vi,签名者计算 , ,
, , , , ;计算用户Ui对于
待签名消息mi的签名信息 。
[0055] 在一种可能的实施例方式中,可以理解的是,通过上述各实施例,可计算出每一个用户Ui对其对应的待签名消息mi的签名信息,对于多个用户对对应的待签名消息的签名信
息进行聚合操作,形成聚合签名信息。
[0056] 具体的,根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名,包括:根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有
待签名消息的聚合签名,包括:当输入元组 时,计算聚合签名信
息 ;其中,为状态信息集合,M为待签名消息的集合,σi为用户Ui对于待签名消
息mi的签名信息。
[0057] 在一种可能的实施例方式中,可以理解的是,对于聚合签名消息,需要对其进行验证,以确定该聚合签名信息是否来自指定的多个用户。
[0058] 具体的 ,当输入元组 后,验证者计算 ,和 ,以及计算 , ,
和 ,计 算 。通过 验证等式
是否成立,如果成立,则验证成功,表明聚合签名信息是来自于指定的多
个用户;否则,验证失败,表明聚合签名信息不是来自指定的多个用户,至少有一部分用户
不是来自指定用户。
[0059] 验证者在验证 时,计算:
[0060]
[0061]
[0062] 通过上述等式的验证,本发明的聚合签名验证有效,返回结果为1,表明聚合签名信息是来自于指定的多个用户。
[0063] 本发明提供的聚合签名方法可应用于涉密信息系统中,主要的优点有如下几点:
[0064] (1)当输入元组 之后,聚合签名者计算 ,输出聚合签名 ,此聚合签名 是将多个用户对多条待签名信息的签名压缩成一个签名,聚合签
名方法极大地减少了计算量,使得方案的通信效率成指数级提高。
[0065] (2)当输入公共参数par、系统主密钥a和用户 之后,KGC计算 和,通过安全的通信信道将部分私钥 发送给用户,涉密员工只会得到部分私钥,
从而保证了涉密私钥的安全性。
[0066] (3)在生成了聚合签名信息后,在后期进行验证时,只需要验证等式,即只需要验证两个线性对,与常规的签名所需的五个线性对相比,极
大地提高了验证效率,针对于涉密信息系统的大量验证操作,本发明的两个线性对的验证
操作极大地节约了时间成本。
[0067] 图2为本发明提供的一种适用于涉密信息系统的聚合签名系统结构图,如图2所示,一种聚合签名系统,包括:输出模块201,用于根据输入的安全参数h,输出公共参数par
和系统主密钥a;计算模块202,用于计算每一个用户Ui的公钥vi;以及根据输入的待签名消
息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待
签名消息mi的签名信息σi;生成模块203,用于根据用户Ui对于待签名消息mi的签名信息σi,
生成所有用户对所有待签名消息的聚合签名信息;验证模块204,用于对所述聚合签名信息
进行验证,以确定生成的聚合签名是否来自指定的多个用户。
[0068] 可以理解的是,本发明提供的一种聚合签名系统与前述各实施例提供的聚合签名方法相对应,聚合签名系统的相关技术特征可参考聚合签名方法的相关技术特征,在此不
再重复说明。
[0069] 请参阅图3,图3为本发明提供的电子设备的实施例示意图。如图3所示,本发明实施例提了一种电子设备,包括存储器310、处理器320及存储在存储器320上并可在处理器
320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:根据输入的
安全参数h,输出公共参数par和系统主密钥a;计算每一个用户Ui的公钥vi;根据输入的待签
名消息mi、状态信息λi、用户Ui、用户Ui的公钥vi、公共参数par和系统主密钥a,计算用户Ui对
于待签名消息mi的签名信息σi;根据用户Ui对于待签名消息mi的签名信息σi,生成所有用户
对所有待签名消息的聚合签名信息;对聚合签名信息进行验证,以确定生成的聚合签名是
否来自指定的多个用户。
[0070] 请参阅图4,图4为本发明提供的一种计算机可读存储介质的实施例示意图。如图4所示,本实施例提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机
程序411被处理器执行时实现如下步骤:根据输入的安全参数h,输出公共参数par和系统主
密钥a;计算每一个用户Ui的公钥vi;根据输入的待签名消息mi、状态信息λi、用户Ui、用户Ui
的公钥vi、公共参数par和系统主密钥a,计算用户Ui对于待签名消息mi的签名信息σi;根据
用户Ui对于待签名消息mi的签名信息σi,生成所有用户对所有待签名消息的聚合签名信息;
对聚合签名信息进行验证,以确定生成的聚合签名是否来自指定的多个用户。
[0071] 需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
[0072] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0073] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程
和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指
令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0074] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0075] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0076] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选
实施例以及落入本申请范围的所有变更和修改。
[0077] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围
之内,则本申请也意图包括这些改动和变型在内。