CN114793160B - 用于区块链系统的加密及解密方法、装置以及存储介质 - Google Patents
用于区块链系统的加密及解密方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN114793160B CN114793160B CN202210701414.1A CN202210701414A CN114793160B CN 114793160 B CN114793160 B CN 114793160B CN 202210701414 A CN202210701414 A CN 202210701414A CN 114793160 B CN114793160 B CN 114793160B
- Authority
- CN
- China
- Prior art keywords
- key pair
- information
- key
- node
- threshold
- 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
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种用于区块链系统的加密及解密方法、装置以及存储介质,涉及区块链技术领域。其中,加密方法包括:从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) ,y (i,1) )对应的k个第一密钥对;根据与共享信息M对应的共享密钥S以及所接收的第一密钥对,构建基于m阶门限多项式的门限函数G(x);对共享信息M进行加密,生成与共享信息M对应的密文;利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对;以及将密文以及第二密钥对发送至信息接收节点N 1 ~N k 。现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种用于区块链系统的加密及解密方法、装置以及存储介质。
背景技术
随着区块链技术的不断发展,越来越多的企业聚焦于建设区块链应用。区块链作为一种分布式账本,集成了分布式共识、对等网络、智能合约及密码学等技术。区块链技术具有诸多先天优势,如去中心化、去信任化、不可篡改以及自治性等。所有参与方共享同一份账本和数据,这些特性带来了交易隐私保护问题,严重影响其在企业业务应用场景中的使用。传统应用系统普遍使用访问权限控制方法来保护数据隐私。区块链具有去中心化特性,交易数据隐私保护无法通过集中式的访问权限控制来完成,因此如何保护交易数据隐私成为一个难题。
隐私保护是对用户信息以及隐私数据等不愿公开的敏感信息的保护。在区块链中,主要需要保护交易的信息。要求交易本身的数据信息对非授权节点匿名。例如,在比特币中特指交易金额、交易的发送方公钥、接收方地址以及交易的购买内容等其他交易信息。对于存储类应用的区块链,存取的数据需要保密。任何未授权节点无法通过有效的技术手段获取交易相关的知识。区块链技术由于需要保证账本内容的一致性、可溯源以及可验证性,账本内容需要对区块链网络中的所有节点公开,从而导致基于区块链技术的隐私保护更是困难。
为了隐藏交易过程中相关信息,目前常见的隐私保护方法通常采用密钥对数据信息进行加密,加密算法包括对称加密算法和非对称加密算法。但是,使用对称算法加密数据需要对加密密钥通过中心化的方式进行管理,通过链下传输密钥进行数据共享,导致私密数据共享不透明,无法通过区块链共识来验证。而使用非对称加密算法则不适用于加密长数据,这种方法性能低下,会导致系统不可用。
现有技术1(CN112751673A):一种基于端边云协同的可监管数据隐私共享方法,针对端边云场景下的数据隐私共享和监管,包括:基于对称密钥加密的数据云存储和元数据的产生,基于联盟链的分布式密钥的元数据的上链,基于可搜索加密的数据监管,监管的方式包括:信封监管和拆封监管等两种粒度的监管方式,信封监管在所有节点共识的情况下,确认用户是否在某个时间内提交元数据的存储凭证;拆封监管则获取用户的元数据存储凭证,对存储的数据进行解密并获取数据明文;区块链系统用于对用户的隐私数据存证,保护数据隐私不被泄露,同时实现对数据隐私共享条件下监管。
现有技术2(CN112837064A):联盟链的签名方法、签名验证方法及装置,涉及区块链技术领域所述方法包括:对交易信息以及各个联盟用户的身份标识进行哈希运算,获得交易信息的签名;获得其余联盟用户中每个联盟用户的随机参数;根据交易信息的签名、多中心签名、其余联盟用户中各个联盟用户的随机参数以及对称加密算法,获得发布者随机参数;根据门限函数的反函数以及发布者随机参数,获得发布者随机数;根据各个联盟用户的身份标识、多中心签名和随机数,生成交易信息的签名结果;基于各个联盟用户的身份标识、交易信息和交易信息的签名结果,生成交易报文。所述装置用于执行上述方法。本发明实施例提供联盟链的签名方法、签名验证方法及装置,提高签名的安全性。
针对上述的现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请的实施例提供了一种用于区块链系统的加密及解密方法、装置以及存储介质,以至少解决现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
根据本申请实施例的一个方面,提供了一种用于区块链系统的加密方法,其中区
块链系统包括n个区块链节点N 1 ~N n ,其中n个区块链节点N 1 ~N n 分别部署有各自的预存密钥
对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,方法用于信息发送节点N s ,并且信息发送节点N s
为n个区块链节点N 1 ~N n 中的区块链节点,方法包括:从k个信息接收节点N 1 ~N k 接收分别与k
个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中信息发送节
点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k
≥1,n>k;根据与共享信息M对应的共享密钥S以及所接收的第一密钥对,构建基于m阶门限
多项式的门限函数G(x),其中门限函数G
(x)用于生成与共享密钥S相关的子密钥,并且n>m≥k;对共享信息M进行加密,生成与共享
信息M对应的密文;利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对;以及
将密文以及第二密钥对发送至信息接收节点N 1 ~N k 。
根据本申请实施例的另一方面,还提供了一种用于区块链系统的解密方法,其中
区块链系统包括n个区块链节点N 1 ~N n ,并且n个区块链节点N 1 ~N n 分别布署有各自的预存密
钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,方法用于从信息发送节点N S 接收共享
信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中信息发送节点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n>m
≥k,方法包括:根据所布署的预存密钥对确定相应的第一密钥对,并将第一密钥对发送至
信息发送节点N S ;从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对,其中m个第二密钥对是利用基于m阶门限多项式的
门限函数G(x)生成的;以及根据m个第二密钥对对密文进行解密,得到共享信息M。
根据本申请实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于区块链系统的加密装置,其
中区块链系统包括n个区块链节点N 1 ~N n ,其中n个区块链节点N 1 ~N n 分别部署有各自的预存
密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,装置用于信息发送节点N s ,并且信息发送节
点N s 为n个区块链节点N 1 ~N n 中的区块链节点,装置包括:密钥对接收模块,用于从k个信息接
收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一
密钥对,其中信息发送节点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节
点,其中k为自然数,并且k≥1,n>k;门限函构建模块,用于根据与共享信息M对应的共享密
钥S以及所接收的第一密钥对,构建基于m阶门限多项式
的门限函数G(x),其中门限函数G(x)用于生成与共享密钥S相关的子密钥,并且n>m≥k;加
密模块,用于对共享信息M进行加密,生成与共享信息M对应的密文;密钥生成模块,用于利
用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对;以及发送模块,用于将密
文以及第二密钥对发送至信息接收节点N 1 ~N k 。
根据本申请实施例的另一个方面,还提供了一种用于区块链系统的解密装置,其
中区块链系统包括n个区块链节点N 1 ~N n ,并且n个区块链节点N 1 ~N n 分别布署有各自的预存
密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,装置用于从信息发送节点N S 接收共
享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中信息发送节点N s 和信息接收节
点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n
>m≥k,装置包括:密钥发送模块,用于根据所布署的预存密钥对确定相应的第一密钥对,
并将第一密钥对发送至信息发送节点N S ;接收模块,用于从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对,其中m个第二密钥对是利用基于m阶门限多项式的门限函数G(x)生成的;以及解密模块,
用于根据m个第二密钥对对密文进行解密,得到共享信息M。
根据本申请实施例的另一个方面,还提供了一种用于区块链系统的加密装置,其
中区块链系统包括n个区块链节点N 1 ~N n ,其中n个区块链节点N 1 ~N n 分别部署有各自的预存
密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,装置用于信息发送节点N s ,并且信息发送节
点N s 为n个区块链节点N 1 ~N n 中的区块链节点,装置包括:第一处理器;以及第一存储器,与第
一处理器连接,用于为第一处理器提供处理以下处理步骤的指令:从k个信息接收节点N 1 ~N k
接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其
中信息发送节点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为
自然数,并且k≥1,n>k;根据与共享信息M对应的共享密钥S以及所接收的第一密钥对,构
建基于m阶门限多项式的门限函数G(x),
其中门限函数G(x)用于生成与共享密钥S相关的子密钥,并且n>m≥k;对共享信息M进行加
密,生成与共享信息M对应的密文;利用门限函数G(x)生成作为共享密钥S的子密钥的m个第
二密钥对;以及将密文以及第二密钥对发送至信息接收节点N 1 ~N k 。
根据本申请实施例的另一个方面,还提供了一种用于区块链系统的解密装置,其
中区块链系统包括n个区块链节点N 1 ~N n ,并且n个区块链节点N 1 ~N n 分别布署有各自的预存
密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,装置用于从信息发送节点N S 接收共
享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中信息发送节点N s 和信息接收节
点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n
>m≥k,装置包括:第二处理器;以及第二存储器,与第二处理器连接,用于为第二处理器提
供处理以下处理步骤的指令:根据所布署的预存密钥对确定相应的第一密钥对,并将第一
密钥对发送至信息发送节点N S ;从信息发送节点N s 接收与共享信息M对应的密文以及m个第
二密钥对,其中m个第二密钥对是利用基于m阶门限多项式
的门限函数G(x)生成的;以及根据m个第二密钥对对密文进行解密,得到共享信息M。
根据本公开的技术方案,在区块链系统的交易过程中,发送共享信息的信息发送节点,从有权限接收共享信息的信息接收节点接收根据信息接收节点的预存密钥对生成的第一密钥对,并且利用第一密钥对和共享密钥构建m阶门限多项式,然后利用基于门限多项式的门限函数生成m个第二密钥对。并将第二密钥对与密文一起发送至信息接收节点。由于第二密钥对是根据门限函数生成的,因此只有有权限的信息接收节点可以将自身保存的预存密钥对与第二密钥对结合从而恢复对密文进行解密的共享密钥,并利用共享密钥解密密文得到共享信息。从而通过这种方式,可以在链上以传输子密钥的方式传输共享密钥,从而能够更加透明地共享私密数据。并且生成的子密钥必须与信息接收节点的预存密钥对相结合才能够恢复共享密钥,因此即便是在传输过程中,作为子密钥的第二密钥对被拦截,拦截方在没有预存密钥对的情况下也无法恢复共享密钥,从而能够有效防止共享密钥的泄露。此外,根据本公开的技术方案,不必再限于利用公私钥的加密算法对共享信息进行加密,因此可以有效地实现上数据信息的加密以及透明共享。从而解决了现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是用于实现根据本申请实施例1所述的方法的计算设备的硬件结构框图;
图2A是根据本申请实施例1所述的区块链系统的示意图;
图2B是根据本申请实施例1所述的区块链系统中信息发送节点向信息接收节点发送共享信息的示意图;
图3是根据本申请实施例1的第一个方面所述的用于区块链系统的加密方法的流程示意图;
图4是根据本申请实施例1的第二个方面所述的用于区块链系统的解密方法的流程示意图;
图5A和图5B是根据本申请实施例1所述的方法的具体流程示意图;
图6是根据本申请实施例2的第一个方面所述的用于区块链系统的加密装置的示意图;
图7是根据本申请实施例2的第二个方面所述的用于区块链系统的解密装置的示意图;
图8是根据本申请实施例3的第一个方面所述的用于区块链系统的加密装置的示意图;以及
图9是根据本申请实施例3的第二个方面所述的用于区块链系统的解密装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,提供了一种用于区块链系统的加密及解密方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现用于区块链系统的加密及解密方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本申请实施例中的用于区块链系统的加密及解密方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的用于区块链系统的加密及解密方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2A示出了用于实施本实施例的加密方法以及解密方法的区块链系统的示意图。参考图2A所示,该区块链系统包括n个区块链节点N 1 ~N n 。其中,区块链节点N 1 ~N n 分别布署有各自的预存密钥对(x (i,1) , y (i,1) )。例如,节点N 1 布署有预存密钥对(x (1,1) , y (1,1) ),节点N 2 布署有预存密钥对(x (2,1) , y (2,1) ),......,以及节点N n 布署有预存密钥对(x (n,1) , y (n,1) )。
此外,参考图2B所示,根据本实施例的方法,当发生交易时,区块链节点N 1 ~N n 中的区块链节点N S (下文中称为“信息发送节点”)向有权限接收信息的k个区块链节点(例如区块链节点N 1 ~N k ,下文中称为“信息接收节点”)发送共享信息M。其中,该共享信息M例如可以是一个长数据信息。
需要说明的是,图2A和图2B中示出的区块链节点均可适用上面所述的硬件结构。
在上述运行环境下,根据本实施例的第一个方面,提供了一种用于区块链系统的加密方法,该方法由图2B中所示的信息发送节点N s 实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中信息发送节点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k;
S306:对共享信息M进行加密,生成与共享信息M对应的密文;
S308:利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对;以及
S310:将密文以及第二密钥对发送至信息接收节点N 1 ~N k 。
具体地,正如上文所述,区块链系统设置有n个区块链节点,分别为:N 1 ,N 2 ,……,N n 。每个区块链节点N i 都分别布署有各自的预存密钥对(x (i,1) , y (i,1) ),其中,i=1~n。当节点N 1 ,N 2 ,……,N n 中的一个信息发送节点N s 要向有权限接收共享信息M的k个信息接收节点N 1 ~N k 发送共享信息M时,先分别从k个信息接收节点N 1 ~N k 接收第一密钥对。其中第一密钥对与各个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应(S302)。
例如,信息发送节点N s 从信息接收节点N 1 接收与预存密钥对(x (1,1) , y (1,1) )对应的第一密钥对,从信息接收节点N 2 接收与预存密钥对(x (2,1) , y (2,1) )对应的第一密钥对,从信息接收节点N 3 接收与预存密钥对(x (3,1) , y (3,1) )对应的第一密钥对,......,以及从信息接收节点N k 接收与预存密钥对(x (k,1) , y (k,1) )对应的第一密钥对。
进一步地,信息发送节点N s 根据共享密钥S以及k个第一密钥对构建基于m阶门限多项式f(x)的门限函数G(x)。其中门限多项式f(x)通过如下公式表示:
从而门限函数G(x)也是一个以参数x为变量的函数,并且包含门限多项式f(x)的参数a 0 ~a m 。并且其中,门限函数G(x)用于生成与共享密钥S相关的子密钥,并且n>m≥k(S304)。
其中,优选地,可以根据Shamir秘密共享的原理构建该门限多项式f(x),从而可以基于Shamir秘密共享的原理向该k个信息接收节点N 1 ~N k 共享该共享密钥S的子密钥,使得信息接收节点N 1 ~N k 能够恢复共享密钥S,并对密文进行解密得到共享信息M。关于构建门限函数G(x)的具体方法,将在下文中详细说明。
然后进一步地,信息发送节点N s 对共享信息M进行加密,生成与共享信息M对应的密文,并且该密文可以利用共享秘密S进行解密(S306)。
然后信息发送节点N s 利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对(S308)。
具体地,信息发送节点N s 首先生成m个随机数x (v,1) ,1≤v≤m。其中,该m个随机数x (v,1) 与k个信息接收节点的预存密钥对(x (i,1) , y (i,1) )中的x (i,1) 不同。然后信息发送节点N s 利用门限函数G(x),生成与该m个随机数x (v,1) 对应的m个第二密钥对。其中该m个第二密钥对为共享密钥S的子密钥,用于结合信息接收节点N 1 ~N k 的预存密钥对恢复共享密钥S。
然后,信息发送节点N s 将密文和第二密钥对发送至信息接收节点N 1 ~N k 实现对共享消息M的共享(S310)。
从而,信息接收节点N 1 ~N k 在接收到密文和第二密钥对后,可以结合预存密钥对(x (i,1) , y (i,1) )以及该m个第二密钥对恢复共享密钥S。例如,信息接收节点N 1 结合预存密钥对(x (1,1) , y (1,1) )以及m个第二密钥对恢复共享密钥S,信息接收节点N 2 结合预存密钥对(x (2,1) , y (2,1) )以及m个第二密钥对恢复共享密钥S,......,以及信息接收节点N k 结合预存密钥对(x (k,1) , y (k,1) )以及m个第二密钥对恢复共享密钥S。
从而,信息接收节点N 1 ~N k 可以利用共享密钥S对密文进行解密,从而得到共享信息M。
正如背景技术中所述的,在区块链系统的交易过程中,为了隐藏交易过程中的相关信息,目前常见的隐私保护方法通常采用密钥对数据信息进行加密,加密算法包括对称加密算法和非对称加密算法。但是,使用对称算法加密数据需要对加密密钥通过中心化的方式进行管理,通过链下传输密钥进行数据共享,导致私密数据共享不透明,无法通过区块链共识来验证。而使用非对称加密算法则不适用于加密长数据,这种方法性能低下,会导致系统不可用。
有鉴于此,根据本公开的技术方案,在区块链系统的交易过程中,发送共享信息的信息发送节点,从有权限接收共享信息的信息接收节点接收根据信息接收节点的预存密钥对生成的第一密钥对,并且利用第一密钥对和共享密钥构建m阶门限多项式,然后利用基于门限多项式的门限函数生成m个第二密钥对。并将第二密钥对与密文一起发送至信息接收节点。由于第二密钥对是根据门限函数生成的,因此只有有权限的信息接收节点可以将自身保存的预存密钥对与第二密钥对结合从而恢复对密文进行解密的共享密钥,并利用共享密钥解密密文得到共享信息。从而通过这种方式,可以在链上以传输子密钥的方式传输共享密钥,从而能够更加透明地共享私密数据。并且生成的子密钥必须与信息接收节点的预存密钥对相结合才能够恢复共享密钥,因此即便是在传输过程中,作为子密钥的第二密钥对被拦截,拦截方在没有预存密钥对的情况下也无法恢复共享密钥,从而能够有效防止共享密钥的泄露。此外,根据本公开的技术方案,不必再限于利用公私钥的加密算法对共享信息进行加密,因此可以有效地实现上数据信息的加密以及透明共享。从而解决了现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
从而,通过以上方式,信息发送节点N s 可以根据信息接收节点N 1 ~N k 的数量构建门限函数G(x),简化了构建门限函数G(x)的操作。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收相应的预存密钥对(x (u,1) , y (u,1) ),作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k。并且其中,基于门限多项式f(x)构建门限函数G(x)的操作,包括将门限多项式f(x)作为门限函数G(x)。并且其中,根据k个第一密钥对以及共享密钥S确定门限函数G(x)的参数的操作,包括:根据共享密钥S生成相应的共享密钥对(0, S);将k个第一密钥对(x (u,1) , y (u,1) )以及共享密钥对(0, S)分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数。并且其中,利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对的操作,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定分别与m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
具体地,根据本公开技术方案,信息接收节点N 1 ~N k 可以将各自的预存密钥对作为k个第一密钥对(x (u,1) , y (u,1) )发送至信息发送节点N s 。例如,信息接收节点N 1 将预存密钥对(x (1,1) , y (1,1) )作为第一密钥对发送至信息发送节点N s ,信息接收节点N 2 将预存密钥对(x (2,1) , y (2,1) )作为第一密钥对发送至信息发送节点N s ,......,以及信息接收节点N k 将预存密钥对(x (k,1) , y (k,1) )作为第一密钥对发送至信息发送节点N s 。从而,信息发送节点N s 从k个信息接收节点N 1 ~N k 接收相应的预存密钥对,作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k。
然后,信息发送节点N s 根据用于对密文进行解密的共享密钥S,生成共享密钥对(0, S)。然后将k个第一密钥对(x (u,1) , y (u,1) )以及共享密钥对(0, S)分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数a 0 ~a m 。
在此情况下,本方案对共享信息M的加密方法不做具体限定,只要能够通过共享密钥S对共享信息M的密文进行解密即可。
在对共享信息M进行加密后,信息发送节点N s 生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定相应的的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
然后,信息发送节点N s 将与共享信息对应的密文以及m个第二密钥对(x (v,2) ,y (v,2) )发送至信息接收节点N 1 ~N k 。
由于门限函数G(x)包括m+1个参数a 0 ~a m ,因此即便是有人拦截了m个第二密钥对(x (v,2) , y (v,2) ),由于仍然缺少一个密钥对来求解参数a 0 ~a m ,因此仍然无法确定门限函数G(x),从而无法恢复共享密钥S。但是,由于各个信息接收节点N 1 ~N k 分别布署有预存密钥对(x (i,1) , y (i,1) ),因此各个信息接收节点N 1 ~N k 可以将预存密钥对(x (i,1) , y (i,1) )和m个第二密钥对(x (v,2) , y (v,2) )分别代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x),从而恢复出共享密钥S。例如,信息接收节点N 1 将预存密钥对(x (1,1) , y (1,1) )以及m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x);信息接收节点N 2 将预存密钥对(x (2,1) , y (2,1) )以及m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x);......;以及信息接收节点N k 将预存密钥对(x (k,1) , y (k,1) )以及m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x)。从而各个信息接收节点N 1 ~N k 可以根据门限函数G(x)恢复出共享密钥S。从而通过这种方式,可以有效防止共享密钥S的泄露。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥
对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收与k个
信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其
中1≤u≤k,并且g为一个素数p的原根。并且其中,基于所述门限多项式f(x)构建所述门限
函数G(x)的操作,包括构建所述门限函数G(x)=g f(x) 。并且其中,根据所述k个第一密钥对以
及所述共享密钥S确定所述门限函数G(x)的参数的操作,包括:根据所述共享密钥S生成相
应的共享密钥对(0, g S );以及将所述k个第一密钥对和所述共享密钥对
(0, g S )分别代入到所述门限函数G(x)中,从而确定所述门限函数G(x)的参数。并且其中,
对所述共享信息M进行加密,生成与所述共享信息M对应的密文的操作,包括:将所述共享密
钥S设置为私钥,并且确定公钥h=g S mod p;以及设定一个随机数d,根据以下公式得到与所
述共享信息M对应的密文C 1 和密文C 2 :C 1 = g d mod p,。并
且其中,利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操
作,包括:生成m个随机数x (v,2) ,并将所述m个随机数x (v,2) 分别代入所述门限函数G(x),生成
相应的门限函数值,其中,其中1≤v≤m;以及根据所述m
个随机数x (v,2) 以及相应的门限函数值,生成所述m个第二密钥对(x (v,2),z (v,2)),其中。
具体地,为了避免各个信息接收节点N 1 ~N k 的预存密钥对发生泄露,根据本公开的
技术方案,各个信息接收节点N 1 ~N k 可以不将预存密钥对作为第一密钥对发送至信息发送节
点N S 。而是参考Elgamal加密算法,预先确定一个素数p以及该素数p的原根g。然后,信息接
收节点N 1 ~N k 根据各自的预存密钥对生成相应的第一密钥对,并将第一密
钥对发送至信息发送节点N s ,其中1≤u≤k。例如,信息接收节点N 1 根据
预存密钥对(x (1,1) , y (1,1) ),生成第一密钥对,并将其发送至信息发送节
点N s ;信息接收节点N 2 根据预存密钥对(x (2,1) , y (2,1) ),生成第一密钥对,
并将其发送至信息发送节点N s ;......;以及信息接收节点N k 根据预存密钥对(x (k,1) , y (k,1) ),生成第一密钥对,并将其发送至信息发送节点N s 。从而,信息发
送节点N s 从k个信息接收节点N 1 ~N k 接收k个第一密钥对,其中1≤u≤k。
然后,信息发送节点N s 根据共享密钥S生成相应的共享密钥对(0, g S ),并且将k个
第一密钥对和共享密钥对(0, g S )分别代入到门限函数G(x)中,从而
确定门限函数G(x)的参数a 0 ~a m 。
然后,信息发送节点N s 根据Elgamal加密算法,将共享密钥S设置为私钥,并且确定公钥h=g S mod p。然后,信息发送节点N s 设定一个随机数d,根据以下公式得到与共享信息M对应的密文C 1 和密文C 2 :
C 1 = g d mod p (2)
然后,在对共享信息M进行加密后,信息发送节点N s 生成m个随机数x (v,2) ,并将m个
随机数x (v,2) 分别代入门限函数G(x),确定相应的的门限函数值,从而根据(x (v,2) , )生成m个第二密钥对(x (v,2),z (v,2)),其中,并且1≤v
≤m。
然后,信息发送节点N s 将与共享信息对应的密文C 1 和密文C 2 以及m个第二密钥对(x (v,2),z (v,2))发送至信息接收节点N 1 ~N k 。
从而根据本公开的技术方案,由于信息接收节点N 1 ~N k 将作为
第一密钥对,而不是将预存密钥对作为第一密钥对发送至信息发送节点N S ,因此即便是有
人在这个过程中拦截第一密钥对,也不能知晓各个信息接收节点N 1 ~N k 的预存密钥对。从而
有效地防止预存密钥对的泄露。
本公开的技术方案一方面利用Shamir门限算法的原理,由于门限函数G(x)包括m+1个参数a 0 ~a m ,因此即便有人拦截了m个第二密钥对,由于仍然缺少一个密钥对,因此无法利用m个第二密钥对对密文C 1 和密文C 2 进行解密。此外,本公开的技术方案另一方面还借鉴了Elegamal加密算法生成第一密钥对以及密文C 1 和C 2 ,因此可以有效避免预存密钥对的泄露。而关于密文C 1 和C 2 的解密,将在后文中详细说明。
可选地,构建所述门限函数G(x)的操作,包括:生成随机数j;构建所述门限多项式,其中m=j+k;基于所述门限多项式f(x)
构建所述门限函数G(x);随机生成j个第三密钥对,其中所述j个第三密钥对与所述k个第一
密钥对不同;根据所述共享密钥S、所述j个第三密钥对以及所述k个第一密钥对确定所述门
限函数G(x)的参数。
具体地,为了避免泄露信息接收节点N 1 ~N k 的数量k,信息发送节点N s 也可以不根据
信息接收节点N 1 ~N k 的数量k来构建门限多项式f(x)以及门限函数G(x)。具体地,信息发送节
点N s 可以先生成一个随机数j,然后令m=j+k,再构建m阶门限多项式,
并基于该门限多项式f(x)构建门限函数G(x)。
从而,由于信息发送节点N s 生成的第二密钥对的数量也是m个,因此即便是有人拦截了信息发送节点N s 发送的第二密钥对,也不能根据第二密钥对的数量确定信息接收节点的数量,从而有效地保护了信息共享过程中的隐私。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收相应的预存密钥对(x (u,1) , y (u,1) ),作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k。并且其中,基于门限多项式f(x)构建门限函数G(x)的操作,包括将门限多项式f(x)作为门限函数G(x)。并且其中,随机生成j个第三密钥对的操作,包括:随机生成与k个第一密钥对(x (u,1) ,y (u,1) )不同的j个第三密钥对(x (w,3) , y (w,3) ),其中1≤w≤j。并且其中,根据共享密钥S、j个第三密钥对以及k个第一密钥对确定门限函数G(x)的参数的操作,包括:根据共享密钥S生成相应的共享密钥对(0, S);将共享密钥对(0, S)、j个第三密钥对(x (w,3) , y (w,3) )以及k个第一密钥对(x (u,1) , y (u,1) )分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数。并且其中,利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对的操作,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定分别与m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
具体地,根据本公开技术方案,信息接收节点N 1 ~N k 可以将各自的预存密钥对作为k个第一密钥对(x (u,1) , y (u,1) )发送至信息发送节点N s 。例如,信息接收节点N 1 将预存密钥对(x (1,1) , y (1,1) )作为第一密钥对发送至信息发送节点N s ,信息接收节点N 2 将预存密钥对(x (2,1) , y (2,1) )作为第一密钥对发送至信息发送节点N s ,......,以及信息接收节点N k 将预存密钥对(x (k,1) , y (k,1) )作为第一密钥对发送至信息发送节点N s 。从而,信息发送节点N s 从k个信息接收节点N 1 ~N k 接收相应的预存密钥对,作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k。
然后,信息发送节点N s 随机生成与k个第一密钥对(x (u,1) , y (u,1) )不同的j个第三密钥对(x (w,3) , y (w,3) ),其中1≤w≤j。具体地,j个第三密钥对(x (w,3) , y (w,3) )中的每一个密钥对,均与第一密钥对(x (u,1) , y (u,1) )不同,从而保证有足够数量的不同密钥对来计算门限函数G(x)的参数。
然后,信息发送节点N s 根据用于对密文进行解密的共享密钥S,生成共享密钥对(0, S)。然后将k个第一密钥对(x (u,1) , y (u,1) )、j个第三密钥对(x (w,3) , y (w,3) )以及共享密钥对(0, S)分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数a 0 ~a m 。
在此情况下,本方案对共享信息M的加密方法不做具体限定,只要能够通过共享密钥S对共享信息M的密文进行解密即可。
在对共享信息M进行加密后,信息发送节点N s 生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定相应的的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
然后,信息发送节点N s 将与共享信息对应的密文以及m个第二密钥对(x (v,2) ,y (v,2) )发送至信息接收节点N 1 ~N k 。
由于门限函数G(x)包括m+1个参数a 0 ~a m ,因此即便是有人拦截了m个第二密钥对(x (v,2) , y (v,2) ),由于仍然缺少一个密钥对来求解参数a 0 ~a m ,因此仍然无法确定门限函数G(x),从而无法恢复共享密钥S。但是,由于各个信息接收节点N 1 ~N k 分别布署有预存密钥对(x (i,1) , y (i,1) ),因此各个信息接收节点N 1 ~N k 可以将预存密钥对(x (i,1) , y (i,1) )和m个第二密钥对(x (v,2) , y (v,2) )分别代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x),从而恢复出共享密钥S。例如,信息接收节点N 1 将预存密钥对(x (1,1) , y (1,1) )以及m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x);信息接收节点N 2 将预存密钥对(x (2,1) , y (2,1) )以及m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x);......;以及信息接收节点N k 将预存密钥对(x (k,1) , y (k,1) )以及m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G(x)中,从而计算出参数a 0 ~a m ,并确定门限函数G(x)。从而各个信息接收节点N 1 ~N k 可以根据门限函数G(x)恢复出共享密钥S。从而通过这种方式,可以有效防止共享密钥S的泄露。
可选地,从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存
密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从所述k个信息接收节点N 1 ~N k 接
收与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中1≤u≤k,并且g为一个素数p的原根。并且其中,基于所述门限多项
式f(x)构建所述门限函数G(x)的操作,包括构建所述门限函数G(x)=g f(x) 。并且其中,随机
生成j个第三密钥对的操作,包括:随机生成与k个第一密钥对不同
的j个第三密钥对,其中1≤w≤j。并且其中,根据所述共享密钥S、所述j
个第三密钥对以及所述k个第一密钥对确定所述门限函数G(x)的参数,包括:根据所述共享
密钥S生成相应的共享密钥对(0, g S );将所述共享密钥对(0, g S )、所述j个第三密钥对以及所述k个第一密钥对分别代入到所述门限函数G
(x)中,从而确定所述门限函数G(x)的参数。并且其中,对所述共享信息M进行加密,生成与
所述共享信息M对应的密文的操作,包括:将所述共享密钥S设置为私钥,并且确定公钥h=g S
mod p;以及设定一个随机数d,根据以下公式得到与所述共享信息M对应的密文C 1 和密文C 2 :C 1 = g d mod p,
。并且其中,利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二
密钥对的操作,包括:生成m个随机数x (v,2) ,并将所述m个随机数x (v,2) 分别代入所述门限函
数G(x),生成相应的门限函数值,其中,1≤v≤m;以及根据所述m个随机数x (v,2) 以及相应的门限函数值,生成所述m个第二密钥
对(x (v,2),z (v,2)),其中。
具体地,为了避免各个信息接收节点N 1 ~N k 的预存密钥对发生泄露,根据本公开的
技术方案,各个信息接收节点N 1 ~N k 可以不将预存密钥对作为第一密钥对发送至信息发送节
点N S 。而是参考Elgamal加密算法,预先确定一个素数p以及该素数p的原根g。然后,信息接
收节点N 1 ~N k 根据各自的预存密钥对生成相应的第一密钥对,并将第
一密钥对发送至信息发送节点N s ,其中1≤u≤k。例如,信息接收节点N 1 根
据预存密钥对(x (1,1) , y (1,1) ),生成第一密钥对,并将其发送至信息
发送节点N s ;信息接收节点N 2 根据预存密钥对(x (2,1) , y (2,1) ),生成第一密钥对,并将其发送至信息发送节点N s ;......;以及,信息接收节点N k 根据预
存密钥对(x (k,1) , y (k,1) ),生成第一密钥对,并将其发送至信息
发送节点N s 。从而,信息发送节点N s 从k个信息接收节点N 1 ~N k 接收k个第一密钥对,其中1≤u≤k。
然后,信息发送节点N s 随机生成与k个第一密钥对不同的j个
第三密钥对,其中1≤w≤j。具体地,j个第三密钥对中
的每一个密钥对,均与第一密钥对不同,从而保证有足够数量的不同密钥
对来计算门限函数G(x)的参数。
然后,信息发送节点N s 根据共享密钥S生成相应的共享密钥对(0, g S ),并且将j个
第三密钥对、k个第一密钥对和共享密钥对(0, g S )
分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数a 0 ~a m 。
然后,信息发送节点N s 根据Elgamal加密算法,将共享密钥S设置为私钥,并且确定公钥h=g S mod p。然后,信息发送节点N s 设定一个随机数d,根据以下公式得到与共享信息M对应的密文C 1 和密文C 2 :
C 1 = g d mod p (2)
然后,在对共享信息M进行加密后,信息发送节点N s 生成m个随机数x (v,2) ,并将m个
随机数x (v,2) 分别代入门限函数G(x),确定相应的的门限函数值,从而根据(x (v,2) ,)生成m个第二密钥对(x (v,2),z (v,2)),其中,并且1≤v≤m。
然后,信息发送节点N s 将与共享信息对应的密文C 1 和密文C 2 以及m个第二密钥对(x (v,2),z (v,2))发送至信息接收节点N 1 ~N k 。
从而根据本公开的技术方案,由于信息接收节点N 1 ~N k 将作为
第一密钥对,而不是将预存密钥对作为第一密钥对发送至信息发送节点N S ,因此即便是有
人在这个过程中拦截第一密钥对,也不能知晓各个信息接收节点N 1 ~N k 的预存密钥对。从而
有效地防止预存密钥对的泄露。
本公开的技术方案一方面利用Shamir门限算法的原理,由于门限函数G(x)包括m+1个参数a 0 ~a m ,因此即便有人拦截了m个第二密钥对,由于仍然缺少一个密钥对来,因此无法利用m个第二密钥对对密文C 1 和密文C 2 进行解密。此外,本公开的技术方案另一方面还借鉴了Elegamal加密算法生成第一密钥对以及密文C 1 和C 2 ,因此可以有效避免预存密钥对的泄露。关于密文密文C 1 和C 2 的解密,将在后文中详细说明。
此外,根据本实施例的第二个方面,提供了一种用于区块链系统的解密方法,该方法用于信息接收节点N 1 ~N k 中的任一信息接收节点,其中图4示出了该方法的流程示意图。参考图4所示,该方法包括:
S402:根据所布署的预存密钥对确定相应的第一密钥对,并将第一密钥对发送至信息发送节点N S ;
S406:根据m个第二密钥对对密文进行解密,得到共享信息M。
具体地,参考本实施例第一个方面所述的,当信息发送节点N s 向有权限接收共享信息M的k个信息接收节点发送共享信息M时,信息接收节点根据所布署的预存密钥对(x (i,1) , y (i,1) )生成第一密钥对,并将第一密钥对发送至信息发送节点N s (S402)。
然后,信息接收节点根据m个第二密钥对对所述密文进行解密,得到共享信息M(S406)。
从而,信息接收节点N 1 ~N k 在接收到密文和第二密钥对后,可以结合预存密钥对(x (i,1) , y (i,1) )以及该m个第二密钥对恢复共享密钥S。例如,信息接收节点N 1 结合预存密钥对(x (1,1) , y (1,1) )以及m个第二密钥对恢复共享密钥S,信息接收节点N 2 结合预存密钥对(x (2,1) , y (2,1) )以及m个第二密钥对恢复共享密钥S,......,以及信息接收节点N k 结合预存密钥对(x (k,1) , y (k,1) )以及m个第二密钥对恢复共享密钥S。从而,信息接收节点N 1 ~N k 可以利用共享密钥S对密文进行解密,从而得到共享信息M。
可选地,根据所布署的预存密钥对确定相应的第一密钥对,并将第一密钥对发送至信息发送节点N S 的操作包括:将所布署的预存密钥对(x (u,1) , y (u,1) )作为第一密钥对(x (u,1) , y (u,1) ),并发送至信息发送节点N S ,其中1≤u≤k。并且其中,从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对的操作,包括:从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m,其中m个第二密钥对(x (v,2) ,y (v,2) )是利用与门限多项式f(x)相同的门限函数G(x)生成的。并且其中,根据m个第二密钥对密文进行解密,得到共享信息M的操作,包括:将所布署的预存密钥对(x (u,1) , y (u,1) )与m个第二密钥对(x (v,2) , y (v,2) )代入门限函数G(x),确定门限函数G(x)的参数a 0 ~a m ;将x=0代入门限函数G(x),确定与共享信息M对应的共享密钥S;以及利用共享密钥S对密文进行解密,得到共享信息M。
具体地,在不需要隐藏预存密钥对的情况下,信息接收节点直接将所布署的预存密钥对(x (u,1) , y (u,1) )确定为第一密钥对(x (u,1) , y (u,1) ),并将第一密钥对(x (u,1) , y (u,1) )发送至信息发送节点N S ,其中1≤u≤k。
然后,信息接收节点从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m。并且,参考本实施例第一个方面所述的,其中m个第二密钥对(x (v,2) , y (v,2) )是利用与门限多项式f(x)相同的门限函数G(x)生成的。
然后,信息接收节点将所布署的预存密钥对(x (u,1) , y (u,1) )与m个第二密钥对
(x (v,2) , y (v,2) )代入门限函数G(x),确定门限函数G(x)的参数a 0 ~a m 。由于共有m+1个参数a 0 ~a m ,而信息接收节点自身所
布署的预存密钥对(x (u,1) , y (u,1) )与m个第二密钥对(x (v,2) , y (v,2) )刚好构成m+1对密钥对。
因此通过将预存密钥对(x (u,1) , y (u,1) )与m个第二密钥对(x (v,2) , y (v,2) )代入到门限函数G
(x)中,可以计算得到m+1个参数a 0 ~a m ,从而确定门限函数G(x)。
然后,信息接收节点将x=0代入门限函数G(x),即可确定与共享信息M对应的共享密钥S。然后信息接收节点可以利用共享密钥S对密文进行解密,得到共享信息M。
可选地,根据所布署的预存密钥对确定相应的第一密钥对,并将第一密钥对发送
至信息发送节点N S 的操作包括:生成与所布署的预存密钥对(x (u,1) , y (u,1) )对应的第一密钥
对,其中1≤u≤k,并且g为一个素数p的原根;以及将生成的第一密钥对发送至信息发送节点N S 。并且其中,从信息发送节点N s 接收与共享信息M
对应的密文以及m个第二密钥对的操作,包括:从信息发送节点N s 接收与共享信息M对应的
密文C 1 和C 2 以及m个第二密钥对(x (v,2),z (v,2)),1≤v≤m。其中,C 1 = g d mod p;;h=g S mod p为发送节点N S 共享的公钥;以及。并且其中,根据m个第二密钥对密文进行解密,得到共享信息M的
操作,包括:根据所布署的预存密钥对(x (u,1) , y (u,1) )以及密文C 1 生成与所布署的预存密钥
对(x (u,1) , y (u,1) )对应的变形密钥对(x (u,1) , z (u,1) ),其中;根
据变形密钥对(x (u,1) , z (u,1) )以及m个第二密钥对(x (v,2),z (v,2)),构建与门限函数G(x)对应
的变形门限函数G’(x) = g df(x) mod p;将x=0代入变形门限函数G’(x),得到r = g df(0) mod p;以及根据密文C 2 ,确定共享信息M:M=r -1 *C 2 mod p。
具体地,参考本实施例第一个方面所述,在需要隐藏预存密钥对不泄露的情况下,
信息接收节点生成与所布署的预存密钥对(x (u,1) , y (u,1) )对应的第一密钥对,
其中1≤u≤k,并且g为一个素数p的原根。
然后信息接收节点从信息发送节点N s 接收与共享信息M对应的密文C 1 和C 2 以及m个第二密钥对(x (v,2),z (v,2)),1≤v≤m。其中
C 1 = g d mod p;
h=g S mod p为发送节点N S 共享的公钥;以及
然后,信息接收节点通过以下操作进行解密,得到共享信息M:
首先,信息接收节点根据所布署的预存密钥对(x (u,1) , y (u,1) )以及密文C 1 生成与所
布署的预存密钥对(x (u,1) , y (u,1) )对应的变形密钥对(x (u,1) , z (u,1) ),其中;
然后,信息接收节点根据变形密钥对(x (u,1) , z (u,1) )以及m个第二密钥对(x (v,2),z (v,2)),构建变形门限函数G’(x) = g df(x) mod p;
然后,信息接收节点将x=0代入门限函数G(x),得到r = g df(0) mod p,并且根据密文C 2 ,确定共享信息M:M=r -1 *C 2 mod p。
从而通过本公开的技术方案,可以利用Elegamal加密算法,对信息接收节点的预存密钥对进行保护,防止预存密钥对的泄露。
此外,图5A和图5B示出了根据本公开实施例的方法的详细流程图。参考图5A和图5B所示:
首先,区块链系统的区块链节点N 1 ~N n 均布署预存密钥对(x (i,1) , y (i,1) )(S502)。
在进行交易的过程中,当信息发送节点N S 向信息接收节点N 1~N k 发送共享信息M时,信息接收节点N 1~N k 判断是否防止预存密钥对泄露(S504)。然后,信息接收节点N 1~N k 根据不同的判定结果确定不同形式的第一密钥对(S506A、S506B)。
然后,信息接收节点N 1~N k 将第一密钥对发送至信息发送节点N S (S508),从而信息发送节点N S 接收第一密钥对(S510)。
然后,信息发送节点N S 判定是否防止预存密钥对泄露(S512),并根据不同的判定结果构建基于m阶门限多项式的不同形式的门限函数G(x)(S514A、S514B)。
然后,信息发送节点N S 判定是否隐藏信息接收节点的数量(S516),并根据不同的结果确定不同的m值(即门限多项式的阶数)(S518、S520),并确定门限函数G(x)的参数(S522、S524)。
然后,信息发送节点N S 对共享信息M进行加密(S526)。
然后,信息发送节点N S 对根据是否隐藏信息接收节点N 1~N k 的预存密钥对(S528),构建不同形式的第二密钥对(S530A、S530B)。
然后,信息发送节点N S 将密文以及第二密钥对发送至信息接收节点N 1~N k (S532),并且信息接收节点N 1~N k 接收密文以及第二密钥对(S534)。
然后,信息接收节点N 1~N k 将接收利用各自布署的预存密钥对以及接收的第二密钥对恢复共享密钥S,并利用共享密钥S对密文进行解密得到共享信息M(S534)。其中参考本实施例第二个方面所述,针对是否隐藏预存密钥对两种不同的情况,分别用不同的方法进行解密。
此外,参考图1所示,根据本实施例的第三个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
根据本公开的技术方案,在区块链系统的交易过程中,发送共享信息的信息发送节点,从有权限接收共享信息的信息接收节点接收根据信息接收节点的预存密钥对生成的第一密钥对,并且利用第一密钥对和共享密钥构建m阶门限多项式,然后利用基于门限多项式的门限函数生成m个第二密钥对。并将第二密钥对与密文一起发送至信息接收节点。由于第二密钥对是根据门限函数生成的,因此只有有权限的信息接收节点可以将自身保存的预存密钥对与第二密钥对结合从而恢复对密文进行解密的共享密钥,并利用共享密钥解密密文得到共享信息。从而通过这种方式,可以在链上以传输子密钥的方式传输共享密钥,从而能够更加透明地共享私密数据。并且生成的子密钥必须与信息接收节点的预存密钥对相结合才能够恢复共享密钥,因此即便是在传输过程中,作为子密钥的第二密钥对被拦截,拦截方在没有预存密钥对的情况下也无法恢复共享密钥,从而能够有效防止共享密钥的泄露。此外,根据本公开的技术方案,不必再限于利用公私钥的加密算法对共享信息进行加密,因此可以有效地实现上数据信息的加密以及透明共享。从而解决了现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图6示出了根据本实施例的第一个方面所述的用于区块链系统的加密装置600,其
中区块链系统包括n个区块链节点N 1 ~N n ,其中n个区块链节点N 1 ~N n 分别部署有各自的预存
密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,装置用于信息发送节点N s ,并且信息发送节
点N s 为n个区块链节点N 1 ~N n 中的区块链节点,该装置600与根据实施例1的第一个方面的方
法相对应。参考图6所示,该装置600包括:密钥对接收模块610,用于从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,
其中信息发送节点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k
为自然数,并且k≥1,n>k;门限函数构建模块620,用于根据与共享信息M对应的共享密钥S
以及所接收的第一密钥对,构建基于m阶门限多项式的门
限函数G(x),其中门限函数G(x)用于生成与共享密钥S相关的子密钥,并且n>m≥k;加密模
块630,用于对共享信息M进行加密,生成与共享信息M对应的密文;密钥生成模块640,用于
利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对;以及发送模块650,用于
将密文以及第二密钥对发送至信息接收节点N 1 ~N k 。
可选地,门限函数构建模块620,包括:第一构建子模块,用于构建门限多项式,其中m=k;第二构建子模块,用于基于门限多项式f(x)构建门限函数G(x);以及第一确定子模块,用于根据k个第一密钥对以及共享密钥S确
定门限函数G(x)的参数。
可选地,密钥对接收模块610,包括:第一接收模块,用于从k个信息接收节点N 1 ~N k 接收相应的预存密钥对(x (u,1) , y (u,1) ),作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中第二构建子模块,包括将门限多项式f(x)作为门限函数G(x),并且其中第一确定模块,包括:根据共享密钥S生成相应的共享密钥对(0, S);以及将k个第一密钥对(x (u,1) ,y (u,1) )以及共享密钥对(0, S)分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数,并且其中密钥生成模块640,包括:第一生成子模块,用于生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定分别与m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
可选地,密钥对接收模块610,包括:第一接收子模块,从k个信息接收节点N 1 ~N k 接
收与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中1≤u≤k,并且g为一个素数p的原根,并且其中第二构建子模块,包括构
建门限函数G(x)=g f(x) ,并且其中第一确定模块,包括:根据共享密钥S生成相应的共享密钥
对(0, g S );以及将k个第一密钥对和共享密钥对(0, g S )分别代入到门限
函数G(x)中,从而确定门限函数G(x)的参数,并且其中加密模块630,包括:将共享密钥S设
置为私钥,并且确定公钥h=g S mod p;以及设定一个随机数d,根据以下公式得到与共享信
息M对应的密文C 1 和密文C 2 :C 1 = g d mod p,,并且
其中密钥生成模块640,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),生成相应的门限函数值,其中,1≤v≤m;以及根据m个随机数x (v,2) 以及相应的门限函数值,生成m个第二密钥对(x (v,2),z (v,2)),其中。
可选地,门限函数构建模块620,包括:第二生成子模块,用于生成随机数j;第二构
建子模块,用于构建门限多项式,其中m=j+k;
第三构建子模块,用于基于门限多项式f(x)构建门限函数G(x);第三生成子模块,用于随机
生成j个第三密钥对,其中j个第三密钥对与k个第一密钥对不同;第二确定子模块,用于根
据共享密钥S、j个第三密钥对以及k个第一密钥对确定门限函数G(x)的参数。
可选地,密钥对接收模块610,包括:第二接收子模块,用于从k个信息接收节点N 1 ~N k 接收相应的预存密钥对(x (u,1) , y (u,1) ),作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中第二构建子模块,用于包括将门限多项式f(x)作为门限函数G(x),并且其中第三生成子模块,包括:随机生成与k个第一密钥对(x (u,1) , y (u,1) )不同的j个第三密钥对(x (w,3) , y (w,3) ),其中1≤w≤j,并且其中第二确定子模块,包括:根据共享密钥S生成相应的共享密钥对(0, S);将共享密钥对(0, S)、j个第三密钥对(x (w,3) , y (w,3) )以及k个第一密钥对(x (u,1) , y (u,1) )分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数,并且其中密钥生成模块640,包括:第四生成子模块,用于生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定分别与m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
可选地,密钥对接收模块610,包括:第三接收子模块,用于从k个信息接收节点N 1 ~N k 接收与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中1≤u≤k,并且g为一个素数p的原根,并且其中第二构建子模块,
包括构建门限函数G(x)=g f(x) ,并且其中
随机生成j个第三密钥对的操作,包括:随机生成与k个第一密钥对
不同的j个第三密钥对,其中1≤w≤j,并且其中第三生成子模块,包括:根
据共享密钥S生成相应的共享密钥对(0, g S );将共享密钥对(0, g S )、j个第三密钥对以及k个第一密钥对分别代入到门限函数G(x)中,从
而确定门限函数G(x)的参数,并且其中加密模块630,包括:将共享密钥S设置为私钥,并且
确定公钥h=g S mod p;以及设定一个随机数d,根据以下公式得到与共享信息M对应的密文C 1
和密文C 2 :C 1 = g d mod p,,并且其中密钥生成模块
640,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),生成相应的
门限函数值,其中,1≤v≤m;以及根据m个随机数x (v,2) 以及相
应的门限函数值,生成m个第二密钥对(x (v,2),z (v,2)),其中。
此外,图7示出了根据本实施例的第二个方面的用于区块链系统的解密装置700,
其中区块链系统包括n个区块链节点N 1 ~N n ,并且n个区块链节点N 1 ~N n 分别布署有各自的预
存密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,装置用于从信息发送节点N S 接收
共享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中信息发送节点N s 和信息接收
节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n>m≥k,该装置700与根据实施例1的第二个方面的方法相对应。参考图7所示,该装置700
包括:密钥发送模块710,用于根据所布署的预存密钥对确定相应的第一密钥对,并将第一
密钥对发送至信息发送节点N S ;接收模块720,用于从信息发送节点N s 接收与共享信息M对应
的密文以及m个第二密钥对,其中m个第二密钥对是利用基于m阶门限多项式的门限函数G(x)生成的;以及解密模块
730,用于根据m个第二密钥对对密文进行解密,得到共享信息M。
可选地,密钥发送模块710,包括:第一发送子模块,用于将所布署的预存密钥对(x (u,1) , y (u,1) )作为第一密钥对(x (u,1) , y (u,1) ),并发送至信息发送节点N S ,其中1≤u≤k,并且其中接收模块720,包括:第一接收子模块,用于从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m,其中m个第二密钥对(x (v,2) , y (v,2) )是利用与门限多项式f(x)相同的门限函数G(x)生成的,并且其中解密模块730,包括:第一确定子模块,用于将所布署的预存密钥对(x (u,1) , y (u,1) )与m个第二密钥对(x (v,2) , y (v,2) )代入门限函数G(x),确定门限函数G(x)的参数a 0 ~a m ;第二确定子模块,用于将x=0代入门限函数G(x),确定与共享信息M对应的共享密钥S;以及解密子模块,用于利用共享密钥S对密文进行解密,得到共享信息M。
可选地,密钥发送模块710,包括:第一生成子模块,用于生成与所布署的预存密钥
对(x (u,1) , y (u,1) )对应的第一密钥对,其中1≤u≤k,并且g为一个素数p
的原根;以及第二发送子模块,用于将生成的第一密钥对发送至信息发
送节点N S ,并且其中接收模块720,包括:第二接收子模块,用于从信息发送节点N s 接收与共
享信息M对应的密文C 1 和C 2 以及m个第二密钥对(x (v,2),z (v,2)),1≤v≤m,其中C 1 = g d mod p;;h=g S mod p为发送节点N S 共享的公钥;以及,
并且其中解密模块730,包括:第二生成子模块,用于根据所布署的预存密钥对(x (u,1) , y (u,1) )以及密文C 1 生成与所布署的预存密钥对(x (u,1) , y (u,1) )对应的变形密钥对(x (u,1) , z (u,1) ),其中;构建子模块,用于根据变形密钥对(x (u,1) , z (u,1) )以及m个第二密钥对(x (v,2),z (v,2)),构建与门限函数G(x)对应的变形门限函数G’(x) = g df(x) mod p;代入子模块,用于
将x=0代入变形门限函数G’(x),得到r = g df(0) mod p;以及确定子模块,用于根据密文C 2 ,
确定共享信息M:M=r -1 *C 2 mod p。
从而根据本实施例,在区块链系统的交易过程中,发送共享信息的信息发送节点,从有权限接收共享信息的信息接收节点接收根据信息接收节点的预存密钥对生成的第一密钥对,并且利用第一密钥对和共享密钥构建m阶门限多项式,然后利用基于门限多项式的门限函数生成m个第二密钥对。并将第二密钥对与密文一起发送至信息接收节点。由于第二密钥对是根据门限函数生成的,因此只有有权限的信息接收节点可以将自身保存的预存密钥对与第二密钥对结合从而恢复对密文进行解密的共享密钥,并利用共享密钥解密密文得到共享信息。从而通过这种方式,可以在链上以传输子密钥的方式传输共享密钥,从而能够更加透明地共享私密数据。并且生成的子密钥必须与信息接收节点的预存密钥对相结合才能够恢复共享密钥,因此即便是在传输过程中,作为子密钥的第二密钥对被拦截,拦截方在没有预存密钥对的情况下也无法恢复共享密钥,从而能够有效防止共享密钥的泄露。此外,根据本公开的技术方案,不必再限于利用公私钥的加密算法对共享信息进行加密,因此可以有效地实现上数据信息的加密以及透明共享。从而解决了现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
实施例3
图8示出了根据本实施例的第一个方面所述的用于区块链系统的加密装置800,其
中区块链系统包括n个区块链节点N 1 ~N n ,其中n个区块链节点N 1 ~N n 分别部署有各自的预存
密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,装置用于信息发送节点N s ,并且信息发送节
点N s 为n个区块链节点N 1 ~N n 中的区块链节点,该装置800与根据实施例1的第一个方面的方
法相对应。参考图8所示,该装置800包括:第一处理器810;以及第一存储器820,与第一处理
器810连接,用于为第一处理器810提供处理以下处理步骤的指令:从k个信息接收节点N 1 ~N k
接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其
中信息发送节点N s 和信息接收节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为
自然数,并且k≥1,n>k;根据与共享信息M对应的共享密钥S以及所接收的第一密钥对,构
建基于m阶门限多项式的门限函数G(x),
其中门限函数G(x)用于生成与共享密钥S相关的子密钥,并且n>m≥k;对共享信息M进行加
密,生成与共享信息M对应的密文;利用门限函数G(x)生成作为共享密钥S的子密钥的m个第
二密钥对;以及将密文以及第二密钥对发送至信息接收节点N 1 ~N k 。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收相应的预存密钥对(x (u,1) , y (u,1) ),作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中基于门限多项式f(x)构建门限函数G(x)的操作,包括将门限多项式f(x)作为门限函数G(x),并且其中根据k个第一密钥对以及共享密钥S确定门限函数G(x)的参数的操作,包括:根据共享密钥S生成相应的共享密钥对(0, S);以及将k个第一密钥对(x (u,1) , y (u,1) )以及共享密钥对(0, S)分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数,并且其中利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对的操作,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定分别与m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥
对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收与k个
信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中1
≤u≤k,并且g为一个素数p的原根,并且其中基于门限多项式f(x)构建门限函数G(x)的操
作,包括构建门限函数G(x)=g f(x) ,并且其中根据k个第一密钥对以及共享密钥S确定门限函
数G(x)的参数的操作,包括:根据共享密钥S生成相应的共享密钥对(0, g S );以及将k个第
一密钥对和共享密钥对(0, g S )分别代入到门限函数G(x)中,从而确定门限
函数G(x)的参数,并且其中对共享信息M进行加密,生成与共享信息M对应的密文的操作,包
括:将共享密钥S设置为私钥,并且确定公钥h=g S mod p;以及设定一个随机数d,根据以下
公式得到与共享信息M对应的密文C 1 和密文C 2 :C 1 = g d mod p,,
并且其中利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对的操作,包括:
生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),生成相应的门限函数值,其中,1≤v≤m;以及根据m个随机数x (v,2) 以及相应的门限
函数值,生成m个第二密钥对(x (v,2),z (v,2)),其中。
可选地,构建门限函数G(x)的操作,包括:生成随机数j;构建门限多项式,其中m=j+k;基于门限多项式f(x)构建门
限函数G(x);随机生成j个第三密钥对,其中j个第三密钥对与k个第一密钥对不同;根据共
享密钥S、j个第三密钥对以及k个第一密钥对确定门限函数G(x)的参数。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收相应的预存密钥对(x (u,1) , y (u,1) ),作为k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中基于门限多项式f(x)构建门限函数G(x)的操作,包括将门限多项式f(x)作为门限函数G(x),并且其中随机生成j个第三密钥对的操作,包括:随机生成与k个第一密钥对(x (u,1) , y (u,1) )不同的j个第三密钥对(x (w,3) , y (w,3) ),其中1≤w≤j,并且其中根据共享密钥S、j个第三密钥对以及k个第一密钥对确定门限函数G(x)的参数的操作,包括:根据共享密钥S生成相应的共享密钥对(0, S);将共享密钥对(0, S)、j个第三密钥对(x (w,3) , y (w,3) )以及k个第一密钥对(x (u,1) , y (u,1) )分别代入到门限函数G(x)中,从而确定门限函数G(x)的参数,并且其中利用门限函数G(x)生成作为共享密钥S的子密钥的m个第二密钥对的操作,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分别代入门限函数G(x),确定分别与m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成m个第二密钥对(x (v,2) , y (v,2) ),其中1≤v≤m。
可选地,从k个信息接收节点N 1 ~N k 接收分别与k个信息接收节点N 1 ~N k 的预存密钥
对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从k个信息接收节点N 1 ~N k 接收与k个
信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其
中1≤u≤k,并且g为一个素数p的原根,并且其中基于门限多项式f(x)构建门限函数G(x)的
操作,包括构建门限函数G(x)=g f(x) ,并且其中随机生成j个第三密钥对的操作,包括:随机
生成与k个第一密钥对不同的j个第三密钥对,其中1
≤w≤j,并且其中根据共享密钥S、j个第三密钥对以及k个第一密钥对确定门限函数G(x)的
参数,包括:根据共享密钥S生成相应的共享密钥对(0, g S );将共享密钥对(0, g S )、j个第三
密钥对以及k个第一密钥对分别代入到门限函数G(x)
中,从而确定门限函数G(x)的参数,并且其中对共享信息M进行加密,生成与共享信息M对应
的密文的操作,包括:将共享密钥S设置为私钥,并且确定公钥h=g S mod p;以及设定一个随
机数d,根据以下公式得到与共享信息M对应的密文C 1 和密文C 2 :C 1 = g d mod p,,并且其中利用门限函数G(x)生成作为共享密
钥S的子密钥的m个第二密钥对的操作,包括:生成m个随机数x (v,2) ,并将m个随机数x (v,2) 分
别代入门限函数G(x),生成相应的门限函数值,其中,1≤v≤m;以及根据m个随机数x (v,2) 以及相应的门限函数值,生成m个第二密钥对(x (v,2),z (v,2)),其中。
此外,图9示出了根据本实施例的第二个方面的用于区块链系统的解密装置900,
其中区块链系统包括n个区块链节点N 1 ~N n ,并且n个区块链节点N 1 ~N n 分别布署有各自的预
存密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,装置用于从信息发送节点N S 接收
共享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中信息发送节点N s 和信息接收
节点N 1 ~N k 均为n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n>m≥k,该装置900与根据实施例1的第二个方面的方法相对应。参考图9所示,该装置900
包括:第二处理器910;以及第二存储器920,与第二处理器910连接,用于为第二处理器910
提供处理以下处理步骤的指令:根据所布署的预存密钥对确定相应的第一密钥对,并将第
一密钥对发送至信息发送节点N S ;从信息发送节点N s 接收与共享信息M对应的密文以及m个
第二密钥对,其中m个第二密钥对是利用基于m阶门限多项式
的门限函数G(x)生成的;以及根据m个第二密钥对对密文进行解密,得到共享信息M。
可选地,根据所布署的预存密钥对确定相应的第一密钥对,并将第一密钥对发送至信息发送节点N S 的操作包括:将所布署的预存密钥对(x (u,1) , y (u,1) )作为第一密钥对(x (u,1) , y (u,1) ),并发送至信息发送节点N S ,其中1≤u≤k,并且其中从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对的操作,包括:从信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m,其中m个第二密钥对(x (v,2) ,y (v,2) )是利用与门限多项式f(x)相同的门限函数G(x)生成的,并且其中根据m个第二密钥对密文进行解密,得到共享信息M的操作,包括:将所布署的预存密钥对(x (u,1) , y (u,1) )与m个第二密钥对(x (v,2) , y (v,2) )代入门限函数G(x),确定门限函数G(x)的参数a 0 ~a m ;将x=0代入门限函数G(x),确定与共享信息M对应的共享密钥S;以及利用共享密钥S对密文进行解密,得到共享信息M。
可选地,根据所布署的预存密钥对确定相应的第一密钥对,并将第一密钥对发送
至信息发送节点N S 的操作包括:生成与所布署的预存密钥对(x (u,1) , y (u,1) )对应的第一密钥
对,其中1≤u≤k,并且g为一个素数p的原根;以及将生成的第一密钥对发送至信息发送节点N S ,并且其中从信息发送节点N s 接收与共享信息M对应的密
文以及m个第二密钥对的操作,包括:从信息发送节点N s 接收与共享信息M对应的密文C 1 和C 2
以及m个第二密钥对(x (v,2),z (v,2)),1≤v≤m,其中C 1 = g d mod p;;h
=g S mod p为发送节点N S 共享的公钥;以及,并且其中根据m个第二密钥对
密文进行解密,得到共享信息M的操作,包括:根据所布署的预存密钥对(x (u,1) , y (u,1) )以及
密文C 1 生成与所布署的预存密钥对(x (u,1) , y (u,1) )对应的变形密钥对(x (u,1) , z (u,1) ),其中;根据变形密钥对(x (u,1) , z (u,1) )以及m个第
二密钥对(x (v,2),z (v,2)),构建与门限函数G(x)对应的变形门限函数G’(x) = g df(x) mod p;
将x=0代入变形门限函数G’(x),得到r = g df(0) mod p;以及根据密文C 2 ,确定共享信息M:M= r -1 *C 2 mod p。
从而根据本实施例,在区块链系统的交易过程中,发送共享信息的信息发送节点,从有权限接收共享信息的信息接收节点接收根据信息接收节点的预存密钥对生成的第一密钥对,并且利用第一密钥对和共享密钥构建m阶门限多项式,然后利用基于门限多项式的门限函数生成m个第二密钥对。并将第二密钥对与密文一起发送至信息接收节点。由于第二密钥对是根据门限函数生成的,因此只有有权限的信息接收节点可以将自身保存的预存密钥对与第二密钥对结合从而恢复对密文进行解密的共享密钥,并利用共享密钥解密密文得到共享信息。从而通过这种方式,可以在链上以传输子密钥的方式传输共享密钥,从而能够更加透明地共享私密数据。并且生成的子密钥必须与信息接收节点的预存密钥对相结合才能够恢复共享密钥,因此即便是在传输过程中,作为子密钥的第二密钥对被拦截,拦截方在没有预存密钥对的情况下也无法恢复共享密钥,从而能够有效防止共享密钥的泄露。此外,根据本公开的技术方案,不必再限于利用公私钥的加密算法对共享信息进行加密,因此可以有效地实现上数据信息的加密以及透明共享。从而解决了现有技术中存在的无法在链上针对长数据进行加密密钥的传输,从而导致私密的长数据无法透明共享的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种用于区块链系统的加密方法,其中所述区块链系统包括n个区块链节点N 1 ~N n ,其中所述n个区块链节点N 1 ~N n 分别部署有各自的预存密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,所述方法用于信息发送节点N s ,并且所述信息发送节点N s 为所述n个区块链节点N 1 ~N n 中的区块链节点,其特征在于,方法包括:
从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) ,y (i,1) )对应的k个第一密钥对,其中信息发送节点N s 和信息接收节点N 1 ~N k 均为所述n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k;
对所述共享信息M进行加密,生成与所述共享信息M对应的密文;
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对;以及
将所述密文以及所述第二密钥对发送至所述信息接收节点N 1 ~N k ,其中
构建所述门限函数G(x)的操作,包括:
基于所述门限多项式f(x)构建所述门限函数G(x);以及
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数,并且
从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) ,y (i,1) )对应的k个第一密钥对的操作,包括:从所述k个信息接收节点N 1 ~N k 接收相应的预存密钥对,作为所述k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括将所述门限多项式f(x)作为所述门限函数G(x),并且其中
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数a 0 ~a m 的操作,包括:
根据共享密钥S生成相应的共享密钥对(0, S);以及
将所述k个第一密钥对(x (u,1) , y (u,1) )以及所述共享密钥对(0, S)分别代入到所述门限函数G(x)中,从而确定所述门限函数G(x)的参数,并且其中
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操作,包括:
生成m个随机数x (v,2) ,并将所述m个随机数x (v,2) 分别代入所述门限函数G(x),确定分别与所述m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成所述m个第二密钥对(x (v,2) ,y (v,2) ),其中1≤v≤m。
2.根据权利要求1所述的方法,其特征在于,从k个信息接收节点N 1 ~N k 接收分别与所述k
个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从
所述k个信息接收节点N 1 ~N k 接收与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )
对应的k个第一密钥对,其中1≤u≤k,并且g为一个素数p的原根,并且
其中
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括构建所述门限函数G(x)=g f(x) ,并且其中
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数的操作,包括:
根据所述共享密钥S生成相应的共享密钥对(0, g S );以及
对所述共享信息M进行加密,生成与所述共享信息M对应的密文的操作,包括:
将所述共享密钥S设置为私钥,并且确定公钥h=g S mod p;以及
设定一个随机数d,根据以下公式得到与所述共享信息M对应的密文C 1 和密文C 2 :
C 1 = g d mod p,
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操作,包括:
4.根据权利要求3所述的方法,其特征在于,从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从所述k个信息接收节点N 1 ~N k 接收相应的预存密钥对,作为所述k个第一密钥对(x (u,1) ,y (u,1) ),其中1≤u≤k,并且其中
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括将所述门限多项式f(x)作为所述门限函数G(x),并且其中
随机生成j个第三密钥对的操作,包括:随机生成与k个第一密钥对(x (u,1) , y (u,1) )不同的j个第三密钥对(x (w,3) , y (w,3) ),其中1≤w≤j,并且其中
根据所述共享密钥S、所述j个第三密钥对以及所述k个第一密钥对确定所述门限函数G(x)的参数的操作,包括:
根据共享密钥S生成相应的共享密钥对(0, S);
将所述共享密钥对(0, S)、所述j个第三密钥对(x (w,3) , y (w,3) )以及所述k个第一密钥对(x (u,1) , y (u,1) )分别代入到所述门限函数G(x)中,从而确定所述门限函数G(x)的参数,并且其中
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操作,包括:
生成m个随机数x (v,2) ,并将所述m个随机数x (v,2) 分别代入所述门限函数G(x),确定分别与所述m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成所述m个第二密钥对(x (v,2) ,y (v,2) ),其中1≤v≤m。
5.根据权利要求3所述的方法,其特征在于,从k个信息接收节点N 1 ~N k 接收分别与所述k
个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对的操作,包括:从
所述k个信息接收节点N 1 ~N k 接收与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )
对应的k个第一密钥对,其中1≤u≤k,并且g为一个素数p的原根,并且
其中
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括构建所述门限函数G(x)=g f(x) ,并且其中
根据所述共享密钥S、所述j个第三密钥对以及所述k个第一密钥对确定所述门限函数G(x)的参数,包括:
根据所述共享密钥S生成相应的共享密钥对(0, g S );
对所述共享信息M进行加密,生成与所述共享信息M对应的密文的操作,包括:
将所述共享密钥S设置为私钥,并且确定公钥h=g S mod p;以及
设定一个随机数d,根据以下公式得到与所述共享信息M对应的密文C 1 和密文C 2 :
C 1 = g d mod p,
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操作,包括:
6.一种用于区块链系统的解密方法,其中所述区块链系统包括n个区块链节点N 1 ~N n ,并且所述n个区块链节点N 1 ~N n 分别布署有各自的预存密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,所述方法用于从信息发送节点N S 接收共享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中所述信息发送节点N s 和所述信息接收节点N 1 ~N k 均为所述n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n>m≥k,其特征在于,方法包括:
根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S ;
根据所述m个第二密钥对对所述密文进行解密,得到所述共享信息M,其中
根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S 的操作包括:
将所布署的预存密钥对作为第一密钥对(x (u,1) , y (u,1) ),并发送至信息发送节点N S ,其中1≤u≤k,并且其中
从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对的操作,包括:从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m,其中所述m个第二密钥对(x (v,2) , y (v,2) )是利用与所述门限多项式f(x)相同的门限函数G(x)生成的,并且其中
根据所述m个第二密钥对所述密文进行解密,得到所述共享信息M的操作,包括:
将所布署的预存密钥对与所述m个第二密钥对(x (v,2) , y (v,2) )代入所述门限函数G(x),确定所述门限函数G(x)的参数a 0 ~a m ;
将x=0代入所述门限函数G(x),确定与所述共享信息M对应的共享密钥S;以及
利用所述共享密钥S对所述密文进行解密,得到所述共享信息M。
7.根据权利要求6所述的方法,其特征在于,根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S 的操作包括:
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括构建门限函数G(x)=g f (x) ;以及
从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对的操作,包括:从所述信息发送节点N s 接收与共享信息M对应的密文C 1 和C 2 以及m个第二密钥对(x (v,2),z (v,2)),1≤v≤m,其中
C 1 = g d mod p;
h=g S mod p为发送节点N S 共享的公钥;以及
根据所述m个第二密钥对所述密文进行解密,得到所述共享信息M的操作,包括:
根据所布署的预存密钥对以及所述密文C 1 生成与所布署的预存密钥对对应的变形密钥对(x (u,1) , z (u,1) ),其中
根据所述变形密钥对(x (u,1) , z (u,1) )以及所述m个第二密钥对(x (v,2),z (v,2)),构建与所述门限函数G(x)对应的变形门限函数G’(x) = g df(x) mod p;
将x=0代入所述变形门限函数G’(x),得到r = g df(0) mod p;以及
根据密文所述C 2 ,确定所述共享信息M:M=r -1 *C 2 mod p。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至7中任意一项所述的方法。
9.一种用于区块链系统的加密装置,其中所述区块链系统包括n个区块链节点N 1 ~N n ,其中所述n个区块链节点N 1 ~N n 分别部署有各自的预存密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,所述装置用于信息发送节点N s ,并且所述信息发送节点N s 为所述n个区块链节点N 1 ~N n 中的区块链节点,其特征在于,装置包括:
密钥对接收模块,用于从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) , y (i,1) )对应的k个第一密钥对,其中信息发送节点N s 和信息接收节点N 1 ~N k 均为所述n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k;
加密模块,用于对所述共享信息M进行加密,生成与所述共享信息M对应的密文;
密钥生成模块,用于利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对;以及
发送模块,用于将所述密文以及所述第二密钥对发送至所述信息接收节点N 1 ~N k ,其中
构建所述门限函数G(x)的操作,包括:
基于所述门限多项式f(x)构建所述门限函数G(x);以及
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数,并且
从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) ,y (i,1) )对应的k个第一密钥对的操作,包括:从所述k个信息接收节点N 1 ~N k 接收相应的预存密钥对,作为所述k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括将所述门限多项式f(x)作为所述门限函数G(x),并且其中
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数a 0 ~a m 的操作,包括:
根据共享密钥S生成相应的共享密钥对(0, S);以及
将所述k个第一密钥对(x (u,1) , y (u,1) )以及所述共享密钥对(0, S)分别代入到所述门限函数G(x)中,从而确定所述门限函数G(x)的参数,并且其中
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操作,包括:
生成m个随机数x (v,2) ,并将所述m个随机数x (v,2) 分别代入所述门限函数G(x),确定分别与所述m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成所述m个第二密钥对(x (v,2) ,y (v,2) ),其中1≤v≤m。
10.一种用于区块链系统的解密装置,其中所述区块链系统包括n个区块链节点N 1 ~N n ,并且所述n个区块链节点N 1 ~N n 分别布署有各自的预存密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,所述装置用于从信息发送节点N S 接收共享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中所述信息发送节点N s 和所述信息接收节点N 1 ~N k 均为所述n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n>m≥k,其特征在于,装置包括:
密钥发送模块,用于根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S ;
解密模块,用于根据所述m个第二密钥对对所述密文进行解密,得到所述共享信息M,其中
根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S 的操作包括:
将所布署的预存密钥对作为第一密钥对(x (u,1) , y (u,1) ),并发送至信息发送节点N S ,其中1≤u≤k,并且其中
从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对的操作,包括:从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m,其中所述m个第二密钥对(x (v,2) , y (v,2) )是利用与所述门限多项式f(x)相同的门限函数G(x)生成的,并且其中
根据所述m个第二密钥对所述密文进行解密,得到所述共享信息M的操作,包括:
将所布署的预存密钥对与所述m个第二密钥对(x (v,2) , y (v,2) )代入所述门限函数G(x),确定所述门限函数G(x)的参数a 0 ~a m ;
将x=0代入所述门限函数G(x),确定与所述共享信息M对应的共享密钥S;以及
利用所述共享密钥S对所述密文进行解密,得到所述共享信息M。
11.一种用于区块链系统的加密装置,其中所述区块链系统包括n个区块链节点N 1 ~N n ,其中所述n个区块链节点N 1 ~N n 分别部署有各自的预存密钥对(x (i,1) , y (i,1) ),其中n为自然数且n≥2,所述装置用于信息发送节点N s ,并且所述信息发送节点N s 为所述n个区块链节点N 1 ~N n 中的区块链节点,其特征在于,装置包括:
第一处理器;以及
第一存储器,与所述第一处理器连接,用于为所述第一处理器提供处理以下处理步骤的指令:
从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) ,y (i,1) )对应的k个第一密钥对,其中信息发送节点N s 和信息接收节点N 1 ~N k 均为所述n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k;
对所述共享信息M进行加密,生成与所述共享信息M对应的密文;
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对;以及
将所述密文以及所述第二密钥对发送至所述信息接收节点N 1 ~N k ,其中
构建所述门限函数G(x)的操作,包括:
基于所述门限多项式f(x)构建所述门限函数G(x);以及
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数,并且
从k个信息接收节点N 1 ~N k 接收分别与所述k个信息接收节点N 1 ~N k 的预存密钥对(x (i,1) ,y (i,1) )对应的k个第一密钥对的操作,包括:从所述k个信息接收节点N 1 ~N k 接收相应的预存密钥对,作为所述k个第一密钥对(x (u,1) , y (u,1) ),其中1≤u≤k,并且其中
基于所述门限多项式f(x)构建所述门限函数G(x)的操作,包括将所述门限多项式f(x)作为所述门限函数G(x),并且其中
根据所述k个第一密钥对以及所述共享密钥S确定所述门限函数G(x)的参数a 0 ~a m 的操作,包括:
根据共享密钥S生成相应的共享密钥对(0, S);以及
将所述k个第一密钥对(x (u,1) , y (u,1) )以及所述共享密钥对(0, S)分别代入到所述门限函数G(x)中,从而确定所述门限函数G(x)的参数,并且其中
利用所述门限函数G(x)生成作为所述共享密钥S的子密钥的m个第二密钥对的操作,包括:
生成m个随机数x (v,2) ,并将所述m个随机数x (v,2) 分别代入所述门限函数G(x),确定分别与所述m个随机数x (v,2) 对应的门限函数值y (v,2) ,从而生成所述m个第二密钥对(x (v,2) ,y (v,2) ),其中1≤v≤m。
12.一种用于区块链系统的解密装置,其中所述区块链系统包括n个区块链节点N 1 ~N n ,并且所述n个区块链节点N 1 ~N n 分别布署有各自的预存密钥对(x (i,1) , y (i,1) ),1≤i≤n,其中n为自然数且n≥2,所述装置用于从信息发送节点N S 接收共享信息M的信息接收节点N 1 ~N k 中的任一信息接收节点,其中所述信息发送节点N s 和所述信息接收节点N 1 ~N k 均为所述n个区块链节点N 1 ~N n 中的区块链节点,其中k为自然数,并且k≥1,n>k,以及n>m≥k,其特征在于,装置包括:
第二处理器;以及
第二存储器,与所述第二处理器连接,用于为所述第二处理器提供处理以下处理步骤的指令:
根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S ;
根据所述m个第二密钥对对所述密文进行解密,得到所述共享信息M,其中
根据所布署的预存密钥对确定相应的第一密钥对,并将所述第一密钥对发送至信息发送节点N S 的操作包括:
将所布署的预存密钥对作为第一密钥对(x (u,1) , y (u,1) ),并发送至信息发送节点N S ,其中1≤u≤k,并且其中
从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对的操作,包括:从所述信息发送节点N s 接收与共享信息M对应的密文以及m个第二密钥对(x (v,2) , y (v,2) ),1≤v≤m,其中所述m个第二密钥对(x (v,2) , y (v,2) )是利用与所述门限多项式f(x)相同的门限函数G(x)生成的,并且其中
根据所述m个第二密钥对所述密文进行解密,得到所述共享信息M的操作,包括:
将所布署的预存密钥对与所述m个第二密钥对(x (v,2) , y (v,2) )代入所述门限函数G(x),确定所述门限函数G(x)的参数a 0 ~a m ;
将x=0代入所述门限函数G(x),确定与所述共享信息M对应的共享密钥S;以及
利用所述共享密钥S对所述密文进行解密,得到所述共享信息M。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701414.1A CN114793160B (zh) | 2022-06-21 | 2022-06-21 | 用于区块链系统的加密及解密方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701414.1A CN114793160B (zh) | 2022-06-21 | 2022-06-21 | 用于区块链系统的加密及解密方法、装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114793160A CN114793160A (zh) | 2022-07-26 |
CN114793160B true CN114793160B (zh) | 2022-09-20 |
Family
ID=82463229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210701414.1A Active CN114793160B (zh) | 2022-06-21 | 2022-06-21 | 用于区块链系统的加密及解密方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114793160B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712261A (zh) * | 2018-05-10 | 2018-10-26 | 杭州智块网络科技有限公司 | 一种基于区块链的密钥生成方法、装置及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3862956B1 (en) * | 2016-02-23 | 2024-01-03 | nChain Licensing AG | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
CN108600272B (zh) * | 2018-05-10 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种区块链数据处理方法、装置、处理设备及系统 |
CN109150968B (zh) * | 2018-07-13 | 2021-09-14 | 上海大学 | 一种基于秘密共享的区块链分布式存储方法 |
EP3654578B1 (en) * | 2018-11-16 | 2022-04-06 | SafeTech BV | Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information |
CN111277412B (zh) * | 2020-02-18 | 2023-03-24 | 暨南大学 | 基于区块链密钥分发的数据安全共享系统及方法 |
-
2022
- 2022-06-21 CN CN202210701414.1A patent/CN114793160B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712261A (zh) * | 2018-05-10 | 2018-10-26 | 杭州智块网络科技有限公司 | 一种基于区块链的密钥生成方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114793160A (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108352015B (zh) | 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移 | |
Tseng et al. | A chaotic maps-based key agreement protocol that preserves user anonymity | |
US11210658B2 (en) | Constructing a distributed ledger transaction on a cold hardware wallet | |
CN110096901B (zh) | 电子合同数据加密存储方法及签约客户端 | |
US20210160087A1 (en) | Temporal Key Generation And PKI Gateway | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
CN104270249A (zh) | 一种从无证书环境到基于身份环境的签密方法 | |
EP4150879A1 (en) | Constructing a distributed ledger transaction on a cold hardware wallet | |
CN108696518B (zh) | 区块链上用户通信加密方法、装置、终端设备及存储介质 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
JP2022521525A (ja) | データを検証するための暗号方法 | |
CN104301108A (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
CN109831305B (zh) | 基于非对称密钥池的抗量子计算签密方法和系统 | |
CN109687961B (zh) | 基于对称密钥池路由装置的抗量子计算区块链交易方法和系统 | |
CN105634720A (zh) | 加密安全配置文件 | |
CN113365264B (zh) | 一种区块链无线网络数据传输方法、装置及系统 | |
EP2680528B1 (en) | Method, device and system for proxy transformation | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
CN114793160B (zh) | 用于区块链系统的加密及解密方法、装置以及存储介质 | |
KR101793528B1 (ko) | 무인증서 공개키 암호 시스템 | |
CN109787772B (zh) | 基于对称密钥池的抗量子计算签密方法和系统 | |
CN109784917B (zh) | 基于对称密钥池的抗量子计算区块链保密交易系统和方法 | |
CN113034140A (zh) | 实现智能合约加密的方法、系统、设备及存储介质 | |
Manz | Digital Signature | |
CN110572788A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |