CN112766970A - 一种信息存储方法、装置及系统 - Google Patents
一种信息存储方法、装置及系统 Download PDFInfo
- Publication number
- CN112766970A CN112766970A CN202110143401.2A CN202110143401A CN112766970A CN 112766970 A CN112766970 A CN 112766970A CN 202110143401 A CN202110143401 A CN 202110143401A CN 112766970 A CN112766970 A CN 112766970A
- Authority
- CN
- China
- Prior art keywords
- node
- digital signature
- public key
- block
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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
- 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
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种信息存储方法、装置及系统,第一节点基于NTRUSign算法,生成第一节点的用户私钥和用户公钥;基于第一节点的用户私钥和本次交易的交易信息,生成第一节点的第一数字签名;向第二节点发送第一数字签名和交易信息。第二节点中的目标节点当接收到第一数字签名和交易信息时,获取第一节点的用户公钥;基于第一节点的用户公钥和交易信息,对第一数字签名进行验证;当第一数字签名通过验证时,生成交易信息对应的区块;向第三节点发送区块。第三节点当接收到区块,并判定区块满足第一预设条件时,将区块存储至当前的区块链。基于上述处理,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种信息存储方法、装置及系统。
背景技术
基于区块链的信息存储系统包括多个节点,各节点为用户所使用的电子设备。区块链包含多个区块,每一个区块中包含了该信息存储系统中的节点进行比特币交易的交易信息。
现有技术中,该信息存储系统中的一个节点(可以称为第一节点)可以基于RSA(非对称加密)算法,生成第一节点的用户私钥和用户公钥。后续,当第一节点发起与另一节点的比特币交易时,可以基于第一节点的用户私钥和用户公钥,生成第一节点的数字签名(可以称为第一数字签名),并向该信息存储系统中除第一节点外的其他所有节点(可以称为第二节点),发送第一数字签名和本次交易的交易信息。
第二节点中的目标节点在接收到第一数字签名和交易信息时,可以获取第一节点的用户公钥,基于第一节点的用户公钥对第一数字签名进行验证,并在第一数字签名通过验证时,生成交易信息对应的区块,目标节点为第二节点中最先生成交易信息对应的区块的节点。进而,目标节点可以向该信息存储系统中除目标节点外的其他所有节点(可以称为第三节点),发送该区块。相应的,第三节点可以对接收到的区块进行验证,并在该区块通过验证时,将该区块存储至当前的区块链中,此时,第一节点的本次交易完成。
然而,基于RSA算法生成的密钥,无法抵抗基于量子计算的解密算法(例如,shor(舒尔)算法)的攻击。恶意节点可以基于shor算法获取第一节点的用户私钥和用户公钥,并冒充第一节点进行比特币交易。可见,现有技术中,基于区块链的信息存储系统中的各节点进行比特币交易的安全性较低。
发明内容
本发明实施例的目的在于提供一种信息存储方法、装置及系统,以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。具体技术方案如下:
第一方面,为了达到上述目的,本发明实施例提供了一种基于区块链的信息存储系统,所述信息存储系统包括多个节点,其中:所述多个节点中的第一节点,用于基于NTRUSign算法,生成所述第一节点的用户私钥和用户公钥;基于所述第一节点的用户私钥和本次交易的交易信息,生成所述第一节点的数字签名,作为第一数字签名;向所述信息存储系统中除所述第一节点外的第二节点,发送所述第一数字签名和所述交易信息;所述第二节点中的目标节点,用于当接收到所述第一数字签名和所述交易信息时,获取所述第一节点的用户公钥;基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;当所述第一数字签名通过验证时,生成所述交易信息对应的区块;向所述信息存储系统中除所述目标节点外的第三节点发送所述区块;其中,所述目标节点为所述第二节点中最先生成所述交易信息对应的区块的节点;所述第三节点,用于当接收到所述区块时,判断所述区块是否满足第一预设条件;若所述区块满足第一预设条件,将所述区块存储至当前的区块链。
第二方面,为了达到上述目的,本发明实施例提供了一种信息存储方法,所述方法应用于基于区块链的信息存储系统中的第一节点,所述方法包括:基于NTRUSign算法,生成所述第一节点的用户私钥和用户公钥;基于所述第一节点的用户私钥和本次交易的交易信息,生成所述第一节点的数字签名,作为第一数字签名;向所述信息存储系统中除所述第一节点外的第二节点,发送所述第一数字签名和所述交易信息,以使所述第二节点中的目标节点在接收到所述第一数字签名和所述交易信息时,获取所述第一节点的用户公钥,并基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;当所述第一数字签名通过验证时,生成所述交易信息对应的区块;向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,使得所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链;其中,所述目标节点为所述第二节点中最先生成所述交易信息对应的区块的节点。
第三方面,为了达到上述目的,本发明实施例提供了一种信息存储方法,所述方法应用于基于区块链的信息存储系统中的目标节点,所述目标节点为所述信息存储系统中的第二节点中最先生成接收到的交易信息对应的区块的节点,所述方法包括:当接收到所述第一节点发送的第一数字签名和交易信息时,获取所述第一节点的用户公钥;其中,所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的,所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;当所述第一数字签名通过验证时,生成所述交易信息对应的区块;向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,以使所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链。
第四方面,为了达到上述目的,本发明实施例提供了一种信息存储方法,所述方法应用于基于区块链的信息存储系统中的第三节点,所述方法包括:当接收到所述信息存储系统中的目标节点发送的区块时,判断所述区块是否满足第一预设条件;其中,所述区块为:所述目标节点在接收到所述信息存储系统中的第一节点发送的第一数字签名和交易信息时,基于获取的所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证,并在所述第一数字签名通过验证时生成的;所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的;所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;所述目标节点为所述信息存储系统中的第二节点中最先生成所述交易信息对应的区块的节点,所述第二节点为所述信息存储系统中除所述第一节点外的所有节点;若所述区块满足第一预设条件,将所述区块存储至当前的区块链。
第五方面,为了达到上述目的,本发明实施例提供了一种信息存储装置,所述装置应用于基于区块链的信息存储系统中的第一节点,所述装置包括:第一生成模块,用于基于NTRUSign算法,生成所述第一节点的用户私钥和用户公钥;第二生成模块,用于基于所述第一节点的用户私钥和本次交易的交易信息,生成所述第一节点的数字签名,作为第一数字签名;发送模块,用于向所述信息存储系统中除所述第一节点外的第二节点,发送所述第一数字签名和所述交易信息,以使所述第二节点中的目标节点在接收到所述第一数字签名和所述交易信息时,获取所述第一节点的用户公钥,并基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;当所述第一数字签名通过验证时,生成所述交易信息对应的区块;向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,使得所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链;其中,所述目标节点为所述第二节点中最先生成所述交易信息对应的区块的节点。
第六方面,为了达到上述目的,本发明实施例提供了一种信息存储装置,所述装置应用于基于区块链的信息存储系统中的目标节点,所述目标节点为所述信息存储系统中的第二节点中最先生成接收到的交易信息对应的区块的节点,所述装置包括:获取模块,用于当接收到所述第一节点发送的第一数字签名和交易信息时,获取所述第一节点的用户公钥;其中,所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的,所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;第一验证模块,用于基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;第一生成模块,用于当所述第一数字签名通过验证时,生成所述交易信息对应的区块;发送模块,用于向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,以使所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链。
第七方面,为了达到上述目的,本发明实施例提供了一种信息存储装置,所述装置应用于基于区块链的信息存储系统中的第三节点,所述装置包括:判断模块,用于当接收到所述信息存储系统中的目标节点发送的区块时,判断所述区块是否满足第一预设条件;其中,所述区块为:所述目标节点在接收到所述信息存储系统中的第一节点发送的第一数字签名和交易信息时,基于获取的所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证,并在所述第一数字签名通过验证时生成的;所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的;所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;所述目标节点为所述信息存储系统中的第二节点中最先生成所述交易信息对应的区块的节点,所述第二节点为所述信息存储系统中除所述第一节点外的所有节点;存储模块,用于若所述区块满足第一预设条件,将所述区块存储至当前的区块链。
本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第二方面,或者第三方面,或者第四方面任一所述的信息存储方法步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面,或者第三方面,或者第四方面任一所述的信息存储方法步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面,或者第三方面,或者第四方面任一所述的信息存储方法。
本发明实施例提供的技术方案,基于区块链的信息存储中的多个节点中的第一节点基于NTRUSign算法,生成第一节点的用户私钥和用户公钥;基于第一节点的用户私钥和本次交易的交易信息,生成第一节点的第一数字签名;向信息存储系统中除第一节点外的第二节点,发送第一数字签名和交易信息。第二节点中的目标节点当接收到第一数字签名和交易信息时,获取第一节点的用户公钥;基于第一节点的用户公钥和交易信息,对第一数字签名进行验证;当第一数字签名通过验证时,生成交易信息对应的区块;向信息存储系统中除目标节点外的第三节点发送区块;目标节点为第二节点中最先生成交易信息对应的区块的节点。第三节点当接收到区块时,判断区块是否满足第一预设条件;若区块满足第一预设条件,将区块存储至当前的区块链。
基于上述处理,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种基于区块链的信息存储系统的结构图;
图2为本发明实施例提供的一种信息存储方法的流程图;
图3为本发明实施例提供的另一种信息存储方法的流程图;
图4为本发明实施例提供的另一种信息存储方法的流程图;
图5为本发明实施例提供的另一种信息存储方法的流程图;
图6为本发明实施例提供的另一种信息存储方法的流程图;
图7为本发明实施例提供的另一种信息存储方法的流程图;
图8为本发明实施例提供的另一种信息存储方法的流程图;
图9为本发明实施例提供的另一种信息存储方法的流程图;
图10为本发明实施例提供的一种目标节点与第三节点建立通信的方法的流程图;
图11为本发明实施例提供的一种信息存储装置的结构图;
图12为本发明实施例提供的另一种信息存储装置的结构图;
图13为本发明实施例提供的另一种信息存储装置的结构图;
图14为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1为本发明实施例提供的一种基于区块链的信息存储系统的结构图,该信息存储系统可以包括多个节点,本实施例中以该信息存储系统包括4个节点为例进行说明,该4个节点分别为:节点1、节点2、节点3和节点4。
第一节点为信息存储系统中当前发起交易的节点,本实施例以第一节点为节点1为例进行说明,此时,该信息存储系统中除第一节点外的第二节点包括:节点2、节点3和节点4。第二节点中的目标节点为最先生成接收到的交易信息对应的区块的节点,本实施例中以目标节点为节点2为例进行说明。该信息存储系统中除目标节点外的第三节点包括:节点1、节点3和节点4,本实施例中以第三节点为节点3为例进行说明。
节点1基于NTRUSign(Number Theory Research Unit Signature,数字理论研究单元数字签名)算法,生成节点1的用户私钥和用户公钥。节点1还可以基于节点1的用户私钥和本次交易的交易信息,生成节点1的数字签名,作为第一数字签名,并向节点2、节点3和节点4,分别发送第一数字签名和交易信息。在接收到节点1发送的第一数字签名和交易信息时,节点2可以获取节点1的用户公钥,并基于节点1的用户公钥和交易信息,对第一数字签名进行验证。进而,节点2可以在第一数字签名通过验证时,生成交易信息对应的区块,并向节点1、节点3和节点4,分别发送该区块。当接收到节点2发送的区块时,节点3可以判断该区块是否满足第一预设条件,并在判定区块满足第一预设条件时,将该区块存储至当前的区块链。
基于本发明实施例提供的基于区块链的信息存储系统,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
针对上述信息存储系统的其他实施例,可以参考后续关于第一节点、目标节点和第三节点的方法实施例的相关介绍。
参见图2,图2为本发明实施例提供的一种信息存储方法的流程图,该方法可以应用于上述基于区块链的信息存储系统中的第一节点,该方法可以包括以下步骤:
S201:基于NTRUSign算法,生成第一节点的用户私钥和用户公钥。
S202:基于第一节点的用户私钥和本次交易的交易信息,生成第一节点的数字签名,作为第一数字签名。
S203:向信息存储系统中除第一节点外的第二节点,发送第一数字签名和交易信息,以使第二节点中的目标节点在接收到第一数字签名和交易信息时,获取第一节点的用户公钥,并基于第一节点的用户公钥和交易信息,对第一数字签名进行验证;当第一数字签名通过验证时,生成交易信息对应的区块;向信息存储系统中除目标节点外的第三节点发送区块,使得第三节点在接收到区块,并判定区块满足第一预设条件时,将区块存储至当前的区块链。其中,目标节点为第二节点中最先生成交易信息对应的区块的节点。
基于本发明实施例提供的信息存储方法,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
针对步骤S201和步骤S202中,第一节点可以为信息存储系统中当前发起交易的节点。第一节点在加入信息存储系统时,可以生成第一节点的用户公钥和用户私钥。后续,当第一节点发起与信息存储系统中的另一节点的比特币交易时,第一节点可以基于第一节点的用户私钥和本次交易的交易信息,生成第一节点的数字签名(即第一数字签名)。
上述交易信息包括:第一节点的比特币地址、与第一节点进行本次交易的节点的比特币地址、本次交易的比特币的数目、第一节点本次交易的输入和本次交易的输出,第一节点本次交易的输入表示第一节点上一次交易之后的比特币余额,第一节点本次交易的输出表示第一节点本次交易之后的比特币余额。
一种实现方式中,在生成第一节点的用户公钥之后,第一节点可以基于第一节点的用户公钥,生成第一节点的比特币地址。例如,第一节点可以基于SHA256(安全哈希)算法,对第一节点的用户公钥进行哈希处理,得到对应的第一哈希值,并基于RIPEMD160(RACEIntegrity Primitives Evaluation Message Digest 160,RACE原始完整性校验消息摘要160)算法,对第一哈希值再次进行哈希处理,得到第二哈希值。然后,第一节点可以对Base58编码算法的版本标识和第二哈希值进行拼接,得到目标字段。进而,第一节点可以基于SHA256算法对目标字段进行哈希处理,得到第三哈希值,并计算第三哈希值中前4个字段的和值(可以称为第一和值)。然后,第一节点可以对目标字段和第一和值进行拼接,得到待编码字段。进而,第一节点可以对待编码字段进行Base58编码,将得到的编码结果作为第一节点的比特币地址。
一种实现方式中,第一节点可以基于第一节点的用户私钥、用户公钥、本次交易的交易信息和ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)算法,生成第一数字签名。
另一种实现方式中,为了提高生成的第一数字签名的安全性,参见图3,步骤S201可以包括以下步骤:
S2011:生成两个不同的多项式,分别作为第一节点的第一私钥和第二私钥,得到第一节点的用户私钥。
其中,每一多项式中最高次项的次数为预设次数。
S2012:基于第一私钥、第二私钥和第一预设公式,生成第一节点的用户公钥。
其中,第一预设公式包括:
f1×f1 q≡1(mod q) (1)
h1≡g1×f1 q(mod q) (2)
h1表示第一节点的用户公钥;f1表示第一私钥;g1表示第二私钥;f1 q表示f1模q后的逆元素;q表示预设整数。
相应的,步骤S202可以包括以下步骤:
S2021:基于第一私钥和第二私钥,生成满足第二预设条件的目标多项式。
其中,第二预设条件包括:
f1×b∈B-g1×d∈D=q (3)
d表示目标多项式;N表示预设素数;N-1为预设次数;b和d的最高次项的次数均为N;D表示第一多项式集合;B表示第二多项式集合。
S2022:基于第一私钥、目标多项式、本次交易的交易信息和第二预设公式,生成第一节点的数字签名,作为第一数字签名。
其中,第二预设公式为:
s表示第一数字签名;m表示交易信息的哈希值。
针对步骤S2011和步骤S2012,第一节点可以生成两个关于未知数x的多项式,分别作为第一节点的第一私钥(即f1)和第二私钥(即g1)。多项式f1和多项式g1中的最高次项的次数均为预设次数,并且最高次项的系数不同。本实施例中并不限定多项式f1和多项式g1中,除最高次项以外的其他项的数目和系数。
在生成第一节点的第一私钥和第二私钥之后,第一节点可以基于第一私钥和上述公式(1),确定f1模q后的逆元素f1 q。然后,第一节点可以基于f1 q、第二私钥和上述公式(2),生成第一节点的用户公钥。
针对步骤S2021和步骤S2022,第一节点可以基于第一私钥和上述公式(4),确定第一多项式集合(即D),并基于第二私钥和上述公式(5),确定第二多项式集合(即B)。然后,从第一多项式集合和第二多项式集合中分别确定满足上述公式(3)的两个多项式(即b和d),并将从第一多项式集合中确定的多项式(即d),确定为目标多项式。另外,第一节点还可以对交易信息进行哈希处理,得到交易信息的哈希值(即m)。进而,第一节点可以基于第一节点的第一私钥、目标多项式、交易信息的哈希值和上述公式(6),生成第一数字签名。
基于上述处理,第一节点可以基于第一节点的用户私钥,生成第一节点的第一数字签名。由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击。因此,可以提高生成的第一数字签名的安全性。进而,可以进一步提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
在步骤S203中,第一节点可以向信息存储系统中除第一节点外的所有节点(即第二节点)发送第一数字签名和上述交易信息。相应的,每一第二节点在接收到第一数字签名和交易信息之后,可以获取第一节点的用户公钥,并基于第一节点的用户公钥和交易信息对第一数字签名进行验证。当第一数字签名通过验证时,该第二节点可以生成交易信息对应的区块(可以称为目标区块)。
在各个第二节点生成交易信息对应的区块的过程中,当第二节点中的目标节点生成目标区块,并向信息存储系统中除目标节点外的所有节点(即第三节点),发送目标区块时,第三节点接收到目标节点发送的目标区块,可以判断接收到的目标区块是否满足第一预设条件,如果判定目标区块满足第一预设条件,则第三节点可以停止生成交易信息对应的区块。进而,第三节点可以将目标区块存储至当前的区块链,此时,第一节点的本次交易完成。目标节点、第三节点的具体处理方式可以参见后续实施例的相关介绍。
参见图4,图4为本发明实施例提供的另一种信息存储方法的流程图。该方法可以应用于上述基于区块链的信息存储系统中的目标节点,目标节点为信息存储系统中的第二节点中最先生成接收到的交易信息对应的区块的节点。该方法可以包括以下步骤:
S401:当接收到第一节点发送的第一数字签名和交易信息时,获取第一节点的用户公钥。
其中,第一数字签名为:第一节点基于第一节点的用户私钥和第一节点本次交易的交易信息生成的,第一节点的用户私钥和用户公钥为:第一节点基于NTRUSign算法生成的。
S402:基于第一节点的用户公钥和交易信息,对第一数字签名进行验证。
S403:当第一数字签名通过验证时,生成交易信息对应的区块。
S404:向信息存储系统中除目标节点外的第三节点发送区块,以使第三节点在接收到区块,并判定区块满足第一预设条件时,将区块存储至当前的区块链。
基于本发明实施例提供的信息存储方法,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
在步骤S401中,信息存储系统中的一个节点(即第一节点)在加入信息存储系统时,可以生成第一节点的用户公钥和用户私钥。后续,当第一节点发起与另一个节点的比特币交易时,第一节点可以基于第一节点的用户私钥,生成第一节点的第一数字签名,并向除第一节点外的每一第二节点发送第一数字签名和本次交易的交易信息。
相应的,第二节点中的目标节点接收到第一数字签名和交易信息时,可以获取第一节点的用户公钥。一种实现方式中,第一节点在生成用户公钥之后,可以向每一第二节点发送携带有第一节点的用户公钥的广播消息。相应的,第二节点中的目标节点在接收到该广播消息之后,可以存储第一节点的用户公钥。后续,当接收到第一数字签名和交易信息时,目标节点可以获取本地存储的第一节点的用户公钥。
另一种实现方式中,第一节点在生成用户公钥之后,可以将第一节点的用户公钥的存储至信息存储系统中的指定节点。后续,目标节点在接收到第一数字签名和交易信息时,目标节点可以从指定节点获取第一节点的用户公钥。
在本发明的一个实施例中,参见图5,步骤S402可以包括以下步骤:
S4021:基于第一节点的用户公钥、第一数字签名和第三预设公式,计算第一数字签名对应的验证值。
其中,第三预设公式为:
t≡s×h1(mod q) (7)
t表示验证值,s表示第一数字签名,h1表示第一节点的用户公钥;q表示预设整数。
S4022:当验证值满足第三预设条件时,确定第一数字签名通过验证。
其中,第三预设条件为:
||s||+||t-m||≤NormBound (8)
m表示交易信息的哈希值,NormBound表示预设验证门限。预设验证门限可以由技术人员根据经验设置,例如,预设验证门限可以为10-6,或者,预设验证门限也可以为10-7,但并不限于此。
针对步骤S403和步骤S404,当第一数字签名未通过验证时,表明第一节点本次交易的比特币不是第一节点所拥有的比特币,此时,第一节点可能为恶意节点,因此,目标节点可以不对接收到的交易信息进行处理。当第一数字签名通过验证时,表明第一节点本次交易的比特币为第一节点所拥有的比特币,此时,目标节点可以生成交易信息对应的目标区块。
然后,目标节点可以向信息存储系统中除目标节点外的第三节点发送目标区块。相应的,第三节点在接收到目标区块,并判定目标区块满足第一预设条件时,可以将目标区块存储至当前的区块链。第三节点的具体处理方式可以参见后续实施例的相关介绍。
一种实现方式中,目标节点可以获取当前区块链中的最后一个区块的哈希值(可以称为第四哈希值)。然后,目标节点可以对当前时刻、上述交易信息、第四哈希值和一个Nonce(随机数)进行拼接,得到对应的备选区块。目标节点还可以对备选区块进行哈希处理,得到备选区块的哈希值。当备选区块的哈希值不满足第一预设条件时,目标节点可以基于另一个Nonce,再次生成备选区块,并计算再次生成的备选区块的哈希值,以此类推,直至生成的备选区块的哈希值满足第一预设条件,目标节点可以确定哈希值满足第一预设条件的备选区块为交易信息对应的目标区块。其中,第一预设条件可以为:目标区块的哈希值中前预设数目个字段为0。预设数目可以为6,或者,预设数目也可以为7,但并不限于此。
进而,目标节点可以向信息存储系统中除目标节点外的第三节点发送目标区块和目标区块的哈希值。相应的,第三节点在接收到目标区块和目标区块的哈希值时,可以判断目标区块的哈希值是否满足第一预设条件,并在判定目标区块的哈希值满足第一预设条件时,将目标区块存储至当前的区块链。
在本发明的一个实施例中,参见图6,在步骤S404之前,该方法还可以包括以下步骤:
S405:基于目标节点的用户私钥、交易信息和区块的区块头,生成目标节点的数字签名,作为第二数字签名。
S406:针对每一第三节点,基于该第三节点的临时公钥,对区块和第二数字签名进行加密,得到该第三节点对应的第一密文。
相应的,步骤S404可以包括以下步骤:
S4041:针对每一第三节点,向该第三节点发送该第三节点对应的第一密文。
针对步骤S405和步骤S406,在生成交易信息对应的目标区块之后,目标节点可以生成目标节点的第二数字签名。一种实现方式中,目标节点可以对交易信息和目标区块的区块头进行拼接,并计算拼接结果的哈希值。进而,目标节点可以基于目标节点的用户私钥和得到的哈希值,生成第二数字签名。目标节点生成第二数字签名的方式,与第一节点生成第一数字签名的方式类似,可以参见前述实施例的相关介绍。另外,目标节点在加入信息存储系统时,可以生成目标节点的用户私钥和用户公钥。目标节点生成目标节点的用户私钥和用户公钥的方式,与第一节点生成第一节点的用户私钥和用户公钥的方式类似,可以参见前述实施例的相关介绍。
然后,针对每一第三节点,目标节点可以基于该第三节点的临时公钥,对目标区块和第二数字签名进行加密,得到该第三节点对应的第一密文。目标节点生成第一密文的方式与第三节点生成第二密文的方式类似,可以参见后续实施例的相关介绍。进而,目标节点可以向第三节点发送第三节点对应的第一密文。相应的,第三节点在接收到第一密文之后,可以对第一密文进行解密,得到目标区块,并判断目标区块是否满足第一预设条件。
在本发明的一个实施例中,在步骤S405之前,该方法还可以包括以下步骤:
步骤一,针对每一第三节点,当接收到该第三节点发送的第二密文时,基于目标节点的用户私钥和第四预设公式,对第二密文进行解密,得到该第三节点的第三数字签名和第一备选公钥。
其中,第二密文为:该第三节点基于目标节点的用户公钥,对该第三节点的临时公钥和第三数字签名进行加密得到的;第三数字签名为:该第三节点基于该第三节点的用户私钥和临时公钥生成的;该第三节点的临时公钥为:该第三节点基于NTRUEncrypt(NumberTheory Research Unit Encrypt,数字理论研究单元加密)算法生成的;第四预设公式包括:
a≡(f2||g2)×e(mod q) (9)
M≡(f2||g2)p×a(mod p) (10)
M表示目标明文,目标明文为对第三节点的临时公钥和第三数字签名进行拼接得到的,f2表示目标节点的一个用户私钥,g2表示目标节点的另一个用户私钥,f2||g2表示对f2和g2进行拼接,(f2||g2)p表示(f2||g2)模p后的逆元素,q表示预设整数,p表示第一预设多项式,p的最高项的次数为N-1,N表示预设素数。
步骤二,基于该第三节点的用户公钥,对第三数字签名进行验证。
步骤三,当第三数字签名通过验证时,确定第一备选公钥为第三节点的临时公钥。
一种实现方式中,针对每一第三节点,在基于该第三节点的临时公钥,确定该第三节点对应的第一密文之前,目标节点可以获取该第三节点的临时公钥。例如,目标节点在加入信息存储系统时,可以与第三节点建立通信,以获取第三节点的临时公钥。
一种实现方式中,针对每一第三节点,目标节点与该第三节点建立通信时,该第三节点可以向目标节点发送第二密文。相应的,当接收到该第三节点发送的第二密文时,目标节点可以基于目标节点的用户私钥、公式(9)和公式(10),对第二密文进行解密,得到该第三节点的第三数字签名和第一备选公钥。然后,目标节点可以获取该第三节点的用户公钥,并基于该第三节点的用户公钥,对第三数字签名进行验证。目标节点对第三数字签名进行验证的方式,与目标节点对第一数字签名进行验证的方式类似,可以参见前述实施例的相关介绍。
当第三数字签名通过验证时,表明第三节点发送的第一备选公钥为第三节点的临时公钥。进而,目标节点可以确定第一备选公钥为第三节点的临时公钥。另外,第三节点还可以在达到预设周期时,更新第三节点的临时私钥和临时公钥。因此,目标节点还可以在达到预设周期时,获取更新后的第三节点的临时公钥。
参见图7,图7为本发明实施例提供的另一种信息存储方法的流程图,该方法可以应用于上述信息存储系统中的第三节点,该方法可以包括以下步骤:
S701:当接收到信息存储系统中的目标节点发送的区块时,判断区块是否满足第一预设条件。
其中,接收到的区块为:目标节点在接收到信息存储系统中的第一节点发送的第一数字签名和交易信息时,基于获取的第一节点的用户公钥和交易信息,对第一数字签名进行验证,并在第一数字签名通过验证时生成的;第一数字签名为:第一节点基于第一节点的用户私钥和第一节点本次交易的交易信息生成的;第一节点的用户私钥和用户公钥为:第一节点NTRUSign算法生成的;目标节点为信息存储系统中的第二节点中最先生成交易信息对应的区块的节点,第二节点为信息存储系统中除第一节点外的所有节点。
S702:若区块满足第一预设条件,将区块存储至当前的区块链。
基于本发明实施例提供的信息存储方法,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
针对步骤S701和S702中,信息存储系统中的一个节点(即第一节点)在加入信息存储系统时,可以生成第一节点的用户公钥和用户私钥。后续,当第一节点发起与另一个节点的比特币交易时,第一节点可以基于第一节点的用户私钥,生成第一节点的第一数字签名,并向除第一节点外的每一第二节点发送第一数字签名和本次交易的交易信息。第二节点中的目标节点在接收到第一数字签名和交易信息时,可以获取第一节点的用户公钥,并基于第一节点的用户公钥和交易信息,对第一数字签名进行验证。当第一数字签名通过验证时,目标节点可以生成交易信息对应的目标区块,并向第三节点发送目标区块。第一节点和目标节点的具体处理方式可以参见前述实施例中的相关介绍。
相应的,第三节点接收到目标区块之后,可以判断目标区块是否满足第一预设条件,并在目标区块满足第一预设条件时,将目标区块存储至当前的区块链,此时,第一节点的本次交易完成。
一种实现方式中,目标节点在生成目标区块之后,可以向第三节点发送目标区块和目标区块的哈希值。相应的,第三节点在接收到目标区块和目标区块的哈希值时,可以判断目标区块的哈希值是否满足第一预设条件,并在判定目标区块的哈希值满足第一预设条件时,将目标区块存储至当前的区块链。
在本发明的一个实施例中,参见图8,步骤S701可以包括以下步骤:
S7011:当接收到信息存储系统中的目标节点发送的第三节点对应的第一密文时,基于第三节点的临时私钥对第一密文进行解密,得到目标节点的第二数字签名和区块。
其中,第一密文为:目标节点基于第三节点的临时公钥,对区块和第二数字签名进行加密得到的;第二数字签名为:目标节点基于目标节点的用户私钥、交易信息和区块的区块头生成的。
S7012:基于目标节点的用户公钥,对第二数字签名进行验证。
S7013:当第二数字签名通过验证时,判断区块是否满足第一预设条件。
一种实现方式中,当接收到目标节点发送的第三节点对应的第一密文时,第三节点可以基于第三节点的临时私钥对第一密文进行解密,得到目标节点的第二数字签名和目标区块。第三节点对第一密文进行解密的方式,与目标节点对第二密文进行解密的方式类似,可以参见前述实施例的相关介绍。然后,第三节点可以基于目标节点的用户公钥,对第二数字签名进行验证。第三节点对第二数字签名进行验证的方式,与目标节点对第一数字签名进行验证的方式类似,可以参见前述实施例的相关介绍。
进而,如果第二数字签名未通过验证,表明目标区块可能不是目标节点生成的区块,此时,目标节点可能为恶意节点,目标区块可能被篡改。因此,第三节点可以不对目标区块进行处理。如果第二数字签名通过验证,表明目标区块为目标节点生成的区块,则第三节点可以判断目标区块是否满足第一预设条件。后续,第三节点可以在目标满足第一预设条件时,将目标区块存储至当前的区块链。
基于上述处理,目标节点在向第三节点发送目标区块之前,可以对第二数字签名和区块进行加密,相对于现有技术中,目标节点直接向第三节点发送目标区块,可以提高发送的目标区块的安全性。
另外,第三节点需要先对第二数字签名进行验证,在第二数字签名通过验证,即目标区块为目标节点生成的区块时,对目标区块进行处理。在第二数字签名未通过验证,即目标区块不是目标节点生成的区块时,不对目标区块进行处理。相对于现有技术中,第三节点直接对目标区块进行处理,可以避免恶意节点拦截目标区块,对目标区块进行篡改,并冒充目标节点发送目标区块,使得存储的目标区块为被恶意节点篡改的区块的情况。
在本发明的一个实施例中,参见图9,在步骤S7011之前,该方法还可以包括以下步骤:
S7014:基于NTRUEncrypt算法,生成第三节点的临时私钥和临时公钥。
S7015:基于第三节点的用户私钥和临时公钥,生成第三节点的数字签名,作为第三数字签名。
S7016:基于目标节点的用户公钥和第五预设公式,对第三节点的临时公钥和第三数字签名进行加密,得到第二密文。
其中,第五预设公式为:
e≡r×h2+M(mod q) (11)
e表示第二密文,r表示第四预设多项式,r的最高次项的次数为N-1,N表示预设素数,h2表示目标节点的用户公钥,M表示目标明文,目标明文为对第三节点的临时公钥和第三数字签名进行拼接得到的,q表示预设整数。
S7017:向目标节点发送第二密文,以使目标节点接收到第二密文时,基于目标节点的用户私钥,对第二密文进行解密,得到第一备选公钥和第三数字签名;基于第三节点的用户公钥,对第三数字签名进行验证;当第三数字签名通过验证时,确定第一备选公钥为第三节点的临时公钥,并基于第三节点的临时公钥生成第三节点对应的第一密文。
在本发明的一个实施例中,步骤S7014可以包括以下步骤:
步骤1,基于NTRUEncrypt算法,生成满足第四预设条件的多项式,作为第三节点的临时私钥。
其中,第四预设条件为:
F=1+p×B (12)
F表示第三节点的临时私钥,p表示第一预设多项式,B表示第二预设多项式;F、p和B的最高次项的次数均为N-1,N表示预设素数。
步骤2,基于第三节点的临时私钥和第六预设公式,生成第三节点的临时公钥。
其中,第六预设公式包括:
F×Fq≡1(mod q) (13)
H≡p×E×Fq(mod q) (14)
H表示第三节点的临时公钥,F表示第三节点的临时私钥,Fq表示F模q后的逆元素,q表示预设整数,q与p的最大公约数为1;E表示第三预设多项式;E的最高次项的次数为N-1,N表示预设素数。
在步骤S7015中,第三节点可以计算第三节点的临时公钥的哈希值,并基于第三节点的用户私钥和第三节点的临时公钥的哈希值,生成第三节点的第三数字签名。第三节点生成第三数字签名的方式与第一节点生成第一数字签名的方式类似,可以参见前述实施例的相关介绍。另外,第三节点在加入信息存储系统时,可以生成第三节点的用户私钥和用户公钥。第三节点生成第三节点的用户私钥和用户公钥的方式,与第一节点生成第一节点的用户私钥和用户公钥的方式类似,可以参见前述实施例的相关介绍。
在步骤S7016中,第三节点可以基于目标节点的用户公钥和上述公式(11),对第三节点的临时公钥和第三数字签名进行加密,得到第二密文,并向目标节点发送第二密文,以使目标节点接收到第二密文时,获取第三节点的临时公钥,并基于第三节点的临时公钥生成第三节点对应的第一密文。目标节点的具体处理方式可以参见前述实施例的相关介绍。
参见图10,图10为本发明实施例提供的一种目标节点与第三节点建立通信的方法的流程图。该方法可以包括以下步骤:
S1001:第三节点基于NTRUEncrypt算法,生成第三节点的临时私钥和临时公钥。
S1002:第三节点基于第三节点的用户私钥和临时公钥,生成第三节点的数字签名,作为第三数字签名。
S1003:第三节点基于目标节点的用户公钥,对第三节点的临时公钥和第三数字签名进行加密,得到第二密文。
S1004:第三节点向目标节点发送第二密文。
S1005:目标节点接收到第二密文时,基于目标节点的用户私钥,对第二密文进行解密,得到第一备选公钥和第三数字签名。
S1006:目标节点基于第三节点的用户公钥,对第三数字签名进行验证。
S1007:当第三数字签名通过验证时,目标节点确定第一备选公钥为第三节点的临时公钥。
S1008:目标节点基于NTRUEncrypt算法,生成目标节点的临时私钥和临时公钥。
S1009:目标节点基于目标节点的用户私钥和临时公钥,生成目标节点的数字签名,作为第四数字签名。
S10010:目标节点基于目标节点的用户公钥,对目标节点的临时公钥和第四数字签名进行加密,得到第三密文。
S10011:目标节点向第三节点发送第三密文。
S10012:第三节点接收到第三密文时,基于第三节点的用户私钥,对第三密文进行解密,得到第二备选公钥和第四数字签名。
S10013:第三节点基于目标节点的用户公钥,对第四数字签名进行验证。
S10014:当第四数字签名通过验证时,第三节点确定第二备选公钥为目标节点的临时公钥。
基于上述处理,目标节点在加入信息存储系统时,可以与第三节点建立通信,以获取第三节点的临时公钥。后续,目标节点可以基于第三节点的临时公钥对待发送至第三节点的信息进行加密。第三节点可以基于目标节点的临时公钥对待发送至目标节点的信息进行加密。相对现有技术中,信息存储系统中各节点不对发送的信息进行加密,可以提高信息存储系统各通信的安全性。
与图2的方法实施例相对应,参见图11,图11为本发明实施例提供的一种信息存储装置的结构图,装置应用于基于区块链的信息存储系统中的第一节点,装置包括:第一生成模块1101,用于基于NTRUSign算法,生成第一节点的用户私钥和用户公钥;第二生成模块1102,用于基于第一节点的用户私钥和本次交易的交易信息,生成第一节点的数字签名,作为第一数字签名;发送模块1103,用于向信息存储系统中除第一节点外的第二节点,发送第一数字签名和交易信息,以使第二节点中的目标节点在接收到第一数字签名和交易信息时,获取第一节点的用户公钥,并基于第一节点的用户公钥和交易信息,对第一数字签名进行验证;当第一数字签名通过验证时,生成交易信息对应的区块;向信息存储系统中除目标节点外的第三节点发送区块,使得第三节点在接收到区块,并判定区块满足第一预设条件时,将区块存储至当前的区块链;其中,目标节点为第二节点中最先生成交易信息对应的区块的节点。
可选的,第一生成模块1101,具体用于生成两个不同的多项式,分别作为第一节点的第一私钥和第二私钥,得到第一节点的用户私钥;其中,每一多项式中最高次项的次数为预设次数;基于第一私钥、第二私钥和第一预设公式,生成第一节点的用户公钥;其中,第一预设公式包括:
f1×f1 q≡1(mod q)
h1≡g1×f1 q(mod q)
h1表示第一节点的用户公钥;f1表示第一私钥;g1表示第二私钥;f1 q表示f1模q后的逆元素;q表示预设整数;
第二生成模块1102,具体用于基于第一私钥和第二私钥,生成满足第二预设条件的目标多项式;其中,第二预设条件包括:
f1×b∈B-g1×d∈D=q
d表示目标多项式;N表示预设素数;N-1为预设次数;b和d的最高次项的次数均为N;D表示第一多项式集合;B表示第二多项式集合;
基于第一私钥、目标多项式、本次交易的交易信息和第二预设公式,生成第一节点的数字签名,作为第一数字签名;其中,第二预设公式为:
s表示第一数字签名;m表示交易信息的哈希值。
基于本发明实施例提供的信息存储装置,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
与图4的方法实施例相对应,参见图12,图12为本发明实施例提供的另一种信息存储装置的结构图,装置应用于基于区块链的信息存储系统中的目标节点,目标节点为信息存储系统中的第二节点中最先生成接收到的交易信息对应的区块的节点,装置包括:获取模块1201,用于当接收到第一节点发送的第一数字签名和交易信息时,获取第一节点的用户公钥;其中,第一数字签名为:第一节点基于第一节点的用户私钥和第一节点本次交易的交易信息生成的,第一节点的用户私钥和用户公钥为:第一节点基于NTRUSign算法生成的;第一验证模块1202,用于基于第一节点的用户公钥和交易信息,对第一数字签名进行验证;第一生成模块1203,用于当第一数字签名通过验证时,生成交易信息对应的区块;发送模块1204,用于向信息存储系统中除目标节点外的第三节点发送区块,以使第三节点在接收到区块,并判定区块满足第一预设条件时,将区块存储至当前的区块链。
可选的,第一验证模块1202,具体用于基于第一节点的用户公钥、第一数字签名和第三预设公式,计算第一数字签名对应的验证值;其中,第三预设公式为:
t≡s×h1(mod q)
t表示验证值,s表示第一数字签名,h1表示第一节点的用户公钥;q表示预设整数;
当验证值满足第三预设条件时,确定第一数字签名通过验证;其中,第三预设条件为:
||s||+||t-m||≤NormBound
m表示交易信息的哈希值,NormBound表示预设验证门限。
可选的,装置还包括:第二生成模块,用于基于目标节点的用户私钥、交易信息和区块的区块头,生成目标节点的数字签名,作为第二数字签名;加密模块,用于针对每一第三节点,基于该第三节点的临时公钥,对区块和第二数字签名进行加密,得到该第三节点对应的第一密文;发送模块1204,具体用于针对每一第三节点,向该第三节点发送该第三节点对应的第一密文。
可选的,装置还包括:解密模块,用于针对每一第三节点,当接收到该第三节点发送的第二密文时,基于目标节点的用户私钥和第四预设公式,对第二密文进行解密,得到该第三节点的第三数字签名和第一备选公钥;其中,第二密文为:该第三节点基于目标节点的用户公钥,对该第三节点的临时公钥和第三数字签名进行加密得到的;第三数字签名为:该第三节点基于该第三节点的用户私钥和临时公钥生成的;该第三节点的临时公钥为:该第三节点基于NTRUEncrypt算法生成的;第四预设公式包括:
a≡(f2||g2)×e(mod q)
M≡(f2||g2)p×a(mod p)
M表示目标明文,目标明文为对第三节点的临时公钥和第三数字签名进行拼接得到的,f2表示目标节点的一个用户私钥,g2表示目标节点的另一个用户私钥,f2||g2表示对f2和g2进行拼接,(f2||g2)p表示(f2||g2)模p后的逆元素,q表示预设整数,p表示第一预设多项式,p的最高项的次数为N-1,N表示预设素数;
第二验证模块,用于基于该第三节点的用户公钥,对第三数字签名进行验证;确定模块,用于当第三数字签名通过验证时,确定第一备选公钥为第三节点的临时公钥。
基于本发明实施例提供的信息存储装置,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
与图7的方法实施例相对应,参见图13,图13为本发明实施例提供的另一种信息存储装置的结构图,装置应用于基于区块链的信息存储系统中的第三节点,装置包括:判断模块1301,用于当接收到信息存储系统中的目标节点发送的区块时,判断区块是否满足第一预设条件;其中,区块为:目标节点在接收到信息存储系统中的第一节点发送的第一数字签名和交易信息时,基于获取的第一节点的用户公钥和交易信息,对第一数字签名进行验证,并在第一数字签名通过验证时生成的;第一数字签名为:第一节点基于第一节点的用户私钥和第一节点本次交易的交易信息生成的;第一节点的用户私钥和用户公钥为:第一节点基于NTRUSign算法生成的;目标节点为信息存储系统中的第二节点中最先生成交易信息对应的区块的节点,第二节点为信息存储系统中除第一节点外的所有节点;存储模块1302,用于若区块满足第一预设条件,将区块存储至当前的区块链。
可选的,判断模块1301,具体用于当接收到信息存储系统中的目标节点发送的第三节点对应的第一密文时,基于第三节点的临时私钥对第一密文进行解密,得到目标节点的第二数字签名和区块;其中,第一密文为:目标节点基于第三节点的临时公钥,对区块和第二数字签名进行加密得到的;第二数字签名为:目标节点基于目标节点的用户私钥、交易信息和区块的区块头生成的;基于目标节点的用户公钥,对第二数字签名进行验证;当第二数字签名通过验证时,判断区块是否满足第一预设条件。
可选的,装置还包括:第一生成模块,用于基于NTRUEncrypt算法,生成第三节点的临时私钥和临时公钥;第二生成模块,用于基于第三节点的用户私钥和临时公钥,生成第三节点的数字签名,作为第三数字签名;加密模块,用于基于目标节点的用户公钥和第五预设公式,对第三节点的临时公钥和第三数字签名进行加密,得到第二密文;其中,第五预设公式为:
e≡r×h2+M(mod q)
e表示第二密文,r表示第四预设多项式,r的最高次项的次数为N-1,N表示预设素数;h2表示目标节点的用户公钥,M表示目标明文,目标明文为对第三节点的临时公钥和第三数字签名进行拼接得到的,q表示预设整数;
发送模块,用于向目标节点发送第二密文,以使目标节点接收到第二密文时,基于目标节点的用户私钥,对第二密文进行解密,得到第一备选公钥和第三数字签名;基于第三节点的用户公钥,对第三数字签名进行验证;当第三数字签名通过验证时,确定第一备选公钥为第三节点的临时公钥,并基于第三节点的临时公钥生成第三节点对应的第一密文。
可选的,第一生成模块,具体用于基于NTRUEncrypt算法,生成满足第四预设条件的多项式,作为第三节点的临时私钥;其中,第四预设条件为:
F=1+p×B
F表示第三节点的临时私钥,p表示第一预设多项式,B表示第二预设多项式;F、p和B的最高次项的次数均为N-1,N表示预设素数;
基于第三节点的临时私钥和第六预设公式,生成第三节点的临时公钥;其中,第六预设公式包括:
F×Fq≡1(mod q)
H≡p×E×Fq(mod q)
H表示第三节点的临时公钥,F表示第三节点的临时私钥,Fq表示F模q后的逆元素,q表示预设整数,q与p的最大公约数为1;E表示第三预设多项式;E的最高次项的次数为N-1,N表示预设素数。
基于本发明实施例提供的信息存储装置,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
本发明实施例还提供了一种电子设备,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,存储器1403,用于存放计算机程序;处理器1401,用于执行存储器1403上所存放的程序时,实现上述任一信息存储方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于本发明实施例提供的电子设备,第一节点可以基于NTRUSign算法生成第一节点的用户私钥和用户公钥,由于基于NTRUSign算法生成的密钥可以抵抗基于量子计算的解密算法的攻击,因此,可以提高第一节点的用户私钥和用户公钥的安全性。进而,可以提高基于区块链的信息存储系统中的各节点进行比特币交易的安全性。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一信息存储方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一信息存储方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (13)
1.一种信息存储方法,其特征在于,所述方法应用于基于区块链的信息存储系统中的第一节点,所述方法包括:
基于数字理论研究单元数字签名NTRUSign算法,生成所述第一节点的用户私钥和用户公钥;
基于所述第一节点的用户私钥和本次交易的交易信息,生成所述第一节点的数字签名,作为第一数字签名;
向所述信息存储系统中除所述第一节点外的第二节点,发送所述第一数字签名和所述交易信息,以使所述第二节点中的目标节点在接收到所述第一数字签名和所述交易信息时,获取所述第一节点的用户公钥,并基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;当所述第一数字签名通过验证时,生成所述交易信息对应的区块;向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,使得所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链;其中,所述目标节点为所述第二节点中最先生成所述交易信息对应的区块的节点。
2.根据权利要求1所述的方法,其特征在于,所述基于NTRUSign算法,生成所述第一节点的用户私钥和用户公钥,包括:
生成两个不同的多项式,分别作为所述第一节点的第一私钥和第二私钥,得到所述第一节点的用户私钥;其中,每一多项式中最高次项的次数为预设次数;
基于所述第一私钥、第二私钥和第一预设公式,生成所述第一节点的用户公钥;其中,所述第一预设公式包括:
f1×f1 q≡1(mod q)
h1≡g1×f1 q(mod q)
h1表示所述第一节点的用户公钥;f1表示所述第一私钥;g1表示所述第二私钥;f1 q表示f1模q后的逆元素;q表示预设整数;
所述基于所述第一节点的用户私钥和本次交易的交易信息,生成所述第一节点的数字签名,作为第一数字签名,包括:
基于所述第一私钥和第二私钥,生成满足第二预设条件的目标多项式;其中,所述第二预设条件包括:
f1×b∈B-g1×d∈D=q
d表示所述目标多项式;N表示预设素数;N-1为所述预设次数;b和d的最高次项的次数均为N;D表示第一多项式集合;B表示第二多项式集合;
基于所述第一私钥、所述目标多项式、本次交易的交易信息和第二预设公式,生成所述第一节点的数字签名,作为第一数字签名;其中,所述第二预设公式为:
s表示所述第一数字签名;m表示所述交易信息的哈希值。
3.一种信息存储方法,其特征在于,所述方法应用于基于区块链的信息存储系统中的目标节点,所述目标节点为所述信息存储系统中的第二节点中最先生成接收到的交易信息对应的区块的节点,所述方法包括:
当接收到所述第一节点发送的第一数字签名和交易信息时,获取所述第一节点的用户公钥;其中,所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的,所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;
基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;
当所述第一数字签名通过验证时,生成所述交易信息对应的区块;
向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,以使所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证,包括:
基于所述第一节点的用户公钥、所述第一数字签名和第三预设公式,计算所述第一数字签名对应的验证值;其中,所述第三预设公式为:
t≡s×h1(mod q)
t表示所述验证值,s表示所述第一数字签名,h1表示所述第一节点的用户公钥;q表示预设整数;
当所述验证值满足第三预设条件时,确定所述第一数字签名通过验证;其中,所述第三预设条件为:
||s||+||t-m||≤NormBound
m表示所述交易信息的哈希值,NormBound表示预设验证门限。
5.根据权利要求3所述的方法,其特征在于,在所述向所述信息存储系统中除所述目标节点外的第三节点发送所述区块之前,所述方法还包括:
基于所述目标节点的用户私钥、所述交易信息和所述区块的区块头,生成所述目标节点的数字签名,作为第二数字签名;
针对每一第三节点,基于该第三节点的临时公钥,对所述区块和所述第二数字签名进行加密,得到该第三节点对应的第一密文;
所述向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,包括:
针对每一第三节点,向该第三节点发送该第三节点对应的第一密文。
6.根据权利要求5所述的方法,其特征在于,在所述针对每一第三节点,基于该第三节点的临时公钥,对所述区块和所述第二数字签名进行加密,得到该第三节点对应的第一密文之前,所述方法还包括:
针对每一第三节点,当接收到该第三节点发送的第二密文时,基于所述目标节点的用户私钥和第四预设公式,对所述第二密文进行解密,得到该第三节点的第三数字签名和第一备选公钥;其中,所述第二密文为:该第三节点基于所述目标节点的用户公钥,对该第三节点的临时公钥和所述第三数字签名进行加密得到的;所述第三数字签名为:该第三节点基于该第三节点的用户私钥和临时公钥生成的;该第三节点的临时公钥为:该第三节点基于数字理论研究单元加密NTRUEncrypt算法生成的;所述第四预设公式包括:
a≡(f2||g2)×e(mod q)
M≡(f2||g2)p×a(mod p)
M表示目标明文,所述目标明文为对所述第三节点的临时公钥和所述第三数字签名进行拼接得到的,f2表示所述目标节点的一个用户私钥,g2表示所述目标节点的另一个用户私钥,f2||g2表示对f2和g2进行拼接,(f2||g2)p表示(f2||g2)模p后的逆元素,q表示预设整数,p表示第一预设多项式,p的最高项的次数为N-1,N表示预设素数;
基于该第三节点的用户公钥,对所述第三数字签名进行验证;
当所述第三数字签名通过验证时,确定所述第一备选公钥为所述第三节点的临时公钥。
7.一种信息存储方法,其特征在于,所述方法应用于基于区块链的信息存储系统中的第三节点,所述方法包括:
当接收到所述信息存储系统中的目标节点发送的区块时,判断所述区块是否满足第一预设条件;
其中,所述区块为:所述目标节点在接收到所述信息存储系统中的第一节点发送的第一数字签名和交易信息时,基于获取的所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证,并在所述第一数字签名通过验证时生成的;所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的;所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;所述目标节点为所述信息存储系统中的第二节点中最先生成所述交易信息对应的区块的节点,所述第二节点为所述信息存储系统中除所述第一节点外的所有节点;
若所述区块满足第一预设条件,将所述区块存储至当前的区块链。
8.根据权利要求7所述的方法,其特征在于,所述当接收到所述信息存储系统中的目标节点发送的区块时,判断所述区块是否满足第一预设条件,包括:
当接收到所述信息存储系统中的目标节点发送的所述第三节点对应的第一密文时,基于所述第三节点的临时私钥对所述第一密文进行解密,得到所述目标节点的第二数字签名和所述区块;其中,所述第一密文为:所述目标节点基于所述第三节点的临时公钥,对所述区块和所述第二数字签名进行加密得到的;所述第二数字签名为:所述目标节点基于所述目标节点的用户私钥、所述交易信息和所述区块的区块头生成的;
基于所述目标节点的用户公钥,对所述第二数字签名进行验证;
当所述第二数字签名通过验证时,判断所述区块是否满足第一预设条件。
9.根据权利要求8所述的方法,其特征在于,在所述当接收到所述信息存储系统中的目标节点发送的所述第三节点对应的第一密文时,基于所述第三节点的临时私钥对所述第一密文进行解密,得到所述目标节点的第二数字签名和所述区块之前,所述方法还包括:
基于NTRUEncrypt算法,生成所述第三节点的临时私钥和临时公钥;
基于所述第三节点的用户私钥和临时公钥,生成所述第三节点的数字签名,作为第三数字签名;
基于所述目标节点的用户公钥和第五预设公式,对所述第三节点的临时公钥和所述第三数字签名进行加密,得到第二密文;其中,所述第五预设公式为:
e≡r×h2+M(mod q)
e表示所述第二密文,r表示第四预设多项式,r的最高次项的次数为N-1,N表示预设素数;h2表示所述目标节点的用户公钥,M表示目标明文,所述目标明文为对所述第三节点的临时公钥和所述第三数字签名进行拼接得到的,q表示预设整数;
向所述目标节点发送所述第二密文,以使所述目标节点接收到所述第二密文时,基于所述目标节点的用户私钥,对所述第二密文进行解密,得到第一备选公钥和所述第三数字签名;基于所述第三节点的用户公钥,对所述第三数字签名进行验证;当所述第三数字签名通过验证时,确定所述第一备选公钥为所述第三节点的临时公钥,并基于所述第三节点的临时公钥生成所述第三节点对应的第一密文。
10.根据权利要求9所述的方法,其特征在于,所述基于NTRUEncrypt算法,生成所述第三节点的临时私钥和临时公钥,包括:
基于NTRUEncrypt算法,生成满足第四预设条件的多项式,作为所述第三节点的临时私钥;其中,所述第四预设条件为:
F=1+p×B
F表示所述第三节点的临时私钥,p表示第一预设多项式,B表示第二预设多项式;F、p和B的最高次项的次数均为N-1,N表示预设素数;
基于所述第三节点的临时私钥和第六预设公式,生成所述第三节点的临时公钥;其中,所述第六预设公式包括:
F×Fq≡1(mod q)
H≡p×E×Fq(mod q)
H表示所述第三节点的临时公钥,F表示所述第三节点的临时私钥,Fq表示F模q后的逆元素,q表示预设整数,q与p的最大公约数为1;E表示第三预设多项式;E的最高次项的次数为N-1,N表示所述预设素数。
11.一种信息存储装置,其特征在于,所述装置应用于基于区块链的信息存储系统中的第一节点,所述装置包括:
第一生成模块,用于基于NTRUSign算法,生成所述第一节点的用户私钥和用户公钥;
第二生成模块,用于基于所述第一节点的用户私钥和本次交易的交易信息,生成所述第一节点的数字签名,作为第一数字签名;
发送模块,用于向所述信息存储系统中除所述第一节点外的第二节点,发送所述第一数字签名和所述交易信息,以使所述第二节点中的目标节点在接收到所述第一数字签名和所述交易信息时,获取所述第一节点的用户公钥,并基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;当所述第一数字签名通过验证时,生成所述交易信息对应的区块;向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,使得所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链;其中,所述目标节点为所述第二节点中最先生成所述交易信息对应的区块的节点。
12.一种信息存储装置,其特征在于,所述装置应用于基于区块链的信息存储系统中的目标节点,所述目标节点为所述信息存储系统中的第二节点中最先生成接收到的交易信息对应的区块的节点,所述装置包括:
获取模块,用于当接收到所述第一节点发送的第一数字签名和交易信息时,获取所述第一节点的用户公钥;其中,所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的,所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;
第一验证模块,用于基于所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证;
第一生成模块,用于当所述第一数字签名通过验证时,生成所述交易信息对应的区块;
发送模块,用于向所述信息存储系统中除所述目标节点外的第三节点发送所述区块,以使所述第三节点在接收到所述区块,并判定所述区块满足第一预设条件时,将所述区块存储至当前的区块链。
13.一种信息存储装置,其特征在于,所述装置应用于基于区块链的信息存储系统中的第三节点,所述装置包括:
判断模块,用于当接收到所述信息存储系统中的目标节点发送的区块时,判断所述区块是否满足第一预设条件;
其中,所述区块为:所述目标节点在接收到所述信息存储系统中的第一节点发送的第一数字签名和交易信息时,基于获取的所述第一节点的用户公钥和所述交易信息,对所述第一数字签名进行验证,并在所述第一数字签名通过验证时生成的;所述第一数字签名为:所述第一节点基于所述第一节点的用户私钥和所述第一节点本次交易的交易信息生成的;所述第一节点的用户私钥和用户公钥为:所述第一节点基于NTRUSign算法生成的;所述目标节点为所述信息存储系统中的第二节点中最先生成所述交易信息对应的区块的节点,所述第二节点为所述信息存储系统中除所述第一节点外的所有节点;
存储模块,用于若所述区块满足第一预设条件,将所述区块存储至当前的区块链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110143401.2A CN112766970A (zh) | 2021-02-02 | 2021-02-02 | 一种信息存储方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110143401.2A CN112766970A (zh) | 2021-02-02 | 2021-02-02 | 一种信息存储方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112766970A true CN112766970A (zh) | 2021-05-07 |
Family
ID=75704665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110143401.2A Pending CN112766970A (zh) | 2021-02-02 | 2021-02-02 | 一种信息存储方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112766970A (zh) |
-
2021
- 2021-02-02 CN CN202110143401.2A patent/CN112766970A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194466B (zh) | 一种基于区块链的云端数据完整性检测方法及系统 | |
CN110378139B (zh) | 一种数据密钥保护方法、系统及电子设备和存储介质 | |
JP6515246B2 (ja) | 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定 | |
CN111066285B (zh) | 基于sm2签名恢复公钥的方法 | |
CN114521319B (zh) | 具有均匀秘密的基于格的签名 | |
CN111989891A (zh) | 数据处理方法、相关装置及区块链系统 | |
US7634084B2 (en) | Prime calculation device, method, and key issuing system | |
KR20180114182A (ko) | 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안 | |
WO2007007836A1 (ja) | 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 | |
CN112787796B (zh) | 一种边缘计算中检测虚假数据注入的聚合方法及装置 | |
TW201320701A (zh) | 資訊處理裝置、資訊處理方法及程式 | |
Jung et al. | Data management and searching system and method to provide increased security for IoT platform | |
CN115580396A (zh) | 匿踪查询系统及匿踪查询方法 | |
KR101253683B1 (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
Skudnov | Bitcoin clients | |
JP2017524306A (ja) | 暗号化操作における悪意のある変更に対する保護 | |
CN111314066B (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
CN118160275A (zh) | 阈值签名方案 | |
US11323256B2 (en) | Method for generating on-board a cryptographic key using a physically unclonable function | |
Ali et al. | Secure IoT framework for authentication and confidentiality using hybrid cryptographic schemes | |
CN110266478B (zh) | 一种信息处理方法、电子设备 | |
CN116318654A (zh) | 融合量子密钥分发的sm2算法协同签名系统、方法及设备 | |
US20210119776A1 (en) | Proof-of-work based on block cipher | |
CN111901102B (zh) | 数据传输方法、电子设备以及可读存储介质 | |
CN112766970A (zh) | 一种信息存储方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210507 |