[0007] 本发明的目的是针对目前位置信息共享面临的集中式、不可验证、隐私保护不足,计 算负担过高等问题,提供了一种基于区块链的多级位置信息共享方法。
[0008] 本发明方法利用区块链技术实现了位置信息系统的去中心化、位置信息的不可篡改; 以新的方法利用保序加密以及merkle树来实现可验证的多级位置信息访问。其中,利用保 序加密,一种不改变明文大小顺序的对称加密技术,实现了对各级位置区域信息的真实性 验证;利用Merkle树,一种常用于分布式数据验证的哈希二叉树,实现了对各级位置区域 信息的完整性验证,多级隐私保护得到了实现;此外,本发明采用了一种新方式来表示并 共享位置区域,限制了保序加密的次数,降低了计算开销,使得方案的计算负担可以被一 般终端设备接受;同时,在本发明中,位置信息提供者不必始终保持在线,其在完成规定 工作后可以离线,任何信息需求者都可以从访问级别相同或者更高的信息共享者处获取合 法的位置信息。
[0009] 系统中的用户分为位置信息提供者、位置信息需求者、全节点三类;所述的位置信息 提供者为提供原始位置信息的用户,所述的位置信息需求者为需要获得位置信息的用户, 所述的全节点为保存并提供验证信息的节点。
[0010] 系统中共有(N+1)类级别的位置信息需求者,位置信息需求者加入系统时,系统根据 其真实身份为其分配等级标识I,I=0,1,…,N;等级标识越小,位置信息需求者的访问等级 越高;等级标识为0的位置信息需求者能够确定位置信息提供者的精确坐标。
[0011] 本发明方法具体步骤是:
[0012] 步骤(1).系统初始化;具体是:
[0013] (1‑1).用户向系统提出注册申请,获取其真实身份信息对应的唯一的身份标识ID号 IDi,i∈[1,n],n表示系统中注册的用户数。
[0014] (1‑2).若用户为LPi,确定{ri1,ri2,...,riN},ri1<ri2<...<riN;riI表示等级标识为I的位 置信息需求者能获得的关于LPi的最高精度的正方形位置区域的边长,I=1,2,...,N;使用密 钥生成算法生成 是在位置更新阶段加解密数据时使用的对称加密密钥,LPi表示ID 号为IDi的位置信息提供者。
[0015] (1‑3).若用户为位置信息需求者,系统为其分配等级标识。
[0016] (1‑4).用户在用户端执行公私钥对生成算法,生成一对公私钥对(PK,SK),存储在用 户端供用户使用。
[0017] 步骤(2).位置信息预处理;具体是:
[0018] (2‑1).LPi的位置坐标Pi=(xi,yi);
[0019] 首先,LPi生成随机向量v1=(x1′,y1′),满足 确定对角顶点为PiL1R1和Pi 的正方形区域
[0020]
[0021]
[0022] 然后,LPi生成随机向量v2=(x2′,y2′),满足 确定对角L2 R2
顶点 为Pi 和Pi 的正方形区域
[0023]
[0024]
[0025] LPi重复N次上述操作,确定N个正方形区域,得到区域信息集合如q>g,则正方形区域 完全覆盖正方形区域 等价地,得到对角
L L1 L2 LN R R1 R2 RN
顶点集合 Pi={Pi ,Pi ,...,Pi }和Pi={Pi ,Pi ,...,Pi }。
[0026] (2‑2).LPi使用保序加密算法OPE和密钥 加密对角顶点坐标,得到对角顶点密 文集合 和
[0027]
[0028] k ∈[1,N], ciph(·)表示保序加密函数。
[0029] (2‑3).计算Merkel树的叶节点 hash(·)表示哈希 函数;得到叶节点集合 LPi使用Nodesi建立一颗
完整的Merkel树Vermeri,并得到其根节点rooti。
[0030] 步骤(3).记录位置信息;具体是:
[0031] LPi计算坐标信息(xi,yi)的哈希值hash(xi||yi),计算密钥 的哈希值[0032] 对(xi,yi)进行保序加密,得到保序加密值 和 分别表示 对xi和yi保序加密的保序加密值, 计算
OPEi的哈 希值hash(OPEi);
[0033] 向区块链网络中的矿工节点广播记录信息Recordi;
[0034] Recordi组成为:表示LPi使用私
钥 与数字签名算法对信息的数字签名;区块链网络中的矿工节点 对Recordi进行验证,验证通过后,经过共识过程将其写入区块链。
[0035] 步骤(4).上传位置信息及验证信息;具体是:
[0036] (4‑1).LPi向所有全节点广播 表示LPi使用私钥 与数字签名算法对信息的数字签名。
0
[0037] (4‑2).LPi向至少一个LD 发送 Enc(·)表0
示非对 称加密函数, 表示LD的公钥。
[0038] LD0使用私钥 解密 得到 计算(xi′||yi′)和 的哈希值 hash(xi′||yi′)和 判断是否分别与链上数据Recordi中的hash(xi||yi)和相等:如果都相等,则完成数据完整性验证,接受信息 如果不相等,则说明数据已 被篡改,拒绝接收信息
[0039] 步骤(5).共享位置信息;具体是:
[0040] (5‑1).ID号为IDj、等级标识为a的位置信息需求者 向访问级别相等或更高的 申请LPi的位置信息,a≥b,j∈[1,n],l∈[1,n]; 根据其等级标识a向 发送 位置信息 其中, 表 示的公钥;
[0041] 使用私钥 解密 得到 注意一点, 以相同的方 法向访问级别相等或更高的LD申请并得到LPi的位置信息后,才能为 提供信息;
0
显然, 共享初始时LD提供位置信息。
[0042] (5‑2). 向某一全节点Fnodeh请求验证数据,Fnodeh根据其等级标识a向 发送 验证数据 其中,Fnodeh表示ID号为IDh的 全节点,h∈[1,n], 表示根据叶节点 计算Vermeri根节点rooti其他必要节点集 合。
a
[0043] 使用私钥 解密Veri得到
[0044] (5‑3). 计算叶节点 结合必要节点集 计算得到Vermeri的根节点rooti′;计算OPEi′和 的哈希值hash(OPEi′)和 判断rooti′、hash(OPEi′)、 分别与链上数据Recordi中的rooti、 hash
(OPEi)、 是否相等:如果都相等,则完成数据完整性验证;如果不相等,说 明数据已被篡改,共享失败。
[0045] (5‑4). 判断 和 是否成立:如果成立, 则完成对区域 的真实性验证;如果不成立,说明位置区域信息是虚假的,共享失败。
[0046] 如果通过所有验证工作, 确定LPi位于正方形位置区域 内,位置信息共享成功。
[0047] 步骤(6).更新位置信息;具体是:
[0048] (6‑1).LPi第p次更新位置信息时,假设此时位置坐标为 记偏移向量 pLPi使用密钥 加密Vi ,得到密文
E(·)表示对称加密算法。
[0049] LPi广播位置更新信息 信息组成如下,表示LPi对信息的数字签名。区块链网络中的矿工节点对
进行验证,验证通过 后,经过共识过程将其写入区块链。
[0050] (6‑2).已经经过信息共享过程的 在区块链上发现 信息后, 使用密p p钥 解密 得到Vi; 借助Vi 和 即可确定LPi处于对角顶点为 和 的正方形
位 置区域 位置信息更新成功。其中,
[0051] 本发明基于区块链技术,实现了位置信息共享系统的去中心化,位置信息的不可篡改、 多级隐私保护,以及各级位置信息的完整性、真实性可验证。本发明方法在位置信息共享 过程中不存在固定的位置信息提供者,任何位置信息需求者都可以从级别相同或者更高的 位置信息需求者处获取合法的位置信息,并借助必要的验证数据与区块链进行数据验证, 系统具有更强的强健性。此外,本方法涉及的计算负担较低,为一般的终端设备所能接受。