1.基于区块链的多级位置信息共享方法,系统中的用户分为位置信息提供者、位置信息需求者、全节点三类;位置信息提供者为提供原始位置信息的用户,位置信息需求者为需要获得位置信息的用户,全节点为保存并提供验证信息的节点;
系统中共有(N+1)类级别的位置信息需求者,位置信息需求者加入系统时,系统根据其真实身份为其分配等级标识I,I=0,1,…,N;等级标识越小,位置信息需求者的访问等级越高;等级标识为0的位置信息需求者能够确定位置信息提供者的精确坐标;其特征在于,该方法具体步骤是:
步骤(1).系统初始化;具体是:(1‑1).用户向系统提出注册申请,获取其真实身份信息对应的唯一的身份标识ID号IDi,i∈[1,n],n表示系统中注册的用户数;
1 2 N 1 2 N I(1‑2).若用户为LPi,确定{ri ,ri ,...,ri},ri<ri <...ri ;ri表示等级标识为I的位置信息需求者能获得的关于LPi的最高精度的正方形位置区域的边长,I=1,2,...,N;使用密钥生成算法生成 是在位置更新阶段加解密数据时使用的对称加密密钥,LPi表示ID号为IDi的位置信息提供者;
(1‑3).若用户为位置信息需求者,系统为其分配等级标识;
(1‑4).用户在用户端执行公私钥对生成算法,生成一对公私钥对(PK,SK),存储在用户端供用户使用;
步骤(2).为实现多级隐私保护、信息可验证的目标,位置信息提供者进行数据预处理;
具体是:
(2‑1).LPi的位置坐标Pi=(xi,yi);
L1
首先,LPi生成随机向量v1=(x1′,y1′),满足 确定对角顶点为Pi 和R1
Pi 的正方形区域
然后,LPi生成随机向量v2=(x2′,y2′),满足 确定对角顶点L2 R2
为Pi 和Pi 的正方形区域LPi重复N次上述操作,确定N个正方形区域,得到区域信息集合 以L L1 L2 LN R R1 R2 RN及对角顶点集合Pi={Pi ,Pi ,...,Pi }和Pi={Pi ,Pi ,...,Pi };
(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使用私钥与数字签名算法对信息的数字签名;
0
(4‑2).LPi向至少一个LD发送 Enc(·)表示非对0
称加密函数, 表示LD的公钥;
0
LD使用私钥 解密 得到 计算(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向 发送位置信息其中, 表示 的
公钥;
使用私钥 解密 得到
(5‑2). 向某一全节点Fnodeh请求验证数据,Fnodeh根据其等级标识a向 发送验证数据 其中,Fnodeh表示ID号为IDh的全节点,h∈[1,n], 表示根据叶节点 计算Vermeri根节点rooti其他必要节点集合;
使用私钥 解密 得到
(5‑3). 计算叶节点 结合必要节点集计算得到Vermeri的根节点rooti′;计算OPEi′和 的哈希值hash(OPEi′)和判断rooti′、hash(OPEi′)、 分别与链上数据Recordi中的rooti、hash(OPEi)、 是否相等:如果都相等,则完成数据完整性验证;如果不相等,说明数据已被篡改,共享失败;
(5‑4). 判断 和 是否成立:如果成立,则完成对区域 的真实性验证;如果不成立,说明位置区域信息是虚假的,共享失败;
如果通过所有验证工作, 确定LPi位于正方形位置区域 内,位置信息共享成功;
步骤(6).位置信息更新时,位置信息提供者上传偏移向量密文,位置信息需求者解密并借助该偏移向量来更新位置信息;具体是:(6‑1).LPi第p次更新位置信息时,假设此时位置坐标为 记偏移向量p
LPi使用密钥 加密Vi ,得到密文E(·)表示对称加密算法;
LPi广播位置更新信息 信息组成如下:表示LPi对信息的数字签名;区块链网络中的矿工节点对 进行验证,验证通过后,经过共识过程将其写入区块链;
(6‑2).已经经过信息共享过程的 在区块链上发现 信息后, 使用密钥p p
解密 得到Vi ; 借助Vi 和 即可确定LPi处于对角顶点为 和 的正方形位置区域 位置信息更新成功;其中,