[发明专利]一种基于区块链的公钥分发方法在审
申请号: | 201810841999.0 | 申请日: | 2018-07-27 |
公开(公告)号: | CN109067521A | 公开(公告)日: | 2018-12-21 |
发明(设计)人: | 平鉴川;刘敬浩 | 申请(专利权)人: | 天津大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06;H04L9/32 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 程毓英 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于区块链的公钥分发方法,包括以下步骤:第一步,用户向代理节点申请将公钥托管在区块链中;第二步,用户生成公钥私钥对,并生成公钥信息,将自己的公钥信息广播到区块链网络中;第三步,节点对收到的公钥信息进行验证,加入本地缓存;第四步,节点在生成或收到一个新的区块后,开始进行下一个区块的生成;第五步,当用户需要获取其他用户的公钥时,向区块链请求公钥信息。 | ||
搜索关键词: | 区块 公钥信息 公钥 公钥分发 缓存 代理节点 用户生成 用户需要 链请求 私钥 托管 验证 广播 申请 网络 | ||
【主权项】:
1.一种基于区块链的公钥分发方法,包括以下步骤:第一步,用户向代理节点申请将公钥托管在区块链中用户向代理节点发送请求,请求在一定时间内将公钥存储在区块链网络中的权利,代理节点在通过申请后,生成一对临时的公钥私钥对以及用户的ID,代理节点将临时公钥、用户ID、用户托管的起止时间、代理节点的ID、签名算法以及信息类型标志打包成一个信息包,利用代理节点的公钥签名后发布到网络中,代理节点将密钥对信息以及用户ID发送给请求的用户,用户在信息被区块链确认之后,发布自己的公钥;第二步,用户生成公钥私钥对,并生成公钥信息,将自己的公钥信息广播到区块链网络中用户在生成自己的密钥之后,将密钥的生效时间段、用户ID、签名算法以及信息类型标志封装成附加信息附在生成的公钥之后,生成完整的公钥信息,用户对完整的公钥信息进行签名,签名所使用的私钥为存在于区块链中的有效公钥信息对应的私钥,使得收到信息的节点能够对公钥信息进行验证;第三步,节点对收到的公钥信息进行验证,加入本地缓存当节点从网络中收到一条公钥信息时,通过附加信息中存储的签名者ID查找到用户存储于区块链中的公钥信息;通过验证签名的方式证明信息由用户自身生成;在信息通过签名验证后,节点会将公钥信息存储入本地缓存中,同时转发用户的公钥信息;第四步,节点在生成或收到一个新的区块后,开始进行下一个区块的生成节点首先对收到的区块进行验证,保证区块符合当前区块链的难度目标,并且转发符合难度目标的区块,当新收到的区块位于主链上时,将本地缓存的公钥信息进行整理,和收到的区块中的信息进行比对,将未包含在链中的公钥信息生成一颗哈希树,以上一个区块头的哈希值,区块体的哈希树根,时间戳和随机值四部分为内容生成区块头,通过调节随机值的内容,开始生成新的区块;当新区块不位于主链上时,区块链产生分叉,当新区块所在链的长度不大于于节点正在工作的链的长度时,节点只是将区块进行存储,只有当新到的链使得一个支链长度超过节点当前工作的链,成为新的主链后,才切换到新的链上进行工作,在链之间切换时,对区块的两个链进行比对,避免原有主链中存储的信息丢失;第五步,当用户需要获取其他用户的公钥时,向区块链请求公钥信息用户需要其他用户的公钥信息时,向区块链网络发起请求,区块链网络中的节点在收到请求后,在本地查找被请求用户的公钥信息,请求的报文不会被转发给其他的节点,当节点在本地查找到有效的信息时,将用户公钥信息和该信息对应的默克尔分支包装成报文返回给发起请求的用户,用户在收到信息后,对信息进行简单的验证,默克尔树的节点的值由节点的子节点通过哈希运算得到,在获得公钥信息和对应的默克尔分支之后,用户通过运算得到默克尔树根的值,通过和存储在区块头中的信息进行比较,验证传递的信息是否被更改。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810841999.0/,转载请声明来源钻瓜专利网。