一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的双向认证混合加密方法与流程

2021-11-24 21:22:00 来源:中国专利 TAG:


1.本发明涉及通信技术领域,特别是涉及一种基于区块链的双向认证混合加密方法。


背景技术:

2.当前混合加密被广泛应用于数据传输过程,使得通信双方能够在无需提前协商密钥的前提下实现高效加密。
3.尽管混合加密存在上述优势,但将混合加密机制直接应用到实际中仍然存在以下两个问题:第一,混合加密没有提供认证性;第二,需要额外的机制确保公钥分发的安全性。
4.为了实现认证性和公钥分发的安全性,当前基于证书的公钥密码体系被广泛应用,其依赖于证书颁发机构(ca)确保公钥分发的安全性,ca将用户身份及其公钥绑定,为每一个合法用户颁发证书,认证其公钥的有效性;用户进行通信时,通过验证对方的证书有效性来进行认证。
5.然而,实际中用户通常需要与大量的服务器进行通信,因此需要管理大量的服务器证书,这对用户来说是一个沉重的负担。例如,当前移动支付环境中,用户仅配备计算和存储能力受限的移动设备,但需要与多个服务器进行保密认证通信以完成支付,管理这些服务器的证书会在用户端造成较长的时延,大幅降低用户体验感。


技术实现要素:

6.本发明的目的在于克服现有技术的不足,提供一种基于区块链的双向认证混合加密方法。
7.本发明的目的是通过以下技术方案来实现的:一种基于区块链的双向认证混合加密方法,包括:
8.s1.系统初始化步骤:根据安全参数确定系统的公共参数、用户的公私钥和区块链账户、以及服务器的公私钥和区块链账户;
9.s2.注册步骤:用户在服务器处进行注册,注册成功后,所述服务器存储用户的区块链账户,所述用户存储服务器的区块链账户;
10.s3.数据加密步骤:用户使用服务器的公钥作为输入执行密钥封装算法,产生一个长随机密钥作为待发送的数据的对称加密密钥,然后使用服务器的公钥加密该对称加密密钥,使用对称加密密钥对数据进行对称加密;
11.s4.交易发布步骤:用户将所述对称加密密钥的密文和所述数据的密文串接为一个比特串,计算该比特串的哈希值,通过用户的区块链账户向服务器的区块链账户发送一笔认证交易,将所述比特串的哈希值整合进该认证交易中;
12.s5.数据发送步骤:用户将所述对称加密密钥的密文、数据的密文和认证交易的交易地址发送给服务器;
13.s6.身份认证步骤:服务器从所述认证交易中提取出用户的区块链账户,并根据用
户的区块链账户对用户进行身份认证,若身份认证失败,则服务器拒绝所述数据;
14.s7.数据完整性验证步骤:服务器从认证交易的数据字段中提取所述比特串的哈希值,根据该比特串的哈希值对收到的密文的完整性进行验证,若完整性验证失败,则服务器拒绝所述数据;
15.s8.数据解密步骤:服务器使用自己的私钥对所述对称加密密钥进行解封装,得到对称加密密钥的明文,然后使用该对称加密密钥对数据的密文进行解密,恢复出数据的明文。
16.优选的,所述s2包括:用户在服务器处进行注册,用户发布一笔交易作为注册交易,从所述用户的区块链账户向所述服务器的区块链账户转账注册费用,服务器存储注册成功的用户的区块链账户,并发布一笔交易作为回执交易,向所述用户的区块链账户转账0代币,所述用户存储服务器的区块链账户。
17.优选的,所述s1包括:
18.s11.根据安全参数确定系统的公共参数集pp={p,g,p,h1,h2,h,enc(
·
),dec(
·
)},其中,p为素数,g是阶为p的循环群,p是群g的生成元,h1,h2和h是安全的哈希函数h1,h2,h:{0,1}
*

z
p
,z
p
是一个阶为素数p的整数环,enc(k,m)表示选择一种安全的对称加密算法、将k作为随机的加密密钥对m进行加密,dec(k,c)表示使用k对c进行解密;
19.s12.用户随机选择作为用户的私钥,计算用户的公钥用户的区块链账户为
20.s13.服务器随机选择作为服务器的私钥,计算服务器的公钥服务器的区块链账户为
21.优选的,所述s2.包括:
22.s21.用户在区块链上发布注册交易tx
reg
,从用户的区块链账户向服务器的区块链账户转账注册费用,注册交易地址为所述注册交易tx
reg
中,data字段为registration,from字段为to字段为value字段为注册费用金额;
23.s22.用户将注册交易地址发送给服务器并发送注册请求;
24.s23.服务器根据收到的注册交易地址定位交易;
25.s24.服务器判断注册交易tx
reg
的to字段是否为判断注册交易tx
reg
的value字段显示的注册费用金额是否达到要求,判断用户是否为非注册用户;若注册交易tx
reg
的to字段为value字段显示的注册费用金额达到要求、以及用户为非注册用户,则认为用户注册成功,服务器存储用户的区块链账户否则服务器拒绝用户的注册请求;
26.s25.服务器在区块链上发布回执交易tx
rec
,从服务器的区块链账户向用户的区块链账户转账0代币,回执交易地址为所述回执交易tx
rec
中data字段设置为registered successfully;
27.s26.服务器将回执交易地址发送给用户
28.s27.用户根据收到的回执交易地址定位交易;
29.s28.用户判断回执交易tx
rec
的from字段是否为判断回执交易tx
rec
的to字段是否为判断回执交易tx
rec
的data字段是否为registered successfully;若,回执交易tx
rec
的from字段为to字段为data字段为registered successfully,则认为服务器注册成功,用户存储服务器的区块链账户
30.优选的,所述s3包括:
31.s31.用户随机选取随机数r∈z
p
,计算中间数得到数据的对称加密密钥k=h(y),计算所述对称加密密钥k的密文
32.s32.用户计算数据的密文c

=enc(k,m),其中m是待发送的数据。
33.优选的,所述s4包括:用户创建一笔认证交易tx,从用户的区块链账户向服务器的区块链账户转账0代币,并将认证交易的data字段设置为对称加密密钥的密文与数据的密文串接后得到的字符串的哈希值h(c||c

),认证交易的交易地址为add
tx

34.优选的,所述s5包括:用户将{c,c

,add
tx
}发送给服务器
35.优选的,所述s6包括:
36.s61.服务器收到{c,c

,add
tx
}后,根据交易地址add
tx
在区块链上定位所述认证交易tx;
37.s62.服务器验证认证交易tx中from字段中包含的用户的区块链账户是否为已注册用户,若为非注册用户,则服务器拒绝所述数据。
38.优选的,所述s7包括:服务器计算哈希值data

=h(c||c

),并从认证交易tx中提取数据字段data,通过验证来验证数据的完整性,若验证不通过,则服务器拒绝该数据。
39.优选的,所述s8包括:服务器对数据的对称加密密钥进行解封装,计算中间数对数据的对称加密密钥进行解封装,计算中间数对称加密密钥k=h(y);服务器使用对称加密密钥k解密c

恢复数据m的明文,m=dec(k,c

)。
40.本发明的有益效果是:本发明的方法通过引入区块链,能够在保留高效加密功能的同时实现用户与服务器的双向认证,且用户与服务器无需管理对方证书。
附图说明
41.图1为本发明的一种流程图;
42.图2为注册交易tx
reg
的一种示意图。
具体实施方式
43.下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的
实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.参阅图1

图2,本实施例提供了一种基于区块链的双向认证混合加密方法:
45.如图1所示,一种基于区块链的双向认证混合加密方法,包括:
46.s1.系统初始化步骤:根据安全参数确定系统的公共参数、用户的公私钥和区块链账户、以及服务器的公私钥和区块链账户。
47.具体的,所述s1包括:
48.s11.根据安全参数确定系统的公共参数集pp={p,g,p,h1,h2,h,enc(
·
),dec(
·
)},其中,p为素数,g是阶为p的循环群,p是群g的生成元,h1,h2和h是安全的哈希函数h1,h2,h:{0,1}
*

z
p
,z
p
是一个阶为素数p的整数环;enc(k,m)表示选择一种安全的对称加密算法、将k作为随机的加密密钥对m进行加密,该对称加密算法的密钥长度为所述安全参数;dec(k,c)表示使用k对c进行解密。
49.s12.用户随机选择作为用户的私钥,计算用户的公钥用户的区块链账户为
50.s13.服务器随机选择作为服务器的私钥,计算服务器的公钥服务器的区块链账户为
51.s2.注册步骤:用户在服务器处进行注册,注册成功后,所述服务器存储用户的区块链账户,所述用户存储服务器的区块链账户。例如,所述s2包括:用户在服务器处进行注册,用户发布一笔交易作为注册交易,从所述用户的区块链账户向所述服务器的区块链账户转账注册费用,服务器存储注册成功的用户的区块链账户,并发布一笔交易作为回执交易,向所述用户的区块链账户转账0代币,所述用户存储服务器的区块链账户。
52.具体的,所述s2.包括:
53.s21.用户在区块链上发布注册交易tx
reg
,从用户的区块链账户向服务器的区块链账户转账注册费用,注册交易地址为所述注册交易tx
reg
中,data字段为registration,from字段为to字段为value字段为注册费用金额,如图2所示。
54.s22.用户将注册交易地址发送给服务器并发送注册请求。
55.s23.服务器根据收到的注册交易地址定位交易。
56.s24.服务器判断注册交易tx
reg
的to字段是否为判断注册交易tx
reg
的value字段显示的注册费用金额是否达到要求,判断用户是否为非注册用户;若注册交易tx
reg
的to字段为value字段显示的注册费用金额达到要求、以及用户为非注册用户,则认为用户注册成功,服务器存储用户的区块链账户否则服务器拒绝用户的注册请求。
57.即,服务器对注册交易tx
reg
进行验证,具体包括:服务器判断注册交易tx
reg
的to字段是否为服务器判断注册交易tx
reg
的value字段显示的注册费用金额是否达到要求,服务器判断用户是否为非注册用户;若验证结果为“注册交易tx
reg
的to字段为注册交易tx
reg
的value字段显示的注册费用金额达到要求,用户为非注册用户”,则认为用户注册成功,此时服务器存储用户的区块链账户否则服务器拒绝用户的注册请求。
58.s25.服务器在区块链上发布回执交易tx
rec
,从服务器的区块链账户向用户的区块链账户转账0代币,回执交易地址为所述回执交易tx
rec
中data字段设置为registered successfully。
59.s26.服务器将回执交易地址发送给用户
60.s27.用户根据收到的回执交易地址定位交易。
61.s28.用户判断回执交易tx
rec
的from字段是否为判断回执交易tx
rec
的to字段是否为判断回执交易tx
rec
的data字段是否为registered successfully;若,回执交易tx
rec
的from字段为to字段为data字段为registered successfully,则认为服务器注册成功,用户存储服务器的区块链账户
62.即,用户对回执交易tx
rec
进行验证,具体包括:用户判断回执交易tx
rec
的from字段是否为用户判断回执交易tx
rec
的to字段是否为用户判断回执交易tx
rec
的data字段是否为registered successfully;若验证结果为“回执交易tx
rec
的from字段为回执交易tx
rec
的to字段为回执交易tx
rec
的data字段为registered successfully”,则认为服务器注册成功,此时用户存储服务器的区块链账户
63.s3.数据加密步骤:用户使用服务器的公钥作为输入执行密钥封装算法,产生一个长随机密钥作为待发送的数据的对称加密密钥,然后使用服务器的公钥加密该对称加密密钥,使用对称加密密钥对数据进行对称加密。
64.具体的,所述s3包括:
65.s31.用户随机选取随机数r∈z
p
,计算中间数得到数据的对称加密密钥k=h(y),计算所述对称加密密钥k的密文
66.s32.用户计算数据的密文c

=enc(k,m),其中m是待发送的数据。
67.s4.交易发布步骤:用户将所述对称加密密钥的密文和所述数据的密文串接为一个比特串,计算该比特串的哈希值,通过用户的区块链账户向服务器的区块链账户发送一笔认证交易,将所述比特串的哈希值整合进该认证交易中。
68.具体的,所述s4包括:用户创建一笔认证交易tx,从用户的区块链账户向服务器的区块链账户转账0代币,并将认证交易的data字段设置为对称加密密钥的
密文与数据的密文串接后得到的字符串的哈希值h(c||c

),认证交易的交易地址为add
tx

69.s5.数据发送步骤:用户将所述对称加密密钥的密文、数据的密文和认证交易的交易地址发送给服务器。
70.具体的,所述s5包括:用户将{c,c

,add
tx
}发送给服务器
71.s6.身份认证步骤:服务器从所述认证交易中提取出用户的区块链账户,并根据用户的区块链账户对用户进行身份认证,若身份认证失败,则服务器拒绝所述数据。
72.具体的,所述s6包括:
73.s61.服务器收到{c,c

,add
tx
}后,根据交易地址add
tx
在区块链上定位所述认证交易tx。
74.s62.服务器验证认证交易tx中from字段中包含的用户的区块链账户是否为已注册用户,若为非注册用户,则服务器拒绝所述数据。
75.s7.数据完整性验证步骤:服务器从认证交易的数据字段中提取所述比特串的哈希值,根据该比特串的哈希值对收到的密文的完整性进行验证,若完整性验证失败,则服务器拒绝所述数据。
76.具体的,所述s7包括:服务器计算哈希值data

=h(c||c

),并从认证交易tx中提取数据字段data,通过验证来验证数据的完整性,若验证不通过,则服务器拒绝该数据。
77.s8.数据解密步骤:服务器使用自己的私钥对所述对称加密密钥进行解封装,得到对称加密密钥的明文,然后使用该对称加密密钥对数据的密文进行解密,恢复出数据的明文。
78.具体的,所述s8包括:服务器对数据的对称加密密钥进行解封装,计算中间数对数据的对称加密密钥进行解封装,计算中间数对称加密密钥k=h(y);服务器使用对称加密密钥k解密c

恢复数据m的明文,m=dec(k,c

)。
79.本发明的方法通过引入区块链,能够在保留高效加密功能的同时实现用户与服务器的双向认证,且用户与服务器无需管理对方证书。具体的,基于公钥加密机制实现密钥封装算法,产生待发送数据的对称加密密钥,并对该对称加密密钥进行公钥加密,这使得双方无需提前协商密钥;对待发送数据进行对称加密,与密钥相比,待发送数据的长度长,使用效率较高的对称加密实现了数据的高效加密。因此,本发明的方法能够在通信双方无需提前协商密钥的前提下实现高效加密。
80.此外,本发明的方法使用区块链账户的公私钥作为用户的公私钥,用户的公钥确定了唯一的账户地址,用户的账户地址与用户身份间存在一对一且确定的关系。由于区块链的安全性,在不知道用户私钥的前提下,其他用户无法冒充该目标用户发布交易。用户发送数据时,向接收方的账户转账,将对称加密密钥的密文及数据的密文的哈希值整合进入交易中,这实现了发送方对接收方的身份认证;接收方通过验证交易中包含的账户地址即可完成对发送方的身份认证。因此,本发明的方法无需证书管理即可实现通信双方的双向认证。
81.以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本
文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献