高效属性基服务器辅助验证签名方法及系统

文档序号:26750172发布日期:2021-09-25 02:15阅读:200来源:国知局
高效属性基服务器辅助验证签名方法及系统

1.本发明涉及资源受限设备使用安全技术领域,具体涉及一种高效属性基服务器辅助签名验证方法及系统。


背景技术:

2.属性基签名是一类新的密码学原语,即用户的属性满足访问策略时才能生成有效的签名并且签名不会泄露用户的身份信息。然而,存在一些基于门限策略的属性基签名,签名算法被门限所限制,门限的访问策略不能很好对用户的属性进行精确的访问控制。此外,由于验证阶段需要进行一定数量的配对运算,使得验证算法的计算开销增大,造成验证者沉重的计算负担。与指数运算相比,配对运算耗时长,因此现有的abs方案不适合资源受限的设备使用,如rfid和智能卡等。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种高效属性基服务器辅助签名验证方法及系统,在属性基服务器辅助验证签名方案中,服务器辅助用户在签名和验证算法中执行大量计算开销,所提出的方案提供了匿名性和不可伪造性。此外,提出的方法减轻了签名者和验证者的计算开销。
4.为实现上述目的,本发明采用如下技术方案:
5.一种高效属性基服务器辅助验证签名系统的签名方法,包括以下步骤:
6.步骤s1:属性授权端输入安全参数λ,输出系统主密钥mk和公开参数params;
7.步骤s2:属性授权端输入mk,公开参数params和签名端属性ω,生成验证公钥gpk和私钥sk
ω

8.步骤s3:签名端输入私钥sk
ω
,公开参数params,访问策略γ,消息m,输出签名δ;
9.步骤s4:验证端输入公开参数params,转换密钥tk,消息m,签名δ,输出转化签名
10.步骤s5:服务器输入公开参数params,转化签名验证公钥gpk,输出一个中间签名
11.步骤s6:验证端输入公开参数params,中间签名访问策略γ,转换密钥tk,如果签名有效则输出1,否则输出0。
12.进一步的,所述步骤s1具体包括以下步骤:
13.步骤s11:g1和g2为p阶的乘法群,g是g1的生成元。属性授权端随机选择一个a∈z
p
,计算g1=g
a
,其中z
p
={0,1,2,

,p

1};
14.步骤s12:属性授权端随机选择g2,u

,u1,

,u
n
∈g1并且计算z=e(g1,g2),其中主密钥mk=a。公开参数是:params=(p,g1,g2,e,g,g1,g2,u

,u1,

,u
n
,z);
15.进一步的,所述步骤s2中,具体包括以下步骤:
16.步骤s21:属性授权端随机选择计算a2=a

a1;然后随机选择r∈z
p
,计算得到其中
17.步骤s22:关于每个i∈ω,属性授权端随机选择r
i
∈z
p

i
∈z
p
,计算则用户的私钥为sk
ω
=(d
i
,{d
i0
,d
i1
}
i∈ω
);
18.步骤s23:为了生成关于属性树γ的验证公钥gpk,属性授权端选择一个d
x
=k
x

1阶多项式q
x
(
·
),其中k
x
是门限值,q
root
(
·
)=a1是根节点的值,其它节点设置为q
x
(0)=q
parent(x)
(index(x))。如果多项式被计算,关于属性树γ的验证公钥其中i=att(x),x是叶子节点;
19.进一步的,所述步骤s3中,具体包括以下步骤:
20.步骤s31:用户拥有关于属性ω的私钥sk
ω
来生成关于消息m={0,1}
n
的签名,用户随机选择s∈z
p
,计算定义为与属性树上的属性,关于任意用户随机选择r

i
∈z
p
,计算
21.步骤s32:用户输出签名δ=(δ0,δ
′0,{δ
i0

i1
}
i∈ω
);
22.进一步的,所述步骤s4中,用户签名的计算具体包括以下步骤:
23.步骤s41:验证端收到签名δ后,随机选择t∈z
p
作为转换密钥tk,计算转化签名
24.步骤s42:验证端发送转化签名给服务器端。
25.进一步的,所述步骤s5具体包括以下步骤:
26.步骤s51:属性授权端定义一个递归算法
27.来验证签名,其中x是关于树的节点。令i=att(x),如果x表示叶节点,则服务器端从验证端获得转化签名计算
[0028][0029]
步骤s52:如果则服务器端计算
[0030]
[0031]
步骤s53:如果服务器端计算
[0032]
步骤s54:如果x是非叶子节点,则算法被执行如下。对所有关于节点z被计算为其中所有节点z都是节点x的孩子节点。令s
x
表示为有任意k
x
个子节点z集合。令i=index(z)是节点z的索引, s

x
={index(z):z∈s
x
}.服务器端计算:
[0033][0034]
服务器端计算其中t
root
是根节点的递归算法的值。然后输出服务器端发送中间签名给验证端。
[0035]
步骤s55:服务器将中间签名发送给验证端。
[0036]
步骤s6:验证端输入公开参数params,中间签名访问策略γ,转换密钥tk,如果签名有效则输出1,否则输出0。
[0037]
进一步的,所述步骤s6具体包括以下步骤:
[0038]
步骤s61:验证端从服务器端获取中间签名并计算
[0039]
步骤s62:验证端验证等式是否成立。如果签名有效。否则,验证端拒绝签名。
[0040]
一种高效属性基服务器辅助验证签名系统,包括:
[0041]
属性授权端,用于产生系统主密钥mk和公开参数params;还用于根据系统主密钥mk,公开参数params,访问策略γ和签名端属性ω,生成验证公钥gpk和私钥sk
ω

[0042]
签名端,用于根据私钥sk
ω
,公开参数params,访问策略γ,消息m,计算签名δ;
[0043]
服务器,用于根据公开参数params,验证公钥gpk,转化签名计算中间签名
[0044]
验证端,用于根据公开参数params,转换密钥tk,消息m,签名δ,计算转化签名和中间签名还用于根据公开参数params,中间签名访问策略γ,转换密钥tk,验证签名的有效性。
[0045]
本发明与现有技术相比具有以下有益效果:
[0046]
本发明基于属性基签名设计,用户的私钥与一组属性相关联,签名中嵌入了访问策略,如果属性满足访问策略,则用户可以生成有效的签名。验证端确信由一组可能的用户创建特定的签名,这些用户的属性与访问策略相匹配,从而不泄露签名者的身份信息。因
此,提出的方法及系统在数据认证和隐私保护访问控制中具有很强的实用性和广阔的应用前景。
附图说明
[0047]
图1是本发明一实施例中的系统原理框图;
[0048]
图2是本发明一实施例中的属性树示意图。
具体实施方式
[0049]
下面结合附图及实施例对本发明做进一步说明。
[0050]
请参照图1,本发明提供一种高效属性基服务器辅助验证签名系统,包括:
[0051]
属性授权端,用于产生系统主密钥mk和公开参数params;还用于根据系统主密钥mk,公开参数params和签名端属性ω,生成验证公钥gpk和私钥sk
ω
,其中验证公钥gpk关于特定属性树γ生成,属性树表示为一种访问策略;
[0052]
签名端,用于根据私钥sk
ω
,公开参数params,访问策略γ,消息m,计算签名δ;
[0053]
服务器,用于根据公开参数params,验证公钥gpk,转化签名计算中间签名
[0054]
验证端,用于根据公开参数params,转换密钥tk,消息m,签名δ,计算转化签名和中间签名还用于根据公开参数params,中间签名访问策略γ,转换密钥tk,验证签名的有效性。
[0055]
参考图2,在本实施中,属性树:设置一个属性树γ作为一个访问策略,其中每一个非叶子节点由孩子个数和门限值表示。num
x
表示为孩子节点个数,k
x
表示门限值,其中0<k
x
≤num
x
。每一个节点表示关于属性的门限值,其中门限值表示为与门(k
x
=num
x
)和或门(k
x
=1)。每一个孩子节点从1到num
x
进行标记索引。函数index(x)响应与节点x相关的值,其中索引值仅分布到属性树的节点上。函数 parent(x)表示节点x的父节点索引值。树的每一个叶子节点均表示为一个属性且门限值被定义为k
x
=1,函数att(x)表示叶节点x的索引。
[0056]
本实施例还提供一种高效属性基服务器辅助验证签名方法,包括以下步骤:
[0057]
步骤s1:属性授权方输入安全参数λ,输出系统主密钥mk和公开参数params。
[0058]
在本实施例中,所述步骤s1具体包括以下步骤:
[0059]
步骤s11:g1和g2为p阶的乘法群,g是g1的生成元。属性授权端随机选择一个a∈z
p
,计算g1=g
a
,其中z
p
={0,1,2,

,p

1};
[0060]
步骤s12:属性授权端随机选择g2,u

,u1,

,u
n
∈g1并且计算z=e(g1,g2),其中主密钥mk=a。公开参数是:params=(p,g1,g2,e,g,g1,g2,u

,u1,

,u
n
,z);
[0061]
步骤s2:属性授权端输入mk,公开参数params,访问策略γ和签名端属性ω,生成验证公钥gpk和私钥sk
ω

[0062]
在本实施例中,属性授权方使用一组属性集生成用户的私钥sk
ω
和验证公钥gpk,具体包括以下步骤:
[0063]
步骤s21:对于属性授权端随机选择计算a2=a

a1;然后随机选择 r∈z
p
,计算得到其中
[0064]
步骤s22:关于每个i∈ω,属性授权端随机选择r
i
∈z
p

i
∈z
p
计算
则用户的私钥为sk
ω
=(d
i
,{d
i0
,d
i1
}
ω
);
[0065]
步骤s23:为了生成关于特定的属性树γ的验证公钥gpk,授权端选择一个d
x
=k
x

1阶多项式q
x
(
·
),其中k
x
是门限值,q
root
(
·
)=a1是根节点的值,其它节点设置为q
x
(0)=q
parent(x)
(index(x))。如果多项式被计算,关于属性树γ的验证公钥其中i=att(x),x是叶子节点;
[0066]
步骤s3:签名端输入私钥sk
ω
,公开参数params,访问策略γ,消息m,输出签名δ。
[0067]
在本实施例中,签名端使用私钥sk
ω
和属性集合ω,生成消息m的签名δ,具体包括以下步骤:
[0068]
步骤s31:签名端拥有关于属性ω的私钥sk
ω
来生成关于消息m={0,1}
n
的签名,签名端随机选择s∈z
p
,计算定义为与属性树相关联的属性,关于任意签名端随机选择r

i
∈z
p
,计算
[0069]
步骤s32:签名端输出签名δ=(δ0,δ
′0,{δ
i0

i1
}
i∈ω
);
[0070]
步骤s4:验证端输入公开参数params,转换密钥tk,消息m,签名δ,输出转化签名在本实施例中,所述步骤s4具体包括以下步骤:
[0071]
步骤s41:验证端收到签名δ后,随机选择t∈z
p
作为转换密钥tk,计算转化签名
[0072]
步骤s42:验证端发送转化签名给服务器。
[0073]
步骤s5:服务器输入公开参数params,转化签名输出一个中间签名
[0074]
在本实施例中,所述步骤s5具体包括以下步骤:
[0075]
步骤s51:属性授权端定义一个递归算法来验证签名,其中x是关于树的节点,令i=att(x),如果x表示叶节点,则服务器端从验证端获得转化签名计算
[0076]
步骤s52:如果则服务器端计算
[0077]
[0078]
步骤s53:如果服务器端计算
[0079]
步骤s54:如果x是非叶子节点,则算法被执行如下。对所有关于节点z被计算为其中所有节点z都是节点x的孩子节点。令s
x
表示为有任意k
x
个子节点z集合。令i=index(z)是节点z的索引, s

x
={index(z):z∈s
x
}。服务器端计算:
[0080][0081]
服务器端计算其中t
root
是根节点的递归算法的值。然后输出服务器端发送中间签名给验证端。
[0082]
步骤s55:服务器将中间签名发送给验证端。
[0083]
步骤s6:验证者输入公开参数params,中间签名访问策略γ,转换密钥tk,如果签名有效则输出1,否则输出0。
[0084]
步骤s61:验证端从服务器获取中间签名并计算
[0085]
步骤s62:验证端验证等式是否成立。如果签名有效。否则,验证端拒绝签名。
[0086]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0087]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0088]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能。
[0089]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0090]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1