用电数据加密搜索方法、装置、计算机设备和存储介质与流程

文档序号:32979747发布日期:2023-01-17 21:52阅读:31来源:国知局
用电数据加密搜索方法、装置、计算机设备和存储介质与流程

1.本技术涉及数据处理技术领域,特别是涉及一种用电数据加密搜索方法、装置、计算机设备和存储介质。


背景技术:

2.智能电网是以物理电网为基础,将现代先进的传感测量技术、通讯技术、信息技术、计算机技术和控制技术与物理电网高度集成而形成的新型电网。智能电网的运行控制相较于普通电网而言更加灵活智能,逐渐在电力系统中被广泛应用。
3.智能电网系统在应用时通过智能电表实时采集并存储用户的用电数据,以供数据使用方,例如电网管理人员、操作人员等及时查询,进行用电研究,如何能够安全有效的处理大量用电数据,保证用电数据的可用性、完整性和隐私性是当前智能电网系统面临的重要问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高用电数据可用性、完整性和隐私性的用电数据加密搜索方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种用电数据加密搜索方法,应用于数据拥有方,所述方法包括:将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与所述可搜索加密索引对应的密文列表发送至区块链智能合约进行存储;将根据加密密钥与所述用电数据集合生成的加密密文发送至服务器进行存储;接收数据使用方发送的查询请求,根据所述查询请求生成搜索陷门;将所述搜索陷门返回所述数据使用方,所述搜索陷门用于指示所述区块链智能合约根据所述搜索陷门对所述可搜索加密索引进行搜索,得到所述密文列表,所述密文列表用于指示所述服务器查找目标加密密文。
6.在其中一个实施例中,所述将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与所述可搜索加密索引对应的密文列表发送至区块链智能合约进行存储,包括:对用电数据集合进行关键词提取,得到关键词集合;根据所述关键词集合与所述用电数据集合,生成各关键词对应的各数据标识集合,各所述数据标识集合中包含了各关键词对应用电数据的数据标识;根据索引密钥与各所述数据标识集合生成可搜索加密索引,以及与所述可搜索加密索引对应的密文列表;将所述可搜索加密索引与所述密文列表发送至区块链智能合约进行存储。
7.在其中一个实施例中,所述接收数据使用方发送的查询请求,根据所述查询请求生成搜索陷门,包括:
根据所述查询请求确定所述数据使用方的用户标识,以及所述数据使用方请求查询的用电数据的数据标识;基于所述用户标识与所述数据标识,确定所述数据使用方是否具备数据查询权限;若所述数据使用方具备所述数据查询权限,则根据所述查询请求生成搜索陷门。
8.在其中一个实施例中,若所述数据使用方不具备所述数据查询权限,则生成提示信息返回至所述数据使用方,所述提示信息用于提示所述数据使用方无搜索权限。
9.在其中一个实施例中,所述根据所述查询请求生成搜索陷门之前,还包括:获取接收到所述查询请求的请求时间;将所述请求时间与预设查询结束时间进行比较,若所述请求时间超过所述预设查询结束时间,则结束本次搜索操作。
10.第二方面,本技术还提供了一种用电数据加密搜索方法,应用于数据使用方,所述方法包括:根据目标搜索数据的数据标识生成查询请求,将所述查询请求发送至数据拥有方;接收所述数据拥有方返回的搜索陷门,将所述搜索陷门发送至区块链智能合约,所述搜索陷门用于指示所述区块链智能合约对可搜索加密索引进行搜索,得到密文列表;接收服务器返回的目标加密密文,所述目标加密密文是所述服务器基于所述区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
11.第三方面,本技术还提供了一种用电数据加密搜索装置,设置于数据拥有方,所述装置包括:索引与密文列表存储模块,用于将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与所述可搜索加密索引对应的密文列表发送至区块链智能合约进行存储;密文存储模块,用于将根据加密密钥与所述用电数据集合生成的加密密文发送至服务器进行存储;搜索陷门生成模块,用于接收数据使用方发送的查询请求,根据所述查询请求生成搜索陷门;搜索陷门返回模块,用于将所述搜索陷门返回所述数据使用方,所述搜索陷门用于指示所述区块链智能合约根据所述搜索陷门对所述可搜索加密索引进行搜索,得到所述密文列表,所述密文列表用于指示所述服务器查找目标加密密文。
12.第四方面,本技术还提供了一种用电数据加密搜索装置,设置于数据使用方,所述装置包括:请求发送模块,用于根据目标搜索数据的数据标识生成查询请求,将所述查询请求发送至数据拥有方;搜索陷门接收模块,用于接收所述数据拥有方返回的搜索陷门,将所述搜索陷门发送至区块链智能合约,所述搜索陷门用于指示所述区块链智能合约对可搜索加密索引进行搜索,得到密文列表;密文接收模块,用于接收服务器返回的目标加密密文,所述目标加密密文是所述服务器基于所述区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
13.第五方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
14.第六方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
15.第七方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
16.上述用电数据加密搜索方法、装置、计算机设备、存储介质和计算机程序产品,根据索引密钥与用电数据集合生成可搜索加密索引,根据加密密钥与用电数据集合生成加密密文。将可搜索加密索引发送至区块链智能合约进行存储,加密密文发送至服务器进行存储。通过区块链智能合约实现可搜索加密索引的完整性、防篡改和可追溯性。接收数据使用方发送的查询请求,根据查询请求生成搜索陷门,将搜索陷门返回给数据使用方,区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表后,服务器根据密文列表查找得到目标加密密文。使用智能合约自动搜索可搜索加密索引,可以保证搜索结果的准确性,进而提升用电数据的可用性。
附图说明
17.图1为一个实施例中用电数据加密搜索方法的应用环境图;图2为一个实施例中用电数据加密搜索方法的流程示意图;图3为一个实施例中将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储步骤的流程示意图;图4为一个实施例中根据索引密钥与各数据标识集合生成可搜索加密索引,以及与可搜索加密索引对应的密文列表步骤的示意图;图5为一个实施例中接收数据使用方发送的查询请求,根据查询请求生成搜索陷门步骤的流程示意图;图6为另一个实施例中用电数据加密搜索方法的流程示意图;图7为又一个实施例中用电数据加密搜索方法的流程示意图;图8为一个实施例中用电数据加密搜索装置的结构框图;图9为另一个实施例中用电数据加密搜索装置的结构框图;图10为一个实施例中计算机设备的内部结构图。
具体实施方式
18.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
19.为了能够安全有效的处理大量用电数据,对用电数据进行加密是必要的处理手段,然而,数据加密之后密文将会丧失原本的语义特征,使传统的数据检索不再适用。
20.基于此,本技术实施例提供的用电数据加密搜索方法,可以应用于如图1所示的应用环境中。其中,数据拥有方102通过网络分别与区块链智能合约104、服务器106以及数据使用方108进行通信。数据存储系统可以存储数据拥有方102需要处理的数据。数据拥有方
102将根据索引密钥与用电数据集合生成的可搜索加密索引发送至区块链智能合约104进行存储,将根据加密密钥与用电数据集合生成的加密密文发送至服务器106进行存储。接收数据使用方108发送的查询请求,根据查询请求生成搜索陷门,将搜索陷门返回数据使用方108,搜索陷门用于指示区块链智能合约104根据搜索陷门对可搜索加密索引进行搜索,得到密文列表,密文列表用于指示服务器106查找目标加密密文。其中,数据拥有方102与数据使用方104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等,也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现,也可以是云服务器。
21.在一个实施例中,如图2所示,提供了一种用电数据加密搜索方法,以该方法应用于图1中的数据拥有方为例进行说明,包括以下步骤:步骤202,将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储。
22.其中,数据拥有方是用电数据的所有方,可以认为是用电数据的采集方,实时获取并存储得到用户的用电数据。具体地,数据拥有方可以是智能电网的电网用户,可以通过智能电网系统获取智能电表实时采集用户的用电数据,并将各用户的用电数据进行集合存储,得到用电数据集合。可以理解的,用电数据是智能电网所能够采集的电网数据集,例如电力计量相关数据。用电数据的数据种类和数量具体都可由电网系统构建者根据实际情况设计。
23.其中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识的数据页的逻辑指针清单,索引的作用相当于图书的目录,可以根据目录中的页码快速的找到所需的内容。
24.可搜索加密索引是用于搜索加密密文的安全索引,通过索引密钥与用电数据集合生成,通过安全索引进行搜索,可以快速从丧失了原本语义特征的众多加密密文中找出需要的目标加密密文,在保护加密密文安全性的同时,提高了数据使用方获取用电数据的速度。
25.其中,密文列表是用于确定目标加密密文的文件列表,根据用电数据集合生成,密文列表可以表征目标加密密文在整个加密密文集合中的位置,从而可以快速从服务器的众多加密密文中快速得到目标加密密文。可以理解的,密文列表与可搜索加密索引存在对应的映射关系。区块链智能合约可以根据可搜索加密索引确定对应的密文列表。
26.其中,区块链是由一系列区块按照时间先后顺序组成的只增型链式数据结构。区块链技术就是利用这种链式数据结构实现数据的存储与验证,利用分布式节点共识算法实现数据的生成和更新,利用密码学的方式保证数据传输和访问的安全,并支持由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式数据库。区块链具备去中心化、不可篡改、可追溯以及公开透明等优点。
27.在区块链系统中,智能合约是存储在区块链上的一段代码,被写在合约的账户里,并且实现特定业务操作,可以被触发执行。智能合约的代码不能被修改,否则将会造成被滥用修改的风险。智能合约通过条件触发执行,并且在每个全节点上都会被执行,如果单个节点作恶,那么该节点的数据失效,不会影响其他节点,因此,智能合约的执行具有一致性,将
可搜索加密索引存储在智能合约中,可以利用区块链智能合约去中心化的特性保证运行的正确性。
28.具体地,数据拥有方根据索引密钥与用电数据集合生成可搜索加密索引,以及与用电数据集合的密文列表,并将可搜索加密索引与密文列表绑定后发送至区块链智能合约中进行存储。可以理解的,索引密钥可以由任意一种加密算法实时生成,也可以由数据拥有方预先生成存储在数据存储库中,方便随时调用。
29.步骤204,将根据加密密钥与用电数据集合生成的加密密文发送至服务器进行存储。
30.其中,加密密钥是与索引密钥一起生成的密钥,用于对用电数据集合进行加密,得到加密密文。
31.具体地,数据拥有方根据加密密钥与用电数据集合生成加密密文,将加密密文发送至服务器进行存储,以节省自身资源开销。
32.在其中一个实施例中,数据拥有方可以使用对称加密方案,例如aes等,对用电数据集合进行加密,得到加密密文。
33.步骤206,接收数据使用方发送的查询请求,根据查询请求生成搜索陷门。
34.其中,查询请求是数据使用方根据目标搜索数据的数据标识生成的请求,用于向数据拥有方请求查询目标搜索数据。查询请求中除了携带有目标搜索数据的数据标识,同时也携带有数据使用方的标识信息,以及目标搜索数据的代表性信息,代表性信息可以是标志性标识、关键词、主题信息等。
35.其中,数据使用方是对智能电网的用电数据有查询、使用需求的使用方。数据使用方可以是由数据拥有方授权的电网数据查询者。例如电网管理人员、电网操作人员、政府工作人员等。
36.搜索陷门是用于确定可搜索加密索引的信息,如果将可搜索加密索引认为是图书的目录,那搜索陷门则是快速定位目标目录的搜索工具。可以理解的,搜索陷门可以根据目标搜索数据中的代表性信息加密生成,通过对代表性信息进行加密,则可以在不泄露用电数据的情况下,得到更加精准的搜索信息。
37.具体地,数据使用方根据目标搜索数据的数据标识生成查询请求,将查询请求发送至数据拥有方。数据拥有方接收查询请求,根据查询请求中的数据标识确定需要进行查询的目标搜索数据,根据目标搜索数据的代表性信息加密生成搜索陷门。
38.步骤208,将搜索陷门返回数据使用方,搜索陷门用于指示区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表,密文列表用于指示服务器查找目标加密密文。
39.具体地,数据拥有方将搜索陷门返回给数据使用方,数据使用方将接收的搜索陷门发送给区块链智能合约,通过区块链智能合约自动根据搜索陷门对可搜索加密索引进行搜索,得到可搜索加密索引对应的密文列表。
40.区块链智能合约将搜索得到的密文列表发送给服务器,服务器根据密文列表查找各加密密文,得到目标搜索数据对应的目标加密密文,将目标加密密文返回给数据使用方,完成对用电数据的加密搜索。
41.在其中一个实施例中,数据拥有方通过获取安全参数,根据安全参数随机生成索
引密钥与密文密钥。
42.具体地,数据拥有方获取安全参数λ,执行setup算法,输入安全参数λ,随机生成索引密钥msk

{0,1}
λ
和密文密钥mk

{0,1}
λ

43.上述用电数据加密搜索方法中,根据索引密钥与用电数据集合生成可搜索加密索引,根据加密密钥与用电数据集合生成加密密文。将可搜索加密索引发送至区块链智能合约进行存储,加密密文发送至服务器进行存储。通过区块链智能合约实现可搜索加密索引的完整性、防篡改和可追溯性。接收数据使用方发送的查询请求,根据查询请求生成搜索陷门,将搜索陷门返回给数据使用方,区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表后,服务器根据密文列表查找得到目标加密密文。使用智能合约自动搜索可搜索加密索引,可以保证搜索结果的准确性,进而提升用电数据的可用性。
44.在一个实施例中,如图3所示,将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储,包括以下步骤:步骤302,对用电数据集合进行关键词提取,得到关键词集合。
45.其中,关键词是用电数据集合中的标志性词语,根据关键词信息可以准确定位数据使用者需要搜索使用的目标搜索数据。可以理解的,关键词的具体种类、具体词语以及具体表现形式都可以由系统构建者根据用电数据以及数据使用者的实际情况进行设定,例如用电数据通常用于为地区用电政策研究提供数据基础,则用电数据中的地区信息有关的词语可以确定为关键词。若用电数据常用于为研究地区电力经济提供数据基础,则用电数据中与电量数值、电量价格等相关的词语可以确定为关键词。
46.具体地,数据拥有者对用电数据集合通过预设关键词提取规则进行关键词提取,得到用电数据集合的关键词集合。
47.步骤304,根据关键词集合与用电数据集合,生成各关键词对应的各数据标识集合,各数据标识集合中包含了各关键词对应用电数据的数据标识。
48.其中,各数据标识集合表示所有包含各关键词的用电数据的数据标识集合。例如关键词为地点a,则地点a的数据标识集合中数据标识对应的用电数据均包含有关键词地点a。
49.具体地,数据拥有者从用电数据集合d={d1,d2,
…dm
}中提取关键词,生成关键词集合w={w1,w2,

wm},令id(wi)={id
ij
∣dj∣=wi}表示所有包含关键词wi的用电数据的标识集合。
50.步骤306,根据索引密钥与各数据标识集合生成可搜索加密索引,以及与可搜索加密索引对应的密文列表。
51.具体地,数据拥有者根据索引密钥msk和数据标识集合d生成可搜索加密索引e。
52.采用倒排索引的方式对每个关键词对应的数据标识进行编码。如图4所示,首先初始化列表l和空字典结构e,选取伪随机函数f:{0,1}
λ
×
{0,1}
*

{0,1}
λ
,g:{0,1}
λ
×
{0,1}
λ

{0,1}
*
,对每个关键词wi∈w以及其对应的数据标识集合id(wi)={id
ij
∣dj∣=wi}进行以下操作:第一步,将关键词对应的数据标识集合id(wi)划分为α+1块,使得每一块中包含p个数据标识,若最后一块不够p个,则填充至p个;第二步,对于第一步中的每一块,执行以下操作:
首先,令c=1;对于此块的p个标识,记id=id1‖id2‖

‖id
p
为本块的总标识;计算k1=f(msk,1‖wi),k2=f(msk,2‖wi),其中,k1作为序号索引密钥,k2作为总标识盲化密钥。
53.选取随机数r

{0,1}
λ
,计算l

f(k1,c),作为关键词wi的第c块的序号索引;其计算d

id

g(k2,r),盲化关键词wi的第c块的所包含的数据总标识。
54.最后,令c=c+1循环上述步骤,直至整个数据标识集合都完成上述步骤。
55.将计算得到的(l,d,r)添加至列表l中,得到密文列表。
56.步骤308,将可搜索加密索引与密文列表发送至区块链智能合约进行存储。
57.具体地,数据拥有方将可搜索加密索引e和密文列表l(l,d,r)发送至区块链智能合约,区块链智能合约将每一个l添加至可搜索加密索引e中,进行绑定存储。其中,密文列表l可以认为是可搜索加密索引的一个子集。
58.上述实施例中,数据拥有方根据索引密钥与用电数据集合生成可搜索加密索引和对应的密文列表,将可搜索加密索引与密文列表绑定存储在区块链智能合约中,数据使用者在需要对加密密文进行搜索时,区块链智能合约可以直接根据可搜索加密索引得到对应的密文列表,服务器根据密文列表即可为数据使用者查找得到目标加密密文,有效提高了搜索目标加密密文的准确性。由于可搜索加密索引与密文列表都是经过加密和盲化处理的数据,因此在传输过程中也保证了数据的安全性。
59.在一个实施例中,如图5所示,接收数据使用方发送的查询请求,根据查询请求生成搜索陷门,包括以下步骤:步骤502,根据查询请求确定数据使用方的用户标识,以及数据使用方请求查询的用电数据的数据标识。
60.其中,用户标识是用于确定数据使用方的查询权限的标识信息,数据拥有方根据数据使用方的用户标识,可以确定数据使用方对于其请求查询的目标搜索数据是否具备数据查询权限。
61.可以理解的,用户标识可以通过对查询权限按照查询范围大小分等级划分得到。例如第一梯队用户标识可以对整个系统的用电数据进行查询,第二梯队用户标识仅可对某个地区或某个时间段等具有限制性的用电数据进行查询,以此类推。
62.数据标识是用于确定目标搜索数据的标识信息,每个用电数据都设置有标识信息,数据使用方需要根据目标搜索数据的数据标识生成查询请求,告知数据拥有方其需要搜索的目标搜索数据。
63.具体地,数据拥有方根据数据使用方发送的查询请求确定数据使用方的用户标识以及数据使用方请求查询的用电数据的数据标识。
64.步骤504,基于用户标识与数据标识,确定数据使用方是否具备数据查询权限。
65.具体地,数据拥有方根据数据使用方的用户标识,确定数据使用方的查询权限范围,再根据查询权限范围确定数据标识对应的目标搜索数据是否在该查询权限范围内,从而确定数据使用方是否具备数据查询权限。
66.步骤506,若数据使用方具备数据查询权限,则根据查询请求生成搜索陷门。
67.具体地,若数据使用方的查询权限范围内包括有该目标搜索数据,则确定数据使用方具备数据查询权限。数据拥有方根据数据使用方的查询请求生成搜索陷门。
68.数据拥有方计算step,k1=f(msk,1‖wi),k2=f(msk,2‖wi),计算搜索陷门tw=(k1,k2,
t,step)。将搜索陷门发送给数据使用方,数据使用方可以根据搜索陷门执行后续数据搜索步骤。
69.步骤508,若数据使用方不具备数据查询权限,则生成提示信息返回至数据使用方,提示信息用于提示数据使用方无搜索权限。
70.具体地,若数据使用方的查询权限范围内不包括该目标搜索数据,则确定数据使用方不具备数据查询权限。数据拥有方生成提示信息,将提示信息返回给数据使用方,提示数据使用方无搜索权限,结束本次搜索。
71.在本实施例中,数据拥有方在生成可用于搜索的搜索陷门之前,先根据数据使用方的用户标识,以及其需要搜索的目标搜索数据的数据标识,确定数据使用方是否具备该目标搜索数据的查询权限,若确定数据使用方具备目标搜索数据的查询权限,根据数据使用方的查询请求生成目标搜索数据对应的搜索陷门;若数据使用方不具备目标搜索数据的查询权限,则生成提示信息返回给数据使用者,结束搜索。通过权限验证步骤,可以进一步提高数据搜索的安全性。
72.为了进一步保证数据搜索的安全性,在一个实施例中,根据查询请求生成搜索陷门之前,还包括:获取接收到查询请求的请求时间;将请求时间与预设查询结束时间进行比较,若请求时间超过预设查询结束时间,则结束本次搜索操作。
73.其中,预设查询结束时间是用于限制数据可被搜索的时间,预设查询结束时间由系统构建者根据数据拥有方的实际情况预先创建的,例如,数据拥有方只想将其拥有的数据或某些数据开放至2022年12月31日,则2022年12月31日即可设置为预设查询结束时间。可以理解的,预设查询结束时间也可以是精确性的时间,例如某一日的几点几分。
74.具体地,数据拥有方获取接收到数据使用方发送的查询请求的请求时间,将请求时间与预设查询结束时间进行比较,若请求时间超过预设查询结束时间,说明此时数据使用方想要查询的目标搜索数据已经过了查询期限,无法再继续查询。数据拥有方结束本次搜索操作。
75.在其中一个实施例中,数据拥有方在结束本次搜索操作之前,生成期限提示信息,将期限提示信息返回给数据使用方,提示数据使用方当前查询的目标搜索数据已被限制搜索。
76.上述实施例中,数据拥有方通过将查询请求的请求时间与预设查询结束时间进行比较,确定请求时间是否已经超出预设查询结束时间,若超出则结束本次搜索。根据数据拥有方的实际需求为各用电数据设定预设查询结束时间,可以自动将超出时间限制的查询请求阻隔下来,避免盲目执行后续搜索操作导致资源占用的同时影响用电数据搜索的安全性。
77.在一个实施例中,如图6所示,提供一种用电数据加密搜索方法,以该方法应用于数据使用方为例进行说明,该方法包括以下步骤:步骤602,根据目标搜索数据的数据标识生成查询请求,将查询请求发送至数据拥有方。
78.具体地,数据使用方确定目标搜索数据的数据标识,根据目标搜索数据的数据标识生成查询请求,查询请求中携带有数据使用方的用户标识。将查询请求发送至数据拥有方。
79.步骤604,接收数据拥有方返回的搜索陷门,将搜索陷门发送至区块链智能合约,搜索陷门用于指示区块链智能合约对可搜索加密索引进行搜索,得到密文列表。
80.其中,数据拥有方接收查询请求后,根据查询请求生成搜索陷门。数据使用方接收数据拥有方返回的搜索陷门。
81.具体地,数据使用者令c=0,将搜索陷门=(k1,k2,c)发送至区块链智能合约,对i=0~t执行以下操作:对j=0直到返回

或j≥step,计算l=f(k1,c),调用算法获得d,r

get(e,l);id
←d⊕
g(k2,r),c++;j++;将id分为(id1,id2,

,id
p
)并将其存至列表r中,得到搜索陷门对应的密文列表。
82.在其中一个实施例中,搜到陷门可以是根据查询请求中的关键词生成的,根据搜索陷门对应的关键词,可以得到搜索陷门对应的密文列表r。
83.步骤606,接收服务器返回的目标加密密文,目标加密密文是服务器基于区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
84.具体地,数据使用者将密文列表r发送给服务器,服务器根据密文列表r搜索服务器中的各加密密文,得到对应的目标加密密文,将目标加密密文返回给数据使用者,数据使用者接收服务器返回的目标加密密文,用电数据搜索完成。
85.上述用电数据加密搜索方法,数据使用方根据目标搜索数据的数据标识生成查询请求,将查询请求发送给数据拥有方,接收数据拥有方返回的搜索陷门,将搜索陷门发送给区块链智能合约,即可接收服务器返回的目标加密密文。区块链智能合约中的可搜索加密索引具备完整性、防篡改性和可追溯性,由智能合约自动根据搜索陷门搜索得到密文列表,服务器再基于密文列表得到最终的目标加密密文,可以保证搜索结果的准确性,进而提升用电数据的可用性。
86.在一个实施例中,提供了一种用电数据加密搜索方法,应用于如图7所示的应用环境中,其中,数据拥有者为智能电网系统的电网用户,数据使用者为电网查询者,数据拥有者分别通过网络与区块链智能合约、云服务器、数据使用者进行通信连接。
87.具体地,数据拥有者执行setup算法,输入安全参数λ,输出索引密钥msk和密文密钥sk。执行buildindex算法,输入索引密钥msk和用户数据集合d,输出得到可搜索加密索引e。执行enc算法,输入密文密钥sk和用户数据集合d,输出得到加密密文c。
88.数据拥有者将可搜索加密索引e上传至区块链智能合约进行存储,将加密密文发送至云服务器进行存储。
89.数据使用者根据目标搜索数据的数据标识生成查询请求,查询请求中携带有目标搜索数据的关键词w和数据使用者的用户标识。
90.数据接收者接收查询请求,获取查询请求的请求时间,将请求时间与预设查询结束时间进行比较,确定本次查询请求是否已经超出时间限制,若有,则结束本次搜索。
91.若没有,则获取查询请求中的用户标识与数据标识,根据用户标识与数据标识确定数据接收者是否有相应的搜索权限,若没有,则返回“无搜索权限”提示信息至数据使用者,结束本次搜索。若有,则根据查询请求生成目标搜索数据的搜索陷门,将搜索陷门发送至数据使用者。
92.数据使用者接收搜索陷门,将搜索陷门发送给区块链智能合约。区块链智能合约
根据搜索陷门得到密文列表,将密文列表发送给云服务器。云服务器根据密文列表查找得到目标搜索数据对应的加密密文,将加密密文返回给数据使用者,结束本次搜索。
93.本实施例中的用电数据加密搜索方法,实现了数据拥有者外包数据存储的隐私安全,同时为数据使用者提供了密文检索功能,基于区块链智能合约,实现了密文索引的完整性和可靠性,同时又可以防止恶意的云服务器返回数据使用者错误的查询结果。
94.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
95.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的用电数据加密搜索方法的用电数据加密搜索装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个用电数据加密搜索装置实施例中的具体限定可以参见上文中对于用电数据加密搜索方法的限定,在此不再赘述。
96.在一个实施例中,如图8所示,提供了一种用电数据加密搜索装置800,设置于数据拥有方,包括:索引与密文列表存储模块801、密文存储模块802、搜索陷门生成模块803和搜索陷门返回模块804,其中:索引与密文列表存储模块801,用于将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储。
97.密文存储模块802,用于将根据加密密钥与用电数据集合生成的加密密文发送至服务器进行存储。
98.搜索陷门生成模块803,用于将根据加密密钥与用电数据集合生成的加密密文发送至服务器进行存储。
99.搜索陷门返回模块804,用于将搜索陷门返回数据使用方,搜索陷门用于指示区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表,密文列表用于指示服务器查找目标加密密文。
100.上述用电数据加密搜索装置,根据索引密钥与用电数据集合生成可搜索加密索引,根据加密密钥与用电数据集合生成加密密文。将可搜索加密索引发送至区块链智能合约进行存储,加密密文发送至服务器进行存储。通过区块链智能合约实现可搜索加密索引的完整性、防篡改和可追溯性。接收数据使用方发送的查询请求,根据查询请求生成搜索陷门,将搜索陷门返回给数据使用方,区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表后,服务器根据密文列表查找得到目标加密密文。使用智能合约自动搜索可搜索加密索引,可以保证搜索结果的准确性,进而提升用电数据的可用性。
101.在一个实施例中,索引与密文列表存储模块还用于:对用电数据集合进行关键词提取,得到关键词集合;根据关键词集合与用电数据集合,生成各关键词对应的各数据标识集合,各数据标识集合中包含了各关键词对应用电数据的数据标识;根据索引密钥与各数据标识集合生成可搜索加密索引,以及与可搜索加密索引对应的密文列表;将可搜索加密
索引与密文列表发送至区块链智能合约进行存储。
102.在一个实施例中,用电数据加密搜索装置还包括:权限确定模块,用于根据查询请求确定数据使用方的用户标识,以及数据使用方请求查询的用电数据的数据标识;基于用户标识与数据标识,确定数据使用方是否具备数据查询权限;若数据使用方具备数据查询权限,则根据查询请求生成搜索陷门。
103.在一个实施例中,权限确定模块还用于:若数据使用方不具备数据查询权限,则生成提示信息返回至数据使用方,提示信息用于提示数据使用方无搜索权限。
104.在一个实施例中,用电数据加密搜索装置还包括:时限比较模块,用于获取接收到查询请求的请求时间;将请求时间与预设查询结束时间进行比较,若请求时间超过预设查询结束时间,则结束本次搜索操作。
105.在一个实施例中,如图9所示,提供了一种用电数据加密搜索装置900,设置于数据使用方,包括:请求发送模块901、搜索陷门接收模块902和密文接收模块903,其中:请求发送模块901,用于根据目标搜索数据的数据标识生成查询请求,将查询请求发送至数据拥有方。
106.搜索陷门接收模块902,用于接收数据拥有方返回的搜索陷门,将搜索陷门发送至区块链智能合约,搜索陷门用于指示区块链智能合约对可搜索加密索引进行搜索,得到密文列表。
107.密文接收模块903,用于接收服务器返回的目标加密密文,目标加密密文是服务器基于区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
108.上述用电数据加密搜索装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
109.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,也可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储索引密钥、用电数据集合等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种用电数据加密搜索方法。
110.本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
111.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储;将根据加密密钥与用电数据集合生成的加密密文发送至服务器进行存储;
接收数据使用方发送的查询请求,根据查询请求生成搜索陷门;将搜索陷门返回数据使用方,搜索陷门用于指示区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表,密文列表用于指示服务器查找目标加密密文。
112.在一个实施例中,处理器执行计算机程序时还实现以下步骤:对用电数据集合进行关键词提取,得到关键词集合;根据关键词集合与用电数据集合,生成各关键词对应的各数据标识集合,各数据标识集合中包含了各关键词对应用电数据的数据标识;根据索引密钥与各数据标识集合生成可搜索加密索引,以及与可搜索加密索引对应的密文列表;将可搜索加密索引与密文列表发送至区块链智能合约进行存储。
113.在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据查询请求确定数据使用方的用户标识,以及数据使用方请求查询的用电数据的数据标识;基于用户标识与数据标识,确定数据使用方是否具备数据查询权限;若数据使用方具备数据查询权限,则根据查询请求生成搜索陷门。
114.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若数据使用方不具备数据查询权限,则生成提示信息返回至数据使用方,提示信息用于提示数据使用方无搜索权限。
115.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取接收到查询请求的请求时间;将请求时间与预设查询结束时间进行比较,若请求时间超过预设查询结束时间,则结束本次搜索操作。
116.在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据目标搜索数据的数据标识生成查询请求,将查询请求发送至数据拥有方;接收数据拥有方返回的搜索陷门,将搜索陷门发送至区块链智能合约,搜索陷门用于指示区块链智能合约对可搜索加密索引进行搜索,得到密文列表;接收服务器返回的目标加密密文,目标加密密文是服务器基于区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
117.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储;将根据加密密钥与用电数据集合生成的加密密文发送至服务器进行存储;接收数据使用方发送的查询请求,根据查询请求生成搜索陷门;将搜索陷门返回数据使用方,搜索陷门用于指示区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表,密文列表用于指示服务器查找目标加密密文。
118.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对用电数据集合进行关键词提取,得到关键词集合;根据关键词集合与用电数据集合,生成各关键词对应的各数据标识集合,各数据
标识集合中包含了各关键词对应用电数据的数据标识;根据索引密钥与各数据标识集合生成可搜索加密索引,以及与可搜索加密索引对应的密文列表;将可搜索加密索引与密文列表发送至区块链智能合约进行存储。
119.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据查询请求确定数据使用方的用户标识,以及数据使用方请求查询的用电数据的数据标识;基于用户标识与数据标识,确定数据使用方是否具备数据查询权限;若数据使用方具备数据查询权限,则根据查询请求生成搜索陷门。
120.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若数据使用方不具备数据查询权限,则生成提示信息返回至数据使用方,提示信息用于提示数据使用方无搜索权限。
121.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取接收到查询请求的请求时间;将请求时间与预设查询结束时间进行比较,若请求时间超过预设查询结束时间,则结束本次搜索操作。
122.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据目标搜索数据的数据标识生成查询请求,将查询请求发送至数据拥有方;接收数据拥有方返回的搜索陷门,将搜索陷门发送至区块链智能合约,搜索陷门用于指示区块链智能合约对可搜索加密索引进行搜索,得到密文列表;接收服务器返回的目标加密密文,目标加密密文是服务器基于区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
123.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:将根据索引密钥与用电数据集合生成的可搜索加密索引,以及与可搜索加密索引对应的密文列表发送至区块链智能合约进行存储;将根据加密密钥与用电数据集合生成的加密密文发送至服务器进行存储;接收数据使用方发送的查询请求,根据查询请求生成搜索陷门;将搜索陷门返回数据使用方,搜索陷门用于指示区块链智能合约根据搜索陷门对可搜索加密索引进行搜索,得到密文列表,密文列表用于指示服务器查找目标加密密文。
124.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对用电数据集合进行关键词提取,得到关键词集合;根据关键词集合与用电数据集合,生成各关键词对应的各数据标识集合,各数据标识集合中包含了各关键词对应用电数据的数据标识;根据索引密钥与各数据标识集合生成可搜索加密索引,以及与可搜索加密索引对应的密文列表;将可搜索加密索引与密文列表发送至区块链智能合约进行存储。
125.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据查询请求确定数据使用方的用户标识,以及数据使用方请求查询的用电数据
的数据标识;基于用户标识与数据标识,确定数据使用方是否具备数据查询权限;若数据使用方具备数据查询权限,则根据查询请求生成搜索陷门。
126.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若数据使用方不具备数据查询权限,则生成提示信息返回至数据使用方,提示信息用于提示数据使用方无搜索权限。
127.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取接收到查询请求的请求时间;将请求时间与预设查询结束时间进行比较,若请求时间超过预设查询结束时间,则结束本次搜索操作。
128.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据目标搜索数据的数据标识生成查询请求,将查询请求发送至数据拥有方;接收数据拥有方返回的搜索陷门,将搜索陷门发送至区块链智能合约,搜索陷门用于指示区块链智能合约对可搜索加密索引进行搜索,得到密文列表;接收服务器返回的目标加密密文,目标加密密文是服务器基于区块链智能合约反馈的密文列表对各加密密文进行查找得到的。
129.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
130.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
131.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
132.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员
来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1