CN112184441B - 数据处理方法、装置、节点设备及存储介质 - Google Patents
数据处理方法、装置、节点设备及存储介质 Download PDFInfo
- Publication number
- CN112184441B CN112184441B CN202011048106.0A CN202011048106A CN112184441B CN 112184441 B CN112184441 B CN 112184441B CN 202011048106 A CN202011048106 A CN 202011048106A CN 112184441 B CN112184441 B CN 112184441B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- encrypted data
- sub
- node
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000013524 data verification Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims description 100
- 238000012545 processing Methods 0.000 claims description 44
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013502 data validation Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据处理方法、装置、节点设备及存储介质,其适用于零知识证明以及数字医疗,该方法应用于区块链网络中的数据提供节点,包括:数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥;数据提供节点根据各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥;数据提供节点根据私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,并将待验证签名上传至区块链网络对应的区块链以供区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。采用本申请,可以提高数字签名的安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法、装置、节点设备及存储介质。
背景技术
目前,签名方会对交易数据(如医疗数据)进行数字签名,验证方则可以根据该数字签名验证交易数据的合法性。通常来说,签名方(如医生)可以通过其私钥对医疗数据(如患者诊断数据)进行签名,从而得到医疗数据的签名密文,而验证方(如患者)则可以利用签名方的公钥,对医疗数据的签名密文进行验证,并根据验证结果判断医疗数据的合法性。然而在现有的数字签名的生成过程中,生成数字签名的过程过于简单,导致了数字签名的安全性较低。
发明内容
本申请提供一种数据处理方法、装置、节点设备及存储介质,可以提高数字签名的安全性。
第一方面,本申请提供了一种数据处理方法,该方法应用于区块链网络中的数据提供节点,包括:
数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥;
数据提供节点根据各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;数据提供节点根据私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,并将待验证签名上传至区块链网络对应的区块链以供区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
第二方面,本申请提供了一种数据处理装置,该装置应用于区块链网络中的数据提供节点,包括:
第一确定模块,用于数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥;
第二确定模块,用于数据提供节点根据各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
签名上传模块,用于数据提供节点根据私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,并将待验证签名上传至区块链网络对应的区块链以供区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
结合第二方面,在一种可能的实施方式中,第二确定模块包括:第一确定单元,用于数据提供节点确定各第一密钥的第一保序系数,并根据各第一密钥和各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥;第二确定单元,用于数据提供节点确定各第二密钥的第二保序系数,并根据各第二密钥和各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥;第三确定单元,用于数据提供节点根据第一累计密钥和第二累计密钥确定私钥。
结合第二方面,在一种可能的实施方式中,签名上传模块包括:第四确定单元,用于数据提供节点根据第一加密数据和第二加密数据生成联合加密数据,并确定联合加密数据的第一联合哈希值;签名单元,用于数据提供节点根据私钥对第一联合哈希值进行签名,生成第一加密数据和第二加密数据的待验证签名。
第三方面,本申请提供了一种数据处理方法,该方法应用于区块链网络中的数据验证节点,包括:
数据验证节点从区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,待验证签名由区块链网络中的数据提供节点上传至区块链;
数据验证节点确定验证参数,并根据各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
数据验证节点根据公钥对待验证签名进行验签;
若待验证签名验签通过,数据验证节点确定第一加密数据和第二加密数据相同。
第四方面,本申请提供了一种数据处理装置,该装置应用于区块链网络中的数据验证节点,包括:
获取模块,用于数据验证节点从区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,待验证签名由区块链网络中的数据提供节点上传至区块链;
第一确定模块,用于数据验证节点确定验证参数,并根据各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
验签模块,用于数据验证节点根据公钥对待验证签名进行验签;
第二确定模块,用于若待验证签名验签通过,数据验证节点确定第一加密数据和第二加密数据相同。
第五方面,本申请提供了一种节点设备,包括:处理器、存储器、网络接口;该处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,执行本申请中第一方面或者第三方面中的数据处理方法。
第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时,执行本申请中第一方面或者第三方面中的数据处理方法。
在本申请中,数据提供节点可以通过各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,生成第一加密数据和第二加密数据的待验证签名,从而提高了数字签名(如待验证签名)的安全性。这里的待验证签名后续可以应用于数据验证节点验证第一加密数据和第二加密数据是否相同。此时,数据验证节点可以从区块链上获取第一加密数据、第二加密数据以及待验证签名,并根据上述各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,这里的公钥后续可以用于对待验证签名进行验签,进一步根据验签结果确定第一加密数据和第二加密数据是否相同。进一步地,数据验证节点可以通过公钥对待验证签名进行验签,若待验证签名验签通过,则确定第一加密数据和第二加密数据相同,可以验证加密数据的一致性,提高了验证效率且验证准确率高。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的网络架构的结构示意图;
图2是本申请提供的数据处理方法的交互场景示意图;
图3是本申请提供的数据处理方法的一流程示意图;
图4是本申请提供的数据处理方法的另一流程示意图;
图5是本申请提供的数据处理装置的一结构示意图;
图6是本申请提供的节点设备的一结构示意图;
图7是本申请提供的数据处理装置的另一结构示意图;
图8是本申请提供的节点设备的另一结构示意图;
图9是本申请提供的数据处理系统的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请提供的网络架构的结构示意图。如图1所示,该网络架构可以包括用于运行区块链网络的区块链节点系统以及用户终端集群。其中,该区块链网络对应的区块链可以是与业务合约相关联的区块链。该区块链节点系统可以是指用于进行节点与节点之间数据共享的系统。该区块链节点系统可以包括多个节点。如图1所示,该区块链节点系统具体可以包括节点100a、节点100b、节点100c、…、节点100n。该用户终端集群可以包括多个用户终端,如图1所示,具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n。
其中,在该区块链节点系统中,每个节点在正常工作时,均可以获取与该节点相关联的用户终端的数据,以维护该区块链节点系统内的共享数据。为了保证该区块链节点系统内的信息互通,该区块链节点系统中的各个节点之间可以建立网络连接,并通过该网络连接进行数据传输。例如,当该区块链节点系统中的任一节点在获取目标验证数据时,区块链节点系统中的其它节点便可以根据共识算法获取该目标验证数据,并将该目标验证数据作为共享数据中的数据进行存储,使得该区块链节点系统中所有节点上存储的数据均一致。这里的目标验证数据可以包括第一加密数据、第二加密数据以及验证结果,其中,验证结果可以为第一加密数据和第二加密数据相同。
应当理解,区块链节点系统中的每个节点均可以与用户终端集群中的每个用户终端进行数据交互。可以理解的是,本申请可以在图1所示的区块链节点系统中选择一个节点作为该区块链网络中的数据提供节点,并在除该节点之外的其它节点中选择一个节点作为该区块链网络中的数据验证节点。其中,本申请可以将区块链网络中用于生成待验证签名的节点统称为数据提供节点,本申请还可以将区块链网络中用于对待验证签名进行验签的节点统称为数据验证节点。待验证签名可以为对第一加密数据和第二加密数据进行签名后所得到的信息,这里的第一加密数据和第二加密数据可以为区块链上所存储的交易双方针对同一交易所上传的加密数据(如由多个子加密数据组合所生成的加密数据)或者文本对应的加密数据。例如,本申请可以将区块链节点系统中的节点100a作为数据提供节点,本申请还可以将区块链节点系统中的节点100b作为数据验证节点。上述数据提供节点和数据验证节点均可以与用户终端集群中的每个用户终端进行数据交互,例如,数据验证节点在对待验证签名验签通过时,可以向目标用户终端(比如,将上述第一加密数据上传至区块链的用户终端和/或将上述第二加密数据上传至区块链的用户终端)输出第一加密数据和第二加密数据相同的验证结果。
可以理解的是,本申请中的节点设备可以为具有数据处理功能的实体终端,该实体终端可以为如图1所示的节点100a或者节点100b,也可以为用户终端,在此不做限定。
本申请的应用场景可以为商业业务场景(如需要比较两笔加密金额是否相等的场景),比如,在银行借贷场景中,用户可以在银行进行贷款,银行放贷后可以在区块链上验证银行放贷金额和用户贷款金额是否一致,即需要验证银行放贷加密金额和用户贷款加密金额是否相同。本申请的应用场景也可以为数字医疗场景,比如,对电子信息档案进行零知识验证,这里的电子信息档案可以包含但不限于患者的病历,医生针对患者的诊断数据以及所开的药物等等。本申请中的应用场景还可以为其它应用场景,在此不作具体限定。
进一步地,为便于理解,请参见图2,图2是本申请提供的数据处理方法的交互场景示意图。本申请中会涉及上述数据提供节点和数据验证节点,比如,数据提供节点可以为上述图1中的节点100a,数据验证节点可以为上述图1中的节点100b。如图2所示,区块链1可以为上述图1中区块链网络所对应的区块链,且区块链1可以为数据提供节点(如节点100a)和数据验证节点(如节点100b)所对应的区块链网络中每个节点均共享的一条相同的区块链,每个节点均可以在区块链1中获取区块链上所存储的信息。其中,区块链1中可以包括区块10a、区块10b、区块10c、…、区块10n,该区块10a可以称之为区块链1的创世区块。可以理解,该区块链1可以为存储有上述第一加密数据和第二加密数据的区块链。
如图2所示,节点100a可以从上述区块链1中获取第一加密数据和第二加密数据。可以理解,节点100a可以在区块链1中的各个区块(如区块10a、区块10b、区块10c、…、区块10n)中查找包含第一加密数据的区块(如区块10a)和包含第二加密数据的区块(如区块10a),并从区块10a中分别获取第一加密数据和第二加密数据。需要说明的是,区块链上包含第一加密数据的区块和包含第二加密数据的区块可以为同一区块,也可以为不同区块,具体可根据实际应用场景确定,在此不作限定。其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥。本申请可以将第一加密数据中的子加密数据统称为第一子加密数据,本申请还可以将第二加密数据中的子加密数据统称为第二子加密数据。这里的第一排序可以为至少一个第一子加密数据组合成为第一加密数据的排列顺序,第二排序可以为至少一个第二子加密数据组合成为第二加密数据的排列顺序。本申请可以将所有第一子加密数据对应的密钥统称为第一密钥,本申请还可以将所有第二子加密数据对应的密钥统称为第二密钥。进一步地,节点100a可以确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥。此时,节点100a可以根据各第一子加密数据的第一密钥、各第一密钥的第一保序系数、各第二子加密数据的第二密钥以及各第二密钥的第二保序系数确定私钥,并根据私钥对第一加密数据和第二加密数据进行签名,生成待验证签名。本申请可以将各第一密钥的系数统称为第一保序系数,本申请还可以将各第二密钥的系数统称为第二保序系数。
进一步地,节点100a可以将待验证签名上传至区块链1,这时的区块链1上存储有待验证签名。这里的待验证签名后续可以用于数据验证节点(如节点100b)对第一加密数据和第二加密数据进行验证。
如图2所示,节点100b可以从区块链1上获取第一加密数据、第二加密数据和待验证签名。可以理解,节点100b可以在区块链1中的各个区块中查找包含第一加密数据的区块(如上述区块10a)、包含第二加密数据的区块(如上述区块10a)以及包含待验证签名的签名区块,并从区块10a和上述签名区块中分别获取第一加密数据、第二加密数据以及待验证签名。本申请可以将区块链中存储有待验证签名的区块称之为签名区块。这时,节点100b可以根据上述各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数(这里的验证参数可以为一个预置的参数)确定公钥,这时,节点100b可以根据公钥对待验证签名进行验签,若待验证签名验签通过,节点100b确定第一加密数据和第二加密数据相同。
由此可见,在本申请中,数据提供节点可以通过各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,生成第一加密数据和第二加密数据的待验证签名,从而提高了数字签名(如待验证签名)的安全性。这里的待验证签名后续可以应用于数据验证节点验证第一加密数据和第二加密数据是否相同。此时,数据验证节点可以从区块链上获取第一加密数据、第二加密数据以及待验证签名,并根据上述各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,这里的公钥后续可以用于对待验证签名进行验签,进一步根据验签结果确定第一加密数据和第二加密数据是否相同。进一步地,数据验证节点可以通过公钥对待验证签名进行验签,若待验证签名验签通过,则确定第一加密数据和第二加密数据相同,可以验证加密数据的一致性,提高了验证效率且验证准确率高。
其中,节点设备对第一加密数据和第二加密数据进行数据处理的具体实现方式可以参见下述图3-图4所对应的实施例。
进一步地,请参见图3,图3是本申请提供的数据处理方法的一流程示意图。本申请可以以节点设备为数据提供节点(如上述图2中的节点100a)为例,如图3所示的方法应用于区块链网络中的数据提供节点,可以包括以下步骤S101-步骤S103:
步骤S101,数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥。
其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥。可以理解,各第一密钥均可以是根据第一根密钥所确定的密钥,各第二密钥均可以是根据第二根密钥所确定的密钥,这里的第一根密钥和第二根密钥均可以为预置或者预存储的根密钥。可选的,各第一密钥之间可以是相互独立的,各第二密钥之间也可以是相互独立的,具体可根据实际应用场景确定,在此不作限定。
可以理解,数据提供节点上存储有第一加密数据和第二加密数据时,无需从区块链上获取第一加密数据和第二加密数据。可选的,数据提供节点(如上述节点100a)还可以从区块链上获取第一加密数据和第二加密数据,具体地,数据提供节点可以从区块链的所有区块中查找包含第一加密数据的区块(如上述区块10a)以及包含上述第二加密数据的区块(如区块10a),并从包含第一加密数据的区块中获取第一加密数据,以及从包含上述第二加密数据的区块中获取第二加密数据,具体可根据实际应用场景确定,在此不作限定。例如,若第一加密数据对应的哈希值为哈希值1,则节点100a可以获取上述哈希值1,并确定哈希值1所属的认证路径下的根哈希值1,此时,节点100a可以从根哈希值1所属的区块(如上述区块10a)中获取第一加密数据;若第二加密数据对应的哈希值为哈希值2,则节点100a可以获取上述哈希值2,并确定哈希值2所属的认证路径下的根哈希值2,此时,节点100a可以从根哈希值2所属的区块(如上述区块10a)中获取第二加密数据。哈希值(如哈希值1或者哈希值2)所属的认证路径可以指通过哈希值查询其对应的根哈希值(如根哈希值1或者根哈希值2)的路径。可以理解,由于区块链(如上述区块链1)中的每个区块都具有唯一确定的根哈希值,因此数据提供节点可以根据根哈希值(如根哈希值1或者根哈希值2)确定包含加密数据(第一加密数据或者第二加密数据)的区块。需要说明的是,区块链上包含第一加密数据的区块和包含第二加密数据的区块可以为同一区块,也可以为不同区块,具体可根据实际应用场景确定,在此不作限定。
可以理解,第一加密数据(如Ca)可以由至少一个第一子加密数据(如n个第一子加密数据,即Ca0、Ca1、…、Can-1)按照第一排序组成,即Ca=Ca0||Ca1||…||Can-1,其中,n可以为大于或者等于0的整数。这里的第一子加密数据可以为通过椭圆曲线加密算法(ellipticcurve cryptography,ECC)对第一子加密数据对应的明文数据(如Ma=Ma0||Ma1||…||Man-1)中的子明文数据(如Ma0、Ma1、…、Man-1)进行加密后所得到的子加密数据。其中,椭圆曲线加密算法中可以包括P224曲线、P256曲线(P256曲线也可以称为secp256r1曲线)、P384曲线及P512曲线。上述第一加密数据的数据格式可以为密码学中的perdesen承诺(perdesencommitment)格式,即各第一子加密数据的数据格式可以为perdesen commitment格式,各第一密钥可以称为perdesen commitment格式下的各第一子加密数据中的盲因子。
以椭圆曲线加密算法为P256曲线(如椭圆曲线)为例,任一第一子加密数据的公式可以如下述公式(1)-公式(2)所示:
其中,可以为未压缩前的Cai在椭圆曲线上所表示的一个点,Cai可以为第(i+1)个第一子加密数据,i可以为大于或者等于0,且小于或者等于n-1的整数。
其中,用于指示解压缩后的Mai(即第一子加密数据对应的明文数据中的第(i+1)个子明文数据)在椭圆曲线上所表示的一个点,kai可以为第(i+1)个第一子加密数据的第一密钥(即盲因子),H可以为验证参数,且H用于表示上述椭圆曲线上除/>之外的另一个点。
可以理解,第二加密数据(如Cb)由至少一个第二子加密数据(如n个第二子加密数据,即Cb0、Cb1、…、Cbn-1)按照第二排序组成,例如Cb=Cb0||Cb1||…||Cbn-1,这里的第二排序可以为至少一个第二子加密数据组合成为第二加密数据的排列顺序。需要说明的是,第一排序与第二排序相同。这里的第二子加密数据可以为通过椭圆曲线加密算法对第二子加密数据对应的明文数据(如Mb=Mb0||Mb1||…||Mbn-1)中的子明文数据(如Mb0、Mb1、…、Mbn-1)进行加密后所得到的子加密数据。上述第二加密数据的数据格式可以为密码学中的perdesencommitment格式,即各第二子加密数据的数据格式可以为perdesen commitment格式,各第二密钥可以称为perdesen commitment格式下的各第二子加密数据中的盲因子。
以椭圆曲线加密算法为P256曲线(如椭圆曲线)为例,任一第二子加密数据的公式可以如下述公式(3)-公式(4)所示:
其中,用于指示未压缩前的Cbi在椭圆曲线上所表示的一个点,Cbi可以为第(i+1)个第二子加密数据。
其中,用于指示解压缩后的Mbi(即第二子加密数据对应的明文数据中的第(i+1)个子明文数据)在上述椭圆曲线上所表示的一个点,kbi可以为第(i+1)个第二子加密数据中的第二密钥(即盲因子),H可以为验证参数,且H用于表示椭圆曲线上除/>之外的另一个点。
进一步地,数据提供节点在获取到第一加密数据和第二加密数据之后,可以确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥。例如,第一加密数据Ca中各第一子加密数据(即Ca0、Ca1、…、Can-1)的第一密钥可以为ka0、ka1、…、kan-1,其中,ka0可以为第1个第一子加密数据Ca0的第一密钥,ka1可以为第2个第一子加密数据Ca1的第一密钥,…,kan-1可以为第n个第一子加密数据Can-1的第一密钥。又例如,第二加密数据Cb中各第二子加密数据(即Cb0、Cb1、…、Cbn-1)的第二密钥可以为kb0、kb1、…、kbn-1,其中,kb0可以为第1个第二子加密数据Cb0的第二密钥,kb1可以为第2个第二子加密数据Cb1的第二密钥,…,kbn-1可以为第n个第二子加密数据Cbn-1的第二密钥。
步骤S102,数据提供节点根据各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥。
其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同。例如,上述Ca0的第一密钥ka0的第一保序系数可以为1,上述Ca1的第一密钥ka1的第一保序系数可以为2,…,上述Can-1的第一密钥kan-1的第一保序系数可以为n,上述Cb0的第二密钥kb0的第二保序系数可以与上述ka0的第一保序系数相同,即第二密钥kb0的第二保序系数可以为1,上述Cb1的第二密钥kb1的第二保序系数可以与上述ka1的第一保序系数相同,即第二密钥kb1的第二保序系数可以为2,…,上述Cbn-1的第二密钥kbn-1的第二保序系数可以与上述kan-1的第一保序系数相同,即第二密钥kbn-1的第二保序系数可以为n。
在一些可行的实施方式中,数据提供节点可以确定各第一密钥的第一保序系数,并根据各第一密钥和各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥。这时,数据提供节点可以确定各第二密钥的第二保序系数,并根据各第二密钥和各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥。数据提供节点可以根据第一累计密钥和第二累计密钥确定私钥。
为方便描述,下面将以第一加密数据Ca和第二加密数据Cb为例对确定私钥的具体过程进行说明,上述私钥可以根据下述公式(5)-公式(6)确定,公式(5)如下所示:
P=1*(Ca0-Cb0)+2*(Ca1-Cb1)+…+n*(Can-1-Cbn-1), (5)
其中,P可以为公钥,Ca0可以为第1个第一子加密数据,Ca1可以为第2个第一子加密数据,…,Can-1可以为第n个第一子加密数据,Cb0可以为第1个第二子加密数据,Cb1可以为第2个第二子加密数据,…,Cbn-1可以为第n个第二子加密数据,1、2、…、n可以是上述各第一密钥的第一保序系数,同时也是上述各第二密钥的第二保序系数,即相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同。
可以理解,根据上述公式(1)-公式(4)对公式(5)进行化简,需要说明的是,在化简的过程中,由于第一子加密数据和第二子加密数据是根据同一椭圆曲线加密算法(如上述P256曲线)进行加密后所生成的子加密数据,因此与/>相同,同时在/>与/>相同的情况下才可以得到私钥,从而可以得到化简后的公式(即公式(6)),公式(6)如下所示:
其中,P可以为上述公钥,可以为私钥,H可以为验证参数。为方便描述,通过上述公式(6)对第一累计密钥和第二累计密钥进行解释说明,可以为第一累计密钥,/>可以为第二累计密钥,其中,i+1是kai的第一保序系数,同时i+1也是kbi的第二保序系数。
步骤S103,数据提供节点根据私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,并将待验证签名上传至区块链网络对应的区块链以供区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
在一些可行的实施方式中,数据提供节点根据第一加密数据和第二加密数据生成联合加密数据,并确定联合加密数据的第一联合哈希值。进一步地,数据提供节点根据私钥对联合加密数据的第一联合哈希值进行签名,生成第一加密数据和第二加密数据的待验证签名。本申请可以将对第一加密数据和第二加密数据进行联合处理后的加密数据称之为联合加密数据,本申请还可以将联合加密数据的哈希值称之为第一联合哈希值。
可以理解,数据提供节点可以对第一加密数据和第二加密数据进行联合处理,得到联合加密数据。为方便描述,下面将以第一加密数据为Ca,第二加密数据为Cb为例进行说明,数据提供节点可以对Ca=Ca0||Ca1||…||Can-1和Cb=Cb0||Cb1||…||Cbn-1进行联合处理,这里所得到的联合加密数据可以为Cab=Ca0||Ca1||…||Can-1||Cb0||Cb1||…||Cbn-1,联合加密数据也可以为Cab=Ca0||Cb0||Ca1||Cb1||…||Can-1||Cbn-1,联合加密数据也可以为根据其它联合处理方式得到的联合加密数据,具体可以根据实际应用场景确定,在此不做限定。这时,数据提供节点可以通过哈希算法对联合加密数据进行哈希运算,得到联合加密数据的第一联合哈希值。其中,哈希算法可以为安全散列算法(secure hash algorithm,SHA)。安全散列算法是一个密码散列函数家族,是联邦信息处理标准(federal informationprocessing standards,FIPS)所认证的安全散列算法。其中,安全散列算法可以计算出一个数字消息所对应的长度固定的字符串(又称消息摘要,比如,第一联合哈希值)的算法。其中,SHA可以包括SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。进一步地,数据提供节点可以通过数字签名算法对第一联合哈希值进行签名,得到待验证签名。其中,该数字签名算法可以包括但不限于:RSA(一种签名算法)、DSA(一种签名算法)、ECDSA(一种签名算法),等等。进一步地,数据提供节点在生成待验证签名之后,可以将待验证签名上传至区块链网络对应的区块链(如上述区块链1)。可以理解,数据提供节点可以根据待验证签名生成签名区块,并将该签名区块上传至区块链,此时,区块链的签名区块中存储有待验证签名。这里的待验证签名后续用于区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证(如验证第一加密数据和第二加密数据是否相同)。
在本申请中,数据提供节点可以通过各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,并根据该私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,私钥的复杂度较高,从而提高了数字签名(如待验证签名)的安全性。
进一步地,请参见图4,图4是本申请提供的数据处理方法的另一流程示意图。本申请可以以节点设备为数据验证节点(如上述图2中的节点100b)为例,如图4所示的方法应用于区块链网络中的数据验证节点,可以包括以下步骤S201-步骤S204:
步骤S201,数据验证节点从区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名。
可以理解,数据验证节点(如上述节点100b)可以从区块链的所有区块中分别查找包含第一加密数据的区块(如上述区块10a)、包含第二加密数据的区块(如上述区块10a)以及包含待验证签名的签名区块,并从包含第一加密数据的区块中获取第一加密数据,从包含第二加密数据的区块中获取第二加密数据,以及从包含待验证签名的签名区块中获取待验证签名。例如,节点100b可以获取第一加密数据对应的哈希值1,并确定哈希值1所属的认证路径下的根哈希值1,此时,节点100b可以从根哈希值1所属的区块10a中获取第一加密数据;节点100b可以获取第二加密数据对应的哈希值2,并确定哈希值2所属的认证路径下的根哈希值2,此时,节点100b可以从根哈希值2所属的区块10a中获取第二加密数据;节点100b可以获取上述第一联合哈希值,并确定第一联合哈希值所属的认证路径下的根哈希值3,此时,节点100b可以从根哈希值3所属的签名区块中获取待验证签名。
步骤S202,数据验证节点确定验证参数,并根据各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥。
在一些可行的实施方式中,数据验证节点确定验证参数。在确定验证参数之后,数据验证节点可以确定各第一密钥的第一保序系数,并根据各第一密钥以及各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥。此时,数据验证节点确定各第二密钥的第二保序系数,并根据各第二密钥以及各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥。进一步地,数据验证节点根据第一累计密钥、第二累计密钥以及验证参数确定公钥。
需要说明的是,数据验证节点可以根据上述公式(6)计算公钥,具体实现中,可以基于(即第一累计密钥)、/>(即第二累计密钥)以及H(即验证参数)计算公钥(即P)。
步骤S203,数据验证节点根据公钥对待验证签名进行验签。
在一些可行的实施方式中,数据验证节点根据第一加密数据和第二加密数据生成联合加密数据,并确定联合加密数据的第一联合哈希值。数据验证节点根据公钥对待验证签名进行验签,得到第二联合哈希值。若第二联合哈希值和第一联合哈希值相同,数据验证节点确定待验证签名验签通过。若第二联合哈希值和第一联合哈希值不同,数据验证节点确定待验证签名验签未通过。本申请可以将数据验证节点对待验证签名进行验签后所得到的哈希值称之为第二联合哈希值。
步骤S204,若待验证签名验签通过,数据验证节点确定第一加密数据和第二加密数据相同。
可以理解,数据验证节点在确定第一加密数据和第二加密数据相同之后,进而可以确定第一加密数据对应的明文数据和第二加密数据对应的明文数据相同,此时可以验证加密数据的一致性(即验证两个加密数据是否相同,如第一加密数据和第二加密数据是否相同),验证准确率高。
在一些可行的实施方式中,若待验证签名验签通过,数据验证节点根据第一加密数据、第二加密数据以及验证结果生成目标区块,并将目标区块添加至区块链,其中,验证结果为第一加密数据和第二加密数据相同。具体地,若验签通过,则数据验证节点可以将第一加密数据、第二加密数据以及验证结果打包成待验证区块,并将该待验证区块发送给区块链网络中的共识节点进行共识。其中,该待验证区块可以是没有通过区块链网络中的共识节点进行共识的区块。进一步地,数据验证节点可以获取该区块链网络中的共识节点所返回的共识确认信息。应当理解,数据验证节点将该待验证区块发送给区块链网络中的共识节点进行共识之后,若共识节点对该待验证区块验证通过,则该共识节点可以向数据验证节点返回共识确认信息,此时,数据验证节点可以获取到区块链网络中的共识节点所返回的共识确认信息。其中,一个共识节点可以对应一个共识确认信息。进一步地,若数据验证节点统计到的共识确认信息的总数量大于该共识节点的共识阈值,则确定完成共识,且将验证通过的待验证区块确定为目标区块,并将目标区块添加至该区块链网络对应的区块链(如上述区块链1)。比如,若共识节点的数量为A,数据验证节点统计到该共识确认信息的总数量为B,该共识节点的共识阈值为0.8A,此时,若是该共识确认信息的总数量B大于0.8A,则确认完成共识。
在一些可行的实施方式中,若待验证签名验签未通过,数据验证节点确定第一加密数据和第二加密数据不同,并输出验证失败信息。其中,验证失败信息用于指示第一加密数据与第二加密数据不同。可以理解,数据验证节点可以向数据提供节点输出验证失败信息。可选的,数据验证节点也可以向用户终端输出验证失败信息,以使用户根据验证失败信息对第一加密数据和第二加密数据进行后续处理。例如,若第一加密数据和第二加密数据为银行借贷双方(用户a和银行工作人员b)针对同一借贷交易的两个加密借贷金额(如加密借贷金额a何加密借贷金额b),在数据验证节点验证加密借贷金额a和加密借贷金额b不同时,需要向用户a所在的用户终端(如上述用户终端3000a)和银行工作人员b所在的用户终端(如上述用户终端3000b)分别输出验证失败信息,以使用户a和银行工作人员b针对该借贷交易进行后续处理。
在本申请中,数据验证节点可以从区块链上获取第一加密数据、第二加密数据以及待验证签名,并根据上述各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,这里的公钥后续可以用于对待验证签名进行验签,进一步根据验签结果确定第一加密数据和第二加密数据是否相同。进一步地,数据验证节点可以通过公钥对待验证签名进行验签,若待验证签名验签通过,则确定第一加密数据和第二加密数据相同,可以验证加密数据的一致性,提高了验证效率且验证准确率高。
进一步地,请参见图5,图5是本申请提供的数据处理装置的一结构示意图。该数据处理装置可以是运行于节点设备中的一个计算机程序(包括程序代码),例如,该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请提供的方法中的相应步骤。如图5所示,该数据处理装置1可以应用于区块链网络中的数据提供节点,该数据提供节点可以为上述图2所对应实施例中的节点100a。该数据处理装置1可以包括:第一确定模块10、第二确定模块11、以及签名上传模块12。
第一确定模块10,用于数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥;
第二确定模块11,用于数据提供节点根据各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
签名上传模块12,用于数据提供节点根据私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,并将待验证签名上传至区块链网络对应的区块链以供区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
在一些可行的实施方式中,第二确定模块11包括:第一确定单元111,用于数据提供节点确定各第一密钥的第一保序系数,并根据各第一密钥和各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥;第二确定单元112,用于数据提供节点确定各第二密钥的第二保序系数,并根据各第二密钥和各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥;第三确定单元113,用于数据提供节点根据第一累计密钥和第二累计密钥确定私钥。
在一些可行的实施方式中,签名上传模块12包括:第四确定单元121,用于数据提供节点根据第一加密数据和第二加密数据生成联合加密数据,并确定联合加密数据的第一联合哈希值;签名单元122,用于数据提供节点根据私钥对第一联合哈希值进行签名,得到待验证签名。
其中,该第一确定模块10、第二确定模块11以及签名上传模块12的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图6,图6是本申请提供的节点设备的一结构示意图。如图6所示,该节点设备1000可以为上述图2对应实施例中的节点100a,该节点设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的节点设备1000中,网络接口1004主要用于与区块链网络中的其它节点(如数据验证节点)以及用户终端进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥;
数据提供节点根据各第一密钥、各第一密钥的第一保序系数、各第二密钥以及各第二密钥的第二保序系数确定私钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
数据提供节点根据私钥对第一加密数据和第二加密数据进行签名以生成待验证签名,并将待验证签名上传至区块链网络对应的区块链以供区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
应当理解,本申请中所描述的节点设备1000可执行前文图3所对应实施例中对该数据处理方法的描述,也可执行前文图5所对应实施例中对该数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
进一步地,请参见图7,图7是本申请提供的数据处理装置的另一结构示意图。该数据处理装置可以是运行于节点设备中的一个计算机程序(包括程序代码),例如,该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请提供的方法中的相应步骤。如图7所示,该数据处理装置2可以应用于区块链网络中的数据验证节点,该数据验证节点可以为上述图2所对应实施例中的节点100b。该数据处理装置2可以包括:获取模块20、第一确定模块21、验签模块22、第二确定模块23、输出模块24以及添加模块25。
获取模块20,用于数据验证节点从区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,待验证签名由区块链网络中的数据提供节点上传至区块链;
第一确定模块21,用于数据验证节点确定验证参数,并根据各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
验签模块22,用于数据验证节点根据公钥对待验证签名进行验签;
第二确定模块23,用于若待验证签名验签通过,数据验证节点确定第一加密数据和第二加密数据相同。
在一些可行的实施方式中,第一确定模块21包括:第一确定单元211,用于数据验证节点确定各第一密钥的第一保序系数,并根据各第一密钥以及各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥;第二确定单元212,用于数据验证节点确定各第二密钥的第二保序系数,并根据各第二密钥以及各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥;第三确定单元213,用于数据验证节点根据第一累计密钥、第二累计密钥以及验证参数确定公钥。
在一些可行的实施方式中,验签模块22包括:第四确定单元221,用于数据验证节点根据第一加密数据和第二加密数据生成联合加密数据,并确定联合加密数据的第一联合哈希值;验签单元222,用于数据验证节点根据公钥对待验证签名进行验签,得到第二联合哈希值;第五确定单元223,用于若第二联合哈希值和第一联合哈希值相同,数据验证节点确定待验证签名验签通过;第六确定单元224,用于若第二联合哈希值和第一联合哈希值不同,数据验证节点确定待验证签名验签未通过。
在一些可行的实施方式中,上述数据处理装置2还包括:输出模块24,用于若待验证签名验签未通过,数据验证节点确定第一加密数据和第二加密数据不同,并输出验证失败信息。
在一些可行的实施方式中,上述数据处理装置2还包括:添加模块25,用于若待验证签名验签通过,数据验证节点根据第一加密数据、第二加密数据以及验证结果生成目标区块,并将目标区块添加至区块链,其中,验证结果为第一加密数据和第二加密数据相同。
其中,该获取模块20、第一确定模块21、验签模块22、第二确定模块23、输出模块24以及添加模块25的具体实现方式可以参见上述图4所对应实施例中对步骤S201-步骤S204的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图8,图8是本申请提供的节点设备的另一结构示意图。如图8所示,该节点设备2000可以为上述图2对应实施例中的节点200a,该节点设备2000可以包括:至少一个处理器2001,例如CPU,至少一个网络接口2004,用户接口2003,存储器2005,至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(display)、键盘(keyboard),网络接口2004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选地还可以是至少一个位于远离前述处理器2001的存储装置。如图8所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图8所示的节点设备2000中,网络接口2004主要用于与区块链网络中的其它节点(如数据提供节点)以及用户终端进行网络通信;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
数据验证节点从区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名,其中,第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,待验证签名由区块链网络中的数据提供节点上传至区块链;
数据验证节点确定验证参数,并根据各第一密钥、各第一密钥的第一保序系数、各第二密钥、各第二密钥的第二保序系数以及验证参数确定公钥,其中,各第一密钥的第一保序系数各不相同,各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
数据验证节点根据公钥对待验证签名进行验签;
若待验证签名验签通过,数据验证节点确定第一加密数据和第二加密数据相同。
应当理解,本申请中所描述的节点设备2000可执行前文图4所对应实施例中对该数据处理方法的描述,也可执行前文图7所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置2所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图4所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
进一步的,请参见图9,图9是本申请提供的数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置1a和数据处理装置2a。其中,数据处理装置1a可以为上述图5所对应实施例中的数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图2所对应实施例中的节点100a,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图7所对应实施例中的数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图2所对应实施例中的节点100b,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法应用于区块链网络中的数据提供节点,包括:
所述数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥,其中,所述第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,所述第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,所述第一子加密数据为通过椭圆曲线加密算法对第一子加密数据对应的明文数据中的子明文数据进行加密后所得到的子加密数据;
所述数据提供节点根据各第一密钥、所述各第一密钥的第一保序系数、各第二密钥以及所述各第二密钥的第二保序系数确定私钥,其中,所述各第一密钥的第一保序系数各不相同,所述各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
所述数据提供节点根据所述私钥对所述第一加密数据和所述第二加密数据进行签名以生成待验证签名,并将所述待验证签名上传至所述区块链网络对应的区块链以供所述区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
2.根据权利要求1所述的方法,其特征在于,所述数据提供节点根据各第一密钥、所述各第一密钥的第一保序系数、各第二密钥以及所述各第二密钥的第二保序系数确定私钥,包括:
所述数据提供节点确定各第一密钥的第一保序系数,并根据所述各第一密钥和所述各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥;
所述数据提供节点确定各第二密钥的第二保序系数,并根据所述各第二密钥和所述各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥;
所述数据提供节点根据所述第一累计密钥和所述第二累计密钥确定私钥。
3.根据权利要求1所述的方法,其特征在于,所述数据提供节点根据所述私钥对所述第一加密数据和所述第二加密数据进行签名以生成待验证签名,包括:
所述数据提供节点根据所述第一加密数据和所述第二加密数据生成联合加密数据,并确定所述联合加密数据的第一联合哈希值;
所述数据提供节点根据所述私钥对所述第一联合哈希值进行签名,生成所述第一加密数据和所述第二加密数据的待验证签名。
4.一种数据处理方法,其特征在于,所述方法应用于区块链网络中的数据验证节点,包括:
所述数据验证节点从所述区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名,其中,所述第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,所述第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,所述待验证签名由所述区块链网络中的数据提供节点上传至所述区块链,所述第一子加密数据为通过椭圆曲线加密算法对第一子加密数据对应的明文数据中的子明文数据进行加密后所得到的子加密数据;
所述数据验证节点确定验证参数,并根据各第一密钥、所述各第一密钥的第一保序系数、各第二密钥、所述各第二密钥的第二保序系数以及所述验证参数确定公钥,其中,所述各第一密钥的第一保序系数各不相同,所述各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
所述数据验证节点根据所述公钥对所述待验证签名进行验签;
若所述待验证签名验签通过,所述数据验证节点确定所述第一加密数据和所述第二加密数据相同。
5.根据权利要求4所述的方法,其特征在于,所述数据验证节点根据各第一密钥、所述各第一密钥的第一保序系数、各第二密钥、所述各第二密钥的第二保序系数以及所述验证参数确定公钥,包括:
所述数据验证节点确定各第一密钥的第一保序系数,并根据所述各第一密钥以及所述各第一密钥的第一保序系数确定所有第一密钥的第一累计密钥;
所述数据验证节点确定各第二密钥的第二保序系数,并根据所述各第二密钥以及所述各第二密钥的第二保序系数确定所有第二密钥的第二累计密钥;
所述数据验证节点根据所述第一累计密钥、所述第二累计密钥以及所述验证参数确定公钥。
6.根据权利要求4所述的方法,其特征在于,所述数据验证节点根据所述公钥对所述待验证签名进行验签,包括:
所述数据验证节点根据所述第一加密数据和所述第二加密数据生成联合加密数据,并确定所述联合加密数据的第一联合哈希值;
所述数据验证节点根据所述公钥对所述待验证签名进行验签,得到第二联合哈希值:
若所述第二联合哈希值和所述第一联合哈希值相同,所述数据验证节点确定所述待验证签名验签通过;
若所述第二联合哈希值和所述第一联合哈希值不同,所述数据验证节点确定所述待验证签名验签未通过。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述待验证签名验签未通过,所述数据验证节点确定所述第一加密数据和所述第二加密数据不同,并输出验证失败信息。
8.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述待验证签名验签通过,所述数据验证节点根据所述第一加密数据、所述第二加密数据以及验证结果生成目标区块,并将所述目标区块添加至所述区块链,其中,所述验证结果为所述第一加密数据和所述第二加密数据相同。
9.一种数据处理装置,其特征在于,所述装置应用于区块链网络中的数据提供节点,包括:
第一确定模块,用于所述数据提供节点确定第一加密数据中各第一子加密数据的第一密钥以及第二加密数据中各第二子加密数据的第二密钥,其中,所述第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,所述第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,所述第一子加密数据为通过椭圆曲线加密算法对第一子加密数据对应的明文数据中的子明文数据进行加密后所得到的子加密数据;
第二确定模块,所述数据提供节点根据各第一密钥、所述各第一密钥的第一保序系数、各第二密钥以及所述各第二密钥的第二保序系数确定私钥,其中,所述各第一密钥的第一保序系数各不相同,所述各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
签名上传模块,用于所述数据提供节点根据所述私钥对所述第一加密数据和所述第二加密数据进行签名以生成待验证签名,并将所述待验证签名上传至所述区块链网络对应的区块链以供所述区块链网络中的数据验证节点对第一加密数据和第二加密数据进行验证。
10.一种数据处理装置,其特征在于,所述装置应用于区块链网络中的数据验证节点,包括:
获取模块,用于所述数据验证节点从所述区块链网络对应的区块链中获取第一加密数据、第二加密数据以及待验证签名,其中,所述第一加密数据由至少一个第一子加密数据按照第一排序组成,一个第一子加密数据对应一个第一密钥,所述第二加密数据由至少一个第二子加密数据按照第二排序组成,一个第二子加密数据对应一个第二密钥,所述待验证签名由所述区块链网络中的数据提供节点上传至所述区块链,所述第一子加密数据为通过椭圆曲线加密算法对第一子加密数据对应的明文数据中的子明文数据进行加密后所得到的子加密数据;
第一确定模块,用于所述数据验证节点确定验证参数,并根据各第一密钥、所述各第一密钥的第一保序系数、各第二密钥、所述各第二密钥的第二保序系数以及所述验证参数确定公钥,其中,所述各第一密钥的第一保序系数各不相同,所述各第二密钥的第二保序系数各不相同,且相同排序位置的第一子加密数据的第一密钥的第一保序系数和第二子加密数据的第二密钥的第二保序系数相同;
验签模块,用于所述数据验证节点根据所述公钥对所述待验证签名进行验签;
第二确定模块,用于若所述待验证签名验签通过,所述数据验证节点确定所述第一加密数据和所述第二加密数据相同。
11.一种节点设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-8任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048106.0A CN112184441B (zh) | 2020-09-29 | 2020-09-29 | 数据处理方法、装置、节点设备及存储介质 |
PCT/CN2021/097226 WO2022068239A1 (zh) | 2020-09-29 | 2021-05-31 | 数据处理方法、节点设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048106.0A CN112184441B (zh) | 2020-09-29 | 2020-09-29 | 数据处理方法、装置、节点设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112184441A CN112184441A (zh) | 2021-01-05 |
CN112184441B true CN112184441B (zh) | 2024-01-19 |
Family
ID=73946421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011048106.0A Active CN112184441B (zh) | 2020-09-29 | 2020-09-29 | 数据处理方法、装置、节点设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112184441B (zh) |
WO (1) | WO2022068239A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184441B (zh) * | 2020-09-29 | 2024-01-19 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112819467B (zh) * | 2021-02-23 | 2024-09-06 | 中国信息通信研究院 | 一种隐私交易方法、装置及系统 |
CN113935070B (zh) * | 2021-12-16 | 2022-06-07 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018153486A1 (en) * | 2017-02-24 | 2018-08-30 | NEC Laboratories Europe GmbH | Method for signing a new block in a decentralized blockchain consensus network |
CN110061845A (zh) * | 2019-03-14 | 2019-07-26 | 深圳壹账通智能科技有限公司 | 区块链数据加密方法、装置、计算机设备及存储介质 |
CN110069939A (zh) * | 2019-03-12 | 2019-07-30 | 平安科技(深圳)有限公司 | 加密数据一致性校验方法、装置、计算机设备及存储介质 |
CN111339569A (zh) * | 2020-02-26 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111447174A (zh) * | 2020-02-19 | 2020-07-24 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链的数据加密方法 |
CN111476617A (zh) * | 2020-04-03 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及介质 |
CN111490878A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10885216B2 (en) * | 2018-01-18 | 2021-01-05 | Sap Se | Secure substring search to filter encrypted data |
EP3607483B1 (en) * | 2019-03-15 | 2021-07-07 | Advanced New Technologies Co., Ltd. | Authentication based on a recoverd public key |
US10951417B2 (en) * | 2019-07-12 | 2021-03-16 | Advanced New Technologies Co., Ltd. | Blockchain-based transaction verification |
CN111062716B (zh) * | 2019-11-29 | 2021-06-22 | 支付宝(杭州)信息技术有限公司 | 生成区块链签名数据的方法及装置、区块链交易发起系统 |
CN112184441B (zh) * | 2020-09-29 | 2024-01-19 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
-
2020
- 2020-09-29 CN CN202011048106.0A patent/CN112184441B/zh active Active
-
2021
- 2021-05-31 WO PCT/CN2021/097226 patent/WO2022068239A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018153486A1 (en) * | 2017-02-24 | 2018-08-30 | NEC Laboratories Europe GmbH | Method for signing a new block in a decentralized blockchain consensus network |
CN110069939A (zh) * | 2019-03-12 | 2019-07-30 | 平安科技(深圳)有限公司 | 加密数据一致性校验方法、装置、计算机设备及存储介质 |
CN110061845A (zh) * | 2019-03-14 | 2019-07-26 | 深圳壹账通智能科技有限公司 | 区块链数据加密方法、装置、计算机设备及存储介质 |
CN111447174A (zh) * | 2020-02-19 | 2020-07-24 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链的数据加密方法 |
CN111339569A (zh) * | 2020-02-26 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111476617A (zh) * | 2020-04-03 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及介质 |
CN111490878A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 密钥生成方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
"基于区块链的可验证医疗数据统计方案";叶俊;网络空间安全;第10卷(第12期);1-7 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022068239A1 (zh) | 2022-04-07 |
CN112184441A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110971405B (zh) | 多方协同的sm2签名、解密方法及其系统 | |
US9049027B2 (en) | Non-PKI digital signatures and information notary public in the cloud | |
CN112184441B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
US10103888B2 (en) | Method of performing keyed-hash message authentication code (HMAC) using multi-party computation without Boolean gates | |
EP3629519B1 (en) | System and method for generating one-time data signatures | |
CN103733564A (zh) | 利用隐式证书链的数字签名 | |
EP3384628A1 (en) | Adding privacy to standard credentials | |
JP2013539295A (ja) | メッセージ復元を伴うデジタル署名の認証された暗号化 | |
CN103765809A (zh) | 隐式认证的公钥 | |
JP2006504361A (ja) | 誤り訂正コードに基づくメッセージ認証コード | |
CN115804061A (zh) | 生成共享私钥 | |
CN111147245A (zh) | 一种区块链中使用国家密码进行加密的算法 | |
US11502846B2 (en) | Whitebox computation of keyed message authentication codes | |
WO2016067524A1 (ja) | 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
KR101253683B1 (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
KR20210036700A (ko) | 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템 | |
Stallings | Digital signature algorithms | |
EP2991266B1 (en) | Encrypted text matching system, method, and computer readable medium | |
WO2022068240A1 (zh) | 数据处理方法、节点设备及存储介质 | |
CN116488806A (zh) | 一种密钥封装方法、装置、设备及存储介质 | |
CN117795901A (zh) | 生成数字签名份额 | |
JP2024534237A (ja) | 共有暗号キーを生成すること | |
US20110296193A1 (en) | Code-based hashing for message authentication codes | |
WO2024154273A1 (ja) | デジタル署名システムと方法 |
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 |