CN113068128B - 基于双云安全计算协议的用户地理位置近邻查询方法 - Google Patents

基于双云安全计算协议的用户地理位置近邻查询方法 Download PDF

Info

Publication number
CN113068128B
CN113068128B CN202110288951.3A CN202110288951A CN113068128B CN 113068128 B CN113068128 B CN 113068128B CN 202110288951 A CN202110288951 A CN 202110288951A CN 113068128 B CN113068128 B CN 113068128B
Authority
CN
China
Prior art keywords
query
lsp
user
public key
csp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110288951.3A
Other languages
English (en)
Other versions
CN113068128A (zh
Inventor
王保仓
吴松阳
段普
张本宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202110288951.3A priority Critical patent/CN113068128B/zh
Publication of CN113068128A publication Critical patent/CN113068128A/zh
Application granted granted Critical
Publication of CN113068128B publication Critical patent/CN113068128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/909Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种基于双云安全计算协议的用户地理位置近邻查询方法,用于解决现有用户地理位置近邻查询技术中存在的安全性不足和查询准确率较低的问题,实现步骤为:构建用户地理位置近邻查询模型;制定双云安全计算协议;查询中心生成密钥并分配;查询中心初始化k维二叉树并上传;用户对其位置信息进行加密并上传;位置服务提供商和计算服务提供商基于密态数据比较协议对加密后的k维二叉树更新;查询中心请求获取用户地理位置的k近邻查询结果;位置服务提供商和计算服务提供商基于双云安全计算协议进行k近邻查询;查询中心解密结果队列。

Description

基于双云安全计算协议的用户地理位置近邻查询方法
技术领域
本发明属于位置服务中的位置隐私保护技术领域,涉及一种用户地理位置近邻查询方法,具体涉及一种基于双云安全计算协议的用户地理位置近邻查询方法,可用于智能交通、物联网、环境监测和互联网社交等领域。
背景技术
得益于定位技术、移动终端技术和地理信息技术的蓬勃发展,基于位置服务近年来已经融入人们日常生活的方方面面,在智能交通、物联网、环境监测和互联网社交等领域得到广泛的应用并带来巨大的经济利益,其中近邻查询作为位置服务的一种重要的服务形式在兴趣点查询、位置共享等应用场景有着重要的作用。然而位置服务给人们带来极大方便的同时也给用户的个人隐私带来潜在的风险。恶意攻击者通过多查询攻击、背景知识攻击等方式直接获取或者推测出用户的空间位置、行动路径、兴趣爱好、健康状况等敏感信息,一旦这些信息被用于违法犯罪,造成的后果将不堪设想。
目前位置服务近邻查询的隐私保护技术有混淆法、匿名法、加密法等技术。申请公布号CN110248315A,名称为“一种基于双锚点的位置隐私保护方法”,公开了一种用户地理位置近邻查询方法,该方法通过构造多个用户的匿名区,使用匿名区代替用户真实位置提交查询请求给位置服务器,使攻击者无法区分匿名区中的多个用户,保证用户的位置安全,通过使用基于双锚点的查询方法,使得查询结果能保证满足用户的匿名请求,且可在匿名状态下得到用户位置近邻查询结果。但是该方法的隐私保护效果依赖于所构建的匿名区的用户数量,用户数量过少,隐私保护效果变差,安全性较低;用户数量过大,匿名区过大,用户地理位置近近邻查询的准确率变低。
发明内容
本发明的目的在于克服上述现有技术的不足,提出了基于双云安全计算协议的地理位置查询方法,用于解决现有技术中存在的安全性较差和查询准确率较低的技术问题。
为实现上述目的,本发明采取的技术方案包括如下步骤:
(1)构建用户地理位置近邻查询模型:
构建包括查询中心和用户集合D={di|1≤i≤I,I≥2},以及由位置服务提供商LSP和计算服务提供商CSP组成的云服务器的用户地理位置近邻查询模型,其中用户集合D对应的位置信息集为 P={pi=(xi,yi,ui)|1≤i≤I,I≥2},di表示位置信息为pi=(xi,yi,ui)的第i个用户,xi和yi表示di所在位置的横坐标和纵坐标,ui表示di的包含身份标识和健康状况的标识信息,I表示用户的总个数;
(2)制定双云安全计算协议:
制定包括密态数据比较协议和密态数据欧氏距离计算协议的双云安全计算协议,实现步骤为:
(2a)制定包括密态数据比较协议:
(2a1)LSP通过正整数r,计算输入给LSP的密文
Figure BDA0002981639920000021
的一级中间常量
Figure BDA0002981639920000022
以及输入给LSP的密文
Figure BDA0002981639920000023
的一级中间常量
Figure BDA0002981639920000024
再采用DT-PKC的部分解密算法PMDes1(·),通过部分私钥mk1对一级中间常量A1和B1分别进行部分解密,得到部分明文A1'和B1':
A1'=PMDes1(A)
B1'=PMDes1(B)
其中(·)r表示求r次幂操作;
(2a2)LSP随机均匀地选取整数μ∈{0,1},当μ=1时,将{A1,A1',B1,B1'}上传至CSP,当μ=0时,将{B1,B1',A1,A1'}上传至CSP;
(2a3)CSP采用部分解密算法PMDes2(),通过部分私钥mk2对 {A1,A1',B1,B1'}或{B1,B1',A1,A1'}进行解密,得到明文{ar,br}或者{br,ar},并通过{ar,br}计算判断常量d=a/b,或通过{br,ar}计算判断常量d=b/a;
(2a4)当d>0时,CSP将返回值ω=1返回至LSP,当d<0时,CSP将返回值ω=-1返回至LSP,当d=0时,CSP将返回值ω=0返回至LSP;
(2a5)LSP根据μ和ω的值,确定a和b的大小关系:
Figure BDA0002981639920000031
(2b)制定密态数据欧氏距离计算协议:
(2b1)LSP通过随机选取的两个非负整数rα和rβ计算中间常量R=rα-rβ,并采用DT-PKC的加密算法Enc(·),通过公钥PK对R和R2分别进行加密,得到密文EPK(R)和EPK(R2),其中R2为R的平方;
(2b2)LSP采用DT-PKC的加密算法Enc(·),通过公钥pk1对rα进行加密,得到rα的中间常量
Figure BDA0002981639920000032
并通过公钥pk2对rβ分别进行加密,得到rβ的中间常量
Figure BDA0002981639920000033
(2b3)LSP计算输入给LSP的密文
Figure BDA0002981639920000034
的一级中间常量
Figure BDA0002981639920000035
和输入给LSP的密文
Figure BDA0002981639920000036
的一级中间常量
Figure BDA0002981639920000037
并采用DT-PKC的部分解密算法PMDes1(·),通过部分私钥mk1对一级中间常量A2和B2分别进行部分解密,得到部分明文A2'和 B2',然后将{A2,A2',B2,B2'}上传至CSP,其中:
Figure BDA0002981639920000038
Figure BDA0002981639920000039
其中,
Figure BDA00029816399200000310
表示密文域乘法;
(2b4)CSP采用DT-PKC的部分解密算法PMDes2(·),通过部分私钥mk2对 {A2,A2',B2,B2'}进行解密,得到明文{a+rα,b+rβ},并计算{a+rα,b+rβ}的二级中间常量A2”=(a+rα)-(b+rβ)和B2”=((a+rα)-(b+rβ))2
(2b5)CSP采用DT-PKC的加密算法Enc(·),通过公钥PK将A2”和B2”加密,得到密文中间常量S1=EPK(A2”)和S2=EPK(B2”),并将{S1,S2}返回至LSP;
(2b6)LSP根据{S1,S2}计算密文中间常量
Figure BDA0002981639920000041
并计算得到明文a和b的欧氏距离的平方的密文
Figure BDA0002981639920000042
(3)查询中心生成密钥并分配:
(3a)查询中心采用DT-PKC的密钥生成算法KeyGen(·),计算查询中心的公钥PK0和主私钥mk、云服务器的公钥PK、以及每个用户di的公钥pki
(3b)查询中心采用DT-PKC的私钥分割算法MkeyS()将主私钥mk分割成部分私钥mk1和mk2,并通过密钥信道将公钥PK和部分私钥mk1分配给位置服务提供商LSP,将公钥PK和部分私钥mk2分配给计算服务提供商CSP,将公钥pki分配给对应的用户di
(4)查询中心初始化k维二叉树并上传:
(4a)查询中心从位置信息集P选取w个位置信息组成的位置信息子集 P'={ps=(xs,ys,us)|1≤s≤w,w<I},并采用k维二叉树初始化算法 K-DTreeInit(·),以xs和ys为分割维度对位置信息子集P'进行交替分割,得到 k维二叉树T={ts:<ts.data=ps,ts.right,ts.left>|1≤s≤w},其中ts表示T中的节点,ts.data表示存储在节点ts的数据,ts.right和ts.left分别表示ts的右孩子和左孩子;
(4b)查询中心采用DT-PKC的加密算法Enc(),并通过公钥PK0对k维二叉树T的每个节点ts的节点数据ts.data进行加密并和公钥PK0组合,得到位置信息向量为ps'的加密后的k维二叉树T',然后将T'上传至LSP,其中:
Figure BDA0002981639920000043
(5)用户di对其位置信息pi进行加密并上传:
(5a)用户di采用DT-PKC的加密算法Enc(),并通过自己的公钥pki对用户位置信息pi=(xi,yi,ui)进行加密,得到用户位置信息密文
Figure BDA0002981639920000051
然后将
Figure BDA0002981639920000052
和公钥pki组合成用户位置信息向量pi'上传至LSP,其中:
Figure BDA0002981639920000053
(6)LSP和CSP基于密态数据比较协议对加密后的k维二叉树T'更新:
LSP和CSP采用k维二叉树的节点***算法K-DTreeInsert(·),并基于密态数据比较协议,将用户di上传的用户位置信息向量pi'***到k维二叉树T' 中,得到更新后的k维二叉树T”;
(7)查询中心请求获取用户地理位置的k近邻查询结果:
查询中心采用DT-PKC的加密算法Enc(),通过公钥PK0对用户地理位置 p0=(x0,y0,u0)进行加密,得到用户地理位置密文
Figure BDA0002981639920000054
并将由
Figure BDA0002981639920000055
和公钥PK0组合成的用户地理位置信息向量p0',以及p0的近邻点个数的查询参数k0组成近邻查询请求{p0',k0}上传至LSP,其中:
Figure BDA0002981639920000056
(8)LSP和CSP基于双云安全计算协议进行k近邻查询:
LSP和CSP采用k维二叉树的k近邻查询算法K-DTreeKnnQuery(·),并基于双云安全计算协议,在k维二叉树T”中使用p0'查询用户地理位置p0的k0个近邻点,得到的查询结果队列
Figure BDA0002981639920000057
返回至查询中心,其中PQ中的元素pj'为待查询位置点p0在k维二叉树中的k0个近邻点的位置信息向量;
(9)查询中心解密结果队列:
查询中心采用DT-PKC的解密算法MDec(),通过主私钥mk对结果队列PQ 进行解密,得到用户地理位置p0的近邻点位置信息集 P”={pj={xj,yj,uj}|1≤j≤k0},其中pj表示p0的第j个近邻点的位置信息。
本发明与现有技术相比,具有以下优点:
1.本发明制定双云安全计算协议并采用DT-PKC算法将用户的位置信息加密并以k维二叉树的数据结构上传至云服务器中存储,LSP和CSP无法直接得到用户位置信息的明文数据,与现有技术相比增加用户位置信息的安全性。
2.本发明制定双云安全计算协议使本来只适用于明文位置信息点的k维二叉树近邻查询算法适用于加密的位置信息点,在执行k维二叉树算法的过程中,LSP 和CSP依然无法获得用户位置信息的明文数据,与现有技术提高了近邻查询的准确率。
附图说明
图1为本发明的实现流程图。
图2为本发明实施例采用的k维二叉树的结构示意图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细描述:
参照图1,本发明包括如下步骤:
步骤1)构建用户地理位置近邻查询模型:
构建包括查询中心和用户集合D={di|1≤i≤9},以及由位置服务提供商 LSP和计算服务提供商CSP组成的云服务器的用户地理位置近邻查询模型,其中用户集合D对应的位置信息集为P={pi=(xi,yi,ui)|1≤i≤9},di表示位置信息为pi=(xi,yi,ui)的第i个用户,xi和yi表示di所在位置的横坐标和纵坐标,ui表示di的包含身份标识和健康状况的标识信息,I表示用户的总个数,在实施例中为了简便叙述,将ui隐去,则位置信息集为:
P={(1,5),(2,2),(3,1),(4,6),(5,4),(7,2),(8,5),(5,3),(1,1)};
步骤2)制定双云安全计算协议:
制定包括密态数据比较协议和密态数据欧氏距离计算协议的双云安全计算协议,实现步骤为:
步骤2a)制定包括密态数据比较协议:
步骤2a1)LSP通过正整数r,计算输入给LSP的密文
Figure BDA0002981639920000061
的一级中间常量
Figure BDA0002981639920000062
以及输入给LSP的密文
Figure BDA0002981639920000063
的一级中间常量
Figure BDA0002981639920000071
再采用DT-PKC的部分解密算法PMDes1(·),通过部分私钥mk1对一级中间常量A1和B1分别进行部分解密,得到部分明文A1'和B1':
A1'=PMDes1(A)
B1'=PMDes1(B)
其中(·)r表示求r次幂操作;
步骤2a2)LSP随机均匀地选取整数μ∈{0,1},当μ=1时,将{A1,A1',B1,B1'} 上传至CSP,当μ=0时,将{B1,B1',A1,A1'}上传至CSP;
步骤2a3)CSP采用部分解密算法PMDes2(),通过部分私钥mk2对 {A1,A1',B1,B1'}或{B1,B1',A1,A1'}进行解密,得到明文{ar,br}或者{br,ar},并通过{ar,br}计算判断常量d=a/b,或通过{br,ar}计算判断常量d=b/a;
步骤2a4)当d>0时,CSP将返回值ω=1返回至LSP,当d<0时,CSP将返回值ω=-1返回至LSP,当d=0时,CSP将返回值ω=0返回至LSP;
步骤2a5)LSP根据μ和ω的值,确定a和b的大小关系:
Figure BDA0002981639920000072
步骤2b)制定密态数据欧氏距离计算协议:
步骤2b1)LSP通过随机选取的两个非负整数rα和rβ计算中间常量 R=rα-rβ,并采用DT-PKC的加密算法Enc(·),通过公钥PK对R和R2分别进行加密,得到密文EPK(R)和EPK(R2),其中R2为R的平方;
步骤2b2)LSP采用DT-PKC的加密算法Enc(·),通过公钥pk1对rα进行加密,得到rα的中间常量
Figure BDA0002981639920000073
并通过公钥pk2对rβ分别进行加密,得到rβ的中间常量
Figure BDA0002981639920000074
步骤2b3)LSP计算输入给LSP的密文
Figure BDA0002981639920000075
的一级中间常量
Figure BDA0002981639920000081
和输入给LSP的密文
Figure BDA0002981639920000082
的一级中间常量
Figure BDA0002981639920000083
并采用DT-PKC的部分解密算法PMDes1(·),通过部分私钥mk1对一级中间常量A2和B2分别进行部分解密,得到部分明文A2'和 B2',然后将{A2,A2',B2,B2'}上传至CSP,其中:
Figure BDA0002981639920000084
Figure BDA0002981639920000085
其中,
Figure BDA0002981639920000086
表示密文域乘法;
步骤2b4)CSP采用DT-PKC的部分解密算法PMDes2(·),通过部分私钥mk2对{A2,A2',B2,B2'}进行解密,得到明文{a+rα,b+rβ},并计算{a+rα,b+rβ}的二级中间常量A2”=(a+rα)-(b+rβ)和B2”=((a+rα)-(b+rβ))2
步骤2b5)CSP采用DT-PKC的加密算法Enc(·),通过公钥PK将A2”和B2”加密,得到密文中间常量S1=EPK(A2”)和S2=EPK(B2”),并将{S1,S2}返回至LSP;
步骤2b6)LSP根据{S1,S2}计算密文中间常量
Figure BDA0002981639920000087
并计算得到明文a和b的欧氏距离的平方的密文
Figure BDA0002981639920000088
步骤3)查询中心生成密钥并分配:
步骤3a)查询中心采用DT-PKC的密钥生成算法KeyGen(·),计算查询中心的公钥PK0和主私钥mk、云服务器的公钥PK、以及每个用户di的公钥pki,具体步骤如下:
步骤3a1)查询中心根据所需要的安全等级生成安全参数κ,并通过两个比特长度等于κ的大素数p和q计算公共模数N=pq;
步骤3a2)查询中心从小于N2且与N2互素的正整数集合
Figure BDA0002981639920000089
均匀且随机地选取整数α,并通过α计算公钥参数g=α2Nmod N2,其中mod表示取模操作;
步骤3a3)查询中心通过整数θ0∈[1,N/4]计算自己的公钥参数
Figure BDA00029816399200000810
并将N、g和h0作为自己的公钥PK0={N,g,h0},同时计算公共模数N的卡米歇尔值λ=lcm(p-1,q-1),并将λ作为自己的主私钥mk=λ,其中 lcm(·)表示求最小公倍数操作;
步骤3a4)查询中心通过整数θ∈[1,N/4]计算云服务器的公钥参数 h=gθmod N2,并将N、g和h作为云服务器的公钥PK={N,g,h};
步骤3a5)查询中心通过整数θi∈[1,N/4]计算每个用户di 的公钥参数
Figure BDA0002981639920000092
并将N、g和hi作为用户di 的公钥pki={N,g,hi}。
步骤3b)查询中心采用DT-PKC的私钥分割算法MkeyS()将主私钥mk分割成部分私钥mk1和mk2,并通过密钥信道将公钥PK和部分私钥mk1分配给位置服务提供商LSP,将公钥PK和部分私钥mk2分配给计算服务提供商CSP,将公钥 pki分配给对应的用户di,其中将主私钥mk分割成部分私钥mk1和mk2的具体步骤如下:
步骤3b1)查询中心按照下式计算部分私钥mk1=λ1和部分私钥mk2=λ2
Figure BDA0002981639920000091
步骤4)查询中心初始化k维二叉树并上传:
步骤4a)查询中心从位置信息集P选取前7个位置信息组成的位置信息子集P'={ps=(xs,ys,us)|1≤s≤7},并采用k维二叉树初始化算法 K-DTreeInit(·),以xs和ys为分割维度对位置信息子集P'进行交替分割,得到 k维二叉树T={ts:<ts.data=ps,ts.right,ts.left>|1≤s≤w},其中ts表示T中的节点,ts.data表示存储在节点ts的数据,ts.right和ts.left分别表示ts的右孩子和左孩子,在实施例中构造k维二叉树T的步骤如下:
步骤4a1)查询中心查找P'在维度xs的中位数元素(4,6),则(4,6)为k维二叉树T的根节点,然后按(4,6)将P'按维度xs分为两个子集 PL'={(1,5),(2,2),(3,1)}和PR'={(5,4),(7,2),(8,5)},注意如果集合数量为偶数则向下取;
步骤4a2)查询中心查找PL'在维度ys的中位数元素(2,2),则(2,2)为根节点(4,6)的左孩子,然后按照(2,2)将PL'按维度ys分为两个子集 PLL'={(1,5)},PLR'={(3,1)},注意到此时PLL'和PLR'均只有一个元素,无法被继续划分,所以将(1,5)作为(2,2)的左孩子,将(3,1)作为(2,2)的右孩子;
步骤4a3)查询中心查找PR'在维度ys的中位数元素(5,4),则(5,4)为根节点(4,6)的右孩子,然后按(5,4)将PR'按维度ys分为两个子集 PRL'={(7,2)},PRR'={(8,5)},此时PRL'和PRR'均只有一个元素,无法被继续划分,所以将(7,2)作为(5,4)的左孩子,将(8,5)作为(5,4)的右孩子,至此完成了如图2所示的以P'中的元素(4,6)为根节点的共有7个节点的K维二叉树 T的初始化,其中的黑色节点代表树的节点,空心节点为未***树的节点,菱形节点代表待查询的位置点信息,图中的横坐标表示位置信息的x轴,纵坐标表示位置信息的y轴。
步骤4b)查询中心采用DT-PKC的加密算法Enc(),并通过公钥PK0对k维二叉树T的每个节点ts的节点数据ts.data进行加密并和公钥PK0组合,得到位置信息向量为ps'的加密后的k维二叉树T',然后将T'上传至LSP,其中:
Figure BDA0002981639920000101
具体在实施例中
Figure BDA0002981639920000102
步骤5)用户d8对其位置信息p8进行加密:
用户d8采用DT-PKC的加密算法Enc(),并通过自己的公钥pk8对用户位置信息p8=(x8,y8,u8)进行加密,得到用户位置信息密文
Figure BDA0002981639920000111
然后将
Figure BDA0002981639920000112
和公钥pk8组合成用户位置信息向量p8'上传至LSP,其中:
Figure BDA0002981639920000113
在实施例中
Figure BDA0002981639920000114
步骤6)LSP和CSP基于密态数据比较协议对加密后的k维二叉树T'更新:
LSP和CSP采用k维二叉树的节点***算法K-DTreeInsert(·),并基于密态数据比较协议,将用户d8上传的用户位置(5,3)对应的信息向量pk8***到K维二叉树T'中,得到更新后的K维二叉树T”,具体步骤如下:
步骤6a)LSP和CSP从K维二叉树T'的根节点
Figure BDA0002981639920000115
开始执行密态数据比较协议,按照维度xs
Figure BDA0002981639920000116
中的
Figure BDA0002981639920000117
Figure BDA0002981639920000118
中的
Figure BDA0002981639920000119
作为比较协议的输入值,得到结果
Figure BDA00029816399200001110
的明文要大于
Figure BDA00029816399200001111
的明文,然后在
Figure BDA00029816399200001112
的右子树继续执行 K-DTreeInsert(·);
步骤6b)LSP和CSP执行密态数据比较协议,按照维度ys
Figure BDA00029816399200001113
中的
Figure BDA00029816399200001114
Figure BDA00029816399200001115
中的
Figure BDA00029816399200001116
作为比较协议的输入值,得到结果
Figure BDA00029816399200001117
的明文要小于
Figure BDA00029816399200001118
的明文,然后在
Figure BDA00029816399200001119
的左子树继续执行K-DTreeInsert(·);
步骤6c)LSP和CSP执行密态数据比较协议,按照维度xs
Figure BDA00029816399200001120
中的
Figure BDA00029816399200001121
Figure BDA00029816399200001122
中的
Figure BDA00029816399200001123
作为比较协议的输入值,得到结果
Figure BDA00029816399200001124
的明文要小于
Figure BDA00029816399200001125
的明文,故在
Figure BDA00029816399200001126
的左子树继续执行节点***算法,但
Figure BDA0002981639920000121
已经是叶子节点,并没有左子树,故将
Figure BDA0002981639920000122
作为
Figure BDA0002981639920000123
的左孩子***到看k维二叉树 T'中,得到新的k维二叉树T”;
步骤7)查询中心请求获取用户地理位置的k近邻查询结果:
查询中心采用DT-PKC的加密算法Enc(),通过公钥PK0对用户地理位置 p0=(x0,y0,u0)进行加密,得到用户地理位置密文
Figure BDA0002981639920000124
并将由
Figure BDA0002981639920000125
和公钥PK0组合成的用户地理位置信息向量p0',以及p0的近邻点个数的查询参数 k0组成近邻查询请求{p0',k0}上传至LSP,其中:
Figure BDA0002981639920000126
在实施例中
Figure BDA0002981639920000127
k0=2;
步骤8)LSP和CSP基于双云安全计算协议进行k近邻查询:
LSP和CSP采用k维二叉树的k近邻查询算法K-DTreeKnnQuery(·),并基于双云安全计算协议,在k维二叉树T”中使用p0'查询用户地理位置p0的k0个近邻点,得到的查询结果队列
Figure BDA0002981639920000128
返回至查询中心,其中PQ中的元素pj'为待查询位置点p0在k维二叉树中的k0个近邻点的位置信息向量,具体步骤如下:
步骤8a)LSP和CSP k维二叉树T'的根节点
Figure BDA0002981639920000129
执行密态数据欧氏距离计算协议,将
Figure BDA00029816399200001210
中的
Figure BDA00029816399200001211
Figure BDA00029816399200001212
中的
Figure BDA00029816399200001213
作为计算协议的输入值,得到
Figure BDA00029816399200001214
Figure BDA00029816399200001215
对应明文欧氏距离平方的密文EPK(9);将
Figure BDA00029816399200001216
中的
Figure BDA00029816399200001217
Figure BDA00029816399200001218
中的
Figure BDA00029816399200001219
作为计算协议的输入值,得到
Figure BDA00029816399200001220
Figure BDA00029816399200001221
对应明文欧氏距离平方的密文EPK(25),然后计算
Figure BDA00029816399200001222
Figure BDA00029816399200001223
对应明文欧氏距离平方的密文
Figure BDA0002981639920000131
Figure BDA0002981639920000132
加入查询结果队列PQ;
步骤8b)LSP和CSP执行密态数据比较协议,按照维度xs
Figure BDA0002981639920000133
中的
Figure BDA0002981639920000134
Figure BDA0002981639920000135
中的
Figure BDA0002981639920000136
作为比较协议的输入值,得到结果
Figure BDA0002981639920000137
的明文小于
Figure BDA0002981639920000138
的明文,然后在
Figure BDA0002981639920000139
的左子树继续执行K-DTreeKnnQuery(·);
步骤8c)LSP和CSP执行密态数据欧氏距离计算协议,将
Figure BDA00029816399200001310
中的
Figure BDA00029816399200001311
Figure BDA00029816399200001312
中的
Figure BDA00029816399200001313
作为计算协议的输入值,得到
Figure BDA00029816399200001314
Figure BDA00029816399200001315
对应明文欧氏距离平方的密文EPK(1);将
Figure BDA00029816399200001316
中的
Figure BDA00029816399200001317
Figure BDA00029816399200001318
中的
Figure BDA00029816399200001319
作为计算协议的输入值,得到
Figure BDA00029816399200001320
Figure BDA00029816399200001321
对应明文欧氏距离平方的密文 EPK(1),然后计算
Figure BDA00029816399200001322
Figure BDA00029816399200001323
对应明文欧氏距离平方的密文
Figure BDA00029816399200001324
Figure BDA00029816399200001325
加入查询结果队列PQ;
步骤8c)LSP和CSP执行密态数据比较协议,按照维度ys
Figure BDA00029816399200001326
中的
Figure BDA00029816399200001327
Figure BDA00029816399200001328
中的
Figure BDA00029816399200001329
作为比较协议的输入值,得到结果
Figure BDA00029816399200001330
的明文小于
Figure BDA00029816399200001331
的明文,然后在
Figure BDA00029816399200001332
的左子树继续执行K-DTreeKnnQuery(·);
步骤8d)LSP和CSP执行密态数据欧氏距离计算协议,将
Figure BDA00029816399200001333
中的
Figure BDA00029816399200001334
Figure BDA00029816399200001335
中的
Figure BDA00029816399200001336
作为计算协议的输入值,得到
Figure BDA00029816399200001337
Figure BDA00029816399200001338
对应明文欧氏距离平方的密文
Figure BDA00029816399200001339
Figure BDA00029816399200001340
中的
Figure BDA00029816399200001341
Figure BDA00029816399200001342
中的
Figure BDA00029816399200001343
作为计算协议的输入值,得到
Figure BDA00029816399200001344
Figure BDA00029816399200001345
对应明文欧氏距离平方的密文EPK(0),然后计算
Figure BDA00029816399200001346
Figure BDA00029816399200001347
对应明文欧氏距离平方的密文
Figure BDA0002981639920000141
Figure BDA0002981639920000142
加入查询结果队列PQ,此时由于PQ中的元素个数大于k0,故将
Figure BDA0002981639920000143
从PQ 中删除,由于
Figure BDA0002981639920000144
已经是叶子节点,故搜索结束,将结果队列 PQ返回至查询中心;
步骤9)查询中心解密结果队列:
查询中心采用DT-PKC的解密算法MDec(),通过主私钥mk对结果队列PQ 进行解密,得到用户地理位置p0的近邻点位置信息集 P”={pj={xj,yj,uj}|1≤j≤2},其中pj表示p0的第j个近邻点的位置信息,在实施例中P”={(2,2),(3,1)}。

Claims (2)

1.一种基于双云安全计算协议的用户地理位置近邻查询方法,其特征在于,包括如下步骤:
(1)构建用户地理位置近邻查询模型:
构建包括查询中心和用户集合D={di|1≤i≤I,I≥2},以及由位置服务提供商LSP和计算服务提供商CSP组成的云服务器的用户地理位置近邻查询模型,其中用户集合D对应的位置信息集为P={pi=(xi,yi,ui)|1≤i≤I,I≥2},di表示位置信息为pi=(xi,yi,ui)的第i个用户,xi和yi表示di所在位置的横坐标和纵坐标,ui表示di的包含身份标识和健康状况的标识信息,I表示用户的总个数;
(2)制定双云安全计算协议:
制定包括密态数据比较协议和密态数据欧氏距离计算协议的双云安全计算协议,实现步骤为:
(2a)制定包括密态数据比较协议:
(2a1)LSP通过正整数r,计算输入给LSP的密文
Figure FDA0002981639910000011
的一级中间常量
Figure FDA0002981639910000012
以及输入给LSP的密文
Figure FDA0002981639910000013
的一级中间常量
Figure FDA0002981639910000014
再采用DT-PKC的部分解密算法PMDes1(·),通过部分私钥mk1对一级中间常量A1和B1分别进行部分解密,得到部分明文A1'和B1':
A1'=PMDes1(A)
B1'=PMDes1(B)
其中(·)r表示求r次幂操作;
(2a2)LSP随机均匀地选取整数μ∈{0,1},当μ=1时,将{A1,A1',B1,B1'}上传至CSP,当μ=0时,将{B1,B1',A1,A1'}上传至CSP;
(2a3)CSP采用部分解密算法PMDes2(),通过部分私钥mk2对{A1,A1',B1,B1'}或{B1,B1',A1,A1'}进行解密,得到明文{ar,br}或者{br,ar},并通过{ar,br}计算判断常量d=a/b,或通过{br,ar}计算判断常量d=b/a;
(2a4)当d>0时,CSP将返回值ω=1返回至LSP,当d<0时,CSP将返回值ω=-1返回至LSP,当d=0时,CSP将返回值ω=0返回至LSP;
(2a5)LSP根据μ和ω的值,确定a和b的大小关系:
Figure FDA0002981639910000021
(2b)制定密态数据欧氏距离计算协议:
(2b1)LSP通过随机选取的两个非负整数rα和rβ计算中间常量R=rα-rβ,并采用DT-PKC的加密算法Enc(·),通过公钥PK对R和R2分别进行加密,得到密文EPK(R)和EPK(R2),其中R2为R的平方;
(2b2)LSP采用DT-PKC的加密算法Enc(·),通过公钥pk1对rα进行加密,得到rα的中间常量
Figure FDA0002981639910000022
并通过公钥pk2对rβ分别进行加密,得到rβ的中间常量
Figure FDA0002981639910000023
(2b3)LSP计算输入给LSP的密文
Figure FDA0002981639910000024
的一级中间常量
Figure FDA0002981639910000025
和输入给LSP的密文
Figure FDA0002981639910000026
的一级中间常量
Figure FDA0002981639910000027
并采用DT-PKC的部分解密算法PMDes1(·),通过部分私钥mk1对一级中间常量A2和B2分别进行部分解密,得到部分明文A2'和B2',然后将{A2,A2',B2,B2'}上传至CSP,其中:
Figure FDA0002981639910000028
Figure FDA0002981639910000029
其中,
Figure FDA00029816399100000210
表示密文域乘法;
(2b4)CSP采用DT-PKC的部分解密算法PMDes2(·),通过部分私钥mk2对{A2,A2',B2,B2'}进行解密,得到明文{a+rα,b+rβ},并计算{a+rα,b+rβ}的二级中间常量A2”=(a+rα)-(b+rβ)和B2”=((a+rα)-(b+rβ))2
(2b5)CSP采用DT-PKC的加密算法Enc(·),通过公钥PK将A2”和B2”加密,得到密文中间常量S1=EPK(A2”)和S2=EPK(B2”),并将{S1,S2}返回至LSP;
(2b6)LSP根据{S1,S2}计算密文中间常量
Figure FDA0002981639910000031
并计算得到明文a和b的欧氏距离的平方的密文
Figure FDA0002981639910000032
(3)查询中心生成密钥并分配:
(3a)查询中心采用DT-PKC的密钥生成算法KeyGen(·),计算查询中心的公钥PK0和主私钥mk、云服务器的公钥PK、以及每个用户di的公钥pki
(3b)查询中心采用DT-PKC的私钥分割算法MkeyS()将主私钥mk分割成部分私钥mk1和mk2,并通过密钥信道将公钥PK和部分私钥mk1分配给位置服务提供商LSP,将公钥PK和部分私钥mk2分配给计算服务提供商CSP,将公钥pki分配给对应的用户di
(4)查询中心初始化k维二叉树并上传:
(4a)查询中心从位置信息集P选取w个位置信息组成的位置信息子集P'={ps=(xs,ys,us)|1≤s≤w,w<I},并采用k维二叉树初始化算法K-DTreeInit(·),以xs和ys为分割维度对位置信息子集P'进行交替分割,得到k维二叉树T={ts:<ts.data=ps,ts.right,ts.left>|1≤s≤w},其中ts表示T中的节点,ts.data表示存储在节点ts的数据,ts.right和ts.left分别表示ts的右孩子和左孩子;
(4b)查询中心采用DT-PKC的加密算法Enc(),并通过公钥PK0对k维二叉树T的每个节点ts的节点数据ts.data进行加密并和公钥PK0组合,得到位置信息向量为ps'的加密后的k维二叉树T',然后将T'上传至LSP,其中:
Figure FDA0002981639910000033
(5)用户di对其位置信息pi进行加密并上传:
用户di采用DT-PKC的加密算法Enc(),并通过自己的公钥pki对用户位置信息pi=(xi,yi,ui)进行加密,得到用户位置信息密文
Figure FDA0002981639910000041
然后将
Figure FDA0002981639910000042
和公钥pki组合成用户位置信息向量pi'上传至LSP,其中:
Figure FDA0002981639910000043
(6)LSP和CSP基于密态数据比较协议对加密后的k维二叉树T'更新:
LSP和CSP采用k维二叉树的节点***算法K-DTreeInsert(·),并基于密态数据比较协议,将用户di上传的用户位置信息向量pi'***到k维二叉树T'中,得到更新后的k维二叉树T”;
(7)查询中心请求获取用户地理位置的k近邻查询结果:
查询中心采用DT-PKC的加密算法Enc(),通过公钥PK0对用户地理位置p0=(x0,y0,u0)进行加密,得到用户地理位置密文
Figure FDA0002981639910000044
并将由
Figure FDA0002981639910000045
和公钥PK0组合成的用户地理位置信息向量p0',以及p0的近邻点个数的查询参数k0组成近邻查询请求{p0',k0}上传至LSP,其中:
Figure FDA0002981639910000046
(8)LSP和CSP基于双云安全计算协议进行k近邻查询:
LSP和CSP采用k维二叉树的k近邻查询算法K-DTreeKnnQuery(·),并基于双云安全计算协议,在k维二叉树T”中使用p0'查询用户地理位置p0的k0个近邻点,得到的查询结果队列
Figure FDA0002981639910000047
返回至查询中心,其中PQ中的元素pj'为待查询位置点p0在k维二叉树中的k0个近邻点的位置信息向量;
(9)查询中心解密结果队列:
查询中心采用DT-PKC的解密算法MDec(),通过主私钥mk对结果队列PQ进行解密,得到用户地理位置p0的近邻点位置信息集P”={pj={xj,yj,uj}|1≤j≤k0},其中pj表示p0的第j个近邻点的位置信息。
2.根据权利要求1所述的基于双云安全计算协议的用户地理位置近邻查询方法,其特征在于,步骤(3a)中所述的计算查询中心的公钥PK0和主私钥mk、云服务器的公钥PK、以及每个用户di的公钥pki,实现步骤为:
(3a1)查询中心根据所需要的安全等级生成安全参数κ,并通过两个比特长度等于κ的大素数p和q计算公共模数N=pq;
(3a2)查询中心从小于N2且与N2互素的正整数集合
Figure FDA0002981639910000051
均匀且随机地选取整数α,并通过α计算公钥参数g=α2Nmod N2,其中mod表示取模操作;
(3a3)查询中心通过整数θ0∈[1,N/4]计算自己的公钥参数
Figure FDA0002981639910000052
并将N、g和h0作为自己的公钥PK0={N,g,h0},同时计算公共模数N的卡米歇尔值λ=lcm(p-1,q-1),并将λ作为自己的主私钥mk=λ,其中lcm(·)表示求最小公倍数操作;
(3a4)查询中心通过整数θ∈[1,N/4]计算云服务器的公钥参数h=gθmod N2,并将N、g和h作为云服务器的公钥PK={N,g,h};
(3a5)查询中心通过整数θi∈[1,N/4]计算每个用户di 的公钥参数
Figure FDA0002981639910000053
并将N、g和hi作为用户di 的公钥pki={N,g,hi}。
CN202110288951.3A 2021-03-18 2021-03-18 基于双云安全计算协议的用户地理位置近邻查询方法 Active CN113068128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110288951.3A CN113068128B (zh) 2021-03-18 2021-03-18 基于双云安全计算协议的用户地理位置近邻查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110288951.3A CN113068128B (zh) 2021-03-18 2021-03-18 基于双云安全计算协议的用户地理位置近邻查询方法

Publications (2)

Publication Number Publication Date
CN113068128A CN113068128A (zh) 2021-07-02
CN113068128B true CN113068128B (zh) 2021-11-23

Family

ID=76561184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110288951.3A Active CN113068128B (zh) 2021-03-18 2021-03-18 基于双云安全计算协议的用户地理位置近邻查询方法

Country Status (1)

Country Link
CN (1) CN113068128B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222302A (zh) * 2017-07-03 2017-09-29 深圳大学 用部分同态加密方案构建的空间众包任务分配***及方法
CN108683729A (zh) * 2018-05-14 2018-10-19 重庆第二师范学院 一种面向可信云的环境监测数据安全存储***及方法
CN109992995A (zh) * 2019-03-05 2019-07-09 华南理工大学 一种支持位置保护和查询隐私的可搜索加密方法
CN110248315A (zh) * 2019-04-24 2019-09-17 广东工业大学 一种基于双锚点的位置隐私保护方法
CN112052466A (zh) * 2020-08-28 2020-12-08 西安电子科技大学 基于多方安全计算协议的支持向量机用户数据预测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043927B2 (en) * 2012-09-27 2015-05-26 Neo Mechanic Limited Method and apparatus for authenticating location-based services without compromising location privacy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222302A (zh) * 2017-07-03 2017-09-29 深圳大学 用部分同态加密方案构建的空间众包任务分配***及方法
CN108683729A (zh) * 2018-05-14 2018-10-19 重庆第二师范学院 一种面向可信云的环境监测数据安全存储***及方法
CN109992995A (zh) * 2019-03-05 2019-07-09 华南理工大学 一种支持位置保护和查询隐私的可搜索加密方法
CN110248315A (zh) * 2019-04-24 2019-09-17 广东工业大学 一种基于双锚点的位置隐私保护方法
CN112052466A (zh) * 2020-08-28 2020-12-08 西安电子科技大学 基于多方安全计算协议的支持向量机用户数据预测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ANN Feature Scaling based K-Nearest Neighbor Algorithm for Indoor Localization;Rong Rong,Yuli Fu,Xin Zhang;《2021 13th International Conference on Measuring Technology and Mechatronics Automation (ICMTMA)》;20210116 *
Privacy-Preserving Multi-Authority Attribute-Based Data Sharing Framework for Smart Grid;Leyou Zhang;Juan Ren;Yi Mu;Baocang Wang;《IEEE Access》;20190506 *
位置大数据中一种基于Bloom Filter的匿名保护方法;刘彦,张琳;《计算机科学》;20170615 *
面向云数据共享的量子安全的无证书双向代理重加密;江明明; 赵利军; 王艳; 王保仓;《信息网络安全》;20180810 *

Also Published As

Publication number Publication date
CN113068128A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
Xiong et al. Partially policy-hidden attribute-based broadcast encryption with secure delegation in edge computing
Sandor et al. Efficient decentralized multi-authority attribute based encryption for mobile cloud data storage
Liang et al. Searchable attribute-based mechanism with efficient data sharing for secure cloud storage
Shao et al. FINE: A fine-grained privacy-preserving location-based service framework for mobile devices
Wang et al. Efficiently revocable and searchable attribute-based encryption scheme for mobile cloud storage
EP2228942B1 (en) Securing communications sent by a first user to a second user
Bao et al. Secure and lightweight fine-grained searchable data sharing for IoT-oriented and cloud-assisted smart healthcare system
Boufounos et al. Secure binary embeddings for privacy preserving nearest neighbors
Gupta et al. [Retracted] An Improved Secure Key Generation Using Enhanced Identity‐Based Encryption for Cloud Computing in Large‐Scale 5G
CN106656997B (zh) 一种基于移动社交网络代理重加密跨域交友隐私保护方法
CN109981265B (zh) 一种基于身份的不使用双线性对的密文等值判定方法
CN110730064B (zh) 一种群智感知网络中基于隐私保护的数据融合方法
CN110035067B (zh) 云存储中支持高效数据去重和属性撤销的属性加密方法
CN113162751B (zh) 具备加同态性的加密方法、***及可读存储介质
Li et al. Efficient privacy-preserving access control of mobile multimedia data in cloud computing
Deng et al. Policy-based broadcast access authorization for flexible data sharing in clouds
CN111581648B (zh) 在不规则用户中保留隐私的联邦学习的方法
CN114697042A (zh) 一种基于区块链的物联网安全数据共享代理重加密方法
Yin et al. A Novel Proxy Re-encryption Scheme Based on Identity Property and Stateless Broadcast Encryption Under Cloud Environment.
Zhang et al. Fully Constant‐Size CP‐ABE with Privacy‐Preserving Outsourced Decryption for Lightweight Devices in Cloud‐Assisted IoT
Li et al. A lightweight and verifiable access control scheme with constant size ciphertext in edge-computing-assisted IoT
CN113204788B (zh) 一种细粒度属性匹配隐私保护方法
Qin et al. Flexible and lightweight access control for online healthcare social networks in the context of the internet of things
Wang One-round secure fair meeting location determination based on homomorphic encryption
Hong et al. A key-insulated CP-ABE with key exposure accountability for secure data sharing in the cloud

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant