基于区块链的移动网络密钥管理及通信方法、移动网络、计算机装置和存储介质

文档序号:26056750发布日期:2021-07-27 15:35阅读:110来源:国知局
基于区块链的移动网络密钥管理及通信方法、移动网络、计算机装置和存储介质

本发明涉及云计算安全技术领域,尤其是一种基于区块链的移动网络密钥管理方法、通信方法、移动网络、计算机装置和存储介质。



背景技术:

密钥管理一般是指对密钥进行管理的行为,如密钥生成、密钥分发以及密钥更新等。传统的密钥管理方案主要有两种,分别是基于密钥树和基于层次的密钥管理方案。在基于密钥管理树的方案中,用户的密钥通过密钥管理树进行管理,密钥管理树的平衡主要取决于成员的进入和离开是否随着时间保持平衡。在基于层次的密钥管理方案中,把密钥管理功能划分到不同层次,每个层次有一个密钥管理者(keymanager),每层的密钥管理者提供相应的服务。

然而,传统的移动设备密钥更新策略,存在集中式的密钥管理者。在网络中每多划分一层,就会多一层密钥管理者,对密钥的管理(分发和更新)成本也会随之增长。同时,因为密钥材料是集中生成的,即使假设集中式的密钥管理者是可信的,它也会成为攻击者的主要攻击目标,并且一旦被攻破,整个组通讯将变得不安全甚至是瘫痪。此外,组通信中无线设备的移动将会导致频繁的密钥更新和分发操作,这将带来巨大的计算、存储和网络传输消耗。



技术实现要素:

针对上述至少一个技术问题,本发明的目的在于提供一种基于区块链的移动网络密钥管理方法、通信方法、移动网络、计算机装置和存储介质。

一方面,本发明实施例包括一种基于区块链的移动网络密钥管理方法,所述基于区块链的移动网络密钥管理方法包括以下步骤:

确认对所述移动网络的网络划分;所述网络划分将所述移动网络划分为多个子网,一个所述子网包括由至少一个第二移动设备,所述移动网络维护一个区块链网络,其中,一个所述子网维护所述区块链网络中的一条区块链子链;

获取第一移动设备发出的第一数字签名公钥和第一加密公钥;其中,所述第一加密公钥被所述第一移动设备使用第一数字签名私钥进行签名;

在所述区块链网络中广播所述第一数字签名公钥和第一加密公钥;

由区块生成子网收集被广播的所述第一数字签名公钥,将收集到的所述第一数字签名公钥打包成一个区块,在所述区块链网络中广播随机数与所述区块;所述区块生成子网是通过执行共识机制,在所述多个子网中确定的一个或多个所述子网;所述随机数由所述区块生成子网执行所述共识机制生成;

所述子网接收所述随机数与所述区块,根据所述随机数确定接受或不接受所述区块;

接受所述区块的所述子网将所述区块添加到该子网所维护的所述区块链子链。

进一步地,一个或多个所述子网组成一个通讯组,各所述通讯组分别作为节点连接成树形网络,具有连接关系的所述节点之间通过基站连接。

进一步地,所述根据所述随机数确定接受或不接受所述区块,包括:

根据所述随机数验证所述区块生成子网在所述共识机制中的资格,当所述区块生成子网满足资格,所述子网接受所述区块,反之,所述子网不接受所述区块。

进一步地,所述确认对所述移动网络的网络划分,包括:

以划分后所获得的各所述子网的计算消耗、通信消耗和存储消耗加权之和最小为目标,对所述移动网络进行网络划分。

进一步地,所述计算消耗的计算公式为ρ(si)=λi·d(si)+δi,其中d(si)是子网si的度,λi是单位时间内子网si中的第二移动设备变化的数量,δi是所述共识机制的计算消耗;

所述通信消耗的计算公式为τ(si)=ui·ηi,其中ui是子网si中的第二移动设备的数量,ηi是子网si的传输速率;

所述存储消耗的计算公式为σ(si)=ui·ρi,其中ρi是子网si的传输数据的大小。

进一步地,所述基于区块链的移动网络密钥管理方法还包括:

所述共识机制为工作量证明机制。

另一方面,本发明实施例还包括一种加密通信方法,包括:

获取实施例中基于区块链的移动网络密钥管理方法中的所述区块链网络;

所述第二移动设备从所述区块链网络中读取所述第一加密公钥和所述第一数字签名公钥;

所述第二移动设备获取获取需要传输的明文数据,使用所述第一加密公钥加密所述明文数据,获得密文数据;

所述第二移动设备使用第二数字签名私钥对所述密文数据进行签名,将经过签名的所述密文数据发送至所述第一移动设备;

所述第一移动设备从所述区块链网络中读取所述第二移动设备所广播的第二数字签名公钥对所述密文数据进行检验;

当所述密文数据通过检验,所述第一移动设备使用所述第一加密私钥对所述密文数据进行解密,获得所述明文数据。

另一方面,本发明实施例还包括一种移动网络,所述移动网络应用实施例中的基于区块链的移动网络密钥管理方法。

另一方面,本发明实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行基于区块链的移动网络密钥管理方法。

另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行基于区块链的移动网络密钥管理方法。

本发明的有益效果是:实施例中的基于区块链的移动网络密钥管理及通信方法,通过使用区块链来进行移动网络密钥管理,在移动网络的成员即连接到移动网络中的移动设备加入或离开移动网络中的通信组、在移动网络中的不同子网间移动时,可以将密钥传递给从一个子网移动到另一个子网的成员,同时仍然保留在通信中,而且可以保护密钥材料的安全性,实现了动态组成员资格管理和动态成员位置管理,能够避免现有技术要求移动网络现有成员识别新成员时导致的额外的密钥生成开销和密钥分发开销,对计算机资源消耗较低。

附图说明

图1为实施例中应用基于区块链的移动网络密钥管理方法的移动网络的示意图。

具体实施方式

本实施例中,基于区块链的移动网络密钥管理方法可以应用于如图1所示的移动网络中。参照图1,移动网络中本身包括多个第二移动设备,这些第二移动设备可以是手机、平板电脑等。基于区块链的移动网络密钥管理方法可以应用于以下过程:尚未连接到移动网络的一个第一移动设备请求接入移动网络,以与其中的一个或者多个第二移动设备进行通信。第一移动设备也可以是手机、平板电脑等,因此第一移动设备与第二移动设备之间的通信实际上可以是手机与手机之间的通信、手机与平板电脑之间的通信、平板电脑与平板电脑之间的通信等情况。

基于区块链的移动网络密钥管理方法包括以下步骤:

s1.确认对移动网络的网络划分;

s2.获取第一移动设备发出的第一数字签名公钥和第一加密公钥;其中,第一加密公钥被第一移动设备使用第一数字签名私钥进行签名;

s3.在区块链网络中广播第一数字签名公钥和第一加密公钥;

s4.由区块生成子网收集被广播的第一数字签名公钥,将收集到的第一数字签名公钥打包成一个区块,在区块链网络中广播随机数与区块;区块生成子网是通过执行共识机制,在多个子网中确定的一个或多个子网;随机数由区块生成子网执行共识机制生成;

s5.子网接收随机数与区块,根据随机数确定接受或不接受区块;

s6.接受区块的子网将区块添加到该子网所维护的区块链子链。

步骤s1中,如果移动网络本身就被划分成树形网络,那么可以延续使用这种划分,如果移动网络未被划分,那么可以以划分后所获得的各子网的计算消耗、通信消耗和存储消耗加权之和最小为目标,对移动网络进行网络划分。具体地,可以遍历对移动网络t的多种不同网络划分方案,其中第i种划分方案可以表示为寻找其中具有最小的计算消耗、通信消耗和存储消耗加权之和的方案作为对移动网络的网络划分果。

具体地,对于一种划分方案将移动网络划分为多个子网,其中第i个子网为si,每个子网分别包括由至少一个第二移动设备。一个或多个子网组成一个通讯组,其中第i个通讯组为gi。各通讯组分别作为节点连接成树形网络,具有连接关系的节点之间通过基站连接。对于子网si,其计算消耗ρ(si)的计算公式为ρ(si)=λi·d(si)+δi,其中d(si)是子网si的度(子网si的出度和入度之和),λi是单位时间内子网si中的第二移动设备变化的数量,δi是共识机制的计算消耗;其通信消耗τ(si)的计算公式为τ(si)=ui·ηi,其中ui是子网si中的第二移动设备的数量,ηi是子网si的传输速率;其存储消耗σ(si)的计算公式为σ(si)=ui·ρi,其中ρi是子网si的传输数据的大小。

设定加权求和系数α、β和γ,通过公式c(si)=α·ρ(si)+β·τ(si)+γ·σ(si)计算子网si的计算消耗、通信消耗和存储消耗的加权之和。

本实施例中,在约束条件下,求解满足总消耗最小的划分方案。其中,约束条件包括:

(1)即ti是的t划分中的第i个子树;

(2)即所有的通讯组都在ti中;

(3)即所在划分得到的子树中,其通讯组互不重叠。

本实施例中,图1所示的移动网络维护一个区块链网络。对移动网络进行划分后,一个子网中的各第二移动设备共同维护区块链网络中的一条区块链子链。

本实施例中,每个移动设备都分别生成一个加密密钥对(pk,sk)和一个数字签名密钥对(spk,ssk),其中pk为加密公钥,sk为加密私钥,spk为数字签名公钥,ssk为数字签名私钥。本实施例中,为了对各移动设备的密钥对进行区分,将第二移动设备生成的密钥分别称为第二加密公钥、第二加密私公钥、第二数字签名公钥、第二数字签名私钥,同理将第一移动设备生成的密钥分别称为第一加密公钥、第一加密私公钥、第一数字签名公钥、第一数字签名私钥。

当第一移动设备c请求加入移动网络时,第一移动设备c使用第一数字签名私钥sskc对第一加密公钥pkc进行签名,将经过签名的第一加密公钥pkc与第一数字签名公钥spkc在区块链网络广播。

本实施例中,由计算资源最丰富的一个或多个第二移动设备作为矿工参与挖矿。其中,挖矿是指执行共识机制。本实施例中,所执行的共识机制为工作量证明机制,具体地,成为矿工的第二移动设备执行多次迭代过程,在每一次迭代过程中,通过枚举上一次迭代过程的区块头中的随机值nonce计算得到上一次迭代过程的区块头的哈希值,如果所得到的哈希值满足系统设置的难度要求(例如哈希值的前置0个数达到预设阈值),那么就表示该第二移动设备完成工作量证明,否则执行下一次迭代过程。

本实施例中,第一个完成工作量证明的子网成为区块生成子网,由区块生成子网在一段时间内收集被广播的第一数字签名公钥。第一移动设备的数量有多个或者第一移动设备多次广播第一数字签名公钥的情况下,区块生成子网可以收集到多个第一数字签名公钥。区块生成子网将在同一时间段内收集到的所有第一数字签名公钥打包成一个区块,在区块链网络中广播打包得到的区块,以及广播工作量证明机制中生成随机数nonce。

当区块生成子网在区块链网络中广播区块以及随机数nonce,其他各个子网从区块链网络获取到区块以及随机数nonce,根据随机数nonce决定是否接受区块。具体地,接收到随机数nonce的子网根据随机数nonce验证区块生成子网在共识机制中的资格,例如,接收到随机数nonce的子网验证随机数nonce的哈希值是否满足工作量证明机制中的难度值要求,如果所得到的哈希值满足难度值要求,接收到随机数nonce的子网接受区块,如果所得到的哈希值不满足难度值要求,接收到随机数nonce的子网不接受区块。

如果一个子网接受了区块,那么该子网将区块添加到该子网所维护的区块链子链末端,即第一移动设备加入了该子网的组通讯。

在上述的第一移动设备加入子网的流程基础上,如果第一移动设备c从一个子网移动到另外一个子网,新子网中的各第二移动设备需要对第一移动设备c进行身份验证。新子网中的各第二移动设备只需要查询本地或上层节点子网中的区块链中是否有第一移动设备c的公钥信息,便可以实现快速的身份认证,具体地过程为:如果本地或上层节点子网中的区块链中有第一移动设备c的公钥信息,则第一移动设备c通过认证,新子网中的各第二移动设备使用查询得到的第一加密公钥pk与该设备进行加密通信;否则,需要等待矿工把其第一加密公钥pk添加区块链中,才能通过验证。

在上述的第一移动设备加入子网的流程基础上,如果第一移动设备c要离开移动网络t,则第一移动设备c不需要做任何事情,同时第一移动设备c的接入记录还会一直保存在移动网络t的区块链网络中。

本实施例中的基于区块链的移动网络密钥管理及通信方法,通过使用区块链来进行移动网络密钥管理,在移动网络的成员即连接到移动网络中的移动设备加入或离开移动网络中的通信组、在移动网络中的不同子网间移动时,可以将密钥传递给从一个子网移动到另一个子网的成员,同时仍然保留在通信中,而且可以保护密钥材料的安全性,实现了动态组成员资格管理和动态成员位置管理,能够避免现有技术要求移动网络现有成员识别新成员时导致的额外的密钥生成开销和密钥分发开销,对计算机资源消耗较低。

在上述的第一移动设备加入子网的流程基础上,由于第一移动设备已与相应的子网建立了连接,因此可以在第一移动设备与其所连接的第二移动设备之间进行加密通信。以第一移动设备c与第二移动设备a之间进行的加密通信为例,加密通信方法包括以下步骤:

p1.第二移动设备a从区块链网络中读取第一加密公钥pkc和第一数字签名公钥spkc;

p2.第二移动设备a获取获取需要传输的明文数据m,使用第一加密公钥pkc加密明文数据m,获得密文数据e;

p3.第二移动设备a使用自带的第二数字签名私钥sska对密文数据e进行签名,将经过签名的密文数据e发送至第一移动设备c;

p4.第一移动设备c从区块链网络中读取第二移动设备所广播的第二数字签名公钥spka,使用第二数字签名公钥spka对密文数据e进行检验;

p5.如果密文数据e通过第二数字签名公钥spka的检验,表明密文数据e没有损坏或被篡改,第一移动设备c使用第一加密私钥skc对密文数据e进行解密,获得明文数据m。

本实施例中,一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行本实施例中的基于区块链的移动网络密钥管理方法。

本实施例中,一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行本实施例中的基于区块链的移动网络密钥管理方法,实现与本实施例中所述的相同的技术效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向目标终端的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的目标终端,包括显示器上产生的物理和有形目标终端的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

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