CN110995443A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN110995443A CN110995443A CN201911216729.1A CN201911216729A CN110995443A CN 110995443 A CN110995443 A CN 110995443A CN 201911216729 A CN201911216729 A CN 201911216729A CN 110995443 A CN110995443 A CN 110995443A
- Authority
- CN
- China
- Prior art keywords
- signature
- node
- parameter
- public key
- common
- 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
Images
Classifications
-
- 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
- H04L9/3255—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 using group based signatures, e.g. ring or threshold 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理方法,应用于区块链网络中的一个验证节点,区块链网络包括多个节点,多个节点包括验证节点、聚合签名节点和多个普通签名节点,该方法包括:接收聚合签名,聚合签名包括第一参数和第二参数,第一参数是由聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,第二参数是由聚合签名节点对每个普通签名节点针对交易数据生成的签名参数进行求和计算获得的;获取每个普通签名节点的主公钥参数和第一哈希值;对多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和;根据聚合签名、哈希值总和和每个普通签名节点的主公钥参数对交易数据的签名进行验证。
Description
技术领域
本公开涉及一种数据处理方法和一种数据处理装置。
背景技术
区块链技术目标是实现数据的分布式可靠存储。区块链具体实现时,数据在网络内多节点上采用增量式存储,并且通过安全散列函数(Secure Hash Algorithm,SHA)确保了入链数据的不可篡改,通过共识算法和网络传输协议实现了数据在各节点上存储的一致性。
区块链一般可以分为公有链(public chain)和许可链(permissioned chain),其中许可链又可以根据数据维护方是否为单一个体(entity)分成联盟链(consortium)和私有链(private chain)。
目前主要的许可链系统,例如超级账本Hyperledger的Fabric,其节点的身份构建基于当今主流的公钥基础设施(PKI),使用证书权威机构(CA)颁发证书来建立用户实体与其公钥之间的联系,其中包含签名确保真实性。
目前公钥私钥体制有以下三种方案:基于证书的公钥私钥体制PKI、基于标识的公钥私钥体制IBC以及无证书公钥私钥体制CLPKC。其中,采用PKI需要使用证书权威机构CA颁发证书来建立用户实体与公钥之间的联系,然而证书的管理(例如颁发、更新、撤销)不仅操作复杂,还需要消耗很多计算资源和存储资源。其中,采用IBC虽然消除了对证书的依赖,但是用户的公钥由用户标识唯一确定,用户的私钥由信任权威机构生成。因而采用IBC会引入了私钥托管问题,且用户签名不具有唯一性和不可否认性。其中,采用CLPKC,用户私钥通过私钥生成可信中心的辅助运算,最终在用户端生成,用户对私钥具备完全控制权。用户的公钥也由用户标识参与生成,但不是唯一对应,即可以撤销及更新私钥,同时不使用证书。
发明人在实现本公开的过程中发现,采用相关技术对数据进行签名验证的过程复杂,导致计算效率低。
发明内容
本公开的一个方面提供了一种数据处理方法,应用于区块链网络中的一个验证节点,上述区块链网络包括多个节点,上述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,上述方法包括:接收聚合签名,其中,上述聚合签名包括第一参数和第二参数,其中,上述第一参数是由上述聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,上述第二参数是由上述聚合签名节点对上述每个普通签名节点针对上述交易数据生成的签名参数进行求和计算获得的;获取上述每个普通签名节点的主公钥参数和第一哈希值,其中,上述第一哈希值是基于上述第一参数计算获得的;对上述多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和;以及根据上述聚合签名、上述哈希值总和和上述每个普通签名节点的主公钥参数对上述交易数据的签名进行验证。
可选地,根据上述聚合签名、上述每个普通签名节点的主公钥参数和第一哈希值对上述交易数据的签名进行验证包括:验证包括第一公钥生成参数的预设等式是否成立;其中,在上述预设等式成立的情况下,确定对上述交易数据的签名验证成功;在上述预设等式不成立的情况下,确定对上述交易数据的签名验证失败。
可选地,获取上述每个普通签名节点的主公钥参数包括:获取上述每个普通签名节点的标识数据、副公钥参数和第二公钥生成参数;根据上述标识数据和副公钥参数计算获得第二哈希值;根据上述第二哈希值、上述副公钥参数和上述第二公钥生成参数计算获得上述主公钥参数;其中,根据上述第二哈希值、上述副公钥参数和上述第二公钥生成参数计算获得上述主公钥参数包括:将上述第二哈希值进行二进制转换,获得32位的第一数值;获得上述第一数值的高16位二进制以及低16位二进制;将上述高16位二进制进行十进制转换,获得第一子数值;将上述低16位二进制进行十进制转换,获得第二子数值;以及基于上述第一子数值与上述副公钥参数的乘积以及上述第二子数值与上述第二公钥生成参数的乘积,生成上述主公钥参数。
可选地,上述多个节点还包括排序节点,上述方法还包括:在上述交易数据的签名验证成功的情况下,将上述交易数据发送至上述排序节点,以便上述排序节点对上述交易数据进行排序,并基于排序位置将上述交易数据发送至上述区块链网络中除上述排序节点之外的其他节点,使得上述其他节点将上述交易数据存入各自对应的区块链中。
本公开的另一个方面提供了一种数据处理方法,应用于区块链网络中的一个聚合签名节点,上述区块链网络包括多个节点,上述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,上述方法包括:接收签名值,其中,上述签名值包括第一中间值和签名参数,上述第一中间值和上述签名参数是上述每个普通签名节点针对交易数据生成的;对上述每个普通签名节点的第一中间值进行求和计算获得第一参数;对上述每个普通签名节点的签名参数进行求和计算获得第二参数;以及向上述验证节点发送聚合签名,其中,上述聚合签名包括上述第一参数和上述第二参数。
可选地,上述方法还包括:获取上述每个普通签名节点的主公钥参数、第一哈希值和第一公钥生成参数,其中,上述第一哈希值是基于上述第一参数计算获得的;基于上述每个普通签名节点的主公钥参数、第一哈希值、第一公钥生成参数、第一中间值和签名参数对上述每个普通签名节点的签名值进行验证,其中,在验证成功的情况下,向上述验证节点发送上述聚合签名;其中,获取上述每个普通签名节点的主公钥参数包括:获取上述每个普通签名节点的标识数据、副公钥参数和第二公钥生成参数;根据上述标识数据和副公钥参数计算获得第二哈希值;以及根据上述第二哈希值、上述副公钥参数和上述第二公钥生成参数计算获得上述主公钥参数。
本公开的另一个方面提供了一种数据处理方法,应用于区块链网络中的一个普通签名节点,上述区块链网络包括多个节点,上述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,上述方法包括:生成普通签名节点本端的私钥参数和主公钥参数;生成随机数;基于上述随机数生成上述普通签名节点本端的第一中间值;接收来自其他普通签名节点的第一中间值;将上述普通签名节点本端的第一中间值和上述来自其他普通签名节点的第一中间值进行求和,计算获得中间值总和;基于交易数据、上述普通签名节点本端的标识数据、第二中间值、上述中间值总和计算第一哈希值;基于上述第一哈希值、上述普通签名节点本端的私钥、上述随机数计算签名参数;以及将上述签名参数、第一中间值、交易数据、上述普通签名节点本端的标识数据、上述第二中间值发送给聚合签名节点。
本公开的另一个方面提供了一种数据处理装置,应用于区块链网络中的一个验证节点,上述区块链网络包括多个节点,上述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,上述装置包括:第一接收模块,用于接收聚合签名,其中,上述聚合签名包括第一参数和第二参数,其中,上述第一参数是由上述聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,上述第二参数是由上述聚合签名节点对上述每个普通签名节点针对上述交易数据生成的签名参数进行求和计算获得的;第一获取模块,用于获取上述每个普通签名节点的主公钥参数和第一哈希值,其中,上述第一哈希值是基于上述第一参数计算获得的;第一计算模块,用于对上述多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和;以及第一验证模块,用于根据上述聚合签名、上述哈希值总和和上述每个普通签名节点的主公钥参数对上述交易数据的签名进行验证。
本公开的另一个方面提供了一种数据处理装置,应用于区块链网络中的一个聚合签名节点,上述区块链网络包括多个节点,上述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,上述装置包括:第二接收模块,用于接收签名值,其中,上述签名值包括第一中间值和签名参数,上述第一中间值和上述签名参数是上述每个普通签名节点针对交易数据生成的;第二计算模块,用于对上述每个普通签名节点的第一中间值进行求和计算获得第一参数;第三计算模块,用于对上述每个普通签名节点的签名参数进行求和计算获得第二参数;以及第一发送模块,用于向上述验证节点发送聚合签名,其中,上述聚合签名包括上述第一参数和上述第二参数。
本公开的另一个方面提供了一种数据处理装置,应用于区块链网络中的一个普通签名节点,上述区块链网络包括多个节点,上述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,上述装置包括:第一生成模块,用于生成普通签名节点本端的私钥参数和主公钥参数;第二生成模块,用于生成随机数;第三生成模块,用于基于上述随机数生成上述普通签名节点本端的第一中间值;第三接收模块,用于接收来自其他普通签名节点的第一中间值;第四计算模块,用于将上述普通签名节点本端的第一中间值和上述来自其他普通签名节点的第一中间值进行求和,计算获得中间值总和;第五计算模块,用于基于交易数据、上述普通签名节点本端的标识数据、第二中间值、上述中间值总和计算第一哈希值;第六计算模块,用于基于上述第一哈希值、上述普通签名节点本端的私钥、上述随机数计算签名参数;以及第二发送模块,用于将上述签名参数、第一中间值、交易数据、上述普通签名节点本端的标识数据、上述第二中间值发送给聚合签名节点。
本公开的另一个方面提供了一种计算机系统,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开的实施例的数据处理方法及装置的应用场景;
图2示意性示出了根据本公开实施例的区块链网络的示意图;
图3示意性示出了根据本公开实施例的由普通签名节点执行的数据处理方法的流程图;
图4示意性示出了根据本公开实施例的普通签名节点生成密钥的示意图;
图5示意性示出了根据本公开实施例的普通签名节点生成签名的示意图;
图6示意性示出了根据本公开实施例的由聚合签名节点执行的数据处理方法的流程图;
图7示意性示出了根据本公开实施例的由聚合签名节点对每个普通签名节点的签名进行验证的流程图;
图8示意性示出了根据本公开实施例的由验证节点执行的数据处理方法的流程图;
图9示意性示出了根据本公开实施例的应用于验证节点的数据处理装置的框图;
图10示意性示出了根据本公开实施例的应用于聚合签名节点的数据处理装置的框图;
图11示意性示出了根据本公开实施例的应用于普通签名节点的数据处理装置的框图;以及
图12示意性示出了根据本公开实施例的适于实现数据处理方法的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种数据处理方法,应用于区块链网络中的一个验证节点,区块链网络包括多个节点,多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,该方法包括接收聚合签名,其中,聚合签名包括第一参数和第二参数,其中,第一参数是由聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,第二参数是由聚合签名节点对每个普通签名节点针对交易数据生成的签名参数进行求和计算获得的;获取每个普通签名节点的主公钥参数和第一哈希值,其中,第一哈希值是基于第一参数计算获得的;对多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和;以及根据聚合签名、哈希值总和和每个普通签名节点的主公钥参数对交易数据的签名进行验证。
图1示意性示出了根据本公开的实施例的数据处理方法及装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景示出了系统架构100,该系统架构100中可以包括客户端节点110~130和区块链网络140。其中,该区块链网络140可以包括多个区块链节点141~146,区块链节点141~146共同维护区块链,区块链上的区块可以按照时间顺序加入。
根据本公开的实施例,客户端节点110~130的类型不做限定,例如可以是个人计算机、手机、平板电脑等设备。客户端节点110~130可以作为请求端向区块链网络140发出请求。
根据本公开的实施例,在一些应用场景中,客户端节点110~130也可以作为区块链网络140中的节点,即客户端节点110~130可以与区块链网络140中的任意节点进行点对点通信,也可以创建区块并将该区块加入到区块链中。
根据本公开的实施例,区块链节点141~146可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器等等,在此不做限定。区块链节点141~146中的任意两个节点之间可以进行点对点通信。
根据本公开的实施例,区块链网络140中的各区块链节点允许当前区块链节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。
根据本公开的实施例,区块链网络140中可以包括至少一个验证节点、至少一个聚合签名节点、多个普通签名节点。其中,验证节点、聚合签名节点和普通签名节点的功能不同。例如,在客户端节点发起交易请求之后,可以将交易请求发送给每个普通签名节点进行交易计算,得到计算结果,每个普通签名节点对计算结果进行签名,然后将签名后的计算结果发送给聚合签名节点对所有的计算结果进行聚合签名,最后将聚合签名结果发送给验证节点进行验证。如果验证通过,验证节点可以将交易结果以广播的方式发送给区块链网络中的部分或全部节点。
应该理解,图1中的区块链网络的构造、客户端节点数量、区块链网络中的区块链节点的数量等仅仅是示意性的。在实际应用场景中,根据实际需要,可以具有任意构造的区块链网络、任意数量的客户端节点、区块链节点等。
图2示意性示出了根据本公开实施例的区块链网络的示意图。
如图2所示,该区块链网络200可以包括多个节点,多个节点可以包括至少一个验证节点210、至少一个聚合签名节点220、多个普通签名节点230、以及其它节点240。
根据本公开的实施例,聚合签名节点220可以是发起交易的客户端节点本身,也可以是发起交易的客户端节点委托用于聚合签名的节点。
根据本公开的实施例,普通签名节点230的数量和标识信息与客户端节点的配置文件有关。该配置文件是在客户端节点加入区块链网络200时配置完成的,该配置文件中包括了该客户端节点在进行交易验证签名时所需要使用的普通签名节点230的数量和标识信息。其中,普通签名节点230是从区块链网络200的所有节点中选择出来的。例如,普通签名节点230可以包括普通签名节点1、普通签名节点2和普通签名节点3。
根据本公开的实施例,在其中一个应用场景中,普通签名节点230可以认为是背书节点。聚合签名节点220(或者客户端节点)使用签名算法对新提交的交易进行签名之后,将签名后的交易数据发送给背书节点进行背书,背书节点对交易数据内容进行背书后,得到背书结果。背书节点使用签名算法对背书结果进行签名,并反馈给聚合签名节点220(或者客户端节点)。
聚合签名节点220(或者客户端节点)根据签名后的背书结果判断交易是否合法合规。对于合法合规的交易,使用聚合签名算法将所有背书节点的签名进行聚合,最终将聚合签名和交易数据提交给验证节点210进行验证。
根据本公开的实施例,如果验证节点210验证通过,则会将交易数据发送给区块链网络200中负责记录交易数据的节点,例如,验证节点210会将交易数据以广播的方式发送给普通签名节点230和其他节点240。普通签名节点230和其他节点240在接收到交易数据之后,会将交易数据记录在各自维护的区块链上。
根据本公开的实施例,以背书场景为例,下面对图2所示的区块链网络的工作机制进行简要说明。
(一)区块链网络初始化环节;
根据本公开的实施例,可以使用密钥生成中心(KGC)参与对交易数据进行签名验证的过程。密钥生成中心(KGC)可以将椭圆曲线参数{E,G,n}以及哈希函数h()等参数公开;密钥生成中心(KGC)可以生成系统主密钥和主公钥,将系统主密钥保存,将系统主公钥公开。
具体地,区块链网络中的各节点peer可以使用密钥生成算法从可信的密钥生成中心(KGC)申请并生成{身份-部分公钥}对。在一可选实施例中,可以将KGC所属组织下节点的部分公钥参数写入创世块。
(二)背书环节;
根据本公开的实施例,发起节点(例如可以是聚合签名节点220)将交易数据进行封装,并使用私钥参数进行签名,获得签名结果;然后将身份标识、交易数据、公钥参数、签名结果发送给背书节点(例如可以是普通签名节点230)。背书节点执行验签算法,若验签通过,则进行交易的模拟执行,将执行结果返回给发起节点。若发起节点确定收到足够的背书节点签名通过的交易数据后,将交易数据的封装发给排序节点(例如可以是验证节点210)。
在一可选实施例中,发起节点可以不发送公钥参数,背书节点通过区块链的创世块信息获取公钥参数。
(三)排序环节;
具体的,排序节点(例如可以是验证节点210)对时间窗内的所有有效交易进行排序、出块,可以使用反熵算法将块信息广播给区块链网络中的所有节点。
(四)确认环节;
具体地,所有节点验证、记录、并确认块信息内的交易,将交易写入区块链,并更新各自的账本状态。
下面参考图3~图8,结合具体实施例对图2所示的区块链网络的工作机制做进一步说明。
图3示意性示出了根据本公开实施例的由普通签名节点执行的数据处理方法的流程图。
根据本公开的实施例,该数据处理方法应用于区块链网络中的一个普通签名节点。根据本公开的实施例,区块链网络中可以包括多个普通签名节点,普通签名节点的数量可以预先设定。区块链网络中的每个普通签名节点都可以执行图3所示的方法。
根据本公开的实施例,本公开所提供的聚合签名系统可以包括可信的密钥生成中心(KGC)和区块链网络中的节点。
密钥生成中心(KGC)可以将椭圆曲线参数{E,G,n}以及哈希函数h()等参数公开;密钥生成中心(KGC)可以生成系统主密钥sk和主公钥P,将系统主密钥sk保存,将系统主公钥P公开。
假设系统中有i个区块链节点,所有区块链节点分别与KGC交互执行密钥生成算法。
如图3所示,该方法包括操作S301~S308。
在操作S301,生成普通签名节点本端的私钥参数(dAi)和主公钥参数(QAi)。
根据本公开的实施例,生成普通签名节点本端的私钥参数(dAi)的过程可以包括如下三个步骤。图4示意性示出了根据本公开实施例的普通签名节点生成密钥的示意图。
第一步,标识为IDi的普通签名节点Ai基于公开参数n随机生成随机数xAi,计算椭圆曲线上点XAi=XAi*G,将IDi、XAi发送给KGC。
第二步,KGC收到(IDi,XAi)后,随机生成yi,计算椭圆曲线上点PAi=XAi+yi*G,计算摘要ei=h(IDi||PAi)(即哈希值)。可以将摘要ei拆分并计算签名值zi=ei[0:15]*yi+ei[16:31]*sk,KGC可以将PAi,zi发送给普通签名节点Ai。
第三步,普通签名节点Ai收到PAi,zi后,首先计算ei=h(IDi||PAi),然后验证预设公式是否成立。预设公式可以是如下公式:
(ei[0:15]*XAi+zi)*G=ei[0:15]*PAi+ei[16:31]*P
如果验证通过,则普通签名节点Ai可以计算私钥参数,计算公式可以为dAi=ei[0:15]*xAi+Zi,其中,xAi可以是随机数。
根据本公开的实施例,主公钥参数(QAi)的计算公式可以是如下公式:
QAi=ei[0:15]*PAi+ei[16:31]*P。
在操作S302,生成随机数(ri)。
在操作S303,基于随机数(ri)生成普通签名节点本端的第一中间值(Ri)。根据本公开的实施例,每个普通签名节点可以通过计算椭圆曲线上点Ri=ri*G,得到对应的第一中间值(Ri)。
在操作S304,接收来自其他普通签名节点的第一中间值(Ri)。
图5示意性示出了根据本公开实施例的普通签名节点生成签名的示意图。其中,图5意性示出了3个普通签名节点之间进行交互示意图。
根据本公开的实施例,本公开各个普通签名节点之间需要进行交互,沟通方式是任何节点之间都进行沟通,需要接收来自其他i-1个普通签名节点的第一中间值(Ri)。
在操作S305,将普通签名节点本端的第一中间值(Ri)和来自其他普通签名节点的第一中间值(Ri)进行求和,计算获得中间值总和(R)。
在操作S306,基于交易数据(m)、普通签名节点本端的标识数据(IDi)、第二中间值(PAi)、中间值总和(R)计算第一哈希值(hi1)。
根据本公开的实施例,计算第一哈希值(hi1)的公式例如可以是h(mi||IDi||PAi||R)。
在操作S307,基于第一哈希值(hi1)、普通签名节点本端的私钥(dAi)、随机数(ri)计算签名参数(si)。例如,在普通签名节点Ai本端计算签名参数si=ri+h(mi||IDi||PAi||R)*dAi。
在操作S308,将签名参数(si)、第一中间值(Ri)、交易数据(m)、普通签名节点本端的标识数据(IDi)、第二中间值(PAi)发送给聚合签名节点。
根据本公开的实施例,签名参数(si)、第一中间值(Ri)可以组成签名值sigi=(si,Ri),普通签名节点Ai可以将{mi,IDi,PAi,sigi}发送给聚合签名节点。
通过本公开的实施例,构建了一种聚合签名算法,并改造联盟链签名机制,在对交易数据进行签名的过程中,每个普通签名节点都要接收来自其他普通签名节点的第一中间值,并且,基于所有普通签名节点的第一中间值计算得到中间值总和。如此,基于中间值总和计算得到的第一哈希值的总长度是固定的,以及计算得到的签名参数的总长度也是固定的,不仅保证了签名结果的长度固定,而且达到了聚合签名的效果,从而提高了签名的安全性。本方案不使用双线性对,具有性能优势,同时聚合签名长度固定,验证方便简洁,减少了区块大小,缓解存储压力。
通过本公开的实施例,普通签名节点对私钥参数有生成管理权限,减少了托管和传输私钥导致的私钥泄露现象,减少了因为泄露导致的安全问题。
图6示意性示出了根据本公开实施例的由聚合签名节点执行的数据处理方法的流程图。
根据本公开的实施例,该数据处理方法应用于区块链网络中的一个聚合签名节点。根据本公开的实施例,聚合签名节点可以是发起交易的客户端节点本身,也可以是发起交易的客户端节点委托用于聚合签名的节点。
根据本公开的实施例,聚合签名节点可以接收所有普通签名节点发送的签名值。
如图6所示,该方法包括操作S601~S604。
在操作S601,接收签名值(Ri,si),其中,签名值(Ri,si)包括第一中间值(Ri)和签名参数(si),第一中间值(Ri)和签名参数(si)是每个普通签名节点针对交易数据(m)生成的。
根据本公开的实施例,每个普通签名节点针对交易数据(m)生成第一中间值(Ri)和签名参数(si)的过程可以参考图3和图4的描述,在此不再赘述。
在操作S602,对每个普通签名节点的第一中间值(Ri)进行求和计算获得第一参数(R)。
在操作S603,对每个普通签名节点的签名参数(si)进行求和计算获得第二参数(S)。
在操作S604,向验证节点发送聚合签名(R,S),其中,聚合签名(R,S)包括第一参数(R)和第二参数(S)。
根据本公开的实施例,在聚合签名节点向验证节点发送聚合签名之前,还可以对每个普通签名节点的签名进行验证。
图7示意性示出了根据本公开实施例的由聚合签名节点对每个普通签名节点的签名进行验证的流程图。如图7所示,该方法包括操作S701~S702。
在操作S701,获取每个普通签名节点的主公钥参数(QAi)、第一哈希值(hi1)和第一公钥生成参数(G),其中,第一哈希值(hi1)是基于第一参数(R)计算获得的。
根据本公开的实施例,计算第一哈希值(hi1)的公式例如可以是h(mi||IDi||PAi||R)。
在操作S702,基于每个普通签名节点的主公钥参数(QAi)、第一哈希值(hi1)、第一公钥生成参数(G)、第一中间值(Ri)和签名参数(si)对每个普通签名节点的签名值(Ri,si)进行验证,其中,在验证成功的情况下,向验证节点发送聚合签名(R,S)。
根据本公开的实施例,对每个普通签名节点的签名值(Ri,si)进行验证可以是验证如下等式是否成立:si*G=Ri+h(mi||IDi||PAi||R)*QAi。如果等式成立,则验证成功,否则,将验证失败。
根据本公开的实施例,获取每个普通签名节点的主公钥参数(QAi)包括:获取每个普通签名节点的标识数据(IDi)、副公钥参数(PAi)和第二公钥生成参数(P);根据标识数据(IDi)和副公钥参数(PAi)计算获得第二哈希值(hi2);根据第二哈希值(hi2)、副公钥参数(PAi)和第二公钥生成参数(P)计算获得主公钥参数(QAi)。
根据本公开的实施例,第二公钥生成参数(P)可以是密钥生成中心向区块链网络中的所有节点广播的主公钥参数P。
通过本公开的实施例,在对交易数据进行签名的过程中,每个普通签名节点都要接收来自其他普通签名节点的第一中间值,并且,基于所有普通签名节点的第一中间值计算得到中间值总和,基于中间值总和计算得到的第一哈希值的总长度是固定的,以及计算得到的签名参数的总长度也是固定的,不仅保证了签名结果的长度,而且达到了聚合签名的效果,从而提高了签名的安全性。
图8示意性示出了根据本公开实施例的由验证节点执行的数据处理方法的流程图。
根据本公开的实施例,该数据处理方法应用于区块链网络中的一个验证节点,验证节点可以接收聚合签名σ=(R,S)和消息-身份-部分公钥{mi,IDi,PAi}(i=1...n)。如图8所示,该方法包括操作S801~S804。
在操作S801,接收聚合签名(R,S),其中,聚合签名(R,S)包括第一参数(R)和第二参数(S),其中,第一参数(R)是由聚合签名节点对每个普通签名节点针对交易数据(m)生成的第一中间值(Ri)进行求和计算获得的,第二参数(S)是由聚合签名节点对每个普通签名节点针对交易数据(m)生成的签名参数(si)进行求和计算获得的。
根据本公开的实施例,第一参数(R)和第二参数(S)的公式如下:
在操作S802,获取每个普通签名节点的主公钥参数(QAi)和第一哈希值(hil),其中,第一哈希值(hi1)是基于第一参数(R)计算获得的。
在操作S803,对多个普通签名节点中的每个普通签名节点的第一哈希值(hi1)进行求和计算,获得哈希值总和(H)。
根据本公开的实施例,哈希值总和(H)可以按照如下公式进行计算:
在操作S804,根据聚合签名(R,S)、哈希值总和(H)和每个普通签名节点的主公钥参数(QAi)对交易数据(m)的签名进行验证。
通过本公开的实施例,将所有普通签名节点的签名进行聚合,验证节点仅需要对聚合签名进行验证,达到了一次验证即可完成所有签名的验证计算,提高了验证效率。
根据本公开的实施例,根据聚合签名(R,S)、每个普通签名节点的主公钥参数(QAi)和第一哈希值(hi1)对交易数据(m)的签名进行验证包括:验证包括第一公钥生成参数的预设等式是否成立。
根据本公开的实施例,可以验证如下预设等式是否成立:
根据本公开的实施例,在预设等式成立的情况下,确定对交易数据(m)的签名验证成功。
根据本公开的实施例,在预设等式不成立的情况下,确定对交易数据(m)的签名验证失败。
根据本公开的实施例,获取每个普通签名节点的主公钥参数(QAi)包括:获取每个普通签名节点的标识数据(IDi)、副公钥参数(PAi)和第二公钥生成参数(P);根据标识数据(IDi)和副公钥参数(PAi)计算获得第二哈希值(hi2);根据第二哈希值(hi2)、副公钥参数(PAi)和第二公钥生成参数(P)计算获得主公钥参数(QAi)。
根据本公开的实施例,第二哈希值(hi2)可以为标识数据(IDi)、副公钥参数(PAi)的串接,即第二哈希值(hi2)例如可以是ei=h(IDi||PAi)。例如,标识数据(IDi)为1212,副公钥参数(PAi)为21345;则第二哈希值(hi2)为121221345。
根据本公开的实施例,根据第二哈希值(hi2)、副公钥参数(PAi)和第二公钥生成参数(P)计算获得主公钥参数(QAi)可以包括如下步骤:将第二哈希值(hi2)进行二进制转换,获得32位的第一数值;获得第一数值的高16位二进制以及低16位二进制;将高16位二进制进行十进制转换,获得第一子数值;将低16位二进制进行十进制转换,获得第二子数值;以及基于第一子数值与副公钥参数(PAi)的乘积以及第二子数值与第二公钥生成参数(P)的乘积,生成主公钥参数(QAi)。
根据本公开的实施例,可以按照如下公式计算获得主公钥参数(QAi)。
QAi=ei[0:15]*PAi+ei[16:31]*P。
根据本公开的实施例,例如,第二哈希值(hi2)为220,将220进行二进制转换,获得32位的第一数值为:00000000000100000000000000000000;获得第一数值的高16位二进制为:0000000000010000,以及第一数值的低16位二进制为:0000000000000000;将高16位二进制进行十进制转换,获得第一子数值为:16;将低16位二进制进行十进制转换,获得第二子数值为:0;由于第二子数值为0,则第二子数值与第三密钥参数的乘积为0;基于第一子数值与副公钥参数(PAi)的乘积以及第二子数值与第二公钥生成参数(P)的乘积,生成主公钥参数(QAi)。
在本实施例中,可以将第二哈希值(hi2)进行高16位二进制以及低16位二进制的拆分,基于高16位二进制进行十进制转换获得的第一子数值以及低16位二进制进行十进制转换第二进行计算;如此,提供了一种获取主公钥参数的算法,同时该算法比较简单易实现,可以简化公钥参数的计算。该种计算方式与椭圆曲线的计算式相关,若第一中间值的获取是基于椭圆曲线的生成元为已知量而利用单线函数获取的,则该种计算方式与椭圆曲线算法相匹配,能够进一步优化算法,提升计算效率。
根据本公开的实施例,可以由普通签名节点本身计算主公钥参数(QAi),也可以由聚合签名节点计算主公钥参数(QAi)。
根据本公开的实施例,区块链网络中还可以包括排序节点。其中,排序节点可以是验证节点本身,也可以是其他节点。
根据本公开的实施例,在交易数据(m)的签名验证成功的情况下,可以将交易数据(m)发送至排序节点,以便排序节点对交易数据(m)进行排序,并基于排序位置将交易数据(m)发送至区块链网络中除排序节点之外的其他节点,使得其他节点将交易数据(m)存入各自对应的区块链中。
图9示意性示出了根据本公开实施例的应用于验证节点的数据处理装置的框图。
如图9所示,应用于验证节点的数据处理装置900包括第一接收模块910、第一获取模块920、第一计算模块930和第一验证模块940。
第一接收模块910用于接收聚合签名,其中,聚合签名包括第一参数和第二参数,其中,第一参数是由聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,第二参数是由聚合签名节点对每个普通签名节点针对交易数据生成的签名参数进行求和计算获得的。
第一获取模块920用于获取每个普通签名节点的主公钥参数和第一哈希值,其中,第一哈希值是基于第一参数计算获得的。
第一计算模块930用于对多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和。
第一验证模块940用于根据聚合签名、哈希值总和和每个普通签名节点的主公钥参数对交易数据的签名进行验证。
图10示意性示出了根据本公开实施例的应用于聚合签名节点的数据处理装置的框图。
如图10所示,应用于聚合签名节点的数据处理装置1000包括第二接收模块1010、第二计算模块1020、第三计算模块1030和第一发送模块1040。
第二接收模块1010用于接收签名值,其中,签名值包括第一中间值和签名参数,第一中间值和签名参数是每个普通签名节点针对交易数据生成的。
第二计算模块1020用于对每个普通签名节点的第一中间值进行求和计算获得第一参数。
第三计算模块1030用于对每个普通签名节点的签名参数进行求和计算获得第二参数。
第一发送模块1040用于向验证节点发送聚合签名,其中,聚合签名包括第一参数和第二参数。
图11示意性示出了根据本公开实施例的应用于普通签名节点的数据处理装置的框图。
如图11所示,数据处理装置1100应用于区块链网络中的一个普通签名节点,区块链网络包括多个节点,多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,应用于普通签名节点的数据处理装置1100包括第一生成模块1110、第二生成模块1120、第三生成模块1130、第三接收模块1140、第四计算模块1150、第五计算模块1160、第六计算模块1170和第二发送模块1180。
第一生成模块1110用于生成普通签名节点本端的私钥参数和主公钥参数。
第二生成模块1120用于生成随机数。
第三生成模块1130用于基于随机数生成普通签名节点本端的第一中间值。
第三接收模块1140用于接收来自其他普通签名节点的第一中间值。
第四计算模块1150用于将普通签名节点本端的第一中间值和来自其他普通签名节点的第一中间值进行求和,计算获得中间值总和。
第五计算模块1160用于基于交易数据、普通签名节点本端的标识数据、第二中间值、中间值总和计算第一哈希值。
第六计算模块1170用于基于第一哈希值、普通签名节点本端的私钥、随机数计算签名参数。
第二发送模块1180用于将签名参数、第一中间值、交易数据、普通签名节点本端的标识数据、第二中间值发送给聚合签名节点。
需要说明的是,对数据处理装置的描述与上述数据处理方法的描述是类似的,同方法的有益效果描述,在此不再赘述。对于本公开数据处理装置实施例中未披露的技术细节,请参照本发明数据处理方法实施例的描述而理解。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一接收模块910、第一获取模块920、第一计算模块930和第一验证模块940中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块910、第一获取模块920、第一计算模块930和第一验证模块940中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或同件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块910、第一获取模块920、第一计算模块930和第一验证模块940中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图12示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。图12示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括处理器1210和计算机可读存储介质1220。该计算机系统1200可以执行根据本公开实施例的方法。
具体地,处理器1210例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1210还可以包括用于缓存用途的板载存储器。处理器1210可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1220,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质1220可以包括计算机程序1221,该计算机程序1221可以包括代码/计算机可执行指令,其在由处理器1210执行时使得处理器1210执行根据本公开实施例的方法或其任何变形。
计算机程序1221可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1221中的代码可以包括一个或多个程序模块,例如包括1221A、模块1221B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1210执行时,使得处理器1210可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,例如,第一接收模块910、第一获取模块920、第一计算模块930和第一验证模块940中的至少一个可以实现为参考图12描述的计算机程序模块,其在被处理器1210执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种数据处理方法,应用于区块链网络中的一个验证节点,所述区块链网络包括多个节点,所述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,所述方法包括:
接收聚合签名,其中,所述聚合签名包括第一参数和第二参数,其中,所述第一参数是由所述聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,所述第二参数是由所述聚合签名节点对所述每个普通签名节点针对所述交易数据生成的签名参数进行求和计算获得的;
获取所述每个普通签名节点的主公钥参数和第一哈希值,其中,所述第一哈希值是基于所述第一参数计算获得的;
对所述多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和;以及
根据所述聚合签名、所述哈希值总和和所述每个普通签名节点的主公钥参数对所述交易数据的签名进行验证。
2.根据权利要求1所述的方法,其中,根据所述聚合签名、所述每个普通签名节点的主公钥参数和第一哈希值对所述交易数据的签名进行验证包括:
验证包括第一公钥生成参数的预设等式是否成立;
其中,在所述预设等式成立的情况下,确定对所述交易数据的签名验证成功;
在所述预设等式不成立的情况下,确定对所述交易数据的签名验证失败。
3.根据权利要求1所述的方法,其中,获取所述每个普通签名节点的主公钥参数包括:
获取所述每个普通签名节点的标识数据、副公钥参数和第二公钥生成参数;
根据所述标识数据和副公钥参数计算获得第二哈希值;
根据所述第二哈希值、所述副公钥参数和所述第二公钥生成参数计算获得所述主公钥参数;
其中,根据所述第二哈希值、所述副公钥参数和所述第二公钥生成参数计算获得所述主公钥参数包括:
将所述第二哈希值进行二进制转换,获得32位的第一数值;
获得所述第一数值的高16位二进制以及低16位二进制;
将所述高16位二进制进行十进制转换,获得第一子数值;
将所述低16位二进制进行十进制转换,获得第二子数值;以及
基于所述第一子数值与所述副公钥参数的乘积以及所述第二子数值与所述第二公钥生成参数的乘积,生成所述主公钥参数。
4.根据权利要求1所述的方法,其中,所述多个节点还包括排序节点,所述方法还包括:
在所述交易数据的签名验证成功的情况下,将所述交易数据发送至所述排序节点,以便所述排序节点对所述交易数据进行排序,并基于排序位置将所述交易数据发送至所述区块链网络中除所述排序节点之外的其他节点,使得所述其他节点将所述交易数据存入各自对应的区块链中。
5.一种数据处理方法,应用于区块链网络中的一个聚合签名节点,所述区块链网络包括多个节点,所述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,所述方法包括:
接收签名值,其中,所述签名值包括第一中间值和签名参数,所述第一中间值和所述签名参数是所述每个普通签名节点针对交易数据生成的;
对所述每个普通签名节点的第一中间值进行求和计算获得第一参数;
对所述每个普通签名节点的签名参数进行求和计算获得第二参数;以及
向所述验证节点发送聚合签名,其中,所述聚合签名包括所述第一参数和所述第二参数。
6.根据权利要求5所述的方法,还包括:
获取所述每个普通签名节点的主公钥参数、第一哈希值和第一公钥生成参数,其中,所述第一哈希值是基于所述第一参数计算获得的;
基于所述每个普通签名节点的主公钥参数、第一哈希值、第一公钥生成参数、第一中间值和签名参数对所述每个普通签名节点的签名值进行验证,其中,在验证成功的情况下,向所述验证节点发送所述聚合签名;
其中,获取所述每个普通签名节点的主公钥参数包括:
获取所述每个普通签名节点的标识数据、副公钥参数和第二公钥生成参数;
根据所述标识数据和副公钥参数计算获得第二哈希值;以及
根据所述第二哈希值、所述副公钥参数和所述第二公钥生成参数计算获得所述主公钥参数。
7.一种数据处理方法,应用于区块链网络中的一个普通签名节点,所述区块链网络包括多个节点,所述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,所述方法包括:
生成普通签名节点本端的私钥参数和主公钥参数;
生成随机数;
基于所述随机数生成所述普通签名节点本端的第一中间值;
接收来自其他普通签名节点的第一中间值;
将所述普通签名节点本端的第一中间值和所述来自其他普通签名节点的第一中间值进行求和,计算获得中间值总和;
基于交易数据、所述普通签名节点本端的标识数据、第二中间值、所述中间值总和计算第一哈希值;
基于所述第一哈希值、所述普通签名节点本端的私钥、所述随机数计算签名参数;以及
将所述签名参数、第一中间值、交易数据、所述普通签名节点本端的标识数据、所述第二中间值发送给聚合签名节点。
8.一种数据处理装置,应用于区块链网络中的一个验证节点,所述区块链网络包括多个节点,所述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,所述装置包括:
第一接收模块,用于接收聚合签名,其中,所述聚合签名包括第一参数和第二参数,其中,所述第一参数是由所述聚合签名节点对每个普通签名节点针对交易数据生成的第一中间值进行求和计算获得的,所述第二参数是由所述聚合签名节点对所述每个普通签名节点针对所述交易数据生成的签名参数进行求和计算获得的;
第一获取模块,用于获取所述每个普通签名节点的主公钥参数和第一哈希值,其中,所述第一哈希值是基于所述第一参数计算获得的;
第一计算模块,用于对所述多个普通签名节点中的每个普通签名节点的第一哈希值进行求和计算,获得哈希值总和;以及
第一验证模块,用于根据所述聚合签名、所述哈希值总和和所述每个普通签名节点的主公钥参数对所述交易数据的签名进行验证。
9.一种数据处理装置,应用于区块链网络中的一个聚合签名节点,所述区块链网络包括多个节点,所述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,所述装置包括:
第二接收模块,用于接收签名值,其中,所述签名值包括第一中间值和签名参数,所述第一中间值和所述签名参数是所述每个普通签名节点针对交易数据生成的;
第二计算模块,用于对所述每个普通签名节点的第一中间值进行求和计算获得第一参数;
第三计算模块,用于对所述每个普通签名节点的签名参数进行求和计算获得第二参数;以及
第一发送模块,用于向所述验证节点发送聚合签名,其中,所述聚合签名包括所述第一参数和所述第二参数。
10.一种数据处理装置,应用于区块链网络中的一个普通签名节点,所述区块链网络包括多个节点,所述多个节点包括至少一个验证节点、至少一个聚合签名节点和多个普通签名节点,所述装置包括:
第一生成模块,用于生成普通签名节点本端的私钥参数和主公钥参数;
第二生成模块,用于生成随机数;
第三生成模块,用于基于所述随机数生成所述普通签名节点本端的第一中间值;
第三接收模块,用于接收来自其他普通签名节点的第一中间值;
第四计算模块,用于将所述普通签名节点本端的第一中间值和所述来自其他普通签名节点的第一中间值进行求和,计算获得中间值总和;
第五计算模块,用于基于交易数据、所述普通签名节点本端的标识数据、第二中间值、所述中间值总和计算第一哈希值;
第六计算模块,用于基于所述第一哈希值、所述普通签名节点本端的私钥、所述随机数计算签名参数;以及
第二发送模块,用于将所述签名参数、第一中间值、交易数据、所述普通签名节点本端的标识数据、所述第二中间值发送给聚合签名节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911216729.1A CN110995443B (zh) | 2019-12-02 | 2019-12-02 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911216729.1A CN110995443B (zh) | 2019-12-02 | 2019-12-02 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110995443A true CN110995443A (zh) | 2020-04-10 |
CN110995443B CN110995443B (zh) | 2022-03-25 |
Family
ID=70089383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911216729.1A Active CN110995443B (zh) | 2019-12-02 | 2019-12-02 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110995443B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327163A (zh) * | 2021-05-17 | 2021-08-31 | 广东电网有限责任公司 | 基于区块链的数据处理方法、装置、电子设备及存储介质 |
CN115567228A (zh) * | 2022-12-07 | 2023-01-03 | 北京邮电大学 | 数据传输方法、装置、电子设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262353A1 (en) * | 2004-05-20 | 2005-11-24 | Docomo Communications Laboratories Usa, Inc. | Digital signatures including identity-based aggregate signatures |
CN104539423A (zh) * | 2014-12-16 | 2015-04-22 | 熊荣华 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
CN106131059A (zh) * | 2016-08-23 | 2016-11-16 | 河海大学 | 一种基于无证书聚合签名的车联网条件隐私保护方法与系统 |
CN107592203A (zh) * | 2017-09-25 | 2018-01-16 | 深圳技术大学筹备办公室 | 一种基于格的聚合签名方法及其系统 |
US20180034641A1 (en) * | 2016-08-01 | 2018-02-01 | Institute For Development And Research In Banking Technology (Idrbt) | SYSTEM AND METHOD FOR PROVIDING SECURE COLLABORATIVE SOFTWARE AS A SERVICE (SaaS) ATTESTATION SERVICE FOR AUTHENTICATION IN CLOUD COMPUTING |
CN108494561A (zh) * | 2018-03-20 | 2018-09-04 | 西安电子科技大学 | 固定签名长度的聚合电子签名方法 |
CN108881279A (zh) * | 2018-07-11 | 2018-11-23 | 陕西师范大学 | 一种基于无证书双重认证防护聚合签名的移动健康医疗传感器数据隐私保护方法 |
CN109714153A (zh) * | 2019-02-01 | 2019-05-03 | 铜陵学院 | 一种高效的聚合签名方法 |
CN110266478A (zh) * | 2019-05-31 | 2019-09-20 | 联想(北京)有限公司 | 一种信息处理方法、电子设备 |
-
2019
- 2019-12-02 CN CN201911216729.1A patent/CN110995443B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262353A1 (en) * | 2004-05-20 | 2005-11-24 | Docomo Communications Laboratories Usa, Inc. | Digital signatures including identity-based aggregate signatures |
CN104539423A (zh) * | 2014-12-16 | 2015-04-22 | 熊荣华 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
US20180034641A1 (en) * | 2016-08-01 | 2018-02-01 | Institute For Development And Research In Banking Technology (Idrbt) | SYSTEM AND METHOD FOR PROVIDING SECURE COLLABORATIVE SOFTWARE AS A SERVICE (SaaS) ATTESTATION SERVICE FOR AUTHENTICATION IN CLOUD COMPUTING |
CN106131059A (zh) * | 2016-08-23 | 2016-11-16 | 河海大学 | 一种基于无证书聚合签名的车联网条件隐私保护方法与系统 |
CN107592203A (zh) * | 2017-09-25 | 2018-01-16 | 深圳技术大学筹备办公室 | 一种基于格的聚合签名方法及其系统 |
CN108494561A (zh) * | 2018-03-20 | 2018-09-04 | 西安电子科技大学 | 固定签名长度的聚合电子签名方法 |
CN108881279A (zh) * | 2018-07-11 | 2018-11-23 | 陕西师范大学 | 一种基于无证书双重认证防护聚合签名的移动健康医疗传感器数据隐私保护方法 |
CN109714153A (zh) * | 2019-02-01 | 2019-05-03 | 铜陵学院 | 一种高效的聚合签名方法 |
CN110266478A (zh) * | 2019-05-31 | 2019-09-20 | 联想(北京)有限公司 | 一种信息处理方法、电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327163A (zh) * | 2021-05-17 | 2021-08-31 | 广东电网有限责任公司 | 基于区块链的数据处理方法、装置、电子设备及存储介质 |
CN113327163B (zh) * | 2021-05-17 | 2023-02-10 | 广东电网有限责任公司 | 基于区块链的数据处理方法、装置、电子设备及存储介质 |
CN115567228A (zh) * | 2022-12-07 | 2023-01-03 | 北京邮电大学 | 数据传输方法、装置、电子设备和存储介质 |
CN115567228B (zh) * | 2022-12-07 | 2023-03-24 | 北京邮电大学 | 数据传输方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110995443B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110419053B (zh) | 用于信息保护的系统和方法 | |
Li et al. | Privacy preserving cloud data auditing with efficient key update | |
US20200344070A1 (en) | Methods and devices for validating transaction in blockchain system | |
US10659233B1 (en) | Authentication based on a recovered public key | |
RU2376651C2 (ru) | Использование изогений для разработки криптосистем | |
JP6882512B2 (ja) | セキュアマルチパーティ計算の参加者による入力データの不正確な告知の防止 | |
US8954731B2 (en) | Distributive computation of a digital signature | |
CN110601816B (zh) | 一种区块链系统中轻量级节点控制方法及装置 | |
CN111797159A (zh) | 数据库中的信息管理和访问控制 | |
US10867299B2 (en) | Methods and devices for providing transaction data to blockchain system for processing | |
CN111066285A (zh) | 基于sm2签名恢复公钥的方法 | |
CN108769010B (zh) | 节点受邀注册的方法和装置 | |
CN111819827A (zh) | 用于控制区块链上的资源的访问和完整性的方法和系统 | |
WO2019209168A2 (zh) | 数据处理方法、相关装置及区块链系统 | |
JP2022547876A (ja) | メッセージの署名のためのシステムおよび方法 | |
JP5099003B2 (ja) | グループ署名システムおよび情報処理方法 | |
US20160359633A1 (en) | System and method for publicly certifying data | |
CN111767569A (zh) | 区块链的访问授权方法及节点 | |
CN110995443B (zh) | 数据处理方法及装置 | |
CN115885498A (zh) | 阈值签名 | |
CN110992031A (zh) | 数据处理方法及装置 | |
CN116349203A (zh) | 识别拒绝服务攻击 | |
CN116508291A (zh) | 默克尔证明实体 | |
CN111385096B (zh) | 一种区块链网络系统、签名处理方法、终端及存储介质 | |
Zhang et al. | A novel privacy protection of permissioned blockchains with conditionally anonymous ring signature |
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 |