本发明属于信息共享技术领域,具体涉及一种基于区块链的多级位置信息共享方法。
背景技术:
随着智能穿戴技术、物联网技术的迅速发展,企业、政府等单位和组织可以掌握目标对象的位置信息,以满足车辆导航、社交游戏、疫情防控等业务需求。为了正确地制定疫情防控措施,掌握病例、疑似病例、与病例密切接触者的位置信息成为了一项意义重大的工作。
而另一方面,位置信息中包含了大量的用户信息,是一种极有价值的信息资源。在共享过程中,如果出现位置信息泄漏、篡改、伪造等安全事件,不仅会严重泄露用户隐私,还会对信息获取方的业务工作造成极大的消极影响。如何保证位置信息共享时的信息安全和隐私保护,已经成为一个不容忽视的难题。
首先,传统的无差别的信息共享已经无法满足大型位置信息共享系统的需求,需要一种安全、高效的多级位置信息共享方法。为尽可能地保护用户隐私,在位置信息共享过程中,需要实现不同级别的位置信息需求者得到不同精度的位置信息。
其次,传统的位置信息数据共享方案借助中心数据库处理并保存数据。在这种情况下,若中心数据库遭到攻击,可能会引发大规模的数据安全问题。而且,即使网络中很多用户都拥有相应的数据,中心数据库也必须参与所有的数据共享过程,这使得中心数据库的负担非常高。此外,信息需求者往往无法对获取得到的数据进行高效、可行的验证。
再者,现有的基于区块链的位置共享方案,虽然借助区块链实现了去中心化、不可篡改,但这些方案中一些存在着隐私保护不足、不可验证,且无法提供多级权限访问的问题,另外一些又存在着计算负担过高、系统强健性低、要求信息拥有者始终保持在线的问题。而在实际应用中,提供位置信息的终端设备往往没有很高的算力,并且管理者无法保证这些分布在不同位置的终端设备能够时刻保持在线。
技术实现要素:
本发明的目的是针对目前位置信息共享面临的集中式、不可验证、隐私保护不足,计算负担过高等问题,提供了一种基于区块链的多级位置信息共享方法。
本发明方法利用区块链技术实现了位置信息系统的去中心化、位置信息的不可篡改;以新的方法利用保序加密以及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;使用密钥生成算法生成
(1-3).若用户为位置信息需求者,系统为其分配等级标识。
(1-4).用户在用户端执行公私钥对生成算法,生成一对公私钥对(pk,sk),存储在用户端供用户使用。
步骤(2).位置信息预处理;具体是:
(2-1).lpi的位置坐标pi=(xi,yi);
首先,lpi生成随机向量v1=(x1′,y1′),满足
然后,lpi生成随机向量v2=(x2′,y2′),满足
lpi重复n次上述操作,确定n个正方形区域,得到区域信息集合
(2-2).lpi使用保序加密算法ope和密钥
(2-3).计算merkel树的叶节点
步骤(3).记录位置信息;具体是:
lpi计算坐标信息(xi,yi)的哈希值hash(xi||yi),计算密钥
对(xi,yi)进行保序加密,得到保序加密值
向区块链网络中的矿工节点广播记录信息recordi;
recordi组成为:
步骤(4).上传位置信息及验证信息;具体是:
(4-1).lpi向所有全节点广播
(4-2).lpi向至少一个ld0发送
ld0使用私钥
步骤(5).共享位置信息;具体是:
(5-1).id号为idj、等级标识为a的位置信息需求者
(5-2).
(5-3).
(5-4).
如果通过所有验证工作,
步骤(6).更新位置信息;具体是:
(6-1).lpi第p次更新位置信息时,假设此时位置坐标为
lpi广播位置更新信息
(6-2).已经经过信息共享过程的
本发明基于区块链技术,实现了位置信息共享系统的去中心化,位置信息的不可篡改、多级隐私保护,以及各级位置信息的完整性、真实性可验证。本发明方法在位置信息共享过程中不存在固定的位置信息提供者,任何位置信息需求者都可以从级别相同或者更高的位置信息需求者处获取合法的位置信息,并借助必要的验证数据与区块链进行数据验证,系统具有更强的强健性。此外,本方法涉及的计算负担较低,为一般的终端设备所能接受。
附图说明
图1为本发明方法总流程图;
图2为本发明实施例的初始化流程图;
图3为本发明实施例的位置信息预处理流程图;
图4为本发明实施例的位置信息记录流程图;
图5为本发明实施例的位置信息与验证信息上传流程图;
图6为本发明实施例的位置信息共享流程图;
图7为本发明实施例的位置信息更新流程图;
具体实施方式
下面结合附图对本发明的实施作进一步详细说明。
如图1所示,一种基于区块链的多级位置信息共享方法,具体流程是:
步骤1.系统初始化;
步骤2.为实现多级隐私保护、信息可验证的目标,位置信息提供者进行数据预处理;
步骤3.位置信息提供者记录位置信息;
步骤4.位置信息提供者上传位置信息及验证信息;
步骤5.位置信息需求者之间进行位置信息共享;
步骤6.位置信息更新时,位置信息提供者上传偏移向量密文,位置信息需求者解密并借助该偏移向量来更新位置信息。
为了更好地理解本发明实施例中的方法与过程,以一次位置信息共享过程进行详细说明。该过程中共有(n+1)类级别的位置信息需求者,共涉及一个位置信息提供者lpa,两个位置信息共享者
用户首次登陆系统时需要进行初始化,过程如图2所示,具体是:
(1-1).用户向系统提出注册申请,分别获取其真实身份信息对应的唯一的身份标识id号ida、idb、idc、idd;
(1-2).id号为ida的位置信息提供者lpa确定
(1-3).系统为位置信息需求者分配对应的等级标识。分配结果为,
(1-4).每个用户在用户端执行公私钥对生成算法,分别生成公私钥对
步骤(2).位置信息预处理,过程如图3所示;具体是:
(2-1).lpa的位置坐标为pa=(xa,ya)。
lpa生成随机向量v1=(x1′,y1′),需要满足
其中
lpa生成随机向量v2=(x2′,y2′),满足
lpa重复n次上述操作,可确定n个正方形区域,得到区域信息集合
(2-2).lpa使用保序加密算法ope和密钥
其中,
(2-3).lpa根据
步骤(3).记录位置信息,过程如图4所示;具体是:
lpa计算坐标信息(xa,ya)的哈希值hash(xa||ya);计算密钥
向区块链网络中的矿工节点广播记录信息recorda,recorda组成如下:
步骤(4).上传位置信息与验证信息,过程如图5所示;具体是:
(4-1).lpa向所有全节点广播
(4-2).lpa向
步骤(5).共享位置信息,过程如图6所示;具体是:
(5-1).
(5-2).
(5-3).
(5-4).
如果通过所有验证工作,
步骤(6).更新位置信息,过程如图7所示;具体是:
(6-1).lpa第p次更新位置信息时,假设此时位置坐标为
(6-2).