CN114417073B - 一种加密图的邻居节点查询方法及装置、电子设备 - Google Patents

一种加密图的邻居节点查询方法及装置、电子设备 Download PDF

Info

Publication number
CN114417073B
CN114417073B CN202210309856.1A CN202210309856A CN114417073B CN 114417073 B CN114417073 B CN 114417073B CN 202210309856 A CN202210309856 A CN 202210309856A CN 114417073 B CN114417073 B CN 114417073B
Authority
CN
China
Prior art keywords
node
query
token
neighbor
key group
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
CN202210309856.1A
Other languages
English (en)
Other versions
CN114417073A (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202210309856.1A priority Critical patent/CN114417073B/zh
Publication of CN114417073A publication Critical patent/CN114417073A/zh
Application granted granted Critical
Publication of CN114417073B publication Critical patent/CN114417073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/901Indexing; Data structures therefor; Storage structures
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/903Querying
    • G06F16/90335Query processing
    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种加密图的邻居节点查询方法及装置、电子设备,该方法包括:提取每个节点的邻居节点,生成邻居节点表;根据邻居节点表和生成的密钥组,生成加密索引字典;对加密索引字典进行扩充,将扩充索引字典发送至云服务器以使得云服务器对扩充索引字典进行存储;接收用户端的关于目标节点的查询请求;根据查询请求和密钥组,生成目标节点的查询令牌;向用户端发送查询令牌和密钥组,以使得用户端向云服务器发送查询令牌,云服务器根据查询令牌和扩充索引字典,对目标节点的邻居节点进行查询,将查询结果发送至用户端,用户端根据密钥组对查询结果进行解密,从而得到目标节点的明文查询结果。该方法可实现top‑H跳邻居节点和top‑k邻居节点的查询。

Description

一种加密图的邻居节点查询方法及装置、电子设备
技术领域
本申请涉及加密图的查询领域,尤其涉及一种加密图的邻居节点查询方法及装置、电子设备。
背景技术
无论是通信网络还是社交网络,在理论上都是通过图这类数据结构来呈现,为了保护这类图数据的安全与隐私,在一些应用场景中,需要对图数据进行加密,然后存储到云服务器。同时,借助云服务器强大的计算能力,实现加密图上的查询功能。但是图数据加密后,对图中节点的查询变得困难。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
目前已有一些研究工作实现了加密图上的top-k邻居节点查询方法,但还没有关于top-H跳邻居节点查询的方法。
发明内容
本申请实施例的目的是提供一种加密图的邻居节点查询方法及装置、电子设备,以解决相关技术中存在的无法实现top-H跳邻居节点查询的技术问题。
根据本申请实施例的第一方面,提供一种加密图的邻居节点查询方法,包括:
提取每个节点的邻居节点,生成邻居节点表;
利用密钥生成算法,生成密钥组;
根据所述邻居节点表和密钥组,生成加密索引字典;
对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
接收用户端的关于目标节点的查询请求;
根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
进一步地,根据所述邻居节点表和密钥组,生成加密索引字典,包括:
步骤S21:根据所述密钥组中的第一密钥对节点进行加密,得到所述节点的加密索引入口;
步骤S22:根据所述密钥组中的第二密钥对所述节点进行加密,得到第一加密节点信息;
步骤S23:生成第一随机串和第二随机串;
步骤S24:将所述第一加密节点信息、第一随机串和第二随机串设置为所述节点的第一元组;
步骤S25:根据所述密钥组中的第二密钥对所述节点的邻居节点进行加密,得到第二加密节点信息;
步骤S26:生成第一元素和第二元素,其中所述第一元素为对第三随机串和所述邻居节点的加密索引入口进行异或的结果,所述第二元素为对第四随机串和所述第三随机串进行异或的结果,所述第三随机串为根据所述密钥组中的第三密钥对所述节点进行加密得到,所述第四随机串为根据所述密钥组中的第三密钥对所述邻居节点进行加密得到;
步骤S27:将所述第二加密节点信息、第一元素和第二元素设置为所述节点的第二元组;
步骤S28:更换邻居节点,重复步骤S25-步骤S27的过程直至得到所述节点的第n元组,从而得到所述节点的所有邻居节点对应的元组,其中n为所述节点的邻居节点数量加1的值;
步骤S29:将所有节点的第一元组至第n元组设置为所述节点的加密索引,从而生成加密索引字典。
根据本申请实施例的第二方面,提供一种加密图的邻居节点查询装置,包括:
第一生成模块,用于提取每个节点的邻居节点,生成邻居节点表;
第二生成模块,用于利用密钥生成算法,生成密钥组;
第三生成模块,用于根据所述邻居节点表和密钥组,生成加密索引字典;
扩充模块,用于对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
第一发送模块,用于将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
第一接收模块,用于接收用户端的关于目标节点的查询请求;
第四生成模块,用于根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
第二发送模块,用于向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
根据本申请实施例的第三方面,提供一种加密图的邻居节点查询方法,包括:
接收拥有数据的终端发送的扩充索引字典并对所述扩充索引字典进行存储,其中所述扩充索引字典由拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充得到;
接收用户端发送的查询令牌,其中所述查询令牌由所述拥有数据的终端接收用户端的关于目标节点的查询请求,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌,向所述用户端发送所述查询令牌和所述密钥组,所述用户端向云服务器发送得到;
根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
将查询结果发送至所述用户端,以使得所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
进一步地,根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,包括:
根据所述查询令牌中的加密索引入口,依次读取所述扩充索引字典中所述目标节点的元组,将所述元组中所有的加密节点信息放入查询结果中;
将所述查询令牌中的第三随机串分别与所述目标节点的加密索引中的第一元素和第二元素进行异或,生成所述目标节点的下一跳邻居节点的查询令牌;
根据每个下一跳邻居节点的查询令牌,递归式地对所述目标节点的下一跳邻居节点进行查询,直至实际的查询跳数与所述查询令牌中的预定查询跳数相等。
根据本申请实施例的第四方面,提供一种加密图的邻居节点查询装置,包括:
第二接收模块,用于接收拥有数据的终端发送的扩充索引字典并对所述扩充索引字典进行存储,其中所述扩充索引字典由拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充得到;
第三接收模块,用于接收用户端发送的查询令牌,其中所述查询令牌由所述拥有数据的终端接收用户端的关于目标节点的查询请求,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌,向所述用户端发送所述查询令牌和所述密钥组,所述用户端向云服务器发送得到;
查询模块,用于根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
第三发送模块,用于将查询结果发送至所述用户端,以使得所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
根据本申请实施例的第五方面,提供一种加密图的邻居节点查询方法,其特征在于,包括:
拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同,将所述扩充索引字典发送至云服务器;
云服务器对所述扩充索引字典进行存储;
拥有数据的终端接收用户端的关于目标节点的查询请求;
拥有数据的终端根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
拥有数据的终端向所述用户端发送所述查询令牌和所述密钥组;
用户端向所述云服务器发送所述查询令牌;
云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
云服务器将查询结果发送至所述用户端;
所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
根据本申请实施例的第六方面,提供一种加密图的邻居节点查询装置,包括:
第四发送模块,用于数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同,将所述扩充索引字典发送至云服务器;
存储模块,用于云服务器对所述扩充索引字典进行存储;
第四接收模块,用于拥有数据的终端接收用户端的关于目标节点的查询请求;
第四生成模块,用于拥有数据的终端根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
第五发送模块,用于拥有数据的终端向所述用户端发送所述查询令牌和所述密钥组;
第六发送模块,用于用户端向所述云服务器发送所述查询令牌;
第五接收模块,用于云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
第七发送模块,用于云服务器将查询结果发送至所述用户端;
解密模块,用于所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
根据本申请实施例的第七方面,提供一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面、第三方面或第五方面中任一项所述的方法。
根据本申请实施例的第八方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面、第三方面或第五方面中任一项所述方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本申请接收用户端的关于目标节点的查询请求,根据查询请求和扩充索引字典,生成所述目标节点的查询令牌,用户端接收查询令牌并向云服务器发送查询令牌,从而使得云服务器进行查询,本申请不对云服务器进行top-H跳邻居节点查询或top-k邻居节点查询进行限制,只需用户端在查询请求中指出查询类型,云服务器即可实现该类型的查询。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种加密图的邻居节点查询方法(应用于拥有数据的终端)的流程图。
图2是根据一示例性实施例示出的一个加密图的示意图。
图3是根据一示例性实施例示出的步骤S13的流程图。
图4是根据一示例性实施例示出的云服务器根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询的过程的流程图。
图5是根据一示例性实施例示出的一种加密图的邻居节点查询装置(应用于拥有数据的终端)的框图。
图6是根据一示例性实施例示出的一种加密图的邻居节点查询方法(应用于云服务器)的流程图。
图7是根据一示例性实施例示出的一种加密图的邻居节点查询装置(应用于云服务器)的框图。
图8是根据一示例性实施例示出的一种加密图的邻居节点查询方法的交互图。
图9是根据一示例性实施例示出的一种加密图的邻居节点查询装置的框图。
图10是根据一示例性实施例示出的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
实施例1:
图1是根据一示例性实施例示出的一种加密图的邻居节点查询方法的流程图,如图1所示,该方法应用于拥有数据的终端中,可以包括以下步骤:
步骤S11:提取每个节点的邻居节点,生成邻居节点表;
步骤S12:利用密钥生成算法,生成密钥组;
步骤S13:根据所述邻居节点表和密钥组,生成加密索引字典;
步骤S14:对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
步骤S15:将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
步骤S16:接收用户端的关于目标节点的查询请求;
步骤S17:根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
步骤S18:向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
由上述实施例可知,本申请接收用户端的关于目标节点的查询请求,根据查询请求和密钥组,生成所述目标节点的查询令牌,用户端接收查询令牌并向云服务器发送查询令牌,从而使得云服务器进行查询,本申请不对云服务器进行top-H跳邻居节点查询或top-k邻居节点查询进行限制,只需用户端在查询请求中指出查询类型,云服务器即可实现该类型的查询。
在步骤S11的具体实施中,提取每个节点的邻居节点,生成邻居节点表;
具体地,对于如图2所示的图,图中共有7个节点(a, b, c, d, e, f, g),如表1所示,根据各个节点之间的连接关系可以生成节点的邻居节点表:
表1
Figure 762783DEST_PATH_IMAGE001
在步骤S12的具体实施中,利用密钥生成算法,生成密钥组;
具体地,在一实施例中利用伪随机函数生成三个伪随机数(k 1, k 2, k 3)作为密钥,其中伪随机函数是一种映射,将一个数据域的数映射到另一个数据域,不可逆,采用标准的Hash算法,比如SHA-1与SHA-256实现,也可以采用基于口令的密钥生成算法,任何安全的密钥生成算法均可以。
在步骤S13的具体实施中,根据所述邻居节点表和密钥组,生成加密索引字典;
具体地,如图3所示,此步骤可以包括以下子步骤:
步骤S21:根据所述密钥组中的第一密钥对节点进行加密,得到所述节点的加密索引入口;
具体地,对于图中的任意节点u,利用密钥组中的第一密钥k 1计算G k1(u)作为加密索引入口,其中G(•)可以采用标准的Hash算法,比如SHA-1与SHA-256实现。
步骤S22:根据所述密钥组中的第二密钥对所述节点进行加密,得到第一加密节点信息;
具体地,利用密钥组中的第二密钥k 2对节点u进行加密,得到E k2(u),将E k2(u)作为第一加密节点信息,其中E(•)可以采用AES算法实现,也可以采用3DES算法,任何安全的对称加密算法均可以。
步骤S23:生成第一随机串和第二随机串;
具体地,可以利用标准的Hash算法如SHA-1与SHA-256生成第一随机串r u1和第二随机串r u2,也可以利用任何安全的随机数生成算法。
步骤S24:将所述第一加密节点信息、第一随机串和第二随机串设置为所述节点的第一元组;
具体地,根据第一加密节点信息E k2(u)、第一随机串r u1和第二随机串r u2可得到第一元组<E k2(u) , r u1, r u2>。
在步骤S22-步骤S24的具体实施中,目的是生成所述节点自身对应的元组,将节点自身作为自己的邻居节点,这么设计是为了避免进入死循环。假设节点a的邻居节点是b,b的邻居节点是c,如果c又是a的邻居节点。那么继续往下找的时候,就进入死循环。把a从一开始就加入结果集,后面发现a在结果集,就不会继续往下找。
步骤S25:根据所述密钥组中的第二密钥对所述节点的邻居节点进行加密,得到第二加密节点信息;
具体地,利用密钥组中的k 2对节点u的邻居节点v进行加密,得到E k2(v),将E k2(v)作为第二加密节点信息。
步骤S26:生成第一元素和第二元素,其中所述第一元素为对第三随机串和所述邻居节点的加密索引入口进行异或的结果,所述第二元素为对第四随机串和所述第三随机串进行异或的结果,所述第三随机串为根据所述密钥组中的第三密钥对所述节点进行加密得到,所述第四随机串为根据所述密钥组中的第三密钥对所述邻居节点进行加密得到;
具体地,计算第一元素
Figure 883186DEST_PATH_IMAGE002
= G k1(v)⊕f k3(u)和第二元素
Figure 636159DEST_PATH_IMAGE003
= f k3(v)⊕f k3(u),其 中,G k1(v)为邻居节点v的加密索引入口,f k3(u)为第三随机串,f k3(v)为第四随机串,f(•)可 以采用标准的Hash算法,比如SHA-1与SHA-256实现,也可以采用任何安全的Hash算法,如 SM3。利用第三随机串和第四随机串进行异或是为了保护该消息,相当于对消息加密,不能 让人识别出来。
步骤S27:将所述第二加密节点信息、第一元素和第二元素设置为所述节点的第二元组;
具体地,将所述第二加密节点信息E k2(v)、第一元素
Figure 500210DEST_PATH_IMAGE002
和第二元素
Figure 580162DEST_PATH_IMAGE003
设置为所 述节点的第二元组< E k2(v),
Figure 74728DEST_PATH_IMAGE002
,
Figure 607340DEST_PATH_IMAGE003
>。
在步骤S25-步骤S27的具体实施中,每个邻居节点对应的元组中,为每个邻居节点附加的两项实际上就是查询该邻居节点的邻居节点的令牌,这么设计为了进一步查找下一跳邻居节点。
步骤S28:更换邻居节点,重复步骤S25-步骤S27的过程直至得到所述节点的第n元组,从而得到所述节点的所有邻居节点对应的元组,其中n为所述节点的邻居节点数量加1的值;
具体地,对所述节点的所有邻居节点采用步骤S25-步骤S27,从而生成所述节点的第三元组至第n元组,其中每个元组与所述节点的一个邻居节点相对应。
步骤S29:将所有节点的第一元组至第n元组设置为所述节点的加密索引,从而生成加密索引字典;
具体地,将每个节点的第一元组至第n元组作为该节点的加密索引,则该加密图中所有节点的加密索引就可以组成该加密图的加密索引字典,在本实施例中,生成的加密索引字典如下表2所示:
表2
Figure 275082DEST_PATH_IMAGE004
在步骤S14的具体实施中,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
在本实施例中,对于图2中7个节点(a, b, c, d, e, f, g),填充后的加密索引字典如表3所示,其中填充的都是随机串。填充的作用包括: 可以***露每个索引项中条目的个数;在进行查询时,检索结果中会有一些无用的数据,可以***露查询结果集中节点个数。
表3
Figure 412802DEST_PATH_IMAGE006
在步骤S15的具体实施中,将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
具体地,云服务器对所述扩充索引字典进行存储,当用户端进行查询时,即在云服务器的扩充索引字典中进行。
在步骤S16的具体实施中,接收用户端的关于目标节点的查询请求;
具体地,查询请求中包括用户端想要查询的目标节点、查询的类型以及查询的跳数或待查询的邻居节点的个数,即查询请求的形式为(目标节点,查询类型,top-H或top-k)这里的“top-H或top-k”是一个数字。
在步骤S17的具体实施中,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
具体地,拥有数据的终端根据其安全策略决定是否向用户发送查询令牌Token=(G k1(u), f k3(u), H)或Token=(G k1(u), f k3(u), k),比如拥有数据的终端可能制定基于角色的安全策略,拥有数据的终端只对某种角色的用户端颁发查询令牌。拥有数据的终端也可能利用自身的ACL(访问控制列表)来进行授权,进而对授权的用户发送查询令牌。在一实施例中,查询节点a的top-3跳邻居节点,则生成Token=(G k1(a), f k3(a), 3);在另一实施例中,查询节点a的top-5个最近的邻居节点,则生成Token=(G k1(a), f k3(a), 5)。
在步骤S18的具体实施中,向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
具体地,拥有数据的终端使用通用的安全传输机制将查询令牌Token和密钥组(k 1, k 2, k 3)发送给用户端,用户端也必须使用通用的安全传输机制将查询令牌Token发送给云服务器,云服务器根据查询令牌Token对目标节点的邻居节点进行查询,得到查询结果并发送至用户端,由于查询结果为加密的扩充索引字典中的索引,因此用户端需要利用密钥组中密钥k 2对查询结果进行解密,从而得到目标节点的明文查询结果,在具体实施中,可以使用任何安全传输机制,如可以使用SSL/TLS协议,这个协议会让通信双方协商一个密钥,后期使用这个安全密钥加密所有通信消息。
具体地,如图4所示,云服务器根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询的过程可以包括以下步骤:
步骤S31:根据所述查询令牌中的加密索引入口,依次读取所述扩充索引字典中的元组,将所述元组中所有的加密节点信息放入查询结果中;
具体地,云服务器从查询令牌中首先读取加密索引入口G k1(u),从而找到索引入口,依次取出加密索引中所有的加密节点信息,放入查询结果集合R中,假设为{ E k2(v 1),E k2(v 2), …, E k2(v t )}。
在一实施例中,用户节点对图2所示的加密图中的节点a的top-3跳邻居节点进行查询,云服务器接收查询令牌Token a =(G k1(a), f k3(a), 3),并从中读取加密索引入口G k1(a),找到索引入口,依次取出节点a的邻居节点密文,放入结果集合R中,即R 1={E k2(a), E k2(b), E k2(c), E k2(d), pad1 a1, pad2 a2}。
步骤S32:将所述查询令牌中的第三随机串分别与所述目标节点的加密索引中的第一元素和第二元素进行异或,生成所述目标节点的下一跳邻居节点的查询令牌;
具体地,对于目标节点u的每个邻居节点v i ,利用Token中的f k3(u),计算G k1(v i )=
Figure 609429DEST_PATH_IMAGE007
f k3(u)和f k3(v i ) =
Figure 832599DEST_PATH_IMAGE008
f k3(u),从而得到节点v i Token=( G k1(v i ), f k3(v i ), H- 1)。
在本实施例中,对于邻居节点a,即节点自身,因为其条目中后两项为随机串,不能 得到有效的索引入口。对于邻居节点b,利用Token a 中的f k3(a),计算G k1(b)=
Figure 536988DEST_PATH_IMAGE009
f k3(a)和f k3(b) =
Figure 325952DEST_PATH_IMAGE010
f k3(a),从而得到邻居节点bToken b =( G k1(b), f k3(b), 2),同理得到邻居 节点cToken c dToken d
步骤S33:根据每个下一跳邻居节点的查询令牌,递归式地对所述目标节点的下一跳邻居节点进行查询,直至实际的查询跳数与所述查询令牌中的预定查询跳数相等;
具体地,利用每个邻居节点v i Token进一步地查询目标节点u的第二跳邻居节点,判断邻居节点是否在集合R中,如果已经存在就丢弃,不存在就放入集合R中;对于top-H跳查询,递归式地查询下一跳的邻居节点Token,直至查询到H跳为止,或者还没有到H跳,但后面每次查询的结果全部已经存在于集合R中;对于top-k查询,则只要集合R中已经有k个结果,就结束查询。
在本实施例中,利用Token b ,查询节点b的第一跳邻居节点,也即节点a的第二跳邻 居节点{ E k2(b), E k2(a), E k2(e), pad1 b1, pad2 b1, pad2 b1},放入结果集合R中,要去掉已 经存在的节点,从而R 2={E k2(a), E k2(b), E k2(c), E k2(d), pad1 a1, pad2 a1, E k2(e), pad1 b1, pad2 b1, pad2 b1}。对于R 1中的节点cd,执行与节点b一样的查询操作,对于节点c, 得到查询结果{ E k2(c), E k2(a), E k2(d), E k2(e), E k2(f), E k2(g) };对于节点d,得到查询 结果{ E k2(d), E k2(a), E k2(c), pad1 d1, pad2 d1, pad3 d1}。递归地,对于邻居节点b的邻居 节点e,利用Token b 中的f k3(b),计算G k1(e)=
Figure 224638DEST_PATH_IMAGE011
f k3(b)和f k3(e) =
Figure 669526DEST_PATH_IMAGE012
f k3(b),从而得到 节点eToken e =( G k1(e), f k3(e), 1);利用Token e ,查询节点e的第一跳邻居节点,也即节 点a的第三跳邻居节点{ E k2(e), E k2(b), E k2(c), E k2(f), pad1 e1, pad2 e1 },放入集合R 中,要去掉已经存在的节点,从而R 3={E k2(a), E k2(b), E k2(c), E k2(d), pad1 a1, pad2 a1, E k2(e), pad1 b1, pad2 b1, pad2 b1, E k2(f), pad1 e1, pad2 e1}。此处R 2中只新增了节点e,若还 新增有其它节点,则执行与节点e一样的查询。同样地,递归地,对于邻居节点c的邻居节点fg,执行与节点e一样的查询操作。最终,得到的查询结果集R ={E k2(a), E k2(b), E k2(c), E k2(d), pad1 a1, pad2 a1, E k2(e), pad1 b1, pad2 b1, pad2 b1, E k2(f), E k2(g), pad1 d1, pad2 d1, pad3 d1, pad1 e1, pad2 e1, pad1 f1, pad2 f1, pad1 g1, pad2 g1, pad3 g1}。
具体地,用户端利用密钥k 2对查询结果R ={E k2(a), E k2(b), E k2(c), E k2(d),pad1 a1, pad2 a1, E k2(e), pad1 b1, pad2 b1, pad2 b1, E k2(f), E k2(g), pad1 d1, pad2 d1,pad3 d1, pad1 e1, pad2 e1, pad1 f1, pad2 f1, pad1 g1, pad2 g1, pad3 g1}进行解密的过程包括一个对称密码算法,包括加密算法E和解密算法D,使用解密算法DR中的元素逐一解密,举例:a= D k2(E k2(a)),得到明文结果集{ a, b, c, d, e, f, g},对于填充的信息,解密得到的是乱码,因此丢弃。
与前述的加密图的邻居节点查询方法的实施例相对应,本申请还提供了加密图的邻居节点查询装置的实施例。
图5是根据一示例性实施例示出的一种加密图的邻居节点查询装置框图。参照图5,该装置应用于拥有数据的终端,可以包括:
第一生成模块21,用于提取每个节点的邻居节点,生成邻居节点表;
第二生成模块22,用于利用密钥生成算法,生成密钥组;
第三生成模块23,用于根据所述邻居节点表和密钥组,生成加密索引字典;
扩充模块24,用于对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
第一发送模块25,用于将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
第一接收模块26,用于接收用户端的关于目标节点的查询请求;
第四生成模块27,用于根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
第二发送模块28,用于向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
实施例2:
图6是根据一示例性实施例示出的一种加密图的邻居节点查询方法的流程图,如图6所示,该方法应用于云服务器中,可以包括以下步骤:
步骤S41:接收拥有数据的终端发送的扩充索引字典并对所述扩充索引字典进行存储,其中所述扩充索引字典由拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充得到;
步骤S42:接收用户端发送的查询令牌,其中所述查询令牌由所述拥有数据的终端接收用户端的关于目标节点的查询请求,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌,向所述用户端发送所述查询令牌和所述密钥组,所述用户端向云服务器发送得到;
步骤S43:根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
步骤S44:将查询结果发送至所述用户端,以使得所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
与前述的加密图的邻居节点查询方法的实施例相对应,本申请还提供了加密图的邻居节点查询装置的实施例。
具体地,步骤S41-步骤S42的具体实施已在实施例1中应用于拥有数据的终端的一种加密图的邻居节点查询方法的具体实施中进行说明,此处不再赘述。
图7是根据一示例性实施例示出的一种加密图的邻居节点查询装置框图。参照图7,该装置应用于云服务器,可以包括:
第二接收模块31,用于接收拥有数据的终端发送的扩充索引字典并对所述扩充索引字典进行存储,其中所述扩充索引字典由拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充得到;
第三接收模块32,用于接收用户端发送的查询令牌,其中所述查询令牌由所述拥有数据的终端接收用户端的关于目标节点的查询请求,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌,向所述用户端发送所述查询令牌和所述密钥组,所述用户端向云服务器发送得到;
查询模块33,用于根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
第三发送模块34,用于将查询结果发送至所述用户端,以使得所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
实施例3:
图8是根据一示例性实施例示出的一种加密图的邻居节点查询方法的交互图,如图8所示,该方法可以包括以下步骤:
步骤S51:拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同,将所述扩充索引字典发送至云服务器;
步骤S52:云服务器对所述扩充索引字典进行存储;
步骤S53:拥有数据的终端接收用户端的关于目标节点的查询请求;
步骤S54:拥有数据的终端根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
步骤S55:拥有数据的终端向所述用户端发送所述查询令牌和所述密钥组;
步骤S56:用户端向所述云服务器发送所述查询令牌;
步骤S57:云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
步骤S58:云服务器将查询结果发送至所述用户端;
步骤S59:所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
具体地,步骤S51-步骤S59的具体实施已在实施例1中应用于拥有数据的终端的一种加密图的邻居节点查询方法的具体实施中进行说明,此处不再赘述。
与前述的加密图的邻居节点查询方法的实施例相对应,本申请还提供了加密图的邻居节点查询装置的实施例。
图9是根据一示例性实施例示出的一种加密图的邻居节点查询装置框图。参照图9,该装置可以包括:
第四发送模块41,用于数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同,将所述扩充索引字典发送至云服务器;
存储模块42,用于云服务器对所述扩充索引字典进行存储;
第四接收模块43,用于拥有数据的终端接收用户端的关于目标节点的查询请求;
第四生成模块44,用于拥有数据的终端根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
第五发送模块45,用于拥有数据的终端向所述用户端发送所述查询令牌和所述密钥组;
第六发送模块46,用于用户端向所述云服务器发送所述查询令牌;
第五接收模块47,用于云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
第七发送模块48,用于云服务器将查询结果发送至所述用户端;
解密模块49,用于所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的一种加密图的邻居节点查询方法。如图10所示,为本发明实施例提供的一种加密图的邻居节点查询方法所在任意具备数据处理能力的设备的一种硬件结构图,除了图10所示的处理器、内存以及网络接口之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如上述的一种加密图的邻居节点查询方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是风力发电机的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(FlashCard)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (8)

1.一种加密图的邻居节点查询方法,其特征在于,包括:
提取每个节点的邻居节点,生成邻居节点表;
利用密钥生成算法,生成密钥组;
根据所述邻居节点表和密钥组,生成加密索引字典;
对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
接收用户端的关于目标节点的查询请求;
根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果;
其中,根据所述邻居节点表和密钥组,生成加密索引字典,包括:
步骤S21:根据所述密钥组中的第一密钥对节点进行加密,得到所述节点的加密索引入口;
步骤S22:根据所述密钥组中的第二密钥对所述节点进行加密,得到第一加密节点信息;
步骤S23:生成第一随机串和第二随机串;
步骤S24:将所述第一加密节点信息、第一随机串和第二随机串设置为所述节点的第一元组;
步骤S25:根据所述密钥组中的第二密钥对所述节点的邻居节点进行加密,得到第二加密节点信息;
步骤S26:生成第一元素和第二元素,其中所述第一元素为对第三随机串和所述邻居节点的加密索引入口进行异或的结果,所述第二元素为对第四随机串和所述第三随机串进行异或的结果,所述第三随机串为根据所述密钥组中的第三密钥对所述节点进行加密得到,所述第四随机串为根据所述密钥组中的第三密钥对所述邻居节点进行加密得到;
步骤S27:将所述第二加密节点信息、第一元素和第二元素设置为所述节点的第二元组;
步骤S28:更换邻居节点,重复步骤S25-步骤S27的过程直至得到所述节点的第n元组,从而得到所述节点的所有邻居节点对应的元组,其中n为所述节点的邻居节点数量加1的值;
步骤S29:将所有节点的第一元组至第n元组设置为所述节点的加密索引,从而生成加密索引字典。
2.一种加密图的邻居节点查询装置,其特征在于,包括:
第一生成模块,用于提取每个节点的邻居节点,生成邻居节点表;
第二生成模块,用于利用密钥生成算法,生成密钥组;
第三生成模块,用于根据所述邻居节点表和密钥组,生成加密索引字典;
扩充模块,用于对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同;
第一发送模块,用于将所述扩充索引字典发送至云服务器以使得所述云服务器对所述扩充索引字典进行存储;
第一接收模块,用于接收用户端的关于目标节点的查询请求;
第四生成模块,用于根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
第二发送模块,用于向所述用户端发送所述查询令牌和所述密钥组,以使得所述用户端向所述云服务器发送所述查询令牌,所述云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,将查询结果发送至所述用户端,所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果;
其中,根据所述邻居节点表和密钥组,生成加密索引字典,包括:
步骤S21:根据所述密钥组中的第一密钥对节点进行加密,得到所述节点的加密索引入口;
步骤S22:根据所述密钥组中的第二密钥对所述节点进行加密,得到第一加密节点信息;
步骤S23:生成第一随机串和第二随机串;
步骤S24:将所述第一加密节点信息、第一随机串和第二随机串设置为所述节点的第一元组;
步骤S25:根据所述密钥组中的第二密钥对所述节点的邻居节点进行加密,得到第二加密节点信息;
步骤S26:生成第一元素和第二元素,其中所述第一元素为对第三随机串和所述邻居节点的加密索引入口进行异或的结果,所述第二元素为对第四随机串和所述第三随机串进行异或的结果,所述第三随机串为根据所述密钥组中的第三密钥对所述节点进行加密得到,所述第四随机串为根据所述密钥组中的第三密钥对所述邻居节点进行加密得到;
步骤S27:将所述第二加密节点信息、第一元素和第二元素设置为所述节点的第二元组;
步骤S28:更换邻居节点,重复步骤S25-步骤S27的过程直至得到所述节点的第n元组,从而得到所述节点的所有邻居节点对应的元组,其中n为所述节点的邻居节点数量加1的值;
步骤S29:将所有节点的第一元组至第n元组设置为所述节点的加密索引,从而生成加密索引字典。
3.一种加密图的邻居节点查询方法,其特征在于,包括:
接收拥有数据的终端发送的扩充索引字典并对所述扩充索引字典进行存储,其中所述扩充索引字典由拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充得到;
接收用户端发送的查询令牌,其中所述查询令牌由所述拥有数据的终端接收用户端的关于目标节点的查询请求,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌,向所述用户端发送所述查询令牌和所述密钥组,所述用户端向云服务器发送得到;
根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
将查询结果发送至所述用户端,以使得所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果;
其中,根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,包括:
根据所述查询令牌中的加密索引入口,依次读取所述扩充索引字典中所述目标节点的元组,将所述元组中所有的加密节点信息放入查询结果中;
将所述查询令牌中的第三随机串分别与所述目标节点的加密索引中的第一元素和第二元素进行异或,生成所述目标节点的下一跳邻居节点的查询令牌;
根据每个下一跳邻居节点的查询令牌,递归式地对所述目标节点的下一跳邻居节点进行查询,直至实际的查询跳数与所述查询令牌中的预定查询跳数相等。
4.一种加密图的邻居节点查询装置,其特征在于,包括:
第二接收模块,用于接收拥有数据的终端发送的扩充索引字典并对所述扩充索引字典进行存储,其中所述扩充索引字典由拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充得到;
第三接收模块,用于接收用户端发送的查询令牌,其中所述查询令牌由所述拥有数据的终端接收用户端的关于目标节点的查询请求,根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌,向所述用户端发送所述查询令牌和所述密钥组,所述用户端向云服务器发送得到;
查询模块,用于根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
第三发送模块,用于将查询结果发送至所述用户端,以使得所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果;
其中,根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,包括:
根据所述查询令牌中的加密索引入口,依次读取所述扩充索引字典中所述目标节点的元组,将所述元组中所有的加密节点信息放入查询结果中;
将所述查询令牌中的第三随机串分别与所述目标节点的加密索引中的第一元素和第二元素进行异或,生成所述目标节点的下一跳邻居节点的查询令牌;
根据每个下一跳邻居节点的查询令牌,递归式地对所述目标节点的下一跳邻居节点进行查询,直至实际的查询跳数与所述查询令牌中的预定查询跳数相等。
5.一种加密图的邻居节点查询方法,其特征在于,包括:
拥有数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同,将所述扩充索引字典发送至云服务器;
云服务器对所述扩充索引字典进行存储;
拥有数据的终端接收用户端的关于目标节点的查询请求;
拥有数据的终端根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
拥有数据的终端向所述用户端发送所述查询令牌和所述密钥组;
用户端向所述云服务器发送所述查询令牌;
云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
云服务器将查询结果发送至所述用户端;
所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果;
其中,云服务器根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,包括:
根据所述查询令牌中的加密索引入口,依次读取所述扩充索引字典中所述目标节点的元组,将所述元组中所有的加密节点信息放入查询结果中;
将所述查询令牌中的第三随机串分别与所述目标节点的加密索引中的第一元素和第二元素进行异或,生成所述目标节点的下一跳邻居节点的查询令牌;
根据每个下一跳邻居节点的查询令牌,递归式地对所述目标节点的下一跳邻居节点进行查询,直至实际的查询跳数与所述查询令牌中的预定查询跳数相等。
6.一种加密图的邻居节点查询装置,其特征在于,包括:
第四发送模块,用于数据的终端提取每个节点的邻居节点,生成邻居节点表,利用密钥生成算法,生成密钥组,根据所述邻居节点表和密钥组,生成加密索引字典,对所述加密索引字典进行扩充,得到扩充索引字典,以使得所述扩充索引字典中的每个加密索引的长度均相同,将所述扩充索引字典发送至云服务器;
存储模块,用于云服务器对所述扩充索引字典进行存储;
第四接收模块,用于拥有数据的终端接收用户端的关于目标节点的查询请求;
第四生成模块,用于拥有数据的终端根据所述目标节点的查询请求和所述密钥组,生成所述目标节点的查询令牌;
第五发送模块,用于拥有数据的终端向所述用户端发送所述查询令牌和所述密钥组;
第六发送模块,用于用户端向所述云服务器发送所述查询令牌;
第五接收模块,用于云服务器接收所述查询令牌并根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询;
第七发送模块,用于云服务器将查询结果发送至所述用户端;
解密模块,用于所述用户端根据所述密钥组对所述查询结果进行解密,从而得到所述目标节点的明文查询结果;
其中,云服务器根据所述查询令牌和扩充索引字典,对所述目标节点的邻居节点进行查询,包括:
根据所述查询令牌中的加密索引入口,依次读取所述扩充索引字典中所述目标节点的元组,将所述元组中所有的加密节点信息放入查询结果中;
将所述查询令牌中的第三随机串分别与所述目标节点的加密索引中的第一元素和第二元素进行异或,生成所述目标节点的下一跳邻居节点的查询令牌;
根据每个下一跳邻居节点的查询令牌,递归式地对所述目标节点的下一跳邻居节点进行查询,直至实际的查询跳数与所述查询令牌中的预定查询跳数相等。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1或权利要求3或权利要求5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1或权利要求3或权利要求5中任一项所述方法的步骤。
CN202210309856.1A 2022-03-28 2022-03-28 一种加密图的邻居节点查询方法及装置、电子设备 Active CN114417073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210309856.1A CN114417073B (zh) 2022-03-28 2022-03-28 一种加密图的邻居节点查询方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210309856.1A CN114417073B (zh) 2022-03-28 2022-03-28 一种加密图的邻居节点查询方法及装置、电子设备

Publications (2)

Publication Number Publication Date
CN114417073A CN114417073A (zh) 2022-04-29
CN114417073B true CN114417073B (zh) 2022-08-05

Family

ID=81264107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210309856.1A Active CN114417073B (zh) 2022-03-28 2022-03-28 一种加密图的邻居节点查询方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN114417073B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033599B (zh) * 2022-08-12 2022-11-11 深圳市洞见智慧科技有限公司 基于多方安全的图查询方法、***及相关装置
CN117349894B (zh) * 2023-12-01 2024-03-01 山东省计算中心(国家超级计算济南中心) 一种基于填充字典加密的图结构最短路径查询方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996833A (zh) * 2006-12-04 2007-07-11 中国科学院计算技术研究所 一种传感器网络中对密钥进行分配和管理的方法
WO2019227557A1 (zh) * 2018-06-01 2019-12-05 平安科技(深圳)有限公司 密钥管理方法、设备、存储介质及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101699891B (zh) * 2009-10-21 2012-07-25 西安西电捷通无线网络通信股份有限公司 一种传感器网络密钥管理和节点鉴别方法
US8429421B2 (en) * 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
US10333840B2 (en) * 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
CN107291861B (zh) * 2017-06-12 2020-05-12 北京理工大学 一种面向加密图的带约束近似最短距离查询方法
CN108052834B (zh) * 2017-12-11 2019-09-27 东北大学 一种面向密态图结构的近似最短距离查询方法
LU101781B1 (en) * 2019-05-10 2021-03-10 Reidar Magnus Nordby Games, lotteries, and sweepstakes and tickets, systems, technologies, and methods related thereto
CN111309979B (zh) * 2020-02-27 2022-08-05 桂林电子科技大学 一种基于邻居向量的RDF Top-k查询方法
CN111552988B (zh) * 2020-04-21 2023-05-02 西安电子科技大学 基于蒙特卡罗抽样的前向安全k近邻检索方法及***
CN113569280A (zh) * 2021-07-20 2021-10-29 西安电子科技大学 一种支持动态更新的可验证加密图像检索方法
CN113849840B (zh) * 2021-10-13 2023-06-09 福建师范大学 基于可认证加密计数器的加密数据统计分析方法
CN114168802B (zh) * 2021-12-09 2024-06-18 青岛大学 节点关系的数据生成方法和装置、查询方法、装置及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996833A (zh) * 2006-12-04 2007-07-11 中国科学院计算技术研究所 一种传感器网络中对密钥进行分配和管理的方法
WO2019227557A1 (zh) * 2018-06-01 2019-12-05 平安科技(深圳)有限公司 密钥管理方法、设备、存储介质及装置

Also Published As

Publication number Publication date
CN114417073A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
KR101190059B1 (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
US9275250B2 (en) Searchable encryption processing system
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
US8744076B2 (en) Method and apparatus for encrypting data to facilitate resource savings and tamper detection
JP5084817B2 (ja) 暗号文の索引付けおよび検索方法と装置
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
CN114417073B (zh) 一种加密图的邻居节点查询方法及装置、电子设备
JP5224481B2 (ja) パスワード認証方法
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
JP2010061103A (ja) 高速検索可能な暗号化のための方法、装置およびシステム
US20170262546A1 (en) Key search token for encrypted data
US8341417B1 (en) Data storage using encoded hash message authentication code
EP3511845B1 (en) Encrypted message search method, message transmission/reception system, server, terminal and programme
CN108400970A (zh) 云环境中相似数据消息锁定加密去重方法、云存储***
JP2014175970A (ja) 情報配信システム、情報処理装置及びプログラム
CN112989375A (zh) 一种分级优化加密无损隐私保护方法
KR101217491B1 (ko) 공개키 기반의 키워드 검색 방법
CN110188545B (zh) 一种基于链式数据库的数据加密方法及装置
CN107294701B (zh) 具有高效密钥管理的多维密文区间查询装置及查询方法
KR101232385B1 (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
CN115694921B (zh) 一种数据存储方法、设备及介质
Yan et al. Secure and efficient big data deduplication in fog computing
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
CN115174600A (zh) 一种用于云存储***的密文数据加密、安全检索方法及装置
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program

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