CN116506184A - 数据加密方法、数据验证方法及相关装置 - Google Patents
数据加密方法、数据验证方法及相关装置 Download PDFInfo
- Publication number
- CN116506184A CN116506184A CN202310476670.XA CN202310476670A CN116506184A CN 116506184 A CN116506184 A CN 116506184A CN 202310476670 A CN202310476670 A CN 202310476670A CN 116506184 A CN116506184 A CN 116506184A
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- signature
- node
- verification
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000013524 data verification Methods 0.000 title claims abstract description 36
- 238000012795 verification Methods 0.000 claims abstract description 99
- 238000013475 authorization Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据加密方法、数据验证方法及相关装置,可应用于区块链领域或金融领域。发送节点获取原始数据;利用第一加解密算法对原始数据加密,得到加密数据;利用第二加解密算法对第一密钥加密,得到加密密钥;利用签名算法,使用第三密钥对加密密钥进行签名,得到签名结果;将加密数据、加密密钥和签名结果上传到区块链网络中。验证节点从区块链网络中获取加密密钥和签名结果;利用签名算法对签名结果进行验签,得到验签结果;通过判断验签结果与加密密钥是否相同,实现对加密数据的验证。如此,验证节点能够对加密数据进行快速验证,提高验证效率。
Description
技术领域
本申请涉及区块链领域,具体涉及数据加密方法、数据验证方法及相关装置。
背景技术
区块链技术基于点对点网络传播的分布式共享数据库,具有不可篡改、去中心化以及自动化执行等特征。区块链技术的特点之一是账本由多个参与方持有,数据公开透明。在金融系统中,区块链技术基于往往用于数字资产存证或者交易。
区块链网络中可能传输涉及到商业敏感信息的数据。区块链网络中非交易相关方能够进行对此类数据进行验证。目前,非交易相关方对加密的数据进行验证的效率较低。
发明内容
有鉴于此,本申请提供数据加密方法、数据验证方法及相关装置,能够实现非交易相关方,也就是验证节点在数据处于密文状态进行快速验证,提高非交易相关方对加密数据进行验证的效率。
基于此,本申请提供的技术方案如下:
第一方面,本申请提供一种数据加密方法,所述方法应用于区块链网络的发送节点,所述方法包括:
获取原始数据;
利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;
利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;
利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;
将所述加密数据、所述加密密钥、所述签名结果上传到所述区块链网络中,以便区块链网络的验证节点利用签名算法,使用第四密钥对所述签名结果进行验签,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。
在一种可能的实现方式中,所述利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥,包括:
利用第二加解密算法,使用所述第二密钥以及授权使用信息对所述第一密钥进行加密,得到加密密钥;所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
在一种可能的实现方式中,所述第二加解密算法为基于属性的加密算法ABE。
第二方面,本申请提供一种数据验证方法,所述方法应用于区块链网络的验证节点,所述验证节点为除发送节点以及接收节点以外的构成所述区块链网络的节点,所述方法包括:
从所述区块链网络中获取加密密钥和签名结果,所述加密密钥是所述区块链网络的发送节点利用第二加解密算法,使用第二密钥对第一密钥进行加密得到的,所述签名结果是所述发送节点利用签名算法,使用第三密钥对所述加密密钥进行签名得到的;
利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥;
若所述验签结果与所述加密密钥相同,则确定验签成功;
若所述验签结果与所述加密密钥不同,则确定验签失败。
在一种可能的实现方式中,在所述利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果之前,所述方法还包括:
基于授权使用信息确定所述验证节点不具有使用第二加解密算法的权限,所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
第三方面,本申请提供一种数据加密装置,所述装置应用于区块链网络的发送节点,所述装置包括:
获取单元,用于获取原始数据;
第一加密单元,用于利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;
第二加密单元,用于利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;
签名单元,用于利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;
上传单元,用于将所述加密数据、所述加密密钥、所述签名结果上传到区块链网络中,以便区块链网络的验证节点利用签名算法,使用第四密钥对所述签名结果进行验签,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。
在一种可能的实现方式中,所述第二加密单元,具体用于利用第二加解密算法,使用第二密钥以及所述授权使用信息对所述第一密钥进行加密,得到加密密钥;所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
在一种可能的实现方式中,所述授权使用信息为访问树,所述访问树包括至少一个子节点,所述子节点为所述接收节点。
在一种可能的实现方式中,所述第二加解密算法为基于属性的加密算法ABE。
第四方面,本申请提供一种数据验证装置,所述装置应用于区块链网络的验证节点,所述验证节点为除发送节点以及接收节点以外的构成所述区块链网络的节点,所述装置包括:
获取单元,用于从所述区块链网络中获取加密密钥和签名结果,所述加密密钥是所述区块链网络的发送节点利用第二加解密算法,使用第二密钥对第一密钥进行加密得到的,所述签名结果是所述发送节点利用签名算法,使用第三密钥对所述加密密钥进行签名得到的;
验签单元,用于利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥;
第一确定单元,用于若所述验签结果与所述加密密钥相同,则确定验签成功;
第二确定单元,用于若所述验签结果与所述加密密钥不同,则确定验签失败。
在一种可能的实现方式中,所述装置还包括:
认证单元,用于基于授权使用信息确定所述验证节点不具有使用第二加解密算法的权限,所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
第五方面,本申请提供一种系统,所述系统包括:发送节点以及验证节点,所述发送节点用于执行第一方面所述的数据加密方法,所述验证节点用于执行第二方面所述的数据验证方法。
第六方面,本申请提供一种设备,其特征在于,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行第一方面所述的数据加密方法,或者执行第二方面所述的数据验证方法。
第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行第一方面所述的数据加密方法,或者执行第二方面所述的数据验证方法。
由此可见,本申请具有如下有益效果:
本申请提供一种数据加密方法、数据验证方法及相关装置。其中,在该数据加密方法中,发送节点获取原始数据;利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;将所述加密数据、所述加密密钥和所述签名结果上传到区块链网络中。区块链网络的验证节点利用签名算法,使用第四密钥对所述签名结果进行验签。第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。如此,在保证发送节点和接收节点能够正常加密和解密的前提下,验证节点仅需要对签名结果进行验证,就能够实现对加密数据的快速验证,提高验证效率。
附图说明
图1为本申请实施例提供的一种数据加密方法的示意图;
图2为本申请实施例提供的一种数据处理的示意图;
图3为本申请实施例提供的一种数据解密方法的流程示意图;
图4为本申请实施例提供的一种数据验证方法的流程示意图;
图5为本申请实施例提供的一种数据加密装置的结构示意图;
图6为本申请实施例提供的一种数据验证装置的结构示意图;
图7本申请实施例提供的一种系统的结构示意图。
具体实施方式
为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
区块链网络中可能传输涉及到商业敏感信息的数据。此类数据对于保密的要求较高。涉及数据交易的交易相关方,也就是区块链网络中的发送数据的发送节点以及处理数据的接收节点,能够获取数据加解密方法。发送节点对数据的明文进行对应的加密操作,生成密文。通过区块链网络向接收节点发送密文。接收节点利用数据加解密方法,对密文进行解密,得到数据的明文。区块链网络中除发送节点和接收节点以外的节点,也就是非交易相关方,能够通过区块链网络获取密文。为了保证数据的机密性,并且在非交易相关方无法获得数据加解密方法的情况下,非交易相关方能够采用零知识证明技术对数据的密文进行验证,也就是密态验证。但是,非交易相关方的密态验证的效率较低。
基于此,本申请提供一种数据加密方法、数据验证方法及相关装置。其中,在该数据加密方法中,发送节点获取原始数据;利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;将所述加密数据、所述加密密钥和所述签名结果上传到区块链网络中。区块链网络的验证节点利用签名算法,使用第四密钥对所述签名结果进行验签。第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。如此,在保证发送节点和接收节点能够正常加密和解密的前提下,验证节点仅需要对签名结果进行验证,就能够实现对加密数据的快速验证,提高验证效率。
为了便于理解本申请实施例提供的技术方案,下面结合附图对本申请实施例提供的数据加密方法以及数据验证方法的可能的应用场景进行说明。
首先需要说明的是,本申请实施例提供的数据加密方法和数据验证方法能够应用于区块链网络中。在一种具体的实现场景中,区块链网络包括认证服务器、发送节点、接收节点以及验证节点。其中,认证服务器用于向区块链网络包括的节点下发密钥。发送节点用于对原始数据加密,得到加密数据,并将加密数据发送到区块链网络中。发送节点还用于配置授权使用信息,授权使用信息用于确定具有解密权限的接收节点。接收节点103用于从互联网对加密数据的进行解密,得到原始数据。验证节点为区块链网络包括的节点中除发送节点和接收节点以外的其他能够对加密数据进行验证的节点。验证节点不具有对加密数据进行解密的权限。
本申请提供的数据加密方法和数据验证方法及相关装置可用于区块链领域或金融领域。上述仅为示例,并不对本申请提供的数据加密方法和数据验证方法及相关装置的应用领域进行限定。
下面对本申请实施例提供的数据加密方法以及数据验证方法进行说明。
首先对本申请实施例提供的数据加密方法进行说明。本申请实施例提供的数据加密方法应用于发送节点。发送节点为对上链的原始数据进行加密的节点。
参见图1所示,该图为本申请实施例提供的一种数据加密方法的示意图。如图1所示,本申请实施例提供的一种数据加密方法包括S101-S105。
S101:获取原始数据。
原始数据是需要上链的数据。本申请实施例不限定原始数据的来源。作为一种示例,原始数据是发送节点生成的需要上链的数据。作为另一种示例,原始数据是其他系统或者平台生成的,需要通过发送节点处理的需要上链的数据。
S102:利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据。
在一种可能的实现方式中,发送节点从认证服务器获取第一密钥。认证服务器例如为CA(Certificate Authority,证书颁发机构)服务器,或者是Fabric-CA(一种证书管理工具)。
认证服务器基于第一加解密算法,生成第一密钥并向发送节点发送第一密钥。认证服务器能够基于区块链网络TLS(Transport Layer Security,安全传输层)协议向发送节点发送第一密钥。
本申请实施例不限定第一加解密算法和第一密钥的具体类型。作为一种示例,第一加解密算法为AES(Advanced Encryption Standard,高级加密标准)算法。第一密钥为AES的加密密钥。作为另一种示例,第一加解密算法为国密算法,例如SM系列算法。
参见图2所示,该图为本申请实施例提供的一种数据处理的示意图。该区块链网络包括认证服务器、发送节点、接收节点以及验证节点。认证服务器基于AES算法,生成第一密钥Sa,并向发送节点发送第一密钥Sa。
发送节点获取第一密钥,并利用第一密钥,采用第一加解密算法对原始数据进行加密,得到加密数据。
作为一种示例,参见图2所示,发送节点基于第一加解密算法,利用第一密钥Sa对原始数据m进行加密,得到加密数据C。
S103:利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥。
在一种可能的实现方式中,发送节点从认证服务器获取第二密钥。认证服务器基于第二加解密算法,生成第二密钥并向发送节点发送第二密钥。认证服务器能够采用区块链广播的方式向发送节点发送第二密钥。
本申请实施例不限定第二加解密算法和第二密钥的具体类型。在一种可能的实现方式中,第二加解密算法根据属性来加密消息,无需关注解密的节点的身份,只有符合属性要求的节点才能破解密文,保证了数据的机密性。
作为一种示例,第二加解密算法为ABE(Attribute-Based Encryption,基于属性的加密)算法。例如为基于密钥的属性加密(Key-Policy Attribute-Based Encryption,KP-ABE)算法,或者为基于密文的属性加密(Ciphertext-Policy Attribute-BasedEncryption,CP-ABE)算法。
作为一种示例,认证服务器执行CP-ABE算法的初始化(Setup)步骤,生成公钥PK和主密钥MK。CP-ABE算法的初始化(Setup)步骤参见公式(1)所示。
Setup(g,G0,α,β)→(PK,MK) (1)
其中,g,G0,α,β均是预先配置的安全参数。
认证服务器再执行CP-ABE算法的注册机(KeyGen)步骤,基于主密钥MK生成用户密钥SK。CP-ABE算法生成用户密钥的步骤参见公式(2)所示
KeyGen(MK,S)→(SK) (2)
其中,S是描述密钥的属性集合。
认证服务器生成的公钥PK是第二密钥。认证服务器向发送节点下发第二密钥PK。
发送节点基于第二加解密算法,利用第二密钥,对第一密钥进行加密,得到加密密钥。
在一种可能的实现方式中,发送节点利用第二加解密算法,使用第二密钥以及授权使用信息对第一密钥进行加密。其中,授权使用信息为发送节点配置的用于指定利用第二加解密算法进行解密的节点,也就是接收节点。授权使用信息能够配置在认证服务器中。除发送节点以外的其他节点能够向认证服务器请求身份认证。认证服务器利用授权使用信息确定请求的节点是否具有第二加解密算法的使用权限。
作为一种示例,授权使用信息为访问树。访问树包括至少一个子节点。子节点为发送节点指定的接收节点。访问树包括的接收节点能够利用第二加解密算法进行解密,得到原始数据。
利用授权使用信息能够限制利用第二加解密算法解密的节点,防止发送节点指定的接收节点以外的节点利用第二加解密算法进行解密,提高原始数据的机密性。
作为示例,参见图2所示,认证服务器基于CP-ABE算法,生成主密钥MK、公钥PK以及用户密钥SK。认证服务器向发送节点发送第二密钥,也就是公钥PK。发送节点基于CP-ABE算法,利用获取的第二密钥PK,以及配置的访问树T对第一密钥Sa进行加密,得到加密密钥CT。发送节点基于CP-ABE算法包括的加密(Encrypt)步骤得到加密密钥CT。基于加密(Encrypt)步骤得到加密密钥CT的步骤参见公式(3)所示:
Encrypt(PK,Sa,T)→CT (3)
S104:利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果。
在一种可能的实现方式中,发送节点从认证服务器获取第三密钥。认证服务器基于签名算法,生成第三密钥并向发送节点发送第三密钥。认证服务器能够基于区块链网络TLS协议向发送节点发送第三密钥。
本申请实施例不限定签名算法和第三密钥的具体类型。在一种可能的实现方式中,签名算法为RSA(非对称加密)算法。第三密钥为RAS算法的私钥。
作为一种示例,认证服务器基于RSA算法生成私钥和公钥,将私钥发送至发送节点。
发送节点基于签名算法,利用第三密钥对加密密钥进行签名,得到签名结果。如此,验证节点利用第三密钥对应的解密密钥,也就是第四密钥,能够对签名结果进行验证,实现在不对加密数据进行解密的基础上,对加密数据进行快速验证。
作为示例,参见图2所示,认证服务器基于RSA算法,生成公钥Spub和私钥Spri。认证服务器向发送节点发送第三密钥,也就是私钥Spri。发送节点基于RSA算法利用私钥Spri对加密密钥CT进行签名,得到签名结果sign(CT,Spri)。
S105:将所述加密数据、所述加密密钥以及所述签名结果上传到区块链网络中。
发送节点向区块链网络上传加密数据、加密密钥以及签名结果,以便区块链网络上的接收节点获取加密数据和加密密钥,对加密数据进行解密得到原始数据,以及验证节点获取加密密钥和签名结果,对签名结果进行验证。
本申请实施例不限定接收节点和验证节点认证身份的方式。在一些可能的实现方式中,接收节点和验证节点是基于授权使用信息确定的。区块链网络包括的除发送节点以外的节点,能够基于授权使用信息进行身份验证,确定是接收节点还是验证节点。接收节点是授权使用信息指示的能够利用第二加解密算法解密的节点。验证节点是除接收节点和发送节点以外的节点。验证节点不具有使用第二加解密算法解密的权限。
在基于授权使用信息确认是接收节点的情况下,接收节点获取使用第二加解密算法的权限,能够利用第二加解密算法对加密数据和加密密钥进行处理得到原始数据。
作为一种示例,授权使用信息配置在认证服务器中。区块链网络包括的除发送节点以外的节点,向认证服务器发送身份认证请求。认证服务器基于授权使用信息,确认该节点的身份。作为一种示例,授权使用信息包括发送节点配置的用于指定利用第二加解密算法进行解密的节点的节点信息。区块链网络包括的除发送节点以外的节点向认证服务器发送的身份认证请求包括该节点的节点信息。认证服务器将身份认证请求包括的该节点信息与授权使用信息包括的节点信息进行匹配。如果匹配成功,则认证服务器确定该节点是接收节点,具有利用第二加解密算法解密的权限。认证服务器向该节点下发利用第二加解密算法解密的权限。如果匹配不成功,则认证服务器确定该节点不是接收节点,不具有利用第二加解密算法解密的权限。认证服务器向该节点反馈身份认证失败的消息。该节点能够作为验证节点,参与发送节点与接收节点之间的数据交互,对签名结果进行验证。
需要说明的是,本申请实施例对接收节点和验证节点确认身份的方式不做限定,上述基于授权使用信息确认身份的方式仅作为一种示例。
对应的,下面对接收节点执行的数据解密方法进行介绍。参见图3所示,该图为本申请实施例提供的一种数据解密方法的流程示意图。如图3所示,本申请实施例提供的一种数据解密方法包括S301-S303。
S301:从区块链网络中获取加密数据和加密密钥。
通过区块链网络,接收节点能够获取发送节点上传的加密数据和加密密钥。
作为一种示例,参见图2所示,接收节点获取加密数据C和加密密钥CT。
S302:基于第二加解密算法,利用第五密钥对所述加密密钥进行解密,得到第一密钥。
接收节点具有使用第二加解密算法的权限。在一种可能的实现方式中,接收节点从认证服务器获取第五密钥。第五密钥为对第一密钥加密的第二密钥对应的解密密钥。认证服务器能够通过区块链广播的方式向区块链网络包括的节点发送第五密钥。
接收节点基于第二加解密算法,利用第五密钥对加密密钥进行解密,得到第一密钥。
本申请实施例不限定第五密钥的具体类型。在一种可能的实现方式中,第二加解密算法为CP-ABE算法,第二密钥为公钥PK,第五密钥为用户密钥SK。
作为一种示例,参见图2所示,认证服务器向接收节点发送第五密钥SK。接收节点获取第五密钥SK。接收节点基于CP-ABE算法的Decrypt(解密)算法,利用第五密钥SK对加密密钥CT进行解密,得到第一密钥Sa。参见公式(4)所示:
Decrypt(SK,CT)→Sa (4)
S303:利用所述第一加解密算法,使用所述第一密钥对所述加密数据进行解密,得到原始数据。
接收节点对加密密钥解密后,得到第一密钥。接收节点再利用第一加解密算法,使用第一密钥对加密数据进行解密,就能得到原始数据。
作为一种示例,参见图2所示,接收节点基于AES算法,利用解密得到的第一密钥Sa,对加密数据C进行解密,得到原始数据m。
如此,接收节点能够基于使用第二加解密算法的权限,对加密密钥进行解密,得到第一密钥解密加密数据,得到原始数据。验证节点对加密数据的验证过程不影响接收节点的解密过程。并且,在一定范围内,加密和解密过程不会受到明文长度的影响,发送节点的加密速度以及接收节点的解密速度较快。
下面对验证节点执行的数据验证方法进行介绍。
参见图4所示,该图为本申请实施例提供的一种数据验证方法的流程示意图。如图4所示,本申请实施例提供的一种数据验证方法包括S401-S404。
S401:从所述区块链网络中获取加密密钥和签名结果。
验证节点能够从区块链网络中获取发送节点上传的加密密钥和签名结果,并利用加密密钥和签名结果进行签名结果的验证。
作为一种示例,参见图2所示,验证节点获取加密密钥CT和签名结果sign(CT,Spri)。
S402:利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果。
在一种可能的实现方式中,验证节点从认证服务器获取第四密钥。第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。认证服务器能够通过区块链广播的方式向区块链网络包括的节点发送第四密钥。
验证节点基于签名算法,利用第四密钥对签名结果进行验签,得到验签结果。
本申请实施例不限定第四密钥的具体类型。在一种可能的实现方式中,签名算法为RSA算法,第三密钥为私钥,第四密钥为公钥。
作为示例,参见图2所示,认证服务器向验证节点发送公钥Spub,也就是第四密钥。验证节点获取公钥Spub。验证节点利用公钥Spub对sign(CT,Spri)进行验签,得到验签结果。
S403:若所述验签结果与所述加密密钥相同,则确定验签成功。
验证节点将验签结果与加密密钥进行对比,对发送节点上传的数据的完整性和可靠性进行验证。如果验签结果与加密密钥相同,则签名验证成功。
S404:若所述验签结果与所述加密密钥不同,则确定验签失败。
如果验签结果与加密密钥不相同,则签名验证失败。
如此,验证节点能够在不对加密数据进行解密的基础上,实现对加密数据的验证。并且验证的速度较快,提高验证节点对加密的数据进行验证的效率。
基于上述方法实施例提供的一种数据加密方法,本申请实施例还提供了一种数据加密装置,所述数据加密装置应用于区块链网络的发送节点。下面将结合附图对该数据加密装置进行说明。
参见图5所示,该图为本申请实施例提供的一种数据加密装置的结构示意图。如图5所示,该数据加密装置包括:
获取单元501,用于获取原始数据;
第一加密单元502,用于利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;
第二加密单元503,用于利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;
签名单元504,用于利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;
上传单元505,用于将所述加密数据、所述加密密钥、所述签名结果上传到区块链网络中。
在一种可能的实现方式中,所述第二加密单元503,具体用于利用第二加解密算法,使用第二密钥以及所述授权使用信息对所述第一密钥进行加密,得到加密密钥;所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
在一种可能的实现方式中,所述授权使用信息为访问树,所述访问树包括至少一个子节点,所述子节点为所述接收节点。
在一种可能的实现方式中,所述第二加解密算法为基于属性的加密算法ABE。
基于上述方法实施例提供的一种数据解密方法,本申请实施例还提供了一种数据解密装置,所述数据解密装置应用于区块链网络的接收节点。下面将结合附图对该数据解密装置进行说明。
基于上述方法实施例提供的一种数据验证方法,本申请实施例还提供了一种数据验证装置,所述数据验证装置应用于区块链网络的验证节点。下面将结合附图对该数据验证装置进行说明。
参见图6所示,该图为本申请实施例提供的一种数据验证装置的结构示意图。如图6所示,该数据验证装置包括:
获取单元601,用于从所述区块链网络中获取加密密钥和签名结果;
验签单元602,用于利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥;
第一确定单元603,用于若所述验签结果与所述加密密钥相同,则确定验签成功;
第二确定单元604,用于若所述验签结果与所述加密密钥不同,则确定验签失败。
在一种可能的实现方式中,所述装置还包括:
认证单元,用于基于授权使用信息确定所述验证节点不具有使用第二加解密算法的权限,所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
基于上述方法实施例提供的数据加密方法、数据解密方法以及数据验证方法,本申请实施例还提供了一种系统,下面将结合附图对该系统的结构进行说明。
参见图7所示,该图为本申请实施例提供的一种系统的结构示意图。如图7所示,该系统包括:发送节点701以及验证节点702。
其中,发送节点701用于执行上述数据加密方法,验证节点702用于执行上述数据验证方法。相关内容请参见上文,在此不再赘述。
基于上述方法实施例提供的数据加密方法、数据解密方法以及数据验证方法,本申请提供一种设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述实施例所述的数据加密方法,或者执行上述实施例所述的数据解密方法,或者执行上述实施例所述的数据验证方法。
基于上述方法实施例提供的一种数据加密方法、数据解密方法以及数据验证方法,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述实施例所述的数据加密方法,或者执行上述实施例所述的数据解密方法,或者执行上述实施例所述的数据验证方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据加密方法,其特征在于,所述方法应用于区块链网络的发送节点,所述方法包括:
获取原始数据;
利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;
利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;
利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;
将所述加密数据、所述加密密钥、所述签名结果上传到所述区块链网络中,以便所述区块链网络的验证节点利用签名算法,使用第四密钥对所述签名结果进行验签,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。
2.根据权利要求1所述的方法,其特征在于,所述利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥,包括:
利用所述第二加解密算法,使用所述第二密钥以及授权使用信息对所述第一密钥进行加密,得到加密密钥;所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
3.根据权利要求1所述的方法,其特征在于,所述第二加解密算法为基于属性的加密算法ABE。
4.一种数据验证方法,其特征在于,所述方法应用于区块链网络的验证节点,所述验证节点为除发送节点以及接收节点以外的构成所述区块链网络的节点,所述方法包括:
从所述区块链网络中获取加密密钥和签名结果,所述加密密钥是所述区块链网络的发送节点利用第二加解密算法,使用第二密钥对第一密钥进行加密得到的,所述签名结果是所述发送节点利用签名算法,使用第三密钥对所述加密密钥进行签名得到的;
利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥;
若所述验签结果与所述加密密钥相同,则确定验签成功;
若所述验签结果与所述加密密钥不同,则确定验签失败。
5.根据权利要求4所述的方法,其特征在于,在所述利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果之前,所述方法还包括:
基于授权使用信息确定所述验证节点不具有使用第二加解密算法的权限,所述授权使用信息用于指示授权使用所述第二加解密算法的接收节点。
6.一种数据加密装置,其特征在于,所述装置应用于区块链网络的发送节点,所述装置包括:
获取单元,用于获取原始数据;
第一加密单元,用于利用第一加解密算法,使用第一密钥对所述原始数据进行加密,得到加密数据;
第二加密单元,用于利用第二加解密算法,使用第二密钥对所述第一密钥进行加密,得到加密密钥;
签名单元,用于利用签名算法,使用第三密钥对所述加密密钥进行签名,得到签名结果;
上传单元,用于将所述加密数据、所述加密密钥、所述签名结果上传到区块链网络中,以便区块链网络的验证节点利用签名算法,使用第四密钥对所述签名结果进行验签,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥。
7.一种数据验证装置,其特征在于,所述装置应用于区块链网络的验证节点,所述验证节点为除发送节点以及接收节点以外的构成所述区块链网络的节点,所述装置包括:
获取单元,用于从所述区块链网络中获取加密密钥和签名结果,所述加密密钥是所述区块链网络的发送节点利用第二加解密算法,使用第二密钥对第一密钥进行加密得到的,所述签名结果是所述发送节点利用签名算法,使用第三密钥对所述加密密钥进行签名得到的;
验签单元,用于利用签名算法,使用第四密钥对所述签名结果进行验签,得到验签结果,所述第四密钥为对所述加密密钥签名的第三密钥对应的验签密钥;
第一确定单元,用于若所述验签结果与所述加密密钥相同,则确定验签成功;
第二确定单元,用于若所述验签结果与所述加密密钥不同,则确定验签失败。
8.一种系统,其特征在于,所述系统包括:发送节点以及验证节点,所述发送节点用于执行权利要求1-3任一项所述的数据加密方法,所述验证节点用于执行权利要求4或5所述的数据验证方法。
9.一种设备,其特征在于,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1-3任一项所述的数据加密方法,或者执行权利要求4或5所述的数据验证方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-3任一项所述的数据加密方法,或者执行权利要求4或5所述的数据验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310476670.XA CN116506184A (zh) | 2023-04-28 | 2023-04-28 | 数据加密方法、数据验证方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310476670.XA CN116506184A (zh) | 2023-04-28 | 2023-04-28 | 数据加密方法、数据验证方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116506184A true CN116506184A (zh) | 2023-07-28 |
Family
ID=87316173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310476670.XA Pending CN116506184A (zh) | 2023-04-28 | 2023-04-28 | 数据加密方法、数据验证方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116506184A (zh) |
-
2023
- 2023-04-28 CN CN202310476670.XA patent/CN116506184A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220224551A1 (en) | Mutual authentication of confidential communication | |
US11108565B2 (en) | Secure communications providing forward secrecy | |
CN109067801B (zh) | 一种身份认证方法、身份认证装置及计算机可读介质 | |
US7120797B2 (en) | Methods for authenticating potential members invited to join a group | |
US9137017B2 (en) | Key recovery mechanism | |
US11134069B2 (en) | Method for authorizing access and apparatus using the method | |
JP2023502346A (ja) | 量子安全ネットワーキング | |
CN109450843B (zh) | 一种基于区块链的ssl证书管理方法及系统 | |
KR101833323B1 (ko) | 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법 | |
WO2020050390A1 (ja) | 権利者端末、利用者端末、権利者プログラム、利用者プログラム、コンテンツ利用システムおよびコンテンツ利用方法 | |
US20210167963A1 (en) | Decentralised Authentication | |
CN110958209A (zh) | 基于共享密钥的双向认证方法及系统、终端 | |
JP2005502269A (ja) | デジタル証明書を作成するための方法及び装置 | |
CN110611679A (zh) | 一种数据传输方法、装置、设备及系统 | |
CN112417502B (zh) | 基于区块链、去中心化部署的分布式即时通讯系统及方法 | |
CN107409043B (zh) | 基于中央加密的存储数据对产品的分布式处理 | |
JPH10240826A (ja) | 電子契約方法 | |
CN110572257B (zh) | 基于身份的数据来源鉴别方法和系统 | |
CN116506184A (zh) | 数据加密方法、数据验证方法及相关装置 | |
CN110086627B (zh) | 基于非对称密钥池对和时间戳的量子通信服务站密钥协商方法和系统 | |
WO2021019781A1 (ja) | 所有者同一性確認システム、認証局サーバおよび所有者同一性確認方法 | |
WO2021019783A1 (ja) | 所有者同一性確認システム、端末および所有者同一性確認方法 | |
KR101893758B1 (ko) | 암호화된 트래픽 분석을 통한 내부 정보 유출 모니터링 시스템 및 방법 | |
CN116305313A (zh) | 一种权限管理系统、方法、装置及电子设备 | |
CN117675244A (zh) | 基于集群环境下任务密钥分发方法及装置 |
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 |