CN114374704B - 可靠广播方法、装置、系统及介质 - Google Patents
可靠广播方法、装置、系统及介质 Download PDFInfo
- Publication number
- CN114374704B CN114374704B CN202111639391.8A CN202111639391A CN114374704B CN 114374704 B CN114374704 B CN 114374704B CN 202111639391 A CN202111639391 A CN 202111639391A CN 114374704 B CN114374704 B CN 114374704B
- Authority
- CN
- China
- Prior art keywords
- broadcast
- data
- signature
- server
- broadcasted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种可靠广播方法、装置、系统及介质,该方法包括:接收待广播数据,生成各个第一部分签名;将打包的各个第一广播消息返回发送设备;接收到第一门限签名后,生成各个纠删码份额d_j发送至各个待处理服务器p_j;若接收到预设数量且一致的纠删码份额d_i,则广播第一回复消息;各个p_j接收到第一回复消息且预设数量的d_j,运行在线纠错码算法以及广播准备数据;若接收到预设数量的准备数据,则完成广播且接收所述待广播数据,若没有广播各个d_j,且获取到了待广播数据,则将各个d_j重新发送至各个p_j。本申请实施例提供的可靠广播方法的广播过程只传输了各个纠删码份额,使得广播通信的通信复杂度达到最优效果。
Description
技术领域
本申请涉及分布式系统、存储、最基本的工具领域,尤其涉及一种可靠广播方法、装置、系统及介质。
背景技术
可靠广播是分布式容错系统中,最重要、最基础的系统。可靠广播作为分布式系统的最基本工具,提高可靠广播的效率,能直接提高诸多分布式系统,特别是区块链共识系统或者高可靠存储系统,比如HoneyBadgerBFT、DAG-Rider、Dumbo等。这一系统要求即使如果一个服务器接收到广播内容,另外一个服务器也要介绍到广播内容(即便广播是错误的或者恶意的)。目前的可靠广播通信方案仅能提供O(nL+kn2)的通信复杂度(总比特传输数)。其中,n是总的服务器的数量,L是需要广播的数据长度,k为安全参数(比如哈希函数的输出)。
本申请考虑的可靠广播为抵御拜占庭(任意)错误的可靠广播。这是最广义的可靠广播。
本文假设信道为认证信道:接收方能够确信发送方的数据是否来自于发送方。认证信道可以由消息认证码(message authentication code)或者数字签名(digitalsignature)实现。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请提供一种可靠广播方法、装置、系统及介质,旨在实现通信复杂度达到最优效果。
第一方面,本申请提供一种可靠广播方法,包括:
接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
若接收到了预设数量的准备数据,则结束广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
在一个实施例中,所述将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备之后,还包括:
接收所述发送设备基于各个所述第一广播消息返回的所述第一门限签名,以及结合所述预设门限签名算法对所述第一门限签名进行验证;
若所述第一门限签名验证正确,则生成携带有第二部分签名的各个第二广播信息,并将各个所述第二广播信息返回至所述发送设备;
接收到所述发送设备基于各个所述第二广播信息返回的第二门限签名后,广播第一AUX消息;
接收到预设数量的第一AUX消息后却未发出AUX消息,广播第二AUX消息;
接收到预设数量的第一AUX消息及第二AUX消息且获取到所述待广播数据,结合所述纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第二回复消息;
控制各个待处理服务器p_j确定接收到所述第二回复消息且接收到预设数量的纠删码份额d_j后,运行所述在线纠错码算法,解码得到所述待广播数据。
所述控制各个待处理服务器p_j确定接收到所述第二回复消息且接收到预设数量的纠删码份额d_j后,运行所述在线纠错码算法,解码得到所述待广播数据,包括:
控制各个待处理服务器p_j确定接收到所述第二回复消息后,将接收到的各个纠删码份额d_j进行集合;
控制各个待处理服务器p_j若确定集合到的纠删码份额d_j的数量满足预设数量,则运行所述在线纠错码算法以及结合预设数量的纠删码份额d_j进行解码,得到所述待广播数据。
所述接收发送设备广播的待广播数据之后,还包括:
通过预设聚合签名算法生成所述待广播数据的各个聚合签名,以及将各个所述聚合签名返回至所述发送设备。
第二方面,本申请提供一种可靠广播方法,包括:
接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
在一个实施例中,本申请提供一种可靠广播方法,还包括:
接收各个所述服务器返回的各个聚合签名,以及将各个所述聚合签名进行合并,得到目标聚合签名;
根据各个聚合签名生成比特数组,以及将携带有所述比特数组的目标聚合签名发送至各个所述服务器。
第三方面,本申请还提供一种可靠广播装置,包括:
第一接收模块,用于接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
打包发送模块,用于将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
生成发送模块,用于接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
广播模块,用于若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制广播模块,用于控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
重发模块,用于若接收到了预设数量的准备数据,则完成广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
第四方面,本申请还提供一种可靠广播装置,包括:
第二接收模块,用于接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
验证模块,用于若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
第一合并发送模块,用于若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
第三接收模块,用于接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
第二合并发送模块,用于若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
第五方面,本申请还提供一种可靠广播系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现第一方面或/和第二方面可靠广播方法的步骤。
第六方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,计算机程序被处理器执行时实现第一方面或/和第二方面可靠广播方法的步骤。
第七方面,本申请还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序被处理器执行时实现第一方面或/和第二方面可靠广播方法的步骤。
本申请提供的可靠广播方法、装置、系统及介质,在广播通信的过程中结合了线性构造和广播,只是在线性构造过程中使用了密码工具实现线性传输,在广播过程中没有传输密码工具,只是传输了各个纠删码份额,使得广播通信的通信复杂度达到了最优效果。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的可靠广播方法的流程示意图之一;
图2是本申请提供的可靠广播方法的逻辑实现示意图之一;
图3是本申请提供的可靠广播方法的流程示意图之二;
图4是本申请提供的可靠广播方法的逻辑实现示意图之二;
图5是本申请提供的可靠广播方法的流程示意图之三;
图6是本申请提供的可靠广播装置的结构示意图之一;
图7是本申请提供的可靠广播装置的结构示意图之二;
图8是本申请提供的可靠广播系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合图1至图8描述本申请提供的可靠广播方法、装置、系统及介质。具体地,图1是本申请提供的可靠广播方法的流程示意图之一;图2是本申请提供的可靠广播方法的逻辑实现示意图之一;图3是本申请提供的可靠广播方法的流程示意图之二;图4是本申请提供的可靠广播方法的逻辑实现示意图之二;图5是本申请提供的可靠广播方法的流程示意图之三;图6是本申请提供的可靠广播装置的结构示意图之一;图7是本申请提供的可靠广播装置的结构示意图之二;图8是本申请提供的可靠广播系统的结构示意图。
本申请实施例提供了可靠广播方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
需要说明的是,本申请提供的可靠广播方法是在可靠广播协议(Reliablebroadcast)的基础上实现的。可靠广播协议(RBC协议)考虑了一个n个服务器组成的分布式系统,本申请考虑任意(拜占庭)错误模型。其中,n个服务器中可允许存在f个异常(任意错误)服务器,n和f之间的关系为n≥3f+1,本身申请实施例中将n和f之间的关系以n=3f+1进行举例,但不进行限制,可以理解为n=4时,f最大为1。在部分文献中,可靠广播还经常被成为Byzantine reliable broadcast(BRB)。
进一步地,可靠广播RBC协议主要由r-broadcast和r-deliver组成,应满足以下安全性质:有效性(validity):若正确服务器p(成为发送者)广播信息m,那么p所有的服务器都能最终r-deliver m。一致性(agreement):若某个正确服务器r-deliver m,然后每个正确服务器最终都会r-deliver m。完整性(integrity):对于任何消息m,每个正确服务器对m最多r-deliver一次,而且若发送者是正确的,那么m以前是由发送者广播的。
可靠广播RBC协议是一个异步协议。基于时间和网络状况假设,分布式系统可分为三种类型:同步协议类型(synchronous)、半同步类型(partially synchronous)和异步协议类型(asynchronous)。同步协议类型的安全性和活性都依赖网络状况,因此同步协议类型的安全性和可靠性较低;半同步协议类型的安全性不依赖网络状况,其活性需要网络良好时实现;异步协议类型效率不如半同步协议,但安全性和活性都不依赖于任何时间假设,因此是鲁棒性最强的。因此,本申请实施例涉及到系统优先为异步类型系统。
进一步地,RBC协议是一个防止拜占庭错误的协议。拜占庭错误是“任何错误”,比宕机错误要广泛的多。宕机容错系统只能防止死机,但是拜占庭容错系统包含宕机、攻击、软件错误、硬件错误等任何错误或者攻击。因此,本申请实施例的可靠广播方法可用于包括但不限制于可靠通信、可靠存储、区块链、安全多方计算和数字货币。
进一步地,通信复杂度的解释:通信复杂度是由L、n和k决定的,其中,L为要传送数据的长度(L可能较大),n为分布式系统中服务器的数量,k为安全参数(通常为128或者256比特等常见长度),在本实施例中安全参数k是指哈希函数或者数字签名的长度。
需要说明的是,目前最好协议的通信复杂度为O(Ln+kn2),本申请提供的可靠广播方法的目的是为了将通信复杂度从O(Ln+kn2)优化为O(Ln+kn+n2)。通信复杂度O(Ln+kn+n2)相对于通信复杂度O(Ln+kn2)而言,在某种程度上得到极大的优化,具体分析如下:对比Ln+kn+n2和Ln+kn2,无论kn还是n2都比kn2小很多,所以本申请提出的方法的复杂度远好于之前的协议。
尤其是,当需要传输数据的长度L≥k时,此时的通信复杂度为O(2Ln+n2),最终可表达为O(Ln+n2)。这是非常通用的情况,因为实际部署中,L通常较长,至少比一个哈希值或者数字签名要长。注意到本申请的方案使得通信复杂度达到了最优的效果。(之所以上述复杂度是最优,是因为Ln是由可靠广播RBC协议的validity(有效性)决定的,n2是由可靠广播RBC协议的agreement(一致性)决定的。)
本申请提供的可靠广播方法提供了两种可靠广播RBC协议,目的就是为了将通信复杂度从O(Ln+kn2)优化为O(Ln+kn+n2)。具体分析如实施例步骤S10至步骤S130所述。
进一步地,本申请实施例涉及到的算法包括但不限制于纠删码算法(erasurecoding,是纠错码error correcting code的一种简化形式)、门限签名算法和在线纠错码算法(online error correcting code),以下对纠删码算法、门限签名算法和在线纠错码算法分别进行解释:
对于纠删码算法而言:纠删码算法可以表示为(m,n)纠删码,其中m<n。纠删码算法包含encode编码算法和decode解码算法。encode算法即将m个原始数据编码成n个数据。decode算法可以根据n个数据中的任意m个数据恢复原来的原始数据,因此纠删码算法可以容许n-m个删除错误,如m=f+1,n≥m+2f。在一实施例中,纠删码算法为为(2,4)纠删码,即2个原始数据通过纠删码确定性的encode算法,产生4个数据。通过decode算法根据4个数据中的任意2个数据恢复原始数据。
对于门限签名算法而言:门限签名算法可以表示为(t,n)门限签名算法,其中,门限签名算法包含但不限制于TGen密钥生成算法、SignShare算法、ShareVrf算法、TCom算法和SigVrf算法。TGen密钥生成算法:生成公钥pk和每个服务器的私钥sk_1,...,sk_n,pk每个服务器都可见,sk_i被服务器i私有。TGen密钥生成算法可以是交互的也可以是第三方提供的;SignShare:根据私钥sk_i、原始数据m和公钥pk生成每个服务器的部分签名σi;ShareVrf:验证部分签名是否正确;TCom:t个部分签名组合成一个门限签名σ;SigVrf:验证一个门限签名是否正确SigVrf(pk,m,σ)=1。在一实施例中,门限签名算法为(2,4)门限签名:即4个服务器有一个共同的公钥pk,每个服务器有一个sk_i,4个服务器分别为sk_1、sk_2、sk_3和sk_4,对于每个待签名信息m,每个服务器都能生成一个对应的部分签名σi,4个服务器的部分签名对应为σ1、σ2、σ3和σ4,任意两个部分签名都能组合成一个代表整个系统的签名σ,这个σ能够用pk和m进行验证。
对于在线纠错码算法而言:是指通过Berlekamp-Welch算法或者Gao algorithm用于在有任意错误纠删码数据的情况下,解码正确的原始数据。
参照图1所示,图1是本申请提供的可靠广播方法的流程示意图之一,本申请实施例提供的可靠广播方法包括:
步骤S10,接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
步骤S20,将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,将各个所述第一广播消息返回至所述发送设备。
需要说明的是,本申请实施例为第一个可靠广播RBC协议,第一个可靠广播RBC协议中包括6个阶段,如图2所示,图2是本申请提供的可靠广播方法的逻辑实现示意图之一。第一个可靠广播RBC协议中的6个阶段为3个CBC阶段包括CBC-SEND阶段、CBC-ECHO阶段和CBC-FINAL阶段,以及DISPERSE阶段、RECONSTRUCT阶段和READY阶段。将CBC-SEND阶段和CBC-FINAL阶段的执行主体定义为第一执行主体,CBC-ECHO阶段、DISPERSE阶段和READY阶段为第二执行主体,RECONSTRUCT阶段为第三执行主体。其中,第一执行主体可为服务器,也可以是用户终端client,为了清晰阐述,第一执行主体以用户终端client举例;第二执行主体为服务器,将其定义为p_i;第三执行主体也为服务器,将其定义为p_j。
具体分析如下,对于CBC-SEND阶段:用户终端client收到需要分发待广播数据M的指令后,待广播数据M一般为随机数,为了分发待广播数据M,用户终端client需要将待广播数据M广播至各个服务器p_i,待广播数据M可以以SEND消息的形式进行发送,即SEND消息为(CBC-SEND,M)。进一步地,本申请实施例还可以发送待广播数据H(M),其中,H是一个哈希函数,因此,SEND消息可以表示为(CBC-SEND,H(M))。进一步地,SEND消息中还可以加入协议唯一标识符id,因此,SEND消息还可以表示为(id,CBC-SEND,M)或者(id,CBC-SEND,H(M))。为了清晰阐述本申请实施例,SEND消息以(CBC-SEND,M)进行举例。
对于CBC-ECHO阶段:各个服务器p_i接收用户终端client发送的SEND消息(CBC-SEND,M),通过预设门限签名算法生成待广播数据M的各个第一部分签名σi,其中,预设门限签名算法在本实施例中设定为(n-f,n)签名门限,即t=n-f。进一步地,若待广播数据为H(M),各个服务器p_i则对待广播数据H(M)进行签名。各个服务器p_i生成各自的第一部分签名σi后,将待广播数据M和各自的第一部分签名σi进行打包,得到各个服务器p_i各自的第一广播消息,第一广播消息可以表示为(M,σi,CBC-ECHO)。最后,各个服务器p_i将各自的第一广播消息(M,σi,CBC-ECHO)返回至用户终端client。
步骤S30,接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j。
对于CBC-FINAL阶段:用户终端client接收各个服务器p_i发送的第一广播消息(M,σi,CBC-ECHO),确定第一广播消息(M,σi,CBC-ECHO)的数量是否达到了预设数量,由(n-f,n)签名门限可知,本申请实施例中的预设数量为n-f。因此,若确定接收到n-f个服务器p_i发送的n-f个第一广播消息(M,σi,CBC-ECHO),用户终端client需要对n-f个第一广播消息(M,σi,CBC-ECHO)中的待广播数据M和n-f个第一部分签名σi进行验证。
若确定n-f个第一广播消息中的待广播数据M都验证正确,即n-f个第一广播消息中的待广播数据M都相同,用户终端client则验证n-f个服务器p_i的第一部分签名σi是否正确,若确定n-f个服务器p_i的第一部分签名σi都验证正确,用户终端client则确定n-f-f大于等于f+1个正确服务器p_i收到了待广播数据M。因此,用户终端client将n-f个服务器p_i的第一部分签名σi进行合并,生成待广播数据M的第一门限签名proof1,第一门限签名proof1的表现形式可以为(CBC-FINAL,proof1)。最后,用户终端client将第一门限签名(CBC-FINAL,proof1)发送至全部服务器p_i。
需要说明的是,本申请实施例若加入协议唯一标识符id,还需要对协议唯一标识符id进行验证,即验证n-f个第一广播消息中的n-f个协议唯一标识符id是否都一样。
对于DISPERSE阶段:全部服务器p_i接收到用户终端client发送的第一门限签名(CBC-FINAL,proof1),通过纠删码算法中的encode算法,将待广播数据M生成各个纠删码份额,纠删码算法可以为(x,n)纠删码,x根据实际情况设定。因此可以理解为全部服务器p_i通过纠删码算法中的encode算法,将待广播数据M生成n个纠删码份额,纠删码份额以d_j,j∈[1,2,...,n]进行表示。最后,全部服务器p_i将n个纠删码份额d_j发送给各个待处理服务器p_j,纠删码份额d_j的表现形式可以为(DISPERSE,d_j)。
进一步地,各个待处理服务器p_j接收到各个服务器p_i发送的(DISPERSE,d_j)后,需要向各个服务器p_i返回纠删码份额d_i。
步骤S40,若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息。
对于RECONSTRUCT阶段:若各个服务器p_i接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息,其中,第一回复消息可以表示为(RECONSTRUCT,d_i),根据上述可知,此时的预设数量为f+1。即可以理解为各个服务器p_i接收到各个待处理服务器p_j返回f+1个一致的纠删码份额d_i后,广播第一回复消息(RECONSTRUCT,d_i)。
步骤S50,控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
步骤S60,若接收到了预设数量的准备数据,则完成广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
对于READY阶段:各个待处理服务器p_j接收到服务器p_i返回的第一回复消息(RECONSTRUCT,d_i)后,将接收到的全部的纠删码份额d_j进行集合,即将全部的纠删码份额d_j放入一个集合T,需要说明的是,各个待处理服务器p_j需要不断接收(DISPERSE,d_j),直到解码成功,在此最多需要等待n个(DISPERSE,d_j)。接着,若确定集合T中纠删码份额d_j的数量达到了预设数量后,不断运行在线纠错码算法,直到解码成功得到待广播数据M,其中,根据上述内容可知,此时的预设数量为2f+1。各个待处理服务器p_j在解码得到待广播数据M后,向全部服务器p_i广播各个准备数据,准备数据以READY进行表示。
各个服务器p_i接收到了预设数量的准备数据READY,则完成广播且r-deliver M,根据上述内容可知,此时的预设数量为n-f。进一步需要说明的是,若确定没有在DISPERSE阶段发送数据,且各个服务器p_i已经通过解码获取待广播数据M,则各个服务器p_i需要重新发送纠删码份额(DISPERSE,d_j)给各个待处理服务器p_j。
至此完成了第一个RBC协议中的6个阶段,在前3个阶段即CBC-SEND阶段、CBC-ECHO阶段和CBC-FINAL阶段为线性构造使用密码工具,因此是线性的通信复杂度O(Ln+kn)。在后三个阶段即DISPERSE阶段、RECONSTRUCT阶段和READY阶段是广播,都只发送纠删码份额,而不带有哈希或者数字签名等密码工具,因此通信复杂度是O(Ln+n2)。因此,通过第一个RBC协议使得通信复杂度优化为O(Ln+kn+n2)。
本申请实施例提供了可靠广播方法,在广播通信的过程中结合了线性构造和广播,只是在线性构造过程中使用了密码工具实现线性传输,在广播过程中没有传输密码工具,只是传输了各个纠删码份额,使得广播通信的通信复杂度达到了最优效果。
参照图3所示,图3是本申请提供的可靠广播方法的流程示意图之二,步骤S20之后,包括:
步骤S70,接收所述发送设备基于各个所述第一广播消息返回的所述第一门限签名,以及结合所述预设门限签名算法对所述第一门限签名进行验证;
步骤S80,若所述第一门限签名验证正确,则生成携带有第二部分签名的各个第二广播信息,并将各个所述第二广播信息返回至所述发送设备。
需要说明的是,本申请实施例为第二个可靠广播RBC协议,第二个可靠广播RBC协议中包括8个阶段,如图4所示,图4是本申请提供的可靠广播方法的逻辑实现示意图之二。第二个可靠广播RBC协议中的8个阶段为5个EVCBC阶段包括CBC-SEND(SEND)阶段、CBC-SEND-REP(SEND-REP)阶段、CBC-ECHO(ECHO)阶段、CBC-ECHO-REP(ECHO-REP)阶段、CBC-FINAL(FINAL)阶段,以及AUX阶段、DISPERSE阶段和RECONSTRUCT阶段。其中,将CBC-SEND阶段、CBC-ECHO阶段和CBC-FINAL阶段的主体定义为第一执行主体,CBC-SEND-REP阶段、CBC-ECHO-REP、AUX阶段和DISPERSE阶段为第二执行主体,RECONSTRUCT阶段为第三执行主体。其中,第一执行主体可为服务器,也可以是用户终端client,为了清晰阐述,第一执行主体以用户终端client举例;第二执行主体为服务器,将其定义为p_i;第三执行主体也为服务器,将其定义为p_j。
具体分析如下,对于CBC-SEND阶段:用户终端client收到需要分发待广播数据M的指令,待广播数据M一般为随机数。为了分发待广播数据M,用户终端client需要将待广播数据M广播至各个服务器p_i,待广播数据M可以以SEND消息的形式进行发送,即SEND消息为(CBC-SEND,M)。进一步地,本申请实施例还可以发送待广播数据H(M),其中,H是一个哈希函数,因此,SEND消息可以表示为(CBC-SEND,H(M))。进一步地,SEND消息中还可以加入协议唯一标识符id,因此,SEND消息还可以表示为(id,CBC-SEND,M)或者(id,CBC-SEND,H(M))。为了清晰阐述本申请实施例,SEND消息以(CBC-SEND,M)进行举例。
对于CBC-SEND-REP阶段:各个服务器p_i接收用户终端client发送的SEND消息(CBC-SEND,M),通过预设门限签名算法生成待广播数据M的各个第一部分签名σi,其中,预设门限签名算法在本实施例中设定为(n-f,n)签名门限,即t=n-f。若待广播数据为H(M),各个服务器p_i则对待广播数据H(M)进行签名。
各个服务器p_i生成各自的第一部分签名σi后,将待广播数据M和各自的第一部分签名σi进行打包,得到各个服务器p_i的第一广播消息,第一广播消息可以表示为(M,σi,CBC-SEND-REP)。最后,各个服务器p_i将各自的第一广播消息(M,σi,CBC-SEND-REP)返回至用户终端client。
对于CBC-ECHO阶段:用户终端client接收各个服务器p_i发送的第一广播消息(M,σi,CBC-SEND-REP),确定第一广播消息(M,σi,CBC-SEND-REP)的数量是否达到了预设数量,由(n-f,n)签名门限可知,本申请实施例中的预设数量为n-f。若确定接收到了n-f个服务器p_i发送的n-f个第一广播消息(M,σi,CBC-SEND-REP),用户终端client需要对n-f个第一广播消息(M,σi,CBC-SEND-REP)中的待广播数据M和n-f个第一部分签名σi进行验证。若确定n-f个第一广播消息中的待广播数据M都验证正确,即n-f个第一广播消息中的待广播数据M都相同,用户终端client则验证n-f个服务器p_i的第一部分签名σi是否正确,若确定n-f个服务器p_i的第一部分签名σi都验证正确,用户终端client则确定n-f-f大于等于f+1个正确服务器p_i收到了待广播数据M。因此,用户终端client将n-f个服务器p_i的第一部分签名σi进行合并,生成待广播数据M的第一门限签名proof1,第一门限签名proof1的表现形式可以为(CBC-ECHO,proof1)。最后,用户终端client将第一门限签名(CBC-ECHO,proof1)返回至全部服务器p_i。
进一步需要说明的是,本申请实施例若加入协议唯一标识符id,还需要对协议唯一标识符id进行验证,即验证n-f个第一广播消息中的n-f个协议唯一标识符id是否都一样。
对于CBC-ECHO-REP阶段:全部服务器p_i接收用户终端client返回的第一门限签名(CBC-ECHO,proof1),结合预设门限签名算法对第一门限签名proof1进行验证。
若确定第一门限签名proof1验证正确,全部服务器p_i则生成携带有第二部分签名σi’的各个第二广播信息,第二广播信息可表示为(CBC-ECHO-REP,σi’)。接着,全部服务器p_i将各自的第二广播信息(CBC-ECHO-REP,σi’)至用户终端client。
对于CBC-FINAL阶段:用户终端client接收各个服务器p_i发送的第二广播消息(CBC-ECHO-REP,σi’),以及确定第二广播消息(CBC-ECHO-REP,σi’)的数量是否达到了预设数量,由(n-f,n)签名门限可知,本申请实施例中的预设数量为n-f。若确定接收到了n-f个服务器p_i发送的n-f个第二广播消息(CBC-ECHO-REP,σi’),用户终端client需要对n-f个第二广播消息(CBC-ECHO-REP,σi’)中的n-f个第二部分签名σi’进行验证。若确定n-f个服务器p_i的第二部分签名σi’都验证正确,用户终端client则确定n-f-f大于等于f+1个正确服务器p_i收到了待广播数据M。因此,用户终端client将n-f个服务器p_i的第二部分签名σi’进行合并,生成待广播数据M的第二门限签名proof2,第二门限签名proof2的表现形式可以为(CBC-FINAL,proof2)。最后,用户终端client将第二门限签名(CBC-FINAL,proof2)返回至全部服务器p_i。
进一步需要说明的是,本申请实施例若加入协议唯一标识符id,还需要对协议唯一标识符id进行验证,即验证n-f个第二广播消息中的n-f个协议唯一标识符id是否都一样。
步骤S90,接收到所述发送设备基于各个所述第二广播信息返回的第二门限签名后,广播第一AUX消息;
步骤S100,接收到预设数量的第一AUX消息后却未发出AUX消息,广播第二AUX消息。
对于AUX阶段:全部服务器p_i接收用户终端client发送的第二门限签名(CBC-FINAL,proof2),以及广播一个第一AUX消息,第一AUX消息可以表示为(AUX,proof2),目的是为了表明各个服务器已经收到了第二门限签名proof2,然后通过第一AUX消息(AUX,proof2)让其他的服务器p_i都能够接收到。
因此,对于AUX增强阶段:当接收到了f+1个第一AUX消息(AUX,proof2)后却未发出AUX消息,全部服务器p_i则会再次广播一个第二AUX消息,第二AUX消息实质上也是(AUX,proof2)。
步骤S110,接收到预设数量的第一AUX消息及第二AUX消息且获取到所述待广播数据,结合所述纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j。
对于DISPERSE阶段:服务器p_i确定接收到了n-f个第一AUX消息及第二AUX消息(AUX,proof2),且已经获得了待广播数据M(可以理解为在ECBC-SEND阶段收到过待广播数据M),则通过纠删码算法中的encode算法,将待广播数据M生成各个纠删码份额,纠删码算法可以为(x,n)纠删码,x根据实际设定。因此可以理解为服务器p_i通过纠删码算法中的encode算法,将待广播数据M生成n个纠删码份额,纠删码份额以d_j,j∈[1,2,...,n]进行表示。最后,服务器p_i将n个纠删码份额d_j发送给各个待处理服务器p_j,纠删码份额d_j的表现形式可以为(DISPERSE,d_j)。
进一步地,各个待处理服务器p_j接收到各个服务器p_i发送的(DISPERSE,d_j),向各个服务器p_i返回纠删码份额d_i。
步骤S120,若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第二回复消息;
步骤S130,控制各个待处理服务器p_j根据接收到的各个纠删码份额及运行所述在线纠错码算法,解码得到所述待广播数据。
对于RECONSTRUCT阶段:若各个服务器p_i接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第二回复消息,其中,根据上述可知,此时的预设数量为f+1,即f+1个一致的纠删码份额d_i,第二回复消息可表示为(RECONSTRUCT,d_i)。既可以理解为各个服务器p_i接收到各个待处理服务器p_j返回f+1个一致的纠删码份额d_i后,广播第二回复消息(RECONSTRUCT,d_i)。各个待处理服务器p_j接收到服务器p_i返回的第二回复消息(RECONSTRUCT,d_i)后,将接收到的全部的纠删码份额d_j进行集合,即将全部的纠删码份额d_j放入一个集合T中,需要说明的是,各个待处理服务器p_j需要不断接收(DISPERSE,d_j),直到解码成功,在此最多需要等待n个(DISPERSE,d_j)。若确定集合T中纠删码份额d_j的数量达到了预设数量后,不断运行在线纠错码算法,直到解码成功得到待广播数据M,其中,根据上述内容可知,此时的预设数量为2f+1。
至此完成了第二个可靠广播RBC协议中的8个阶段,在前5个阶段即CBC-SEND阶段、CBC-SEND-REP阶段、CBC-ECHO阶段、CBC-ECHO-REP阶段和CBC-FINAL阶段为线性构造使用密码工具,因此是线性的通信复杂度O(Ln+kn)。在后三个阶段即AUX阶段、DISPERSE阶段和RECONSTRUCT阶段是广播,都只发送纠删码份额,而不带有哈希或者数字签名等密码工具,因此通信复杂度是O(Ln+n2)。因此,通过第二个RBC协议使得通信复杂度优化为O(Ln+kn+n2)。
本申请实施例提供了可靠广播方法,在广播通信的过程中结合了线性构造和广播,只是在线性构造过程中使用了密码工具实现线性传输,在广播过程中没有传输密码工具,只是传输了各个纠删码份额,使得广播通信的通信复杂度达到了最优效果。
进一步地,本申请实施例除了可以使用门限签名算法之外,还可以为聚合签名算法(multi-signatures)和普通一组数字签名,其中,聚合签名算法与本申请实施例的通信复杂度保持一致,但是普通一组数字签名的通信复杂度会升高。因此,优先考虑聚合签名算法作为门限签名算法的变种算法,下面对聚合签名算法分析如步骤a至步骤c。
步骤a,通过预设聚合签名算法生成所述待广播数据的各个聚合签名,以及将各个所述聚合签名返回至所述发送设备;
步骤b,接收各个所述服务器返回的各个聚合签名,以及将各个所述聚合签名进行合并,得到目标聚合签名;
步骤c,根据各个聚合签名生成比特数组,以及将携带有所述比特数组的目标聚合签名发送至各个所述服务器。
具体地,首先定义一种目标标识符向量的数据结构,该目标标识符向量的数据结构可以是一个向量,也可以是一个数组,本申请实施例以目标标识符向量的数据结构为数组进行举例说明。因此,可将目标标识符向量的数据结构表示为n个二元数据V=[b1,...,bn],其中,每个bi,i∈1,...,n],bi为0或者1,V为数组的标识。
因此,数据结构V=[b1,...,bn]显然需要的内存为n个比特,传输此数据结构也需要n比特。
进一步地,以第一个可靠广播RBC协议中的CBC-ECHO阶段和CBC-FINAL阶段进行举例。具体如下:各个服务器p_i接收用户终端client发送的SEND消息(CBC-SEND,M),通过预设聚合签名算法生成生成待广播数据M的各个聚合签名sigma_i,以及将各个聚合签名sigma_i返回至用户终端client。用户终端client接收各个服务器p_i发送的聚合签名sigma_i,以及确定聚合签名sigma_i的数量是否达到了预设数量,本实施例定义预设数量为n-f。因此,若确定接收到了n-f个聚合签名sigma_i后,将n-f个聚合签名sigma_i进行合并,得到目标聚合签名proof1。同时,用户终端client根据各个聚合签名sigma_i生成比特数组,以及将比特数组和目标聚合签名proof1发送至各个服务器器p_i。
具体而言,针对每个正确的聚合签名sigma_i,都会生成一个目标标识向量V,在收到的2f+1个聚合签名sigma_i中,V对应的bi应该设为1,否则设置为0。在一实施例中,服务器的数量n=4,分别为p_1、p_2、p_3和p_4,用户终端client接收到了服务器p_1、p_3和p_4的聚合签名sigma_i,但是没有接收到服务器p_2的聚合签名sigma_i.,因此,比特数组V=[1,0,1,1]。
通过聚合签名算法的通信复杂度是n(k+n)=kn+n2,虽然用聚合签名算法替换门限签名算法,但最终的通信复杂度保持不变。因此,广播通信的最终通信复杂度依然为O(Ln+kn+n2),使得通信复杂度达到了最优效果。
进一步地,聚合签名算法与门限签名算法的区别在于:门限签名算法需要可信任的初始设置(trusted setup),这可能成为一个单点错误。但是聚合签名算法不需要可信任的初始设置,聚合签名算法只假设PKI(public-key infrastructure)模型。
参照图5所示,图5是本申请提供的可靠广播方法的流程示意图之三,本申请实施例提供的可靠广播方法包括:
步骤S140,接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
步骤S150,若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
步骤S160,若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
步骤S170,接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
步骤S180,若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
用户终端client接收各个服务器p_i发送的第一广播消息,其中,第一广播消息包括待广播数据M和第一部分签名σi。接着,用户终端client确定第一广播消息的数量是否达到了预设数量,由(n-f,n)签名门限可知,本申请实施例中的预设数量为n-f。因此,若确定接收到n-f个服务器p_i发送的n-f个第一广播消息,用户终端client需要对n-f个第一广播消息中的待广播数据M和n-f个第一部分签名σi进行验证。若确定n-f个第一广播消息中的待广播数据M都验证正确,即n-f个第一广播消息中的待广播数据M都相同,用户终端client则验证n-f个服务器p_i的第一部分签名σi是否正确,若确定n-f个服务器p_i的第一部分签名σi都验证正确,用户终端client则将n-f个服务器p_i的第一部分签名σi进行合并,生成待广播数据M的第一门限签名proof1。最后,用户终端client将第一门限签名proof1发送至全部服务器p_i。
用户终端client接收各个服务器p_i发送的第二广播消息,其中,第二广播信息中携带有第二部分签名σi’,以及确定第二广播消息的数量是否达到了预设数量,由(n-f,n)签名门限可知,本申请实施例中的预设数量为n-f。若确定接收到了n-f个服务器p_i发送的n-f个第二广播消息,用户终端client需要对n-f个第二广播消息中的n-f个第二部分签名σi’进行验证。若确定n-f个服务器p_i的第二部分签名σi’都验证正确,用户终端client则将n-f个服务器p_i的第二部分签名σi’进行合并,生成待广播数据M的第二门限签名proof2。最后,用户终端client将第二门限签名proof2返回至全部服务器p_i。
需要说明的是,本申请实施例若加入协议唯一标识符id,还需要对协议唯一标识符id进行验证,即验证n-f个第一广播消息中的n-f个协议唯一标识符id是否都一样。
本申请实施例与服务器进行通信,为服务器提供了必要的数据,为优化广播通信的通信复杂度提供基础保障。
进一步地,下面对本申请提供的可靠广播装置进行描述,下文描述的可靠广播装置与上文描述的可靠广播方法可相互对应参照。
如图6所示,图6是本申请提供的可靠广播装置的结构示意图之一,可靠广播装置包括:
第一接收模块601,用于接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
打包发送模块602,用于将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
生成发送模块603,用于接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
广播模块604,用于若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制广播模块605,用于控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
重发模块606,用于若接收到了预设数量的准备数据,则完成广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
进一步地,控制广播模块604还用于:
接收所述发送设备基于各个所述第一广播消息返回的所述第一门限签名,以及结合所述预设门限签名算法对所述第一门限签名进行验证;
若所述第一门限签名验证正确,则生成携带有第二部分签名的各个第二广播信息,并将各个所述第二广播信息返回至所述发送设备;
接收到所述发送设备基于各个所述第二广播信息返回的第二门限签名后,广播第一AUX消息;
接收到预设数量的第一AUX消息后却未发出AUX消息,广播第二AUX消息;
接收到预设数量的第一AUX消息及第二AUX消息且获取到所述待广播数据,结合所述纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第二回复消息;
控制各个待处理服务器p_j确定接收到所述第二回复消息且接收到预设数量的纠删码份额d_j后,运行所述在线纠错码算法,解码得到所述待广播数据。
进一步地,控制广播模块604还用于:
控制各个待处理服务器p_j确定接收到所述第二回复消息后,将接收到的各个纠删码份额d_j进行集合;
控制各个待处理服务器p_j若确定集合到的纠删码份额d_j的数量满足预设数量,则运行所述在线纠错码算法以及结合预设数量的纠删码份额d_j进行解码,得到所述待广播数据。
进一步地,打包发送模块602还用于:
通过预设聚合签名算法生成所述待广播数据的各个聚合签名,以及将各个所述聚合签名返回至所述发送设备。
本申请提供的可靠广播装置的具体实施例与上述可靠广播方法各实施例基本相同,不作赘述。
如图7所示,图7是本申请提供的可靠广播装置的结构示意图之二,可靠广播装置包括:
第二接收模块701,用于接收各个服务器返回的各个第一广播消息,各个所述第一广播消息中携带有待广播数据和第一部分签名;
验证模块702,用于若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
第一合并发送模块703,用于若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
第三接收模块704,用于接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
第二合并发送模块705,用于若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
进一步地,第一合并发送模块703还用于:
接收各个所述服务器返回的各个聚合签名,以及将各个所述聚合签名进行合并,得到目标聚合签名;
根据各个聚合签名生成比特数组,以及将携带有所述比特数组的目标聚合签名发送至各个所述服务器。
本申请提供的可靠广播装置的具体实施例与上述可靠广播方法各实施例基本相同,不作赘述。
图8示例了一种可靠广播系统的实体结构示意图,该可靠广播系统可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。
处理器810可以调用存储器830中的逻辑指令,以执行可靠广播方法,该方法包括:
接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
若接收到了预设数量的准备数据,则结束广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
处理器810可以调用存储器830中的逻辑指令,以执行可靠广播方法,该方法包括:
接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法所提供的可靠广播方法,该方法包括:
接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
若接收到了预设数量的准备数据,则结束广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
另一方面,本申请还提供一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法所提供的可靠广播方法,该方法包括:
接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的可靠广播方法,该方法包括:
接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
若接收到了预设数量的准备数据,则结束广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的可靠广播方法,该方法包括:
接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种可靠广播方法,其特征在于,包括:
接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
若接收到了预设数量的准备数据,则完成广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
2.根据权利要求1所述的可靠广播方法,其特征在于,所述将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备之后,还包括:
接收所述发送设备基于各个所述第一广播消息返回的所述第一门限签名,以及结合所述预设门限签名算法对所述第一门限签名进行验证;
若所述第一门限签名验证正确,则生成携带有第二部分签名的各个第二广播信息,并将各个所述第二广播信息返回至所述发送设备;
接收到所述发送设备基于各个所述第二广播信息返回的第二门限签名后,广播第一AUX消息;
接收到预设数量的第一AUX消息后却未发出AUX消息,广播第二AUX消息;
接收到预设数量的第一AUX消息及第二AUX消息且获取到所述待广播数据,结合所述纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第二回复消息;
控制各个待处理服务器p_j确定接收到所述第二回复消息且接收到预设数量的纠删码份额d_j后,运行所述在线纠错码算法,解码得到所述待广播数据。
3.根据权利要求2所述的可靠广播方法,其特征在于,所述控制各个待处理服务器p_j确定接收到所述第二回复消息且接收到预设数量的纠删码份额d_j后,运行所述在线纠错码算法,解码得到所述待广播数据,包括:
控制各个待处理服务器p_j确定接收到所述第二回复消息后,将接收到的各个纠删码份额d_j进行集合;
控制各个待处理服务器p_j若确定集合到的纠删码份额d_j的数量满足预设数量,则运行所述在线纠错码算法以及结合预设数量的纠删码份额d_j进行解码,得到所述待广播数据。
4.根据权利要求1所述的可靠广播方法,其特征在于,所述接收发送设备广播的待广播数据之后,还包括:
通过预设聚合签名算法生成所述待广播数据的各个聚合签名,以及将各个所述聚合签名返回至所述发送设备。
5.一种可靠广播方法,其特征在于,包括:
接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
6.根据权利要求5所述的可靠广播方法,其特征在于,包括:
接收各个所述服务器返回的各个聚合签名,以及将各个所述聚合签名进行合并,得到目标聚合签名;
根据各个聚合签名生成比特数组,以及将携带有所述比特数组的目标聚合签名发送至各个所述服务器。
7.一种可靠广播装置,其特征在于,包括:
第一接收模块,用于接收发送设备广播的待广播数据,以及通过预设门限签名算法生成所述待广播数据的各个第一部分签名;
打包发送模块,用于将所述待广播数据和各个所述第一部分签名打包成各个第一广播消息,以及将各个所述第一广播消息返回至所述发送设备;
生成发送模块,用于接收到所述发送设备基于各个所述第一广播消息返回的第一门限签名后,结合纠删码算法将所述待广播数据生成各个纠删码份额d_j,以及将各个纠删码份额d_j发送至各个待处理服务器p_j;
广播模块,用于若接收到各个待处理服务器p_j返回预设数量且一致的纠删码份额d_i,则广播第一回复消息;
控制广播模块,用于控制各个待处理服务器p_j确定接收到所述第一回复消息且接收到预设数量的纠删码份额d_j后,运行在线纠错码算法解码得到所述待广播数据,以及广播准备数据;
重发模块,用于若接收到了预设数量的准备数据,则完成广播且接收所述待广播数据,同时,若没有广播各个纠删码份额d_j,且通过解码获取到了所述待广播数据,则将各个纠删码份额d_j重新发送至各个待处理服务器p_j。
8.一种可靠广播装置,其特征在于,包括:
第二接收模块,用于接收各个服务器返回的各个第一广播消息,其中,各个所述第一广播消息中携带有待广播数据和第一部分签名;
验证模块,用于若各个所述待广播数据验证正确,则通过预设门限签名算法对各个所述第一部分签名进行验证;
第一合并发送模块,用于若各个所述第一部分签名验证正确,则将各个所述第一部分签名进行合并,得到所述待广播数据的第一门限签名,以及将所述第一门限签名返回至各个所述服务器;
第三接收模块,用于接收各个所述服务器返回的各个第二广播信息,其中,各个所述第二广播信息中携带有第二部分签名;
第二合并发送模块,用于若各个所述第二部分签名验证正确,则将各个所述第二部分签名进行合并,得到所述待广播数据的第二门限签名,以及将所述第二门限签名返回至各个所述服务器。
9.一种可靠广播系统,所述可靠广播系统包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的可靠广播方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的可靠广播方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639391.8A CN114374704B (zh) | 2021-12-29 | 2021-12-29 | 可靠广播方法、装置、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639391.8A CN114374704B (zh) | 2021-12-29 | 2021-12-29 | 可靠广播方法、装置、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114374704A CN114374704A (zh) | 2022-04-19 |
CN114374704B true CN114374704B (zh) | 2023-07-07 |
Family
ID=81143034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111639391.8A Active CN114374704B (zh) | 2021-12-29 | 2021-12-29 | 可靠广播方法、装置、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114374704B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345386A (zh) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN109379397A (zh) * | 2018-08-31 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110545286A (zh) * | 2019-09-18 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 加入联盟链、退出联盟链的方法及装置 |
CN112600678A (zh) * | 2021-03-02 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
WO2021115021A1 (zh) * | 2019-12-11 | 2021-06-17 | 华为技术有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN113645044A (zh) * | 2021-10-09 | 2021-11-12 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、区块链系统和共识节点 |
CN113779642A (zh) * | 2021-09-02 | 2021-12-10 | 国网北京市电力公司 | 数据处理方法及其装置、系统、电子设备 |
CN113783946A (zh) * | 2021-08-25 | 2021-12-10 | 山东区块链研究院 | 一种基于门限签名的可再投票二元共识方法及装置 |
-
2021
- 2021-12-29 CN CN202111639391.8A patent/CN114374704B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345386A (zh) * | 2018-08-31 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN109379397A (zh) * | 2018-08-31 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
WO2020042792A1 (zh) * | 2018-08-31 | 2020-03-05 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN110545286A (zh) * | 2019-09-18 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 加入联盟链、退出联盟链的方法及装置 |
WO2021115021A1 (zh) * | 2019-12-11 | 2021-06-17 | 华为技术有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN112600678A (zh) * | 2021-03-02 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113783946A (zh) * | 2021-08-25 | 2021-12-10 | 山东区块链研究院 | 一种基于门限签名的可再投票二元共识方法及装置 |
CN113779642A (zh) * | 2021-09-02 | 2021-12-10 | 国网北京市电力公司 | 数据处理方法及其装置、系统、电子设备 |
CN113645044A (zh) * | 2021-10-09 | 2021-11-12 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、区块链系统和共识节点 |
Also Published As
Publication number | Publication date |
---|---|
CN114374704A (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6883106B2 (ja) | 分散システム、メッセージ処理方法、ノード、クライアント及び記憶媒体 | |
CN108769150B (zh) | 区块链网络的数据处理方法、装置、集群节点和存储介质 | |
JP2020512708A5 (zh) | ||
JP4197031B2 (ja) | メッセージ認証システム及びメッセージ認証方法 | |
CN112219371A (zh) | 双向区块链 | |
AU2020100261A4 (en) | The quantum secret information direct communication method with mutual authentication | |
US6052787A (en) | Process for group-based cryptographic code management between a first computer unit and group computer units | |
TWI497438B (zh) | 先進讀表基礎建設中之韌體更新系統及其方法 | |
CN110213247B (zh) | 一种提高推送信息安全性的方法及系统 | |
Li et al. | On the practical and security issues of batch content distribution via network coding | |
AU2018422776A1 (en) | Sybil-resistant identity generation | |
Liang et al. | Experimental performance comparison of byzantine fault-tolerant protocols for data centers | |
CN112367165A (zh) | 串口通信方法、装置、电子设备和计算机可读介质 | |
CN114499857B (zh) | 一种实现大数据量子加解密中数据正确性与一致性的方法 | |
EP3105881B1 (en) | Quantum position based authentication | |
Roy et al. | An efficient robust secret sharing scheme with optimal cheater resiliency | |
WO2008131696A1 (fr) | Procédé, station de base, station de relais et système de communication de relais pour implémenter une authentification de message | |
CN114374704B (zh) | 可靠广播方法、装置、系统及介质 | |
JP6603799B2 (ja) | エンティティアイデンティティ有効性検証方法及びその装置 | |
US20120317417A1 (en) | Method of generation of a secret key for a wireless communication system | |
CN116204914A (zh) | 一种可信隐私计算方法、装置、设备及存储介质 | |
CN112235320B (zh) | 一种基于密码的视联网组播通信方法及装置 | |
CN115296890A (zh) | 一种终端应用间数据安全交互方法及系统 | |
CN114003884A (zh) | 一种面向安全通信的生物认证密钥协商方法及系统 | |
Groza et al. | On the use of one-way chain based authentication protocols in secure control systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |