CN111010265B - 基于分层密钥和bls数字签名的区块链组织密钥管理方法 - Google Patents

基于分层密钥和bls数字签名的区块链组织密钥管理方法 Download PDF

Info

Publication number
CN111010265B
CN111010265B CN201911331342.0A CN201911331342A CN111010265B CN 111010265 B CN111010265 B CN 111010265B CN 201911331342 A CN201911331342 A CN 201911331342A CN 111010265 B CN111010265 B CN 111010265B
Authority
CN
China
Prior art keywords
key
private key
par
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.)
Active
Application number
CN201911331342.0A
Other languages
English (en)
Other versions
CN111010265A (zh
Inventor
阚海斌
管吉星
刘百祥
陶余会
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI CHUWA SOFTWARE CO Ltd
Fudan University
Original Assignee
SHANGHAI CHUWA SOFTWARE CO Ltd
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI CHUWA SOFTWARE CO Ltd, Fudan University filed Critical SHANGHAI CHUWA SOFTWARE CO Ltd
Priority to CN201911331342.0A priority Critical patent/CN111010265B/zh
Publication of CN111010265A publication Critical patent/CN111010265A/zh
Application granted granted Critical
Publication of CN111010265B publication Critical patent/CN111010265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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/3073Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3252Cryptographic 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

基于分层密钥和BLS数字签名的区块链组织密钥管理方法
技术领域
本发明属于区块链技术领域,具体涉及一种用于区块链的组织密钥管理方法。
背景技术
时至今日,计算机已是不可或缺的存在,随着信息化的普及越来越全面,软件系统无处不在,而所有软件必不可少的一部分便是权限控制,如对资源读取的权限控制,对资源修改的权限控制。一般的权限控制使用账户结合角色的机制,每个账户拥有自身的角色列表,每个角色对应着不同的权限,由于资源全部存储在中心化的服务器上,服务器主机可以根据预设好的权限机制进行用户和角色的权限判断,得出拒绝或者接受两种结果。
由比特币衍生出的区块链技术可以称作“区块链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],其函数表示式为:
Figure BDA0002329671840000021
其中,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,返回;
(4)验证n
Figure BDA0002329671840000051
若不满足,令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格式的组织信息:
Figure BDA0002329671840000071
使用私钥和签名生成函数Sign()对上述信息进行签名。最后将签名后的消息广播到区块链网络中;此处的消息包含组织的名称、公钥和链码,计算出的数字签名内容填写到signature中:
Figure BDA0002329671840000072
(3)组织的管理员妥善保管自行生成的私钥和链码,需要生成新的私钥时,使用主私钥推导子私钥函数CKDPriv2Priv()生成子私钥,其输入主私钥和主链码以及子私钥编号i,比如i=1时,生成的私钥路径为org/1,使用生成的子私钥再生成孙私钥,方法相同。
(4)生成的子、孙私钥可用于向区块链网络中签名并发送交易消息。消息发送时附带私钥对应的路径信息,如org/1,消息示例如下:
Figure BDA0002329671840000081
节点收到交易消息之后,根据路径信息解析私钥对应的组织名称,之后使用组织的公钥和链码,通过由主公钥推导子公钥函数CKDPub2Pub()计算出消息签名的账户对应的公钥,此后即可使用签名验证函数来验证签名的真伪。
(5)签名验证;节点收到消息之后需要对消息中的数字签名进行验证,具体为调用Verify(K,m,σ)签名验证函数,得到验证结果(通过或不通过);
(5.1)如果签名验证通过,节点记录此交易消息,并将其打包到区块中。
(5.2)如果签名验证不通过,节点拒绝并丢弃此消息。
(6)组织管理员需要撤销一个子孙密钥的权限时,构造一个Revoke交易消息并对其签名,之后广播到区块链网络中。交易消息示例如下:
Figure BDA0002329671840000082
交易消息中包含了欲撤销的密钥的路径信息,即上述示例的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 (7)

1.一种基于分层密钥和BLS数字签名的区块链组织密钥管理方法,其特征在于,采用分层密钥的管理方式,将密钥赋予层级归属关系,上层密钥对归属于自己的下层密钥拥有完全的控制权,对应于组织的上下级管理关系;其中,组织首先生成一个根密钥,然后通过根密钥进一步生成子密钥、孙密钥;根密钥对其衍生的所有子孙密钥具有绝对控制权,即只要拥有子孙密钥生成时使用的索引编号,即可完全恢复出子、孙密钥的内容,由此可以进行子、孙密钥的任何操作;
所述分层密钥管理方式,依次包括:构建密钥生成函数,由主私钥推导子私钥,由主私钥推导子公钥,由主公钥推导子公钥,签名生成,签名验证;其中:
(一)构建密钥生成函数
密钥生成函数使用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;
签名验证函数进行签名验证的具体步骤为:
(1)将消息m映射为G1上的点P:P=MsgToG1(m);
(2)反序列化签名:γ=ParsePoint(σ);
(3)验证γ是否为G1上的点,若不是,令r=false,返回;
(4)验证
Figure FDA0004053920530000021
若不满足,令r=false,返回;
(5)计算γ和G2的双线性配对:c=e(γ,G2);
(6)计算P和K的双线性配对:c=e(P,K);
(7)比较c和c′是否相等,若相等,r=true,否则r=false;
(8)返回:r。
2.根据权利要求1所述的区块链组织密钥管理方法,其特征在于,密钥生成函数生成密钥的具体步骤如下:
(1)输入参数:λ,S,K;
(2)根据安全系数λ取对应长度的随机比特序列作为熵种子S;
(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)。
3.根据权利要求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)。
4.根据权利要求3所述的区块链组织密钥管理方法,其特征在于,由主私钥推导子私钥函数推导子私钥的具体步骤如下:
(1)执行由主私钥推导子私钥的函数:
CKDPriv2Priv((kpar,cpar),i)
得到(ki,ci);
(2)通过子密钥ki计算对应的子公钥Ki
Ki=Point(ki);
(3)返回:(Ki,ci)。
5.根据权利要求4所述的区块链组织密钥管理方法,其特征在于,主公钥推导子公钥函数推导子公钥的具体步骤为:
(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)。
6.根据权利要求5所述的区块链组织密钥管理方法,其特征在于,签名生成函数形成签名的具体步骤为:
(1)将消息m映射为G1上的点P:P=MsgToG1(m);
(2)计算签名γ:γ=k·P;
(3)序列化签名:σ=SerPoint(γ)
(4)返回:σ。
7.根据权利要求1-6之一所述的区块链组织密钥管理方法,其特征在于:
设区块链是具有区块链特性的自研系统,区块链的一个节点对于一个组织,多个节点构成一个区块链网络,具体步骤为:
(1)首先进行初始化,启动区块链节点;
(2)组织的管理员首先使用密钥生成函数KeyGen()自行生成主私钥和主链码,然后构造一个包含组织机构详细信息的json格式数据,使用私钥对此json数据调用签名生成函数Sign()进行签名;最后将签名后的消息广播到区块链网络中;此处的消息包含组织的名称、公钥和链码;
(3)组织的管理员妥善保管自行生成的私钥和链码;当需要生成新的私钥时,使用主私钥推导子私钥函数CKDPriv2Priv()生成子私钥,其输入主私钥和主链码以及子私钥编号i,使用生成的子私钥再生成孙私钥,方法相同;
(4)生成的子、孙私钥用于向区块链网络中签名并发送交易消息;消息发送时附带私钥对应的路径信息,节点收到交易消息之后,根据路径信息解析私钥对应的组织名称,之后使用组织的公钥和链码,通过由主公钥推导子公钥函数CKDPub2Pub()计算出消息签名的账户对应的公钥,此后即使用签名验证函数Verify()方验证签名的真伪;
(5)签名验证;
(5.1)如果签名验证通过,节点记录此交易消息,并将其打包到区块中;
(5.2)如果签名验证不通过,节点拒绝并丢弃此消息;
(6)当组织管理员需要撤销一个子孙密钥的权限时,构造一个Revoke交易并对其签名,之后广播到区块链网络中;交易消息中包含欲撤销的密钥的路径信息,节点接受到消息之后将此账户标记为invalid,之后所有由此帐户签名的交易消息都会被节点拒绝。
CN201911331342.0A 2019-12-21 2019-12-21 基于分层密钥和bls数字签名的区块链组织密钥管理方法 Active CN111010265B (zh)

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 CN111010265A (zh) 2020-04-14
CN111010265B true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187454B (zh) * 2020-09-14 2022-12-02 国网浙江省电力有限公司 基于区块链的密钥管理方法及系统
CN112561511B (zh) * 2020-12-10 2022-12-20 山东区块链研究院 基于国密标准算法的多级电子钱包数据处理方法及系统
CN112968904B (zh) * 2021-03-16 2022-09-06 中国科学院深圳先进技术研究院 一种区块链数据保护方法及系统
CN113596115B (zh) * 2021-07-12 2023-05-26 中债金科信息技术有限公司 一种应用基于pbft优化实现多节点高性能协议的网络系统
CN114679261B (zh) * 2021-12-22 2024-05-31 北京邮电大学 基于密钥派生算法的链上匿名通信方法和系统
CN114697019B (zh) * 2022-02-24 2023-12-15 南京工程学院 一种用户账号隐私保护方法及系统
CN115549928B (zh) * 2022-11-30 2023-06-13 山东区块链研究院 一种区块链系统中的验签方法、系统、存储介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809658A (zh) * 2018-07-20 2018-11-13 武汉大学 一种基于sm2的身份基的数字签名方法与系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5389212B2 (ja) * 2012-03-28 2014-01-15 株式会社東芝 再暗号文検証プログラム、再暗号化装置及び再暗号化システム
WO2017146714A1 (en) * 2016-02-25 2017-08-31 InAuth, Inc. Systems and methods for recognizing and categorizing a device
CN106453288B (zh) * 2016-09-29 2019-06-04 上海和付信息技术有限公司 一种支持异步模式的分布式微服务框架系统及其实现方法
CN110999203B (zh) * 2017-05-08 2021-09-07 亚马逊技术有限公司 用于生成共享密钥的方法和系统
CN108768978B (zh) * 2018-05-16 2020-12-11 浙江大学 一种基于sgx的远端存储服务方法及系统
CN109615351A (zh) * 2018-11-09 2019-04-12 元灵通智能科技(深圳)有限公司 Sim卡、终端机和数字货币管理系统
CN110224814B (zh) * 2019-06-27 2022-01-14 深圳前海微众银行股份有限公司 一种区块链数据共享方法及装置
CN110336822A (zh) * 2019-07-09 2019-10-15 青岛大学 一种基于双线性配对的信息加密方法、装置、设备及介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809658A (zh) * 2018-07-20 2018-11-13 武汉大学 一种基于sm2的身份基的数字签名方法与系统

Also Published As

Publication number Publication date
CN111010265A (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
CN111010265B (zh) 基于分层密钥和bls数字签名的区块链组织密钥管理方法
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
Li et al. Privacy-preserving public auditing protocol for low-performance end devices in cloud
Huang et al. Scalable and redactable blockchain with update and anonymity
US8122245B2 (en) Anonymity revocation
US8713329B2 (en) Authenticated secret sharing
US8139767B2 (en) Fine-grained forward-secure signature scheme
CN116957790A (zh) 一种实现区块链上交换的通证化方法及系统
Ma et al. Redactable blockchain in decentralized setting
CN112583596B (zh) 一种基于区块链技术的完全跨域身份认证方法
US20150280923A1 (en) Production of cryptographic signatures
JPH08328472A (ja) 認証交換方法、復元型電子署名方法、付加型電子署名方法、鍵交換方法、復元型公衆電子署名方法、付加型公衆電子署名方法およびブラインド電子署名方法
Bellare et al. Deterring certificate subversion: efficient double-authentication-preventing signatures
CN115396115B (zh) 区块链数据隐私保护方法、装置、设备及可读存储介质
CN112152807A (zh) 一种基于sm2算法的两方协同数字签名方法
El Kaafarani et al. Anonymous reputation systems achieving full dynamicity from lattices
Lin et al. Linearly homomorphic signatures from lattices
Abo-Alian et al. Auditing-as-a-service for cloud storage
CN114503506A (zh) 支持交易中包含的明文数据变更的区块链系统
CN116318736A (zh) 一种用于分级管理的二级门限签名方法及装置
CN113489690B (zh) 强抗密钥暴露的在线/离线外包数据完整性审计方法
Gong et al. A threshold group signature scheme suitable for the Internet of Things
CN115150057A (zh) 一种区块链跨链交互数据计算结果的完整性验证方法
Fan et al. Strongly secure certificateless signature scheme supporting batch verification
Koga et al. Decentralization methods of certification authority using the digital signature schemes

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