CN103414731A - 一种并行密钥隔离的基于身份的聚合签名方法 - Google Patents

一种并行密钥隔离的基于身份的聚合签名方法 Download PDF

Info

Publication number
CN103414731A
CN103414731A CN2013103842596A CN201310384259A CN103414731A CN 103414731 A CN103414731 A CN 103414731A CN 2013103842596 A CN2013103842596 A CN 2013103842596A CN 201310384259 A CN201310384259 A CN 201310384259A CN 103414731 A CN103414731 A CN 103414731A
Authority
CN
China
Prior art keywords
key
user
signature
aggregate signature
aid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013103842596A
Other languages
English (en)
Inventor
于佳
郝蓉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao University
Original Assignee
Qingdao University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingdao University filed Critical Qingdao University
Priority to CN2013103842596A priority Critical patent/CN103414731A/zh
Publication of CN103414731A publication Critical patent/CN103414731A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种并行密钥隔离的基于身份的聚合签名方法,其为参与所述聚合签名方法的n个用户的集合,为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方,聚合方能够对接收到的n个独立的签名执行聚合操作,验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户;与此同时,每个用户的密钥都会周期性的更新,在每个时间段,两个协助器交替的帮助用户进行密钥的更新,一个时间段用户密钥的泄露不会影响到其他时间段系统的安全性。其综合了并行密钥隔离机制和基于身份的聚合签名的优势,不仅签名验证的效率有所提高,整个系统的安全性也能得到保证。

Description

一种并行密钥隔离的基于身份的聚合签名方法
技术领域
本发明涉及网络通信中的群组通信的数据认证领域,尤其涉及一种基于身份的同时可高效验证多个签名并能够减轻密钥泄露危害的聚合签名方法。
背景技术
在现实中,许多应用中都要求在较短的时间内对多个签名进行验证,特别对于能量受限的无线移动通信环境。例如,在邮件服务器中,为了减少服务器验证邮件签名的处理时间,需要一种快速的验证方法用以在很短的时间内对大量的签名进行验证。为应对此类问题,Boneh等提出了聚合签名的概念,即将多个用户对不同消息的签名聚合成一个签名,验证方只需对合成的签名进行验证就能确信签名是否来自指定的用户。聚合签名在很大程度上减小了签名验证的工作量,减小了签名的存储空间,同时也降低了传输签名的网络带宽。但是,现有提出的聚合签名中,大多考虑如何提高验证效率和缩短签名的长度,没有考虑如何减小密钥泄露对聚合签名的危害的问题。
基于身份的公钥密码体制简化了基于证书的公钥基础设施(PKI)的密钥管理,用户的身份与用户之间有着天然的联系,无需通过数字证书进行绑定,避免了传统的公钥密码体制中因管理大量用户证书而带来的种种弊端。基于身份的聚合签名方案自从在2007年被提出后,受到了广泛的关注,成为近几年来密码学的一个研究热点。
然而,对于一个密码系统来说,密钥的泄露意味着系统的安全性完全丧失。典型的如电子现金支付系统,如果攻击者盗取了合法用户的密钥,那么他就可以产生如任意时间内、与用户不可区分的有效电子现金,将导致合法用户蒙受巨大的经济损失。目前,为减小密钥泄露带来的危害,更多采用密钥演化的方法。密钥隔离技术是密钥演化方法中的一种,其安全性能保证某些时间段用户密钥的泄露不能为害其他时间段的安全性。但是,协助器密钥的泄露也严重威胁着系统的安全性。因此,Hanaoka等学者提出了并行密钥隔离(parallel key-insulation)的概念。并行密钥隔离机制既允许用户进行频繁的密钥更新,又不增加协助器密钥泄露的几率,增强了系统防御密钥泄露的能力。
发明内容
为解决基于身份的聚合签名系统中密钥存在泄漏的问题,本发明提出一种并行密钥隔离的基于身份的聚合签名方法和聚合签名系统,其综合了并行密钥隔离机制和基于身份的聚合签名的优势,不仅签名验证的效率有所提高,整个系统的安全性也能得到保证。
为解决上述技术问题,本发明提供了一种并行密钥隔离的基于身份的聚合签名方法,为参与所述聚合签名方法的n个用户的集合,
Figure BDA0000373978160000022
为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方,聚合方能够对接收到的n个独立的签名执行聚合操作,验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户;与此同时,每个用户的密钥都会周期性的更新,在每个时间段,两个协助器交替的帮助用户进行密钥的更新,一个时间段用户密钥的泄露不会影响到其他时间段系统的安全性。
所述聚合签名方法进一步包括:
第一步,并行密钥隔离的基于身份的聚合签名的系统建立步骤;
第二步,密钥生成步骤;
第三步,协助器密钥更新步骤;
第四步,用户密钥更新步骤;
第五步,签名步骤;
第六步,聚合签名生成步骤;
第七步,聚合签名验证步骤。
所述聚合签名方法更进一步包括:
第一步,系统建立步骤,输入安全参数k,输出系统公开参数param;
第二步,密钥生成步骤,输入所有用户的身份信息ui和系统公开参数param,密钥生成器(Private Key Generator,简称PKG)输出所有用户的初始密钥
Figure BDA0000373978160000023
和两个协助器密钥(HK0,HK1)。其中,HP0,HP1是两个协助器的公钥;
第三步,协助器密钥更新步骤,输入时间参数t和协助器密钥HKj(j=t mod2,t mod2表示t除以2的余数,所以j的值为0或者1),协助器设备输出更新消息
Figure BDA0000373978160000038
第四步,用户密钥更新步骤,输入时间参数t、上一时间片段的用户密钥
Figure BDA0000373978160000039
以及协助器的更新信息
Figure BDA00003739781600000310
,输出当前时间段的用户密钥
Figure BDA00003739781600000311
第五步,签名步骤,输入时间参数t、当前的临时密钥
Figure BDA00003739781600000312
、消息mi,每个用户Pi输出签名(t,σi);
第六步,聚合签名生成步骤,聚合方收集
Figure BDA0000373978160000036
中所有用户的签名,并生成聚合签名(t,σ);
第七步,聚合签名验证步骤,输入时间参数t、消息集合聚合签名(t,σ)以及系统公开参数param,验证方验证聚合签名的有效性,有效则输出“1”;否则,输出“0”。
所述系统建立步骤(第一步),根据安全参数k,生成系统公开参数param,具体的实现方式如下:
a、选取两个阶均为素数q的乘法群G和GT,设P为群G的一个随机生成元,
Figure BDA0000373978160000031
为双线性映射;
b、H1:{0,1}*×{0,1}*→G,H2:{0,1}*→G和
Figure BDA00003739781600000316
是三个抗碰撞的hash函数;
c、PKG选择
Figure BDA0000373978160000033
作为系统密钥,计算系统公钥为PK=sP;
d、系统公开参数 param = { G , G T , q , P , e ^ , H 1 , H 2 , H 3 PK } .
所述密钥生成步骤(第二步),根据系统公开参数param,生成用户的初始密钥
Figure BDA00003739781600000315
和协助器密钥(HK0,HK1),具体的实现方式如下:
a、用户Pi发送他的身份信息ui给PKG;
b、随机选取两个协助器密钥
Figure BDA0000373978160000035
计算协助器公钥为
HP0=HK0·P,HP1=HK1·P;
c、PKG为用户Pi生成初始密钥 S S u i , 0 = s · H 2 ( u i ) + H K 1 · H 1 ( u i , - 1 ) + H K 0 · H 1 ( u i , 0 ) ;
d、用户Pi的初始密钥
Figure BDA00003739781600000314
两个协助器的密钥为(HK0,HK1)。
所述协助器密钥更新步骤(第三步),根据协助器密钥(HK0,HK1)和时间参数t,生成协助器更新消息
Figure BDA00003739781600000410
,具体的实现方式如下:
a、协助器设备在时间片段t的更新消息设定为
UK u i , t = HK j ( H 1 ( u i , t ) - H 1 ( u i , t - 2 ) ) ;
b、将协助器的更新消息发送给集合P中的每个用户,帮助用户更新用户的临时密钥。
所述用户密钥更新步骤(第四步),根据协助器更新消息
Figure BDA00003739781600000412
和用户在上一时间片段的密钥
Figure BDA0000373978160000049
,生成当前时间段的密钥,具体的实现方式如下:
每个用户Pi
Figure BDA0000373978160000047
更新自己的临时密钥。
所述签名步骤(第五步),根据用户在t时间段的密钥
Figure BDA0000373978160000048
,用户ui对消息mi进行签名,具体的实现方式如下:
a、选择
Figure BDA0000373978160000042
计算Ri=riP;
b、计算哈希值hi=H3(t,mi,ui,Ri),并令
Figure BDA00003739781600000413
c、输出签名(t,σi)=(t,<Ri,Si,HP0,HP1>)。
所述聚合签名生成步骤(第六步),根据所有用户在时间片段t对不同消息的单签名(t,σi),生成聚合签名,具体的实现方式如下:
a、聚合方计算 S = &Sigma; i = 1 n S i ;
b、所有的签名(t,σi)形成的聚合签名为(t,σ)=(t,<R1,L,Rn,S,HP0,HP1>),聚合方把签名发送给验证方。
所述聚合签名验证步骤(第七步),根据生成的聚合签名(t,σ)和系统公开参数param,验证者验证聚合签名的有效性,具体的实现方式如下:
a、验证方计算hi=H2(t,mi,ui,Ri)(1≤i≤n);
b、令l=tmod2,l'=(t-1)mod2,验证以下等式是否成立
e ^ ( P , S ) = e ^ ( P , &Sigma; i = 1 n h i R i ) &CenterDot; e ^ ( PK , &Sigma; i = 1 n H 2 ( u i ) ) &CenterDot; e ^ ( H P l , &Sigma; i = 1 n H 1 ( u i , i ) ) &CenterDot; e ^ ( H P l &prime; , &Sigma; i = 1 n H 1 ( u i , t - 1 ) ) 如果等式成立,则返回“1”;否则,返回“0”。
本发明还提供了一种并行密钥隔离的基于身份的聚合签名系统,
Figure BDA0000373978160000044
为参与所述聚合签名方法的n个用户的集合,
Figure BDA0000373978160000045
为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方,聚合方能够对接收到的n个独立的签名执行聚合操作,验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户。
所述聚合签名系统进一步包括:
系统参数生成模块,其用于生成聚合签名系统的公开参数param,并将系统的公开参数param发送给密钥生成模块、用户密钥更新模块、签名模块、聚合模块和验证模块;
密钥生成模块,其用于生成两个协助器密钥和各个用户的初始密钥,将两个协助器的密钥发送给协助器密钥更新模块,将用户的初始密钥发送用户密钥更新模块和签名模块;
协助器密钥更新模块,其用于生成协助器更新消息,并将生成的将更新消息发送给用户密钥更新模块;
用户密钥更新模块,其用于生成用户在新的时间片段内的临时密钥,并将生成的新的临时密钥发送给签名模块;
签名模块,其用于生成各个用户对不同消息的单个签名,每个用户将生成的单签名发送给聚合模块;
聚合模块,其用于将收集到的多个单签名合成一个签名,并将合成的签名发送给验证模块;
验证模块,其用于验证聚合签名的有效性。
所述聚合签名系统进一步包括:
系统参数生成模块,其通过输入安全参数k,输出系统公开参数param;
密钥生成模块,其通过输入所有用户的身份信息ui和系统公开参数param获得所有用户的初始密钥
Figure BDA0000373978160000051
和两个协助器密钥(HK0,HK1)。其中,HP0,HP1是两个协助器的公钥;
协助器密钥更新模块,其通过输入时间参数t和协助器密钥HKj(其中j=tmod2,tmod2表示t除以2的余数,所以j的值为0或者1),协助器设备输出更新消息
Figure BDA0000373978160000052
用户密钥更新模块,其通过输入时间参数t、上一时间片段的用户密钥
Figure BDA0000373978160000065
以及协助器的更新信息,输出当前时间段的用户密钥
Figure BDA0000373978160000068
签名模块,其通过输入时间参数t、当前的临时密钥
Figure BDA0000373978160000067
、消息mi每个用户Pi输出签名(t,σi);
聚合签名生成模块,其通过聚合方收集
Figure BDA0000373978160000061
中所有用户的签名,并生成聚合签名(t,σ);
聚合签名验证模块,其通过输入时间参数t、消息集合
Figure BDA0000373978160000062
聚合签名(t,σ)以及系统公开参数param,验证方验证聚合签名的有效性,有效则输出“1”;否则,输出“0”。
本发明的有益效果:
本发明与现有技术相比,具有以下有益效果:
⑴密钥定时更新,公钥不变,如果攻击者获得了某个时间段用户的密钥,他不能由获得的密钥推出其他时间段的密钥,从而提高了方案的安全性。
⑵使用两个独立的协助器设备,若其中一个协助器设备发生密钥泄露,即使某些时间段的临时密钥发生泄露,系统在其他时间段仍是安全的,提高了整个系统防御密钥泄露的能力。
⑶将基于身份的密码体制引入到聚合签名系统中,用户的公钥就是身份信息,无需存放用户的公钥证书,节省了存储的空间和系统复杂性。
⑷可以实现多个用户的多个签名的聚合验证,减小了验证签名的复杂度。
附图说明
图1为本发明系统的工作示意图;
图2为本发明的系统流程图。
具体实施方式
本发明提供了一种并行密钥隔离的基于身份的聚合签名方法,
Figure BDA0000373978160000063
为参与所述聚合签名方法的n个用户的集合,
Figure BDA0000373978160000064
为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方,聚合方能够对接收到的n个独立的签名执行聚合操作,验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户。
所述聚合签名方法进一步包括:
第一步,并行密钥隔离的基于身份的聚合签名系统的系统参数param生成步骤;
第二步,密钥生成步骤;
第三步,协助器密钥更新步骤;
第四步,用户密钥更新步骤;
第五步,签名步骤;
第六步,聚合签名生成步骤;
第七步,聚合签名验证步骤。
所述聚合签名方法更进一步包括:
第一步,系统建立步骤,输入安全参数k,输出系统公开参数param;
第二步,密钥生成步骤,输入所有用户的身份信息ui和系统公开参数param,输出所有用户的初始密钥
Figure BDA0000373978160000077
和两个协助器密钥(HK0,HK1)。其中,HP0,HP1是两个协助器的公钥;
第三步,协助器密钥更新步骤,输入时间参数t和协助器密钥HKj(其中j=tmod2,tmod2表示t除以2的余数,所以j的值为0或者1),协助器设备输出更新消息
Figure BDA0000373978160000078
第四步,用户密钥更新步骤,输入时间参数t、上一时间片段的用户密钥
Figure BDA0000373978160000073
以及协助器的更新信息
Figure BDA0000373978160000074
,输出当前时间段的用户密钥
第五步,签名步骤,输入时间参数t、当前的临时密钥、消息mi,每个用户Pi输出签名(t,σi);
第六步,聚合签名生成步骤,聚合方收集中所有用户的签名,并生成聚合签名(t,σ);
第七步,聚合签名验证步骤,输入时间参数t、消息集合
Figure BDA0000373978160000072
聚合签名(t,σ)以及系统公开参数param,验证方验证聚合签名的有效性,有效则输出“1”;否则,输出“0”。
所述系统建立步骤(第一步),根据安全参数k,生成系统公开参数param,具体的实现方式如下:
a、选取两个阶均为素数q的乘法群G和GT,设P为群G的一个随机生成元,
Figure BDA0000373978160000081
为双线性映射;
b、H1:{0,1}*×{0,1}*→G,H2:{0,1}*→G和
Figure BDA00003739781600000816
是三个抗碰撞的hash函数;
c、选择
Figure BDA0000373978160000083
作为系统密钥,计算系统公钥为PK=sP;
d、系统公开参数 param = { G , G T , q , P , e ^ , H 1 , H 2 , H 3 PK } .
所述密钥生成步骤(第二步),根据系统公开参数param,生成用户的初始密钥
Figure BDA00003739781600000811
和协助器密钥(HK0,HK1),具体的实现方式如下:
a、用户Pi发送他的身份信息ui给PKG;
b、随机选取两个协助器密钥
Figure BDA0000373978160000084
计算HP0=HK0·P,HP1=HK1·P;
c、PKG为用户Pi生成初始密钥 SS u i , 0 = s &CenterDot; H 2 ( u i ) + HK 1 &CenterDot; H 1 ( u i , - 1 ) + HK 0 &CenterDot; H 1 ( u i , 0 ) ;
d、用户Pi的初始密钥
Figure BDA00003739781600000812
,两个协助器的密钥为(HK0,HK1)。
所述协助器密钥更新步骤(第三步),根据协助器密钥(HK0,HK1)和时间参数t,生成协助器更新消息
Figure BDA00003739781600000813
,具体的实现方式如下:
a、协助器设备在时间片段t的更新消息设定为
UK u i , t = HK j ( H 1 ( u i , t ) - H 1 ( u i , t - 2 ) ) ;
b、将协助器的更新消息发送给集合P中的每个用户,帮助用户更新用户的临时密钥。
所述用户密钥更新步骤(第四步),根据协助器更新消息
Figure BDA00003739781600000814
和用户在上一时间片段的密钥
Figure BDA0000373978160000086
,生成当前时间段的密钥
Figure BDA0000373978160000088
,具体的实现方式如下:每个用户Pi
Figure BDA0000373978160000089
更新自己的临时密钥。
所述签名步骤(第五步),根据用户在t时间段的密钥
Figure BDA00003739781600000810
,用户ui对消息mi进行签名,具体的实现方式如下:
a、选择
Figure BDA0000373978160000091
计算Ri=riP;
b、计算哈希值hi=H3(t,mi,ui,Ri),并令
Figure BDA0000373978160000098
c、输出签名(t,σi)=(t,<Ri,Si,HP0,HP1>)。
所述聚合签名生成步骤(第六步),根据所有用户在时间片段t对不同消息的单签名(t,σi),生成聚合签名,具体的实现方式如下:
a、聚合方计算 S = &Sigma; i = 1 n S i ;
b、所有的签名(t,σi)形成的聚合签名为(t,σ)=(t,<R1,L,Rn,S,HP0,HP1>),聚合方把签名发送给验证方。
所述聚合签名验证步骤(第七步),根据生成的聚合签名(t,σ)和系统公开参数param,验证者验证聚合签名的有效性,具体的实现方式如下:
a、验证方计算hi=H2(t,mi,ui,Ri)(1≤i≤n);
b、令l=tmod2,l'=(t-1)mod2,验证以下等式是否成立
e ^ ( P , S ) = e ^ ( P , &Sigma; i = 1 n h i R i ) &CenterDot; e ^ ( PK , &Sigma; i = 1 n H 2 ( u i ) ) &CenterDot; e ^ ( H P l , &Sigma; i = 1 n H 1 ( u i , i ) ) &CenterDot; e ^ ( H P l &prime; , &Sigma; i = 1 n H 1 ( u i , t - 1 ) ) 如果等式成立,则返回“1”;否则,返回“0”。
本发明还提供了一种并行密钥隔离的基于身份的聚合签名系统,
Figure BDA0000373978160000094
为参与所述聚合签名方法的n个用户的集合,
Figure BDA0000373978160000095
为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方,聚合方能够对接收到的n个独立的签名执行聚合操作,验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户。
所述聚合签名系统进一步包括:
系统参数生成模块,其通过输入安全参数k,获取系统公开参数param;
密钥生成模块,其通过输入所有用户的身份信息ui和系统公开参数param,获得所有用户的初始密钥
Figure BDA0000373978160000097
和两个协助器密钥(HK0,HK1)。其中,HP0,HP1是两个协助器的公钥;
协助器密钥更新模块,其通过输入时间参数t和协助器密钥HKj(其中j=tmod2,tmod2表示t除以2的余数,所以j的值为0或者1),协助器设备输出更新消息
用户密钥更新模块,其通过输入时间参数t、上一时间片段的用户密钥
Figure BDA0000373978160000108
以及协助器的更新信息
Figure BDA00003739781600001010
,输出当前时间段的用户密钥
Figure BDA00003739781600001011
签名模块,其通过输入时间参数t、当前的临时密钥
Figure BDA00003739781600001012
、消息mi,每个用户Pi输出签名(t,σi);
聚合签名生成模块,其通过聚合方收集
Figure BDA0000373978160000106
中所有用户的签名,并生成聚合签名(t,σ);
聚合签名验证模块,其通过输入时间参数t、消息集合
Figure BDA0000373978160000107
聚合签名(t,σ)以及系统公开参数param,验证方验证聚合签名的有效性,有效则输出“1”;否则,输出“0”。
系统参数生成模块,根据安全参数k,生成系统公开参数param,具体的实现方式如下:
a、选取两个阶均为素数q的乘法群G和GT,设P为群G的一个随机生成元,
Figure BDA0000373978160000101
为双线性映射;
b、H1:{0,1}*×{0,1}*→G,H2:{0,1}*→G和
Figure BDA00003739781600001016
是三个抗碰撞的hash函数;
c、选择
Figure BDA0000373978160000103
作为系统密钥,计算系统公钥为PK=sP;
d、系统公开参数 param = { G , G T , q , P , e ^ , H 1 , H 2 , H 3 PK } .
密钥生成模块,根据系统公开参数param,生成用户的初始密钥
Figure BDA0000373978160000109
和协助器密钥(HK0,HK1),具体的实现方式如下:
a、用户Pi发送他的身份信息ui给PKG;
b、随机选取两个协助器密钥
Figure BDA0000373978160000105
计算HP0=HK0·P,HP1=HK1·P;
c、PKG为用户Pi生成初始密钥 SS u i , 0 = s &CenterDot; H 2 ( u i ) + HK 1 &CenterDot; H 1 ( u i , - 1 ) + HK 0 &CenterDot; H 1 ( u i , 0 ) ;
d、用户Pi的初始密钥
Figure BDA00003739781600001014
,两个协助器的密钥为(HK0,HK1)。
协助器密钥更新模块,根据协助器密钥(HK0,HK1)和时间参数t,生成协助器更新消息
Figure BDA00003739781600001013
,具体的实现方式如下:
a、协助器设备在时间片段t的更新消息设定为
UK u i , t = HK j ( H 1 ( u i , t ) - H 1 ( u i , t - 2 ) ) ;
b、将协助器的更新消息发送给集合P中的每个用户,帮助用户更新用户的临时密钥。
用户密钥更新模块,根据协助器更新消息
Figure BDA0000373978160000118
和用户在上一时间片段的密钥
Figure BDA0000373978160000116
,生成当前时间段的密钥
Figure BDA00003739781600001112
具体的实现方式如下:
每个用户Pi
Figure BDA0000373978160000119
更新自己的临时密钥。
签名模块,根据用户在t时间段的密钥,用户ui对消息mi进行签名,具体的实现方式如下:
a、选择
Figure BDA0000373978160000111
计算Ri=riP;
b、计算哈希值hi=H3(t,mi,ui,Ri),并令
Figure BDA00003739781600001111
c、输出签名(t,σi)=(t,<Ri,Si,HP0,HP1>)。
聚合签名生成模块,根据所有用户在时间片段t对不同消息的单签名(t,σi),生成聚合签名,具体的实现方式如下:
a、聚合方计算 S = &Sigma; i = 1 n S i ;
b、所有的签名(t,σi)形成的聚合签名为(t,σ)=(t,<R1,L,Rn,S,HP0,HP1>),聚合方把签名发送给验证方。
聚合签名验证模块,根据生成的聚合签名(t,σ)和系统公开参数param,验证者验证聚合签名的有效性,具体的实现方式如下:
a、验证方计算hi=H2(t,mi,ui,Ri)(1≤i≤n);
b、令l=tmod2,l'=(t-1)mod2,验证以下等式是否成立
e ^ ( P , S ) = e ^ ( P , &Sigma; i = 1 n h i R i ) &CenterDot; e ^ ( PK , &Sigma; i = 1 n H 2 ( u i ) ) &CenterDot; e ^ ( H P l , &Sigma; i = 1 n H 1 ( u i , i ) ) &CenterDot; e ^ ( H P l &prime; , &Sigma; i = 1 n H 1 ( u i , t - 1 ) ) 如果等式成立,则返回“1”;否则,返回“0”。
在本发明中,参与聚合签名的用户有n个,
Figure BDA0000373978160000114
为参与本次聚合签名的用户集合,u1,u2,L,un表示每个用户的身份,
Figure BDA0000373978160000115
为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方;聚合方能够对接收到的n个独立的签名执行聚合操作;验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户。
在本发明的整个系统中,整个系统时间分为若干时间片段,用户的公钥始终保持不变,用户的密钥在每个时间片段的开始时均进行更新操作,也就是说每个时间段内的用户密钥是不一样的。用户对消息进行签名时,不同的时间段内使用不同的临时密钥,签名操作只涉及该时间段的临时密钥。用户的密钥不再是只由用户设备单独掌控,而是将它分为两部分:一部分为存放在用户设备中的临时密钥;另一部分是存放在协助器设备中的协助器密钥。在本发明中,为增强系统防御密钥泄露的能力,我们引入两个不同且独立的协助器设备(协助器设备0和协助器设备1),他们交替帮助用户在每个时间片段进行临时密钥的更新。在每个时间片段的开始,协助器设备会生成一个协助器更新消息并发送给用户设备,帮助用户更新当前时间段的临时密钥。当时间参数t为偶数时,用户利用协助器设备0来更新密钥,当时间参数t为奇数时,用户利用协助器设备1来更新密钥。通常,用户设备是计算能力很强但安全性较差的设备,而协助器设备是一个物理安全但计算能力受限的设备。
本发明提供的聚合签名系统中的参数生成模块用于生成系统的公开参数param,并将系统的公开参数param发送给密钥生成模块、用户密钥更新模块、签名模块、聚合模块和验证模块。密钥生成模块用于生成两个协助器密钥和各个用户的初始密钥,将两个协助器的密钥密钥发送给协助器密钥更新模块,将用户的初始密钥发送用户密钥更新模块和签名模块。协助器密钥更新模块用于生成协助器更新消息,并将生成的更新消息发送给用户密钥更新模块。用户密钥更新模块用于生成用户在新的时间片段内的临时密钥,并将生成的新的临时密钥发送给签名模块。签名模块用于生成各个用户对不同消息的单个签名,每个用户将生成的签名发送给聚合模块。聚合模块用于将收集到的多个单签名合成一个签名,并将合成的签名发送给验证模块。验证模块用于验证聚合签名的有效性。
进一步,本发明提供的聚合签名系统仅由上述模块构成。
以下将结合说明书和附图对本发明做进一步详细说明。
图1为本发明的系统的工作示意图,其中,PKG为密钥生成中心,为整个系统生成系统公开参数和协助器密钥;协助器设备0和协助器设备1交替帮助所有用户更新临时密钥,当时间参数t为偶数时,用户利用协助器设备0来更新密钥,当时间参数t为奇数时,用户利用协助器设备1来更新密钥;聚合方将收集到的所有签名聚合成一个签名;验证方验证聚合签名的有效性。
图2为本发明的系统流程图,其中,系统参数生成模块用于生成系统的公开参数,并将系统的公开参数发送给密钥生成模块、用户密钥更新模块、签名模块、聚合模块和验证模块。密钥生成模块用于生成两个协助器密钥和各个用户的初始密钥,将两个协助器的密钥密钥发送给协助器密钥更新模块,将用户的初始密钥发送用户密钥更新模块和签名模块。协助器密钥更新模块用于生成协助器更新消息,并将生成的将更新消息发送给用户密钥更新模块。用户密钥更新模块用于生成用户在新的时间片段内的临时密钥,并将生成的新的临时密钥发送给签名模块。签名模块用于生成各个用户对不同消息的单个签名,每个用户将生成的签名发送给聚合模块。聚合模块用于将收集到的多个单签名合成一个签名,并将合成的签名发送给验证模块。验证模块用于验证聚合签名的有效性。
下面具体描述本发明聚合签名系统中的各模块及采用本发明提供的聚合签名系统进行基于身份的聚合签名方法。
(1)系统参数生成模块:
此模块由PKG完成,PKG是密钥生成中心,为用户和协助器生成密钥。PKG根据输入的安全参数k,PKG首先选取两个阶均为素数q的乘法群G和GT,设P为群G的一个随机生成元,
Figure BDA0000373978160000131
为双线性映射;选取三个抗碰撞的哈希函数如下:
H1:{0,1}*×{0,1}*→GH2:{0,1}*→G
然后,PKG从选择
Figure BDA0000373978160000133
中随机选择参数s,其中,
Figure BDA0000373978160000134
q为素数,s作为系统密钥,计算系统公钥为PK=sP;最后,PKG返回系统公开参数 param = { G , G T , q , P , e ^ , H 1 , H 2 , H 3 , PK } .
(2)密钥生成模块:
根据所有用户的身份信息ui和系统公开参数param,PKG为所有的用户生成0时间段的密钥(初始密钥)
Figure BDA0000373978160000137
和两个协助器密钥。
首先,用户将自己的身份信息ui发送给PKG,PKG从
Figure BDA0000373978160000136
中随机选择两个参数HK0,HK1,HK0,HK1是两个协助器设备的密钥,其中HK0是协助器设备0的密钥,HK1是协助器设备1的密钥。根据生成的两个协助器密钥,计算两个协助器的公钥分别为HP0=HK0·P,HP1=HK1·P。
然后,PKG根据参数s,两个协助器密钥和哈希函数H1和H2,按照如下公式为每个用户生成0时间段的部分密钥(部分初始密钥)
SS u i , 0 = s &CenterDot; H 2 ( u i ) + HK 1 &CenterDot; H 1 ( u i , - 1 ) + HK 0 &CenterDot; H 1 ( u i , 0 ) .
最后,PKG返回所有用户的初始密钥和两个协助器密钥,用户Pi的初始密钥为
Figure BDA00003739781600001410
,两个协助器的密钥为(HK0,HK1)。
(3)协助器密钥更新模块:
首先,协助器根据密钥生成模块生成的两个协助器密钥、时间参数t和哈希函数H1,协助器设备在时间片段t的更新消息设定为
UK u i , t = HK j ( H 1 ( u i , t ) - H 1 ( u i , t - 2 ) )
然后将该消息发送给每个用户,帮助用户更新自己的密钥。
需要说明的是:两个协助器交替工作,在整个系统周期内的奇数时间段,更新消息由协助器1生成;在偶数时间段,更新消息由协助器0生成。更新消息生成公式中的HKj(j=tmod2)就表示不同的时间段,更新消息由不同的协助器产生。
(4)用户密钥更新模块:
根据t时间段协助器生成的更新消息
Figure BDA0000373978160000148
和用户在t-1时间段的密钥
Figure BDA0000373978160000142
,该模块生成t时间段的用户密钥
Figure BDA0000373978160000143
。具体的生成方式如下:
用户计算
Figure BDA0000373978160000144
然后返回t时间段用户的密钥为
SK u i , t = ( SS u i , t , HP 0 , HP 1 ) .
Figure BDA0000373978160000146
用于在签名模块对用户选择的消息进行签名。
(5)签名模块:
用户根据在t时间段的密钥
Figure BDA0000373978160000147
对接收的消息mi进行签名,并把签名发送给聚合方。具体的生成方式如下:
首先,每个签名用户从
Figure BDA0000373978160000141
中随机选择参数ri,并计算Ri=riP。
然后,计算哈希值hi=H3(t,mi,ui,Ri),并令。其中H3
Figure BDA0000373978160000151
hi中的元素,Si是群G中的元素。
最后,输出签名(t,σi)=(t,<Ri,Si,HP0,HP1>)。
(6)聚合模块:
聚合方根据收集到的
Figure BDA0000373978160000155
中所有用户的签名,生成聚合签名。具体的生成方式如下:
聚合方计算 S = &Sigma; i = 1 n S i ;
所有的签名(t,σi)形成的聚合签名为(t,σ)=(t,<R1,L,Rn,S,HP0,HP1>),聚合方把聚合签名发送给验证方。
⑺验证模块
验证方利用系统公钥对聚合签名进行验证。
根据所述系统公钥PK、所述时间段t、消息集合
Figure BDA0000373978160000156
和所述签名(t,σ),计算以下式子
hi=H2(t,mi,ui,Ri)(1≤i≤n)。
令l=tmod2,l'=(t-1)mod2,验证以下等式是否成立
e ^ ( P , S ) = e ^ ( P , &Sigma; i = 1 n h i R i ) &CenterDot; e ^ ( PK , &Sigma; i = 1 n H 2 ( u i ) ) &CenterDot; e ^ ( H P l , &Sigma; i = 1 n H 1 ( u i , i ) ) &CenterDot; e ^ ( H P l &prime; , &Sigma; i = 1 n H 1 ( u i , t - 1 ) ) 若成立,则验证成功。
本发明具有如下优势:
⑴用密钥演化的方法,公钥不变,密钥在每个时间段进行更新。如果攻击者获得了某个时间段用户的密钥,他不能由获得的密钥推出其他时间段的密钥。
⑵引入了两个协助器设备,提高了整个系统防御密钥泄露的能力。若其中一个协助器设备发生密钥泄露,即使某些时间段的临时密钥发生泄露,系统在其他时间段仍是安全的;即使两个协助器设备都发生了泄露,只要不发生临时密钥的泄露,系统在整个时间周期内仍是安全的。
⑶所有的密钥和算法都不涉及整个系统的生命周期,因此,在实际应用中可根据应用的环境,随意的改变系统的时间周期,增强了系统的灵活性。
⑷将基于身份的密码体制引入到聚合签名系统中,用户的公钥就是身份信息,无需存放用户的公钥证书,节省了存储的空间。在本发明中,PKG只生成用户的初始密钥,其他时间段的用户密钥由用户生成,因此,不存在PKG随意伪造用户签名的问题。
⑸在本发明中,所有的用户共用两个协助器设备,而不是每个用户都有两个协助器设备,在算法上减小了整个系统的算法复杂度。
⑹参与聚合的用户的数量n可以根据实际环境改变,增加了系统的灵活性。
所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (10)

1.一种并行密钥隔离的基于身份的聚合签名方法,其特征在于:
Figure FDA0000373978150000016
为参与所述聚合签名方法的n个用户的集合,
Figure FDA0000373978150000017
为n个不同的消息的集合,每个用户Pi(1≤i≤n)选择不同的消息mi(1≤i≤n)进行签名得到σi,并把生成的签名σi发送给聚合方,聚合方能够对接收到的n个独立的签名执行聚合操作,验证方对聚合签名进行验证,确信生成的聚合签名是否来自指定的n个用户;与此同时,每个用户的密钥都会周期性的更新,在每个时间段,两个协助器交替的帮助用户进行密钥的更新,一个时间段用户密钥的泄露不会影响到其他时间段系统的安全性。
2.如权利要求1所述的聚合签名方法,其特征在于,进一步包括,
第一步,并行密钥隔离的基于身份的聚合签名系统的建立步骤;
第二步,密钥生成步骤;
第三步,协助器密钥更新步骤;
第四步,用户密钥更新步骤;
第五步,签名步骤;
第六步,聚合签名生成步骤;
第七步,聚合签名验证步骤。
3.如权利要求1或2所述的聚合签名方法,其特征在于,所述系统建立步骤(第一步)更进一步具体为,
a、选取两个阶均为素数q的乘法群G和GT,设P为群G的一个随机生成元,
Figure FDA0000373978150000011
为双线性映射;
b、H1:{0,1}*×{0,1}*→G,H2:{0,1}*→G和
Figure FDA0000373978150000018
是三个抗碰撞的hash函数;
c、PKG选择
Figure FDA0000373978150000013
作为系统密钥,计算系统公钥为PK=sP;
d、系统公开参数 param = { G , G T , q , P , e ^ , H 1 , H 2 , H 3 PK } .
4.如权利要求1至3所述的聚合签名方法,其特征在于,所述密钥生成步骤(第二步)更进一步具体为,
a、用户Pi发送他的身份信息ui给PKG;
b、随机选取两个协助器密钥
Figure FDA0000373978150000015
计算HP0=HK0·P,HP1=HK1·P;
c、PKG为用户Pi生成部分初始密钥 S S u i , 0 = s &CenterDot; H 2 ( u i ) + H K 1 &CenterDot; H 1 ( u i , - 1 ) + H K 0 &CenterDot; H 1 ( u i , 0 ) ;
d、用户Pi的初始密钥
Figure FDA0000373978150000024
两个协助器的密钥为(HK0,HK1)。
5.如权利要求1至4所述的聚合签名方法,其特征在于,所述协助器密钥更新步骤(第三步)更进一步具体为,
a、协助器设备在时间片段t的更新消息设定为
U K u i , 0 = H K j ( H 1 ( u i , t ) - H 1 ( u i , t - 2 ) ) ;
b、将协助器的更新消息发送给集合P中的每个用户,帮助用户更新用户的临时密钥。
6.如权利要求1至5所述的聚合签名方法,其特征在于:所述用户密钥更新步骤(第四步)更进一步具体为,
每个用户Pi
Figure FDA0000373978150000026
更新自己的临时密钥。
7.如权利要求1至6所述的聚合签名方法,其特征在于:所述签名步骤(第五步)更进一步具体为,
a、选择计算Ri=riP;
b、计算哈希值hi=H3(t,mi,ui,Ri),并令
Figure FDA0000373978150000027
c、输出签名(t,σi)=(t,<Ri,Si,HP0,HP1>)。
8.如权利要求1至7所述的聚合签名方法,其特征在于:所述聚合签名生成步骤(第六步)更进一步具体为,
a、聚合方计算 S = &Sigma; i = 1 n S i ;
b、所有的签名(t,σi)形成的聚合签名为(t,σ)=(t,<R1,L,Rn,S,HP0,HP1>),聚合方把签名发送给验证方。
9.如权利要求1至8所述的聚合签名方法,其特征在于:所述聚合签名验证步骤(第七步)更进一步具体为,
a、验证方计算hi=H2(t,mi,ui,Ri)(1≤i≤n);
b、令l=tmod2,l'=(t-1)mod2,验证以下等式是否成立
e ^ ( P , S ) = e ^ ( P , &Sigma; i = 1 n h i R i ) &CenterDot; e ^ ( PK , &Sigma; i = 1 n H 2 ( u i ) ) &CenterDot; e ^ ( H P l , &Sigma; i = 1 n H 1 ( u i , i ) ) &CenterDot; e ^ ( H P l &prime; , &Sigma; i = 1 n H 1 ( u i , t - 1 ) ) 如果等式成立,则返回“1”;否则,返回“0”。
10.一种并行密钥隔离的基于身份的聚合签名系统,其特征在于,包括:
系统参数生成模块,其用于生成聚合签名系统的公开参数,并将系统的公开参数发送给密钥生成模块、用户密钥更新模块、签名模块、聚合模块和验证模块;
密钥生成模块,其用于生成两个协助器密钥和各个用户的初始密钥,将两个协助器的密钥密钥发送给协助器密钥更新模块,将用户的初始密钥发送用户密钥更新模块和签名模块;
协助器密钥更新模块,其用于生成协助器更新消息,并将生成的将更新消息发送给用户密钥更新模块;
用户密钥更新模块,其用于生成用户在新的时间片段内的临时密钥,并将生成的新的临时密钥发送给签名模块;
签名模块,其用于生成各个用户对不同消息的单个签名,每个用户将生成的签名发送给聚合模块;
聚合模块,其用于将收集到的多个单签名合成一个签名,并将合成的签名发送给验证模块;
验证模块,其用于验证聚合签名的有效性。
CN2013103842596A 2013-08-29 2013-08-29 一种并行密钥隔离的基于身份的聚合签名方法 Pending CN103414731A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013103842596A CN103414731A (zh) 2013-08-29 2013-08-29 一种并行密钥隔离的基于身份的聚合签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013103842596A CN103414731A (zh) 2013-08-29 2013-08-29 一种并行密钥隔离的基于身份的聚合签名方法

Publications (1)

Publication Number Publication Date
CN103414731A true CN103414731A (zh) 2013-11-27

Family

ID=49607717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013103842596A Pending CN103414731A (zh) 2013-08-29 2013-08-29 一种并行密钥隔离的基于身份的聚合签名方法

Country Status (1)

Country Link
CN (1) CN103414731A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107968708A (zh) * 2017-11-10 2018-04-27 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器
CN108429725A (zh) * 2017-02-15 2018-08-21 财团法人资讯工业策进会 验证服务器、验证方法及其电脑存储介质
CN109002365A (zh) * 2018-07-09 2018-12-14 广州大学 一种智能体与消息中间件通信数据认证系统
CN109981288A (zh) * 2019-03-26 2019-07-05 中国人民大学 一种基于聚合签名的细粒度云服务端快速对外证明方法
CN113556237A (zh) * 2021-09-17 2021-10-26 杭州链网科技有限公司 基于聚合多签的阈值签名方法、系统、装置及存储介质
CN114189339A (zh) * 2021-12-07 2022-03-15 贵州亨达集团信息安全技术有限公司 一种支持并行密钥隔离的无证书聚合签名方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
于佳 等: "标准模型下的前向安全多重签名:安全性模型和构造", 《JOURNAL OF SOFTWARE》 *
文毅玲 等: "一个新的基于身份的聚合签名方案", 《计算机科学》 *
杜红珍 等: "一个高效的基于身份的聚合签名方案", 《四川大学学报》 *
翁健: "基于身份的密钥泄露保护机制的研究", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108429725A (zh) * 2017-02-15 2018-08-21 财团法人资讯工业策进会 验证服务器、验证方法及其电脑存储介质
CN107968708A (zh) * 2017-11-10 2018-04-27 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器
CN107968708B (zh) * 2017-11-10 2020-01-17 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器
CN110971414A (zh) * 2017-11-10 2020-04-07 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器
CN109002365A (zh) * 2018-07-09 2018-12-14 广州大学 一种智能体与消息中间件通信数据认证系统
CN109981288A (zh) * 2019-03-26 2019-07-05 中国人民大学 一种基于聚合签名的细粒度云服务端快速对外证明方法
CN109981288B (zh) * 2019-03-26 2021-11-09 中国人民大学 一种基于聚合签名的细粒度云服务端快速对外证明方法
CN113556237A (zh) * 2021-09-17 2021-10-26 杭州链网科技有限公司 基于聚合多签的阈值签名方法、系统、装置及存储介质
CN113556237B (zh) * 2021-09-17 2021-12-17 杭州链网科技有限公司 基于聚合多签的阈值签名方法、系统、装置及存储介质
CN114189339A (zh) * 2021-12-07 2022-03-15 贵州亨达集团信息安全技术有限公司 一种支持并行密钥隔离的无证书聚合签名方法及系统
CN114189339B (zh) * 2021-12-07 2024-01-26 贵州亨达集团信息安全技术有限公司 一种支持并行密钥隔离的无证书聚合签名方法及系统

Similar Documents

Publication Publication Date Title
CN103699851B (zh) 一种面向云存储的远程数据完整性验证方法
Zhao et al. An efficient certificateless aggregate signature scheme for the Internet of Vehicles
Huang et al. Certificateless signatures: new schemes and security models
CN102170352B (zh) 使用具有温特尼茨单次签名的ecdsa的方法
CN103023648B (zh) 基于椭圆曲线离散对数问题的无证书签名方法
CN101252431B (zh) 一种通用的数字签名方案的实现方法
Tso et al. Strongly secure certificateless short signatures
CN102970679B (zh) 基于身份的安全签名方法
CN102983971B (zh) 网络环境中进行用户身份认证的无证书签名方法
Li et al. An efficient short certificate-based signature scheme
CN103765809B (zh) 隐式认证的公钥
CN102811125B (zh) 基于多变量密码体制的无证书多接收者签密方法
CN103414731A (zh) 一种并行密钥隔离的基于身份的聚合签名方法
CN105024994A (zh) 无对运算的安全无证书混合签密方法
CN103733564A (zh) 利用隐式证书链的数字签名
CN104023044A (zh) 一种具有隐私保护的云存储数据轻量级公共审计的方法
Yuan et al. Research on a new signature scheme on blockchain
CN103259662A (zh) 一种新的基于整数分解问题的代理签名及验证方法
CN105187205A (zh) 无证书的基于层次身份基的认证密钥协商方法和协商系统
CN102883321A (zh) 一种面向移动微技的数字签名认证方法
CN111030821B (zh) 一种基于双线性映射技术的联盟链的加密方法
CN103095697A (zh) 一种多重签名生成与验证系统及其方法
CN105227317A (zh) 一种支持认证器隐私的云数据完整性检测方法和系统
CN102638345A (zh) 基于椭圆曲线离散对数困难性假设的daa认证方法及系统
Srivastava et al. Blockchain-envisioned provably secure multivariate identity-based multi-signature scheme for Internet of Vehicles environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20131127