CN113688405B - 一种基于区块链的双向认证混合加密方法 - Google Patents

一种基于区块链的双向认证混合加密方法 Download PDF

Info

Publication number
CN113688405B
CN113688405B CN202110771469.5A CN202110771469A CN113688405B CN 113688405 B CN113688405 B CN 113688405B CN 202110771469 A CN202110771469 A CN 202110771469A CN 113688405 B CN113688405 B CN 113688405B
Authority
CN
China
Prior art keywords
user
server
data
transaction
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110771469.5A
Other languages
English (en)
Other versions
CN113688405A (zh
Inventor
张源
李诗雨
刘鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202110771469.5A priority Critical patent/CN113688405B/zh
Publication of CN113688405A publication Critical patent/CN113688405A/zh
Application granted granted Critical
Publication of CN113688405B publication Critical patent/CN113688405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本发明公开了一种基于区块链的双向认证混合加密方法,包括:S1.确定系统的公共参数、用户的公私钥和区块链账户、服务器的公私钥和区块链账户;S2.用户在服务器处进行注册;S3.用户生成待发送的数据的对称加密密钥,加密该对称加密密钥和数据;S4.用户将对称加密密钥和数据的密文串接为一个比特串,并向服务器的区块链账户发送一笔整合有该比特串哈希值的认证交易;S5.用户将对称加密密钥的密文、数据的密文和认证交易的交易地址发送给服务器;S6.服务器对用户进行身份认证;S7.服务器对收到的密文的完整性进行验证;S8.服务器对数据的密文进行解密,恢复出数据的明文。本发明中用户与服务器无需管理对方证书。

Description

一种基于区块链的双向认证混合加密方法
技术领域
本发明涉及通信技术领域,特别是涉及一种基于区块链的双向认证混合加密方法。
背景技术
当前混合加密被广泛应用于数据传输过程,使得通信双方能够在无需提前协商密钥的前提下实现高效加密。
尽管混合加密存在上述优势,但将混合加密机制直接应用到实际中仍然存在以下两个问题:第一,混合加密没有提供认证性;第二,需要额外的机制确保公钥分发的安全性。
为了实现认证性和公钥分发的安全性,当前基于证书的公钥密码体系被广泛应用,其依赖于证书颁发机构(CA)确保公钥分发的安全性,CA将用户身份及其公钥绑定,为每一个合法用户颁发证书,认证其公钥的有效性;用户进行通信时,通过验证对方的证书有效性来进行认证。
然而,实际中用户通常需要与大量的服务器进行通信,因此需要管理大量的服务器证书,这对用户来说是一个沉重的负担。例如,当前移动支付环境中,用户仅配备计算和存储能力受限的移动设备,但需要与多个服务器进行保密认证通信以完成支付,管理这些服务器的证书会在用户端造成较长的时延,大幅降低用户体验感。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于区块链的双向认证混合加密方法。
本发明的目的是通过以下技术方案来实现的:一种基于区块链的双向认证混合加密方法,包括:
S1.系统初始化步骤:根据安全参数确定系统的公共参数、用户的公私钥和区块链账户、以及服务器的公私钥和区块链账户;
S2.注册步骤:用户在服务器处进行注册,注册成功后,所述服务器存储用户的区块链账户,所述用户存储服务器的区块链账户;
S3.数据加密步骤:用户使用服务器的公钥作为输入执行密钥封装算法,产生一个长随机密钥作为待发送的数据的对称加密密钥,然后使用服务器的公钥加密该对称加密密钥,使用对称加密密钥对数据进行对称加密;
S4.交易发布步骤:用户将所述对称加密密钥的密文和所述数据的密文串接为一个比特串,计算该比特串的哈希值,通过用户的区块链账户向服务器的区块链账户发送一笔认证交易,将所述比特串的哈希值整合进该认证交易中;
S5.数据发送步骤:用户将所述对称加密密钥的密文、数据的密文和认证交易的交易地址发送给服务器;
S6.身份认证步骤:服务器从所述认证交易中提取出用户的区块链账户,并根据用户的区块链账户对用户进行身份认证,若身份认证失败,则服务器拒绝所述数据;
S7.数据完整性验证步骤:服务器从认证交易的数据字段中提取所述比特串的哈希值,根据该比特串的哈希值对收到的密文的完整性进行验证,若完整性验证失败,则服务器拒绝所述数据;
S8.数据解密步骤:服务器使用自己的私钥对所述对称加密密钥进行解封装,得到对称加密密钥的明文,然后使用该对称加密密钥对数据的密文进行解密,恢复出数据的明文。
优选的,所述S2包括:用户在服务器处进行注册,用户发布一笔交易作为注册交易,从所述用户的区块链账户向所述服务器的区块链账户转账注册费用,服务器存储注册成功的用户的区块链账户,并发布一笔交易作为回执交易,向所述用户的区块链账户转账0代币,所述用户存储服务器的区块链账户。
优选的,所述S1包括:
S11.根据安全参数确定系统的公共参数集PP={p,G,P,h1,h2,H,Enc(·),Dec(·)},其中,p为素数,G是阶为p的循环群,P是群G的生成元,h1,h2和H是安全的哈希函数h1,h2,H:{0,1}*→Zp,Zp是一个阶为素数p的整数环,Enc(K,M)表示选择一种安全的对称加密算法、将K作为随机的加密密钥对M进行加密,Dec(K,C)表示使用K对C进行解密;
S12.用户
Figure BDA0003153660610000021
随机选择/>
Figure BDA0003153660610000022
作为用户/>
Figure BDA0003153660610000023
的私钥,计算用户/>
Figure BDA0003153660610000024
的公钥
Figure BDA0003153660610000025
用户/>
Figure BDA0003153660610000026
的区块链账户为/>
Figure BDA0003153660610000027
S13.服务器
Figure BDA0003153660610000028
随机选择/>
Figure BDA0003153660610000029
作为服务器/>
Figure BDA00031536606100000210
的私钥,计算服务器/>
Figure BDA00031536606100000211
的公钥
Figure BDA00031536606100000212
服务器/>
Figure BDA00031536606100000213
的区块链账户为/>
Figure BDA00031536606100000214
优选的,所述S2.包括:
S21.用户
Figure BDA00031536606100000215
在区块链上发布注册交易TxReg,从用户的区块链账户/>
Figure BDA00031536606100000216
向服务器/>
Figure BDA00031536606100000217
的区块链账户/>
Figure BDA00031536606100000218
转账注册费用,注册交易地址为/>
Figure BDA00031536606100000219
所述注册交易TxReg中,Data字段为Registration,From字段为/>
Figure BDA00031536606100000220
To字段为/>
Figure BDA00031536606100000221
Value字段为注册费用金额;
S22.用户
Figure BDA00031536606100000222
将注册交易地址/>
Figure BDA00031536606100000223
发送给服务器/>
Figure BDA00031536606100000224
并发送注册请求;
S23.服务器
Figure BDA00031536606100000225
根据收到的注册交易地址/>
Figure BDA00031536606100000226
定位交易;
S24.服务器
Figure BDA00031536606100000227
判断注册交易TxReg的To字段是否为/>
Figure BDA00031536606100000228
判断注册交易TxReg的Value字段显示的注册费用金额是否达到要求,判断用户/>
Figure BDA0003153660610000031
是否为非注册用户;若注册交易TxReg的To字段为/>
Figure BDA0003153660610000032
Value字段显示的注册费用金额达到要求、以及用户/>
Figure BDA0003153660610000033
为非注册用户,则认为用户/>
Figure BDA0003153660610000034
注册成功,服务器/>
Figure BDA0003153660610000035
存储用户/>
Figure BDA0003153660610000036
的区块链账户/>
Figure BDA0003153660610000037
否则服务器/>
Figure BDA0003153660610000038
拒绝用户/>
Figure BDA0003153660610000039
的注册请求;
S25.服务器
Figure BDA00031536606100000310
在区块链上发布回执交易TxRec,从服务器/>
Figure BDA00031536606100000344
的区块链账户向用户/>
Figure BDA00031536606100000311
的区块链账户/>
Figure BDA00031536606100000312
转账0代币,回执交易地址为/>
Figure BDA00031536606100000313
所述回执交易TxRec中Data字段设置为Registered successfully;/>
S26.服务器
Figure BDA00031536606100000314
将回执交易地址/>
Figure BDA00031536606100000315
发送给用户/>
Figure BDA00031536606100000316
S27.用户
Figure BDA00031536606100000317
根据收到的回执交易地址/>
Figure BDA00031536606100000318
定位交易;
S28.用户
Figure BDA00031536606100000319
判断回执交易TxRec的From字段是否为/>
Figure BDA00031536606100000320
判断回执交易TxRec的To字段是否为/>
Figure BDA00031536606100000321
判断回执交易TxRec的Data字段是否为Registered successfully;若,回执交易TxRec的From字段为/>
Figure BDA00031536606100000322
To字段为/>
Figure BDA00031536606100000323
Data字段为Registered successfully,则认为服务器/>
Figure BDA00031536606100000324
注册成功,用户/>
Figure BDA00031536606100000325
存储服务器/>
Figure BDA00031536606100000326
的区块链账户/>
Figure BDA00031536606100000327
优选的,所述S3包括:
S31.用户
Figure BDA00031536606100000328
随机选取随机数r∈Zp,计算中间数/>
Figure BDA00031536606100000329
得到数据的对称加密密钥k=h(y),计算所述对称加密密钥k的密文/>
Figure BDA00031536606100000330
S32.用户
Figure BDA00031536606100000331
计算数据的密文c′=Enc(k,m),其中m是待发送的数据。
优选的,所述S4包括:用户
Figure BDA00031536606100000332
创建一笔认证交易Tx,从用户的区块链账户/>
Figure BDA00031536606100000333
向服务器/>
Figure BDA00031536606100000334
的区块链账户/>
Figure BDA00031536606100000335
转账0代币,并将认证交易的Data字段设置为对称加密密钥的密文与数据的密文串接后得到的字符串的哈希值H(c||c′),认证交易的交易地址为AddTx
优选的,所述S5包括:用户
Figure BDA00031536606100000336
将{c,c′,AddTx}发送给服务器/>
Figure BDA00031536606100000337
优选的,所述S6包括:
S61.服务器
Figure BDA00031536606100000338
收到{c,c′,AddTx}后,根据交易地址AddTx在区块链上定位所述认证交易Tx;
S62.服务器
Figure BDA00031536606100000339
验证认证交易Tx中From字段中包含的用户的区块链账户/>
Figure BDA00031536606100000340
是否为已注册用户,若为非注册用户,则服务器拒绝所述数据。
优选的,所述S7包括:服务器
Figure BDA00031536606100000341
计算哈希值data=H(c||c′),并从认证交易Tx中提取数据字段data,通过验证/>
Figure BDA00031536606100000342
来验证数据的完整性,若验证不通过,则服务器/>
Figure BDA00031536606100000343
拒绝该数据。
优选的,所述S8包括:服务器
Figure BDA0003153660610000041
对数据的对称加密密钥进行解封装,计算中间数
Figure BDA0003153660610000042
Figure BDA0003153660610000043
对称加密密钥k=h(y);服务器/>
Figure BDA0003153660610000044
使用对称加密密钥k解密c′恢复数据m的明文,m=Dec(k,c′)。
本发明的有益效果是:本发明的方法通过引入区块链,能够在保留高效加密功能的同时实现用户与服务器的双向认证,且用户与服务器无需管理对方证书。
附图说明
图1为本发明的一种流程图;
图2为注册交易TxReg的一种示意图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1-图2,本实施例提供了一种基于区块链的双向认证混合加密方法:
如图1所示,一种基于区块链的双向认证混合加密方法,包括:
S1.系统初始化步骤:根据安全参数确定系统的公共参数、用户的公私钥和区块链账户、以及服务器的公私钥和区块链账户。
具体的,所述S1包括:
S11.根据安全参数确定系统的公共参数集PP={p,G,P,h1,h2,H,Enc(·),Dec(·)},其中,p为素数,G是阶为p的循环群,P是群G的生成元,h1,h2和H是安全的哈希函数h1,h2,H:{0,1}*→Zp,Zp是一个阶为素数p的整数环;Enc(K,M)表示选择一种安全的对称加密算法、将K作为随机的加密密钥对M进行加密,该对称加密算法的密钥长度为所述安全参数;Dec(K,C)表示使用K对C进行解密。
S12.用户
Figure BDA0003153660610000045
随机选择/>
Figure BDA0003153660610000046
作为用户/>
Figure BDA0003153660610000047
的私钥,计算用户/>
Figure BDA0003153660610000048
的公钥/>
Figure BDA0003153660610000049
用户/>
Figure BDA00031536606100000410
的区块链账户为/>
Figure BDA00031536606100000411
S13.服务器
Figure BDA00031536606100000412
随机选择/>
Figure BDA00031536606100000413
作为服务器/>
Figure BDA00031536606100000414
的私钥,计算服务器/>
Figure BDA00031536606100000415
的公钥
Figure BDA00031536606100000416
服务器/>
Figure BDA00031536606100000417
的区块链账户为/>
Figure BDA00031536606100000418
S2.注册步骤:用户在服务器处进行注册,注册成功后,所述服务器存储用户的区块链账户,所述用户存储服务器的区块链账户。例如,所述S2包括:用户在服务器处进行注册,用户发布一笔交易作为注册交易,从所述用户的区块链账户向所述服务器的区块链账户转账注册费用,服务器存储注册成功的用户的区块链账户,并发布一笔交易作为回执交易,向所述用户的区块链账户转账0代币,所述用户存储服务器的区块链账户。
具体的,所述S2.包括:
S21.用户
Figure BDA0003153660610000051
在区块链上发布注册交易TxReg,从用户的区块链账户/>
Figure BDA0003153660610000052
向服务器/>
Figure BDA0003153660610000053
的区块链账户/>
Figure BDA0003153660610000054
转账注册费用,注册交易地址为/>
Figure BDA0003153660610000055
所述注册交易TxReg中,Data字段为Registration,From字段为/>
Figure BDA0003153660610000056
To字段为/>
Figure BDA0003153660610000057
Value字段为注册费用金额,如图2所示。
S22.用户
Figure BDA0003153660610000058
将注册交易地址/>
Figure BDA0003153660610000059
发送给服务器/>
Figure BDA00031536606100000552
并发送注册请求。
S23.服务器
Figure BDA00031536606100000510
根据收到的注册交易地址/>
Figure BDA00031536606100000511
定位交易。
S24.服务器
Figure BDA00031536606100000512
判断注册交易TxReg的To字段是否为/>
Figure BDA00031536606100000513
判断注册交易TxReg的Value字段显示的注册费用金额是否达到要求,判断用户/>
Figure BDA00031536606100000514
是否为非注册用户;若注册交易TxReg的To字段为/>
Figure BDA00031536606100000515
Value字段显示的注册费用金额达到要求、以及用户/>
Figure BDA00031536606100000516
为非注册用户,则认为用户/>
Figure BDA00031536606100000517
注册成功,服务器/>
Figure BDA00031536606100000518
存储用户/>
Figure BDA00031536606100000519
的区块链账户/>
Figure BDA00031536606100000520
否则服务器/>
Figure BDA00031536606100000521
拒绝用户/>
Figure BDA00031536606100000522
的注册请求。/>
即,服务器
Figure BDA00031536606100000523
对注册交易TxReg进行验证,具体包括:服务器/>
Figure BDA00031536606100000524
判断注册交易TxReg的To字段是否为/>
Figure BDA00031536606100000525
服务器/>
Figure BDA00031536606100000526
判断注册交易TxReg的Value字段显示的注册费用金额是否达到要求,服务器/>
Figure BDA00031536606100000527
判断用户/>
Figure BDA00031536606100000528
是否为非注册用户;若验证结果为“注册交易TxReg的To字段为
Figure BDA00031536606100000529
注册交易TxReg的Value字段显示的注册费用金额达到要求,用户/>
Figure BDA00031536606100000530
为非注册用户”,则认为用户/>
Figure BDA00031536606100000531
注册成功,此时服务器/>
Figure BDA00031536606100000532
存储用户/>
Figure BDA00031536606100000533
的区块链账户/>
Figure BDA00031536606100000534
否则服务器/>
Figure BDA00031536606100000535
拒绝用户
Figure BDA00031536606100000536
的注册请求。
S25.服务器
Figure BDA00031536606100000553
在区块链上发布回执交易TxRec,从服务器/>
Figure BDA00031536606100000537
的区块链账户向用户/>
Figure BDA00031536606100000538
的区块链账户/>
Figure BDA00031536606100000539
转账0代币,回执交易地址为/>
Figure BDA00031536606100000540
所述回执交易TxRec中Data字段设置为Registered successfully。
S26.服务器
Figure BDA00031536606100000541
将回执交易地址/>
Figure BDA00031536606100000542
发送给用户/>
Figure BDA00031536606100000543
S27.用户
Figure BDA00031536606100000544
根据收到的回执交易地址/>
Figure BDA00031536606100000545
定位交易。
S28.用户
Figure BDA00031536606100000546
判断回执交易TxRec的From字段是否为/>
Figure BDA00031536606100000547
判断回执交易TxRec的To字段是否为/>
Figure BDA00031536606100000548
判断回执交易TxRec的Data字段是否为Registered successfully;若,回执交易TxRec的From字段为/>
Figure BDA00031536606100000549
To字段为/>
Figure BDA00031536606100000550
Data字段为Registered successfully,则认为服务器/>
Figure BDA00031536606100000551
注册成功,用户/>
Figure BDA0003153660610000061
存储服务器/>
Figure BDA0003153660610000062
的区块链账户/>
Figure BDA0003153660610000063
即,用户
Figure BDA0003153660610000064
对回执交易TxRec进行验证,具体包括:用户/>
Figure BDA0003153660610000065
判断回执交易TxRec的From字段是否为/>
Figure BDA0003153660610000066
用户/>
Figure BDA0003153660610000067
判断回执交易TxRec的To字段是否为/>
Figure BDA0003153660610000068
用户/>
Figure BDA0003153660610000069
判断回执交易TxRec的Data字段是否为Registered successfully;若验证结果为“回执交易TxRec的From字段为/>
Figure BDA00031536606100000610
回执交易TxRec的To字段为/>
Figure BDA00031536606100000611
回执交易TxRec的Data字段为Registeredsuccessfully”,则认为服务器/>
Figure BDA00031536606100000612
注册成功,此时用户/>
Figure BDA00031536606100000613
存储服务器/>
Figure BDA00031536606100000614
的区块链账户/>
Figure BDA00031536606100000615
S3.数据加密步骤:用户使用服务器的公钥作为输入执行密钥封装算法,产生一个长随机密钥作为待发送的数据的对称加密密钥,然后使用服务器的公钥加密该对称加密密钥,使用对称加密密钥对数据进行对称加密。
具体的,所述S3包括:
S31.用户
Figure BDA00031536606100000616
随机选取随机数r∈Zp,计算中间数/>
Figure BDA00031536606100000617
得到数据的对称加密密钥k=h(y),计算所述对称加密密钥k的密文/>
Figure BDA00031536606100000618
S32.用户
Figure BDA00031536606100000619
计算数据的密文c′=Enc(k,m),其中m是待发送的数据。
S4.交易发布步骤:用户将所述对称加密密钥的密文和所述数据的密文串接为一个比特串,计算该比特串的哈希值,通过用户的区块链账户向服务器的区块链账户发送一笔认证交易,将所述比特串的哈希值整合进该认证交易中。
具体的,所述S4包括:用户
Figure BDA00031536606100000620
创建一笔认证交易Tx,从用户的区块链账户/>
Figure BDA00031536606100000621
向服务器/>
Figure BDA00031536606100000622
的区块链账户/>
Figure BDA00031536606100000623
转账0代币,并将认证交易的Data字段设置为对称加密密钥的密文与数据的密文串接后得到的字符串的哈希值H(c||c′),认证交易的交易地址为AddTx
S5.数据发送步骤:用户将所述对称加密密钥的密文、数据的密文和认证交易的交易地址发送给服务器。
具体的,所述S5包括:用户
Figure BDA00031536606100000624
将{c,c′,AddTx}发送给服务器/>
Figure BDA00031536606100000625
S6.身份认证步骤:服务器从所述认证交易中提取出用户的区块链账户,并根据用户的区块链账户对用户进行身份认证,若身份认证失败,则服务器拒绝所述数据。
具体的,所述S6包括:
S61.服务器
Figure BDA00031536606100000626
收到{c,c′,AddTx}后,根据交易地址AddTx在区块链上定位所述认证交易Tx。
S62.服务器
Figure BDA00031536606100000627
验证认证交易Tx中From字段中包含的用户的区块链账户/>
Figure BDA00031536606100000628
是否为已注册用户,若为非注册用户,则服务器拒绝所述数据。
S7.数据完整性验证步骤:服务器从认证交易的数据字段中提取所述比特串的哈希值,根据该比特串的哈希值对收到的密文的完整性进行验证,若完整性验证失败,则服务器拒绝所述数据。
具体的,所述S7包括:服务器
Figure BDA0003153660610000077
计算哈希值data=H(c||c′),并从认证交易Tx中提取数据字段data,通过验证/>
Figure BDA0003153660610000071
来验证数据的完整性,若验证不通过,则服务器/>
Figure BDA0003153660610000072
拒绝该数据。
S8.数据解密步骤:服务器使用自己的私钥对所述对称加密密钥进行解封装,得到对称加密密钥的明文,然后使用该对称加密密钥对数据的密文进行解密,恢复出数据的明文。
具体的,所述S8包括:服务器
Figure BDA0003153660610000076
对数据的对称加密密钥进行解封装,计算中间数
Figure BDA0003153660610000073
Figure BDA0003153660610000074
对称加密密钥k=h(y);服务器/>
Figure BDA0003153660610000075
使用对称加密密钥k解密c′恢复数据m的明文,m=Dec(k,c′)。
本发明的方法通过引入区块链,能够在保留高效加密功能的同时实现用户与服务器的双向认证,且用户与服务器无需管理对方证书。具体的,基于公钥加密机制实现密钥封装算法,产生待发送数据的对称加密密钥,并对该对称加密密钥进行公钥加密,这使得双方无需提前协商密钥;对待发送数据进行对称加密,与密钥相比,待发送数据的长度长,使用效率较高的对称加密实现了数据的高效加密。因此,本发明的方法能够在通信双方无需提前协商密钥的前提下实现高效加密。
此外,本发明的方法使用区块链账户的公私钥作为用户的公私钥,用户的公钥确定了唯一的账户地址,用户的账户地址与用户身份间存在一对一且确定的关系。由于区块链的安全性,在不知道用户私钥的前提下,其他用户无法冒充该目标用户发布交易。用户发送数据时,向接收方的账户转账,将对称加密密钥的密文及数据的密文的哈希值整合进入交易中,这实现了发送方对接收方的身份认证;接收方通过验证交易中包含的账户地址即可完成对发送方的身份认证。因此,本发明的方法无需证书管理即可实现通信双方的双向认证。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (7)

1.一种基于区块链的双向认证混合加密方法,其特征在于,包括:
S1.系统初始化步骤:根据安全参数确定系统的公共参数、用户的公私钥和区块链账户、以及服务器的公私钥和区块链账户;
S2.注册步骤:用户在服务器处进行注册,注册成功后,所述服务器存储用户的区块链账户,所述用户存储服务器的区块链账户;
S3.数据加密步骤:用户使用服务器的公钥作为输入执行密钥封装算法,产生一个长随机密钥作为待发送的数据的对称加密密钥,然后使用服务器的公钥加密该对称加密密钥,使用对称加密密钥对数据进行对称加密;
S4.交易发布步骤:用户将所述对称加密密钥的密文和所述数据的密文串接为一个比特串,计算该比特串的哈希值,通过用户的区块链账户向服务器的区块链账户发送一笔认证交易,将所述比特串的哈希值整合进该认证交易中;
S5.数据发送步骤:用户将所述对称加密密钥的密文、数据的密文和认证交易的交易地址发送给服务器;
S6.身份认证步骤:服务器从所述认证交易中提取出用户的区块链账户,并根据用户的区块链账户对用户进行身份认证,若身份认证失败,则服务器拒绝所述数据;
S7.数据完整性验证步骤:服务器从认证交易的数据字段中提取所述比特串的哈希值,根据该比特串的哈希值对收到的密文的完整性进行验证,若完整性验证失败,则服务器拒绝所述数据;
S8.数据解密步骤:服务器使用自己的私钥对所述对称加密密钥进行解封装,得到对称加密密钥的明文,然后使用该对称加密密钥对数据的密文进行解密,恢复出数据的明文;
所述S1包括:
S11.根据安全参数确定系统的公共参数集PP={p,G,P,h1,h2,H,Enc(·),Dec(·)},其中,p为素数,G是阶为p的循环群,P是群G的生成元,h1,h2和H是安全的哈希函数h1,h2,H:{0,1}*→Zp,Zp是一个阶为素数p的整数环,Enc(K,M)表示选择一种安全的对称加密算法、将K作为随机的加密密钥对M进行加密,Dec(K,C)表示使用K对C进行解密;
S12.用户
Figure FDA0004072129360000011
随机选择/>
Figure FDA0004072129360000012
作为用户/>
Figure FDA0004072129360000013
的私钥,计算用户/>
Figure FDA0004072129360000014
的公钥/>
Figure FDA0004072129360000015
用户/>
Figure FDA0004072129360000016
的区块链账户为/>
Figure FDA0004072129360000017
S13.服务器
Figure FDA0004072129360000018
随机选择/>
Figure FDA0004072129360000019
作为服务器/>
Figure FDA00040721293600000110
的私钥,计算服务器/>
Figure FDA00040721293600000111
的公钥
Figure FDA00040721293600000115
服务器/>
Figure FDA00040721293600000113
的区块链账户为/>
Figure FDA00040721293600000114
所述S2包括:
S21.用户
Figure FDA0004072129360000021
在区块链上发布注册交易TxReg,从用户的区块链账户/>
Figure FDA0004072129360000022
向服务器/>
Figure FDA0004072129360000023
的区块链账户/>
Figure FDA0004072129360000024
转账注册费用,注册交易地址为/>
Figure FDA0004072129360000025
所述注册交易TxReg中,Data字段为Registration,From字段为/>
Figure FDA0004072129360000026
To字段为/>
Figure FDA0004072129360000027
Value字段为注册费用金额;
S22.用户
Figure FDA0004072129360000028
将注册交易地址/>
Figure FDA0004072129360000029
发送给服务器/>
Figure FDA00040721293600000210
并发送注册请求;
S23.服务器
Figure FDA00040721293600000211
根据收到的注册交易地址/>
Figure FDA00040721293600000212
定位交易;
S24.服务器
Figure FDA00040721293600000213
判断注册交易TxReg的To字段是否为/>
Figure FDA00040721293600000214
判断注册交易TxReg的Value字段显示的注册费用金额是否达到要求,判断用户/>
Figure FDA00040721293600000215
是否为非注册用户;若注册交易TxReg的To字段为/>
Figure FDA00040721293600000216
Value字段显示的注册费用金额达到要求、以及用户/>
Figure FDA00040721293600000217
为非注册用户,则认为用户/>
Figure FDA00040721293600000218
注册成功,服务器/>
Figure FDA00040721293600000219
存储用户/>
Figure FDA00040721293600000220
的区块链账户/>
Figure FDA00040721293600000221
否则服务器/>
Figure FDA00040721293600000222
拒绝用户/>
Figure FDA00040721293600000223
的注册请求;
S25.服务器
Figure FDA00040721293600000224
在区块链上发布回执交易TxRec,从服务器/>
Figure FDA00040721293600000225
的区块链账户向用户/>
Figure FDA00040721293600000226
的区块链账户/>
Figure FDA00040721293600000227
转账0代币,回执交易地址为/>
Figure FDA00040721293600000228
所述回执交易TxRec中Data字段设置为Registered successfully;
S26.服务器
Figure FDA00040721293600000229
将回执交易地址/>
Figure FDA00040721293600000230
发送给用户/>
Figure FDA00040721293600000231
S27.用户
Figure FDA00040721293600000232
根据收到的回执交易地址/>
Figure FDA00040721293600000233
定位交易;
S28.用户
Figure FDA00040721293600000234
判断回执交易TxRec的From字段是否为/>
Figure FDA00040721293600000235
判断回执交易TxRec的To字段是否为/>
Figure FDA00040721293600000236
判断回执交易TxRec的Data字段是否为Registered successfully;若,回执交易TxRec的From字段为/>
Figure FDA00040721293600000237
To字段为/>
Figure FDA00040721293600000238
Data字段为Registered successfully,则认为服务器/>
Figure FDA00040721293600000239
注册成功,用户/>
Figure FDA00040721293600000240
存储服务器/>
Figure FDA00040721293600000241
的区块链账户/>
Figure FDA00040721293600000242
2.根据权利要求1所述的一种基于区块链的双向认证混合加密方法,其特征在于,所述S3包括:
S31.用户
Figure FDA00040721293600000243
随机选取随机数r∈Zp,计算中间数/>
Figure FDA00040721293600000244
得到数据的对称加密密钥k=h(y),计算所述对称加密密钥k的密文/>
Figure FDA00040721293600000245
S32.用户
Figure FDA00040721293600000246
计算数据的密文c′=Enc(k,m),其中m是待发送的数据。
3.根据权利要求2所述的一种基于区块链的双向认证混合加密方法,其特征在于,所述S4包括:用户
Figure FDA00040721293600000247
创建一笔认证交易Tx,从用户的区块链账户/>
Figure FDA00040721293600000248
向服务器/>
Figure FDA00040721293600000249
的区块链账户
Figure FDA00040721293600000250
转账0代币,并将认证交易的Data字段设置为对称加密密钥的密文与数据的密文串接后得到的字符串的哈希值H(c||c′),认证交易的交易地址为AddTx
4.根据权利要求3所述的一种基于区块链的双向认证混合加密方法,其特征在于,所述S5包括:用户
Figure FDA0004072129360000031
将{c,c′,AddTx}发送给服务器/>
Figure FDA0004072129360000032
5.根据权利要求4所述的一种基于区块链的双向认证混合加密方法,其特征在于,所述S6包括:
S61.服务器
Figure FDA0004072129360000033
收到{c,c′,AddTx}后,根据交易地址AddTx在区块链上定位所述认证交易Tx;
S62.服务器
Figure FDA0004072129360000034
验证认证交易Tx中From字段中包含的用户的区块链账户/>
Figure FDA00040721293600000311
是否为已注册用户,若为非注册用户,则服务器拒绝所述数据。
6.根据权利要求5所述的一种基于区块链的双向认证混合加密方法,其特征在于,所述S7包括:服务器
Figure FDA00040721293600000312
计算哈希值data=H(c||c′),并从认证交易Tx中提取数据字段data,通过验证/>
Figure FDA0004072129360000035
来验证数据的完整性,若验证不通过,则服务器/>
Figure FDA0004072129360000036
拒绝该数据。
7.根据权利要求6所述的一种基于区块链的双向认证混合加密方法,其特征在于,所述S8包括:服务器
Figure FDA0004072129360000037
对数据的对称加密密钥进行解封装,计算中间数/>
Figure FDA0004072129360000038
Figure FDA0004072129360000039
对称加密密钥k=h(y);服务器/>
Figure FDA00040721293600000310
使用对称加密密钥k解密c′恢复数据m的明文,m=Dec(k,c′)。/>
CN202110771469.5A 2021-07-08 2021-07-08 一种基于区块链的双向认证混合加密方法 Active CN113688405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110771469.5A CN113688405B (zh) 2021-07-08 2021-07-08 一种基于区块链的双向认证混合加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110771469.5A CN113688405B (zh) 2021-07-08 2021-07-08 一种基于区块链的双向认证混合加密方法

Publications (2)

Publication Number Publication Date
CN113688405A CN113688405A (zh) 2021-11-23
CN113688405B true CN113688405B (zh) 2023-05-26

Family

ID=78576780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110771469.5A Active CN113688405B (zh) 2021-07-08 2021-07-08 一种基于区块链的双向认证混合加密方法

Country Status (1)

Country Link
CN (1) CN113688405B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115052007A (zh) * 2022-05-23 2022-09-13 重庆第二师范学院 一种云存储数据完整性可溯源公开验证方法、系统及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270571A (zh) * 2017-12-08 2018-07-10 西安电子科技大学 基于区块链的物联网身份认证系统及其方法
CN112818368A (zh) * 2021-02-09 2021-05-18 南京邮电大学 一种基于区块链智能合约的数字证书认证方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2014256396B2 (en) * 2013-11-15 2020-08-20 Fidelity Information Services, Llc Systems and methods for real-time account access
CN109962784B (zh) * 2019-03-22 2021-04-02 西安电子科技大学 一种基于数字信封多证书的数据加解密及恢复方法
KR20210067125A (ko) * 2019-11-29 2021-06-08 한국전력공사 블록체인 기반 전력 거래 시스템 및 방법
CN112910840B (zh) * 2021-01-14 2022-04-05 重庆邮电大学 一种基于联盟区块链的医疗数据存储共享方法及系统
CN112995136A (zh) * 2021-02-03 2021-06-18 浙江泰科数联信息技术有限公司 一种基于联盟链的k-out-of-m匿名投票方法
CN112906056A (zh) * 2021-03-17 2021-06-04 广东工业大学 一种基于区块链的云存储密钥安全管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270571A (zh) * 2017-12-08 2018-07-10 西安电子科技大学 基于区块链的物联网身份认证系统及其方法
CN112818368A (zh) * 2021-02-09 2021-05-18 南京邮电大学 一种基于区块链智能合约的数字证书认证方法

Also Published As

Publication number Publication date
CN113688405A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
CN109728909B (zh) 基于USBKey的身份认证方法和系统
CN101421968B (zh) 用于连网计算机应用的鉴权系统
JP5307191B2 (ja) 無線通信機器とサーバとの間でのデータの安全なトランザクションのためのシステムおよび方法
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
JP4781269B2 (ja) 鍵合意および移送プロトコル
CN106789042B (zh) Ibc域内的用户访问pki域内的资源的认证密钥协商方法
EP1376976A1 (en) Methods for authenticating potential members invited to join a group
US8806206B2 (en) Cooperation method and system of hardware secure units, and application device
CN110020524B (zh) 一种基于智能卡的双向认证方法
CN112887338A (zh) 一种基于ibc标识密码的身份认证方法和系统
CN113612605A (zh) 使用对称密码技术增强mqtt协议身份认证方法、系统和设备
US20230188325A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN111416712B (zh) 基于多个移动设备的量子保密通信身份认证系统及方法
US20200235915A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN113676448B (zh) 一种基于对称秘钥的离线设备双向认证方法和系统
CN113688405B (zh) 一种基于区块链的双向认证混合加密方法
CN111756722B (zh) 一种无密钥托管的多授权属性基加密方法和系统
KR20080005344A (ko) 인증서버가 사용자단말기를 인증하는 시스템
CN116388995A (zh) 一种基于puf的轻量级智能电网认证方法
CN106330430B (zh) 一种基于ntru的第三方移动支付方法
Isaac et al. Anonymous payment in a kiosk centric model using digital signature scheme with message recovery and low computational power devices
CN114448636A (zh) 基于数字证书的抗量子计算数字货币系统及匿名通信方法
CN113014376A (zh) 一种用户与服务器之间安全认证的方法
US11917056B1 (en) System and method of securing a server using elliptic curve cryptography

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant