CN110677246A - 一种基于区块链的密钥生成方法及装置 - Google Patents
一种基于区块链的密钥生成方法及装置 Download PDFInfo
- Publication number
- CN110677246A CN110677246A CN201910949286.0A CN201910949286A CN110677246A CN 110677246 A CN110677246 A CN 110677246A CN 201910949286 A CN201910949286 A CN 201910949286A CN 110677246 A CN110677246 A CN 110677246A
- Authority
- CN
- China
- Prior art keywords
- key
- public key
- sender
- private key
- blockchain
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000005336 cracking Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
Abstract
本申请提供一种基于区块链的密钥生成方法及装置,发送方向接收方发送业务数据前,生成第一私有密钥并基于第一私有密钥生成第一公开密钥;基于区块链将第一公开密钥作为区块链交易数据中的金额发送给接收方;接收方生成第二私有密钥并基于第二私有密钥生成第二公开密钥;基于区块链将第二公开密钥作为区块链交易数据中的金额发送给发送方;发送方基于第一私有密钥和第二公开密钥,计算出第一共享密钥;接收方基于第二私有密钥和第一公开密钥,计算出第二共享密钥。利用共享密钥对业务数据加密,且由于仅在需要传输业务数据时才生成共享密钥,缩短了密钥的存储时间,进而降低了密钥被破解的风险,提高了数据的安全性。
Description
技术领域
本申请属于密钥生成技术领域,尤其涉及一种基于区块链的密钥生成方法及装置。
背景技术
在发送方和接收方之间传输业务数据时,为了保证数据的安全性,需要利用密钥对传输的业务数据进行加密。
现有技术中,通常预先生成密钥并存储密钥,并在进行业务数据传输时,再利用预先生成并存储的密钥对业务数据进行加密。
但是,由于预先生成并存储私钥和公钥,导致为破解密钥预留了一定的时间,提高了密钥被破解的风险,降低了数据的安全性。
发明内容
有鉴于此,本申请的目的在于提供一种基于区块链的密钥生成方法及装置,用于解决现有技术中密钥被破解的风险高、数据的安全性低的问题。
技术方案如下:
本申请提供一种基于区块链的密钥生成方法,包括:
在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;
基于区块链,发送方将所述第一公开密钥作为区块链交易中的金额发送给接收方;
接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;
基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方;
发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。
优选地,所述发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥包括:
发送方随机选取素数;
在大于1且小于所述素数的区间内,随机选取数据作为第一私有密钥;
基于公式A=g^a mod p计算得到第一公开密钥;其中,A为第一公开密钥;a为第一私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
优选地,所述基于区块链发送方将所述第一公开密钥作为区块链交易数据中的金额发送给接收方包括:
发送方对所述素数、所述生成元和所述第一公开密钥分别进行补零操作,得到补零后长度为8位的素数、生成元和第一公开密钥;
发送方公开广播账本,从账本中选择一个该发送方未花费的交易输出UTXO,并从所述UTXO中向接收方支付数值分别为8位长度的素数、8位长度的生成元和8位长度的第一公开密钥,单位均为聪的金额。
优选地,所述从所述UTXO中向接收方支付数值分别为8位长度的素数、8位长度的生成元和8位长度的第一公开密钥,单位均为聪的金额之后,还包括:
发送方将向接收方支付的交易广播到区块链分布式系统中,使得完成交易确认后将该交易写入区块并通过区块加入到区块链中。
优选地,所述接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥包括:接收方获取到账本后,在大于1且小于所述素数的区间内,随机选取数据作为第二私有密钥;
基于公式B=g^b mod p计算得到第二公开密钥;其中,B为第二公开密钥;b为第二私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
优选地,所述发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥包括:
基于公式K1=B^a mod p计算第一共享密钥;其中,K1为第一共享密钥,B为第二公开密钥;a为第一私有密钥;p为素数;
所述接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥包括:
基于公式K2=A^b mod p计算第二共享密钥;其中,K2为第二共享密钥,A为第一公开密钥;b为第二私有密钥;p为素数。
优选地,还包括:发送方利用所述第一共享密钥对所述业务数据进行加密。
本申请还提供了一种基于区块链的密钥生成装置,包括:
第一生成单元,用于在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;
第一发送单元,用于基于区块链,发送方将所述第一公开密钥作为区块链交易中的金额发送给接收方;
第二生成单元,用于接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;
第二发送单元,用于基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方;
计算单元,用于发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。
优选地,所述第一生成单元包括:
选取子单元,用于发送方随机选取素数,并在大于1且小于所述素数的区间内,随机选取数据作为第一私有密钥;
计算子单元,用于基于公式A=g^a mod p计算得到第一公开密钥;其中,A为第一公开密钥;a为第一私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
优选地,还包括:加密单元,用于利用计算得到第一共享密钥或第二共享密钥对业务数据进行加密。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
从上述技术方案可知,本申请中在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;基于区块链,发送方将所述第一公开密钥作为区块链交易数据中的金额发送给接收方;接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;基于区块链,接收方将所述第二公开密钥作为区块链交易数据中的金额发送给发送方;发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。使得发送方与接收方之间传输业务数据时,可以利用第一共享密钥或第二共享密钥对业务数据加密,且由于仅在需要在发送方和接收方之间传输业务数据时,才生成第一共享密钥和第二共享密钥,缩短了密钥的存储时间,进而降低了密钥被破解的风险,提高了利用密钥加密数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请公开的一种基于区块链的密钥生成方法的流程图;
图2是本申请公开的另一种基于区块链的密钥生成方法的流程图;
图3是本申请公开的生成对发送方与接收方之间传输的业务数据进行加密的密钥的示意图;
图4是本申请公开的一种基于区块链的密钥生成装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供了一种基于区块链的密钥生成方法,参见图1所示,该方法可以包括以下步骤:
S101、在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥。
在不同的业务场景中,业务数据是不同的。以电力这一业务场景为例,针对新兴的分布式光伏发电模式,除去自用电量部分外,多余电力可以用于申领补贴和就近交易。例如,用户A有多余电力可以与附近的用户B进行多余电力的就近交易,交易数据包括销售价格和销售量,则销售价格和销售量为业务数据,用户A需要将业务数据发送至用户B。
为了保证电力的销售价格和销售量的可信度,需要使用密钥对销售价格和销售量进行加密。
当需要使用密钥对业务数据进行加密的情况下,发送方生成第一私有密钥,并基于第一私有密钥生成第一公开密钥。
S102、基于区块链,发送方将所述第一公开密钥作为区块链交易中的金额发送给接收方。
区块链指的是按照时间顺序将区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
基于区块链实现的交易过程包括支付交易,交易广播,交易写入区块,以及区块加入区块链这几个步骤。其中,交易对象可以为比特币。
本实施例中将发送方和接收方分别作为区块链分布式系统中的两个子节点,将发送方和接收方之间协商密钥的过程作为发送方和接收方之间进行交易的过程,发送方作为支付方,将第一公开密钥作为交易金额支付给接收方。
S103、接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥。
发送方向接收方支付成功后,接收方生成第二私有密钥,并基于第二私有密钥生成第二公开密钥。
S104、基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方。
步骤S102为发送方向接收方进行支付的交易,而步骤S104为接收方向发送方进行支付的交易。
本步骤中接收方作为支付方,将第二公开密钥作为交易金额支付给发送方。
S105、发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。
在计算出第一共享密钥和第二共享密钥后,可以利用第一共享密钥或第二共享密钥对发送方和接收方之间传输的业务数据进行加密。
通过上述技术方案,本实施例中在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;基于区块链,发送方将所述第一公开密钥作为区块链交易数据中的金额发送给接收方;接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;基于区块链,接收方将所述第二公开密钥作为区块链交易数据中的金额发送给发送方;发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。使得发送方与接收方之间传输业务数据时,可以利用第一共享密钥或第二共享密钥对业务数据加密,且由于仅在需要在发送方和接收方之间传输业务数据时,才生成第一共享密钥和第二共享密钥,缩短了密钥的存储时间,进而降低了密钥被破解的风险,提高了利用密钥加密数据的安全性。且,不会长时间的占用存储空间,提升了存储资源利用率,降低了存储成本。
本实施例中还提供了另一种基于区块链的密钥生成方法,参见图2所示,该方法可以包括以下步骤:
S201、在发送方向接收方发送业务数据前,发送方随机选取素数。
需要利用密钥对业务数据进行加密时生成密钥。生成密钥的过程包括发送方随机选取大素数p。
S202、在大于1且小于所述素数的区间内,随机选取数据作为第一私有密钥。
发送方在[1,p]之间随机选取数据作为第一私有密钥a,即1<a<p。
S203、基于公式A=g^a mod p计算得到第一公开密钥;其中,A为第一公开密钥;a为第一私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
生成元g是素数p的原根。
得到素数p的原根的过程为:假设g是p的原根,那么i值不同g^i mod p的结果两两不同,其中,1<g<p,0<i<p。即g^(p-1)=1(modp)当且仅当指数为p-1时成立。
可见,g^i mod p≠g^j mod p,其中i≠j且i,j均介于1至(p-1)之间,则g为p的原根。
p、a、g均确定后,基于公式A=g^a mod p可以计算得到第一公开密钥A。
S204、发送方对所述素数、所述生成元和所述第一公开密钥分别进行补零操作,得到补零后长度为8位的素数、生成元和第一公开密钥。
p、g、A均确定后,对这三个数据分别执行补零操作。具体为在数据左边填充0,使得填充0后的数据总长度为8位,得到0.000…0A,0.0…0000g,0.0…0000p。
S205、发送方公开广播账本,从账本中选择一个该发送方未花费的交易输出UTXO,并从所述UTXO中向接收方支付数值分别为8位长度的素数、8位长度的生成元和8位长度的第一公开密钥,单位均为聪的金额。
比特币的交易由交易输入和交易输出组成,每一笔交易都要花费一笔输入而产生一笔输出,而所剩余的输出就是UTXO(Unspent Transaction Output,未花费的交易输出)。
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库,区块链是一种几乎不可能被更改的分布式数据库。此处分布式不仅体现为数据的分布式存储,也体现为数据的分布式记录,即由区块链分布式系统中的各个子节点共同维护。
发送方作为区块链分布式系统中的一个子节点,公开广播账本,从账本中选择一个区块链分布式系统中其他的子节点支付给该发送方的UTXO,从选择的UTXO中向接收方支付0.000…0A聪,0.0…0000g聪,0.0…0000p聪。其中,1BTC(比特币)=10^8聪。
S206、发送方将向接收方支付的交易广播到区块链分布式系统中,使得完成交易确认后将该交易写入区块并通过区块加入到区块链中。
发送方向接收方支付特定数量的聪后,还需要将发送方向接收方支付的此次交易广播到区块链分布式系统中,使得通过区块链分布式系统中的各个子节点都可以接收到此次交易,进而确认此次交易是否成功。各个子节点将接收到的交易作为区块链中区块的输入,即将该交易写入区块中,并将写入交易的该区块加入到区块链中。
其中,时间戳服务器对以区块形式存储的交易加上时间戳,使得每条实际产生的交易都能正确的被存储。
且正是由于交易都被存储在区块链的分布式账本中,因此可以为后续生成的密钥的准确性和真实性提供追溯依据。
S207、区块链记录交易后的账本后,接收方在大于1且小于所述素数的区间内,随机选取数据作为第二私有密钥。
随着区块链分布式系统中各个子节点之间进行交易,账本会进行更新。区块链记录发送方向接收方支付的交易后,接收方在[1,p]这一区间内随机选取数据作为第二私有密钥b,即l<b<p。
S208、基于公式B=g^b mod p计算得到第二公开密钥;其中,B为第二公开密钥;b为第二私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
p、b、g均确定后,基于公式B=g^b mod p可以计算得到第二公开密钥B。
S209、基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方。
接收方得到B后,对B执行补零操作。具体为在数据左边填充0,使得填充0后的数据总长度为8位,得到0.000…0B。
接收方作为区块链分布式系统中的一个子节点,公开广播账本,从账本中选择一个区块链分布式系统中其他的子节点支付给该接收方的UTXO,从选择的UTXO中向发送方支付0.000…0B聪。
S210、基于公式K1=B^a mod p计算第一共享密钥;其中,K1为第一共享密钥,B为第二公开密钥;a为第一私有密钥;p为素数。
并基于公式K2=A^b mod p计算第二共享密钥;其中,K2为第二共享密钥,A为第一公开密钥;b为第二私有密钥;p为素数。
计算得到的第一共享密钥和第二共享密钥后,需要使用加密算法基于共享密钥对发送方和接收方之间传输的业务数据进行加密、解密。
由于本实施例中基于区块链的分布式账本生成发送方和接收方之间的密钥,使得发送方利用密钥对业务数据加密后的密文只能由接收方解密,从而降低了密文被破译的几率,提高了业务数据的安全性。
参见图3所示,为本实施例中生成对发送方与接收方之间传输的业务数据进行加密的密钥的示意图。其中,Alice为发送方,Bob为接收方。
对应上述实施例公开的基于区块链的密钥生成方法,本申请实施例提供了一种基于区块链的密钥生成装置,参见图4所示,该装置包括:
第一生成单元401、第一发送单元402、第二生成单元403、第二发送单元404和计算单元405。
第一生成单元401,用于在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥。
可选地,第一生成单元401包括:
选取子单元和计算子单元。
所述选取子单元,用于发送方随机选取素数,并在大于1且小于所述素数的区间内,随机选取数据作为第一私有密钥;
所述计算子单元,用于基于公式A=g^a mod p计算得到第一公开密钥;其中,A为第一公开密钥;a为第一私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
第一发送单元402,用于基于区块链,发送方将所述第一公开密钥作为区块链交易中的金额发送给接收方;
第二生成单元403,用于接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;
第二发送单元404,用于基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方;
计算单元405,用于发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。
可选地,在其他实施例中,还可以包括:
加密单元,用于利用计算得到第一共享密钥或第二共享密钥对业务数据进行加密。
还可以包括:
解密单元,用于利用计算得到的第一共享密钥或第二共享密钥对加密后的业务数据进行解密。
通过上述技术方案,本实施例中在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;基于区块链,发送方将所述第一公开密钥作为区块链交易数据中的金额发送给接收方;接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;基于区块链,接收方将所述第二公开密钥作为区块链交易数据中的金额发送给发送方;发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。使得发送方与接收方之间传输业务数据时,可以利用第一共享密钥或第二共享密钥对业务数据加密,且由于仅在需要在发送方和接收方之间传输业务数据时,才生成第一共享密钥和第二共享密钥,缩短了密钥的存储时间,进而降低了密钥被破解的风险,提高了利用密钥加密数据的安全性。且,不会长时间的占用存储空间,提升了存储资源利用率,降低了存储成本。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于区块链的密钥生成方法,其特征在于,包括:
在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;
基于区块链,发送方将所述第一公开密钥作为区块链交易中的金额发送给接收方;
接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;
基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方;
发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。
2.根据权利要求1所述的方法,其特征在于,所述发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥包括:
发送方随机选取素数;
在大于1且小于所述素数的区间内,随机选取数据作为第一私有密钥;
基于公式A=g^amodp计算得到第一公开密钥;其中,A为第一公开密钥;a为第一私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
3.根据权利要求2所述的方法,其特征在于,所述基于区块链发送方将所述第一公开密钥作为区块链交易数据中的金额发送给接收方包括:
发送方对所述素数、所述生成元和所述第一公开密钥分别进行补零操作,得到补零后长度为8位的素数、生成元和第一公开密钥;
发送方公开广播账本,从账本中选择一个该发送方未花费的交易输出UTXO,并从所述UTXO中向接收方支付数值分别为8位长度的素数、8位长度的生成元和8位长度的第一公开密钥,单位均为聪的金额。
4.根据权利要求3所述的方法,其特征在于,所述从所述UTXO中向接收方支付数值分别为8位长度的素数、8位长度的生成元和8位长度的第一公开密钥,单位均为聪的金额之后,还包括:
发送方将向接收方支付的交易广播到区块链分布式系统中,使得完成交易确认后将该交易写入区块并通过区块加入到区块链中。
5.根据权利要求4所述的方法,其特征在于,所述接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥包括:接收方获取到账本后,在大于1且小于所述素数的区间内,随机选取数据作为第二私有密钥;
基于公式B=g^b modp计算得到第二公开密钥;其中,B为第二公开密钥;b为第二私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
6.根据权利要求5所述的方法,其特征在于,所述发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥包括:
基于公式K1=B^amodp计算第一共享密钥;其中,K1为第一共享密钥,B为第二公开密钥;a为第一私有密钥;p为素数;
所述接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥包括:
基于公式K2=A^b modp计算第二共享密钥;其中,K2为第二共享密钥,A为第一公开密钥;b为第二私有密钥;p为素数。
7.根据权利要求1-6任意一项所述的方法,其特征在于,还包括:发送方利用所述第一共享密钥对所述业务数据进行加密。
8.一种基于区块链的密钥生成装置,其特征在于,包括:
第一生成单元,用于在发送方向接收方发送业务数据前,发送方生成第一私有密钥,并基于所述第一私有密钥生成第一公开密钥;
第一发送单元,用于基于区块链,发送方将所述第一公开密钥作为区块链交易中的金额发送给接收方;
第二生成单元,用于接收方生成第二私有密钥,并基于所述第二私有密钥生成第二公开密钥;
第二发送单元,用于基于区块链,接收方将所述第二公开密钥作为区块链交易中的金额发送给发送方;
计算单元,用于发送方基于所述第一私有密钥和所述第二公开密钥,计算出第一共享密钥;接收方基于所述第二私有密钥和所述第一公开密钥,计算出第二共享密钥。
9.根据权利要求8所述的装置,其特征在于,所述第一生成单元包括:
选取子单元,用于发送方随机选取素数,并在大于1且小于所述素数的区间内,随机选取数据作为第一私有密钥;
计算子单元,用于基于公式A=g^amodp计算得到第一公开密钥;其中,A为第一公开密钥;a为第一私有密钥;p为素数;g为生成元,所述生成元是所述素数的原根。
10.根据权利要求8或9任意一项所述的装置,其特征在于,还包括:加密单元,用于利用计算得到第一共享密钥或第二共享密钥对业务数据进行加密。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910949286.0A CN110677246A (zh) | 2019-10-08 | 2019-10-08 | 一种基于区块链的密钥生成方法及装置 |
PCT/CN2019/112860 WO2021068290A1 (zh) | 2019-10-08 | 2019-10-23 | 基于区块链的密钥生成方法、相关装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910949286.0A CN110677246A (zh) | 2019-10-08 | 2019-10-08 | 一种基于区块链的密钥生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110677246A true CN110677246A (zh) | 2020-01-10 |
Family
ID=69080640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910949286.0A Pending CN110677246A (zh) | 2019-10-08 | 2019-10-08 | 一种基于区块链的密钥生成方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110677246A (zh) |
WO (1) | WO2021068290A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114627A (zh) * | 2021-03-19 | 2021-07-13 | 京东数科海益信息科技有限公司 | 一种基于密钥交换的安全数据交互方法以及交互系统 |
CN117254909A (zh) * | 2023-11-13 | 2023-12-19 | 泉州信息工程学院 | 一种快速生成高概率原根的计算方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272240A (zh) * | 2007-03-21 | 2008-09-24 | 华为技术有限公司 | 一种会话密钥的生成方法、系统和通信设备 |
CN108491980A (zh) * | 2018-04-04 | 2018-09-04 | 湘潭大学 | 基于云区块链服务平台的微电网智能节点交易决策方法 |
CN109087099A (zh) * | 2018-07-31 | 2018-12-25 | 杭州复杂美科技有限公司 | 一种隐私交易方法及系统、设备和存储介质 |
CN109102294A (zh) * | 2018-08-24 | 2018-12-28 | 北京京东尚科信息技术有限公司 | 信息传输方法和装置 |
CN109495249A (zh) * | 2018-11-23 | 2019-03-19 | 全链通有限公司 | 一种区块链系统的数据存储方法、节点和区块链系统 |
CN109691013A (zh) * | 2018-08-16 | 2019-04-26 | 区链通网络有限公司 | 区块链节点间通信方法、装置及存储介质、区块链系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170324711A1 (en) * | 2016-05-03 | 2017-11-09 | The Real Mccoy, Llc Inc. | Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography |
-
2019
- 2019-10-08 CN CN201910949286.0A patent/CN110677246A/zh active Pending
- 2019-10-23 WO PCT/CN2019/112860 patent/WO2021068290A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272240A (zh) * | 2007-03-21 | 2008-09-24 | 华为技术有限公司 | 一种会话密钥的生成方法、系统和通信设备 |
CN108491980A (zh) * | 2018-04-04 | 2018-09-04 | 湘潭大学 | 基于云区块链服务平台的微电网智能节点交易决策方法 |
CN109087099A (zh) * | 2018-07-31 | 2018-12-25 | 杭州复杂美科技有限公司 | 一种隐私交易方法及系统、设备和存储介质 |
CN109691013A (zh) * | 2018-08-16 | 2019-04-26 | 区链通网络有限公司 | 区块链节点间通信方法、装置及存储介质、区块链系统 |
CN109102294A (zh) * | 2018-08-24 | 2018-12-28 | 北京京东尚科信息技术有限公司 | 信息传输方法和装置 |
CN109495249A (zh) * | 2018-11-23 | 2019-03-19 | 全链通有限公司 | 一种区块链系统的数据存储方法、节点和区块链系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113114627A (zh) * | 2021-03-19 | 2021-07-13 | 京东数科海益信息科技有限公司 | 一种基于密钥交换的安全数据交互方法以及交互系统 |
CN117254909A (zh) * | 2023-11-13 | 2023-12-19 | 泉州信息工程学院 | 一种快速生成高概率原根的计算方法、系统及存储介质 |
CN117254909B (zh) * | 2023-11-13 | 2024-02-23 | 泉州信息工程学院 | 一种快速生成高概率原根的计算方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021068290A1 (zh) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6724249B2 (ja) | 情報保護用のシステム及び方法 | |
EP3745637B1 (en) | System and method for information protection | |
EP3545644B1 (en) | System and method for information protection | |
EP3748901B1 (en) | System and method for information protection | |
CN109858281B (zh) | 一种基于零知识证明的区块链账户模型隐私保护方法 | |
CN107392603B (zh) | 使用数字货币的交易方法和装置 | |
US10819505B2 (en) | System and method for information protection | |
US10938549B2 (en) | System and method for information protection | |
CN110545169B (zh) | 基于非对称密钥池和隐式证书的区块链方法和系统 | |
CN110677246A (zh) | 一种基于区块链的密钥生成方法及装置 | |
CN104363268A (zh) | 一种基于支付激励机制的安全去重系统 | |
Bakhtiari et al. | Mobicash: A new anonymous mobile payment system implemented by elliptic curve cryptography | |
CN111311210B (zh) | 一种非对称加密的数字货币交易数据处理方法及装置 | |
AU2020101863A4 (en) | IoT-Based Micropayment Protocol for Wearable Devices with Unique Verification | |
Kang et al. | An Off-Line Payment Scheme for Digital Content via Subliminal Channel. | |
CN104580145A (zh) | 可验证秘密分享的移动代理安全支付方法 | |
AU2019101582A4 (en) | System and method for information protection | |
Wang et al. | Subliminal Channel and Digital Currency Pay Security | |
CN110084050B (zh) | 一种基于区块链的属性基加密微网交易方法 | |
Martínez-Peláez et al. | A flexible mobile ticket for intelligent public transportation | |
Konar et al. | A Practical Approach of Fairness in E-procurement | |
Lee et al. | A Fair Non-transfer Exchange Protocol with Off-line TTP | |
Lee et al. | A Fair Non-transfer Exchange Protocol |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200110 |