发明内容
有鉴于此,本发明提供了一种基于量子密码的区块链数字签名方法、装置及***,用于解决现行的签名过程主要包括基于格、基于编码的McEliece密码、基于哈希和基于多变量的数字签名方案四种类型,上述签名过程安全性较低,为了提高安全性会增加用于生成和验证此类签名的密钥的复杂度,密钥可能会占用几千字节,使得签名过程需要占用大量密文开销,占用内存较大,影响签名效率的问题。具体方案如下:
一种基于量子密码的区块链数字签名方法,应用于区块链中委托方,所述委托方基于选举机制产生,所述方法包括:
接收发送方发送的量子签名和签名信息;
在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;
基于所述量子委托验证所述签名信息;
验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。
上述的方法,可选的,还包括:
将所述量子委托发送给所述区块链中的其它节点,基于所述量子委托和对应的智能合约进行计算,得到各个合约计算结果;
所述各个合约计算结果进行对比,若所述各个合约计算结果相同,则将与所述量子委托对应的消息写入所述区块链,完成共识。
上述的方法,可选的,基于所述量子委托验证所述签名信息,包括:
基于所述量子委托对与所述签名信息进行干扰;
干扰完成后,获取光电探测事件的第一数量;
若所述第一数量小于预设的第一数量阈值,判定所述签名信息认证通过。
上述的方法,可选的,基于所述私钥对验证所述量子签名,其中,所述私钥对包括第一私钥对和第二私钥对,包括:
分别基于所述第一私钥对和所述第二私钥度对对应的量子签名进行干扰;
干扰完成后,获取光电探测事件的第二数量;
若所述第二数量小于预设的第二数量阈值,判定所述量子签名认证通过。
一种基于量子密码的区块链数字签名方法,应用于区块链中的发送方,所述方法包括:
生成与消息对应的量子签名和私钥,将所述量子签名发送给接收方和委托方;
发送完成后,确定量子委托,基于所述量子委托和所述消息确定签名消息,将所述签名消息发送给所述委托方,将所述私钥对应的私钥对和所述量子委托发送给所述接收方。
一种基于量子密码的区块链数字签名方法,应用于区块链中接收方,所述方法包括:
接收发送方发送的量子签名、私钥对和量子委托;
基于所述私钥对验证所述量子签名,验证通过的情况下,将所述量子委托发送给委托方;
接收到委托方发送的验证通过指令的情况下,将所述私钥对发送给所述委托方。
一种基于量子密码的区块链数字签名装置,应用于区块链中委托方,所述委托方基于选举机制产生,所述装置包括:
第一接收模块,用于接收发送方发送的量子签名和签名信息;
第二接收模块,用于在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;
验证模块,用于基于所述量子委托验证所述签名信息;
接收和验证模块,用于验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。
一种基于量子密码的区块链数字签名装置,应用于区块链中的发送方,所述装置包括:
生成和发送模块,用于生成与消息对应的量子签名和私钥,将所述量子签名发送给接收方和委托方;
确定和发送模块,用于发送完成后,确定量子委托,基于所述量子委托和所述消息确定签名消息,将所述签名消息发送给所述委托方,将所述私钥对应的私钥对和所述量子委托发送给所述接收方。
一种基于量子密码的区块链数字签名方装置,应用于区块链中接收方,所述装置包括:
第三接收模块,用于接收发送方发送的量子签名、私钥对和量子委托;
验证和发送模块,用于基于所述私钥对验证所述量子签名,验证通过的情况下,将所述量子委托发送给委托方;
发送模块,用于接收到委托方发送的验证通过指令的情况下,将所述私钥对发送给所述委托方。
一种基于量子密码的区块链数字签名***,包括:发送方、接收方和委托方,其中,
所述发送方,用于执行上述的应用于发送方的基于量子密码的区块链数字签名方法;
所述接收方,用于执行上述的应用于接收方的基于量子密码的区块链数字签名方法;
所述委托方,用于执行上述的应用于委托方的基于量子密码的区块链数字签名方法。
与现有技术相比,本发明包括以下优点:
本发明公开了一种基于量子密码的区块链数字签名方法、装置及***,应用于区块链中委托方,所述委托方基于选举机制产生,所述方法包括:接收方和委托方接收发送方发送的量子签名和签名信息;在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;委托方基于所述量子委托验证所述签名信息;验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。上述过程中,基于量子密钥技术构建量子签名、量子委托和私钥对,并基于选举机制选定委托方,在委托方采用量子密钥技术实现对量子签名的验证,基于选举机制确定的委托方可以充分保证其在消息验证中的公正性,由于量子密钥的安全性高,不需要复杂的密钥就可以保证安全性,因此,提高了签名的效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明公开了一种基于量子密码的区块链数字签名方法、装置及***,应用于数字签名过程中,现有技术中,采用基于格、基于编码、基于哈希和基于多变量四种类型:1)基于格的方案提供了可加快区块链用户交易速度的实现,因为通常计算较为简单。但是,基于格的实现需要存储和使用大密钥,并且涉及大量密文开销。如像基于格的NTRU或New Hope方案通常需要管理几千位的密钥。2)基于编码的McEliece密码***可以提供快速加解密功能,这对于区块链交易的快速执行是一个优势。但是,该密码***需要使用存储公钥和私钥的大型矩阵执行操作。3)基于哈希的密码***能够在哈希函数的基础上提供一次性签名机制,其原理基于特定加密哈希函数的抗碰撞性。经过多年的改进发展可以承受量子攻击。但其在数字签名方向的表现不佳,尤其是在资源受限的设备的情况下,该方案涉及计算密集型步骤的密钥压缩技术。4)基于多元变量的数字签名方案包括基于伪随机多元二次方程或基于Rainbow-like签名方案的方案,但由于密钥***中的每个密钥需要数万个字节,因此需要进一步改进密钥大小。
基于上述的问题,本发明实施例中,跳出使用原密码***的设想,使用量子密码术来实现后量子时代区块链数字签名方法。根据单光子的不可分割、测不准原理及不可克隆定理,任意第三方行为都会影响光子的状态。量子保密通信双方遵照QKD协议,以光子物理状态为信息载体协商生成绝对安全的共有量子密钥。在保证***可靠的安全性能的前提下,本发明设计的数字签名协议,可以实现在一次数字签名过程中,携带多主体的数字信息,可以降低对***存储空间的占用情况,同时可实现数字签名的快速执行,降低了计算复杂度和***能耗。
本发明公开了一种基于量子密码的区块链数字签名***,其整体架构图如图1所示,所述***为了化解量子计算技术对经典密码学造成的巨大威胁,打造区块链安全可信的网络环境,本发明实施例中,基于QKD技术进行数字签名信息加密/解密的密钥分发以及数字签名的可信共享,同时结合区块链网络广播技术完成节点间数字签名信息的可信共识。其中,量子中继器负责完成共享签名信息的远距离传播。因为所述***引入了QKD进行本地测量和量子密钥分发,所以***的安全性得以保障,在***运行过程中即使攻击者拥有量子计算机,也无法破解或者窃听节点间的密钥和共享内容,所述***中采用两种信道传输一种是经典信道,一种是量子信道。经典信道也是常规区块链网络使用的信道,无需特殊处理,而对于量子信道,因量子传输中存在衰减,所以,本发明对于远程节点间的量子信道,使用了量子中继器。
所述***包括:发送方、接收方和委托方,整个数字签名过程包含三大主要模块,分别是签名生成模块、签名信息传递模块和签名信息验证模块。
所述签名生成模块的执行过程如图2所示,在该模块中,发送方(节点i)将每一个可能的比特消息所对应的签名发送给接收方(节点j),同时也将这一份数字签名发送给委托方(节点Ag),每一个签名代表着具体的位置信息和比特信息。
定义:设节点i要签的消息为m,n是m的长度,p是一个素数,L是安全参数λ的多项式,L来自霍夫丁不等式,其中,[p]表示集合{0,1,2,…,p-1},k∈[1,L]。对于每一个l比特,l=1,2,…,n,接收方(节点j)从[p]
L中随机选择两个序列
和
作为第一私钥和第二私钥,然后生成相干态
和
令
发送方(节点i)生成两份一样的
和
通过安全的量子信道将
发送给接收方(节点j),同时通过安全的量子信道将同样的
发送给委托方(节点Ag)。然后节点j和节点Ag将
保存在其存储空间中。
所述签名信息传递模块的执行过程示意图如图3所示,在该模块中,***主要完成发送方(节点i)与接收方(节点j)、委托方(节点Ag)之间消息的传递。发送节点i将签名消息QComm委托给委托方(节点Ag),委托方(节点Ag)将签名消息QComm发送给接收方(节点j),同时发送方(节点i)将私钥、公开量子委托等信息发给接收方(节点j),整个过程确保了所签消息的完整性以及安全性。
发送方(节点i)从[p]
L中随机选择一个序列r=(r
1,r
2,...,r
L)作为消息m的***息,然后生成相干态ρ
k和
生成方法如下:
其中,α为位置幅值
令m=m
1||m
2||...||m
n∈[p],ρ
r=(ρ
1,ρ
2,...,ρ
L),
消息的量签名消息QCom
m=(ρ
r,ρ
m,r)。发送方(节点i)通过安全的量子信道将签名消息QCom
m发送给委托节点Ag,同时通过经典信道将消息的量子委托(m,r)和相关私钥对
发送给接收方(节点j)其中,所述私钥对包括第一私钥对和第二私钥对,所述第一私钥对与所述第一私钥对应,所述第二私钥对与所述第二私钥对应。
所述签名信息验证模块的执行流程如图4所示,该模块主要完成数字签名的验证。首先接收方(节点j)对签名进行认证;第二步,委托方(节点Ag)验证签名,若验证通过,则此签名有效;第三步,委托方(节点Ag)向区块链网络广播数字签名,完成签名的网络共识,对于距离较远的节点,通过辅助量子中继器的方法,实现数字签名的广播。
首先,接收方(节点j)根据
生成相干态;然后,接收方(节点j)将该相干态和它存储的QCom
m进行干扰,对于每一个量子态
统计其信号空端口臂上的光电探测事件的个数,如果总数小于s
aL(s
a称为认证界值),则此签名认证通过。否则接收方(节点j)将拒绝消息m。
委托方(节点Ag)验证签名是否有效
首先,接收方(节点j)将消息的量子委托(m,r)由经典信道发送给委托方(节点Ag),委托方(节点Ag)根据量子委托(m,r)生成相干态,再将该相干态和QCom
m进行干扰,最后统计其信号空端口臂上的光电探测事件个数,如果总数不小于2s
vL(预设第一数量阈值)(s
v是验证界值),委托方(节点Ag)就认为接收方(节点j)发送的此条消息非发送方(节点i)发送的消息。若小于2s
vL,则委托方(节点Ag)将进一步验证,此时需接收方(节点j)通过经典信道将私钥对
发送给委托方(节点Ag),其中,所述私钥对包括第一私钥对和第二私钥对,委托方(节点Ag)针对所述第一私钥对和所述第二私钥对与接收方(节点j)做一样的签名验证,其中0<s
a<s
v<1,若光电探测事件总数小于s
vL(预设第二数量阈值),则验证通过。否则,将拒收消息m。
进一步的,委托方(节点Ag)发起网络共识,具体的处理过程如下:委托方(节点Ag)将消息的量子委托(m,r)通过经典信道发送给区块链网络中所有节点,区块链网络节点根据(m,r)计算该条消息的合约运算结果,委托方(节点Ag)对各节点返回的运算结果进行对比,若各节点共识结果一致,则将该消息写入区块链,即完成数字签名的共识。
基于上述的一种基于量子密码的区块链数字签名***,本发明实施例中,还提供了一种基于量子密码的区块链数字签名方法,所述方法应用于委托方,所述委托方基于选举机制产生,所述委托方相当于区块链网络中的管理员节点,所述方法的执行流程如图5所示,包括步骤:
S101、接收发送方发送的量子签名和签名信息;
本发明实施例中,所述委托方(节点Ag)接收所述发送方发送的量子签名和签名信息,令接收方(节点j)对量子签名进行验证,具体的验证过程与所述签名***中描述的验证过程相同,在此不再赘述。
S102、在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;
本发明实施例中,在所述接收方(节点j)对量子签名验证通过的情况下,接收方(节点j)会发送量子委托,接收所述量子委托。
S103、基于所述量子委托验证所述签名信息;
本发明实施例中,基于所述量子委托验证所述签名信息的过程与所述签名***中描述的验证过程相同,在此不再赘述。
S104、验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。
本发明实施例中,在所述委托方(节点Ag)对所述签名信息验证通过的情况下,接收方(节点j)会发送私钥对,接收所述私钥对,基于所述私钥对验证所述量子签名。验证所述量子签名的过程与所述签名***中描述的验证过程相同,在此不再赘述。
本发明公开了一种基于量子密码的区块链数字签名方法,应用于区块链中委托方,所述委托方基于选举机制产生,所述方法包括:接收发送方发送的量子签名和签名信息;在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;基于所述量子委托验证所述签名信息;验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。上述过程中,基于量子密钥技术构建量子签名、量子委托和私钥对,并基于选举机制选定委托方,在委托方采用量子密钥技术实现对量子签名的验证,基于选举机制确定的委托方可以充分保证其在消息验证中的公正性,由于量子密钥的安全性高,不需要复杂的密钥就可以保证安全性,因此,提高了签名的效率。
基于上述的基于量子密码的区块链数字签名***,本发明实施例中,还提供了一种基于量子密码的区块链数字签名方法,所述方法应用于区块链中的发送方,所述方法的执行流程如图6所示,包括步骤:
S201、生成与消息对应的量子签名和私钥,将所述量子签名发送给接收方和委托方;
本发明实施例中,私钥的生成过程与所述签名***中的处理过程相同,在此不再赘述。
S202、发送完成后,确定量子委托,基于所述量子委托和所述消息确定签名消息,将所述签名消息发送给所述委托方,将所述私钥对应的私钥对和所述量子委托发送给所述接收方。
本发明实施例中,签名消息的具体确定过程与所述签名***中描述的过程相同,在此不再赘述。
基于上述的基于量子密码的区块链数字签名***,本发明实施例中,还提供了一种基于量子密码的区块链数字签名方法,所述方法应用于区块链中的接收方,所述方法的执行流程如图7所示,包括步骤:
S301、接收发送方发送的量子签名、私钥对和量子委托;
S302、基于所述私钥对验证所述量子签名,验证通过的情况下,将所述量子委托发送给委托方;
本发明实施例中,基于所述私钥对验证所述量子签名的过程与所述签名***中的验证过程相同,在此不再赘述。
S303、接收到委托方发送的验证通过指令的情况下,将所述私钥对发送给所述委托方。
基于上述的一种基于量子密码的区块链数字签名方法,应用于区块链中的委托方,本发明实施例中公开了一种基于量子密码的区块链数字签名装置,应用于区块链中委托方,所述委托方基于选举机制产生,所述装置的结构框图如图8所示,包括:
第一接收模块401、第二接收模块402、验证模块403和接收和验证模块404。
其中,
所述第一接收模块401,用于接收发送方发送的量子签名和签名信息;
所述第二接收模块402,用于在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;
所述验证模块403,用于基于所述量子委托验证所述签名信息;
所述接收和验证模块404,用于验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。
本发明公开了一种基于量子密码的区块链数字签名装置,应用于区块链中委托方,所述委托方基于选举机制产生,所述装置包括:接收方和委托方接收发送方发送的量子签名和签名信息;在接收方对所述量子签名验证通过的情况下,接收接收方发送的量子委托;委托方基于所述量子委托验证所述签名信息;验证通过的情况下,接收接收方发送的私钥对,基于所述私钥对验证所述量子签名。上述过程中,基于量子密钥技术构建量子签名、量子委托和私钥对,并基于选举机制选定委托方,在委托方采用量子密钥技术实现对量子签名的验证,基于选举机制确定的委托方可以充分保证其在消息验证中的公正性,由于量子密钥的安全性高,不需要复杂的密钥就可以保证安全性,因此,提高了签名的效率。
基于上述的一种基于量子密码的区块链数字签名方法,应用于区块链中的发送方,本发明实施例中公开了一种基于量子密码的区块链数字签名装置,应用于区块链中发送方,所述装置的结构框图如图9所示,包括:
生成和发送模块501和确定和发送模块502。
其中,
所述生成和发送模块501,用于生成与消息对应的量子签名和私钥,将所述量子签名发送给接收方和委托方;
所述确定和发送模块502,用于发送完成后,确定量子委托,基于所述量子委托和所述消息确定签名消息,将所述签名消息发送给所述委托方,将所述私钥对应的私钥对和所述量子委托发送给所述接收方。
基于上述的一种基于量子密码的区块链数字签名方法,应用于区块链中的接收方,本发明实施例中公开了一种基于量子密码的区块链数字签名装置,应用于区块链中接收方,所述装置的结构框图如图10所示,包括:
第三接收模块601、验证和发送模块602和发送模块603。
其中,
所述第三接收模块601,用于接收发送方发送的量子签名、私钥对和量子委托;
所述验证和发送模块602,用于基于所述私钥对验证所述量子签名,验证通过的情况下,将所述量子委托发送给委托方;
所述发送模块603,用于接收到委托方发送的验证通过指令的情况下,将所述私钥对发送给所述委托方。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种基于量子密码的区块链数字签名方法、装置及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。