基于区块链的多级位置信息共享方法与流程

文档序号:23305987发布日期:2020-12-15 11:36阅读:241来源:国知局
基于区块链的多级位置信息共享方法与流程

本发明属于信息共享技术领域,具体涉及一种基于区块链的多级位置信息共享方法。



背景技术:

随着智能穿戴技术、物联网技术的迅速发展,企业、政府等单位和组织可以掌握目标对象的位置信息,以满足车辆导航、社交游戏、疫情防控等业务需求。为了正确地制定疫情防控措施,掌握病例、疑似病例、与病例密切接触者的位置信息成为了一项意义重大的工作。

而另一方面,位置信息中包含了大量的用户信息,是一种极有价值的信息资源。在共享过程中,如果出现位置信息泄漏、篡改、伪造等安全事件,不仅会严重泄露用户隐私,还会对信息获取方的业务工作造成极大的消极影响。如何保证位置信息共享时的信息安全和隐私保护,已经成为一个不容忽视的难题。

首先,传统的无差别的信息共享已经无法满足大型位置信息共享系统的需求,需要一种安全、高效的多级位置信息共享方法。为尽可能地保护用户隐私,在位置信息共享过程中,需要实现不同级别的位置信息需求者得到不同精度的位置信息。

其次,传统的位置信息数据共享方案借助中心数据库处理并保存数据。在这种情况下,若中心数据库遭到攻击,可能会引发大规模的数据安全问题。而且,即使网络中很多用户都拥有相应的数据,中心数据库也必须参与所有的数据共享过程,这使得中心数据库的负担非常高。此外,信息需求者往往无法对获取得到的数据进行高效、可行的验证。

再者,现有的基于区块链的位置共享方案,虽然借助区块链实现了去中心化、不可篡改,但这些方案中一些存在着隐私保护不足、不可验证,且无法提供多级权限访问的问题,另外一些又存在着计算负担过高、系统强健性低、要求信息拥有者始终保持在线的问题。而在实际应用中,提供位置信息的终端设备往往没有很高的算力,并且管理者无法保证这些分布在不同位置的终端设备能够时刻保持在线。



技术实现要素:

本发明的目的是针对目前位置信息共享面临的集中式、不可验证、隐私保护不足,计算负担过高等问题,提供了一种基于区块链的多级位置信息共享方法。

本发明方法利用区块链技术实现了位置信息系统的去中心化、位置信息的不可篡改;以新的方法利用保序加密以及merkle树来实现可验证的多级位置信息访问。其中,利用保序加密,一种不改变明文大小顺序的对称加密技术,实现了对各级位置区域信息的真实性验证;利用merkle树,一种常用于分布式数据验证的哈希二叉树,实现了对各级位置区域信息的完整性验证,多级隐私保护得到了实现;此外,本发明采用了一种新方式来表示并共享位置区域,限制了保序加密的次数,降低了计算开销,使得方案的计算负担可以被一般终端设备接受;同时,在本发明中,位置信息提供者不必始终保持在线,其在完成规定工作后可以离线,任何信息需求者都可以从访问级别相同或者更高的信息共享者处获取合法的位置信息。

系统中的用户分为位置信息提供者、位置信息需求者、全节点三类;所述的位置信息提供者为提供原始位置信息的用户,所述的位置信息需求者为需要获得位置信息的用户,所述的全节点为保存并提供验证信息的节点。

系统中共有(n+1)类级别的位置信息需求者,位置信息需求者加入系统时,系统根据其真实身份为其分配等级标识i,i=0,1,…,n;等级标识越小,位置信息需求者的访问等级越高;等级标识为0的位置信息需求者能够确定位置信息提供者的精确坐标。

本发明方法具体步骤是:

步骤(1).系统初始化;具体是:

(1-1).用户向系统提出注册申请,获取其真实身份信息对应的唯一的身份标识id号idi,i∈[1,n],n表示系统中注册的用户数。

(1-2).若用户为lpi,确定{ri1,ri2,...,rin},ri1<ri2<...<rin;rii表示等级标识为i的位置信息需求者能获得的关于lpi的最高精度的正方形位置区域的边长,i=1,2,...,n;使用密钥生成算法生成是在位置更新阶段加解密数据时使用的对称加密密钥,lpi表示id号为idi的位置信息提供者。

(1-3).若用户为位置信息需求者,系统为其分配等级标识。

(1-4).用户在用户端执行公私钥对生成算法,生成一对公私钥对(pk,sk),存储在用户端供用户使用。

步骤(2).位置信息预处理;具体是:

(2-1).lpi的位置坐标pi=(xi,yi);

首先,lpi生成随机向量v1=(x1′,y1′),满足确定对角顶点为pil1和pir1的正方形区域

然后,lpi生成随机向量v2=(x2′,y2′),满足确定对角顶点为pil2和pir2的正方形区域

lpi重复n次上述操作,确定n个正方形区域,得到区域信息集合如q>g,则正方形区域完全覆盖正方形区域等价地,得到对角顶点集合pil={pil1,pil2,...,piln}和pir={pir1,pir2,...,pirn}。

(2-2).lpi使用保序加密算法ope和密钥加密对角顶点坐标,得到对角顶点密文集合

k∈[1,n],ciph(·)表示保序加密函数。

(2-3).计算merkel树的叶节点hash(·)表示哈希函数;得到叶节点集合lpi使用nodesi建立一颗完整的merkel树vermeri,并得到其根节点rooti。

步骤(3).记录位置信息;具体是:

lpi计算坐标信息(xi,yi)的哈希值hash(xi||yi),计算密钥的哈希值

对(xi,yi)进行保序加密,得到保序加密值分别表示对xi和yi保序加密的保序加密值,计算opei的哈希值hash(opei);

向区块链网络中的矿工节点广播记录信息recordi;

recordi组成为:表示lpi使用私钥与数字签名算法对信息的数字签名;区块链网络中的矿工节点对recordi进行验证,验证通过后,经过共识过程将其写入区块链。

步骤(4).上传位置信息及验证信息;具体是:

(4-1).lpi向所有全节点广播表示lpi使用私钥与数字签名算法对信息的数字签名。

(4-2).lpi向至少一个ld0发送enc(·)表示非对称加密函数,表示ld0的公钥。

ld0使用私钥解密得到计算(xi′||yi′)和的哈希值hash(xi′||yi′)和判断是否分别与链上数据recordi中的hash(xi||yi)和相等:如果都相等,则完成数据完整性验证,接受信息如果不相等,则说明数据已被篡改,拒绝接收信息

步骤(5).共享位置信息;具体是:

(5-1).id号为idj、等级标识为a的位置信息需求者向访问级别相等或更高的申请lpi的位置信息,a≥b,j∈[1,n],l∈[1,n];根据其等级标识a向发送位置信息其中,表示的公钥;

使用私钥解密得到注意一点,以相同的方法向访问级别相等或更高的ld申请并得到lpi的位置信息后,才能为提供信息;显然,共享初始时ld0提供位置信息。

(5-2).向某一全节点fnodeh请求验证数据,fnodeh根据其等级标识a向发送验证数据其中,fnodeh表示id号为idh的全节点,h∈[1,n],表示根据叶节点计算vermeri根节点rooti其他必要节点集合。

使用私钥解密veria得到

(5-3).计算叶节点结合必要节点集计算得到vermeri的根节点rooti′;计算opei′和的哈希值hash(opei′)和判断rooti′、hash(opei′)、分别与链上数据recordi中的rooti、hash(opei)、是否相等:如果都相等,则完成数据完整性验证;如果不相等,说明数据已被篡改,共享失败。

(5-4).判断是否成立:如果成立,则完成对区域的真实性验证;如果不成立,说明位置区域信息是虚假的,共享失败。

如果通过所有验证工作,确定lpi位于正方形位置区域内,位置信息共享成功。

步骤(6).更新位置信息;具体是:

(6-1).lpi第p次更新位置信息时,假设此时位置坐标为记偏移向量lpi使用密钥加密vip,得到密文e(·)表示对称加密算法。

lpi广播位置更新信息信息组成如下,表示lpi对信息的数字签名。区块链网络中的矿工节点对进行验证,验证通过后,经过共识过程将其写入区块链。

(6-2).已经经过信息共享过程的在区块链上发现信息后,使用密钥解密得到vip借助vip即可确定lpi处于对角顶点为的正方形位置区域位置信息更新成功。其中,

本发明基于区块链技术,实现了位置信息共享系统的去中心化,位置信息的不可篡改、多级隐私保护,以及各级位置信息的完整性、真实性可验证。本发明方法在位置信息共享过程中不存在固定的位置信息提供者,任何位置信息需求者都可以从级别相同或者更高的位置信息需求者处获取合法的位置信息,并借助必要的验证数据与区块链进行数据验证,系统具有更强的强健性。此外,本方法涉及的计算负担较低,为一般的终端设备所能接受。

附图说明

图1为本发明方法总流程图;

图2为本发明实施例的初始化流程图;

图3为本发明实施例的位置信息预处理流程图;

图4为本发明实施例的位置信息记录流程图;

图5为本发明实施例的位置信息与验证信息上传流程图;

图6为本发明实施例的位置信息共享流程图;

图7为本发明实施例的位置信息更新流程图;

具体实施方式

下面结合附图对本发明的实施作进一步详细说明。

如图1所示,一种基于区块链的多级位置信息共享方法,具体流程是:

步骤1.系统初始化;

步骤2.为实现多级隐私保护、信息可验证的目标,位置信息提供者进行数据预处理;

步骤3.位置信息提供者记录位置信息;

步骤4.位置信息提供者上传位置信息及验证信息;

步骤5.位置信息需求者之间进行位置信息共享;

步骤6.位置信息更新时,位置信息提供者上传偏移向量密文,位置信息需求者解密并借助该偏移向量来更新位置信息。

为了更好地理解本发明实施例中的方法与过程,以一次位置信息共享过程进行详细说明。该过程中共有(n+1)类级别的位置信息需求者,共涉及一个位置信息提供者lpa,两个位置信息共享者与一个全节点fnoded。

用户首次登陆系统时需要进行初始化,过程如图2所示,具体是:

(1-1).用户向系统提出注册申请,分别获取其真实身份信息对应的唯一的身份标识id号ida、idb、idc、idd;

(1-2).id号为ida的位置信息提供者lpa确定并使用密钥生成算法生成是在位置更新阶段加解密数据时使用的对称加密密钥。

(1-3).系统为位置信息需求者分配对应的等级标识。分配结果为,是id号为idb、等级标识为0的位置信息需求者,是id号为idc、等级标识为m的位置信息需求者,m>0;

(1-4).每个用户在用户端执行公私钥对生成算法,分别生成公私钥对存储在用户端供用户使用;

步骤(2).位置信息预处理,过程如图3所示;具体是:

(2-1).lpa的位置坐标为pa=(xa,ya)。

lpa生成随机向量v1=(x1′,y1′),需要满足lpa可确定一个对角顶点为的正方形区域

其中

lpa生成随机向量v2=(x2′,y2′),满足确定一个对角顶点为的正方形区域其中

lpa重复n次上述操作,可确定n个正方形区域,得到区域信息集合等价地,lpa得到对角顶点集合

(2-2).lpa使用保序加密算法ope和密钥加密顶点坐标,得到对角顶点密文集合

其中,

k∈[1,n],ciph(·)表示保序加密函数。

(2-3).lpa根据la和ra计算merkel树的叶节点k∈[1,n],hash(·)表示哈希函数。lpa得到叶节点集合lpa使用nodesa建立一颗完整的merkel树vermeri,并得到其根节点roota;

步骤(3).记录位置信息,过程如图4所示;具体是:

lpa计算坐标信息(xa,ya)的哈希值hash(xa||ya);计算密钥的哈希值对(xa,ya)进行保序加密,得到其中并计算opea的哈希值hash(opea);

向区块链网络中的矿工节点广播记录信息recorda,recorda组成如下:表示lpa使用私钥与数字签名算法对信息的数字签名。区块链网络中的矿工节点对recorda进行验证,验证通过后,经过共识过程将其写入区块链;

步骤(4).上传位置信息与验证信息,过程如图5所示;具体是:

(4-1).lpa向所有全节点广播表示lpa使用私钥与数字签名算法对信息的数字签名。

(4-2).lpa向发送enc(·)表示非对称加密函数,表示的公钥。

使用私钥解密得到计算(xa′||ya′)和的哈希值hash(xa′||ya′)和判断是否分别与链上数据recorda中的hash(xa||ya)和相等:如果相等,则完成数据完整性验证,接受信息如果不相等,则说明数据已被篡改,拒绝接收信息

步骤(5).共享位置信息,过程如图6所示;具体是:

(5-1).申请lpa的位置信息;根据其等级标识m,向发送位置信息其中

使用私钥解密得到

(5-2).向全节点fnoded请求验证数据。fnoded根据其等级标识m,发送验证数据其中,表示根据叶节点计算vermera根节点roota其他必要节点集合。

使用私钥解密得到

(5-3).计算叶节点结合必要节点集计算得到vermera的根节点roota′;计算opea′和的哈希值hash(opea′)和判断roota′、hash(opea′)、与链上数据recorda中的roota、hash(opea)、是否相等:如果相等,则完成数据完整性验证;如果不相等,说明数据已被篡改,共享失败。

(5-4).判断是否成立:如果成立,则完成对区域的真实性验证;如果不成立,说明位置区域信息是虚假的,共享失败。

如果通过所有验证工作,确定lpa位于正方形位置区域内,位置信息共享成功。

步骤(6).更新位置信息,过程如图7所示;具体是:

(6-1).lpa第p次更新位置信息时,假设此时位置坐标为记偏移向量lpa使用密钥加密得到密文e(·)表示对称加密算法。lpa广播位置更新信息信息组成如下,表示lpa对信息的数字签名。区块链网络中的矿工节点对进行验证,验证通过后,经过共识过程将其写入区块链。

(6-2).在区块链上发现信息后,使用密钥解密得到借助即可确定lpa处于对角顶点为的正方形位置区域位置信息更新成功。其中,

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