一种基于代理重签名和区块链的跨域方法与流程
未命名
08-05
阅读:99
评论:0
1.本发明涉及密码学技术领域,具体为一种基于代理重签名和区块链的跨域方法。
背景技术:
2.代理重签名方案中存在一个半可信的代理人,掌握重签名密钥的代理人可对受托人的签名进行再签名,从而得到委托人在同一消息上的签名,称为重签名。
3.现有技术中,针对同一个消息,代理人生成的重签名与委托人自己生成的原始签名是等价的,在计算上不可区分,都可用委托人的公钥验证其合法性与有效性。
4.但是,在授权过程中,代理人不能获得受托人或委托人的私钥,不能越权代替他们生成任意消息的签名。因此,代理人是半可信的,有且仅有签名转换的权力。
技术实现要素:
5.本发明的目的在于提供一种基于代理重签名和区块链的跨域方法,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种基于代理重签名和区块链的跨域方法,所述跨域方法包括以下步骤:
7.s1.每个域的信任中心生成密钥,代理系统记录信任中心和公钥的信息;
8.s2.域a和域b的信任中心为域中的用户生成证书;
9.s3.用户a1发送证书以申请访问用户b1的资源;
10.s4.用户b1将a1证书发送至代理系统,代理系统解析证书信息后,获取代理重签名密钥;
11.s5.代理系统对用户a1的证书进行从域a到域b的跨域转换,并将相关的跨域信息记录至区块链;
12.s6.用户b验证转化后的证书是否有效。
13.优选的,每个域的信任中心生成密钥,代理系统记录信任中心和公钥的信息的具体操作如下:
14.s1.1域a的权威中心调用代理重签名的keygen()算法,生成域a的私钥ska和公钥pka,向代理系统公布公钥pka;
15.s1.2代理系统使用区块链中的合约,记录域a的信息及公钥pka;
16.s1.3域b的权威中心调用代理重签名的keygen()算法,生成域b的私钥skb和公钥pkb,向代理系统公布公钥pkb;
17.s1.4代理系统使用区块链中的合约,记录域b的信息及公钥pkb。
18.优选的,域a和域b的信任中心为域中的用户生成证书的具体操作如下:
19.s2.1域a的信任中心检验用户a1的信息m
a1
符合要求后,调用签名算法sign(ska,m
a1
)生成签名sig
a1
,接着用公钥pka、签名sig
a1
、信息m
a1
等其它信息拼接成用户a1的证书cert
a1
,并将cert
a1
发送给用户a1。;
20.s2.2域b的信任中心检验用户b1的信息m
b1
符合要求后,调用签名算法sign(skb,m
b1
)生成签名sig
b1
,接着用公钥pkb、签名sig
b1
、信息m
b1
等其它信息拼接成用户b1的证书cert
b1
,并将cert
b1
发送给用户b1。
21.优选的,用户a1发送证书以申请访问用户b1的资源时,用户a1发送资源请求至用户b1以访问b1服务上的某些资源,并在资源请求中附有证书cert
a1
。
22.优选的,用户b1将a1证书发送至代理系统,代理系统解析证书信息后,获取代理重签名密钥的具体操作如下:
23.s4.1用户b1接收到资源请求后,检测其中的证书cert
a1
包含的域信息非本域信息后,向代理系统发起查询请求,以查询cert
a1
的域信息在代理系统中是否存在:若不存在,则拒绝用户a1的请求;否则,执行步骤4.2;
24.s4.2用户b1将cert
a1
和cert
b1
组成跨域证书转换请求,将跨域证书转换请求发送至代理系统;
25.s4.3代理系统接收到跨域证书转换请求后,解析得是域a至域b的跨域证书转换后,检验证书cert
b1
是否合法,具体操作为调用代理重签名的验证算法verify(pkb,sig
b1
,m
b1
)检验证书cert
b1
中的签名sig
b1
是否正确:若不正确,拒绝用户b1的请求;否则,执行下一步;
26.s4.4代理系统检查本地是否存在由域a至域b的代理重签名密钥,若不存在,执行步骤4.5;否则,执行步骤5.1;
27.s4.5代理系统将证书cert
a1
从跨域证书转换请求中提取出来,并将证书cert
a1
组成重签名密钥生成请求,将重签名密钥生成请求发送至域b的信任中心;
28.s4.6域b的信任中心收到重签名密钥生成请求后,先从中提取出证书cert
a1
,再从证书cert
a1
中提取出公钥pka;
29.s4.7域b的信任中心调用代理重签名的kengen
re
(pka,pkb,skb)算法,生成代理重签名秘钥ka→b,并将代理重签名秘钥ka→b发送给代理系统;
30.s4.8代理系统获得重签名秘钥ka→b后,将重签名秘钥ka→b存储在代理系统的数据库存储中。
31.优选的,代理系统对用户a1的证书进行从域a到域b的跨域转换,并将相关的跨域信息记录至区块链的具体操作为:
32.s5.1代理系统获取重签名秘钥ka→b后,从跨域证书转换请求中提取证书cert
a1
,再从证书cert
a1
中提取出公钥pka、签名sig
a1
和信息m
a1
;
33.s5.2代理系统调用代理重签名的重签名算法resign(ka→b,pka,sig
a1
,m
a1
)生成重签名sig
‘
a1
,并将重签名sig
‘
a1
与信息m
a1
组成新证书certa→b,将新证书certa→b发送至用户b1;
34.s5.3代理系统将用户a1的证书从域a到域b的跨域转换信息记录在区块链中,以供日后审计。
35.优选的,用户b验证转化后的证书是否有效的具体操作如下:
36.s6.1用户b1接收到步骤5.2中代理系统发送的新证书certa→b后,从新证书certa→b中提取出重签名sig
‘
a1
与信息m
a1
;
37.s6.2用户b1验证新证书certa→b是否合法,具体操作为使用域b的信任中心公钥
pkb,调用代理重签名的验证算法verify(pkb,sig
′
a1
,m
a1
)对重签名sig
′
a1
进行验证;若验证不通过,则拒绝用户a1的请求;若验证通过,则将资源请求中对应的资源发送给用户a1。
38.与现有技术相比,本发明的有益效果是:
39.本发明提出的基于代理重签名和区块链的跨域方法,利用代理重签名技术来实现不同用户的跨域,在方案中只有获取到代理重签名密钥的代理系统可以为相应的委托域生成委托签名,从而实现不同域间的证书转换。这在保证了跨域安全的前提下,简化了跨域代理的工作流程。同时,本方案中的代理系统把跨域信息和具体的跨域操作历史记录存储在区块链中,不仅仅使得域中的用户可以获得安全可靠的跨域信息,还有助于事后进行跨域操作的有效审计和追溯。
附图说明
40.图1为本发明方法流程图。
具体实施方式
41.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.实施例一
43.请参阅图1,本发明提供一种技术方案:一种基于代理重签名和区块链的跨域方法,所述跨域方法包括以下步骤:
44.(1)每个域的信任中心生成密钥,代理系统记录信任中心和公钥的信息。
45.1.1域a的权威中心调用代理重签名的keygen()算法,生成域a的私钥ska和公钥pka,向代理系统公布公钥pka。
46.1.2代理系统使用区块链中的合约,记录域a的信息及公钥pka。
47.1.3域b的权威中心调用代理重签名的keygen()算法,生成域b的私钥skb和公钥pkb,向代理系统公布公钥pkb。
48.1.4代理系统使用区块链中的合约,记录域b的信息及公钥pkb。
49.(2)域a和域b的信任中心为域中的用户生成证书。该阶段为跨域系统的用户生成相应的证书,假设域a中的用户a1和域b中的用户b2需要跨域。
50.2.1域a的信任中心检验用户a1的信息m
a1
符合要求后,调用签名算法sign(ska,m
a1
)生成签名sig
a1
。接着用公钥pka、签名sig
a1
、信息m
a1
等其它信息拼接成用户a1的证书cert
a1
,并将cert
a1
发送给用户a1。
51.2.2域b的信任中心检验用户b1的信息m
b1
符合要求后,调用签名算法sign(skb,m
b1
)生成签名sig
b1
。接着用公钥pkb、签名sig
b1
、信息m
b1
等其它信息拼接成用户b1的证书cert
b1
,并将cert
b1
发送给用户b1。
52.(3)用户a1发送证书以申请访问用户b1的资源。
53.3.1用户a1发送资源请求至用户b1以访问b1服务上的某些资源,并在资源请求中
附有证书cert
a1
。
54.(4)用户b1将a1证书发送至代理系统,代理系统解析证书信息后,获取代理重签名密钥。
55.4.1用户b1接收到资源请求后,检测其中的证书cert
a1
包含的域信息非本域信息后,向代理系统发起查询请求,以查询cert
a1
的域信息在代理系统中是否存在:若不存在,则拒绝用户a1的请求;否则,执行步骤4.2。
56.4.2用户b1将cert
a1
和cert
b1
组成跨域证书转换请求,将跨域证书转换请求发送至代理系统。
57.4.3代理系统接收到跨域证书转换请求后,解析得是域a至域b的跨域证书转换后,检验证书cert
b1
是否合法,具体操作为调用代理重签名的验证算法verify(pkb,sig
b1
,m
b1
)检验证书cert
b1
中的签名sig
b1
是否正确:若不正确,拒绝用户b1的请求;否则,执行下一步。
58.4.4代理系统检查本地是否存在由域a至域b的代理重签名密钥,若不存在,执行步骤4.5;否则,执行步骤5.1。
59.4.5代理系统将证书cert
a1
从跨域证书转换请求中提取出来,并将证书cert
a1
组成重签名密钥生成请求,将重签名密钥生成请求发送至域b的信任中心。
60.4.6域b的信任中心收到重签名密钥生成请求后,先从中提取出证书cert
a1
,再从证书cert
a1
中提取出公钥pka。
61.4.7域b的信任中心调用代理重签名的kengen
re
(pka,pkb,skb)算法,生成代理重签名秘钥ka→b,并将代理重签名秘钥ka→b发送给代理系统。
62.4.8代理系统获得重签名秘钥ka→b后,将重签名秘钥ka→b存储在代理系统的数据库存储中。
63.(5)代理系统对用户a1的证书进行从域a到域b的跨域转换,并将相关的跨域信息记录至区块链。
64.5.1代理系统获取重签名秘钥ka→b后,从跨域证书转换请求中提取证书cert
a1
,再从证书cert
a1
中提取出公钥pka、签名sig
a1
和信息m
a1
。
65.5.2代理系统调用代理重签名的重签名算法resign(ka→b,pka,sig
a1
,m
a1
)生成重签名sig
‘
a1
。并将重签名sig
‘
a1
与信息m
a1
组成新证书certa→b,将新证书certa→b发送至用户b1。
66.5.3代理系统将用户a1的证书从域a到域b的跨域转换信息记录在区块链中,以供日后审计。
67.(6)用户b验证转化后的证书是否有效。
68.6.1用户b1接收到步骤5.2中代理系统发送的新证书certa→b后,从新证书certa→b中提取出重签名sig
‘
a1
与信息m
a1
等。
69.6.2用户b1验证新证书certa→b是否合法,具体操作为使用域b的信任中心公钥pkb,调用代理重签名的验证算法verify(pkb,sig
′
a1
,m
a1
)对重签名sig
′
a1
进行验证。若验证不通过,则拒绝用户a1的请求;若验证通过,则将资源请求中对应的资源发送给用户a1。
70.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
技术特征:
1.一种基于代理重签名和区块链的跨域方法,其特征在于:所述跨域方法包括以下步骤:s1.每个域的信任中心生成密钥,代理系统记录信任中心和公钥的信息;s2.域a和域b的信任中心为域中的用户生成证书;s3.用户a1发送证书以申请访问用户b1的资源;s4.用户b1将a1证书发送至代理系统,代理系统解析证书信息后,获取代理重签名密钥;s5.代理系统对用户a1的证书进行从域a到域b的跨域转换,并将相关的跨域信息记录至区块链;s6.用户b验证转化后的证书是否有效。2.根据权利要求1所述的一种基于代理重签名和区块链的跨域方法,其特征在于:每个域的信任中心生成密钥,代理系统记录信任中心和公钥的信息的具体操作如下:s1.1域a的权威中心调用代理重签名的keygen()算法,生成域a的私钥sk
a
和公钥pk
a
,向代理系统公布公钥pk
a
;s1.2代理系统使用区块链中的合约,记录域a的信息及公钥pk
a
;s1.3域b的权威中心调用代理重签名的keygen()算法,生成域b的私钥sk
b
和公钥pk
b
,向代理系统公布公钥pk
b
;s1.4代理系统使用区块链中的合约,记录域b的信息及公钥pk
b
。3.根据权利要求2所述的一种基于代理重签名和区块链的跨域方法,其特征在于:域a和域b的信任中心为域中的用户生成证书的具体操作如下:s2.1域a的信任中心检验用户a1的信息m
a1
符合要求后,调用签名算法sign(sk
a
,m
a1
)生成签名sig
a1
,接着用公钥pk
a
、签名sig
a1
、信息m
a1
等其它信息拼接成用户a1的证书cert
a1
,并将cert
a1
发送给用户a1;s2.2域b的信任中心检验用户b1的信息m
b1
符合要求后,调用签名算法sign(sk
b
,m
b1
)生成签名sig
b1
,接着用公钥pk
b
、签名sig
b1
、信息m
b1
等其它信息拼接成用户b1的证书cert
b1
,并将cert
b1
发送给用户b1。4.根据权利要求3所述的一种基于代理重签名和区块链的跨域方法,其特征在于:用户a1发送证书以申请访问用户b1的资源时,用户a1发送资源请求至用户b1以访问b1服务上的某些资源,并在资源请求中附有证书cert
a1
。5.根据权利要求3所述的一种基于代理重签名和区块链的跨域方法,其特征在于:用户b1将a1证书发送至代理系统,代理系统解析证书信息后,获取代理重签名密钥的具体操作如下:s4.1用户b1接收到资源请求后,检测其中的证书cert
a1
包含的域信息非本域信息后,向代理系统发起查询请求,以查询cert
a1
的域信息在代理系统中是否存在:若不存在,则拒绝用户a1的请求;否则,执行步骤4.2;s4.2用户b1将cert
a1
和cert
b1
组成跨域证书转换请求,将跨域证书转换请求发送至代理系统;s4.3代理系统接收到跨域证书转换请求后,解析得是域a至域b的跨域证书转换后,检验证书cert
b1
是否合法,具体操作为调用代理重签名的验证算法verify(pk
b
,sig
b1
,m
b1
)检
验证书cert
b1
中的签名sig
b1
是否正确:若不正确,拒绝用户b1的请求;否则,执行下一步;s4.4代理系统检查本地是否存在由域a至域b的代理重签名密钥,若不存在,执行步骤4.5;否则,执行步骤5.1;s4.5代理系统将证书cert
a1
从跨域证书转换请求中提取出来,并将证书cert
a1
组成重签名密钥生成请求,将重签名密钥生成请求发送至域b的信任中心;s4.6域b的信任中心收到重签名密钥生成请求后,先从中提取出证书cert
a1
,再从证书cert
a1
中提取出公钥pk
a
;s4.7域b的信任中心调用代理重签名的kengen
re
(pk
a
,pk
b
,sk
b
)算法,生成代理重签名秘钥k
a
→
b
,并将代理重签名秘钥k
a
→
b
发送给代理系统;s4.8代理系统获得重签名秘钥k
a
→
b
后,将重签名秘钥k
a
→
b
存储在代理系统的数据库存储中。6.根据权利要求5所述的一种基于代理重签名和区块链的跨域方法,其特征在于:代理系统对用户a1的证书进行从域a到域b的跨域转换,并将相关的跨域信息记录至区块链的具体操作为:s5.1代理系统获取重签名秘钥k
a
→
b
后,从跨域证书转换请求中提取证书cert
a1
,再从证书cert
a1
中提取出公钥pk
a
、签名sig
a1
和信息m
a1
;s5.2代理系统调用代理重签名的重签名算法resign(k
a
→
b
,pk
a
,sig
a1
,m
a1
)生成重签名sig
‘
a1
,并将重签名sig
‘
a1
与信息m
a1
组成新证书cert
a
→
b
,将新证书cert
a
→
b
发送至用户b1;s5.3代理系统将用户a1的证书从域a到域b的跨域转换信息记录在区块链中,以供日后审计。7.根据权利要求6所述的一种基于代理重签名和区块链的跨域方法,其特征在于:用户b验证转化后的证书是否有效的具体操作如下:s6.1用户b1接收到步骤5.2中代理系统发送的新证书cert
a
→
b
后,从新证书cert
a
→
b
中提取出重签名sig
‘
a1
与信息m
a1
;s6.2用户b1验证新证书cert
a
→
b
是否合法,具体操作为使用域b的信任中心公钥pk
b
,调用代理重签名的验证算法verify(pk
b
,sig
′
a1
,m
a1
)对重签名sig
′
a1
进行验证;若验证不通过,则拒绝用户a1的请求;若验证通过,则将资源请求中对应的资源发送给用户a1。
技术总结
本发明涉及密码学技术领域,具体为一种基于代理重签名和区块链的跨域方法,包括以下步骤:每个域的信任中心生成密钥,代理系统记录信任中心和公钥的信息;域A和域B的信任中心为域中的用户生成证书;用户A1发送证书以申请访问用户B1的资源;有益效果为:本发明提出的基于代理重签名和区块链的跨域方法,利用代理重签名技术来实现不同用户的跨域,在方案中只有获取到代理重签名密钥的代理系统可以为相应的委托域生成委托签名,从而实现不同域间的证书转换。这在保证了跨域安全的前提下,简化了跨域代理的工作流程。跨域代理的工作流程。跨域代理的工作流程。
技术研发人员:孟奇 秦雪娇
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2023.05.29
技术公布日:2023/8/4
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
