一种基于区块链技术的密钥签名方法技术

技术编号:28736665 阅读:13 留言:0更新日期:2021-06-06 11:44
本发明专利技术适用区块链签名技术领域,提供了一种基于区块链技术的密钥签名方法,该方法包括:区块链客户端使用私钥密钥加密算法生成公钥,使用私钥对客户端生成的数据进行签名,将签名后的数据及公钥密钥加密算法的位置索引发送至区块链节点,区块链节点采用位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签;其中,对数据进行签名时纳入了随机数和哈希算法,以提高了安全级别;并且还使用私钥进行单向运算得出公钥,更进一步提高了安全性;实现在公钥暴露的情况下无法得出私钥,尽而提高了用户体验。尽而提高了用户体验。

【技术实现步骤摘要】
一种基于区块链技术的密钥签名方法
[0001]

[0002]本专利技术属于区块链加密
,尤其涉及一种基于区块链技术的密钥签名方法。

技术介绍

[0003]区块链技术是一种去中心化的分布式互联网数据库,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中,为了保证数据在整个系统中不可篡改,以及保证交易双方的身份真实可靠等原因,需要对交易数据进行签名认证。
[0004]因此需要一种区块链访问的安全机制,提高区块链技术使用的安全险和可靠性。
[0005]
技术实现思路

[0006]鉴于上述现有技术的不足,本专利技术的目的在于提供一种基于区块链技术的密钥签名方法,旨在解决由于现有技术无法提供一种有效的基于区块链技术的密钥签名方法,导致签名可以被反推破解、安全性差、用户体验不佳的问题。
[0007]一方面,本专利技术提供了一种基于区块链技术的密钥签名方法,所述方法包括下述步骤:区块链客户端使用私钥密钥加密算法生成公钥;使用所述私钥对所述客户端生成的数据进行签名;将签名后的数据及所述公钥密钥加密算法的位置索引发送至区块链节点,所述区块链节点采用所述位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签。
[0008]进一步优选地,在所述使用所述私钥对所述客户端生成的数据进行签名之前还包括:步骤一:获取随机数;所述使用所述私钥对所述客户端生成的数据进行签名包括:步骤二:根据公式:r * G(x,y) = R(x",y")获取曲线点,其中,r为随机数,G为基点,x为x轴方向的坐标值,y为y轴方向的坐标轴,R为所述曲线点。
[0009]优选地,所述方法还包括:步骤三:对所述数据进行哈希计算得到第一哈希值,所述第一哈希值用h表示。
[0010]优选地,所述方法还包括:步骤四:根据公式:s = (h + k * Rx) / r获取第一签名,其中,s为所述第一签名,k为私钥,Rx为第二签名,所述第二签名为所述曲线点的x轴方向的数值;步骤五:将所述数据、第一哈希值和所述第一签名以及所述第二签名发送至区块
链。
[0011]优选地,所述区块链节点采用所述位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签包括:步骤六:对接收到的数据进行哈希计算得到第二哈希值,所述第二哈希值用H表示;步骤七:根据公式:R
’ꢀ
= HG(x,y)/s + RxK(x',y')/s获取二次曲线点,其中,R

为验证曲线点,K为公钥;步骤八:若R

x=Rx则验签通过,反之则验签失败。
[0012]进一步优选地,所述方法还包括:再次进行获取所述曲线点时更换所述随机数。
[0013]优选地,所述区块链客户端使用私钥密钥加密算法生成公钥包括:使用所述私钥进行单向运算得出所述公钥。
[0014]进一步优选地,所述区块链客户端使用私钥密钥加密算法生成公钥包括:根据公式:kG(x,y)=K(x',y')获取公钥。
[0015]另一方面,本专利技术还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于区块链技术的密钥签名方法。
[0016]另一方面,本专利技术还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的基于区块链技术的密钥签名方法。
[0017]本专利技术的有益效果在于:区块链客户端使用私钥密钥加密算法生成公钥,使用私钥对客户端生成的数据进行签名,将签名后的数据及公钥密钥加密算法的位置索引发送至区块链节点,区块链节点采用位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签;其中,对数据进行签名时纳入了随机数和哈希算法,以提高了安全级别;并且还使用私钥进行单向运算得出公钥,更进一步提高了安全性;实现在公钥暴露的情况下无法得出私钥,尽而提高了用户体验。
附图说明
[0018]图1是本专利技术实施例一提供的基于区块链技术的密钥签名方法的实现流程图;图2是本专利技术实施例二提供的基于区块链技术的密钥签名方法的实现流程图。
[0019]具体实施方式
[0020]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0021]以下结合具体实施例对本专利技术的具体实现进行详细描述:实施例一:图1示出了本专利技术实施例一提供的基于区块链技术的密钥签名方法的实现流程,为了便于说明,仅示出了与本专利技术实施例相关的部分,详述如下:
在步骤S100中,区块链客户端使用私钥密钥加密算法生成公钥;在本专利技术的实施例中,进一步优选地,使用私钥进行单向运算得出公钥,例如:使用椭圆曲线乘法运算,从而避免反向破解。
[0022]在步骤S200中,使用私钥对客户端生成的数据进行签名。
[0023]在步骤S300中,将签名后的数据及公钥密钥加密算法的位置索引发送至区块链节点,区块链节点采用位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签。
[0024]实施例二:图2示出了本专利技术实施例二提供的基于区块链技术的密钥签名方法的实现流程,该实施例二在实施例一的基础上还包括:在步骤S201中,获取随机数;在本专利技术的实施例中,可以使用随机数生成器获取随机数。
[0025]在步骤S202中,根据公式:r * G(x,y) = R(x",y")获取曲线点;在本专利技术的实施例中,使用私钥对客户端生成的数据进行签名包括根据公式:r * G(x,y) = R(x",y")获取曲线点,其中,r为随机数,G为基点,x为x轴方向的坐标值,y为y轴方向的坐标轴,R为曲线点。
[0026]在步骤S203中,对数据进行哈希计算得到第一哈希值;在本专利技术的实施例中,第一哈希值用h表示。
[0027]在步骤S204中,根据公式:s = (h + k * Rx) / r获取第一签名;在本专利技术的实施例中,s为第一签名,k为私钥,Rx为第二签名,第二签名为曲线点的x轴方向的数值。
[0028]在步骤S205中,将数据、第一哈希值和第一签名以及第二签名发送至区块链。
[0029]在本专利技术的实施例中,在一些需要隐私保护的情况下可仅发第一哈希值进行验签。
[0030]其中,区块链节点采用位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签包括:在步骤S206中,对接收到的数据进行哈希计算得到第二哈希值;在本专利技术的实施例中,第二哈希值用H表示。
[0031]在步骤S207中,根据公式:R
’ꢀ
= HG(x,y)/s + RxK(x',y')/s获取二次曲线点;在本专利技术的实施例中,R...

【技术保护点】

【技术特征摘要】
1.一种基于区块链技术的密钥签名方法,其特征在于,所述方法包括下述步骤:区块链客户端使用私钥密钥加密算法生成公钥;使用所述私钥对所述客户端生成的数据进行签名;将签名后的数据及所述公钥密钥加密算法的位置索引发送至区块链节点,所述区块链节点采用所述位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签。2.如权利要求1所述的方法,其特征在于,在所述使用所述私钥对所述客户端生成的数据进行签名之前还包括:步骤一:获取随机数;所述使用所述私钥对所述客户端生成的数据进行签名包括:步骤二:根据公式:r * G(x,y) = R(x",y")获取曲线点,其中,r为随机数,G为基点,x为x轴方向的坐标值,y为y轴方向的坐标轴,R为所述曲线点。3.如权利要求2所述的方法,其特征在于,所述方法还包括:步骤三:对所述数据进行哈希计算得到第一哈希值,所述第一哈希值用h表示。4.如权利要求3所述的方法,其特征在于,所述方法还包括:步骤四:根据公式:s = (h + k * Rx) / r获取第一签名,其中,s为所述第一签名,k为私钥,Rx为第二签名,所述第二签名为所述曲线点的x轴方向的数值;步骤五:将所述数据、第一哈希值和所述第一签名以及所述第二签名发送至区块链。5.如权利要求4所述的方法,其特征在于,所述区块链节点采用所述位置索引对应的公开密钥加密算法对接收到的签名后的数据进行验签包括:步骤六:对接收到的数据进行...

【专利技术属性】
技术研发人员:余鸿忠
申请(专利权)人:区块动力广州科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1