支持k个无序节点的图加密最短路径查询方法与系统技术方案

技术编号:34044125 阅读:20 留言:0更新日期:2022-07-06 14:11
本发明专利技术公开了一种支持k个无序节点的图加密最短路径查询方法与系统,应用于由一个用户模块与一个云服务模块构成的环境;用户模块处理原始图数据计算图加密的安全索引,并根据查询的k个无序节点生成查询令牌,将安全索引同查询令牌上传到云服务模块,等待查询结果发回后解密获得最短路径,否则一直等待查询结果;云服务模块从用户模块接收安全索引和查询令牌,使用查询令牌搜索安全索引并返回经过k个无序节点的最短路径。本发明专利技术能够保护用户的路径查询隐私不受不可信云服务的侵害。径查询隐私不受不可信云服务的侵害。径查询隐私不受不可信云服务的侵害。

Graph encryption shortest path query method and system supporting K unordered nodes

【技术实现步骤摘要】
支持k个无序节点的图加密最短路径查询方法与系统


[0001]本专利技术涉及一种支持k个无序节点的图加密最短路径查询方法与系统,属于隐私保护、云服务以及加密图数据导航


技术介绍

[0002]图形数据库用于各种应用,包括万维网、在线社交网络和通信网络。例如,LinkedIn有一个由810多万用户组成的社交网络图。这些应用程序有助于高效地查询和分析大规模图形。
[0003]随着云计算的普及,越来越鼓励用户,包括公司和个人,将其图形数据库外包给远程云服务器来降低本地管理成本。然而,将包含敏感信息的图形数据库外包给不受信任的云服务器不仅会导致用户失去数据控制,还会引发他们的安全担忧。这些担忧促进了安全保障的新发展,其中数据加密是一种简单的方法,但会使数据分析变得复杂。
[0004]此外,现有的使用数据加密的方案,只支持密态下起点终点最短路径查询,只返回起点终点最短路径上的节点,不支持一个重要的图形操作:寻找在途径k无序节点时起点和终点之间的最短路径。这种操作与现实应用中的一个常见用户需求相呼应。例如,用户在智能手机上打开地图应用程序,(1)找到从起点到目的地的最短路径,(2)该路径必须经过其他三个位置节点,即她的工作场所、特定健身房和特定比萨店。同时,用户对访问这三个地点的顺序没有要求,称之为无序节点。这也带来了新的需求,即支持k个无序节点的最短路径查询:云服务器在不知道用户提供的节点下,返回从起点出发途径k个无序节点到达终点的最短路径。
[0005]现有技术仅通过图加密的方式支持从起点出发到达终点的单一目标最短路径查询,无法完成在用户指定途径k个无序节点情况下的图加密最短路径查询。

技术实现思路

[0006]本专利技术是为了解决上述现有技术存在的不足之处,提出一种支持k个无序节点的图加密最短路径查询方法与系统,以期能在云上密态图数据查询过程中抵抗不可信数据云存储方的安全威胁,并解决k个无序节点的最短路径查询需求问题,从而保护用户的隐私问题,保证用户的出行路线和需求不被不可信数据云存储方知晓。
[0007]本专利技术为达到上述专利技术目的采用如下技术方案:
[0008]本专利技术一种支持k个无序节点的图加密最短路径查询系统的特点包括:用户模块与云服务模块;
[0009]所述用户模块包括:系统初始化单元、用户设置模块、索引生成单元、令牌生成单元、结果解密单元;
[0010]所述云服务模块包括:索引接收单元、令牌接收单元、路径搜索单元;
[0011]所述用户模块的系统初始化单元产生伪随机排列函数、伪随机函数、随机预言机函数、抗碰撞的哈希函数并向系统内所有单元公开;
[0012]所述用户模块的用户设置模块获取用户输入的起点、终点和k个无序节点并发送给所述用户模块的令牌生成单元;
[0013]所述用户模块的索引生成单元处理自身存储的原始图数据,并产生密钥、公钥和私钥,并使用所述公钥、所述伪随机排列函数、所述伪随机函数、所述随机预言机函数和所述抗碰撞的哈希函数加密处理后的图数据,再由加密后的图数据生成安全索引并发送到云服务模块的索引接收单元,再将所述密钥分别发送到用户模块的令牌生成单元和结果解密单元,再将所述私钥发送到用户模块的结果解密单元;
[0014]所述云服务模块的索引接收单元接收所述安全索引后,转发至自身的路径搜索单元;
[0015]所述用户模块的令牌生成单元接收所述密钥,并根据用户选择的起点、终点、k个无序节点以及所述伪随机排列函数、所述伪随机函数、所述抗碰撞的哈希函数产生查询令牌后,转发至云服务模块的令牌接收单元;
[0016]所述云服务模块的令牌接收单元接收所述查询令牌后,转发至自身的路径搜索单元;
[0017]所述云服务模块的路径搜索单元使用所述查询令牌搜索所述安全索引,若搜索成功,则向所述用户模块的结果解密单元发送对应的结果数据,若搜索失败,则向所述用户模块的结果解密单元的结果解密单元发送空字符串;
[0018]所述用户模块的结果解密单元若接收所述结果数据,则使用所述私钥对所述结果数据进行解密获得最短距离,再使用所述伪随机排列函数和所述密钥恢复出从起点出发并经过k个无序节点后到达终点的最短路径。
[0019]本专利技术一种支持k个无序节点的图加密最短路径查询方法的特点是应用于由一个用户端与一个云服务方所构成的网络环境中,所述图加密最短路径查询方法是按如下步骤进行:
[0020]步骤一、构建索引:
[0021]步骤1.1所述用户端采用基于Paillier的密码学方法构建公钥同态加密体系Ω,并生成密钥产生函数Gen、同态加密函数Enc、同态解密函数Dec,再使用所述密钥产生函数Gen生成私钥sk,公钥pk;
[0022]所述用户端生成一个伪随机排列函数PRP、一个伪随机函数PRF、一个随机预言机函数H、一个抗碰撞的哈希函数h以及两个密钥K1,K2;
[0023]步骤1.2所述用户端使用Floyd

Warshall算法对由节点集合V和边集合ε的原始图数据G={V,ε}进行计算后获得路径距离集合PD,再对所述路径距离集合PD进行随机排列,并初始化一个数组Arr;
[0024]步骤1.3所述用户端对节点集合V中的第i个节点v
i
随机产生一个密钥一个密钥和一个随机数r
i

[0025]以所述第i个节点v
i
为起点,对于所述路径距离集合PD中从起点v
i
出发到终点v
j
的第num
i
条最短路径,所述用户端使用抗碰撞的哈希函数h对终点v
j
进行处理,产生哈希结果h(v
j
),使用公钥pk和同态加密函数Enc对起点v
i
出发到终点v
j
的最短距离进行处理,获得加密结果使用密钥和伪随机排列函数PRP对起点v
i
出发到终点v
j
的最短
路径上的途径点v
ij
进行处理,获得路径伪随机排列结果对路径距离集合PD中第num
i+1
条最短路径做随机排列,获得随机排列结果π(num
i+1
);
[0026]链接所述哈希结果h(v
j
)、加密结果路径伪随机排列结果和随机排列结果π(num
i+1
)后产生一个链表结点N
o

[0027]使用随机预言机函数H对所述密钥和随机数r
j
进行处理,获得随机预言机结果将所述链表结点N
o
和随机预言机结果进行异或运算并产生数组异或结果Arr
ij

[0028]最后将数组异或结果Arr
ij
和随机数r
j
存放在数组Arr的第num
i
个位置上;
[0029]步骤1.4用户端使用伪随机排列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持k个无序节点的图加密最短路径查询系统,其特征包括:用户模块与云服务模块;所述用户模块包括:系统初始化单元、用户设置模块、索引生成单元、令牌生成单元、结果解密单元;所述云服务模块包括:索引接收单元、令牌接收单元、路径搜索单元;所述用户模块的系统初始化单元产生伪随机排列函数、伪随机函数、随机预言机函数、抗碰撞的哈希函数并向系统内所有单元公开;所述用户模块的用户设置模块获取用户输入的起点、终点和k个无序节点并发送给所述用户模块的令牌生成单元;所述用户模块的索引生成单元处理自身存储的原始图数据,并产生密钥、公钥和私钥,并使用所述公钥、所述伪随机排列函数、所述伪随机函数、所述随机预言机函数和所述抗碰撞的哈希函数加密处理后的图数据,再由加密后的图数据生成安全索引并发送到云服务模块的索引接收单元,再将所述密钥分别发送到用户模块的令牌生成单元和结果解密单元,再将所述私钥发送到用户模块的结果解密单元;所述云服务模块的索引接收单元接收所述安全索引后,转发至自身的路径搜索单元;所述用户模块的令牌生成单元接收所述密钥,并根据用户选择的起点、终点、k个无序节点以及所述伪随机排列函数、所述伪随机函数、所述抗碰撞的哈希函数产生查询令牌后,转发至云服务模块的令牌接收单元;所述云服务模块的令牌接收单元接收所述查询令牌后,转发至自身的路径搜索单元;所述云服务模块的路径搜索单元使用所述查询令牌搜索所述安全索引,若搜索成功,则向所述用户模块的结果解密单元发送对应的结果数据,若搜索失败,则向所述用户模块的结果解密单元的结果解密单元发送空字符串;所述用户模块的结果解密单元若接收所述结果数据,则使用所述私钥对所述结果数据进行解密获得最短距离,再使用所述伪随机排列函数和所述密钥恢复出从起点出发并经过k个无序节点后到达终点的最短路径。2.一种支持k个无序节点的图加密最短路径查询方法,其特征是应用于由一个用户端与一个云服务方所构成的网络环境中,所述图加密最短路径查询方法是按如下步骤进行:步骤一、构建索引:步骤1.1所述用户端采用基于Paillier的密码学方法构建公钥同态加密体系Ω,并生成密钥产生函数Gen、同态加密函数Enc、同态解密函数Dec,再使用所述密钥产生函数Gen生成私钥sk,公钥pk;所述用户端生成一个伪随机排列函数PRP、一个伪随机函数PRF、一个随机预言机函数H、一个抗碰撞的哈希函数h以及两个密钥K1,K2;步骤1.2所述用户端使用Floyd

Warshall算法对由节点集合V和边集合ε的原始图数据G={V,ε}进行计算后获得路径距离集合PD,再对所述路径距离集合PD进行随机排列,并初始化一个数组Arr;步骤1.3所述用户端对节点集合V中的第i个节点v
i
随机产生一个密钥一个密钥和一个随机数r
i

以所述第i个节点v
i
为起点,对于所述路径距离集合PD中从起点v
i
出发到终点v
j
的第num
i
条最短路径,所述用户端使用抗碰撞的哈希函数h对终点v
j
进行处理,产生哈希结果h(v
j
),使用公钥pk和同态加密函数Enc对起点v
i
出发到终点v
j
的最短距离进行处理,获得加密结果使用密钥和伪随机排列函数PRP对起点v
i
出发到终点v
j
的最短路径上的途径点v
ij
进行处理,获得路径伪随机排列结果对路径距离集合PD中第num
i+1
条最短路径做随机排列,获得随机排列结果π(num
i+1
);链接所述哈希结果h(v
j
)、加密结果路径伪随机排列结果和随机排列结果π(num
i+1
)后产生一个链表结点N
o
;使用随机预言机函数H对所述密钥和随机数r
j
进行处理,获得随机预言机结果将所述链表结点N
o
和随机预言机结果进行异或运算并产生数组异或结果Arr
ij
;最后将数组异或结果Arr
ij
和随机数r
j
存放在数组Arr的第num
i
个位置上;步骤1.4用户端使用伪随机排列函数PRP和密钥K2对第i个节点v
i
进行处理,获得节点伪随机排列结果再使用伪随机函数PRF和密钥K1对第i个节点v
i
进行处理,获得伪随机结果对路径序号num
i
及其相应起点的密钥与伪随机结果做异或运算获得字典异或结果DX
i
,其中,||是字符串连接运算;创建一个字典DX用于存储伪随机排列结果和字典异或结果DX
i
;步骤1.5用户端将数组Arr和字典DX组成安全索引index并发送给云服务方;步骤二、标准令牌生成:步骤2.1用户端选取将要查询的起点s、终点d;并使用伪随机排列函数PRP和密钥K2对起点s进行处理,获得起点伪随机排列结果并创建一个集合q1用于存放起点伪随机排列结果步骤2.2用户端使用伪随机函数PRF和密钥K1对起点s进行处理,获得起点伪随机结果并创建一个集合q2用于存放起点伪随机结果步骤2.3用户端使用抗碰撞的哈希函数h对终点d进行处理,获得终点哈希结果h(d),并创建一个集合q3用于存放终点哈希结果h(d);步骤2.4用户端将集合q1、集合q2和集合q3组成标准查询令牌q,并将标准查询令牌q发送给云服务方;步骤三、k个无序节点的令牌生成:步骤3.1用户端选取将要查询的起点s、终点d,并从节点集合V中选取k个无序节点{V1,V2,

,V
k
};其中,V
k
表示第k个无序节点;使用伪随机排列函数PRP和密钥K2对起点s进行处理,获得起点伪随机排列结果再使用伪随机排列函数PRP和密钥K2对k个无序节点进行处理,获得k个无序节点的伪随机排列结果其中,表示第k个无序节点V
k
的伪随机排列结果,
创建一个集合q
*1
用于存放起点伪随机排列结果和k个无序节点伪随机排列结果步骤3.2用户端使用伪随机函数PRF和密钥K1对起点s进行处理,获得起点伪随机结果再使用伪随机函数PR...

【专利技术属性】
技术研发人员:李萌高剑博祝烈煌
申请(专利权)人:合肥工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1