CN116996331A - 基于区块链的数据处理方法、装置、设备以及介质 - Google Patents
基于区块链的数据处理方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN116996331A CN116996331A CN202311260310.2A CN202311260310A CN116996331A CN 116996331 A CN116996331 A CN 116996331A CN 202311260310 A CN202311260310 A CN 202311260310A CN 116996331 A CN116996331 A CN 116996331A
- Authority
- CN
- China
- Prior art keywords
- key
- session
- private key
- task
- contract
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 239000012634 fragment Substances 0.000 claims abstract description 213
- 238000012545 processing Methods 0.000 claims abstract description 113
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000012795 verification Methods 0.000 claims abstract description 58
- 230000006870 function Effects 0.000 claims description 81
- 238000007906 compression Methods 0.000 claims description 39
- 230000006835 compression Effects 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 31
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 230000011218 segmentation Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 17
- 238000013467 fragmentation Methods 0.000 claims description 16
- 238000006062 fragmentation reaction Methods 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 201000010099 disease Diseases 0.000 description 4
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000013016 learning Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000035045 associative learning Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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
- H04L63/0442—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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- 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/0825—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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/3236—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 using cryptographic hash functions
-
- 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/40—Network security protocols
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, i.e. digital signing and encrypting simultaneously
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种基于区块链的数据处理方法、装置、设备以及介质,该方法包括:若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;将N个会话私钥分片分发给N个密钥接收对象,以使N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;获取与N个密钥接收对象相关联的任务联合消息,根据会话密钥对中的会话公钥对任务联合消息进行签名验证。实施本申请实施例,可以提高数据安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备以及介质。
背景技术
随着计算机技术的发展,数据安全性越来越受到重视。为了提高数据安全性,数据持有方通常会委托第三方生成并保管密钥,当需要进行数据加密时,可以从第三方中获取密钥对数据进行加密。然而,这种密钥管理方式,第三方的管理权限过大,一旦第三方的可信度无法得到保障,例如,第三方发生密钥泄露或者被攻击,就可能会造成数据持有方的数据泄露,降低数据安全性。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备以及介质,可以提高数据安全性。
本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法包括:
若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;
将N个会话私钥分片分发给N个密钥接收对象,以使N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;
获取与N个密钥接收对象相关联的任务联合消息,根据会话密钥对中的会话公钥对任务联合消息进行签名验证;
其中,任务联合消息包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个密钥接收对象对应的会话私钥分片恢复的;t为小于或等于N的正整数。
本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置包括:
密钥拆分模块,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;
私钥分片分发模块,用于将N个会话私钥分片分发给N个密钥接收对象,以使N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;
签名验证模块,用于获取与N个密钥接收对象相关联的任务联合消息,根据会话密钥对中的会话公钥对任务联合消息进行签名验证;
其中,任务联合消息包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个密钥接收对象对应的会话私钥分片恢复的;t为小于或等于N的正整数。
其中,密钥拆分模块包括:
合约地址获取单元,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则获取与会话密钥生成请求相关联的合约地址;
白名单获取单元,用于在区块链存储的业务智能合约中查找与合约地址相关联的密钥生成合约,获取与密钥生成合约相关联的权限白名单;
合约调用单元,用于获取与会话密钥生成请求相关联的密钥请求对象在区块链上的对象地址,若对象地址属于权限白名单,则调用密钥生成合约。
其中,基于区块链的数据处理装置还包括:
身份验证模块,用于接收密钥请求对象发送的身份注册请求,获取身份注册请求携带的对象认证信息,对对象认证信息进行验证,得到对象认证信息对应的身份认证结果;
对象添加模块,用于若身份认证结果指示认证成功,则将密钥请求对象对应的对象地址添加至权限白名单。
其中,基于区块链的数据处理装置还包括:
区块封装模块,用于接收密钥请求对象发送的密钥生成合约相关联的密钥合约数据,将密钥合约数据封装为合约交易数据,按照合约交易数据在交易池中的排序,将合约交易数据封装为合约交易区块;
区块共识模块,用于在业务区块链网络中对合约交易区块进行广播,以使业务区块链网络中的区块链节点对合约交易区块进行共识处理;
合约部署模块,用于获取合约交易区块在业务区块链网络中的共识投票数量,若共识投票数量大于或等于数量阈值,则确定合约交易区块达成共识,将合约交易区块添加至区块链,确定密钥生成合约为发布成功状态,向密钥请求对象返回密钥生成合约对应的合约地址。
其中,密钥拆分模块包括:
随机数获取单元,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成第一密钥随机数和第二密钥随机数,获取第一密钥随机数和第二密钥随机数之间的欧拉函数值;
会话公钥生成单元,用于获取第三密钥随机数,根据第三密钥随机数、以及第一密钥随机数和第二密钥随机数之间的乘积,生成会话公钥;
会话私钥生成单元,用于根据第三密钥随机数、欧拉函数值、以及第一密钥随机数和第二密钥随机数之间的乘积,生成会话私钥;
密钥对生成单元,用于将会话公钥和会话私钥确定为与N个密钥接收对象相关联的会话密钥对。
其中,随机数获取单元包括:
第一随机数生成子单元,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,根据会话密钥生成请求对应的接收时间戳生成第一密钥随机数;
数据填充子单元,用于对第一密钥随机数进行数据填充,得到随机填充值,对随机填充值进行拆分处理,得到P个分段填充值;P为大于1的整数;
数据压缩子单元,用于获取压缩函数的第i个输入数据;i为1时,第i个输入数据包括初始压缩值和P个分段填充值中的第一个分段填充值;i不为1时,第i个输入数据包括压缩函数的第i-1个输出数据和P个分段填充值中的第i个分段填充值;i为小于或等于P的正整数;
第二随机数生成子单元,用于根据第i个输入数据和压缩函数,确定压缩函数对应的第i个输出数据,将压缩函数对应的第P个输出数据确定为第二密钥随机数。
其中,密钥拆分模块包括:
第一分片系数获取单元,用于获取第四密钥随机数,以及获取t-1个第一分片系数;t-1个第一分片系数均不同,且t-1个第一分片系数均小于第四密钥随机数;
密钥拆分函数构建单元,用于根据会话密钥对中的会话私钥、第四密钥随机数、以及t-1个第一分片系数构建密钥拆分函数;
初始私钥分片获取单元,用于在密钥拆分函数中确定N个密钥接收对象分别对应的初始私钥分片;
私钥分片加密单元,用于获取N个密钥接收对象分别对应的对象公钥,通过对象公钥对初始私钥分片进行加密处理,得到N个会话私钥分片。
其中,密钥拆分模块包括:
第二分片系数获取单元,用于获取N个第二分片系数;N个第二分片系数中的任意两个第二分片系数互为质数;在单调递增的N个第二分片系数中,前t个第二分片系数的乘积大于会话密钥对中的会话私钥,且后t-1个第二分片系数的乘积小于会话私钥;
模运算单元,用于获取会话私钥与N个第二分片系数中的第x个第二分片系数之间的模运算结果Kx,将第x个第二分片系数和模运算结果Kx,确定为N个密钥接收对象中的第x个密钥接收对象对应的会话私钥分片;x为小于或等于N的正整数。
其中,签名验证模块包括:
消息接收单元,用于若接收到N个密钥接收对象中的t个密钥接收对象分别对应的任务处理消息,则获取各个任务处理消息携带的会话私钥分片和任务消息内容;
密钥重构单元,用于根据密钥拆分函数将t个密钥接收对象对应的会话私钥分片进行密钥重构,得到重构私钥,将t个密钥接收对象对应的任务消息内容组合为联合消息内容;
签名生成单元,用于根据重构私钥生成联合消息内容对应的数字签名,将联合消息内容和数字签名组合为任务联合消息。
其中,签名验证模块包括:
消息解析单元,用于获取任务联合消息所携带的数字签名,以及会话密钥对中的会话公钥;
签名解密单元,用于通过会话公钥对数字签名进行解密,得到数字签名对应的第一摘要信息,根据哈希算法对任务联合消息进行哈希运算,得到任务联合消息对应的第二摘要信息;
第一签名验证单元,用于若第一摘要信息与第二摘要信息相同,则确定任务联合消息对应的签名验证结果为验证通过结果,将任务联合消息添加至区块链。
其中,签名验证模块还包括:
第二签名验证单元,用于若第一摘要信息与第二摘要信息不同,则确定任务联合消息未通过验证;
提示信息生成单元,用于生成任务联合消息对应的告警提示信息,将告警提示信息发送至任务联合消息所对应的N个密钥接收对象,以使N个密钥接收对象根据各自接收的会话私钥分片重新生成任务处理消息。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中一方面中方法的步骤。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行如本申请实施例中一方面中方法的步骤。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面的各种可选方式中提供的方法。
在本申请实施例中,区块链节点在接收到会话密钥生成请求时,可以通过调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对;进而对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片,并将N个会话私钥分片分发给N个密钥接收对象。N个密钥接收对象可以根据各自接收到的会话私钥分片生成任务处理消息,N个密钥接收对象中的t个密钥接收对象对应的任务处理消息可以生成任务联合消息。其中,任务联合消息可以包括数字签名,以及由t个任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个会话私钥分片恢复的。由此可见,本申请实施例使用可信的区块链节点取代第三方作为密钥管理对象,通过调用密钥生成合约生成会话密钥对,将会话密钥对中的会话私钥进行密钥拆分处理,并将拆分得到的会话私钥分片分发给密钥接收对象,可以防止单个密钥接收对象的会话私钥泄露或者被攻击而导致数据泄露,从而可以提高数据安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种基于区块链的密钥分发的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种部署密钥生成合约的示意图;
图5是本申请实施例提供的一种生成密钥随机数的示意图;
图6是本申请实施例提供的一种生成任务联合消息的示意图;
图7是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图;
图8是本申请实施例提供的一种调用密钥生成合约的示意图;
图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链(Blockchain)是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营管理等处理模块。其中,对象管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营管理模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、检测网络情况、检测节点设备健康状态等。
智能合约可以理解为运行在分布式账本(即区块链)上预置规则、具有状态、条件响应的,可封装、验证、执行分布式节点复杂行为,完成信息交换、价值转移和资产管理的计算机程序。基于区块链的分布式架构、共识算法等,智能合约允许相互不信任的对象在不需要任何第三方可信中介或权威的情况下完成交易,同时,数字形式的智能合约可灵活嵌入各种有形或无形的资产、交易和数据中,实现主动或被动的资产、信息管理与控制,逐步构建可编程的智能资产、***等。
请参见图1,图1是本申请实施例提供的一种***架构图。如图1所示,该网络架构可以包括会话节点集合和区块链网络。会话节点集合和区块链网络中均可以包括一个或者多个节点,这里将不对会话节点集合和区块链网络中节点的数量进行限制。如图1所示,会话节点集合可以包括节点10a、节点10b、节点10c和节点10d等;区块链网络可以包括节点20a、节点20b、节点20c、节点20d、节点20e和节点20f等。
其中,区块链网络中的各个节点以对等式网络方式组网,节点与节点之间可以按照对等式网络协议相互通信。区块链网络中的各个节点共同遵循广播机制、共识机制,共同保证区块链上的数据的不可篡改、不可伪造性,同时实现区块链的去中心化、去信任化等特性。本申请实施例不对区块链网络中的节点所属的节点类型进行限定,例如,区块链网络中的节点可以包括业务节点,业务节点不需要参与记账共识,但能够通过身份认证的方式获得区块头数据和部分授权可见的区块数据;区块链网络中的节点也可以包括共识节点,共识节点可以运行有区块链共识协议,可以参与记账共识,也可以发起链配置修改类的交易和新合约的部署等。
会话节点集合中的部分节点之间可以进行相互通信,部分节点之间不进行通信;可选地,为了保证会话节点集合内的信息互通,会话节点集合中的每个节点之间也可以进行相互通信。本申请实施例对会话节点集合和区块链网络内的通信连接不做限定,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,或者还可以通过其他连接方式。
会话节点集合是指用于执行临时联合任务所组成的节点集合,会话节点集合所使用的会话密钥可以由区块链网络中的节点调用密钥生成合约生成。会话节点集合中的节点可以是区块链网络中的节点,也可以是区块链外的节点。会话节点集合中的节点可以包括至少一个密钥请求对象和多个密钥接收对象。例如,密钥请求对象可以是节点10a,密钥接收对象可以包括节点10b、节点10c和节点10d等等;会话节点集合中的某个节点可以同时为密钥请求对象和密钥接收对象,例如,密钥请求对象可以是节点10a,密钥接收对象可以包括节点10a、节点10b、节点10c和节点10d等等。在这种情况下,节点10a既是密钥请求对象,也可以是密钥接收对象。
在本申请实施例中,会话节点集合中的密钥请求对象(例如,节点10a)可以将多个密钥接收对象(密钥接收对象可以包括节点10b、节点10c和节点10d)关联的会话密钥生成请求发送至区块链网络,区块链网络中的任一个区块链节点(例如,节点20a)接收到会话密钥生成请求之后,可以调用区块链中的密钥生成合约,生成与多个密钥接收对象相关联的会话密钥对。
节点20a可以根据密钥生成合约确定具体的密钥接收对象,并根据密钥接收对象对应的数量确定密钥拆分的数量。例如,密钥接收对象可以包括节点10b、节点10c和节点10d,此时密钥拆分的数量为3。在得到会话密钥对之后,节点20a可以对会话密钥对中的会话私钥进行密钥拆分,得到3个会话私钥分片,并将这3个会话私钥分片分别分发至节点10b、节点10c和节点10d,即10b、节点10c和节点10d各保存一个会话私钥分片的。节点10b、节点10c和节点10d中的部分或全部节点可以使用各自接收到的会话私钥分片协同执行联合任务,进而可以提高数据安全性。
会话节点集合和区块链网络中的节点均可以称为计算机设备,该计算机设备可以为终端设备,或者可以为服务器,或者为终端设备和服务器组成的***,本申请实施例对此不做限定。终端设备可以包括但不限于:个人计算机、智能手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)、智能语音交互设备、智能家电(例如智能电视等)、车载设备、飞行器等电子设备,本申请对终端设备的类型不做限定。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
请一并参见图2,图2是本申请实施例提供的一种基于区块链的密钥分发的场景示意图。如图2所示,密钥请求对象30a、密钥接收对象33a、密钥接收对象33b和密钥接收对象33c可以临时组成会话节点集合协同处理联合任务。为了提高联合任务的数据安全性,可以通过会话密钥对将联合任务所涉及的对象数据进行加密或者添加数字签名后再进行传输或保存。
其中,密钥请求对象30a、密钥接收对象33a、密钥接收对象33b和密钥接收对象33c可以是来自同一个组织机构的节点,也可以是来自不同的组织机构的节点,本申请实施例对此不进行限定。会话节点集合中的密钥接收对象可以用于负责协同处理联合任务,包括但不限于提供执行联合任务所需的对象数据等。
密钥请求对象30a可以是会话节点集合中具有较高管理权限的节点,可以用于负责向区块链网络中的区块链节点(例如,例如,区块链节点30b)请求生成联合任务所关联的会话密钥对、负责向区块链节点30b上传密钥生成合约关联的合约交易数据、负责向会话节点集合中的密钥接收对象分发联合任务、以及负责联合任务管理和统筹等等。可选地,密钥请求对象30a也可以用于作为密钥接收对象,提供执行联合任务所需的对象数据等。为便于描述,本申请实施例以密钥请求对象和密钥接收对象为负责不同职责的节点为例进行描述,也就是说,在本申请实施例中,密钥请求对象和密钥接收对象分别是不同的节点。
如图2所示,用于对联合任务所涉及的对象数据进行加密或者添加数字签名的会话密钥可以由区块链节点30b调用密钥生成合约30c生成。具体地,密钥请求对象30a可以为会话节点集合中的各个密钥接收对象(例如,密钥接收对象33a、密钥接收对象33b和密钥接收对象33c)生成的会话密钥生成请求,并向区块链节点30b发送会话密钥生成请求,用于请求生成会话密钥;当区块链节点30b接收到密钥请求对象30a发送的会话密钥生成请求时,可以调用区块链中与的密钥生成合约30c,进而可以根据会话密钥生成请求执行密钥生成合约30c中的密钥生成逻辑,生成会话密钥对30d。其中,具体的会话密钥对生成过程将在下文进行详细描述,在此不再进行赘述。
如图2所示,会话密钥对30d可以包括会话公钥31a和会话私钥31b,其中,会话公钥31a可以用于加密数据或验证数字签名的有效性,会话公钥31a可以对所有节点公开;会话私钥31b可以用于解密通过会话公钥31a加密的数据、生成数字签名以及进行身份验证等。通常而言,会话私钥31b的安全性对于保护敏感信息和确保数字签名的可信度至关重要,因此,会话私钥31b一般是由会话密钥对30d的所有者(会话节点集合中的节点)持有或者委托可信的密钥管理对象保存。
可选地,区块链节点30b可以将会话私钥31b发送给密钥请求对象30a,当会话节点集合中的部分或者全部密钥接收对象接收到联合任务启动指令时,为了保证对象数据的完整性,可以向密钥请求对象30a请求会话私钥31b,通过会话私钥31b为对象数据添加数字签名。然而,这种方式会导致密钥请求对象30a的单点管理权限过大,一旦密钥请求对象30a的可信度无法得到保障,例如,密钥请求对象30a被攻击或者主动泄露会话私钥31b,就可能会造成密钥接收对象的对象数据泄露,导致数据安全性下降。
如图2所示,为了解决上述提及的单点权限过大的问题,区块链节点30b可以调用密钥生成合约30c中的密钥拆分逻辑,根据密钥接收对象所对应的对象数量,对会话私钥31b进行密钥拆分,得到会话私钥分片32a、会话私钥分片32b和会话私钥分片32c,并将会话私钥分片32a分发至密钥接收对象33a,将会话私钥分片32b分发至密钥接收对象33b,将会话私钥分片32c分发至密钥接收对象33c。其中,具体的密钥拆分过程将在下文进行详细描述,在此不再进行赘述。
在本申请实施中,可以设置N个会话私钥分片中的任意t个会话私钥分片可以组合重构出会话私钥,但是其中任何的t-1个会话私钥分片都无法组合重构出会话私钥。也就是说,这种密钥恢复方式,只需收集部分的会话私钥分片便可以进行密钥重构,可以防止出现部分会话私钥分片丢失,而导致会话私钥无法恢复的情形,从而可以提高密钥重构的容错性。此外,即使部分会话私钥分片丢失,其他对象也无法使用这部分会话私钥分片恢复得到会话私钥,因此可以提高会话私钥的安全性,进而可以提高数据安全性。其中,N表示会话私钥的拆分数量,t表示密钥重构的门限值。为便于描述,本申请实施例以N的取值为3,t的取值为2为例进行描述。
如图2所示,当密钥接收对象接收到联合任务启动指令之后,任意2个密钥接收对象(例如,密钥接收对象33a和密钥接收对象33c)可以提供用于执行联合任务所需的对象数据,并将自身的对象数据和会话私钥分片进行组合得到任务处理消息。具体地,密钥接收对象33a可以将对象数据a和会话私钥分片32a组合为任务处理消息34a,并将任务处理消息34a发送至消息联合对象30e请求消息联合;类似地,密钥接收对象33c可以将对象数据c和会话私钥分片32c组合为任务处理消息34c,并将任务处理消息34c发送至消息联合对象30e请求消息联合。其中,消息联合对象30e可以用于进行会话私钥的重构以及对象数据的聚合。
可以理解的是,消息联合对象30e可以是任意一个可信节点,例如,可以是区块链节点30b,也可以是区块链节点30b所属的区块链网络中的其他节点,或者也可以是另一个区块链网络中的区块链节点,还可以是链下任意的可信节点,本申请实施例对消息联合对象30e的节点类型不作限定。为便于描述,本申请实施例以区块链节点30b和消息联合对象30e为不同的节点进行描述。
如图2所示,消息联合对象30e在接收到任意两个任务处理消息(例如,任务处理消息34a和任务处理消息34c)之后,可以获取任务处理消息34a所携带的对象数据a和会话私钥分片32a,以及任务处理消息34c所携带的对象数据c和会话私钥分片32c,将对象数据a和对象数据c进行聚合,得到联合消息内容35b,对会话私钥分片32a和会话私钥分片32c进行密钥重构,得到重构私钥35a。其中,具体的密钥重构过程将在下文进行详细描述,在此不再进行赘述。进一步地,消息联合对象30e可以根据重构私钥35a为联合消息内容35b添加数字签名,并将联合消息内容35b和数字签名组合为任务联合消息35c。
理想情况下,重构私钥35a与会话私钥31b是一致的,然而,在实际应用中,密钥接收对象可能会向消息联合对象30e提供虚假的会话私钥分片,或者会话私钥分片在传输的过程中发生损坏或者被篡改等,导致重构私钥35a与会话私钥31b不一致,进而造成任务联合消息35c中的联合消息内容35b的真实性和完整性无法得到保障。为了解决上述问题,如图2所示,消息联合对象30e可以将任务联合消息35c发送至区块链节点30b进行签名验证。区块链节点30b在接收到任务联合消息35c之后,可以根据会话公钥31a对任务联合消息35c进行签名验证,当签名验证通过时,表明重构私钥35a与会话私钥31b一致,此时区块链节点30b可以将任务联合消息35c添加至区块链30f中,从而完成任务联合消息35c的存证。
在本申请实施例中,可以使用可信的区块链节点取代第三方作为密钥管理对象,通过调用密钥生成合约生成会话密钥对,将会话密钥对中的会话私钥进行密钥拆分处理,并将拆分得到的会话私钥分片分发给密钥接收对象,可以防止单个密钥接收对象的会话私钥泄露或者被攻击而导致数据泄露,从而可以提高数据安全性。
下面对本申请实施例所涉及的密钥分发方法进行详细描述。具体地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。可以理解地,该基于区块链的数据处理方法可以由区块链节点执行,该区块链节点可以为图1所示的网络架构所包含的区块链网络中的任意一个节点,例如,区块链节点20a。如图3所示,该基于区块链的数据处理方法可以包括以下步骤S101-步骤S103:
步骤S101:若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片。
N表示密钥接收对象的数量,N为大于1的整数,N的具体取值可以是2,3,4,5……。N个密钥接收对象可以临时生成任务会话,任务会话可以理解为临时创建的群组,N个密钥接收对象中的各个密钥接收对象可以在任务会话中建立临时通信连接,共同协商处理联合任务。可选地,当联合任务的处理状态更新为执行完成状态时,可以解散该任务会话;当需要执行新的联合任务时,再根据联合任务所涉及的密钥接收对象临时组建新的任务会话。其中,联合任务是指各个参与者相互协调、交互合作,贡献各自的能力和资源,共同完成一个特定的目标。具体地,联合任务可以包括但不限于:软件编译任务、多方安全计算任务、联邦学习任务等多方协同任务。
为了提高联合任务的数据安全性,可以通过会话密钥对将联合任务所涉及的对象数据进行加密或者添加数字签名后再进行传输或保存。具体地,密钥请求对象可以为N个密钥请求对象生成密钥生成请求,并将该密钥生成请求发送至业务区块链网络中的区块链节点中,请求区块链节点调用密钥生成合约,生成N个密钥请求对象相关联的会话密钥对。密钥生成请求可以包括但不限于:密钥请求对象在区块链上存储的对象地址、生成会话密钥对所需调用的合约地址、N个密钥接收对象的具体成员、密钥重构的门限值t、密钥生成请求对应的生成时间戳等请求参数。密钥请求对象可以是N个密钥接收对象中的任意一个对象,也可以是N个密钥接收对象以外的任意一个对象,本申请实施例对此不做限定。
其中,密钥生成合约是用于生成会话密钥的智能合约,可以理解的是,密钥生成合约在区块链中部署完成之后,才能进行密钥生成合约的调用。请一并参见图4,图4是本申请实施例提供的一种部署密钥生成合约的示意图。如图4所示,密钥请求对象40a可以获取密钥生成合约相关联的合约参数信息,合约参数信息可以包括但不限于:密钥请求对象在区块链上存储的对象地址、N个密钥接收对象的具体成员、密钥重构的门限值t、密钥生成逻辑、密钥拆分逻辑等参数。其中,密钥生成逻辑可以是指用于生成会话密钥的算法,可以包括但不限于:RAS算法、背包算法、椭圆曲线加密算法(ECC算法)等算法;密钥拆分逻辑可以是指用于拆分会话密钥的算法,可以包括但不限于:加密秘密分享算法、shamir秘密分享算法(也可以称为门限秘密分享算法)、线性秘密分享算法等算法。
具体地,密钥请求对象40a可以将合约参数信息转换为字节码。具体地,密钥请求对象40a可以对合约参数信息进行编译,例如,可以将高级语言编写的合约参数信息编译成区块链节点的虚拟机中的字节码,虚拟机可以用于解释执行密钥生成合约中的字节码。智能合约高级语言包括但不限于Solidity(一种智能合约编程语言)、Serpent(一种智能合约编程语言)、LLL(一种智能合约编程语言)。例如,在密钥请求对象40a中所生成的密钥合约数据可以是使用Solidity所编写的合约代码,密钥请求对象40a可以使用编译器将Solidity编写的合约参数信息编译成虚拟机字节码,进而将编译成虚拟机字节码确定为密钥生成合约对应的密钥合约数据,进而将密钥合约数据提交至业务区块链网络进行上链处理。
密钥请求对象40a在向业务区块链网络上传密钥合约数据之前,可以采用密钥请求对象40a对应的业务私钥为密钥合约数据添加业务数字签名,以防止密钥合约数据在传输过程中被篡改,具体的签名生成方式可以参考下述步骤S103的描述,在此不再进行赘述。区块链节点40b接收到密钥请求对象40a发送的密钥生成合约相关联的密钥合约数据之后,可以对密钥合约数据进行有效性验证,该有效性验证可以包括验签过程,具体的验签过程可以参考下述步骤S103的描述,在此不再进行赘述。
当密钥合约数据验签通过时,表明密钥合约数据在传输过程中没有被篡改。此时可以区块链节点40b可以将密钥合约数据封装为合约交易区块,例如,可以将密钥合约数据封装为合约交易数据,并将该合约交易数据存储至交易池;进而可以按照合约交易数据在交易池中的排序,将合约交易数据封装为合约交易区块40c;合约交易区块40c可以包含交易池中的其他合约交易数据,即除了打包区块链节点40b对应的合约交易数据之外,还可以打包其余区块链节点对应的合约交易数据。
区块链节点40b可以在业务区块链网络中对该合约交易区块40c进行广播,以使业务区块链网络中的共识节点均可以接收到该合约交易区块40c,业务区块链网络中的共识节点可以对接收到的合约交易区块40c进行共识处理。例如,可以对合约交易区块40c中所包含的每笔交易数据均进行验证、对生成该合约交易区块40c的区块链节点进行验证等;共识节点得到针对该合约交易区块40c的验证结果后,可以在业务区块链网络中对验证结果进行广播,因此在正常网络通信下,区块链节点均可以获取业务区块链网络中每个共识节点针对合约交易区块40c的验证结果。
进一步地,区块链节点40b可以对每个共识节点分别对应的验证结果进行统计,获取合约交易区块40c在业务区块链网络中的共识投票数量,即业务区块链网络中针对合约交易区块40c的验证结果为验证通过的节点数量;若共识投票数量大于或等于数量阈值(此处的数量阈值可以根据业务区块链网络中所使用的共识算法来确定,例如,数量阈值可以设置为区块链网络中所包含的共识节点数量的2/3),则可以确定合约交易区块40c在业务区块链网络中达成共识。其中,共识算法可以包括但不限于:工作量证明(Proof of Work,PoW)算法、权益证明(Proof of Stake,PoS)算法、DPoS算法、实用拜占庭容错(PracticalByzantine Fault tolerance,PBFt)算法等共识算法,本申请实施例对此不做限定。
合约交易区块40c在共识通过之后,可以根据区块链节点40b所存储的区块链中的最大区块高度,对合约交易区块40c的区块高度进行更新,将更新后的合约交易区块40c存储在区块链节点40b的本地数据库中,此时更新后的合约交易区块40c为区块链节点40b本地数据库中的区块M+k,M+k用于表征更新后的合约交易区块40c在本地区块链中的区块顺序,M和k均为大于或等于0的整数。此时,在区块链中完成了密钥生成合约40d的部署过程,密钥生成合约40d的状态可以确定为发布成功状态。进一步地,区块链节点40b可以生成密钥生成合约40d对应的合约地址,并向密钥请求对象40a返回密钥生成合约40d对应的合约地址,该合约地址可以用于调用密钥生成合约40d。密钥请求对象40a可以在会话密钥生成请求中携带该合约地址,以便区块链节点根据该合约地址调用密钥生成合约40d。
可以理解的是,由于区块链的不可篡改性,密钥生成合约在区块链中部署完成后,就无法进行源代码的修改。若密钥接收对象发生更新,例如,密钥接收对象的数量增加或者减少,或者密钥接收对象发生变化,则密钥请求对象可以重新向区块链节点重新部署新的密钥生成合约。或者,可以使用代理合约更新该密钥生成合约,从而使得更新后的密钥生成合约适配新的密钥接收对象。
在本申请实施例中,区块链节点40b在接收到会话密钥生成请求之后,可以调用密钥生成合约40d,进而可以在虚拟机中执行密钥生成合约40d中的合约代码,合约代码可以自动判断当前所处的场景是否满足合约触发条件,并严格执行合约响应规则,根据密钥生成合约40d的密钥生成逻辑,生成与N个密钥接收对象相关联的会话密钥对。
会话密钥对可以包括会话公钥和会话私钥。其中,会话公钥可以用于加密、解密数据或验证数字签名的有效性。一般而言,会话公钥可以对所有节点公开,例如,区块链节点可以将会话公钥整个业务区块链网络中广播,以便所有的区块链节点均可以获取会话公钥;当密钥接收对象是链下的节点时,区块链节点可以单独向各个密钥接收对象发送会话公钥。会话私钥可以用于解密通过会话公钥加密的数据、加密数据、生成数字签名以及进行身份验证等。由于会话私钥的安全性对于保护敏感信息和确保数字签名的可信度至关重要,因此,会话私钥不对外共享。
在一种可能的实施方式中,会话密钥对的生成过程可以包括:调用区块链中的密钥生成合约,生成第一密钥随机数和第二密钥随机数,获取第一密钥随机数和第二密钥随机数之间的欧拉函数值;获取第三密钥随机数,进而根据第三密钥随机数、以及第一密钥随机数和第二密钥随机数之间的乘积,生成会话公钥;根据第三密钥随机数、欧拉函数值、以及第一密钥随机数和第二密钥随机数之间的乘积,生成会话私钥;并将会话公钥和会话私钥确定为与N个密钥接收对象相关联的会话密钥对。
其中,第一密钥随机数和第二密钥随机数可以是两个不相等的整数。可选地,可以将任意两个互质的正整数确定为第一密钥随机数和第二密钥随机数。可选地,还可以根据会话密钥生成请求对应的接收时间戳或者生成时间戳,生成第一密钥随机数和第二密钥随机数。例如,可以将会话密钥生成请求对应的接收时间戳确定为第一密钥随机数;对第一密钥随机数进行数据填充,得到随机填充值,对随机填充值进行拆分处理,得到P个分段填充值;P为大于1的整数;P的具体取值可以是2,3,4……。进一步地,可以获取压缩函数的第i个输入数据;i为1时,第i个输入数据包括初始压缩值和P个分段填充值中的第一个分段填充值;i不为1时,第i个输入数据包括压缩函数的第i-1个输出数据和P个分段填充值中的第i个分段填充值;i为小于或等于P的正整数;i具体取值可以是2,3,4……P;进而可以根据第i个输入数据和压缩函数,确定压缩函数对应的第i个输出数据,将压缩函数对应的第P个输出数据确定为第二密钥随机数,从而可以提高密钥随机数的随机性。
其中,压缩函数是用于将输入数据压缩为固定长度的数据的函数。初始压缩值是压缩函数的初始状态或起始值,其具体取值可以根据实际情况确定。压缩函数可以包括但不限于:循环左移函数、模加运算函数、异或操作函数、布尔函数、置换函数等函数。
具体地,请参见图5,图5是本申请实施例提供的一种生成密钥随机数的示意图。如图5所示,在获取到第一密钥随机数之后,可以对第一密钥随机数进行数据填充,得到随机填充值。可选地,为确保数据一致性,可以先将第一密钥随机数进行格式转换,例如,将第一密钥随机数转换为二进制或者十六进制等等。在本申请实施例中,可以将数字“1”添加到第一密钥随机数的末尾,再添加k个数字“0”,k是满足I+1+k≡448mod512的最小的非负整数,I比特是第一密钥随机数的长度,≡表示同余,mod表示模运算。然后再添加一个64位比特串的填充数据,该64位比特串是长度I的二进制表示,最后得到512的正整数倍,即随机填充值的位数为512×P。
如图5所示,可以将512×P位的随机填充值按512位进行拆分处理,则得到P个分段填充值,分别为分段填充值1、分段填充值2、……、分段填充值P,每个分段填充值均为512位。可以将初始压缩值和P个分段填充值代入压缩函数,进行P次迭代运算,第一次迭代运算中,压缩函数输入数据包括初始压缩值和分段填充值1;其后的迭代运算中,压缩函数的输入数据包括上一个压缩函数的输出数据,以及本次迭代运算对应的分段填充值,可以将第P次迭代运算的输出数据确定为第二密钥随机数。
可选地,得到P个分段填充值之后,还可以将P个分段填充值中的每一个分段填充值扩展为132个消息字,其中每一个分段填充值的前16个消息字(w1-w16)是根据当一个分段填充值中的512位数据生成,一个消息字为32字节,后续的第17到第132个消息字根据置换函数扩展生成,其中,生成第17到第68个消息字所采用的置换算法与生成第69到第132个消息字所采用的置换函数不同,最后分段填充值1扩展为扩展填充值1,分段填充值2扩展为扩展填充值2,……,分段填充值P扩展为扩展填充值P。将初始压缩值IV存到字寄存器ABCDEFGH中,将初始压缩值和P个扩展填充值代入压缩函数,进行P次迭代运算,每次迭代运算的计算结果作为下一次压缩函数的初始压缩值,最后得到256位的字寄存器ABCDEFGH的拼接结果,将该256位的拼接结果确定为第二密钥随机数。
在本申请实施例中,欧拉函数值可以根据第一密钥随机数和第二密钥随机数生成。例如,欧拉函数值可以表示为φ(n)=(p-1)×(q-1),其中,φ(n)表示欧拉函数值,p表示第一密钥随机数,q表示第二密钥随机数。进而可以从与欧拉函数值互为质数,且小于欧拉函数值的整数中,随机选择一个数值作为第三密钥随机数。换言之,第三密钥随机数e满足1<e<φ(n),且第三密钥随机数e与欧拉函数值φ(n)互为质数。
进一步地,可以计算第一密钥随机数p和第二密钥随机数q之间的乘积n,并根据第三密钥随机数e,以及乘积n生成会话公钥,会话公钥可以表示为(n, e);进而可以根据第三密钥随机数e,欧拉函数值φ(n)计算候选值d,使得(d×e)modφ(n)=1,其中,mod表示模运算,并根据候选值d以及乘积n生成会话私钥,会话私钥可以表示为(n, d);将会话公钥和会话私钥确定为与N个密钥接收对象相关联的会话密钥对。可以理解的是,在本申请实施例中,通过第一密钥随机数和第二密钥随机数构建会话密钥对,可以提高会话密钥对的安全性。
为了防止会话私钥被单点失陷导致的密钥泄露,从而造成数据泄露的风险,在生成会话密钥对之后,可以将会话密钥对中的会话私钥进行密钥拆分,得到N个会话私钥分片,由不同的密钥接收对象保存不同的会话私钥分片。其中,会话私钥分片是会话私钥中的部分元素。
在本申请实施中,调用密钥生成合约生成会话密钥是一种安全、可验证和可信任的密钥生成方式。也就是说,调用密钥生成合约生成的会话密钥具有可验证性,可以通过密钥生成合约验证会话私钥分片的完整性和正确性。具体地,可以设置N个会话私钥分片中的任意t个会话私钥分片可以组合重构出会话私钥,但是其中任何的t-1个会话私钥分片都无法组合重构出会话私钥。其中,t表示密钥重构的门限值,t为大于1且小于或等于N的正整数,t的具体取值可以是2,3,4,5……。换言之,本申请实施例的密钥恢复方式,只需收集部分的会话私钥分片便可以进行密钥重构,可以防止出现部分会话私钥分片丢失,而导致会话私钥无法恢复的情形,从而可以提高密钥重构的容错性。此外,即使部分会话私钥分片丢失,其他对象也无法使用这部分会话私钥分片恢复得到会话私钥,因此可以提高会话私钥的安全性,进而可以提高数据安全性。
在一种可能的实施方式中,会话私钥的密钥拆分过程可以包括:获取第四密钥随机数,以及获取t-1个第一分片系数;其中,第四密钥随机数可以是随机生成的一个数值,例如,可以是第一密钥随机数和第二密钥随机数之间的乘积,可以是当前的时间戳生成的数值;t-1个第一分片系数均不同,且t-1个第一分片系数均小于第四密钥随机数。也就是说,可以从小于第四密钥随机数中的数值中任意选取t-1个不同的数值作为第一分片系数。进而可以根据会话密钥对中的会话私钥、第四密钥随机数、以及t-1个第一分片系数构建密钥拆分函数,并在密钥拆分函数中确定N个初始私钥分片。其中,密钥拆分函数是指用于进行密钥拆分所使用的函数。
举例而言,可以确定会话私钥的拆分数量N和密钥重构的门限值t,例如,N=5,t=3;确定第四密钥随机数,例如/>=17,假设会话私钥/>=17;确定t-1个第一分片系数,例如,第一分片系数h1=10,第一分片系数h2=2;进而构建密钥拆分函数。其中,/>表示初始私钥分片,/>表示第/>个密钥接收对象,/>为小于或等于N的正整数,/>与/>的取值相同。将会话私钥/>=17、第一分片系数h1=10、第一分片系数h2=2、第四密钥随机数/>=17,代入密钥拆分函数/>,得到各个初始私钥分片。例如,得到初始私钥分片、初始私钥分片、初始私钥分片、初始私钥分片、初始私钥分片。
为了提高初始私钥分片的安全性,防止在初始私钥分片在传输过程中被篡改或者泄露,可以获取N个密钥接收对象分别对应的对象公钥,通过对象公钥对初始私钥分片进行加密处理,将加密后的初始私钥分片确定为会话私钥分片。各个密钥接收对象对应的对象公钥的生成过程可以参考上文会话公钥的生成过程的描述,在此不再进行赘述。可选地,还可以将初始私钥分片确定为会话私钥分片,从而可以快速得到会话私钥分片。
步骤S102:将N个会话私钥分片分发给N个密钥接收对象,以使N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息。
在得到N个会话私钥分片之后,可以将N个会话私钥分片分发给N个密钥接收对象,其中,一个密钥接收对象对应一个会话私钥分片,密钥接收对象只可以持有自己的会话私钥分片,无法获取其他密钥接收对象对应的会话私钥分片。可以理解的是,若会话私钥分片是使用密钥接收对象对应的对象公钥对初始私钥分片进行加密得到的,那么可以会话私钥分片分发至其对象公钥所属的密钥接收对象中。
在本申请实施例中,N个密钥接收对象在接收到联合任务启动指令之后,可以将自身的对象数据和会话私钥分片进行组合得到任务处理消息。也就是说,任务处理消息可以包括但不限于:会话私钥分片以及执行联合任务所需密钥接收对象的对象数据。可以理解的是,在本申请实施例中,N个密钥接收对象中的任意t个或t个以上的密钥接收对象可以协同完成联合任务,任意小于t个密钥接收对象由于缺乏必要的数据无法完成联合任务。因此,需要收集t个或t个以上的任务处理消息才能完成联合任务。可选地,任务管理对象(例如,任一个密钥请求对象)可以从N个密钥接收对象中选取t个密钥接收对象执行联合任务,t个密钥接收对象可以是随机选取的,或者也可以是选取N个密钥接收对象中前t个具有最大的可用资源剩余量的密钥接收对象来执行联合任务,本申请实施例对执行联合任务的至少t个密钥接收对象不做限定。
步骤S103:获取与N个密钥接收对象相关联的任务联合消息,根据会话密钥对中的会话公钥对任务联合消息进行签名验证。
其中,任务联合消息可以包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;其中,数字签名是根据重构私钥进行签名得到的,重构私钥可以是由t个密钥接收对象对应的会话私钥分片恢复的。为便于描述,本申请实施例以t的取值是3为例进行说明。
请参见图6,图6是本申请实施例提供的一种生成任务联合消息的示意图。如图6所示,当密钥接收对象接收到联合任务启动指令之后,任意2个密钥接收对象(例如,密钥接收对象60a、密钥接收对象60b和密钥接收对象60c)可以提供用于执行联合任务所需的对象数据。可选地,为了进一步提高数据安全性,可以对密钥接收对象的对象数据进行混淆处理,得到混淆数据,并将混淆数据确定为任务消息内容。混淆处理的方式可以包括但不限于:数据加密、添加噪声等方式。例如,可以将密钥接收对象60a对应的对象数据61a进行同态加密处理,得到混淆数据62a;可以将密钥接收对象60b对应的对象数据61b加减随机数,得到混淆数据62b;可以将密钥接收对象60c对应的对象数据61c进行脱敏处理,得到混淆数据62c等。
进一步地,可以根据混淆数据和会话私钥分片生成任务处理消息。例如,密钥接收对象60a可以将混淆数据62a和会话私钥分片63a组合为任务处理消息64a,并将任务处理消息64a发送至区块链节点65;类似地,密钥接收对象60b可以将混淆数据62b和会话私钥分片63b组合为任务处理消息64b,并将任务处理消息64b发送至区块链节点65;密钥接收对象60c可以将混淆数据62c和会话私钥分片63c组合为任务处理消息64c,并将任务处理消息64c发送至区块链节点65。当区块链节点接收到任务处理消息64a、任务处理消息64b和任务处理消息64c时,可以对各个任务处理消息进行消息联合处理,得到任务联合消息66。具体地,可以获取各个任务处理消息携带的会话私钥分片和任务消息内容;可以将各个密钥接收对象对应的任务消息内容(混淆数据)组合为的联合消息内容,并根据密钥拆分函数将各个密钥接收对象分别对应的会话私钥分片进行密钥重构,得到重构私钥。
假设密钥接收对象60a、密钥接收对象60b和密钥接收对象60c对应的会话私钥分片分别为:会话私钥分片、会话私钥分片/>、会话私钥分片/>;可以将、/>和/>分别代入密钥拆分函数/>,得到:、、;对上述方程联合求解,得到重构私钥=17。
在得到重构私钥之后,可以使用重构私钥对联合消息内容进行签名,生成联合消息内容对应的数字签名。具体地,可以将联合消息内容输入至哈希算法对应的哈希函数中,生成消息摘要;并通过重构私钥对消息摘要进行加密,得到联合消息内容对应的数字签名,将联合消息内容和数字签名组合为任务联合消息66。其中,哈希算法可以将数据或者消息压缩成摘要,不仅可以将数据的格式固定下来,还可以使数据量变小。哈希函数是指哈希算法算使用到的函数,具体可以包括但不限于SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512等函数。
可以理解的是,在实际应用中,密钥接收对象可能会提供虚假的会话私钥分片,或者会话私钥分片在传输的过程中发生损坏或者被篡改等,导致重构私钥与会话私钥不一致,进而造成任务联合消息中的联合消息内容的真实性和完整性无法得到保障。为了解决上述问题,本申请实施例可以为重构私钥提供验证机制。
具体地,区块链节点在获取到任务联合消息之后,可以获取任务联合消息所携带的数字签名,以及会话密钥对中的会话公钥,通过会话公钥对数字签名进行解密,得到数字签名对应的第一摘要信息,进而根据哈希算法(与生成数字签名时所采用的哈希算法一致)对任务联合消息进行哈希运算,得到实际收到的任务联合消息对应的第二摘要信息。若第一摘要信息与第二摘要信息相同,则表示重构私钥和会话私钥是一致的,任务联合消息中的联合消息内容也没有被篡改,因此可以确定任务联合消息对应的签名验证结果为验证通过结果,此时将任务联合消息添加至区块链,具体的上链过程可以参考上述密钥生成合约的上链过程,在此不再进行赘述。
若第一摘要信息与第二摘要信息不同,则确定重构私钥和会话私钥是不一致的,因此任务联合消息未通过验证。在这种情况下,可以生成任务联合消息对应的告警提示信息,将告警提示信息发送至任务联合消息所对应的N个密钥接收对象,N个密钥接收对象在接收到告警提示信息之后,可以根据各自接收的会话私钥分片重新生成任务处理消息。
在本申请实施例中,区块链节点在接收到会话密钥生成请求时,可以通过调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对;进而对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片,并将N个会话私钥分片分发给N个密钥接收对象。N个密钥接收对象可以根据各自接收到的会话私钥分片生成任务处理消息,N个密钥接收对象中的t个密钥接收对象对应的任务处理消息可以生成任务联合消息。其中,任务联合消息可以包括数字签名,以及由t个任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个会话私钥分片恢复的。由此可见,本申请实施例使用可信的区块链节点取代第三方作为密钥管理对象,通过调用密钥生成合约生成会话密钥对,将会话密钥对中的会话私钥进行密钥拆分处理,并将拆分得到的会话私钥分片分发给密钥接收对象,可以防止单个密钥接收对象的会话私钥泄露或者被攻击而导致数据泄露,从而可以提高数据安全性。
请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理方法的时序示意图。可以理解地,该基于区块链的数据处理方法可以由区块链节点(例如,图1所对应的实施例中的节点20a)、密钥接收对象(例如,图1所对应的实施例中的节点10b、节点10c和节点10d)、消息联合对象(例如,图1所对应的实施例中的节点10a)交互执行。如图7所示,该基于区块链的数据处理方法可以包括以下步骤S201-步骤S214:
步骤S201:接收会话密钥生成请求,生成会话密钥生成请求关联的任务会话,记录任务会话对应的密钥接收对象的数量N、密钥重构门限值t、任务会话标识。
当区块链节点接收到密钥请求节点发送的会话密钥生成请求时,可以根据会话密钥生成请求获取密钥接收对象的数量N和密钥重构门限值t等信息,并生成会话密钥生成请求关联的任务会话。该任务会话可以包括但不限于:密钥接收对象的数量N、密钥重构门限值t、任务会话标识信息、密钥接收对象的对象公钥、密钥请求对象的对象地址等信息。
步骤S202:获取与会话密钥生成请求相关联的合约地址,在区块链存储的业务智能合约中查找与合约地址相关联的密钥生成合约,获取与密钥生成合约相关联的权限白名单。
步骤S203:获取与会话密钥生成请求相关联的密钥请求对象在区块链上的对象地址,若对象地址属于权限白名单,则调用密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对。
为了进一步提高数据安全性,可以为密钥生成合约设置权限白名单,若密钥请求对象对应的对象地址在权限白名单内,则可以调用该密钥生成合约以生成会话密钥,否则无法调用该密钥生成合约。
权限白名单中的对象的添加过程可以包括:密钥请求对象可以访问身份注册平台的注册页面。在该注册页面中可以输入该密钥请求对象对应的对象认证信息,在完成对象认证信息的输入操作后,可以对注册页面中的“提交”控件执行触发操作,密钥请求对象所使用的电子设备可以响应针对“提交”控件触发操作,生成针对该密钥请求对象的身份注册请求,进而可以将该身份注册请求转发给区块链节点。可以理解的是,该身份注册请求可以采用交易的形式发送给区块链节点,该身份注册请求还可以携带密钥请求对象对应的数字签名,数字签名的生成方式可以参考上文的描述,在此不再进行赘述。
区块链节点在接收密钥请求对象发送的身份注册请求之后,可以使用该密钥请求对象对应的业务公钥验证身份注册请求所携带的数字签名的正确性,若该身份注册请求所携带的数字签名是正确的,那么区块链节点可以基于该身份注册请求获取密钥请求对象对应的对象认证信息,并对获取到的对象认证信息进行验证,得到对象认证信息对应的身份认证结果。
其中,密钥请求对象对应的对象认证信息可以包括但不限于:企业资质信息、脸部采集信息、对象基本信息等;例如,当密钥请求对象指示企业、机构等团体时,该对象认证信息可以为企业资质信息;当密钥请求对象指示个人时,该节点认证信息可以为脸部采集信息、对象基本信息等,该对象认证信息可以根据实际应用场景来确定,本申请实施例对对象认证信息的类型不做限定。该对象认证信息对应的身份认证结果可以为认证成功结果,或者可以为认证失败结果,认证成功结果用于表示区块链节点所获取到的对象认证信息为密钥接收对象的有效信息,即该对象认证信息是受认可的;认证失败结果用于表示区块链节点所获取到的对象认证信息为密钥接收对象的无效信息,即该对象认证信息是不被认可的。
若身份认证结果指示认证成功,则可以生成密钥请求对象对应的对象地址,将该对象地址进行上链处理,上链完成之后,可以将该密钥请求对象对应的对象地址添加至密钥生成合约关联的权限白名单。若对象认证信息认证失败,则表示该对象认证信息为无效信息,可以通知密钥请求对象重新进行身份注册,直至对象认证信息认证成功之后,再将密钥请求对象对应的对象地址添加至权限白名单。
在本申请实施例中,当区块链节点接收到密钥请求对象发送的会话密钥生成请求时,可以根据权限白名单确定密钥请求对象是否具有密钥生成合约的调用权限。具体地,请参见图8,图8是本申请实施例提供的一种调用密钥生成合约的示意图。如图8所示,密钥请求对象50a可以向区块链节点50b发送会话密钥生成请求,区块链节点50b可以获取会话密钥生成请求所携带的合约地址,将该合约地址作为查询标识,从区块链存储的业务智能合约中查找到与该合约地址相关联的密钥生成合约50c。
进一步地,可以获取密钥生成合约50c所关联的权限白名单50d,以及获取密钥请求对象50a在区块链上的对象地址,根据该对象地址对密钥请求对象50a进行权限验证。具体地,可以将该对象地址与权限白名单50d所包含的地址(例如,对象地址1、对象地址2、对象地址3、对象地址4等)进行比对,若密钥请求对象50a对应的对象地址在权限白名单50d内,则表示该密钥请求对象50a权限认证成功,此时区块链节点50b可以调用该密钥生成合约50c,生成N个密钥接收对象相关联的会话密钥对50e,会话密钥对的生成方式可以参考图3所述对应的实施例中的步骤S101的描述,在此不再进行赘述。若密钥请求对象50a对应的对象地址不在权限白名单50d内,则表示该密钥请求对象50a权限认证失败,此时区块链节点50b可以生成认证失败提示消息,并将该认证失败提示消息返回至密钥请求对象50a,密钥请求对象50a在接收到认证失败提示消息之后,可以向区块链节点50b提交身份注册请求,请求加入权限白名单50d。
步骤S204:获取N个第二分片系数。
其中,第二分片系数是预先设置的数值,N个第二分片系数满足以下关系:N个第二分片系数中的任意两个第二分片系数互为质数;在单调递增的N个第二分片系数中,前t个第二分片系数的乘积大于会话密钥对中的会话私钥,且后t-1个第二分片系数的乘积小于会话私钥。举例而言,可以确定会话私钥的拆分数量N和密钥重构的门限值t,例如,N=5,t=3;确定N个第二分片系数,例如:第二分片系数d1=4、第二分片系数d2=5、第二分片系数d3=7、第二分片系数d4=9和第二分片系数d5=11。假设会话私钥Key=117,那么第二分片系数满足:d1d2d3>K>d4d5。
步骤S205:获取会话私钥与N个第二分片系数中的第x个第二分片系数之间的模运算结果Kx,将第x个第二分片系数和模运算结果Kx,确定为N个密钥接收对象中的第x个密钥接收对象对应的初始私钥分片。
其中,x为小于或等于N的正整数,x的具体取值可以是1,2,3……N。各个密钥接收对象的初始私钥分片的获取过程是类似的,为便于理解,下面以N个密钥接收对象中的任意一个密钥接收对象(例如,第x个密钥接收对象)为例,对密钥接收对象的初始私钥分片的获取过程进行描述。
具体地,可以获取会话私钥与第x个第二分片系数之间的模运算结果Kx,例如,Kx≡Key mod dx;其中,Kx表示第x个密钥接收对象对应的模运算结果,Key表示会话私钥;dx表示第x个密钥接收对象对应的第二分片系数;≡表示同余;mod表示模运算。进一步地,可以将第x个第二分片系数和模运算结果Kx,确定为N个密钥接收对象中的第x个密钥接收对象对应的初始私钥分片yx,例如,初始私钥分片yx=(Kx, dx)。可以理解的是,本申请实施例涉及到的N个密钥接收对象对应的初始私钥分片均可以按照上述方式获取,此处不再对各个密钥接收对象对应的初始私钥分片的获取过程进行一一描述。可选地,还可以将初始私钥分片确定为会话私钥分片,从而可以快速得到会话私钥分片。
步骤S206:获取N个密钥接收对象分别对应的对象公钥,通过对象公钥对N个密钥接收对象对应的初始私钥分片进行加密处理,得到N个会话私钥分片。
在得到N个密钥接收对象分别对应的初始私钥分片之后,可以获取N个密钥接收对象分别对应的对象公钥,通过对象公钥对初始私钥分片进行加密处理,将加密后的初始私钥分片确定为会话私钥分片,从而可以提高会话私钥分片的安全性。
步骤S207:将会话私钥分片分发给密钥接收对象1。
步骤S208:将会话私钥分片分发给密钥接收对象2。
步骤S209:将会话私钥分片分发给密钥接收对象3。
在得到N个会话私钥分片之后,可以将N个会话私钥分片分发给N个密钥接收对象,例如,区块链节点可以将密钥接收对象1对应的会话私钥分片发送给密钥接收对象1,将密钥接收对象2对应的会话私钥分片发送给密钥接收对象2,将密钥接收对象3对应的会话私钥分片发送给密钥接收对象3,……,将密钥接收对象N对应的会话私钥分片发送给密钥接收对象N。其中,一个密钥接收对象对应一个会话私钥分片,密钥接收对象只可以持有自己的会话私钥分片,无法获取其他密钥接收对象对应的会话私钥分片。例如,区块链节点将密钥接收对象1对应的会话私钥分片发送给密钥接收对象1,密钥接收对象1无法获取密钥接收对象2和密钥接收对象3的会话私钥分片。
可以理解的是,区块链节点可以同时将各个会话私钥分片分发给各个密钥接收对象,也可以是按照一定的顺序先后将各个会话私钥分片分发给各个密钥接收对象,本申请实施例对会话私钥分片的分发顺序不做限定。
步骤S210:密钥接收对象1发送任务处理消息。
步骤S211:密钥接收对象2发送任务处理消息。
在本申请实施例中,N个密钥接收对象在接收到联合任务启动指令之后,可以将自身的对象数据、会话私钥分片以及任务会话标识进行组合得到任务处理消息,从而协同执行联合任务。例如,密钥接收对象1可以根据自身的对象数据、会话私钥分片以及任务会话标识进行组合得到任务处理消息,密钥接收对象2可以根据自身的对象数据、会话私钥分片以及任务会话标识进行组合得到任务处理消息等等。在得到任务处理消息之后,各个密钥接收对象可以将任务处理消息发送至消息联合对象。
可选地,各个密钥接收对象可以将各自接收到的会话私钥分片用在多个联合任务的数据处理中;可选地,为了进一步提高数据安全性,会话私钥分片也可以只用于处理一个联合任务,当接收到新的联合任务时,再采用新的会话私钥分片对新的联合任务所涉及的数据进行加密或者添加数字签名,以防止重构私钥的泄露,进而导致数据泄露。
步骤S212:根据t个任务处理消息,生成任务联合消息。
步骤S213:发送任务联合消息。
可以理解的是,在本申请实施例中,N个密钥接收对象中的任意t个或t个以上的密钥接收对象可以协同完成联合任务,任意小于t个密钥接收对象由于缺乏必要的数据无法完成联合任务。因此,消息联合对象需要收集t个或t个以上的具有相同任务会话标识的任务处理消息。可选地,消息联合对象可以设置消息联合时间段,当到达消息联合时间段的截止时间时,统计消息联合时间段内接收到的任务处理消息的数量,若具有相同任务会话标识的任务处理消息的数量不满t个,则将联合任务对应的任务状态为任务无效状态(也可以称为任务作废状态),并生成状态提示消息,将该状态提示消息发送至该联合任务对应的任务管理对象。若具有相同任务会话标识的任务处理消息的数量大于或等于t个,则获取各个任务处理消息的消息接收时间戳,根据前t个消息接收时间戳所对应的t个任务处理消息,生成任务联合消息。
在本申请实施例中,消息联合对象可以是任意一个可信节点,例如,消息联合对象可以部署有可信执行环境(Trusted Execution Environment,TEE)。可信执行环境是基于硬件的安全计算平台,其具有固有的签注密钥用于保护数据隐私和认证数据完整性、来源可靠性等;可信执行环境与外部有存储器屏障,即外部(包括操作***)没有可信执行环境域内存储空间的访问权限,使得可信执行环境域内的数据、程序逻辑在没有主动输出的情况下无法被外部环境获取。
其中,任务联合消息的生成过程(包括数据聚合过程和密钥重构过程等)可以在消息联合对象中的可信执行环境中完成。即消息联合对象在可信执行环境中对t个任务处理消息所携带的对象数据进行数据聚合,得到对象聚合数据。可选地,为了进一步提高数据安全性,可以在可信执行环境对对象聚合数据进行混淆处理(例如,数据加密、添加噪声等),得到联合消息内容。消息联合对象也可以在可信执行环境中对t个任务处理消息所携带的会话私钥分片进行密钥重构,得到重构私钥。
假设第x个会话私钥分片表示为,其中,/>表示第x个会话私钥分片;表示第x个模运算结果;/>表示第x个第二分片系数。接收到的t个会话私钥分片分别为:会话私钥分片/>、会话私钥分片/>,会话私钥分片/>。可以将各个会话私钥分片分别代入/>,得到:/>、/>、/>;对上述方程联合求解,得到重构私钥/>=117。
在得到重构私钥之后,消息联合对象可以在可信执行环境中使用重构私钥对联合消息内容进行签名,生成联合消息内容对应的数字签名,可以将联合消息内容、数字签名以及密钥接收对象对应的会话标识组合为任务联合消息,并向区块链节点发送给任务联合消息。其中,数字签名的生成过程可以参考上文的描述,在此不再进行赘述。
在本申请实施例中,区块链节点从任务联合消息中只能获取联合消息内容和重构私钥,无法获取到联合消息内容和会话私钥分片具体来自哪个密钥接收对象,从而保证了数据可用不可见,提升了数据安全性。
可选地,密钥接收对象在向消息发送密钥生成请求之前,还可以先对密钥生成装置运行的可信执行环境进行远程认证,以确保任务联合消息生成的逻辑没有收到篡改。具体地,密钥接收对象可以向消息联名对象发送远程证明请求,其中,远程证明请求中可以携带随机字符串,该随机字符串可以包含随机生成的数字、字母或者特殊符号中的一种或者多种。消息联合对象在接收到该远程证明请求之后,可以根据该随机字符串以及消息联合对象对应的属性信息生成远程证明;消息联合对象对应的属性信息可以包括但不限于:消息联合对象对应的设备标识、硬件配置信息、安全功能信息、设备状态信息等等。进而可以向密钥接收对象发送远程证明,密钥接收对象在接收到远程证明之后,可以在区块链中查询该远程证明的真实性,若该远程证明验证通过,则可以确定消息联合对象的执行环境是可信执行环境,可以向该消息联合对象发送任务处理消息。
步骤S214:获取任务联合消息,根据任务联合消息携带的任务会话标识查找会话密钥对中的会话公钥,根据会话公钥对任务联合消息进行签名验证。
区块链节点可以接收消息联合对象发送的任务联合消息,获取任务联合消息携带的任务会话标识,将任务会话标识作为查询标识,从区块链中查询该任务会话标识所对应的任务会话,获取该任务会话所对应的会话公钥,并通过该会话公钥对任务联合消息进行签名验证。具体的签名验证过程可以参考图3所对应的实施例中的步骤S103的描述,在此不再进行赘述。
可选地,本申请实施例所涉及的联合任务可以是为联邦学习任务,例如,N个医疗机构提供相应的医疗数据训练疾病预测模型。此时,密钥接收对象可以是医疗机构,对象数据可以是医疗数据。具体地,N个医疗结构可以临时组成任务会话,任务会话中的任意一个医疗机构可以将会话密钥生成请求发送至区块链网络,接收到会话密钥生成请求之后,可以调用区块链中的密钥生成合约,生成该任务会话关联的会话密钥对。
进一步地,可以根据任务会话所涉及的医疗机构的数量,将会话密钥对中的会话私钥拆分成N个会话私钥分片,将N个会话私钥分片发送至N个医疗机构。当N个医疗结构接收到联邦学习任务启动请求之后,可以将自身的医疗数据与会话私钥分片组合为任务处理消息,并将该任务处理消息发送至消息联合节点(任意一个可信节点);消息联合节点在接收到t个任务处理消息之后,可以根据t个任务处理消息所携带的对象数据和会话私钥分片,生成任务联合消息,并向区块链节点上传该任务联合消息。其中,任务联合消息的数字签名是根据重构私钥进行签名得到的,重构私钥可以是由t个医疗机构对应的会话私钥分片恢复的;任务联合消息的联合消息内容是根据t个医疗机构对应的医疗数据聚合得到的。
区块链节点在接收到t个医疗机构对应的任务联合消息之后,根据会话密钥对中的会话公钥对任务联合消息进行签名验证,签名验证通过之后,可以将该任务联合消息添加至区块链。模型训练节点可以从区块链中获取任务联合消息中的联合消息内容(即t个医疗机构提供的医疗数据),并将联合消息内容作为样本数据进行疾病预测模型的训练。当疾病预测模型训练完成之后,可以将联合任务的处理状态更新为已完成状态,并向各个医疗机构返回任务完成提示消息,以提示各个医疗机构疾病预测模型已训练完成。
在本申请实施例中,区块链节点在接收到会话密钥生成请求时,可以通过调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对;进而对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片,并将N个会话私钥分片分发给N个密钥接收对象。N个密钥接收对象可以根据各自接收到的会话私钥分片生成任务处理消息,N个密钥接收对象中的t个密钥接收对象对应的任务处理消息可以生成任务联合消息。其中,任务联合消息可以包括数字签名,以及由t个任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个会话私钥分片恢复的。由此可见,本申请实施例使用可信的区块链节点取代第三方作为密钥管理对象,通过调用密钥生成合约生成会话密钥对,将会话密钥对中的会话私钥进行密钥拆分处理,并将拆分得到的会话私钥分片分发给密钥接收对象,可以防止单个密钥接收对象的会话私钥泄露或者被攻击而导致数据泄露,从而可以提高数据安全性。
可以理解的是,在本申请的具体实施方式中,可能涉及到用户的相关信息(例如,用户在身份注册信息、身份认证信息等),当本申请以上实施例运用到具体产品或技术中时,需要获得用户的许可或同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
请参见图9,图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;可以理解的是,该基于区块链的数据处理装置1可以应用在图1所示的区块链网络中的区块链节点中。如图9所示,该基于区块链的数据处理装置可以包括密钥拆分模块11、私钥分片分发模块12,以及签名验证模块13,其中:
密钥拆分模块11,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;
私钥分片分发模块12,用于将N个会话私钥分片分发给N个密钥接收对象,以使N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;
签名验证模块13,用于获取与N个密钥接收对象相关联的任务联合消息,根据会话密钥对中的会话公钥对任务联合消息进行签名验证;
其中,任务联合消息包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个密钥接收对象对应的会话私钥分片恢复的;t为小于或等于N的正整数。
其中,密钥拆分模块11、私钥分片分发模块12,以及签名验证模块13的具体功能实现方式可以参见图3所对应实施例中的步骤S101-步骤S103,此处不再进行赘述。
在一种可能的实施方式中,密钥拆分模块11可以包括:合约地址获取单元111、白名单获取单元112和合约调用单元113,其中:
合约地址获取单元111,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则获取与会话密钥生成请求相关联的合约地址;
白名单获取单元112,用于在区块链存储的业务智能合约中查找与合约地址相关联的密钥生成合约,获取与密钥生成合约相关联的权限白名单;
合约调用单元113,用于获取与会话密钥生成请求相关联的密钥请求对象在区块链上的对象地址,若对象地址属于权限白名单,则调用密钥生成合约。
其中,合约地址获取单元111、白名单获取单元112和合约调用单元113的具体功能实现方式可以参见图7所对应实施例中的步骤S202和步骤S203,此处不再进行赘述。
在一种可能的实施方式中,基于区块链的数据处理装置1还可以包括:身份验证模块14和对象添加模块15,其中:
身份验证模块14,用于接收密钥请求对象发送的身份注册请求,获取身份注册请求携带的对象认证信息,对对象认证信息进行验证,得到对象认证信息对应的身份认证结果;
对象添加模块15,用于若身份认证结果指示认证成功,则将密钥请求对象对应的对象地址添加至权限白名单。
其中,身份验证模块14和对象添加模块15的具体功能实现方式可以参见图7所对应实施例中的步骤S203,此处不再进行赘述。
在一种可能的实施方式中,基于区块链的数据处理装置1还可以包括:区块封装模块16、区块共识模块17和合约部署模块18,其中:
区块封装模块16,用于接收密钥请求对象发送的密钥生成合约相关联的密钥合约数据,将密钥合约数据封装为合约交易数据,按照合约交易数据在交易池中的排序,将合约交易数据封装为合约交易区块;
区块共识模块17,用于在业务区块链网络中对合约交易区块进行广播,以使业务区块链网络中的区块链节点对合约交易区块进行共识处理;
合约部署模块18,用于获取合约交易区块在业务区块链网络中的共识投票数量,若共识投票数量大于或等于数量阈值,则确定合约交易区块达成共识,将合约交易区块添加至区块链,确定密钥生成合约为发布成功状态,向密钥请求对象返回密钥生成合约对应的合约地址。
其中,区块封装模块16、区块共识模块17和合约部署模块18的具体功能实现方式可以参见图3所对应实施例中的步骤S101,此处不再进行赘述。
在一种可能的实施方式中,密钥拆分模块11可以包括:随机数获取单元114、会话公钥生成单元115、会话私钥生成单元116,以及密钥对生成单元117,其中:
随机数获取单元114,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成第一密钥随机数和第二密钥随机数,获取第一密钥随机数和第二密钥随机数之间的欧拉函数值;
会话公钥生成单元115,用于获取第三密钥随机数,根据第三密钥随机数、以及第一密钥随机数和第二密钥随机数之间的乘积,生成会话公钥;
会话私钥生成单元116,用于根据第三密钥随机数、欧拉函数值、以及第一密钥随机数和第二密钥随机数之间的乘积,生成会话私钥;
密钥对生成单元117,用于将会话公钥和会话私钥确定为与N个密钥接收对象相关联的会话密钥对。
其中,随机数获取单元114、会话公钥生成单元115、会话私钥生成单元116,以及密钥对生成单元117的具体功能实现方式可以参见图3所对应实施例中的步骤S101,此处不再进行赘述。
在一种可能的实施方式中,随机数获取单元114可以包括:第一随机数生成子单元1141、数据填充子单元1142、数据压缩子单元1143和第二随机数生成子单元1144,其中:
第一随机数生成子单元1141,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,根据会话密钥生成请求对应的接收时间戳生成第一密钥随机数;
数据填充子单元1142,用于对第一密钥随机数进行数据填充,得到随机填充值,对随机填充值进行拆分处理,得到P个分段填充值;P为大于1的整数;
数据压缩子单元1143,用于获取压缩函数的第i个输入数据;i为1时,第i个输入数据包括初始压缩值和P个分段填充值中的第一个分段填充值;i不为1时,第i个输入数据包括压缩函数的第i-1个输出数据和P个分段填充值中的第i个分段填充值;i为小于或等于P的正整数;
第二随机数生成子单元1144,用于根据第i个输入数据和压缩函数,确定压缩函数对应的第i个输出数据,将压缩函数对应的第P个输出数据确定为第二密钥随机数。
其中,第一随机数生成子单元1141、数据填充子单元1142、数据压缩子单元1143和第二随机数生成子单元1144的具体功能实现方式可以参见图3所对应实施例中的步骤S101,此处不再进行赘述。
在一种可能的实施方式中,密钥拆分模块11可以包括:第一分片系数获取单元118、密钥拆分函数构建单元119、初始私钥分片获取单元1120和私钥分片加密单元1121,其中:
第一分片系数获取单元118,用于获取第四密钥随机数,以及获取t-1个第一分片系数;t-1个第一分片系数均不同,且t-1个第一分片系数均小于第四密钥随机数;
密钥拆分函数构建单元119,用于根据会话密钥对中的会话私钥、第四密钥随机数、以及t-1个第一分片系数构建密钥拆分函数;
初始私钥分片获取单元1120,用于在密钥拆分函数中确定N个密钥接收对象分别对应的初始私钥分片;
私钥分片加密单元1121,用于获取N个密钥接收对象分别对应的对象公钥,通过对象公钥对初始私钥分片进行加密处理,得到N个会话私钥分片。
其中,第一分片系数获取单元118、密钥拆分函数构建单元119、初始私钥分片获取单元1120和私钥分片加密单元1121的具体功能实现方式可以参见图3所对应实施例中的步骤S101,此处不再进行赘述。
在一种可能的实施方式中,密钥拆分模块11可以包括:第二分片系数获取单元1122和模运算单元1123,其中:
第二分片系数获取单元1122,用于获取N个第二分片系数;N个第二分片系数中的任意两个第二分片系数互为质数;在单调递增的N个第二分片系数中,前t个第二分片系数的乘积大于会话私钥,且后t-1个第二分片系数的乘积小于会话私钥;
模运算单元1123,用于获取会话私钥与N个第二分片系数中的第x个第二分片系数之间的模运算结果Kx,将第x个第二分片系数和模运算结果Kx,确定为N个密钥接收对象中的第x个密钥接收对象对应的会话私钥分片;x为小于或等于N的正整数。
其中,第二分片系数获取单元1122和模运算单元1123的具体功能实现方式可以参见图7所对应实施例中的步骤S204-步骤S206,此处不再进行赘述。
在一种可能的实施方式中,签名验证模块13包括:消息接收单元131、密钥重构单元132和签名生成单元133,其中:
消息接收单元131,用于若接收到N个密钥接收对象中的t个密钥接收对象分别对应的任务处理消息,则获取各个任务处理消息携带的会话私钥分片和任务消息内容;
密钥重构单元132,用于根据密钥拆分函数将t个密钥接收对象对应的会话私钥分片进行密钥重构,得到重构私钥,将t个密钥接收对象对应的任务消息内容组合为联合消息内容;
签名生成单元133,用于根据重构私钥生成联合消息内容对应的数字签名,将联合消息内容和数字签名组合为任务联合消息。
其中,消息接收单元131、密钥重构单元132和签名生成单元133的具体功能实现方式可以参见图3所对应实施例中的步骤S103,此处不再进行赘述。
在一种可能的实施方式中,签名验证模块13可以包括:消息解析单元134、签名解密单元135和第一签名验证单元136,其中:
消息解析单元134,用于获取任务联合消息所携带的数字签名,以及会话密钥对中的会话公钥;
签名解密单元135,用于通过会话公钥对数字签名进行解密,得到数字签名对应的第一摘要信息,根据哈希算法对任务联合消息进行哈希运算,得到任务联合消息对应的第二摘要信息;
第一签名验证单元136,用于若第一摘要信息与第二摘要信息相同,则确定任务联合消息对应的签名验证结果为验证通过结果,将任务联合消息添加至区块链。
其中,消息解析单元134、签名解密单元135和第一签名验证单元136的具体功能实现方式可以参见图3所对应实施例中的步骤S103,此处不再进行赘述。
在一种可能的实施方式中,签名验证模块13可以包括:第二签名验证单元137和提示信息生成单元138,其中:
第二签名验证单元137,用于若第一摘要信息与第二摘要信息不同,则确定任务联合消息未通过验证;
提示信息生成单元138,用于生成任务联合消息对应的告警提示信息,将告警提示信息发送至任务联合消息所对应的N个密钥接收对象,以使N个密钥接收对象根据各自接收的会话私钥分片重新生成任务处理消息。
其中,第二签名验证单元137和提示信息生成单元138的具体功能实现方式可以参见图3所对应实施例中的步骤S103,此处不再进行赘述。
在本申请实施例中,区块链节点在接收到会话密钥生成请求时,可以通过调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对;进而对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片,并将N个会话私钥分片分发给N个密钥接收对象。N个密钥接收对象可以根据各自接收到的会话私钥分片生成任务处理消息,N个密钥接收对象中的t个密钥接收对象对应的任务处理消息可以生成任务联合消息。其中,任务联合消息可以包括数字签名,以及由t个任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个会话私钥分片恢复的。由此可见,本申请实施例使用可信的区块链节点取代第三方作为密钥管理对象,通过调用密钥生成合约生成会话密钥对,将会话密钥对中的会话私钥进行密钥拆分处理,并将拆分得到的会话私钥分片分发给密钥接收对象,可以防止单个密钥接收对象的会话私钥泄露或者被攻击而导致数据泄露,从而可以提高数据安全性。
请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备1000可以是区块链网络中的区块链节点。该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选地,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
其中,在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;
将N个会话私钥分片分发给N个密钥接收对象,以使N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;
获取与N个密钥接收对象相关联的任务联合消息,根据会话密钥对中的会话公钥对任务联合消息进行签名验证;
其中,任务联合消息包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;数字签名是根据重构私钥进行签名得到的,重构私钥是由t个密钥接收对象对应的会话私钥分片恢复的;t为小于或等于N的正整数。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图7所对应实施例中对基于区块链的数据处理方法的描述,也可执行前文图9所对应实施例中对基于区块链的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于区块链的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3和图7任一个所对应实施例中对基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。其中,存储介质可以为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链***。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3和图7任一个所对应实施例中对基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对所述会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;
将所述N个会话私钥分片分发给所述N个密钥接收对象,以使所述N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;
获取与N个密钥接收对象相关联的任务联合消息,根据所述会话密钥对中的会话公钥对所述任务联合消息进行签名验证;
其中,所述任务联合消息包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;所述数字签名是根据重构私钥进行签名得到的,所述重构私钥是由所述t个密钥接收对象对应的会话私钥分片恢复的;t为小于或等于N的正整数。
2.根据权利要求1所述的方法,其特征在于,所述若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,包括:
若接收到与N个密钥接收对象相关联的会话密钥生成请求,则获取与所述会话密钥生成请求相关联的合约地址;
在区块链存储的业务智能合约中查找与所述合约地址相关联的密钥生成合约,获取与所述密钥生成合约相关联的权限白名单;
获取与所述会话密钥生成请求相关联的密钥请求对象在区块链上的对象地址,若所述对象地址属于所述权限白名单,则调用所述密钥生成合约。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述密钥请求对象发送的身份注册请求,获取所述身份注册请求携带的对象认证信息,对所述对象认证信息进行验证,得到所述对象认证信息对应的身份认证结果;
若所述身份认证结果指示认证成功,则将所述密钥请求对象对应的对象地址添加至所述权限白名单。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收密钥请求对象发送的所述密钥生成合约相关联的密钥合约数据,将所述密钥合约数据封装为合约交易数据,按照所述合约交易数据在交易池中的排序,将所述合约交易数据封装为合约交易区块;
在业务区块链网络中对所述合约交易区块进行广播,以使所述业务区块链网络中的区块链节点对所述合约交易区块进行共识处理;
获取所述合约交易区块在所述业务区块链网络中的共识投票数量,若所述共识投票数量大于或等于数量阈值,则确定所述合约交易区块达成共识,将所述合约交易区块添加至区块链,确定所述密钥生成合约为发布成功状态,向所述密钥请求对象返回所述密钥生成合约对应的合约地址。
5.根据权利要求1所述的方法,其特征在于,所述若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,包括:
若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成第一密钥随机数和第二密钥随机数,获取所述第一密钥随机数和所述第二密钥随机数之间的欧拉函数值;
获取第三密钥随机数,根据所述第三密钥随机数、以及所述第一密钥随机数和所述第二密钥随机数之间的乘积,生成会话公钥;
根据所述第三密钥随机数、所述欧拉函数值、以及所述第一密钥随机数和所述第二密钥随机数之间的乘积,生成会话私钥;
将所述会话公钥和所述会话私钥确定为与所述N个密钥接收对象相关联的会话密钥对。
6.根据权利要求5所述的方法,其特征在于,所述若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成第一密钥随机数和第二密钥随机数,包括:
若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,根据所述会话密钥生成请求对应的接收时间戳生成第一密钥随机数;
对所述第一密钥随机数进行数据填充,得到随机填充值,对所述随机填充值进行拆分处理,得到P个分段填充值;P为大于1的整数;
获取压缩函数的第i个输入数据;i为1时,第i个输入数据包括初始压缩值和所述P个分段填充值中的第一个分段填充值;i不为1时,第i个输入数据包括所述压缩函数的第i-1个输出数据和所述P个分段填充值中的第i个分段填充值;i为小于或等于P的正整数;
根据所述第i个输入数据和所述压缩函数,确定所述压缩函数对应的第i个输出数据,将所述压缩函数对应的第P个输出数据确定为第二密钥随机数。
7.根据权利要求1所述的方法,其特征在于,所述对所述会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片,包括:
获取第四密钥随机数,以及获取t-1个第一分片系数;所述t-1个第一分片系数均不同,且所述t-1个第一分片系数均小于所述第四密钥随机数;
根据所述会话密钥对中的会话私钥、所述第四密钥随机数、以及所述t-1个第一分片系数构建密钥拆分函数;
在所述密钥拆分函数中确定所述N个密钥接收对象分别对应的初始私钥分片;
获取所述N个密钥接收对象分别对应的对象公钥,通过所述对象公钥对所述初始私钥分片进行加密处理,得到N个会话私钥分片。
8.根据权利要求1所述的方法,其特征在于,所述对所述会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片,包括:
获取N个第二分片系数;所述N个第二分片系数中的任意两个第二分片系数互为质数;在单调递增的N个第二分片系数中,前t个第二分片系数的乘积大于所述会话密钥对中的会话私钥,且后t-1个第二分片系数的乘积小于所述会话私钥;
获取所述会话私钥与所述N个第二分片系数中的第x个第二分片系数之间的模运算结果Kx,将所述第x个第二分片系数和所述模运算结果Kx,确定为所述N个密钥接收对象中的第x个密钥接收对象对应的会话私钥分片;x为小于或等于N的正整数。
9.根据权利要求1所述的方法,其特征在于,所述获取与N个密钥接收对象相关联的任务联合消息,包括:
若接收到所述N个密钥接收对象中的t个密钥接收对象分别对应的任务处理消息,则获取各个任务处理消息携带的会话私钥分片和任务消息内容;
根据密钥拆分函数将所述t个密钥接收对象对应的会话私钥分片进行密钥重构,得到重构私钥,将所述t个密钥接收对象对应的任务消息内容组合为联合消息内容;
根据所述重构私钥生成所述联合消息内容对应的数字签名,将所述联合消息内容和所述数字签名组合为所述任务联合消息。
10.根据权利要求1所述的方法,其特征在于,所述根据所述会话密钥对中的会话公钥对所述任务联合消息进行签名验证,包括:
获取所述任务联合消息所携带的数字签名,以及所述会话密钥对中的会话公钥;
通过所述会话公钥对所述数字签名进行解密,得到所述数字签名对应的第一摘要信息,根据哈希算法对所述任务联合消息进行哈希运算,得到所述任务联合消息对应的第二摘要信息;
若所述第一摘要信息与所述第二摘要信息相同,则确定所述任务联合消息对应的签名验证结果为验证通过结果,将所述任务联合消息添加至区块链。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述第一摘要信息与所述第二摘要信息不同,则确定所述任务联合消息未通过验证;
生成所述任务联合消息对应的告警提示信息,将所述告警提示信息发送至所述任务联合消息所对应的所述N个密钥接收对象,以使所述N个密钥接收对象根据各自接收的会话私钥分片重新生成任务处理消息。
12.一种基于区块链的数据处理装置,其特征在于,包括:
密钥拆分模块,用于若接收到与N个密钥接收对象相关联的会话密钥生成请求,则调用区块链中的密钥生成合约,生成与N个密钥接收对象相关联的会话密钥对,对所述会话密钥对中的会话私钥进行密钥拆分处理,得到N个会话私钥分片;N为大于1的整数;
私钥分片分发模块,用于将所述N个会话私钥分片分发给所述N个密钥接收对象,以使所述N个密钥接收对象根据各自接收到的会话私钥分片生成任务处理消息;一个密钥接收对象对应一个会话私钥分片;
签名验证模块,用于获取与N个密钥接收对象相关联的任务联合消息,根据所述会话密钥对中的会话公钥对所述任务联合消息进行签名验证;
其中,所述任务联合消息包括数字签名,以及由t个密钥接收对象对应的任务处理消息所组成的联合消息内容;所述数字签名是根据重构私钥进行签名得到的,所述重构私钥是由所述t个密钥接收对象对应的会话私钥分片恢复的;t为小于或等于N的正整数。
13.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,所述处理器执行权利要求1至11中任一项所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1至11中任一项所述方法的步骤。
15.一种计算程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311260310.2A CN116996331B (zh) | 2023-09-27 | 2023-09-27 | 基于区块链的数据处理方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311260310.2A CN116996331B (zh) | 2023-09-27 | 2023-09-27 | 基于区块链的数据处理方法、装置、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116996331A true CN116996331A (zh) | 2023-11-03 |
CN116996331B CN116996331B (zh) | 2023-12-15 |
Family
ID=88523624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311260310.2A Active CN116996331B (zh) | 2023-09-27 | 2023-09-27 | 基于区块链的数据处理方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116996331B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170087663A (ko) * | 2016-01-21 | 2017-07-31 | 주식회사 한컴시큐어 | 클라이언트 단말을 위한 전자서명 대행 수행 장치 및 그 동작 방법 |
CN111723387A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的数据解密的方法及装置 |
US20210119781A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
CN114338028A (zh) * | 2020-09-28 | 2022-04-12 | 华为技术有限公司 | 门限签名方法、装置、电子设备和可读存储介质 |
CN115296794A (zh) * | 2022-06-28 | 2022-11-04 | 蚂蚁区块链科技(上海)有限公司 | 基于区块链的密钥管理方法及装置 |
-
2023
- 2023-09-27 CN CN202311260310.2A patent/CN116996331B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170087663A (ko) * | 2016-01-21 | 2017-07-31 | 주식회사 한컴시큐어 | 클라이언트 단말을 위한 전자서명 대행 수행 장치 및 그 동작 방법 |
US20210119781A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
CN111723387A (zh) * | 2020-06-22 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的数据解密的方法及装置 |
CN114338028A (zh) * | 2020-09-28 | 2022-04-12 | 华为技术有限公司 | 门限签名方法、装置、电子设备和可读存储介质 |
CN115296794A (zh) * | 2022-06-28 | 2022-11-04 | 蚂蚁区块链科技(上海)有限公司 | 基于区块链的密钥管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116996331B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737724B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
US11838415B2 (en) | Blockchain-implemented method and system | |
CN109194466B (zh) | 一种基于区块链的云端数据完整性检测方法及*** | |
CN111914027B (zh) | 一种区块链交易关键字可搜索加密方法及*** | |
Yang et al. | Provable data possession of resource-constrained mobile devices in cloud computing | |
JP7499852B2 (ja) | 許可型ブロックチェーンのためのランダムなノード選択 | |
CN110199286A (zh) | 利用密封包围区的数据密封 | |
CN110214324A (zh) | 密钥保管库包围区 | |
CN111476573B (zh) | 一种账户数据处理方法、装置、设备及存储介质 | |
CN106372499A (zh) | 用于安全保护虚拟机计算环境的***和方法 | |
JPH05216411A (ja) | 公開キー暗号システムにおいてネットワーク安全保証ポリシーを遵守させるための方法及び装置 | |
JP2023504492A (ja) | データ・オブジェクトの効率的しきい値ストレージ | |
US12034867B2 (en) | Blockchain with random committee selection | |
Liu et al. | A blockchain-based privacy preservation scheme in multimedia network | |
Liu et al. | A data preservation method based on blockchain and multidimensional hash for digital forensics | |
WO2022111175A1 (en) | Key reclamation in blockchain network via oprf | |
Tian et al. | Public auditing of log integrity for shared cloud storage systems via blockchain | |
Eldridge et al. | One-time programs from commodity hardware | |
CN116996331B (zh) | 基于区块链的数据处理方法、装置、设备以及介质 | |
US20230091686A1 (en) | Digital asset platform with hsm verification | |
Pijnenburg et al. | Encrypt-to-self: Securely outsourcing storage | |
Joseph et al. | Design a hybrid Optimization and Homomorphic Encryption for Securing Data in a Cloud Environment | |
CN115664852B (zh) | 一种基于区块链技术的数据管理方法与*** | |
CN118350031A (zh) | 基于区块链的数据处理方法、装置、设备以及介质 | |
Kundu | On Decentralized Cloud Storage Security and an Efficient Post-Quantum Encryption Scheme |
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 |