首页 / 专利库 / 银行与财务事项 / 加密货币 / 比特币 / 一种基于区块链的数字签名的时间戳生成方法

一种基于链的数字签名的时间戳生成方法

阅读:818发布:2020-05-14

专利汇可以提供一种基于链的数字签名的时间戳生成方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 的数字签名的时间戳生成方法,主要包含三个阶段:系统参数建立阶段,签名阶段,验证阶段。其中,在签名阶段,签名者获取区块链中n个最新确认的区块的哈希值,并将这n个哈希值与待签名的消息M绑定在一起记为M’,对M’进行签名得到签名T,签名者计算M’||T的哈希值h,并将h通过交易Tx上传到区块链上。验证方在完成签名T的验证之后,取第n个哈希值所在区块的生成时间之后,交易Tx所在区块的生成时间之前的时间范围作为签名T的时间戳,是一种去中心化的为数字签名打时间戳的精确方法。,下面是一种基于链的数字签名的时间戳生成方法专利的具体信息内容。

1.一种基于链的数字签名的时间戳生成方法,其特征在于,包括步骤:
1)系统参数建立阶段:
区块链生成区块并记录每个区块的生成时间,系统产生安全的哈希函数H(.)、签名算法Sig(.)以及相应的验证算法Ver(.);
2)签名阶段:
2-1)签名者获取区块链中最近生成的n个连续区块的哈希值h1,h2,…,hn,再计算哈希值hBlock=H(h1||h2||…||hn),利用签名算法对消息M和哈希值hBlock进行签名处理得到签名T=Sig(M||hBlock),再计算哈希值h=H(M||h1||h2||…||hn||T),最后生成一笔包含哈希值h的区块链交易Tx发送至区块链;
2-2)区块链对交易Tx进行记录,其中交易Tx记录在区块链中的位置L;
2-3)签名者记录上交易Tx所在的区块链中的位置L,将消息M、哈希值h1,h2,…,hn、签名T和位置L发送给验证者;
3)验证阶段,验证者收到消息M、哈希值h1,h2,…,hn、签名T和位置L后,对签名进行验证并生成数字签名的时间戳:
3-1)验证者验证哈希值h1,h2,…,hn是否是区块链上连续的n个区块的哈希值,若不是,退出;若是,继续执行下一步;
3-2)根据位置L在区块链中找到签名者的交易Tx,并获取哈希值h,验证者验证等式h=H(M||h1||h2||…||hn||T)是否成立。若等式不成立,退出;若等式成立,继续执行下一步;
3-3)计算哈希值hBlock=H(h1||h2||…||hn),再执行签名的验证算法Ver((M||hBlock),T),若验证失败,则签名无效并退出;若验证通过,则签名有效,验证者B在区块链上获取记录该交易Tx的区块的生成时间t以及哈希值为hn的区块的生成时间t’,验证者B确认签名T的时间戳为[t’,t]。
2.如权利要求1所述方法,其特征在于,如区块链为以太坊区块链,设置n≥12。
3.如权利要求1所述方法,其特征在于,如区块链为比特币区块链,设置n≥6。

说明书全文

一种基于链的数字签名的时间戳生成方法

技术领域

[0001] 本发明属于数据保护技术,具体涉及一种为数字签名打时间戳的方法。

背景技术

[0002] 时间戳是数字文件创建于某个时间的证明,是保护数字信息证据价值的必不可少的工具。1990年,Stuart Haber等人在CRYPTO 90上提出了一个为数字文件打时间戳的方案,该方案通过一个可信中心为数字文件的哈希值和当前时间进行签名来实现时间戳的不可伪造性。后续工作提出了大量的改进方案,但是现有方案均依赖可信第三方,并不能解决单点失效的问题。

发明内容

[0003] 本发明所要解决的技术问题是,提供一种基于区块链技术为数字签名打时间戳的实现方法。
[0004] 本发明为解决上述技术问题所采用的技术方案是,一种基于区块链的数字签名的时间戳生成方法,主要包含三个阶段:系统参数建立阶段,签名阶段,验证阶段。
[0005] 系统参数建立阶段:区块链生成区块并记录每个区块的生成时间,系统产生安全的哈希函数、签名算法以及相应的验证算法;
[0006] 签名阶段:签名者获取区块链中n个最新确认的区块的哈希值,并将这n个哈希值与待签名的消息M绑定在一起记为M’,对M’进行签名得到签名T,签名者计算M’||T的哈希值h,并将h通过交易Tx上传到区块链上;
[0007] 验证阶段:验证方在签名T的验证通过之后,取第n个哈希值所在区块的生成时间之后,交易Tx所在区块的生成时间之前的时间范围作为签名T的时间戳。
[0008] 区块链是一个去中心化的分布式帐本,通过哈希值将链上的区块连接起来,保证了区块的时序性,并且区块链的每个区块中包含了该区块的产生时间。
[0009] 本发明的有益效果是,基于区块链技术解决了单点失效的问题,是一种去中心化的为数字签名打时间戳的精确方法。

具体实施方式

[0010] Blockchain为一个公有区块链,对于系统中任意用户生成的数字签名,系统中其他任意用户均可通过Blockchain对该数据签名进行验证并产生精确的,具有一致性的时间戳。以下以签名者A、验证者B为例进行说明。
[0011] 一、系统参数建立阶段:
[0012] 设Blockchain中一个区块后链接有n个区块则可以确认该区块在Blockchain上。系统生成安全的哈希函数H(.)、签名算法SigA(.)以及相应的验证算法VerA(.),下标A表示签名者A。T=SigA(M)表示签名者A对消息M签名,得到签名T。VerA(M,T)表示验证者验证签名者A对消息M的签名T的有效性,有效则返回true,无效则返回false。||表示连接符号。签名算法Sig可以为任意签名算法。
[0013] 二、签名阶段:
[0014] 签名者A需要对消息M签名时,执行以下操作:
[0015] 1.获取目前Blockchain上最新确认的n个区块的哈希值h1,h2,...,hn(按照区块高度由低到高排列);优选的,在以太坊中n≥12,在比特币中n≥6;
[0016] 2.将这n个哈希值与待签名的消息M绑定在一起的方式为:计算哈希值hBlock=H(h1||h2||...||hn),再M||hBlock记为M’;
[0017] 3.对M’进行签名T=SigA(M||hBlock),得到签名T;
[0018] 4.计算哈希值hA=H(M||h1||h2||...||hn||T);
[0019] 5.生成一笔包含hA的区块链交易,并将这笔交易发送到Blockchain上,并确保Blockchain对这笔交易进行记录(交易Tx记录在Blockchain中的位置L上);
[0020] 6.签名者A记录该笔交易在Blockchain上的位置L,并将消息M、哈希值h1,h2,...,hn、签名T和位置L发送给验证者B。
[0021] 三、验证阶段:
[0022] 验证者B收到消息M、哈希值h1,h2,...,hn、签名T和位置L后,需要验证签名和确认数字签名的时间戳。验证者B执行以下操作:
[0023] 1.验证哈希值h1,h2,...,hn是否是Blockchain上连续的n个区块的哈希值,若不是,退出;若是,继续执行下一步;
[0024] 2.利用位置信息L在Blockchain中找到签名者A的交易,并获取哈希值hA,验证者B验证等式hA=H(M||h1||h2||...||hn||T)是否成立。若等式不成立,退出;若等式成立,继续执行下一步;
[0025] 3.计算哈希值hBlock=H(h1||h2||...||hn);
[0026] 4.执行验证算法VerA((M||hBlock),T),若返回false,则签名无效,并退出;若返回true,则签名有效,验证者B获取交易Tx所在区块的生成时间t,记Blockchain上哈希值是hn的区块的生成时间为t’;验证者B确认签名T产生的时间在t之前,并且在t’之后,将时间间隔[t’,t]作为数字签名T的时间戳。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈