[发明专利]区块链密钥分层管理方法有效

专利信息
申请号: 201910591293.8 申请日: 2019-07-02
公开(公告)号: CN110300112B 公开(公告)日: 2022-05-10
发明(设计)人: 郑丽娟;李兆轩;胡畅霞;刘豫晋;张宇;周文峰;毛志俊 申请(专利权)人: 石家庄铁道大学
主分类号: H04L9/40 分类号: H04L9/40;H04L9/32;H04L9/30;H04L9/08
代理公司: 石家庄轻拓知识产权代理事务所(普通合伙) 13128 代理人: 王占华
地址: 050043 河*** 国省代码: 河北;13
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 区块 密钥 分层 管理 方法
【权利要求书】:

1.一种区块链密钥分层管理方法,其特征在于包括如下步骤:

初始化区块链系统中的用户口令pw、登录凭证uid,口令密钥pwkey,主密钥mastkey以及主密钥密文mastkeyciper;

生成用户私钥prikey,用户公钥pubkey,密钥文件keyfile以及用户私钥密文prikeyciper;

对文件加密密钥filekey,文件file,文件密文fileciper,文件加密密钥密文filekeyciper以及上传文件fileupload进行分层管理;

共享相应的文件,完成区块链密钥分层管理;

所述方法还包括口令恢复:

当用户首次注册时,会将口令分散加密存储在可信赖的区块链节点上,以便口令恢复时使用,口令分散存储的过程如下:

1)用户本地客户端将用户的口令拆分成n个子口令pw→(pw1,pw2,...,pwn),其中n≥1;

2)由于所有人都可查看区块链上的信息,所以为了保护口令要对子口令加密才能存储;用户利用其生物特征B,使用现有的模糊提取器生成参数公开参数P和秘密参数R,公式为:Gen(B)→(P,R);

3)将秘密参数R的哈希值作为用户口令保护的私钥sk1=H(R),生成用户口令保护公私钥对(sk1,pk1)=(h(R),h(R)·G);

4)使用用户口令保护公钥pk1对由用户口令拆分后的子口令进行分组加密得到密文组C,记为(C1,C2,......,Cn),其中当n=1时,即利用用户口令保护公钥pk1对用户口令整体进行加密,是分组加密的特殊形式;

5)用户本地客户端将公开参数P,Ci和pk1进行分组打包生成n个秘密串,记为(P,Ci,pk1),其中i=1,2,....,n(n≥1);

6)用户本地客户端通过区块链客户端打包好的n个秘密串上传到n个可信赖的区块链节点上,并将节点的Blockhash和txhash记录下来;

当用户恢复口令时,将之前存在区块链节点当中的口令备份下载到本地客户端,然后进行恢复,口令恢复的过程如下:

1)用户本地客户端从之前可信赖的区块链节点中选择至少t个节点,根据之前存储的Blockhash和txhash通过区块链客户端将节点上的秘密串(P,Ci,pk1)下载到本地客户端;

2)利用公开参数P以及用户生物特征B'还原秘密参数R',公式为Rep(P,B')→R';由模糊提取器的概念,若生物特征B'和原始生物特征B的distance(B,B')<s,则前后生成的R'=R,即模糊提取值相同;其中distance()为相似度距离函数,s为模糊提取器规定好的错误极限值;

3)根据得到的秘密参数R',计算其哈希值得到用户口令保护的私钥sk1'=H(R');

4)从t个秘密串当中提取密文组C',记为(C1,C2,......,Ct);利用得到的用户口令保护私钥sk1'对密文组进行分组解密,得到t个子口令其中1≤i≤t;

5)利用得到的t个子口令pwi',运用Lagrange插值法恢复出用户用户口令pw'←(pw1',pw2',...,pwt');当B'和B满足distance(B,B')<s时,R'=R,sk1'=sk1并且pwi'=pwi,则pw'=pw;

所述方法还包括密更新步骤:

口令密钥更新流程如下:

1)将原口令密钥命名中的Status标签改为“invalid”;

2)将用户口令重新分割加密存储在区块链节点中;

3)对主密钥和用户的私钥进行重新加密,生成新的密钥文件;新密钥文件的Version标签在原来的Version标签上加1,原密钥文件的Status标签改为“invalid”,将新旧密钥文件通过区块链客户端上传到区块链网络中;

4)在本地客户端中修改命名表中的相应信息;

主密钥的更新流程如下:

1)将原主密钥命名中的Status标签改为“invalid”,新密钥的Version标签在原来的Version标签上加1;

2)将原主密钥加密过的文件加密密钥重新进行加密,重新与文件密文拼接生成上传文件,将原来的上传文件的Status标签改为“invalid”,新的上传文件的Version标签在原来的Version标签上加1,将新旧上传文件通过区块链客户端上传到区块链网络中;

3)在本地客户端中修改命名表中的相应信息;

用户公私钥的更新流程如下:

1)利用椭圆曲线算法生成新的公私钥对,将原公钥命名中的Status标签改为“invalid”,新公钥的Version标签在原来的Version标签上加1,并将新旧公钥上传到区块链节点上;

2)利用口令密钥将用户的私钥进行加密,与主密钥的密文拼接生成密钥文件,将原来的密钥文件的Status标签改为“invalid”,新的密钥文件的Version标签在原来的Version标签上加1,将新旧密钥文件通过区块链客户端上传到区块链网络中;

3)在本地客户端中修改命名表中的相应信息;

文件加密密钥的更新流程如下:

1)重新生成文件加密密钥,将原文件加密密钥命名中的Status标签改为“invalid”,新文件加密密钥的Version标签在原来的Version标签上加1;

2)利用新的文件加密密钥加密文件得到新的文件密文,利用主密钥加密新的文件加密密钥生成新的文件加密密钥密文,将两者拼接生成新的上传文件,将原上传文件命名中的Status标签改为“invalid”,新上传文件的Version标签在原来的Version标签上加1,并将新旧上传文件上传到区块链节点上;

3)在本地客户端中修改命名表中的相应信息;

生成其余密钥的方法如下:

利用椭圆曲线加密算法生成用户私钥prikey和用户公钥pubkey,用户私钥prikey存储在客户端本地,用户公钥pubkey通过区块链客户端上传到区块链节点上;

然后使用口令密钥pwkey加密用户私钥prikey得到私钥的密文prikeyciper=Encpwkey(prikey);

用户的主密钥mastkey和口令密钥pwkey在加密的层次上是同一层,在存储的时候拼接在一起得到密钥文件keyfile=mastkeyciper||prikeyciper,并通过区块链客户端将密钥文件keyfile上传到区块链节点上;

当本地客户端生成用户私钥prikey,或用户公钥pubkey和密钥文件keyfile经过上链存储在区块链节点上后,向本地命名表记录中添加相应的命名记录;

反之,用户可以根据本地的命名表记录的密钥文件keyfile的Blockhash和txhash通过区块链客户端将密钥文件keyfile下载到本地客户端;将keyfile拆分得到主密钥密文mastkeyciper和用户私钥密文prikeyciper,再利用口令密钥pwkey对两者进行解密得到主密钥mastkey=Decpwkey(mastkeyciper)和用户私钥prikey=Decpwkey(prikeyciper)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于石家庄铁道大学,未经石家庄铁道大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910591293.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top