CN111339549A - 一种区块链密钥托管方法及装置 - Google Patents
一种区块链密钥托管方法及装置 Download PDFInfo
- Publication number
- CN111339549A CN111339549A CN201811549698.7A CN201811549698A CN111339549A CN 111339549 A CN111339549 A CN 111339549A CN 201811549698 A CN201811549698 A CN 201811549698A CN 111339549 A CN111339549 A CN 111339549A
- Authority
- CN
- China
- Prior art keywords
- key
- sub
- authorized
- participants
- keys
- 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
- 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
- G06F21/6272—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 by registering files or documents with a third party
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种区块链密钥托管方法及装置,所述方法包括:确定区块链上存储密钥的至少两个参与者;基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。应用本申请提供的一种区块链密钥托管方法及装置可以通过将区块链上需要保存的密钥存储于多个参与者来实现对密钥托管保护,防止密钥过于集中,被恶意攻击者恢复。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链密钥托管方法及装置。
背景技术
区块链技术,融合了分布式系统、密码学、博弈论等学科建立了一种新型的信任模型,具有去中心化、不可篡改和加密安全等特点,使用区块链技术有助于降低交易成本,提高交互效率,有非常广阔的应用前景,被认为是引领信息互联网向价值互联网转变的关键技术。节点作为区块链系统的参与者,每个节点都可存储相关密钥,区块链系统中存储有一些重要的密钥,如果将这些密钥存储于中心节点,会导致中心节点权限过大,密钥被恢复的可能性大,会存在区块链上数据被泄露的风险。
发明内容
本申请实施例提供了一种区块链密钥托管方法及装置,用于解决现有技术中密钥存储集中,容易被恢复,会造成区块链上数据泄露的问题。
第一方面,提供一种区块链密钥托管方法,包括:
确定区块链上存储密钥的至少两个参与者;
基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。
相比现有技术中将密钥全部存储于中心节点的方法,本申请实施例所提供的将密钥存储于多个参与者节点处的方法,可以分散中心节点的权限,提高所述密钥的安全性。
可选的,所述方法还包括:
重构所述密钥时,确定授权参与者集合,其中,所述授权参与者集合中包括存储有可形成所述密钥的子密钥的多个参与者;
获取所述授权参与者集合中每一个参与者所存储的子密钥组合形成所述密钥。
可选的,所述确定授权参与者集合包括:
基于预设的所述授权参与者集合的形成规则将所述至少两个参与者中的部分或全部组合确定至少一个授权参与者集合。
通过预设所述授权参与者集合的形成规则,来确定至少一个授权参与者集合,可以灵活的确定授权参与者集合,即灵活的确定可以重构出所述密钥的参与者集合。
可选的,所述获取所述授权参与者集合中的子密钥组合形成所述密钥包括:
对一个所述授权参与者集合中每个参与者的所述子密钥进行验证,确定授权子密钥;
基于所述授权子密钥组合形成所述密钥。
在重构所述密钥之前对所述授权参与者集合中每个参与者的所述子密钥进行验证,验证成功使用所述授权子密钥组合重构所述密钥,可以保证重构所述密钥的成功性,避免由于所述子密钥中存在错误子密钥而导致重构所述密钥失败。
本申请实施例至少可以具有以下优势效果:相比现有技术中将密钥全部存储于中心节点的方法,本申请实施例所提供的将密钥存储于多个参与者节点处的方法,可以分散中心节点的权限,提高所述密钥的安全性;并且,在重构所述密钥之前对所述授权参与者集合中每个参与者的所述子密钥进行验证,验证成功使用所述授权子密钥组合重构所述密钥,可以提高重构所述密钥的成功性,避免由于所述子密钥中存在错误子密钥而导致重构所述密钥失败。
第二方面,提供一种区块链密钥托管装置,包括:
确定模块:用于确定区块链上存储密钥的至少两个参与者;
存储模块:用于基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。
可选的,所述装置还包括:
重构模块:用于重构所述密钥时,确定授权参与者集合,其中,所述授权参与者集合中包括存储有可形成所述密钥的子密钥的多个参与者;获取所述授权参与者集合中每一个参与者所存储的子密钥组合形成所述密钥。
可选的,所述重构模块还用于:基于预设的所述授权参与者集合的形成规则将所述至少两个参与者中的部分或全部组合确定至少一个授权参与者集合。
可选的,所述重构模块还用于:对一个所述授权参与者集合中每个参与者的所述子密钥进行验证,确定授权子密钥;基于所述授权子密钥组合形成所述密钥。
第三方面,本申请实施例还提供了一种计算机存储介质,包括:
所述计算机可读存储介质包括计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行上述方法中第一方面所述的方法。
第四方面,本申请实施例还提供了一种包含指令的计算机程序产品,包括:
当所述指令在计算机上运行时,使得所述计算机执行上述方法中第一方面所述的方法。
附图说明
图1为申请实施例所提供的一种区块链密钥托管方法流程示意图;
图2为申请实施例所提供一种区块链密钥托管装置示意图。
具体实施方式
鉴于现有技术中密钥存储集中,容易被恢复,会造成区块链上数据泄露的问题。本申请实施例提供以下解决方案。
本发明实施例为解决上述问题,总体思路如下:
先确定要存储密钥的至少两个参与者,基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者;使用所述子密钥可以重构出所述密钥,已达到分散中心节点的权限,提高所述密钥的安全性优势效果。
本申请实施例的方案,相比现有技术中将密钥全部存储于中心节点的方法,本申请实施例所提供的将密钥存储于多个参与者节点处的方法,可以分散中心节点的权限,提高所述密钥的安全性;并且,在重构所述密钥之前对所述授权参与者集合中每个参与者的所述子密钥进行验证,验证成功使用所述授权子密钥组合重构所述密钥,可以提高重构所述密钥的成功性,避免由于所述子密钥中存在错误子密钥而导致重构所述密钥失败。
本申请实施例方案的实现原理是密钥托管方案,密钥共享方案是由一个密钥分配算法和一个密钥重构算法构成。在执行分配算法时,密钥分发者(Dealer)将要共享的密钥分割成若干子密钥,并且在一组参与者中将分割后的若干子密钥进行分发,使得组内每一个参与者都得到关于该密钥的一个子密钥;密钥重构算法保证只有参与者集合的一些特定的子集,即授权子集中的参与者联合可以正确恢复密钥,而其他任何子集,即非授权集中的参与者联合得不到关于密钥的任何有用信息。所有授权集构成的集合的规则通常称为访问结构。
可根据下述算法判断参与者集合是否是授权参与者子集,进而确定授权参与者子集。具体的,确定所述授权参与者集合的算法具体如下:
对给定区块链,记访问结构为Γ,极大非授权子集为{B1,…,Bm};
参与者集合为{p1,…,pm},则Γ对应的累计矩阵为CΓ=[bij]n×m,其中:
Γ与累计矩阵的对应关系如下式:
其中CΓ的第i行m维向量为αi,则有:
可通过此方法确定判断参与者集合是否是授权子集的充要条件。
在对所述密钥进行托管之前,首先需要设定所述密钥的访问结构,所述密钥的访问结构,即形成授权参与者集合的规则;例如,某密钥的子密钥被存储于四个参与者,所述四个参与者分别为A、B、C、D,设定的形成所述授权参与者集合的规则为,参与者集合中同时包含参与者A和参与者B,确定所述参与者集合为授权参与者集合,则所述授权参与者集合可以是:
授权参与者集合1:{A,B}、授权参与者集合2:{A,B,C}、授权参与者集合3:{A,B,D}、授权参与者集合4:{A,B,C,D};
上述设定访问结构的算法利用累计矩阵,实现了任意访问结构的密钥托管方案,不仅仅局限于现有的门限访问结构,门限访问结构有局限性,例如,在(t,n)门限存取结构中,任何包含t个或多于t个参与者的集合都是授权集,而包含t-1个或更少参与者的集合都是非授权集。
确定所述访问结构后,进行区块链密钥托管方法的具体实施步骤。
如附图1所示,本申请实施例提供的一种区块链密钥托管方法具体实施步骤如下:
步骤101:确定区块链上存储密钥的至少两个参与者;
根据要托管保护的密钥,以及应用场景确定至少两个参与者,所述参与者的确定是基于所述密钥保密需求来确定的,本申请实施例中对所述参与者的数量不做限制。
确定所述参与者后,需要基于所述参与者和所述密钥生成子密钥,即进行如下步骤102。
步骤102:基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。
具体生成所述子密钥的算法如下:
输入:m个参与者{p1,…,pm},密钥s∈Zq;
输出:{p1,…,pm}的子密;
步骤如下:
1、Dealer任取一个ω×m矩阵A=(aij),a00=s,s为所述密钥,g∈GF(q)且g是本原元,构造一个两个变元x,y的多项式:
F(x,y)=(1,x,x2,…,xω)A(1,y,y2,…,ym-1)T
其中,q是固定参数,g是本原元,特别的,g是本原元指单个g能生成整个GF(p),即g,g^2,...g^n,...=GF(p),GF(q)指的是有q个元素的有限域。
2、Dealer随机选取m个不同数b1,b2,…,bm∈GF(q)*并公开在区块链上;计算F(x,b1),F(x,b2),…,F(x,bm),其中F(x,bi)=ci0+ci1x+…+ci(ω-1)xω-1;
3、Dealer秘密发送给pi的子密钥如下:
(k,F(k,bj)),k=1,2,…,ω;
pi收到后,利用Lagrange插值公式分别恢复出F(k,bj),计算得到对应的F(0,bj),并仅保留(bj,F(0,bj)),其中j为{1,2,…,m}中所有满足bij=1的正整数。
基于上述子密钥生成算法生成所述子密钥并发送给所述参与者后,会对所述Dealer发送的子密钥进行验证,从而防止所述Dealer将生成的所述子密钥错发。
具体验证算法如下:
参与者验证下示等式是否成立:
若上述等式不成立,说明Dealer发送所述子密钥错误;
若上述等式成立,说明Dealer发送所述子密钥正确;
任何所述参与者都可以通过此验证算法对Dealer发送的所述子密钥进行验证,从而防止Dealer作恶将生成的所述子密钥错发。
验证通过后将所述至少两个子密钥分别存储于所述至少两个参与者,实现了对所述密钥托管保护,可根据下述算法判断参与者集合是否是授权参与者子集,进而确定授权参与者子集。
具体的,根据所述授权参与者集合的算法中的下述充要条件确定所述授权参与者集合:
根据上述方法确定所述授权参与者子集后,获取所述授权参与者集合中每一个参与者所存储的子密钥组合形成所述密钥。其中,获取所述授权参与者集合中每一个参与者所存储的子密钥后,对所述授权参与者存储的子密钥进行验证,具体验证算法如下:
任意两个所述授权参与者之间都可通过下式验证子密是否正确:
pt验证pi:
这里的pt和pi分别为两个所述授权参与者;
若上述等式不成立,则pi的子密钥有误;
若上述等式成立,则pi的子密钥正确。
验证所述子密钥正确后,确定为授权子密钥,基于所述授权子密钥重构所述密钥,具体的,基于所述授权子密钥重构所述密钥的具体算法如下:
设授权子集C要重构秘密,这里可以设定pt∈C为重构者。在本申请实施例中对所述重构者的设定不做具体限制,所述重构者可以是授权参与者集合中的某个授权参与者,也可以是某非授权参与者的第三方参与者;每个pi∈C将自己的子密钥发送给所述重构者pt,则所述重构者pt按如下步骤重构所述密钥:
1、所述重构者pt将C中每一位参与者的子密求并集,由于C是授权子集,必有:
{(b1,F(0,b1)),…,(bm,F(0,bm))};
通过将所述授权参与者集合中的所有所述授权参与者的子密钥求并集,保证所述授权参与者的子密钥有且只有一个。
如附图2所示,基于上述方法,本申请实施例还提供一种区块链密钥托管装置包括:
确定模块201:用于确定区块链上存储密钥的至少两个参与者;
存储模块202:用于基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。
可选的,所述装置还包括:
重构模块203:用于重构所述密钥时,确定授权参与者集合,其中,所述授权参与者集合中包括存储有可形成所述密钥的子密钥的多个参与者;获取所述授权参与者集合中每一个参与者所存储的子密钥组合形成所述密钥。
可选的,所述重构模块还用于:基于预设的所述授权参与者集合的形成规则将所述至少两个参与者中的部分或全部组合确定至少一个授权参与者集合。
可选的,所述重构模块还用于:对一个所述授权参与者集合中每个参与者的所述子密钥进行验证,确定授权子密钥;基于所述授权子密钥组合形成所述密钥。
本申请实施例还提供了一种计算机存储介质,包括:
所述计算机可读存储介质包括计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行附图1所描述的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,包括:
当所述指令在计算机上运行时,使得所述计算机执行附图1所描述的方法。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种区块链密钥托管方法,其特征在于,所述方法包括:
确定区块链上存储密钥的至少两个参与者;
基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
重构所述密钥时,确定授权参与者集合,其中,所述授权参与者集合中包括存储有可形成所述密钥的子密钥的多个参与者;
获取所述授权参与者集合中每一个参与者所存储的子密钥组合形成所述密钥。
3.如权利要求2所述的方法,其特征在于,所述确定授权参与者集合包括:
基于预设的所述授权参与者集合的形成规则将所述至少两个参与者中的部分或全部组合确定至少一个授权参与者集合。
4.如权利要求2所述的方法,其特征在于,所述获取所述授权参与者集合中的子密钥组合形成所述密钥包括:
对一个所述授权参与者集合中每个参与者的所述子密钥进行验证,确定授权子密钥;
基于所述授权子密钥组合形成所述密钥。
5.一种区块链密钥托管装置,其特征在于,所述装置包括:
确定模块:用于确定区块链上存储密钥的至少两个参与者;
存储模块:用于基于所述至少两个参与者和所述密钥生成至少两个子密钥,将所述至少两个子密钥分别存储于所述至少两个参与者。
6.如权利要求5所述的装置,其特征在于,该装置还包括:
重构模块:用于重构所述密钥时,确定授权参与者集合,其中,所述授权参与者集合中包括存储有可形成所述密钥的子密钥的多个参与者;获取所述授权参与者集合中每一个参与者所存储的子密钥组合形成所述密钥。
7.如权利要求6所述的装置,其特征在于,所述重构模块还用于:基于预设的所述授权参与者集合的形成规则将所述至少两个参与者中的部分或全部组合确定至少一个授权参与者集合。
8.如权利要求6所述的装置,其特征在于,所述重构模块还用于:对一个所述授权参与者集合中每个参与者的所述子密钥进行验证,确定授权子密钥;基于所述授权子密钥组合形成所述密钥。
9.一种计算机存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至4任一所述的方法。
10.一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811549698.7A CN111339549A (zh) | 2018-12-18 | 2018-12-18 | 一种区块链密钥托管方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811549698.7A CN111339549A (zh) | 2018-12-18 | 2018-12-18 | 一种区块链密钥托管方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111339549A true CN111339549A (zh) | 2020-06-26 |
Family
ID=71183164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811549698.7A Pending CN111339549A (zh) | 2018-12-18 | 2018-12-18 | 一种区块链密钥托管方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339549A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11362816B2 (en) * | 2020-09-11 | 2022-06-14 | Seagate Technology Llc | Layered secret sharing with flexible access structures |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132620A1 (en) * | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
CN107623569A (zh) * | 2017-09-30 | 2018-01-23 | 矩阵元技术(深圳)有限公司 | 基于秘密共享技术的区块链密钥托管和恢复方法、装置 |
CN108242999A (zh) * | 2017-10-26 | 2018-07-03 | 招商银行股份有限公司 | 密钥托管方法、设备及计算机可读存储介质 |
-
2018
- 2018-12-18 CN CN201811549698.7A patent/CN111339549A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132620A1 (en) * | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
CN107623569A (zh) * | 2017-09-30 | 2018-01-23 | 矩阵元技术(深圳)有限公司 | 基于秘密共享技术的区块链密钥托管和恢复方法、装置 |
CN108242999A (zh) * | 2017-10-26 | 2018-07-03 | 招商银行股份有限公司 | 密钥托管方法、设备及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11362816B2 (en) * | 2020-09-11 | 2022-06-14 | Seagate Technology Llc | Layered secret sharing with flexible access structures |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3619884B1 (en) | Secure dynamic threshold signature scheme employing trusted hardware | |
CN106357401B (zh) | 一种私钥存储及使用方法 | |
CN113364576B (zh) | 一种基于区块链的数据加密存证与共享方法 | |
US8171306B2 (en) | Universal secure token for obfuscation and tamper resistance | |
CN111130757A (zh) | 一种基于区块链的多云cp-abe访问控制方法 | |
CN112019591A (zh) | 一种基于区块链的云数据共享方法 | |
CN114219483B (zh) | 基于lwe-cpabe的区块链数据共享方法、设备和存储介质 | |
CN105162589B (zh) | 一种基于格的可验证属性加密方法 | |
CN108471352A (zh) | 基于分布式私钥的处理方法、系统、计算机设备及存储介质 | |
CN108650087A (zh) | 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法 | |
CN109274492B (zh) | 自安全的紧耦合秘密共享方法 | |
CN109861956B (zh) | 基于状态通道的数据验证系统、方法、装置及设备 | |
CN110599164B (zh) | 一种可监管的链下任意收款方快速支付方法 | |
CN111327419B (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
US20230224147A1 (en) | Generating shared private keys | |
CN110719172A (zh) | 区块链系统中的签名方法、签名系统以及相关设备 | |
CN117201132A (zh) | 一种完全去中心化的多委员会属性基加密方法及其应用 | |
EP3939198A1 (en) | Method for generating a digital signature of an input message | |
CN108199836B (zh) | 一种密钥与设备绑定、解绑定的方法及装置 | |
CN107465508B (zh) | 一种软硬件结合构造真随机数的方法、系统和设备 | |
CN110740034B (zh) | 基于联盟链的qkd网络认证密钥生成方法及系统 | |
CN115865330B (zh) | 一种基于区块链的链上信息修改的监管方法及介质 | |
CN111339549A (zh) | 一种区块链密钥托管方法及装置 | |
CN114430321B (zh) | 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置 | |
CN113362065A (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 |