发明内容
为了减少密钥隔离签名技术中外围设备密钥泄露问题,我们提出一种具有协助器密钥自更新能力的密钥隔离签名方法及系统,通过增加协助器密钥自更新机制,可以减少协助器密钥泄露的可能性,从而大大增强密钥隔离签名方法的安全性。
本发明提供一种具有协助器密钥自更新能力的密钥隔离签名方法,包括:
签名者根据随机选取的两个参数s0,h0和密码哈希函数H1生成初始的签名者密钥SK0(0时间段的签名者密钥)。在以后的每个时间片段的开始,协助器设备都会给签名者发送一个协助器更新消息SKUi,帮助签名者更新当前时间片段的临时密钥SKi;
协助器设备在帮助签名者更新他的临时密钥的同时,协助器的密钥在每个时间片段也在进行自我更新。在0时间片段,从中随机选取一个参数h0作为协助器的初始密钥HK0,在i时间片段,协助器密钥更新为HKi。在每个时间片段,协助器根据当前的协助器密钥生成更新消息,并发送给签名者;
签名者用密钥SKi对消息m进行签名得到签名σ,验证者可以验证签名的有效性。
其中,验证过程用到双线性映射
签名的生成依赖于哈希函数H
2,i为时间参数,表示整个系统时间内的任意一个时间片段,H
1和H
2是两个密码哈希函数并且满足:
H1:{0,1}*→G1,H2:{0,1}*×G1×{0,1}*→G1。
是双线性映射,G
1是阶为q的乘法群,g是它的生成元,G
2是阶为q的乘法群,q是素数。
所述密钥隔离签名方法进一步具体包括以下步骤:
第一步,密钥生成步骤;
第二步,协助器密钥更新步骤;
第三步,签名者密钥更新步骤;
第四步,签名步骤;
第五步,验证步骤。
所述密钥隔离签名方法更进一步包括以下步骤:
第一步,密钥生成步骤,随机选取参数s0,h0,生成签名者公钥PK,用户初始密钥SK0和协助器初始密钥HK0;
第二步,协助器密钥更新步骤,输入时间参数i和协助器当前密钥HKi,计算新时间段的协助器密钥HKi+1和协助器更新消息SKUi;
第三步,签名者密钥更新步骤,输入时间段参数i,签名者在当前时间段的密钥SKi和协助器更新消息SKUi,计算签名者新的时间段的密钥SKi+1;
第四步,签名步骤,输入时间段参数i,签名者临时密钥SKi和需要签名的消息m,签名者计算消息m的签名σ;
第五步,验证步骤,输入签名者公钥PK,消息m,和签名σ,验证σ是否是签名者对消息m的签名。
所述密钥生成步骤(第一步)中的签名者的公钥,初始密钥和协助器初始密钥是按照如下方式生成的:
第1b步,计算
第1c步,生成公钥PK=(PKS,PKH),签名者的初始密钥是SK0=(s0,US0),协助器初始密钥HK0=h0;
第1d步,输出(PK,SK0,HK0)。
所述协助器密钥更新步骤(第二步)中,协助器更新消息具体按照如下方式生成:
第2b步,计算新时间段的协助器密钥HKi+1=HKi-α和当前时间段的协助器更新消息
第2c步,输出(HKi+1,SKUi)。
所述签名者密钥更新步骤(第三步),签名者新时间段的密钥具体按照如下方式生成:
第3a步,输入时间段参数i,签名者在i时间段的密钥SKi和协助器更新消息SKUi,其中,SKi=(si,USi),SKUi=(α,Ui);
第3b步,计算 si+1=si+α;
第3c步,输出签名者在i+1时间段的密钥SKi+1=(si+1,USi+1)。
所述签名步骤(第四步),根据签名者的密钥,对消息的签名具体按照如下方式生成:
第4a步,输入时间段参数i,签名者在当前时间段的密钥SK
i和需要签名的消息m,任选
第4b步,计算A=gβ,M=H2(i,A,m),B=USi·Mβ;
第4c步,输出签名σ=(i,A,B)。
所述验证步骤(第五步)中对签名的有效性进行验证,具体按照如下方式进行:
第5a步,输入公钥PK=(PKS,PKH),消息m,和消息m的签名σ;
第5b步,计算M=H2(i,A,m);
第5c步,判断以下等式是否成立,
本发明还提供了一种具有协助器密钥自更新能力的密钥隔离签名系统,其包括:
密钥生成模块,通过安全参数k,生成公钥PK,用户初始密钥SK0和协助器初始密钥HK0;
协助器密钥更新模块,通过输入时间参数i和协助器密钥HKi,计算新的协助器密钥HKi+1和协助器更新消息SKUi;
签名者密钥更新模块,通过输入时间参数i,签名者在i时间段的密钥SKi和协助器更新消息SKUi,计算签名者新的密钥SKi+1;
签名模块,通过输入时间参数i,签名者密钥SKi和需要签名的消息m,计算消息m的签名σ;
验证模块,通过输入公钥PK,消息m和消息m的签名σ,验证σ是否是签名者对消息m的签名。
本发明还提供了用于上述具有协助器密钥自更新能力的密钥隔离签名方法的用户设备和协助器设备。
用户设备的操作包括:
签名者初始密钥生成单元,其用于生成用户的初始密钥和公钥;
签名者密钥更新单元,其用于根据时间段i时签名者密钥生成时间段i+1时的签名者密钥;
签名单元,其用于生成时间段i时签名者对消息m的签名。
协助器设备的操作包括:
协助器初始密钥生成单元,其用于生成协助器的初始密钥和公钥;
协助器密钥更新单元,其用于更新协助器的密钥;
协助器更新消息生成单元,其用于当前时间片段的协助器密钥生成协助器更新消息,并发送给用户。
本发明的有益效果:
在本发明中,所提供具有协助器密钥自更新能力的密钥隔离签名方法和系统的安全性比Dodis的方案更高,协助器密钥具有自更新能力,每个时间段的密钥都自我更新,即使攻击者在系统的整个生命周期的某个时间段内攻击了协助器,取了协助器的密钥,攻击者不能在其他时间段代替协助器向用户发送更新消息;所有的密钥具有固定的长度,不随着整个系统生命周期的增长而线性增长。
具体实施方式
本发明提供的具有协助器密钥自更新能力的密钥隔离签名方法和系统是基于如下数学理论:
1.双线性配对
设G
1是阶为q的乘法群,G
2是另一个阶为q的乘法群,若映射
满足以下性质:
1)双线性:对于
满足
基于此,本发明提供一种具有协助器密钥自更新能力的密钥隔离签名方法,包括:
签名者根据随机选取的两个参数s0,h0和密码哈希函数H1生成初始的签名者密钥SK0(0时间段的签名者密钥)。在以后的每个时间片段的开始,协助器设备都会给签名者发送一个协助器更新消息SKUi,帮助签名者更新当前时间片段的临时密钥SKi。
协助器设备在帮助签名者更新他的临时密钥的同时,协助器的密钥在每个时间片段也在进行自我更新。在0时间片段,从
中随机选取一个参数h
0作为协助器的初始密钥HK
0,在i时间片段,协助器密钥更新为HK
i。在每个时间片段,协助器根据当前的协助器密钥生成更新消息,并发送给签名者。
签名者用密钥SKi对消息m进行签名得到签名σ,验证者可以验证签名的有效性。
其中,验证过程用到双线性映射
签名的生成依赖于哈希函数H
2,i为时间参数,表示整个系统时间内的任意一个时间片段,H
1和H
2是两个密码哈希函数并且满足:
H1:{0,1}*→G1,H2:{0,1}*×G1×{0,1}*→G1。
是双线性映射,G1是阶为q的乘法群,g是它的生成元,G2是阶为q的乘法群,q是素数。
所述密钥隔离签名方法进一步包括以下步骤:
第一步,密钥生成步骤,用于生成公钥、签名者初始密钥和协助器初始密钥;
第二步,协助器密钥更新步骤,根据已知时间段i时协助器密钥,生成时间段i+1时协助器密钥,同时生成时间段i时的更新消息,用于更新签名者密钥;
第三步,签名者密钥更新步骤,根据已知时间段i时签名者密钥和协助器生成的更新消息,生成时间段i+1时的签名者密钥;
第四步,签名步骤,根据时间段i时的签名者密钥和消息,生成i时间段签名者对消息的签名;
第五步,验证步骤,根据已知的签名、消息以及签名时间段i,验证此签名是否是签名者在时间段i对此消息的有效签名。
所述密钥隔离签名方法更进一步包括以下步骤:
第一步,密钥生成步骤,随机选取参数s0,h0,生成公钥PK,签名者初始密钥SK0和协助器初始密钥HK0;
第二步,协助器密钥更新步骤,输入时间参数i和协助器密钥HKi,计算新的协助器密钥HKi+1和协助器更新消息SKUi,用于更新签名者的密钥;
第三步,签名者密钥更新步骤,输入时间参数i,签名者密钥SKi和协助器更新消息SKUi,计算签名者新的密钥SKi+1;
第四步,签名步骤,输入时间参数i,签名者密钥SKi和需要签名的消息m,计算消息m在时间i时的签名σ;
第五步,验证步骤,输入公钥PK,消息m,和消息m的签名σ,验证σ是否是签名者对消息m的签名。
所述第一步中的签名者的公钥,初始密钥和协助器初始密钥是按照如下方式生成的,
第1a步,输入安全参数k∈N,随机选取
第1b步,计算
第1c步,生成公钥PK=(PKS,PKH),签名者的初始密钥是SK0=(s0,US0),协助器密钥HK0=h0;
第1d步,输出(PK,SK0,HK0)。
所述协助器密钥更新步骤(第二步)中,协助器更新消息具体按照如下方式生成:
第2b步,计算新时间段的协助器密钥HKi+1=HKi-α和当前时间段的协助器更新消息
第2c步,输出(HKi+1,SKUi)。
所述签名者密钥更新步骤(第三步),签名者新时间段的密钥具体按照如下方式生成:
第3a步,输入时间参数i,签名者在i时间段的密钥SKi和协助器更新消息SKUi,其中,SKi=(si,USi),SKUi=(α,Ui);
第3b步,计算 si+1=si+α;
第3c步,输出签名者在i+1时间段的密钥SKi+1=(si+1,USi+1)。
所述签名步骤(第四步),根据签名者的密钥,对消息的签名具体按照如下方式生成:
第4a步,输入时间参数i,签名者密钥SKi和需要签名的消息m,任选
第4b步,计算A=gβ,M=H2(i,A,m),B=USi·Mβ;
第4c步,输出签名σ=(i,A,B)。
所述验证步骤(第五步)中对签名的有效性进行验证,具体按照如下方式进行:
第5a步,输入签名者公钥PK=(PKS,PKH),消息m,和消息m的签名σ;
第5b步,计算M=H2(i,A,m);
第5c步,判断以下等式是否成立,
进一步,所述具有协助器密钥自更新能力的密钥隔离签名方法仅由上述步骤构成。
本发明还提供了一种具有协助器密钥自更新能力的密钥隔离签名系统,其包括:
密钥生成模块,通过随机选取参数s0,h0,生成公钥PK,用户初始密钥SK0和协助器初始密钥HK0;
协助器密钥更新模块,通过输入时间参数i和协助器密钥HKi,计算新的协助器密钥HKi+1和协助器更新消息SKUi;
签名者密钥更新模块,通过输入时间段参数i,签名者密钥SKi和协助器更新消息SKUi,计算签名者新的密钥SKi+1;
签名模块,通过输入时间参数i,签名者密钥SKi和需要签名的消息m,计算消息m在时间i时的签名σ;
验证模块,通过输入签名者公钥PK,消息m和消息m的签名σ,验证σ是否是签名者对消息m的签名。
进一步,所述具有协助器密钥自更新能力的密钥隔离签名系统仅由上述模块构成。
本发明还提供了用于上述具有协助器密钥自更新能力的密钥隔离签名方法的用户设备和协助器设备。
用户设备的操作包括:
签名者初始密钥生成单元,其用于生成用户的初始密钥和公钥;
签名者密钥更新单元,其用于根据时间段i时签名者密钥生成时间段i+1时的签名者密钥;
签名单元,其用于生成时间段i时签名者对消息m的签名。
协助器设备的操作包括:
协助器初始密钥生成单元,其用于生成协助器的初始密钥和公钥;
协助器密钥更新单元,其用于更新协助器的密钥;
协助器更新消息生成单元,其用于当前时间片段的协助器密钥生成协助器更新消息,并发送给用户。
进一步,所述协助器设备仅由上述单元生成。
以下将结合说明书和附图对本发明做进一步详细说明。
图1为本发明提供的具有协助器密钥自更新能力的密钥隔离签名方法流程图。在本发明中存在两个实体,一个是用户设备,一个是协助器设备。本发明提供的密钥隔离签名方法通过以下步骤来执行。
其中,A10是密钥生成步骤,用于生成公钥、签名者初始密钥和协助器初始密钥。A20是协助器密钥更新步骤,已知时间段i时协助器密钥,生成时间段i+1时协助器密钥,同时生成时间段i时的更新消息,用于更新签名者密钥。A30是签名者密钥更新步骤,已知时间段i时签名者密钥和协助器生成的更新消息,生成时间段i+1时的签名者密钥。A40是签名步骤,根据时间段i时的签名者密钥和消息,生成i时间段签名者对消息的签名。A50是验证步骤,根据已知的签名、消息以及签名时间段i,验证此签名是否是签名者在时间段i对此消息的有效签名。
A10是密钥生成步骤。从
中随机选取两个参数s
0,h
0,其中,
q为素数,s
0为用户的密钥,h
0为协助器的密钥。从协助器获取协助器初始密钥HK
0,根据所述参数s
0,h
0、密码哈希函数H
1,设定用户的初始密钥,协助器公钥和用户的公钥。
具体地,由用户设备生成用户公钥和用户密钥,并定时或者在协助器或业务应用的请求下对用户的密钥进行更新,协助器为物理安全性较高的设备,协助器可以生成协助器密钥、协助器公钥和协助器初始密钥,并定时或者在用户设备的请求下对协助器密钥进行更新。初始时刻可以表示为时间段0。
步骤A10最终返回系统的公钥,用户的在时间段0的密钥(初始密钥)和协助器的初始密钥,表示为(PK,SK0,HK0)。
A20是协助器密钥更新步骤。从
中随机选取参数α,根据时间参数i、随机参数α和协助器密钥HK
i,计算新的协助器密钥HK
i+1。根据随机参数α、密码哈希函数H
1和时间段i、i+1时的协助器密钥HK
i、HK
i+1,计算时间段i时更新消息U
i,则协助器更新消息是SKU
i=(α,U
i)。
具体地,由协助器设备定时更新协助器密钥,可以有效减少协助器密钥泄露的可能性,同时,在每个时间段都生成一个协助器更新消息,协助器更新消息由协助器设备生成,发送给用户设备用于用户密钥的更新。
步骤A20最终返回协助器在时间段i+1时的协助器密钥HKi+1和时间段i时的协助器更新消息SKUi。
A30是签名者密钥更新步骤。根据随机参数α,时间参数i和此时签名者密钥SKi、协助器更新消息SKUi,密码哈希函数H1,计算签名者新的密钥SKi+1。
具体地,用户设备接收到协助器更新消息之后,对签名者密钥进行更新。步骤A30最终返回签名者在时间段i+1时的签名者密钥SKi+1。
A40是签名步骤,从
中随机选取参数β,输入时间参数i,签名者密钥SK
i和需要签名的消息m,根据密码哈希函数H
2计算消息m在时间i时的签名σ=(i,A,B),其中A=g
β,M=H
2(i,A,m),B=US
i·M
β,g是乘法群G
1的生成元,M是对消息m进行哈希函数H
2计算所得。
具体地,用户设备根据时间段i的签名者密钥和需要签名的消息进行签名处理。步骤A40最终返回签名者在时间段i时对消息m的签名σ=(i,A,B)。
A50是验证步骤,验证者首先计算消息m的哈希函数H2结果,根据系统的公钥PK=(PKS,PKH),消息m,和消息m的签名σ,通过验证等式 验证σ是否是签名者对消息m的有效签名。
如果上述等式成立,则说明σ是签名者在时间段i对消息m的有效签名,接受此签名并返回1;否则拒绝签名,并返回0。
图2为本发明提供的协助器设备示意图。如图2所示,本发明提供的协助器设备81具体可以实现本发明任意实施例提供的适用于协助器密钥自更新的密钥隔离签名方法的各个步骤,具体实现过程在此不再赘述。
本发明实施例提供的协助器设备81,具体包括:
协助器初始密钥生成单元21,用于根据从
中选取的参数h
0,计算协助器初始密钥HK
0。
协助器密钥更新单元22,用于根据从中选取的参数α和时间段i时的协助器密钥HKi,计算时间段i+1的协助器密钥HKi+1,初始为时间段0。
协助器更新消息生成单元23,用于根据从
中选取的参数α,间段i时的协助器密钥HK
i和时间段i+1的协助器密钥HK
i+1,计算时间段i的更新消息SKU
i。
图3为本发明实施例提供的用户设备示意图。如图3所示,本发明实施例提供的用户设备82具体可以实现本发明任意实施例提供的适用于协助器密钥自更新的密钥隔离签名方法的各个步骤,具体实现过程在此不再赘述。
本发明实施例提供的用户设备82,具体包括:
签名者初始密钥生成单元31,用于根据从
中选取的参数h
0,s
0,计算签名者初始密钥SK
0,公钥PK。
签名者密钥更新单元32,用于根据时间段i的签名者密钥SKi和更新消息SKUi,计算时间段i+1时签名者密钥SKi+1。
签名单元33,用于根据时间段i时签名者的密钥SKi和消息m,计算时间段i时签名者对消息m的签名σ。
如图1所示本实施例提供的密钥隔离签名方法通过以下步骤来执行。
一种具有协助器密钥自更新能力的密钥隔离签名方法,其中G1是阶为q的乘法群,g是它的生成元,G2是阶为q的乘法群,q是素数。是双线性映射,H1和H2是两个密码哈希函数,满足以下条件:
H1:{0,1}*→G1,H2:{0,1}*×G1×{0,1}*→G1。
(1)密钥生成阶段
用于生成系统公钥、签名者初始密钥和协助器初始密钥。其中,签名者公钥和初始密钥由图3中用户设备82的初始密钥生成单元31生成的,协助器初始密钥是由图2中协助器设备81的初始密钥生成单元21生成的,密钥生成步骤具体描述如下所示:
从
中随机选取两个参数s
0,h
0,生成系统公钥PK,签名者初始密钥SK
0和协助器初始密钥HK
0,其中
q为素数。
(a).输入安全参数k∈N,任选
其中,N为自然数。
(b).计算
(c).生成公钥PK=(PKS,PKH),签名者的初始密钥是SK0=(s0,US0),协助器初始密钥HK0=h0。
(d).输出(PK,SK0,HK0)。
(2)协助器密钥更新阶段
已知时间段i时协助器密钥,生成时间段i+1时协助器密钥,同时生成时间段i时的更新消息,用于更新签名者密钥。其中协助器密钥更新是由图2中协助其设备81的协助器密钥更新单元12实现的,更新消息是由图2中协助器设备81的更新消息单元13生成的,协助器密钥更新步骤具体描述如下所示:
输入时间段参数i和协助器密钥HKi,计算时间段i+1时新的协助器密钥HKi+1,和时间段i时协助器更新消息SKUi。
(b).计算HKi+1=HKi-α,
(c).输出(HKi+1,SKUi)。
(3)签名者密钥更新阶段
已知时间段i时签名者密钥和协助器生成的更新消息,生成时间段i+1时的签名者密钥。其中,签名者密钥更新是由图3中用户设备82的密钥更新单元32实现的,签名者密钥更新步骤具体描述如下:
输入时间段参数i,签名者密钥SKi和协助器更新消息SKUi,计算签名者新的密钥SKi+1。
(a).输入时间段参数i,签名者密钥SKi和协助器更新消息SKUi。其中,SKi=(si,USi),SKUi=(α,Ui)。
(b)计算 si+1=si+α。
(c).输出签名者新的密钥SKi+1=(si+1,USi+1)。
(4)签名阶段
根据时间段i时的签名者密钥和消息,生成i时间段签名者对消息的签名。其中,签名步骤是由图3的用户设备82中签名单元33实现的,签名步骤具体描述如下:
输入时间参数i,签名者密钥SKi和需要签名的消息m,计算消息m在时间i时的签名σ。
(a).输入时间段参数i,签名者密钥SKi和需要签名的消息m,任选
(b).计算A=gβ,M=H2(i,A,m),B=USi·Mβ。
(c).输出签名σ=(i,A,B)。
(5)验证阶段
根据已知的签名、消息以及签名时间段i,验证此签名是否是签名者在时间段i对此消息的有效签名。其中,验证步骤具体描述如下:
输入公钥PK=(PKS,PKH),消息m,和消息m的签名σ,验证σ是否是签名者对消息m的签名。
(a).输入公钥PK=(PKS,PKH),消息m,和消息m的签名σ。
(b).计算M=H2(i,A,m)。
(c).判断以下等式是否成立,
(d).如果等式成立,则接受此签名,返回1,否则,返回0。
4、本发明的优势:
(1)协助器密钥具有自更新能力,每个时间段的密钥都自我更新,即使攻击者在在系统的整个生命周期的某个时间段内攻击了协助器获取了协助器的密钥,攻击者不能在其他时间段代替协助器向用户发送更新消息;
(2)密钥隔离机制不仅能保证密钥泄露之前的安全性又能够保证密钥泄露的安全性,倘若某些时间片段的密钥发生了泄露,并不危害其他时间段的安全性;
(3)本发明中,所有的密钥和签名长度具有固定的长度,不随着整个系统生命周期的增长而线性增长;
(4)算法的效率较高,本发明中的所有算法的复杂度均为O(1),适用应用场景要求安全、高效的环境中。
所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。