一种多授权中心的属性基签名方法与流程

文档序号:30078053发布日期:2022-05-18 03:46阅读:264来源:国知局
一种多授权中心的属性基签名方法与流程

1.本发明涉及数字签名领域,更具体地涉及一种多授权中心的属性基签名方法。


背景技术:

2.传统的数字签名机制中,验证密钥与用户身份紧密关联,使得用户的身份隐私暴露给任意的签名验证者。基于属性的签名机制(abs)作为一种新的密码学原理,在实现消息不可伪造性或者完整性的同时又保护了签名者的身份隐私。此时用户的身份信息由一系列属性描述,构造签名的权利则由其拥有的属性集合决定。验证者通过验证签名,只能确定签名者拥有满足谓词策略的属性集合,但是无法确定签名者的具体身份信息。
3.由于它在消息完整性验证和身份是隐私保护方面的兼容性,满足各种性质的属性签名机制被构造出来。然而已有的很多方案都反映出属性签名机制最大的缺陷就是签名生成的时间随着谓词规则的复杂而增加。为了实现尺寸固定即不依赖于所涉及的谓词数量的签名算法,短签名方案的研究成为人们关注的焦点。特别地,javier提出的基于陷门谓词的属性短签名技术,它的签名尺寸不再随着谓词策略的增长而线性增加,在降低带宽消耗方面具有明显的优势。
4.但是,这种属性短签名的方案雇佣单一的授权中心负责管理所有用户的属性集合进行密钥颁发,这不可避免地会给系统的安全和性能带来单点失败。由于授权中心管理整个系统的属性集合以及相关私钥,如果它被恶意攻击,整个系统都会受到影响。更严重的是,授权中心也可以通过生成任意属性私钥的方式伪造任何实体的签名,这对整个系统的安全性提出了严峻的挑战。
5.现有技术中通过多个属性授权中心的方案来解决这个问题,但是,现有的多授权中心属性签名方案中,每个属性授权中心分别负责管理系统属性的一个不相交的子集,并为拥有相应属性的合法用户颁发相关的属性私钥;每一个属性授权中心可以负责多个系统属性的管理,但是每一个系统属性只能归属于某一个属性授权中心负责,因此用户申请属性私钥时需要所有的属性授权中心均保持在线的状态,以保证用户私钥的顺利颁发,对系统扩张性带来了挑战,且并没有从根本上解决中央授权中心带来的单点失败问题;此外,用户的属性私钥也是通过组合从多个属性授权中心处获得的部分私钥重构得到的,并没有改变中央授权中心单独控制系统主密钥的事实,一旦中央授权中心受到攻击,那么整个系统的安全性同样会受到威胁。


技术实现要素:

6.本发明的目的在于提供一种多授权中心的属性基签名方法,以解决单点失败问题,并提高系统的灵活度。
7.本发明在javier门限策略短签名方案和li wei多授权属性加密方案的基础上设计了一个新的多授权中心的属性签名方案,其满足三个要求:一是系统属性集合不再是多个属性授权中心协作管理,任意一个属性授权中心都可以验证用户属性集合的真实性并为
具体的属性集合颁发部分私钥;二是用户的属性私钥不再由单一的授权中心颁发,而是应用门限秘密共享技术,组合多个属性授权中心的部分属性密钥分量重构得到完整密钥,解决了单个授权中心造成的密钥托管问题;三是只有拥有满足门限策略属性密钥的用户才能成功构造签名,在实现消息完整性验证的同时保护了用户的具体身份隐私。
8.本发明提供一种多授权中心的属性基签名方法,包括以下步骤:
9.s1:中央授权中心建立系统的公开参数并完成所有用户和n个属性授权中心的注册,每个属性授权中心均生成一组公私钥对,其中公钥被安全地共享给系统内的任意实体,中央授权中心根据属性授权中心的公钥生成系统的公钥;
10.s2:用户向n个属性授权中心中的k个分别申请与拥有的属性集合关联的属性密钥分量,并对k个属性密钥分量重构得到完整密钥;
11.s3:用户根据完整密钥发送指定谓词策略的签名消息;
12.s4:其他任意实体根据谓词策略判断签名消息是否合法,是则输出1,否则输出o。
13.进一步地,步骤s1进一步包括:
14.s11:中央授权中心以安全参数λ作为输入,首先选择一个可以抵抗共谋攻击的哈希函数其中nm代表了签名消息尺寸的二进制上限,然后选择两个阶数为素数p的乘法循环群g和g
t
,并且定义群上的一个双线性映射e:g
×g→gt
;选定g为g的生成元,并随机选择一组映射参数据此定义函数以将签名消息映射到对应的循环群g上;选择中的d个不同元素创建集合φ={φ1,φ2,

,φd}作为系统的一个默认属性集合;然后设置参数l=2d+1,选择一组向量参数其中每一个其中每一个并且计算得到一个向量参数并且计算得到一个向量参数中央授权中心还额外配置一个数字签名算法ω
sign
以及相应的公私钥对(pk
ca
;sk
ca
),公钥pk
ca
被公开在系统中,私钥sk
ca
仅仅由中央授权中心拥有,通过sk
ca
实现用户和每个属性授权中心的注册;
15.用户的注册过程包括:当任意的用户加入系统时,中央授权中心先进行用户的有效性验证,当验证合法之后,中央授权中心随机选择中一个元素作为用户的全局身份标识uid颁发给用户,并根据签名算法和签名私钥构造相应的数字证书cert.uid;
16.属性授权中心的注册包括:中央授权中心随机选择选择中一个元素作为属性授权中心的全局身份标识aidi颁发给属性授权中心,并根据签名算法和签名私钥构造相应的数字证书cert.aidi。
17.进一步地,步骤s1进一步包括:
18.s12:每个属性授权中心aai(i=1,2,

,n)选择一个随机数αi∈z
p
作为子密钥,此时系统主密钥被表示为接着每个aai(i=1,2,

,n)分别构造一个k-1次多项式fi(x)满足αi=fi(0);根据选定的多项式,每个aai(i=1,2,

,n)为其他的aaj(i=1,
2,

,i-1,i+1,

,n)计算得到相应的子分享s
ij
=fi(aidj),并通过aaj的证书秘密传递给aai;同时aai为自己计算s
ii
=fi(aidi),当接收到来自其他n-1个aaj(j=1,2,

,i-1,i+1,

,n)的子分享s
ji
(j=1,2,

,i-1,i+1,

,n)后,aai计算得到自身的私钥并根据私钥ski计算得到相应的公钥最终在所有属性授权中心初始化之后,每个aai得到一组自身的公私钥对(pki,ski),其中pki被安全地共享给包括中央授权中心在内的任意实体。
19.进一步地,步骤s1进一步包括:
20.s13:中央授权中心选择n个aai公钥中的k个进行重构计算得到系统的公钥:其中,e为定义的双线性映射,g为公开的乘法循环群g的生成元;ski为第i个边缘服务器的私钥;pki为第i个边缘服务器的公钥,k为门限秘密共享机制(k,n)的参数。
21.进一步地,所述系统的公开参数为:
22.其中,g为乘法循环群g的生成元,n是属性授权中心的个数,e(g,g)
α
为计算得到的系统公钥,λ为安全参数,g,g
t
为乘法循环群,φ为系统默认属性集合,f(m)为初始化过程中定义的映射函数,为初始化过程中定义的向量参数,h0为哈希函数。
23.进一步地,步骤s2进一步包括:
24.第i个属性授权中心aai根据第i个属性授权中心的私钥ski以及一组随机参数定义一个隐性的多项式:定义一个隐性的多项式:对于每一个属性ω∈ω,ω为角色属性集合,aai选择一个随机数此时的第i个属性密钥分量此时的第i个属性密钥分量被构造如下:
[0025][0026][0027][0028]
对于每一个属性φ∈φ,φ为默认属性集合,aai选择一个随机数选择一个随机数属性密钥分量被构造如下:
[0029][0030][0031][0032]
当收集到来自k个属性授权中心的密钥分量之后,标记k个密钥分量的集合为ik=(i1,i2,

,ik),然后用户重构得到的属性密钥sk
ω
=(d
ω,0
,d
ω,1
,k
ω,i
)如下:
[0033][0034][0035][0036]
其中,i=1,2,

,l-1;1;
[0037]
同样地,为默认属性集合φ中的每一个元素φ,计算如下的属性密钥sk
φ
=(d
φ,0
,d
φ,1
,k
φ,i
):
[0038][0039][0040][0041]
则最终用户的完整密钥组合为:(sk
ω
=d
ω,0
,d
ω,1
,k
ω,i
|对于每一个ω∈ω,i=1,2,

,l-1;sk
φ
=d
φ,0
,d
φ,1
,k
φ,i
|对于每一个φ∈φ,i=1,2,

,l-1)。
[0042]
进一步地,步骤s3进一步包括:
[0043]
当为消息m选定谓词策略γ=(m,s)时,其中,s是一个尺寸为s=|s|≤d的属性集合,m∈{1,

,s};用户首先计算并将完整密钥进行如下分组({sk
ω
}
ω∈ω
,{sk
φ
}
φ∈φ
);根据字典顺序,首先选择集合φ的前面d-m个元素构造子集φ
d-m
,同时选择任意的子集同时选择任意的子集满足|sm|=m,然后根据下面的多项式定义一个向量参数数如下:
[0044]
[0045]
由于d-m+s+1≤2d+1=l,系数y
d-m+s+2


,y
l
确定为0;
[0046]
对于每个属性ω∈sm,用户根据属性密钥sk
ω
={d
ω,0
,d
ω,1
,k
ω,i
|i=1,2,

,l-1}计算得到参数
[0047][0048]
对于每个属性φ∈φ
d-m
,用户根据属性密钥sk
φ
={d
φ,0
,d
φ,1
,k
φ,i
|i=1,2,

,l-1}计算得到参数
[0049][0050]
根据结果和计算得到两个由属性集合sm和φ
d-m
决定的参数d0和d1:
[0051][0052]
d1=gr[0053]
其中,以及是由集合sm和φ
d-m
共同决定的拉格朗日系数,对于某个ω∈sm,对于某个φ∈φ
d-m
,,
[0054]
将解析为二进制的表达,并将它映射到群g中得到解析为二进制的表达,并将它映射到群g中得到其中,mj∈(0,1),j=1,

,nm;然后拥有满足谓词策略的属性密钥的签名者随机选择z,w∈z
p
,最终完整的签名∑=(σ0,σ1,σ2)被构造如下:
[0055][0056]
进一步地,步骤s4进一步包括:
[0057]
其他任意实体首先根据谓词策略γ解析为(m,s),并计算其他任意实体首先根据谓词策略γ解析为(m,s),并计算然后根据参数m,定义φ的包含d-m元素的子集应用多项式ps(z)设计规则定义向量如果等式成立,将接受签名∑=(σ0,σ1,σ2)为合法签名并输出1,否则的话,则输出为0,其中,h0和hi分别为向量参数中的第1个和第i-1个元素;
u0和uj均为乘法循环群g中随机选择的元素。
[0058]
本发明的多授权中心的属性基签名方法,在现有的陷门谓词短属性签名的基础上,利用多个授权中心管理相同的系统属性集合,而不是每个授权中心管理系统属性集合一个不相交的子集;同时结合门限秘密共享技术,使得系统主密钥由多个属性授权中心联合构造而不再属于任何单一的授权中心,任意单独的属性授权中心都无法获得系统的主密钥,进而无法通过随意生成私钥的方式伪造签名;用户通过组合超过门限数量的属性密钥分量才能重构完整的签名私钥,只有真正拥有满足陷门谓词的私钥,用户才能成功构造属性签名。本发明不仅在消息传输过程中实现完整性验证的同时保护签名者的身份隐私,还从根本上解决了单点失败问题,真正构建了一个分布式的属性签名系统。
附图说明
[0059]
图1为根据本发明实施例的多授权中心的属性基签名方法的流程图。
具体实施方式
[0060]
下面结合附图,给出本发明的较佳实施例,并予以详细描述。
[0061]
本发明实施例中涉及到的实体包括:
[0062]
中央授权中心(ca):作为系统的全局可信证书中心,进行系统的初始化创建以及接受合法用户和属性授权中心的注册;
[0063]
属性授权中心(aa):多个属性授权中心管理相同的系统属性集合,并为每个申请私钥的用户颁发部分属性密钥分量;
[0064]
签名者:拥有私钥的用户;其中,只有合法的签名者才能够构造满足相应谓词策略的签名;
[0065]
验证者:完成签名验证的实体;在不需要任何额外秘密信息的情况下,任意的实体都可以完成签名验证。
[0066]
如图1所示,本发明实施例提供一种多授权中心的属性基签名方法,包括以下步骤:
[0067]
s1:中央授权中心建立系统的公开参数并完成所有用户和n个属性授权中心的注册,每个属性授权中心均生成一组公私钥对,其中公钥被安全地共享给系统内的任意实体,中央授权中心根据属性授权中心的公钥生成系统的公钥;
[0068]
s2:用户向n个属性授权中心中的k个分别申请与拥有的属性集合关联的属性密钥分量,并对k个属性密钥分量重构得到完整密钥;
[0069]
s3:用户根据完整密钥发送指定谓词策略的签名消息;
[0070]
s4:其他任意实体根据谓词策略判断签名消息是否合法,是则输出1,否则输出o。
[0071]
步骤s1为系统初始化,其包括三个步骤:casetup1,aasetup和casetup2。其中,casetup1主要负责中央授权中心(ca)进行系统参数的建立以及所有用户和多个属性授权中心(aa)的注册;在aasetup阶段,所有属性授权中心(aa)进行交互并分享子密钥;最终在casetup2阶段ca重构完整的系统公开参数。具体如下:
[0072]
s11:casetup1
[0073]
ca以安全参数λ作为输入,运行初始化操作。首先选择一个可以抵抗共谋攻击的哈
希函数其中nm代表了签名消息m尺寸的二进制上限,即利用二进制描述消息的最大值,ca继续随机选择两个阶数为素数p的乘法循环群g和g
t
,并且定义群上的一个双线性映射e:g
×g→gt
;选定g为g的生成元,并随机选择一组映射参数由此定义映射函数其中mj={0,1}对于任意的j∈(1,2,

,nm),即m用二进制表示的第j位,而映射函数则是为了将签名消息映射到对应的循环群g上;同时为了简化陷门谓词策略的描述,选择阶数为素数的整数群中的d个不同元素创建集合φ={φ1,φ2,

,φd}作为系统的一个默认属性集合用于后面属性签名的具体构造,当然它的选择情况完全不会影响属性签名的实际结果;然后设置参数l=2d+1,ca继续选择指定每一个并且计算得到一个向量参数量参数除此之外,ca额外配置一个传统的数字签名算法ω
sign
以及相应的公私钥对(pk
ca
;sk
ca
),用于数字证书的签名和验证,其中公钥pk
ca
公开给系统的任何实体,而私钥sk
ca
仅仅由ca掌握用于后面用户和属性授权中心的注册。为了免于混淆,接下来将分开描述这两个注册过程。
[0074]
当任意的用户加入系统时,ca首先进行用户的有效性验证,主要是验证用户之前是否进行过注册申请以抵抗重放攻击和拒绝服务攻击。当用户被验证合法之后,ca将随机选择中一个元素作为用户的全局身份标识uid颁发给它,同时颁发的还有根据签名算法ω
sign
构造的数字证书cert.uid。
[0075]
每个属性授权中心也需要在系统初始化阶段向ca进行注册。同样地,ca随机选择中一个元素作为属性授权中心aai的全局身份标识aidi颁发给它,并且根据签名算法ω
sign
构造相应的数字证书cert.aidi,用来保障后面各个授权中心之间交互通信的安全性。
[0076]
s12:aasetup
[0077]
这个步骤是由所有的属性授权中心协作运行的。所有n个aa交互调用(k,n)门限秘密共享机制如下:
[0078]
假定aai表示第i个属性授权中心(aa),每个aai(i=1,2,

,n)选择一个随机数αi∈z
p
作为它的自选密钥,此时系统主密钥可以被隐晦的表示为接着每个aai(i=1,2,

,n)分别构造一个k-1次多项式fi(x)满足αi=fi(0)。根据选定的多项式,每个aai(i=1,2,

,n)为其他的aaj(i=1,2,

,i-1,i+1,

,n)计算得到相应的子分享s
ij
=fi(aidj),并通过aaj的证书秘密传递给它。同时aai为自己计算s
ii
=fi(aidi)。当接收到来自其他n-1个aaj(j=1,2,

,i-1,i+1,

,n)的子分享s
ji
(j=1,2,

,i-1,i+1,

,n)后,aai很容易计算得到它的私钥(即第i个属性授权中心的私钥)并根据它计算得到相应的公钥在所有属性授权中心初始化之后,每个aai得到一组公私钥对(pki,ski),这里pki被安全地共享给包括ca在内的任意实体。
[0079]
s13:casetup2
[0080]
为了得到系统的公钥,ca任意选择n个aai公钥中的k个进行重构计算得到:作为签名验证的重要参数不再由单一的某个实体决定,我们可以隐晦地表示要参数不再由单一的某个实体决定,我们可以隐晦地表示
[0081]
其中,e为定义的双线性映射,。g为公开的乘法循环群g的生成元;ski为第i个边缘服务器的私钥;pki为第i个边缘服务器的公钥,k为门限秘密共享机制(k,n)的参数,而p(i)表示由边缘服务器的身份标识集合(aid1,aid2,

aidk)决定的拉格朗日系数,这里我们为了描述简便,按照字典顺序进行选择,而实际操作中则是取自n中的任意k个边缘服务器的身份标识集合都会实现。特别需要强调的是,α只是我们的隐晦地的一个表达,实际中并不存在的,实际应用中得到的就是中心授权中心重构的公开参数e(g,g)
α
,这也正是α不再属于任何单一授权中心的原因。
[0082]
最终初始化完成之后,整个系统的公开参数如下:
[0083]
其中,g为乘法循环群g的生成元,n是属性授权中心的个数,e(g,g)
α
为计算得到的系统公钥,λ为安全参数,g,g
t
为乘法循环群,φ为系统默认属性集合,f(m)为初始化过程中定义的映射函数,为初始化过程中定义的向量参数,h0为哈希函数。
[0084]
步骤s2为属性密钥颁发,具体包括:
[0085]
属性密钥的生成由超过门限数量的属性授权中心执行,少于k个,用户将无法构造完整的属性密钥。在这个过程中,任意的属性授权中心不再需要进行交互,每个用户可以根据自己的考量选择k个属性授权中心分别得到相应的属性密钥分量。具体地,以全局身份标识和证书作为输入,用户向某一个属性授权中心提交密钥申请,属性授权中心验证用户的真实性之后,根据用户的具体身份角色颁发相应的属性集合ω,并生成与之有关的属性密钥分量。首先属性授权中心aai根据子密钥ski以及一组随机参数定义一个隐性的多项式:定义一个隐性的多项式:对于角色属性集合ω中的每一个属性ω∈ω,aai选择一个随机数此时的属性密钥分量由三个元素组成,其最终可以被构造如下:
[0086][0087][0088]
其中j=1,2,

,l-1,h1和h
j+1
分别为向量参数的第1个和第j+1个元素。
[0089]
同样地,对于默认属性集合φ中每一个属性φ∈φ,aai选择一个随机数则密钥分量也由三个元素组成,最终可以被构造如下:
[0090][0091][0092]
对于j=1,2,

,l-1
[0093]
当收集到来自k个属性授权中心的属性密钥分量之后,这里不失一般性地将这个集合标记为ik=(i1,i2,

,ik),ik表示收集到的k个属性授权中心中的第k个的属性密钥分量,用户可以重构它的具体属性密钥sk
ω
。同样地它也是由三个元素d
w,0
、d
w,1
和k
w,i
组成,分别针对属性密钥分量的三个对应部分:
[0094][0095][0095][0096][0097][0098]
其中,p(j)是由集合ik决定的拉格朗日系数决定的拉格朗日系数决定的拉格朗日系数对于任意的具体属性ω,它都可以看作一个与之关联的随机数;之关联的随机数;
[0099][0100]
[0101]
其中,i=1,2,

,l-1。
[0102]
应用同样的计算原理,我们可以为默认属性集合φ中的每一个元素φ,计算如下的属性密钥sk
φ
(d
φ,0
,d
φ,1
,k
φ,i
):
[0103][0104][0105][0106]
最终用户的完整密钥组合为:{sk
ω
=(d
ω,0
,d
ω,1
,k
ω,i
|对于每一个ω∈ω,i=1,2,

,l-1);sk
φ
=(d
φ,0
,d
φ,1
,k
φ,i
|对于每一个φ∈φ,i=1,2,

,l-1}。
[0107]
通过应用基于门限的秘密共享机制,每个属性授权中心管理一个子密钥,中央授权中心通过共享的方式重构完整的系统参数,但是无论是中央授权中心还是任意的属性授权中心都无法获得完整的系统密钥,从而从根本上解决了单点失败问题;同时,用户的属性密钥也是通过组合从各个属性授权中心处获得的分量得到,只要超过门限数量的分量就能成功重构,而不要求所有的属性授权中心保持在线为用户颁发某一个具体属性相关的密钥,极大地提高了系统的灵活度。
[0108]
步骤s3为消息签名生成,具体包括:
[0109]
当为消息选定谓词策略γ=(m,s)时,这里s是一个尺寸为s=|s|≤d的随机选择的属性集合,但是必须包好至少m个用户属性,其余的则作为干扰选项随机选择,即,使m∈{1,

,s},m是签名者的一个动态数量选择,代表选择多少个属性密钥构造相应的签名;签名者首先计算签名者首先计算并将完整密钥进行如下分组({sk
ω
}
ω∈ω
,{sk
φ
}
φ∈φ
)。根据字典顺序,首先选择集合φ的前面d-m个元素构造子集φ
d-m
,同时选择任意的子集满足|sm|=m。根据下面的多项式ps(z)可以定义一个向量参数
[0110][0111]
由于d-m+s+1≤2d+1=l,系数y
d-m+s+2


,y
l
则毫无疑问地确定为0。
[0112]
对于每个属性ω∈sm,签名者根据属性密钥sk
ω
={d
ω,0
,d
ω,1
,k
ω,i
|i=1,2,

,l-1}计算得到参数
[0113][0114]
[0115][0116]
对于每个属性φ∈φ
d-m
,同样地,签名者根据属性密钥sk
φ
={d
φ,0
,d
φ,1
,k
φ,i
|i=1,2,

,l-1}计算得到参数
[0117][0118][0119][0120]
根据结果和接着计算得到两个由属性集合sm和φ
d-m
决定的参数d0和d1:
[0121][0122][0123][0124]
这里我们标记这里我们标记以及是由集合sm和φ
d-m
共同决定的拉格朗日系数,对于某个ω∈sm,对于某个φ∈φ
d-m

[0125]
最后将解析为二进制的表达,并根据函数得到解析为二进制的表达,并根据函数得到然后拥有满足谓词策略的属性密钥的签名者随机选择z,w∈z
p
,最终完整的签名∑=(σ0,σ1,σ2)包含三个组成部分,分别被构造如下:
[0126][0127]
步骤s4为签名验证,具体包括:
[0128]
验证者首先根据谓词策略γ解析为(m,s),并计算验证者首先根据谓词策略γ解析为(m,s),并计算然后根据参数m,定义φ的包含d-m元素的子集应用同样的多项式ps(z)设计规则定义向量如果下面的等式成立,将接受签名∑=(σ0,σ1,σ2)为合
法签名并输出1,否则的话,则输出为0:
[0129]
其中,h0和hi分别为向量参数中的第1个和第i-1个元素;u0和uj均为乘法循环群g中随机选择的元素。
[0130]
本发明实施例提供的多授权中心的属性基签名方法,在现有的陷门谓词短属性签名的基础上,利用多个授权中心管理相同的系统属性集合,而不是每个授权中心管理系统属性集合一个不相交的子集;同时结合门限秘密共享技术,使得系统主密钥由多个属性授权中心联合构造而不再属于任何单一的授权中心,任意单独的属性授权中心都无法获得系统的主密钥,进而无法通过随意生成私钥的方式伪造签名;用户通过组合超过门限数量的属性私钥分量才能重构完整的签名密钥,只有真正拥有满足陷门谓词的属性私钥,用户才能成功构造属性签名。本发明不仅在消息传输过程中实现完整性验证的同时保护签名者的身份隐私,还从根本上解决了单点失败问题,真正构建了一个分布式的属性签名系统。
[0131]
以上所述的,仅为本发明的较佳实施例,并非用以限定本发明的范围,本发明的上述实施例还可以做出各种变化。即凡是依据本发明申请的权利要求书及说明书内容所作的简单、等效变化与修饰,皆落入本发明专利的权利要求保护范围。本发明未详尽描述的均为常规技术内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1