一种用于多方存证的一键式密钥建立方法和装置

文档序号:29963568发布日期:2022-05-11 09:44阅读:167来源:国知局
一种用于多方存证的一键式密钥建立方法和装置

1.本技术涉及区块链技术领域,具体涉及一种用于多方存证的一键式密钥建立方法和装置。


背景技术:

2.随着目前互联网的普及,电子证据步入大众视野,要实现电子证据的更广泛应用,一个重要的研究课题就是如何提高电子证据的有效性。借助区块链不易篡改的特性,证据在存到区块链上可以保证其真实性,但是在证据传到区块链的过程中是否被篡改无法保障,这已成为了迫切需要解决的技术问题。


技术实现要素:

3.为了解决上述技术问题,本发明提供了一种用于多方存证的一键式密钥建立方法和装置。本发明针对电子证据上链的过程,设计了能够基于时间戳且支持多方认证的电子证据存证方案。相较于一般的存证流程,本发明在认证过程中加入时间戳,且支持多见证方,保证电子证据的有效性。
4.本发明所采用的技术方案如下:
5.一种用于多方存证的一键式密钥建立方法,该方法应用于存证过程中的用户a、见证方w以及区块链服务器b,该方法包括如下步骤:
6.步骤1、见证方w分别与用户a和区块链服务器b协商确定会话密钥z
aw
、会话密钥z
bw

7.步骤2、用户a使用所述会话密钥z
aw
对电子证据ed进行加密,并将加密后的电子证据ed发送给见证方w;
8.步骤3、见证方w对加密后的电子证据ed进行验证,若验证通过,则计算哈希值h1和h2并发送给区块链服务器b,执行步骤4;若验证不通过,则结束流程;
9.步骤4、区块链服务器b对哈希值h1和h2进行验证,若验证通过,则将哈希值h1存储到区块链上。
10.进一步的,所述步骤1包括在用户a处执行如下子步骤:
11.步骤p01、使用随机数生成器生成用户随机数ra,并获取当前系统的时间戳ta;
12.步骤p02、计算用户a与见证方w之间的会话密钥其中,yw表示见证方w的长期公钥;
13.步骤p03、使用用户随机数ra来计算数值其中,g表示椭圆曲线上的基点;
14.步骤p04、使用当前系统的时间戳ta和所述会话密钥z
aw
通过哈希函数h来计算数值r

=h(z
aw
,ta);
15.步骤p05、计算数值sa=r
a-xar

mod q,其中,xa表示用户a的长期私钥,q表示椭圆曲线的阶;
16.步骤p06、使用普通信道将数值ra′
和数值sa发送给见证方w。
17.进一步的,所述步骤1包括在见证方w处执行如下子步骤:
18.步骤c01、通过普通信道接收用户a发送的数值ra′
和数值sa;
19.步骤c02、计算见证方w与用户a之间会话密钥其中,xw表示见证方的长期私钥;
20.步骤c03、使用当前系统的时间戳tw和用户a与见证方w之间的会话密钥z
aw
来计算数值r

=h(z
aw
,tw);
21.步骤c04、验证关系式是否成立,其中,g表示椭圆曲线上的基点,ya表示见证方a的长期公钥;
22.若所述关系式成立,则用户a与见证方w会话密钥协商正确,继续执行步骤c05;若所述关系式不成立,则结束密钥建立流程并退出;
23.步骤c05、使用随机数生成器生成随机数rw;
24.步骤c06、计算见证方w与区块链服务器b之间会话的密钥其中,yb代表区块链服务器b的长期公钥;
25.步骤c07、计算数值
26.步骤c08、使用当前系统的时间戳t和会话密钥z
bw
通过哈希函数h来计算数值r

=h(z
bw
,t);
27.步骤c09、计算数值sw=r
w-x
wr′
mod q,其中,xw表示见证方w的长期私钥;
28.步骤c10、使用普通信道将数值rw′
和数值sw发送给区块链服务器b。
29.进一步的,所述步骤1包括在区块链服务器b处执行如下子步骤:
30.步骤y01、通过普通信道接收见证方w发送的数值rw′
和数值sw;
31.步骤y02、根据数值rw′
和区块链服务器b的长期私钥xb计算会话密钥
32.步骤y03、使用当前系统的时间戳tb和会话密钥z
bw
通过哈希函数h来计算数值r

=h(z
bw
,tb);
33.步骤y04、验证关系式是否成立,其中,g表示椭圆曲线上的基点,yb表示区块链服务器b的长期公钥;
34.若所述关系式成立,则见证方w与区块链服务器b会话密钥协商正确;若所述关系式不成立,则结束密钥建立流程并退出。
35.进一步的,所述步骤2包括如下子步骤:
36.步骤ap01、使用会话密钥z
aw
对需要上传到区块链的电子证据ed进行加密以生成密

37.步骤ap02、使用电子证据ed和会话密钥z
aw
通过哈希函数h计算数值h(z
aw
,ed);
38.步骤ap03、使用普通信道将密文和数值h(z
4w
,ed)发送给见证方w。
39.进一步的,所述步骤3包括如下子步骤:
40.步骤wc01、通过普通信道接收用户a发送的密文和数值h(z
aw
,ed);
41.步骤wc02、使用会话密钥z
aw
的对称解密函数对所述密文进行解密,获得解密后的电子证据
[0042][0043]
步骤wc03、使用所述解密后的电子证据ed和会话密钥z
aw
通过哈希函数h计算得到数值h(z
aw
,ed),并将其与从用户a处接收到的数值h(z
aw
,ed)相比较,若两者相等,则电子证据ed在传输过程中未被篡改,继续执行步骤wc04;若两者不相等,则退出流程;
[0044]
步骤wc04、根据电子证据ed计算哈希值h1=h(ed);
[0045]
步骤wc05、根据哈希值h1和会话密钥z
bw
计算哈希值h2=h(z
bw
,h1);
[0046]
步骤wc06、通过普通信道将哈希值h1和h2发送至区块链服务器b。
[0047]
进一步的,所述步骤4包括如下子步骤:
[0048]
步骤by01、通过普通信道接收见证方w发送的哈希值h1和h2;
[0049]
步骤by02、验证关系式h(z
bw
,h1)=h2是否成立,若关系式成立,则数据在传输过程中未被篡改,继续执行步骤by03;若关系式不成立,则退出流程;
[0050]
步骤by03、将哈希值h1存储到区块链上。
[0051]
进一步的,所述见证方w包括多个见证方wi,所述多个见证方wi分别与用户a和区块链服务器b执行所述步骤1-4以将数据存储到区块链上。
[0052]
一种用于多方存证的一键式密钥建立装置,该装置包括存储器和处理器,所述存储器存储一个或多个程序;当所述一个或多个程序被所述处理器执行,使得所述处理器实现上述方法。
[0053]
通过本技术实施例,可以获得如下技术效果:相较于现有技术中已有的存证流程,本发明在认证过程中加入时间戳,且支持多见证方,保证电子证据的有效性。
附图说明
[0054]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0055]
图1为一键式密钥建立方法的流程示意图。
具体实施方式
[0056]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本技术保护的范围。
[0057]
图1为一键式密钥建立方法的流程示意图。该一键式密钥建立方法使用指数运算来建立密钥,并且使用时间戳来保障密钥的安全,密钥建立双方各进行三步即可完成。在对方法进行介绍之前,先对方法中的各个参数进行说明:
[0058]
a:代表存证过程中的用户;
[0059]
w:代表存证过程中的见证方;
[0060]
b:代表存证过程中的区块链服务器;
[0061]
g:代表椭圆曲线上的基点;
[0062]
q:代表椭圆曲线的阶;
[0063]
ra:代表使用随机生成器生成的用户a的随机数;
[0064]
t:代表当前系统的时间戳;
[0065]
xa:代表用户a的长期私钥;
[0066]
ya:代表用户a的长期公钥;
[0067]
xb:代表区块链服务器b的长期私钥;
[0068]
yb:代表区块链服务器b的长期公钥;
[0069]
xw:代表见证方w的长期私钥;
[0070]yw
:代表见证方w的长期公钥;
[0071]
r、r’、s:代表计算的数值;
[0072]
ed:代表需要上传区块链的电子证据;
[0073]
z:代表会话密钥;
[0074]
h(
·
):代表使用哈希函数;
[0075]
enc
x
(
·
):代表使用密钥x的对称加密函数;
[0076]
dec
x
(
·
):代表使用密钥x的对称解密函数。
[0077]
本技术的一键式密钥建立方法包括两个阶段,第一阶段为密钥建立阶段,第二阶段为数据存储阶段。该方法应用于存证过程中的用户a、见证方w以及区块链服务器b,该方法包括如下步骤:
[0078]
步骤1、见证方w分别与用户a和区块链服务器b协商确定会话密钥z
aw
、会话密钥z
bw

[0079]
步骤2、用户a使用所述会话密钥z
aw
对电子证据ed进行加密,并将加密后的电子证据ed发送给见证方w;
[0080]
步骤3、见证方w对加密后的电子证据ed进行验证,若验证通过,则计算哈希值h1和h2并发送给区块链服务器b,执行步骤4;若验证不通过,则结束流程;
[0081]
步骤4、区块链服务器b对哈希值h1和h2进行验证,若验证通过,则将哈希值h1存储到区块链上。
[0082]
下面分别针对两个阶段进行详细的说明。
[0083]
1、密钥建立阶段
[0084]
(1)用户a处的p算法:
[0085]
密钥建立阶段,在存证过程中的用户a处包括如下子步骤:
[0086]
步骤p01、使用随机数生成器生成用户随机数ra,并获取当前系统的时间戳ta;
[0087]
步骤p02、计算用户a与见证方w之间的会话密钥其中,yw表示见证方w的长期公钥;
[0088]
步骤p03、使用用户随机数ra来计算数值其中,g表示椭圆曲线上的基点;
[0089]
步骤p04、使用当前系统的时间戳ta和所述会话密钥z
aw
通过哈希函数h来计算数值r

=h(z
aw
,ta);
[0090]
步骤p05、计算数值sa=r
a-xar

mod q,其中,xa表示用户a的长期私钥,q表示椭圆曲线的阶;
[0091]
步骤p06、使用普通信道将数值ra′
和数值sa发送给见证方w。
[0092]
(2)见证方w处的c算法:
[0093]
密钥建立阶段,在存证过程中的见证方w处包括如下子步骤:
[0094]
步骤c01、通过普通信道接收用户a发送的数值ra′
和数值sa;
[0095]
步骤c02、计算见证方w与用户a之间会话密钥其中,xw表示见证方的长期私钥;
[0096]
步骤c03、使用当前系统的时间戳tw和用户a与见证方w之间的会话密钥z
aw
来计算数值r

=h(z
aw
,tw);
[0097]
步骤c04、验证关系式是否成立,其中,g表示椭圆曲线上的基点,ya表示见证方a的长期公钥;
[0098]
若所述关系式成立,则用户a与见证方w会话密钥协商正确,继续执行步骤c05;若所述关系式不成立,则结束密钥建立流程并退出;
[0099]
步骤c05、使用随机数生成器生成随机数rw;
[0100]
步骤c06、计算见证方w与区块链服务器b之间会话的密钥其中,yb代表区块链服务器b的长期公钥;
[0101]
步骤c07、计算数值
[0102]
步骤c08、使用当前系统的时间戳t和会话密钥z
bw
通过哈希函数h来计算数值r

=h(z
bw
,t);
[0103]
步骤c09、计算数值sw=r
w-x
wr′
mod q,其中,xw表示见证方w的长期私钥;
[0104]
步骤c10、使用普通信道将数值rw′
和数值sw发送给区块链服务器b。
[0105]
在上述算法中,从步骤c01至步骤c04完成了用户a与见证方w之间的会话密钥z
aw
的协商,从步骤c05至步骤c10实现了见证方w与区块链服务器b之间的会话密钥z
bw
的协商。
[0106]
(3)区块链服务器b处的y算法
[0107]
步骤y01、通过普通信道接收见证方w发送的数值rw′
和数值sw;
[0108]
步骤y02、根据数值rw′
和区块链服务器b的长期私钥xb计算会话密钥
[0109]
步骤y03、使用当前系统的时间戳tb和会话密钥z
bw
通过哈希函数h来计算数值r

=h(z
bw
,tb);
[0110]
步骤y04、验证关系式是否成立,其中,g表示椭圆曲线上的基点,yb表示区块链服务器b的长期公钥;
[0111]
若所述关系式成立,则见证方w与区块链服务器b会话密钥协商正确;若所述关系式不成立,则结束密钥建立流程并退出。
[0112]
在上述算法中,见证方w与区块链服务器b协商出了安全的会话密钥z
bw

[0113]
2、数据存储阶段:
[0114]
(1)用户a处的p算法:
[0115]
步骤ap01、使用会话密钥z
aw
对需要上传到区块链的电子证据ed进行加密以生成密文
[0116]
步骤ap02、使用电子证据ed和会话密钥z
aw
通过哈希函数h计算数值h(z
aw
,ed);
[0117]
步骤ap03、使用普通信道将密文和数值h(z
aw
,ed)发送给见证方w。
[0118]
(2)见证方w处的c算法:
[0119]
步骤wc01、通过普通信道接收用户a发送的密文和数值h(z
aw
,ed);
[0120]
步骤wc02、使用会话密钥z
aw
的对称解密函数对所述密文进行解密,获得解密后的电子证据
[0121][0122]
步骤wc03、使用所述解密后的电子证据ed和会话密钥z
aw
通过哈希函数h计算得到数值h(z
aw
,ed),并将其与从用户a处接收到的数值h(z
aw
,ed)相比较,若两者相等,则电子证据ed在传输过程中未被篡改,继续执行步骤wc04;若两者不相等,则退出流程;
[0123]
步骤wc04、根据电子证据ed计算哈希值h1=h(ed);
[0124]
步骤wc05、根据哈希值h1和会话密钥z
bw
计算哈希值h2=h(z
bw
,h1);
[0125]
步骤wc06、通过普通信道将哈希值h1和h2发送至区块链服务器b。
[0126]
(3)区块链服务器b处y算法:
[0127]
步骤by01、通过普通信道接收见证方w发送的哈希值h1和h2;
[0128]
步骤by02、验证关系式h(z
bw
,h1)=h2是否成立,若关系式成立,则数据在传输过程中未被篡改,继续执行步骤by03;若关系式不成立,则退出流程;
[0129]
步骤by03、将哈希值h1存储到区块链上。
[0130]
在另一种实施方式中,一份电子证据在上链的过程中,需要通过多个见证方wi的
认证才能最大化提升电子证据的有效性。用户与不同见证方wi的认证过程与上述单见证方w的方法一致。
[0131]
在一些实施例中,计算机程序的部分或者全部可以经由rom而被载入和/或安装到设备上。当计算机程序加载并被执行时,可以执行上文描述的方法的一个或多个步骤。
[0132]
本技术中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。
[0133]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0134]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0135]
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
[0136]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1