CN111010265A - 基于分层密钥和bls数字签名的区块链组织密钥管理方法 - Google Patents
基于分层密钥和bls数字签名的区块链组织密钥管理方法 Download PDFInfo
- Publication number
- CN111010265A CN111010265A CN201911331342.0A CN201911331342A CN111010265A CN 111010265 A CN111010265 A CN 111010265A CN 201911331342 A CN201911331342 A CN 201911331342A CN 111010265 A CN111010265 A CN 111010265A
- Authority
- CN
- China
- Prior art keywords
- key
- par
- private key
- sub
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
- H04L9/007—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
-
- 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/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于区块链技术领域,具体为一种基于分层密钥和BLS数字签名的区块链组织密钥管理方法。本发明的区块链组织密钥管理方法,采用分层密钥的管理方式,将密钥赋予层级归属关系,上层密钥对自己下层密钥拥有完全的控制权,对应于组织的上下级关系;其中,组织首先生成一个根密钥,再通过根密钥进一步生成子密钥、孙密钥;根密钥对其衍生的所有子孙密钥具有绝对控制权,即只要拥有子孙密钥生成时使用的索引编号,即可完全恢复出子、孙密钥的内容,由此可以进行子、孙密钥的任何操作。本发明客服了区块链技术架构下账户只能通过单一的密钥来控制的缺陷,为区块链系统增加更加复杂的账户关系,从而能够支撑企业组织对于区块链授权特性的需求。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种用于区块链的组织密钥管理方法。
背景技术
时至今日,计算机已是不可或缺的存在,随着信息化的普及越来越全面,软件系统无处不在,而所有软件必不可少的一部分便是权限控制,如对资源读取的权限控制,对资源修改的权限控制。一般的权限控制使用账户结合角色的机制,每个账户拥有自身的角色列表,每个角色对应着不同的权限,由于资源全部存储在中心化的服务器上,服务器主机可以根据预设好的权限机制进行用户和角色的权限判断,得出拒绝或者接受两种结果。
由比特币衍生出的区块链技术可以称作“区块链1.0”,比特币中的交易使用了未花费交易输出(Unspent Transaction Output,UTXO)[7]来作为账户的余额的表现方法,任何UTXO的花费都需要提供一个签名,放到交易的解锁脚本中运行,只有脚本执行通过,UTXO才可被成功使用。2014年,Vitalik等人提出了以太坊(Ethereum,ETH)[9]并发布了以太坊的开源代码,此系统针对比特币仅仅可以用来支付的局限性做了改进,提出并实现了“智能合约”,使得区块链系统拥有了运行“去中心化应用”(Distrubuted Application,DAPP)的能力,大大的增强了区块链的扩展性。这两种区块链技术中,对与账户所有权的判断完全通过数字签名来实现,同时一个私钥对应一个账户,不同的账户之间没有任何关联,此机制不适应企业和组织的结构,因此难以在组织企业中应用落地。
发明内容
本发明的目的在于解决区块链技术架构下账户只能同通过单一的密钥来控制的缺陷,为区块链系统增加更加复杂的账户关系,以便支撑企业组织对于区块链授权特性的需求,提供一种用于区块链的组织密钥管理方法。
本发明提供的区块链组织密钥管理方法,是基于分层密钥和BLS数字签名技术的,即采用分层密钥的管理方式,将密钥赋予层级归属关系,上层密钥对归属于自己的下层密钥拥有完全的控制权,对应于组织的上下级管理关系。其中,组织首先生成一个根密钥,然后通过根密钥进一步生成子密钥、孙密钥;根密钥对其衍生的所有子孙密钥具有绝对控制权,即只要拥有子孙密钥生成时使用的索引编号,即可完全恢复出子、孙密钥的内容,由此可以进行子、孙密钥的任何操作。这里“组织”是指包含多个人的实体,比如企业、机构等。
本发明提供的区块链组织密钥管理方法,将涉及椭圆曲线双线性配对算法、HMAC散列消息认证码算法。
所述椭圆曲线双线性配对[1]表示将两个椭圆曲线的群上的元素映射到第三个椭圆曲线群上,使用字母e表示,如下:
e:G1×G2→GT
这里,e表示映射,G表示椭圆曲线点的集合;三个椭圆曲线群G1、G2、GT的阶为素数q,G1的生成元用G1表示,G2的生成元用G2表示,本方法使用的椭圆曲线参数为BLS12-381曲线参数,参考自文献[2]。
所述的HMAC散列消息认证码算法[3],其函数表示式为:
其中,H为SHA256函数[4]。
本发明中,所述分层密钥管理方式,具体包括:构建密钥生成函数,由主私钥推导子私钥,由主私钥推导子公钥,由主公钥推导子公钥,签名生成,签名验证;
(一)构建密钥生成函数
密钥生成函数使用KeyGen表示,用于生成分层确定性密钥的主密钥对,主密钥对使用(kpar,Kpar)表示,密钥生成函数表示为:
KeyGen(λ,S,K)→(kpar,cpar)
kpar称为主私钥,Kpar称为主公钥,cpar称为主链码,λ为安全系数,S为随机熵种子,K为预设的一个字符串。
密钥生成函数生成密钥的具体步骤如下(参见图1):
(1)输入参数:λ,S,K;
(2)根据安全系数λ取对应长度的随机比特序列作为熵种子S,比如1024位随机比特;
(3)计算I=HMACSHA512(Key=″test″,Data=S);这里使用的HMAC函数为前文介绍的HMAC散列消息认证码算法;
(4)将512比特的I切分成2个256比特的序列:
IL=I[0:256];
IR=I[256:512];
(5)若IL=0或者IL≥n,kpar无效,需要重新生成;
(6)主私钥:kpar=Parse256(IL);
(7)主链码:cpar=IR;
(8)返回:(kpar,cpar)。
(二)由主私钥推导子私钥
主私钥推导子私钥函数CKDPriv2Priv通过主私钥kpar和主链码cpar推导出子私钥ki和子链码ci,输入参数i表示推导的子密钥的编号,i∈[0,232)。
由主私钥推导子私钥函数表示为:
CKDPriv2Priv((kpar,cpar),i)→(ki,ci)
主私钥推导子私钥函数从主私钥推导子私钥的具体步骤如下(参见图2):
(1)检查i是否小于232:
是,继续;
否,终止;
(2)计算:D=0x00||SerPoint(Point(kpar))||ser32(i));
(3)计算:I=HAMCSHA512(Key=cpar,Data=D);
(4)将I拆分成2个256比特的序列:
IL=I[0:256];
IR=I[256:512];
(5)子密钥:ki=parse(IL)+kpar(mod n);
(6)子链码:ci=IR;
(7)返回:(ki,ci)。
(三)由主私钥推导子公钥
由主私钥推导子私钥函数CKDPriv2Pub通过主私钥kpar和主链码cpar推导出子公钥Ki和子链码ci,此函数首先使用由主私钥推导子私钥的函数CKDPriv2Priv推导出子私钥ki,再使用ki计算出子公钥Ki,函数的输入参数与CKDPriv2Priv相同,输出不同。
由主私钥推导子私钥函数表示为:
CKDPriv2Pub((kpar,cpar),i)→(ki,ci)→(Ki,ci)
由主私钥推导子私钥函数推导子私钥的具体步骤如下(参见图2):
(1)执行由主私钥推导子私钥的函数:
CKDPriv2Priv((kpar,cpar),i)
得到(ki,ci);
(2)通过子密钥ki计算对应的子公钥Ki:
Ki=Point(ki)
(3)返回:(Ki,ci)。
(四)由主公钥推导子公钥
主公钥推导子公钥函数CKDPub2Pub通过主公钥Kpar和主链码cpar推导出子公钥Ki和子链码ci。
主公钥推导子公钥函数为:
CKDPub2Pub((Kpar,cpar),i)→(Ki,ci)
主公钥推导子公钥函数推导子公钥的具体步骤为(参见图2):
(1)检查i是否小于232
是,继续;
否,终止;
(2)计算:D=0x00||SerPoint(Kpar)||Ser32(i);
(3)计算:I=HAMCSHA512(Key=cpar,Data=D);
(4)将I拆分成2个256比特的序列;
IL=I[0:256];
IR=I[256:512];
(5)子公钥:Ki=Point(parse(IL))+Kpar;
(6)子链码:ci=IR;
(7)返回:(Ki,ci)。
子密钥对的简化表示:
本发明使用推导路径法来表示密钥,令主密钥对为(kpar,Kpar),主链码为cpar,此密钥对在区块链中对应的组织名称为ON(Organization Name)。
编号为i的一级子密钥为(ki,Ki,ci)=CKDPriv2Priv((kpar,cpar),i),则(ki,Ki,ci)的简化表示方法为ON/i。
一级子密钥ki推导出的编号为j的二级子密钥为:
(ki,j,Ki,j,ci,j)=CKDPriv2Priv((ki,ci),j),
则(ki,j,Ki,j,ci,j)的简化表示方法为ON/i/j。
之后各个层级子密钥对的表示方法以此类推,本发明使用κ来代指分层密钥对的简化表示形式。子密钥简化表示方法可以节省存储空间,同时便于人类阅读,从κ的内容中能够清晰的分辨出此密钥对的归属层级关系。
(五)签名生成
签名生成函数使用私钥对k对消息m进行签名,输出一个数字签名σ。
签名生成函数表示为:
Sign(k,m)→σ;
签名生成函数形成签名的具体步骤为:
(1)将消息m映射为G1上的点P:P=MsgToG1(m);
(2)计算签名γ:γ=k·P;
(3)序列化签名:σ=SerPoint(γ)
(4)返回:σ。
(六)签名验证
签名验证函数使用公钥K对消息m的数字签名σ进行验证,输出验证结果r。
签名验证函数表示为:
Verify(K,m,σ)→r;
签名验证函数进行签名验证的具体步骤为:
(1)将消息m映射为G1上的点P:P=MsgToG1(m);
(2)反序列化签名:γ=ParsePoint(σ);
(3)验证γ是否为G1上的点,若不是,令r=false,返回;
(5)计算γ和G2的双线性配对:c=e(γ,G2);
(6)计算P和K的双线性配对:c′=e(P,K);
(7)比较c和c′是否相等,若相等,r=true,否则r=false;
(8)返回:r。
设区块链是具有区块链特性的自研系统,区块链的一个节点对应一个组织机构实体,多个节点构成一个区块链网络。基于上述设计,本发明提出的区块链组织密钥管理方法,具体流程为(参见图3所示):
(1)首先进行初始化,启动区块链节点;
(2)组织的管理员,首先使用密钥生成函数KeyGen()自行生成主私钥和主链码,然后构造一个包含组织机构详细信息的json格式数据,使用私钥对此json数据调用签名生成函数Sign()进行签名;最后将签名后的消息广播到区块链网络中;此处的消息包含组织的名称、公钥和链码。
(3)组织的管理员妥善保管自行生成的私钥和链码;当需要生成新的私钥时,使用主私钥推导子私钥函数CKDPriv2Priv()生成子私钥,其输入主私钥和主链码以及子私钥编号i,比如i=1时,生成的私钥路径为org/1,使用生成的子私钥再生成孙私钥,方法相同。
(4)生成的子、孙私钥可用于向区块链网络中签名并发送交易消息。消息发送时附带私钥对应的路径信息,如org/1,节点收到交易消息之后,根据路径信息解析私钥对应的组织名称,之后使用组织的公钥和链码,通过由主公钥推导子公钥函数CKDPub2Pub()计算出消息签名的账户对应的公钥,此后即可使用签名验证函数Verify()方验证签名的真伪。
(5)签名验证,节点收到消息之后需要对消息中的数字签名进行验证,具体为调用Verify(K,m,σ)签名验证函数,得到验证结果(通过或不通过);
(5.1)如果签名验证通过,节点记录此交易消息,并将其打包到区块中。
(5.2)如果签名验证不通过,节点拒绝并丢弃此消息。
(6)组织管理员需要撤销一个子孙密钥的权限时,构造一个Revoke交易并对其签名,之后广播到区块链网络中。交易消息中包含了欲撤销的密钥的路径信息,节点接受到消息之后将此账户标记为invalid,之后所有由此帐户签名的交易消息都会被节点拒绝。
与现有技术相比,本发明的有益效果:
本发明方法基于BLS数字签名的分层密钥技术,此技术适应于区块链的去中心化技术架构,用于方便企业对多个密钥的控制,本发明的分层密钥技术具有天然的层级结构,能够解决企业组织在使用区块链技术时所有财产和资源均归属于单一密钥的问题。客服了区块链技术架构下账户只能通过单一的密钥来控制的缺陷,为区块链系统增加更加复杂的账户关系,从而能够支撑企业组织对于区块链授权特性的需求。
目前公有链中企业如需绑定多个密钥,需要系统额外的账户信息绑定机制的支持,同时随着绑定密钥数量的增加,存储在区块链上的数据也随之增加,本发明可将密钥与组织之间的绑定关系通过密钥自身的特征体现出来,无需使用额外的账户绑定机制。在向区块链网络发送一笔交易时,发送者仍然使用私钥进行签名,但交易消息无需附带签名者的公钥信息,只需要携带该密钥的路径信息(比如“org/0/1”)即可。
附图说明
图1为组织创建流程图示。
图2为子账户(密钥)创建流程图示。
图3为密钥管理方法流程图示。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细描述。在以本发明技术方案为前提下进行使用,以便相关领域的技术人员能更好地理解本发明的技术特点和功能特点,但本发明的保护范围不限于下述使用案例。
在本使用案例中,编程语言为Golang和JavaScript,区块链是具备基本区块链特性的自研系统,浏览器为Chrome,用于打开JavaScript编写的页面应用,本系统是区块链、B/S架构的Web系统。具体步骤如下(见图3):
(1)首先进行初始化,使用genesis.json文件作为配置文件,启动区块链节点,一个组织机构启动一个节点,多个节点构成一个区块链网络。
(2)组织的管理员使用web页面进行各种操作。首先使密钥生成函数KeyGen()自行生成主私钥和主链码,构造一个json格式的组织信息:
使用私钥和签名生成函数Sign()对上述信息进行签名。最后将签名后的消息广播到区块链网络中;此处的消息包含组织的名称、公钥和链码,计算出的数字签名内容填写到signature中:
(3)组织的管理员妥善保管自行生成的私钥和链码,需要生成新的私钥时,使用主私钥推导子私钥函数CKDPriv2Priv()生成子私钥,其输入主私钥和主链码以及子私钥编号i,比如i=1时,生成的私钥路径为org/1,使用生成的子私钥再生成孙私钥,方法相同。
(4)生成的子、孙私钥可用于向区块链网络中签名并发送交易消息。消息发送时附带私钥对应的路径信息,如org/1,消息示例如下:
节点收到交易消息之后,根据路径信息解析私钥对应的组织名称,之后使用组织的公钥和链码,通过由主公钥推导子公钥函数CKDPub2Pub()计算出消息签名的账户对应的公钥,此后即可使用签名验证函数来验证签名的真伪。
(5)签名验证;节点收到消息之后需要对消息中的数字签名进行验证,具体为调用Verify(K,m,σ)签名验证函数,得到验证结果(通过或不通过);
(5.1)如果签名验证通过,节点记录此交易消息,并将其打包到区块中。
(5.2)如果签名验证不通过,节点拒绝并丢弃此消息。
(6)组织管理员需要撤销一个子孙密钥的权限时,构造一个Revoke交易消息并对其签名,之后广播到区块链网络中。交易消息示例如下:
交易消息中包含了欲撤销的密钥的路径信息,即上述示例的account字段中,节点接收到消息之后将此账户标记为invalid,之后所有由此帐户签名的交易消息都会被节点拒绝。
参考文献
[1]Costello C.Pairings for beginners[J].2012.
[2]Dan Boneh;Ben Lynn&HovavShacham(2004)."Short Signatures from theWeil Pairing".Journal of Cryptology.17(4):297–319.
[3]PUB F.Secure hash standard(shs)[J].FIPS PUB,2012,180(4).
[4]Krawczyk H,Canetti R,Bellare M.HMAC:Keyed-hashing for messageauthentication[J].1997.。
Claims (9)
1.一种基于分层密钥和BLS数字签名的区块链组织密钥管理方法,其特征在于,采用分层密钥的管理方式,将密钥赋予层级归属关系,上层密钥对归属于自己的下层密钥拥有完全的控制权,对应于组织的上下级管理关系;其中,组织首先生成一个根密钥,然后通过根密钥进一步生成子密钥、孙密钥;根密钥对其衍生的所有子孙密钥具有绝对控制权,即只要拥有子孙密钥生成时使用的索引编号,即可完全恢复出子、孙密钥的内容,由此可以进行子、孙密钥的任何操作。
2.根据权利要求1所述的区块链组织密钥管理方法,其特征在于,所述分层密钥管理方式,依次包括:构建密钥生成函数,由主私钥推导子私钥,由主私钥推导子公钥,由主公钥推导子公钥,签名生成,签名验证;其中:
(一)构建密钥生成函数
密钥生成函数使用KeyGen表示,用于生成分层确定性密钥的主密钥对,主密钥对使用(kpar,Kpar)表示,密钥生成函数表示为:
KeyGen(λ,S,K)→(kpar,cpar)
kpar称为主私钥,Kpar称为主公钥,cpar称为主链码,λ为安全系数,S为随机熵种子,K为预设的一个字符串;
(二)由主私钥推导子私钥
主私钥推导子私钥函数CKDPriv2Priv通过主私钥kpar和主链码cpar推导出子私钥ki和子链码ci,输入参数i表示推导的子密钥的编号,i∈[0,232);
由主私钥推导子私钥函数表示为:
CKDPriv2Priv((kpar,cpar),i)→(ki,ci);
(三)由主私钥推导子公钥
由主私钥推导子私钥函数CKDPriv2Pub通过主私钥kpar和主链码cpar推导出子公钥Ki和子链码ci,此函数首先使用由主私钥推导子私钥的函数CKDPriv2Priv推导出子私钥ki,再使用ki计算出子公钥Ki,函数的输入参数与CKDPriv2Priv相同,输出不同;
由主私钥推导子私钥函数表示为:
CKDPriv2Pub((kpar,cpar),i)→(ki,ci)→(Ki,ci);
(四)由主公钥推导子公钥
主公钥推导子公钥函数CKDPub2Pub通过主公钥Kpar和主链码cpar推导出子公钥Ki和子链码ci;
主公钥推导子公钥函数为:
CKDPub2Pub((Kpar,cpar),i)→(Ki,ci);
(五)签名生成
签名生成函数使用私钥对k对消息m进行签名,输出一个数字签名σ;
签名生成函数表示为:
Sign(k,m)→σ;
(六)签名验证
签名验证函数使用公钥K对消息m的数字签名σ进行验证,输出验证结果r;
签名验证函数表示为:
Verify(K,m,σ)→r。
3.根据权利要求2所述的区块链组织密钥管理方法,其特征在于,密钥生成函数生成密钥的具体步骤如下:
(1)输入参数:λ,S,K;
(2)根据安全系数λ取对应长度的随机比特序列作为熵种子S,比如1024位随机比特;
(3)计算I=HMACSHA512(Key=″test″,Data=S);
(4)将512比特的I切分成2个256比特的序列:
IL=I[0:256],
IR=I[256:512],
(5)若IL=0或者IL≥n,kpar无效,需要重新生成;
(6)主私钥:kpar=Parse256(IL);
(7)主链码:cpar=IR;
(8)返回:(kpar,cpar)。
4.根据权利要求3所述的区块链组织密钥管理方法,其特征在于,主私钥推导子私钥函数从主私钥推导子私钥的具体步骤如下:
(1)检查i是否小于232:
是,继续;
否,终止;
(2)计算:D=0x00||SerPoint(Point(kpar))||ser32(i));
(3)计算:I=HAMCSHA512(Key=cpar,Data=D);
(4)将I拆分成2个256比特的序列:
IL=I[0:256];
IR=I[256:512];
(5)子密钥:ki=parse(IL)+kpar(mod n);
(6)子链码:ci=IR;
(7)返回:(ki,ci)。
5.根据权利要求4所述的区块链组织密钥管理方法,其特征在于,由主私钥推导子私钥函数推导子私钥的具体步骤如下:
(1)执行由主私钥推导子私钥的函数:
CKDPriv2Priv((kpar,cpar),i)
得到(ki,ci);
(2)通过子密钥ki计算对应的子公钥Ki:
Ki=Point(ki);
(3)返回:(Ki,ci)。
6.根据权利要求5所述的区块链组织密钥管理方法,其特征在于,主公钥推导子公钥函数推导子公钥的具体步骤为:
(1)检查i是否小于232
是,继续;
否,终止;
(2)计算:D=0x00||SerPoint(Kpar)||Ser32(i);
(3)计算:I=HAMCSHA512(Key=cpar,Data=D);
(4)将I拆分成2个256比特的序列;
IL=I[0:256];
IR=I[256:512];
(5)子公钥:Ki=Point(parse(IL))+Kpar;
(6)子链码:ci=IR;
(7)返回:(Ki,ci)。
7.根据权利要求6所述的区块链组织密钥管理方法,其特征在于,签名生成函数形成签名的具体步骤为:
(1)将消息m映射为G1上的点P:P=MsgToG1(m);
(2)计算签名γ:γ=k·P;
(3)序列化签名:σ=SerPoint(γ)
(4)返回:σ。
9.根据权利要求1-8之一所述的区块链组织密钥管理方法,其特征在于:
设区块链是具有区块链特性的自研系统,区块链的一个节点对于一个组织,多个节点构成一个区块链网络,具体步骤为:
(1)首先进行初始化,启动区块链节点;
(2)组织的管理员首先使用密钥生成函数KeyGen()自行生成主私钥和主链码,然后构造一个包含组织机构详细信息的json格式数据,使用私钥对此json数据调用签名生成函数Sign()进行签名;最后将签名后的消息广播到区块链网络中;此处的消息包含组织的名称、公钥和链码;
(3)组织的管理员妥善保管自行生成的私钥和链码;当需要生成新的私钥时,使用主私钥推导子私钥函数CKDPriv2Priv()生成子私钥,其输入主私钥和主链码以及子私钥编号i,使用生成的子私钥再生成孙私钥,方法相同;
(4)生成的子、孙私钥用于向区块链网络中签名并发送交易消息;消息发送时附带私钥对应的路径信息,节点收到交易消息之后,根据路径信息解析私钥对应的组织名称,之后使用组织的公钥和链码,通过由主公钥推导子公钥函数CKDPub2Pub()计算出消息签名的账户对应的公钥,此后即使用签名验证函数Verify()方验证签名的真伪;
(5)签名验证;
(5.1)如果签名验证通过,节点记录此交易消息,并将其打包到区块中;
(5.2)如果签名验证不通过,节点拒绝并丢弃此消息;
(6)当组织管理员需要撤销一个子孙密钥的权限时,构造一个Revoke交易并对其签名,之后广播到区块链网络中;交易消息中包含欲撤销的密钥的路径信息,节点接受到消息之后将此账户标记为invalid,之后所有由此帐户签名的交易消息都会被节点拒绝。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911331342.0A CN111010265B (zh) | 2019-12-21 | 2019-12-21 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911331342.0A CN111010265B (zh) | 2019-12-21 | 2019-12-21 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111010265A true CN111010265A (zh) | 2020-04-14 |
CN111010265B CN111010265B (zh) | 2023-04-18 |
Family
ID=70117425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911331342.0A Active CN111010265B (zh) | 2019-12-21 | 2019-12-21 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111010265B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187454A (zh) * | 2020-09-14 | 2021-01-05 | 国网浙江省电力有限公司信息通信分公司 | 基于区块链的密钥管理方法及系统 |
CN112561511A (zh) * | 2020-12-10 | 2021-03-26 | 山东区块链研究院 | 基于国密标准算法的多级电子钱包数据处理方法及系统 |
CN112968904A (zh) * | 2021-03-16 | 2021-06-15 | 中国科学院深圳先进技术研究院 | 一种区块链数据保护方法及系统 |
CN113596115A (zh) * | 2021-07-12 | 2021-11-02 | 中债金科信息技术有限公司 | 一种应用基于pbft优化实现多节点高性能协议的网络 |
CN114679261A (zh) * | 2021-12-22 | 2022-06-28 | 北京邮电大学 | 基于密钥派生算法的链上匿名通信方法和系统 |
CN114697019A (zh) * | 2022-02-24 | 2022-07-01 | 南京工程学院 | 一种用户账号隐私保护方法及系统 |
CN115549928A (zh) * | 2022-11-30 | 2022-12-30 | 山东区块链研究院 | 一种区块链系统中的验签方法、系统、存储介质及设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150043735A1 (en) * | 2012-03-28 | 2015-02-12 | Kabushiki Kaisha Toshiba | Re-encrypted data verification program, re-encryption apparatus and re-encryption system |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
WO2017146714A1 (en) * | 2016-02-25 | 2017-08-31 | InAuth, Inc. | Systems and methods for recognizing and categorizing a device |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
CN108809658A (zh) * | 2018-07-20 | 2018-11-13 | 武汉大学 | 一种基于sm2的身份基的数字签名方法与系统 |
WO2018208546A1 (en) * | 2017-05-08 | 2018-11-15 | Amazon Technologies, Inc. | Generation of shared secrets using pairwise implicit certificates |
CN109615351A (zh) * | 2018-11-09 | 2019-04-12 | 元灵通智能科技(深圳)有限公司 | Sim卡、终端机和数字货币管理系统 |
CN110224814A (zh) * | 2019-06-27 | 2019-09-10 | 深圳前海微众银行股份有限公司 | 一种区块链数据共享方法及装置 |
CN110336822A (zh) * | 2019-07-09 | 2019-10-15 | 青岛大学 | 一种基于双线性配对的信息加密方法、装置、设备及介质 |
-
2019
- 2019-12-21 CN CN201911331342.0A patent/CN111010265B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150043735A1 (en) * | 2012-03-28 | 2015-02-12 | Kabushiki Kaisha Toshiba | Re-encrypted data verification program, re-encryption apparatus and re-encryption system |
WO2017146714A1 (en) * | 2016-02-25 | 2017-08-31 | InAuth, Inc. | Systems and methods for recognizing and categorizing a device |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
WO2018208546A1 (en) * | 2017-05-08 | 2018-11-15 | Amazon Technologies, Inc. | Generation of shared secrets using pairwise implicit certificates |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
CN108809658A (zh) * | 2018-07-20 | 2018-11-13 | 武汉大学 | 一种基于sm2的身份基的数字签名方法与系统 |
CN109615351A (zh) * | 2018-11-09 | 2019-04-12 | 元灵通智能科技(深圳)有限公司 | Sim卡、终端机和数字货币管理系统 |
CN110224814A (zh) * | 2019-06-27 | 2019-09-10 | 深圳前海微众银行股份有限公司 | 一种区块链数据共享方法及装置 |
CN110336822A (zh) * | 2019-07-09 | 2019-10-15 | 青岛大学 | 一种基于双线性配对的信息加密方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
CHUN-I FAN等: "《Secure Hierarchical Bitcoin Wallet Scheme Against Privilege Escalation Attacks》", 《2018 IEEE CONFERENCE ON DEPENDABLE AND SECURE COMPUTING》 * |
王海龙等: "基于区块链的大数据确权方案", 《计算机科学》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187454A (zh) * | 2020-09-14 | 2021-01-05 | 国网浙江省电力有限公司信息通信分公司 | 基于区块链的密钥管理方法及系统 |
CN112561511A (zh) * | 2020-12-10 | 2021-03-26 | 山东区块链研究院 | 基于国密标准算法的多级电子钱包数据处理方法及系统 |
CN112561511B (zh) * | 2020-12-10 | 2022-12-20 | 山东区块链研究院 | 基于国密标准算法的多级电子钱包数据处理方法及系统 |
CN112968904B (zh) * | 2021-03-16 | 2022-09-06 | 中国科学院深圳先进技术研究院 | 一种区块链数据保护方法及系统 |
CN112968904A (zh) * | 2021-03-16 | 2021-06-15 | 中国科学院深圳先进技术研究院 | 一种区块链数据保护方法及系统 |
CN113596115A (zh) * | 2021-07-12 | 2021-11-02 | 中债金科信息技术有限公司 | 一种应用基于pbft优化实现多节点高性能协议的网络 |
CN113596115B (zh) * | 2021-07-12 | 2023-05-26 | 中债金科信息技术有限公司 | 一种应用基于pbft优化实现多节点高性能协议的网络系统 |
CN114679261A (zh) * | 2021-12-22 | 2022-06-28 | 北京邮电大学 | 基于密钥派生算法的链上匿名通信方法和系统 |
CN114679261B (zh) * | 2021-12-22 | 2024-05-31 | 北京邮电大学 | 基于密钥派生算法的链上匿名通信方法和系统 |
CN114697019A (zh) * | 2022-02-24 | 2022-07-01 | 南京工程学院 | 一种用户账号隐私保护方法及系统 |
CN114697019B (zh) * | 2022-02-24 | 2023-12-15 | 南京工程学院 | 一种用户账号隐私保护方法及系统 |
CN115549928A (zh) * | 2022-11-30 | 2022-12-30 | 山东区块链研究院 | 一种区块链系统中的验签方法、系统、存储介质及设备 |
CN115549928B (zh) * | 2022-11-30 | 2023-06-13 | 山东区块链研究院 | 一种区块链系统中的验签方法、系统、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111010265B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010265B (zh) | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 | |
CN107196763B (zh) | Sm2算法协同签名及解密方法、装置与系统 | |
CN108885741B (zh) | 一种实现区块链上交换的令牌化方法及系统 | |
US8713329B2 (en) | Authenticated secret sharing | |
US8122245B2 (en) | Anonymity revocation | |
US8139767B2 (en) | Fine-grained forward-secure signature scheme | |
CN112583596B (zh) | 一种基于区块链技术的完全跨域身份认证方法 | |
CN112219371A (zh) | 双向区块链 | |
JPH08328472A (ja) | 認証交換方法、復元型電子署名方法、付加型電子署名方法、鍵交換方法、復元型公衆電子署名方法、付加型公衆電子署名方法およびブラインド電子署名方法 | |
CN113541970B (zh) | 分布式标识符的使用方法和分布式标识符使用系统 | |
Bellare et al. | Deterring certificate subversion: efficient double-authentication-preventing signatures | |
CN115396115B (zh) | 区块链数据隐私保护方法、装置、设备及可读存储介质 | |
CN113411188A (zh) | 电子合同签署方法、装置、存储介质及计算机设备 | |
CN112152807A (zh) | 一种基于sm2算法的两方协同数字签名方法 | |
CN114567448B (zh) | 一种协同签名方法以及协同签名系统 | |
CN110034936B (zh) | 一种可刺穿的数字签名方法 | |
CN112989436B (zh) | 一种基于区块链平台的多重签名方法 | |
Xie et al. | Identity-based chameleon hash without random oracles and application in the mobile internet | |
CN116318736A (zh) | 一种用于分级管理的二级门限签名方法及装置 | |
CN116865970A (zh) | 基于国密算法的多方协同密钥产生和数字签名方法及系统 | |
CN113489690B (zh) | 强抗密钥暴露的在线/离线外包数据完整性审计方法 | |
CN113868715B (zh) | 一种基于量子密钥的签名方法及其系统 | |
CN112163171B (zh) | 一种基于终端签名的数据记链方法 | |
Koga et al. | Decentralization methods of certification authority using the digital signature schemes | |
KR20240105371A (ko) | 디지털 서명을 보호하기 위한 방법 및 시스템 |
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 |