基于区块链的多端间消息通信的方法、终端及存储介质与流程

文档序号:15497769发布日期:2018-09-21 22:02阅读:200来源:国知局

本发明涉及通信技术领域,尤其涉及一种基于区块链的多端间消息通信的方法、终端及存储介质。



背景技术:

目前,在多终端接入并进行消息通信时,传统的方法可以使用tcp或udp进行多终端之间的消息通信,但在通信过程中,不能保障消息生产者与消息消费者之间消息通信过程的保密性及消息数据的保密性,例如,不能保障消息生产者消费者的接收到消息是否有效以及被篡改、涉及到多方消费者的响应时会泄露给其他的消费者自己是参与方、生产者通信的消息可能会泄露给无关的消费者等等,有鉴于此,有效地保障消息生产者与消息消费者之间消息通信过程及消息数据的保密性成为有待解决的问题。



技术实现要素:

本发明的目的在于提供一种基于区块链的多端间消息通信的方法、终端及存储介质,旨在有效地保障消息通信过程及消息明文的保密性。

为实现上述目的,本发明提供一种基于区块链的多端间消息通信的方法,所述基于区块链的多端间消息通信的方法包括:

s1,生产者终端与多端构成的区块链网络中的消费者终端进行消息通信之前,获取第一ca证书,将该第一ca证书对应的公钥上传到该区块链网络的区块链节点上;

s2,消费者终端与生产者终端通信之前,获取第二ca证书,将该第二ca证书对应的公钥上传到该区块链网络的区块链节点上;

s3,生产者终端生成自身的第一密钥,基于该第一密钥并利用预定的加密算法对待通信的消息明文进行加密,将加密后的消息明文上传到区块链节点上;

s4,生产者终端从区块链网络中获取消费者终端的第二ca证书对应的公钥,基于第一ca证书的私钥与消费者终端的第二ca证书对应的公钥并利用交换协议算法处理得到第一协商密钥,利用该第一协商密钥对所生成的第一密钥进行加密得到加密后的第一密钥,将加密后的第一密钥上传到区块链节点上;

s5,消费者终端通过预定的方式获取区块链节点上的加密后的第一密钥,从区块链网络中获取生产者终端的第一ca证书对应的公钥,基于自身的第二ca证书的私钥与生产者终端的第一ca证书对应的公钥并利用交换协议算法处理得到第二协商密钥,利用该第二协商密钥对该加密后的第一密钥进行解密得到该第一密钥;

s6,消费者终端获取区块链节点上的加密后的消息明文,利用解密后得到第一密钥对该加密后的消息明文进行解密,得到该消息明文。

优选地,所述步骤s6之后,还包括:

消费者终端基于所述消息明文生成对应的响应信息,生成自身的第二密钥,基于该第二密钥并利用预定的加密算法对响应信息进行加密,将加密后的响应信息上传到区块链节点上;

消费者终端利用该第二协商密钥对所生成的第二密钥进行加密得到加密后的第二密钥,将加密后的第二密钥上传到区块链节点上;

生产者终端通过预定的方式获取区块链节点上的加密后的第二密钥,利用该第一协商密钥对该加密后的第二密钥进行解密得到该第二密钥;

生产者终端获取区块链节点上的加密后的响应信息,利用解密后得到第二密钥对该加密后的响应信息进行解密,得到该响应信息。

优选地,所述预定的方式为轮询区块链的方式或者事件监听区块链的方式。

为实现上述目的,本发明还提供一种生产者终端,所述生产者终端包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的系统,所述系统被所述处理器执行时实现如下步骤:

在与多端构成的区块链网络中的消费者终端进行消息通信之前,获取第一ca证书,将该第一ca证书对应的公钥上传到该区块链网络的区块链节点上;

生成自身的第一密钥,基于该第一密钥并利用预定的加密算法对待通信的消息明文进行加密,将加密后的消息明文上传到区块链节点上;

从区块链网络中获取消费者终端的第二ca证书对应的公钥,基于第一ca证书的私钥与消费者终端的第二ca证书对应的公钥并利用交换协议算法处理得到第一协商密钥,利用该第一协商密钥对所生成的第一密钥进行加密得到加密后的第一密钥,将加密后的第一密钥上传到区块链节点上。

优选地,所述处理系统被所述处理器执行时,还实现如下步骤:

在消费者终端将用于加密响应信息的第二密钥进行加密并上传到区块链节点后,通过预定的方式获取区块链节点上的加密后的第二密钥,利用该第一协商密钥对该加密后的第二密钥进行解密得到该第二密钥;

生产者终端获取区块链节点上的加密后的响应信息,利用解密后得到第二密钥对该加密后的响应信息进行解密,得到该响应信息。

优选地,所述预定的方式为轮询区块链的方式或者事件监听区块链的方式。

为实现上述目的,本发明还提供一种消费者终端,所述消费者终端包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的系统,所述系统被所述处理器执行时实现如下步骤:

在与生产者终端通信之前,获取第二ca证书,将该第二ca证书对应的公钥上传到该区块链网络的区块链节点上;

在生产者终端将用于加密消息明文的第一密钥进行加密并上传到区块链节点后,通过预定的方式获取区块链节点上的加密后的第一密钥,从区块链网络中获取生产者终端的第一ca证书对应的公钥,基于自身的第二ca证书的私钥与生产者终端的第一ca证书对应的公钥并利用交换协议算法处理得到第二协商密钥,利用该第二协商密钥对该加密后的第一密钥进行解密得到该第一密钥;

获取区块链节点上的加密后的消息明文,利用解密后得到第一密钥对该加密后的消息明文进行解密,得到该消息明文。

优选地,所述处理系统被所述处理器执行时,还实现如下步骤:

基于所述消息明文生成对应的响应信息,生成自身的第二密钥,基于该第二密钥并利用预定的加密算法对响应信息进行加密,将加密后的响应信息上传到区块链节点上;

利用该第二协商密钥对所生成的第二密钥进行加密得到加密后的第二密钥,将加密后的第二密钥上传到区块链节点上。

优选地,所述预定的方式为轮询区块链的方式或者事件监听区块链的方式。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有处理系统,所述处理系统被处理器执行时实现上述的生产者终端或消费者终端执行的方法的步骤。

本发明的有益效果是:本发明由多个终端组成的区块链联盟链中,在进行消息通信时,生产者终端采用预定的加密方式将消息明文及密钥都加密后,上传加密后的消息明文及密钥至区块链中,消费者终端轮询或者事件监听区块链,首先对加密后的密钥进行解密,然后再用密钥解密加密后的消息明文,以此进行消息的通信,消息明文不易被篡改,若有多个消费者终端,通信过程仅有通信的对方知晓,多个消费者终端之间无法获知生产者终端是否与其他消费者终端通信,有效地保障消息通信过程及消息明文的保密性。

附图说明

图1为本发明各个实施例一可选的应用环境示意图;

图2为本发明基于区块链的多端间消息通信的方法一实施例的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明基于区块链的多端间消息通信的方法的较佳实施例的应用环境示意图。该应用环境示意图包括多个生产者终端、消费者终端及多个生产者终端与消费者终端构成的多端的区块链网络。生产者终端或消费者终端可以通过网络、近场通信技术等适合的技术与区块链网络中的其他终端进行数据交互。

生产者终端或消费者终端是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述生产者终端或消费者终端可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

在本实施例中,生产者终端可包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,存储器11存储有可在处理器12上运行的处理系统。需要指出的是,图1仅示出了具有组件11-13的生产者终端,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

消费者终端可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23,存储器21存储有可在处理器22上运行的处理系统。需要指出的是,图1仅示出了具有组件21-23的生产者终端,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,存储器11包括内存及至少一种类型的可读存储介质。内存为生产者终端的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是生产者终端的内部存储单元,例如该生产者终端的硬盘;在另一些实施例中,该非易失性存储介质也可以是生产者终端的外部存储设备,例如生产者终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。本实施例中,存储器11的可读存储介质通常用于存储安装于生产者终端的操作系统和各类应用软件,例如存储本发明一实施例中的处理系统的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述生产者终端的总体操作,例如执行与消费者终端进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行处理系统等。

所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述生产者终端与其他终端之间建立通信连接。本实施例中,网络接口13主要用于将生产者终端与消费者终端相连,在生产者终端与消费者终端之间建立数据传输通道和通信连接。

所述处理系统存储在存储器11中,包括至少一个存储在存储器11中的计算机可读指令,该至少一个计算机可读指令可被处理器器12执行,以实现本申请各实施例的方法;以及,该至少一个计算机可读指令依据其各部分所实现的功能不同,可被划为不同的逻辑模块。

此外,消费者终端的存储器21、处理器22、网络接口23对应与生产者终端的存储器11、处理器12、网络接口13类似,此处不再赘述。

在一实施例中,上述处理系统被所述处理器12执行时实现如下步骤:

在与多端构成的区块链网络中的消费者终端进行消息通信之前,获取第一ca证书,将该第一ca证书对应的公钥上传到该区块链网络的区块链节点上;

生成自身的第一密钥,基于该第一密钥并利用预定的加密算法对待通信的消息明文进行加密,将加密后的消息明文上传到区块链节点上;

从区块链网络中获取消费者终端的第二ca证书对应的公钥,基于第一ca证书的私钥与消费者终端的第二ca证书对应的公钥并利用交换协议算法处理得到第一协商密钥,利用该第一协商密钥对所生成的第一密钥进行加密得到加密后的第一密钥,将加密后的第一密钥上传到区块链节点上。

此外,处理系统被所述处理器12执行时,还实现如下步骤:

在消费者终端将用于加密响应信息的第二密钥进行加密并上传到区块链节点后,通过预定的方式获取区块链节点上的加密后的第二密钥,利用该第一协商密钥对该加密后的第二密钥进行解密得到该第二密钥;

生产者终端获取区块链节点上的加密后的响应信息,利用解密后得到第二密钥对该加密后的响应信息进行解密,得到该响应信息。

在另一实施例中,上述处理系统被所述处理器22执行时实现如下步骤:

在与生产者终端通信之前,获取第二ca证书,将该第二ca证书对应的公钥上传到该区块链网络的区块链节点上;

在生产者终端将用于加密消息明文的第一密钥进行加密并上传到区块链节点后,通过预定的方式获取区块链节点上的加密后的第一密钥,从区块链网络中获取生产者终端的第一ca证书对应的公钥,基于自身的第二ca证书的私钥与生产者终端的第一ca证书对应的公钥并利用交换协议算法处理得到第二协商密钥,利用该第二协商密钥对该加密后的第一密钥进行解密得到该第一密钥;

获取区块链节点上的加密后的消息明文,利用解密后得到第一密钥对该加密后的消息明文进行解密,得到该消息明文。

此外,处理系统被所述处理器22执行时,还实现如下步骤:

基于所述消息明文生成对应的响应信息,生成自身的第二密钥,基于该第二密钥并利用预定的加密算法对响应信息进行加密,将加密后的响应信息上传到区块链节点上;

利用该第二协商密钥对所生成的第二密钥进行加密得到加密后的第二密钥,将加密后的第二密钥上传到区块链节点上。

通过上面的描述可以看出:由多个终端组成的区块链联盟链中,在进行消息通信时,生产者终端采用预定的加密方式将消息明文及密钥都加密后,上传加密后的消息明文及密钥至区块链中,消费者终端轮询或者事件监听区块链,首先对加密后的密钥进行解密,然后再用密钥解密加密后的消息明文,以此进行消息的通信,消息明文不易被篡改,若有多个消费者终端,通信过程仅有通信的对方知晓,多个消费者终端之间无法获知生产者终端是否与其他消费者终端通信,有效地保障消息通信过程及消息明文的保密性。

如图2所示,图2为本发明基于区块链的多端间消息通信的方法一实施例的流程示意图,该基于区块链的多端间消息通信的方法包括以下步骤:

步骤s1,生产者终端与多端构成的区块链网络中的消费者终端进行消息通信之前,获取第一ca证书,将该第一ca证书对应的公钥上传到该区块链网络的区块链节点上;

步骤s2,消费者终端与生产者终端通信之前,获取第二ca证书,将该第二ca证书对应的公钥上传到该区块链网络的区块链节点上;

其中,多端构成的区块链网络支持电子商务认证中心ca,每一接入区块链网络的终端都必须去电子商务认证中心ca处获取自身的ca证书。在后续进行加密时,终端不需要直接发送公钥,而是公开自己的ca证书以保证自身身份的合法性。

步骤s3,生产者终端生成自身的第一密钥,基于该第一密钥并利用预定的加密算法对待通信的消息明文进行加密,将加密后的消息明文上传到区块链节点上;

其中,预定的加密算法为优选为对称加密算法,其在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。在一具体的实例中,该对称加密算法为aes加密算法。在加密过程中使用加密函数e,则加密后的消息明文c=e(k,p),其中p为消息明文,k为密钥,c为密文。在其他的具体的实例中,该对称加密算法也可以是其他的加密算法,例如des加密算法等。

步骤s4,生产者终端从区块链网络中获取消费者终端的第二ca证书对应的公钥,基于第一ca证书的私钥与消费者终端的第二ca证书对应的公钥并利用交换协议算法处理得到第一协商密钥,利用该第一协商密钥对所生成的第一密钥进行加密得到加密后的第一密钥,将加密后的第一密钥上传到区块链节点上;

本实施例中,利用交换协议算法处理得到第一协商密钥为非对称加密的方法,利用该第一协商密钥对所生成的第一密钥进行加密为对称加密的方法,利用非对称加密及对称加密的方法对第一密钥进行加密,能够确保第一密钥的安全性,由此保障消息明文的安全性。

步骤s5,消费者终端通过预定的方式获取区块链节点上的加密后的第一密钥,从区块链网络中获取生产者终端的第一ca证书对应的公钥,基于自身的第二ca证书的私钥与生产者终端的第一ca证书对应的公钥并利用交换协议算法处理得到第二协商密钥,利用该第二协商密钥对该加密后的第一密钥进行解密得到该第一密钥;

步骤s6,消费者终端获取区块链节点上的加密后的消息明文,利用解密后得到第一密钥对该加密后的消息明文进行解密,得到该消息明文。

优选地,预定的方式为轮询区块链的方式或者事件监听区块链的方式,以便主动地获取区块链节点上的加密后的消息明文,以便通信过程不被其他的消费者终端知晓,保障通信过程的保密性。

其中,消费者终端基于自身的第二ca证书的私钥与生产者终端的第一ca证书对应的公钥并利用交换协议算法处理得到的第二协商密钥,该第二协商密钥与第一协商密钥为相同的密钥,为经双方协商得到的,因此,可以利用第二协商密钥对该加密后的第一密钥进行解密,得到该第一密钥,利用第一密钥对加密后的消息明文进行解密,得到该消息明文。

本实施例将区块链、对称加密及非对称加密技术结合起来,使得通信过程及通信的消息不被其他的终端知晓,保障通信过程及的通信的消息保密性。

在一具体的实例中,在区块链的多端消息通信中,预定的加密算法为对称加密算法,终端a和终端b消息通信,终端a为生产者终端,终端b为消费者终端:

终端a:pria为终端a的私钥,puba为终端a的公钥,公钥puba上传到区块链中;

终端a自动生成一个第一密钥k,消息明文p和第一密钥k通过aes对称加密算法生成一个加密后的消息明文c,加密后的消息明文c上传到区块链中。从区块链中获取终端b的证书pubb,通过ecdh密钥交换协议算法即:pria*pub=q,这个q是双方协商出来的第一协商密钥。然后再通过aes对称加密算法计算,以q为密钥对第一密钥k进行对称加密,得到一个密文c2,c2上传到区块链中。

终端b:prib为终端b的私钥,pubb为终端b的公钥,公钥pubb上传到区块链中;

终端b通过轮询或者事件监听的方式,从区块链中获取了到终端a上传的密文c2;

从区块链中获取终端a的证书puba,终端b通过ecdh秘钥交换协议算法即:prib*puba=q,终端b生成的q和终端a生成的q的值是一样的。然后通过aes解密算法,以q为密钥对密文c2进行解密,最终获得第一密钥k,这样就实现了密钥交换,然后去区块链中获取加密后的消息明文c,然后再用aes解密,以第一密钥k为密钥对加密后的消息明文c解密,得到消息明文p。

在一实施例中,消费者终端在解密得到消息明文后,会对生产者终端作出一个响应,该方法还包括:

消费者终端基于所述消息明文生成对应的响应信息,生成自身的第二密钥,基于该第二密钥并利用预定的加密算法对响应信息进行加密,将加密后的响应信息上传到区块链节点上;

消费者终端利用该第二协商密钥对所生成的第二密钥进行加密得到加密后的第二密钥,将加密后的第二密钥上传到区块链节点上;

生产者终端通过预定的方式获取区块链节点上的加密后的第二密钥,利用该第一协商密钥对该加密后的第二密钥进行解密得到该第二密钥;

生产者终端获取区块链节点上的加密后的响应信息,利用解密后得到第二密钥对该加密后的响应信息进行解密,得到该响应信息。

其中,消费者终端对响应信息及第二密钥进行加密的方式,与生产者终端对消息明文的加密方式及对第一密钥进行加密的方式基本相同;生产者终端对响应信息及第二密钥进行解密的方式,与消费者终端对消息明文及第一密钥的解密的方式基本相同,此处不再赘述。本实施例消费者终端对响应信息及第二密钥进行加密,生产者终端对响应信息及第二密钥进行解密,同样是将区块链、对称加密及非对称加密技术结合起来,使得通信过程及通信的消息不被其他的终端知晓,进一步保障通信过程及的通信的消息保密性。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有处理系统,所述处理系统被处理器执行时实现上述的生产者终端或消费者终端执行的方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1