基于商密SM9的属性基在线/离线签名方法与系统

文档序号:31759634发布日期:2022-10-12 02:34阅读:36来源:国知局
基于商密SM9的属性基在线/离线签名方法与系统
基于商密sm9的属性基在线/离线签名方法与系统
技术领域
1.本发明涉及互联网安全技术领域,尤其是基于商密sm9的属性基在线/离线签名方法与系统。


背景技术:

2.物联网技术的发展和普及使得现代生活环境更加友好和便捷,对人们的生活方式产生了重要影响。物联网将电子设备与互联网连接,能够使互联网连接对象使用嵌入式传感器、射频识别、激光扫描器等信息传感设备进行数据的采集和交换。但由于采用无线网络通信,使得物联网更容易遭受各种攻击。因此,为了保护物联网中数据的安全性,有必要在使用数据前提供身份认证功能。属性基签名(abs)是解决上述问题的重要方法,它在隐私保护、访问控制和数据身份验证方面发挥了重要作用。但在abs方案中,一方面,轻量级设备无法承受大量的指数运算或配对运算,需要降低轻量级设备在线签名阶段的计算代价。另一方面,为了实现国家网络空间安全自主可控的发展战略,需要设计符合国密标准的密码方案。


技术实现要素:

3.本发明提出基于商密sm9的属性基在线/离线签名方法与系统,可以降低轻量级设备在线阶段的签名计算代价,并符合商密sm9标识签名标准。
4.本发明采用以下技术方案。
5.基于商密sm9的属性基在线/离线签名系统,所述系统包括属性授权端、签名端和验证端;
6.所述属性授权端根据签名时的安全参数λ,产生主私钥msk和公开参数params;还根据主私钥msk、公开参数params、签名端属性集合ωj和访问结构a,产生签名端公私钥对
7.所述签名端根据属性授权端产生的公开参数params以及签名端私钥产生离线签名σ
off
;还根据公开参数params、签名端属性集ωj、离线签名σ
off
、签名端私钥以及消息m,产生在线签名σ
on

8.所述验证端根据属性授权端产生的公开参数params,签名端公钥对消息m以及签名端产生的在线签名σ
on
来验证签名的有效性。
9.基于商密sm9的属性基在线/离线签名方法,基于以上所述的基于商密sm9的属性基在线/离线签名系统,所述签名方法包括以下步骤:
10.步骤s1:向属性授权端输入安全参数λ,属性授权端输出主私钥msk和公开参数params;
11.步骤s2:向属性授权端输入主私钥msk、公开参数params、签名端属性集ωj和访问
结构a,属性授权端输出签名端公私钥对
12.步骤s3:向签名端输入公开参数params以及签名端私钥签名端输出离线签名σ
off

13.步骤s4:向签名端输入公开参数params、签名端属性集ωj、离线签名σ
off
、签名端私钥以及消息m,签名端输出针对消息m的在线签名σ
on

14.步骤s5:向验证端输入公开参数params,签名端公钥消息m以及在线签名σ
on
;若消息m的签名有效,则验证端输出accept;否则,验证端输出reject。
15.所述步骤s1包括以下步骤:
16.步骤s11:属性授权端输入安全参数λ,生成一个双线性配对元组bp=(g1,g2,g
t
,e,p),其中e:g1×
g2→gt
,p是一个大素数,|p|=λ;
17.属性授权端随机选取g1的生成元p1,g2的生成元p2;
18.属性授权端选取系统属性域u={att1,att2,...,attu},其中1≤i≤u,u=|u|,
19.属性授权端定义算法属性授权端定义算法将属性集ω转换为一个二进制标识id
ω
,其中中定义如下:输入属性集ω,系统属性域u;令id
ω
[i]表示id
ω
的第i位,若atti∈ω,令id
ω
[i]=1;否则,令id
ω
[i]=0;其中1≤i≤u,u=|u|。最后,算法输出id
ω

[0020]
步骤s12:属性授权端随机选取计算p
pub
=αp2,g=e(p1,p
pub
);
[0021]
步骤s13:属性授权端选取两个哈希函数并随机选取1比特私钥生成函数标识hid∈{0,1};
[0022]
步骤s14:属性授权端输出主私钥msk=α和公开参数params=(bp,p1,p2,p
pub
,g,u,hid,h1,h2)
ꢀꢀꢀ
公式一。
[0023]
所述步骤s2具体包括以下步骤:
[0024]
步骤s21:属性授权端输入访问策略a={a1,a2,...,an},其中1≤i≤n,n=|a|,算法签名端属性集主私钥msk以及公开参数params;
[0025]
步骤s22:属性授权端利用算法将访问策略a={a1,a2,...,an}以及签名端属性集ωj转换成二进制标识集合和二进制标识
[0026]
步骤s23:属性授权端随机选取计算签名端私钥其中
[0027][0028]
sk2=rsꢀꢀꢀ
公式三;
[0029]
计算签名端公钥
[0030]
步骤s24:属性授权端输出签名端公私钥对
[0031]
所述步骤s3具体包括以下步骤:
[0032]
步骤s31:签名端输入公开参数params,签名端私钥
[0033]
步骤s32:签名端随机选取计算w=gr,l=sk2·
(r-k)mod p,s=l
·
sk1;
[0034]
步骤s33:签名端输出离线签名σ
off
=(r,k,w,s)。
[0035]
所述步骤s4具体包括以下步骤:
[0036]
步骤s41:签名端输入公开参数params,离线签名σ
off
,签名端私钥签名端属性集ωj以及消息m;
[0037]
步骤s42:签名端利用算法将签名端属性集ωj转换成一个二进制标识
[0038]
步骤s43:签名端计算:h=h2(m||w,p),τ=(r-h)(r-k)-1
mod p,
[0039]
步骤s44:签名端输出在线签名σ
on
=(h,τ,y,s)。
[0040]
所述步骤s5具体包括以下步骤:
[0041]
步骤s51:验证端输入消息签名对(m,σ
on
),签名端公钥以及公开参数params;
[0042]
步骤s52:验证端判断等式是否成立,若不成立,则终止执行;否则继续执行以下步骤;
[0043]
步骤s53:验证端计算t=gh,p=yp2+p
pub
,β=e(τ
·
s,p),w

=β
·
t以及h2=h2(m||w

,p);
[0044]
步骤s54:验证端判断等式:h2=h是否成立。若成立,输出accept,否则输出reject。
[0045]
与现有技术相比,本发明具有以下有益效果:
[0046]
1、本发明基于商密sm9标识签名算法设计,符合国家网络空间安全自主可控的发展战略。
[0047]
2、本发明使用在线离线签名技术使签名端可以将签名分为在线阶段和离线阶段,在未知消息之前,通过将高昂的计算分配给离线阶段而仅保留一些轻量级计算给在线阶段的方式,降低了在线阶段的计算代价。
[0048]
3、本发明的属性基签名方案确保了只有当签名端属性集满足访问策略,则用户可以生成有效的签名。因此,提出的方法及系统在数据认证和隐私保护访问控制中具有很强的实用性和广阔的应用前景。
附图说明
[0049]
下面结合附图和具体实施方式对本发明进一步详细的说明:
[0050]
附图1是本发明的系统架构示意图。
具体实施方式
[0051]
如图所示,基于商密sm9的属性基在线/离线签名系统,所述系统包括属性授权端、
签名端和验证端;
[0052]
所述属性授权端根据签名时的安全参数λ,产生主私钥msk和公开参数params;还根据主私钥msk、公开参数params、签名端属性集合ωj和访问结构a,产生签名端公私钥对
[0053]
所述签名端根据属性授权端产生的公开参数params以及签名端私钥产生离线签名σ
off
;还根据公开参数params、签名端属性集ωj、离线签名σ
off
、签名端私钥以及消息m,产生在线签名σ
on

[0054]
所述验证端根据属性授权端产生的公开参数params,签名端公钥对消息m以及签名端产生的在线签名σ
on
来验证签名的有效性。
[0055]
基于商密sm9的属性基在线/离线签名方法,基于以上所述的基于商密sm9的属性基在线/离线签名系统,所述签名方法包括以下步骤:
[0056]
步骤s1:向属性授权端输入安全参数λ,属性授权端输出主私钥msk和公开参数params;
[0057]
步骤s2:向属性授权端输入主私钥msk、公开参数params、签名端属性集ωj和访问结构a,属性授权端输出签名端公私钥对
[0058]
步骤s3:向签名端输入公开参数params以及签名端私钥签名端输出离线签名σ
off

[0059]
步骤s4:向签名端输入公开参数params、签名端属性集ωj、离线签名σ
off
、签名端私钥以及消息m,签名端输出针对消息m的在线签名σ
on

[0060]
步骤s5:向验证端输入公开参数params,签名端公钥消息m以及在线签名σ
on
;若消息m的签名有效,则验证端输出accept;否则,验证端输出reject。
[0061]
所述步骤s1包括以下步骤:
[0062]
步骤s11:属性授权端输入安全参数λ,生成一个双线性配对元组bp=(g1,g2,g
t
,e,p),其中e:g1×
g2→gt
,p是一个大素数,|p|=λ;
[0063]
属性授权端随机选取g1的生成元p1,g2的生成元p2;
[0064]
属性授权端选取系统属性域u={att1,att2,...,attu},其中1≤i≤u,u=|u|,
[0065]
属性授权端定义算法属性授权端定义算法将属性集ω转换为一个二进制标识id
ω
,其中中定义如下:输入属性集ω,系统属性域u;令id
ω
[i]表示id
ω
的第i位,若atti∈ω,令id
ω
[i]=1;否则,令id
ω
[i]=0;其中1≤i≤u,u=|u|。最后,算法输出id
ω

[0066]
步骤s12:属性授权端随机选取计算p
pub
=αp2,g=e(p1,p
pub
);
[0067]
步骤s13:属性授权端选取两个哈希函数并随机选取1比特私钥生成函数标识hid∈{0,1};
[0068]
步骤s14:属性授权端输出主私钥msk=α和公开参数
params=(bp,p1,p2,p
pub
,g,u,hid,h1,h2)
ꢀꢀꢀ
公式一。
[0069]
所述步骤s2具体包括以下步骤:
[0070]
步骤s21:属性授权端输入访问策略a={a1,a2,...,an},其中1≤i≤n,n=|a|,算法签名端属性集主私钥msk以及公开参数params;
[0071]
步骤s22:属性授权端利用算法将访问策略a={a1,a2,

,an}以及签名端属性集ωj转换成二进制标识集合和二进制标识
[0072]
步骤s23:属性授权端随机选取计算签名端私钥其中
[0073][0074]
sk2=rsꢀꢀꢀ
公式三;
[0075]
计算签名端公钥
[0076]
步骤s24:属性授权端输出签名端公私钥对
[0077]
所述步骤s3具体包括以下步骤:
[0078]
步骤s31:签名端输入公开参数params,签名端私钥
[0079]
步骤s32:签名端随机选取计算w=gr,l=sk2·
(r-k)mod p,s=l
·
sk1;
[0080]
步骤s33:签名端输出离线签名σ
off
=(r,k,w,s)。
[0081]
所述步骤s4具体包括以下步骤:
[0082]
步骤s41:签名端输入公开参数params,离线签名σ
off
,签名端私钥签名端属性集ωj以及消息m;
[0083]
步骤s42:签名端利用算法将签名端属性集ωj转换成一个二进制标识
[0084]
步骤s43:签名端计算:h=h2(m||w,p),τ=(r-h)(r-k)-1
modp,
[0085]
步骤s44:签名端输出在线签名σ
on
=(h,τ,y,s)。
[0086]
所述步骤s5具体包括以下步骤:
[0087]
步骤s51:验证端输入消息签名对(m,σ
on
),签名端公钥以及公开参数params;
[0088]
步骤s52:验证端判断等式是否成立,若不成立,则终止执行;否则继续执行以下步骤;
[0089]
步骤s53:验证端计算t=gh,p=yp2+p
pub
,β=e(τ
·
s,p),w

=β
·
t以及h2=h2(m||w

,p);
[0090]
步骤s54:验证端判断等式:h2=h是否成立。若成立,输出accept,否则输出reject。
[0091]
实施例:
[0092]
本例中的签名过程如下
[0093]
1.签名设备将属性集ωj发送给属性授权机构,属性授权机构通过以下算法计算签名设备的公私钥对
[0094]
(1).利用算法将访问策略a={a1,a2,

,an}以及签名设备属性集ωj转换成二进制标识集合和二进制标识
[0095]
(2).随机选取计算签名端私钥其中,sk2=rs;计算签名端公钥
[0096]
(3).输出签名端公私钥对
[0097]
2.签名设备获得公私钥对后,通过以下算法产生离线签名σ
off

[0098]
(1).随机选取计算w=gr,l=sk2·
(r-k)mod p,s=l
·
sk1;
[0099]
(2).输出离线签名σ
off
=(r,k,w,s)。
[0100]
3.签名设备在产生离线签名σ
off
后,通过以下算法产生在线签名σ
on

[0101]
(1).利用算法将签名设备属性集ωj转换成一个二进制标识
[0102]
(2).计算:h=h2(m||w,p),τ=(r-h)(r-k)-1 mod p,
[0103]
(3).输出在线签名σ
on
=(h,τ,y,s)。
[0104]
4.验证设备在获得消息签名对(m,σ
on
)后,通过以下算法验证签名是否有效:
[0105]
(1).判断等式是否成立,若不成立,则终止执行;否则继续执行;
[0106]
(2).计算t=gh,p=yp2+p
pub
,β=e(τ
·
s,p),w

=β
·
t以及h2=h2(m||w

,p);
[0107]
(3).判断等式:h2=h是否成立。若成立,输出accept,否则输出reject。
[0108]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0109]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0110]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0111]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0112]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1