一种基于区块链的无密钥签名基础设施构建方法与流程

文档序号:11253730阅读:1596来源:国知局
一种基于区块链的无密钥签名基础设施构建方法与流程

本发明涉及数据安全技术,尤其是涉及一种基于区块链的无密钥签名基础设施构建方法。



背景技术:

近年来,以系统破坏、信息窃取以及电子欺诈为主的内部攻击,由于其隐蔽性强、破坏性大的特性,对个人和企业乃至国家安全造成了严重威胁。传统的解决方案,例如持续监控、数据加密等措施,部署和维护费用高昂,且随着移动设备以及可插拔存储设施的增多,依靠传统的安全方案解决内部攻击的难度与日俱增。

为解决上述问题,最根本有效的方式是确保数字资产不合法使用的记录不可更改。ksi(keylesssignatureinfrastructure,无密钥签名基础设施)正是这样一种基础设施,它可以检测数字资产的更改状态并将这些信息提交进一步的审计和调查:不仅针对数字资产状态提供实时的认证,防止数据的丢失,也为合法用户进行恶意活动的检测提供存证。

与传统的签名方法不同(例如pki使用的是非对称加密方式),ksi只采用了哈希加密的方式,因此系统并不受密钥泄露等问题的影响,从而保证数字签名的长期有效性。相较之下,即使传统的pki签名增加了安全时间戳这一保障措施,仍然无法解决密钥泄露问题。当然,“无密钥”并不意味着在签名产生过程中不使用任何的密钥:在ksi中,签名者的身份认证与完整性证据保护是相互独立的两个过程,对于身份认证,密钥仍然不可或缺,即签名者身份认证是基于非对称加密完成;而数据的完整性保护则使用的是无密钥签名。

无密钥签名基础设施的工作流程可概括为三个步骤:哈希、聚合和发布

1)哈希:客户端将文件进行哈希,产生的哈希值在后续的过程中代表该文件本身;

2)聚合:每个周期内形成的哈希树代表该阶段签名的所有文件。当前系统中每个周期默认为1秒;

3)发布:每个周期内形成的哈希树的根发布到分布式的calendarhash数据库中,ksi的用户均可保存一个副本;hashcalendar中的哈希值进一步形成哈希树,其根哈希值(calendarroothash,crh),则被发布到报纸、微博等媒体中,作为信任锚点。当前,crh的发布周期为一个月。

ksi采用哈希树聚合技术,系统中提交的任何一个数据都可以“追根溯源”。如图1所示,用户发送一个文件的哈希值,假定为x1,接收到的所有的请求均被聚合为一个哈希树,返回给用户的签名中则包含了从叶子节点到根节点的完整路径。为了证明x3的完整性,需要利用x4、x12和x58重新生成根哈希值,以证明x3参与了根节点的生成。

对于每一个用户提交的数字资产的哈希值,都存在唯一与之对应的“哈希链”:包含了由数字资产哈希值节点构建出calendarhash数据库中的根节点所需的一系列哈希值及其计算路径。ksi返回给用户的签名包含了哈希链、签名时间的加密证明、数字资产哈希值提交者身份。无论何时何地,通过访问calendarhash数据库,利用签名就可以验证数据的完整性。

ksi基础设施主要包含四个部分:核心层(corelayer),聚合层(aggregator),验证服务器(verfier)以及网关(gateway)。各部分的功能如下:

1)核心层:选择出每秒形成的哈希树的根,管理calendarhash数据库;

2)聚合层:聚合哈希值和分发签名;

3)验证服务器:提供了访问calendarhash数据库状态的公共接口。

4)网关:网关是ksi基础设施中面向客户端的组件,负责收集和处理客户端发送的请求,并将聚合后的请求发送到上层集群。

然而,当前ksi存在的三个方面的缺陷:

(1)ksi中核心层选择出每秒形成的哈希树的根,并将其发布在calendarhash数据库中,该数据库中的数据将作为客户端验证签名的权威账本,但目前缺乏中心化calendarhash数据库的可信机制。

(2)crh的发布缺乏高效性,发布周期为每个月一次,crh只能确保其发布时间戳之前的数据的有效性,不能满足细粒度的完整性证明需求。

(3)ksi中crh的发布渠道为报纸、论坛以及微博平台,其中对于纸质的媒体需要进行人工识别和处理;而发布在论坛以及微博等平台的数据则很容易称为攻击者的攻击对象。



技术实现要素:

本发明的目的是提出一种基于区块链的ksi核心层及发布层构建方法,在不改变当前无密钥签名基础设施架构的情形下,利用区块链完成ksi核心层节点的身份认证,保障了calendarhash账本的公开透明性,并解决了当前crh发布周期过长,发布媒体缺乏可信性、不易于识别和处理的问题。

为了实现本发明的目的,特提出如下技术方案:

一种基于区块链的无密钥签名基础设施构建方法,所述构建方法包括步骤:

1)客户端提交数据或者文件的哈希值至网关层;

2)网关层收集和处理客户端的提交的哈希值,并聚合成merkletree;

3)网关层将形成的merkletree的根哈希值发送至聚合层;

4)聚合层服务器处理网关层发送的根哈希值,并将其添加到merkletree;

5)聚合层服务器将形成的根哈希值发送至核心层;

6)核心层服务器通过身份认证后接入区块链网络中,接收聚合层提交的哈希值并聚合成merkletree;

7)核心层将每秒时间内形成的merkletree的根哈希值,即calendarhash,通过op_return<calendarhash>格式嵌入交易脚本op_rerurn中,并将交易发布在区块链网络中;

8)矿工收集区块链网络中的交易信息,构建merkletree,将crh写入到区块头中;

9)客户端将接收到各层服务器逐层返回的签名,该签名中包含了由用户提交的数字资产哈希值节点构建出crh所需的一系列哈希值及其计算路径,用户通过访问已经下载到本地的区块数据,利用签名验证数据的完整性。

在所述步骤7,核心层节点通过身份认证,将汇聚层形成的根哈希值嵌入在op_return交易脚本中,并在区块链网络中通过广播进行交易发布,并最终打包进入区块,形成了ksicalendarhash账本。

在所述步骤8,矿工提取交易中op_return中的内容calendarhash,用于merkletree的构建,最终形成的根哈希值crh。

在所述步骤8,矿工通过共识机制竞争或分配区块的记账权,并调节区块的生产时间,即crh的发布周期,形成基于区块链的ksi发布层架构。

本发明的技术效果:

1、核心层节点通过身份认证,将汇聚层形成的根哈希值嵌入在op_return交易脚本中,并在区块链网络中进行广播,并最终打包进入区块,形成了一种公开、透明、可信的ksicalendarhash账本,相较于传统的无密钥签名基础设施,基于区块链的calendarhash账本解决了核心层节点身份的可信性,以及账本的公开透明性;

2、通过共识机制,发布节点(矿工)竞争或分配区块的记账权,同时通过共识机制调节区块的生产时间,也即crh的发布周期,解决了传统ksi中crh发布周期过长的问题;

3、crh只记录在区块头中,用户下载轻量级区块数据(即只下载区块头),即可实现crh的备份,解决了传统ksi中发布媒体缺乏可信性、不易于识别和处理的问题。

4、相较于单一基于区块链的数据完整性证明系统,将ksi和区块链结合使得系统吞吐量及扩展性更强,更适用于大规模工业应用,且算力、存储及网络负载需求极小。

附图说明

图1哈希树聚合过程示例;

图2是基于区块链的无密钥签名基础设施中哈希值聚合及发布过程;

图3是基于区块链的无密钥签名基础设施的工作流程。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合附图和具体实施例,对本发明进一步详细说明。

n区块链

区块链是一种去中心化的记录技术,参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学的方法记录到一个区块,同时生成该区块的指纹用于链接下个区块和校验。系统所有参与节点来共同认定记录和校验,共同认定记录是否为真,同时每个节点都能复制获得一份完整记录的拷贝。与传统的记账技术相比,其特点如下:

1)系统节点共同维护的链不断增长,只可能添加记录,而发生过的记录都不可篡改;

2)去中心化,或者说多中心化,无需集中的控制而能达成共识;

3)通过密码学的机制来确保交易无法抵赖和破坏,并保护用户信息和记录的隐私性;

在众多区块链商业应用中,比特币区块链平台其凭借广泛的基础设施和强大的网络效应,被认为终将成为区块链领域标准的底层。

在比特币中,构成区块链的区块是一种聚合了交易信息的容器数据结构。它由一个包含元数据的区块头和紧跟其后的构成区块主体的一长串交易组成。区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块至少包含超过500个交易。因此,一个包含所有交易的完整区块比区块头的1000倍还要大。

其中,区块头由三组区块元数据组成。首先是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度、时间戳和nonce,与挖矿竞争相关,第三组元数据是merkle树根(一种用来有效地总结区块中所有交易的数据结构)。

nmerkle树

merkle树是一种哈希二叉树,它是一种用作快速归纳和校验大规模数据完整性的数据结构。这种二叉树包含加密哈希值。术语“树”在计算机学科中常被用来描述一种具有分支的数据结构,但是树常常被倒置显示,“根”在图的上部同时“叶子”在图的下部。

在比特币网络中,merkle树被用来归纳一个区块中的所有交易,同时生成整个交易集合的数字指纹,且提供了一种校验区块是否存在某交易的高效途径。生成一棵完整的merkle树需要递归地对哈希节点对进行哈希,并将新生成的哈希节点插入到merkle树中,直到只剩一个哈希节点,该节点就是merkle树的根。在比特币的merkle树中两次使用到了sha256算法,因此其加密哈希算法也被称为double-sha256。

n交易

比特币交易是比特币系统中最重要的部分。一笔比特币交易是一个含有输入值和输出值的数据结构,该数据结构植入了将一笔资金从初始点(输入值)转移至目标地址(输出值)的代码信息。比特币交易的基本单位是utxo(未经使用的一个交易输出)。被交易消耗的utxo被称为交易输入,由交易创建的utxo被称为交易输出。通过这种方式,一定量的比特币价值在不同所有者之间转移,并在交易链中消耗和创建utxo。一笔比特币交易通过使用所有者的签名来解锁utxo,并通过使用新的所有者的比特币地址来锁定并创建utxo.当一笔比特币交易被验证时,每一个输入值中的解锁脚本被与其对应的锁定脚本同时(互不干扰地)执行,从而查看这笔交易是否满足使用条件。

在当前的几种标准交易脚本中,op_return脚本允许开发者在交易输出上增加40字节的非交易数据。然后,与伪交易型的utxo不同,op_return创造了一种明确的可复查的非交易型输出,此类数据无需存储于utxo集。op_return输出被记录在区块链上,它们会消耗磁盘空间,也会导致区块链规模的增加,但它们不存储在utxo集中,因此也不会使得utxo内存膨胀,更不会以消耗代价高昂的内存为代价使全节点都不堪重负。

op_return脚本的样式:

op_return<data>

“data”部分被限制为40字节,且多以哈希方式呈现,如32字节的sha256算法输出。许多应用都在其前面加上前缀以辅助认定。例如,电子公正服务的证明材料采用8个字节的前缀“docproof”,在十六进制算法中,相应的ascii码为44f4350524f4f46。

本发明考虑引入区块链技术,设计一种基于区块链技术的无密钥签名基础设施,以解决传统无密钥签名基础设施存在的问题。

图2展示了客户端提交的数据或文件哈希值经过层层聚合,最终形成calendarhash发布在区块链网络中并形成crh的过程;图3是基于区块链的无密钥签名基础设施的工作流程。由图2及图3所示,本发明基于区块链的无密钥基础设施的工作流程分为以下几步:

第一步,客户端提交数据或者文件的哈希值至网关层;

第二步,网关层收集和处理客户端的提交的哈希值,并聚合成merkletree;

第三步,网关层将形成的merkletree的根哈希值发送至聚合层;

第四步,聚合层服务器处理网关层发送的根哈希值,并将其添加到merkletree;

第五步,聚合层服务器将形成的根哈希值发送至核心层;

第六步,核心层服务器通过身份认证后接入区块链网络中,接收聚合层提交的哈希值并聚合成merkletree;

第七步,核心层将每秒时间内形成的merkletree的根哈希值,即calendarhash,嵌入交易脚本op_rerurn中,格式如下:

op_return<calendarhash>

并将交易发布在区块链网络中;

第八步,矿工(竞争记账权的发布层节点)收集区块链网络中的交易信息,构建merkletree,与比特币中merkletree的构造方法不同,在本发明中,矿工只需提取交易中op_return中的内容(calendarhash),用于merkletree的构建,最终形成的根哈希值即为crh,所以crh将被写入到区块头中;通过共识机制,矿工竞争或分配区块的记账权,并通过共识机制可以调节区块的生产时间,也即crh的发布周期;

第九步,客户端将接收到各层服务器逐层返回的签名,该签名中包含了由用户提交的数字资产哈希值节点构建出crh所需的一系列哈希值及其计算路径。

由于crh只记录在区块头中,用户下载轻量级区块数据(即只下载区块头),即可实现crh的备份。用户无论在何时何地,均可以通过访问已经下载到本地的区块数据,利用签名验证数据的完整性,无须依赖密钥和任何中心化的权威机构。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1