CN109766707B - 基于区块链的数据处理方法、装置、设备和介质 - Google Patents

基于区块链的数据处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN109766707B
CN109766707B CN201910045588.5A CN201910045588A CN109766707B CN 109766707 B CN109766707 B CN 109766707B CN 201910045588 A CN201910045588 A CN 201910045588A CN 109766707 B CN109766707 B CN 109766707B
Authority
CN
China
Prior art keywords
search
file
keyword
chain
data processing
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
CN201910045588.5A
Other languages
English (en)
Other versions
CN109766707A (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.)
Southwest University of Science and Technology
Original Assignee
Southwest University of Science and Technology
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 Southwest University of Science and Technology filed Critical Southwest University of Science and Technology
Priority to CN201910045588.5A priority Critical patent/CN109766707B/zh
Publication of CN109766707A publication Critical patent/CN109766707A/zh
Application granted granted Critical
Publication of CN109766707B publication Critical patent/CN109766707B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于区块链的数据处理方法、装置、设备和存储介质。其中,该方法包括:确定文件信息和文件的关键词集合,生成所述关键词集合中各关键词的搜索令牌;根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求,并向区块链网络发送所述链上数据处理请求,由区块链网络处理所述链上数据处理请求,并将得到的所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。能够有效的避免基于中心化的存储加密搜索技术,平台容易受到恶意攻击,数据安全和用户隐私无法有效保障的问题,提高了数据存储加密搜索的安全性。

Description

基于区块链的数据处理方法、装置、设备和介质
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种基于区块链的数据处理方法、装置、设备和存储介质。
背景技术
近年来,科研领域针对云存储***做了非常多的尝试与探索。针对中心化存储产生了存储加密搜索技术,旨在通过建立的安全的搜索索引及合理的加密方法以保护用户的隐私与安全。
目前,常用的基于中心化的存储加密搜索技术通常是基于对称可搜索加密(Symmetric Searchable Encryption,SSE)技术,通过提取关键词,对关键词进行加密后建立安全索引的方式,在***漏文件信息的前提下对文件进行搜索。
但是,基于中心化的存储加密搜索技术,虽然可以实现对存储的数据进行加密搜索,但是中心化存储方式存储平台容易收到恶意攻击,数据安全和用户隐私无法有效的保障,亟需改进。
发明内容
本发明实施例提供一种基于区块链的数据处理方法、装置、设备和存储介质,以提升数据存储和加密搜索的安全性。
第一方面,本发明实施例提供了一种基于区块链的数据处理方法,由客户端执行,该方法包括:
确定文件信息和文件的关键词集合,生成所述关键词集合中各关键词的搜索令牌;
根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求,并向区块链网络发送所述链上数据处理请求,由区块链网络处理所述链上数据处理请求,并将得到的所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
第二方面,本发明实施例提供了一种基于区块链的数据处理方法,由区块链节点执行,该方法包括:
接收客户端发送的链上数据处理请求,其中所述链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,所述搜索令牌是根据文件的关键词集合生成的;
处理所述链上数据处理请求,并根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
第三方面,本发明实施例还提供了一种基于区块链的数据处理装置,所述装置配置于客户端中,该装置包括:
搜索令牌生成模块,用于确定文件信息和文件的关键词集合,生成所述关键词集合中各关键词的搜索令牌;
处理请求生成模块,用于根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求;
处理请求发送模块,用于向区块链网络发送所述链上数据处理请求,由区块链网络处理所述链上数据处理请求,并将得到的所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
第四方面,本发明实施例还提供了一种基于区块链的数据处理装置,所述装置配置于区块链节点中,该装置包括:
处理请求接收模块,用于接收客户端发送的链上数据处理请求,其中所述链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,所述搜索令牌是根据文件的关键词集合生成的;
处理请求处理模块,用于处理所述链上数据处理请求,并根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
第五方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面或第二方面中任意所述的基于区块链的数据处理方法。
第六方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面或第二方面中任意所述的基于区块链的数据处理方法。
本发明实施例的技术方案,客户端根据确定的文件的关键词集合生成各关键词的搜索令牌,与确定的文件信息一并生成链上数据处理请求,发送至区块链网络。以使区块链网络执行该链上数据处理请求,并将文件信息和关键词之间的索引关系存储在区块链中。本发明基于区块链的存储加密搜索技术,很好的避免了存储平台容易受到恶意攻击,数据安全和用户隐私无法有效保障的问题,提高了数据存储加密搜索的安全性。
附图说明
图1是本发明实施例一提供的一种基于区块链的数据处理方法的流程图;
图2是本发明实施例二提供的一种基于区块链的数据处理方法的流程图;
图3是本发明实施例三提供的一种基于区块链的数据处理方法的流程图;
图4是本发明实施例四提供的一种基于区块链的数据处理方法的流程图;
图5A是本发明实施例五提供的一种基于区块链的数据处理方法的流程图;
图5B-5C是本发明实施例五提供的搜索令牌比对次数对比示意图;
图6是本发明实施例六提供的一种基于区块链的数据处理的信令图;
图7是本发明实施例七提供的一种基于区块链的数据处理装置的结构示意图;
图8是本发明实施例八提供的一种基于区块链的数据处理装置的结构示意图;
图9本发明实施例九中提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种基于区块链的数据处理方法的流程图,本实施例可适用于基于客户端和区块链的交互,对文件和文件中关键词的之间的索引关系进行加密的存储的情况,该方法可以由本发明实施例提供的配置在客户端上的基于区块链的数据处理装置来执行,该装置可采用硬件和/或软件的方式实现。如图1所示,具体包括如下步骤:
S101,确定文件信息和文件的关键词集合,生成关键词集合中各关键词的搜索令牌。
其中,文件信息是待上传到存储端的文件或存储端中已存储的文件的信息,可以包括文件的标识信息和文件的存储信息,具体的,文件的标识信息可以是文件的名称、序号或拼音简码等,所述文件的存储信息可以包括文件的统一标识(Uniform ResourceLocator,URL)、存储格式、大小等。文件的关键词集合可以是待上传到存储端的文件的关键词组成的集合,或存储端中已存储的文件要新添加的关键词组成的集合。关键词的搜索令牌可以是对关键词按照一定的加密算法得到的该关键词对应的令牌,基于加密后的搜索令牌实现加密搜索技术。
需要说明的是,在本发明实施例中,确定文件信息和文件的关键词集合对应有两种不同的场景。第一种场景是用户上传新文件,此时确定文件信息的过程可以是:客户端自动提取该文件的标识信息,而文件的存储信息可以是客户端将文件发送至存储端,存储端对上传文件存储后反馈给客户端的该文件的存储信息,客户端根据提取的文件的标识信息和接收的文件的存储信息确定文件信息;确定文件的关键词集合的过程可以是:客户端对上传文件的内容进行分析后自动提取出该上传文件的关键词组成关键集合;也可以是用户自己确定上传文件的关键词组成关键集合;还可以是用户从客户端提取的上传文件的关键词中筛选出若干关键词组成关键词集合。可选的,若客户端自动提取该新文件的关键词集合,则可以是采用预设的关键词提取算法(如TF-IDF关键词提取方法、Topic-model关键词提取方法和RAKE关键词提取等)对上传文件的内容进行分析后确定该文件的关键词,组成文件关键词集合;也可以是将上传文件输入预先训练好的关键词提取模型,该关键词提取模型基于训练算法对上传文件分析后输出上传文件的关键词集合。对此本发明实施例不进行限定。
第二种场景是用户为某个已存文件添加新的关键词,则此时确定文件信息的过程可以是用户在客户端选择要添加关键词的文件后,客户端即获取该文件的文件信息;确定关键词集合的过程可以是获取用户要添加的关键词,构成文件的关键词集合,此时文件的关键词集合为该文件新增关键词集合。
可选的,在本发明实施例中,生成关键词集合中各关键词的搜索令牌的方式可以采用任何一种对关键词进行加密的算法,对关键词进行加密后得到的该关键词的搜索令牌,对此,本发明实施例对具体的加密算法不进行限定。例如,可以是调用信息摘要算法(
Figure BDA0001949043590000061
算法)计算关键词的搜索令牌,具体计算公式如下:
Figure BDA0001949043590000062
其中,Wi为关键词集合中第i个关键词;
Figure BDA0001949043590000063
为第i个关键词的搜索令牌;key2为计算搜索令牌使用的令牌密钥;HMAC为信息摘要算法,该算法是一种与密钥相关的哈希算法,该算法以一个密钥和一个消息为输入,生成一个信息摘要作为输出(即搜索令牌)。需要说明的计算搜索令牌使用的令牌密钥key2可以是在客户端初始化工作时生成的,对关键词集合中的各关键词对应的令牌密钥可以相同,也可以不同。
示例性的,对关键词集合中的每一个关键词都按照预设的加密算法生成各关键词的搜索令牌。
S102,根据文件信息和各关键词的搜索令牌生成链上数据处理请求,并向区块链网络发送链上数据处理请求,由区块链网络处理链上数据处理请求,并将得到的文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
其中,链上数据处理请求可以是客户端按照预设的链上数据处理请求生成算法生成的事务处理请求,该算法可以是建立文件信息和各关键词搜索令牌的索引关系,例如可以是建立{文件信息:关键词的搜索令牌}格式的索引关系,该索引关系表明关键词的索引令牌与文件信息的对应关系。生成的链上数据处理请求可以是请求区块链网络中的当前区块生成节点对其中包含的数据进行处理,得到文件信息和关键词之间的索引关系,如可以是文件信息和各关键词搜索令牌的索引关系,并将得到的索引关系按照预设的格式存储在区块链网络中。
可选的,为了提高加密搜索效率和加密搜索的安全性,本发明实施例中客户端在根据文件信息和各关键词的搜索令牌生成链上数据处理请求时,可以是对关键词的搜索令牌处理后,针对文件信息和每一个关键词都建立文件信息和关键词之间的索引关系,进而使得生成的链上数据处理请求中包括文件信息与每一个关键词之间的多个维度的索引关系。
可选的,在本发明实施例中,客户端生成链上数据处理请求后,会向区块链网络发送生成的链上数据处理请求,区块链网络的当前区块生成节点接收到该链上数据处理请求后,会对该链上数据处理请求进行处理,将得到文件信息和关键词之间的至少一个维度的索引关系(即处理链上数据处理请求得到的事务数据),并将各索引关系按照预设存储规则存储在区块链中。其中处理链上数据处理请求以及在区块链中存储索引关系可以是基于区块链中的智能合约来执行。
需要说明的是本发明实施例中的客户端可以是区块链网络中的一个节点,也可以是通过客户端调用网页、平台或应用程序等可参与到区块链中的节点。
本实施例提供的基于区块链的数据处理方法,客户端根据确定的文件的关键词集合生成各关键词的搜索令牌,与确定的文件信息一并生成链上数据处理请求,发送至区块链网络。以使区块链网络执行该链上数据处理请求,并将文件信息和关键词之间的索引关系存储在区块链中。本发明基于区块链的存储加密搜索技术,很好的避免了存储平台容易受到恶意攻击,数据安全和用户隐私无法有效保障的问题,提高了数据存储加密搜索的安全性。
实施例二
图2为本发明实施例二提供的一种基于区块链的数据处理方法的流程图。该方法可以由客户端执行,本实施例在上述实施例的基础上,进行了进一步的优化,具体给出根据文件信息和各关键词的搜索令牌生成链上数据处理请求的具体情况介绍。参见图2,该方法具体包括:
S201,确定文件信息和文件的关键词集合,生成关键词集合中各关键词的搜索令牌。
S202,根据各关键词的搜索令牌,确定文件的动态累加值。
其中,文件的动态累加值可以是基于动态累加器对各关键词的搜索令牌按照一定的加密算法进行累加操作后得到累加值。需要说明的是当文件对应的关键词发生变化后,该文件的动态累加值也相应的增加或减少。
可选的,在本发明实施例中,根据各关键词的搜索令牌,确定文件的动态累加值的过程可以是根据各关键词的搜索令牌、累加器密钥以及文件的历史动态累加值,确定文件的最新动态累加值。
其中,累加器密钥可以是客户端预先生成的(如可以是在客户端初始化时生成的),该密钥可以是动态累加器所需的一组密钥,如可以是puda=(puda-pk,puda-sk),其中puda-pk是动态累加器的公钥,puda-sk是动态累加器的私钥。文件的历史动态累加值可以是针对该文件最近一次计算确定的动态累加值。当文件的关键词变化时,文件的动态累加值也会发生变化,因此在用户为某个已存文件新增关键词时,该文件之前已经确定过动态累加值,则将该文件最近一次计算得到的动态累加值作为该文件的历史动态累加值。
具体的,可以是将各关键词的搜索令牌、累加器密钥以及文件的历史动态累加值作为累加算法的输入,该累加算法通过运算确定文件的动态累加值。需要说明的是,各关键词的搜索令牌指的是S201中确定的文件关键词集合中的各关键词的搜索令牌,若文件为新增文件,则该关键词集合可以是根据新增文件内容确定出的关键词的集合;若文件为已存文件,则该关键词集合是本次用户想要为已存文件新增加的关键词,不包括已存文件已有的关键词。文件的历史动态累加值并不是所有文件的都有的,只有已存文件存在历史动态累加值,新增文件还没确定文件的动态累加值。因此,对于上传的新增文件,在按照累加算法确定文件动态累加值时可忽略历史动态累加值这一参数。
可选的,为了针对不同的文件类型(新增文件和已存文件),快速准确的算出其对应的动态累加值,可以是针对不同的文件类型,采用不同的累加算法来确定文件的动态累加值,例如,可以是:
若文件是客户端上传的新增文件,则客户端可以是根据累加器密钥、各关键词的搜索令牌,调用AccVal算法按照公式
Figure BDA0001949043590000101
对各关键词的搜索令牌根据累加器密钥进行累加计算,生成该新增文件的动态累加值。其中,v是动态累加器的累加值;ac和Ai是一组辅助信息;
Figure BDA0001949043590000102
为第i个关键词的搜索令牌;Puda是动态累加器执行累加计算时所需的一对密钥,即累加器密钥;AccVal算法可以是基于动态累加器对新增文件执行累加计算的算法。
若文件是客户端以前已经上传过的已存文件,则客户端可以是根据累加器密钥、该已存文件的历史动态累加值和各关键词的搜索令牌,调用AddEle算法按照公式
Figure BDA0001949043590000103
对各关键词的搜索令牌根据累加器密钥和历史动态累加值进行累加计算,生成该已存文件的最新动态累加值。其中,v是动态累加器的累加值;ac和Ai是一组辅助信息;
Figure BDA0001949043590000104
为第i个关键词的搜索令牌,Puda是累加器密钥;v'是该已存文件的历史动态累加值;AddEle算法可以是基于动态累加器对已存文件执行累加计算的算法。
S203,根据各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合。
其中,搜索令牌的见证值可以是对关键词的搜索令牌,再按照预设的加密算法得到的可以认证搜索令牌的证明值。见证值集合可以是由至少一个见证值组成的集合。
可选的,在本发明实施例中,根据各关键词的搜索令牌,确定各搜索令牌的见证值可以是:调用概率多项式算法(WitGen算法),该算法可生成各搜索令牌对应的见证值,该算法的输入为计算文件动态累加值时得到的一组辅助信息ac、Ai以及累加器密钥Puda,输出与确定文件动态累加值时输入的各搜索令牌相对应的各搜索令牌的见证值。具体的,可以按照公式X=WitGen(ac,Ai,Puda),确定各搜索令牌的见证值。其中ac和Ai是计算文件动态累加值时得到的一组辅助信息;Puda是累加器密钥;X是各搜索令牌的见证值的集合。
可选的,本实施例中可以是直接将WitGen算法计算出各搜索令牌的见证值的集合作为见证值集合;也可以是对WitGen算法计算出的各搜索令牌的见证值进行删选后,将删选后的各见证值组成的集合确定见证值集合。具体的,可以是:根据各关键词的搜索令牌,确定各搜索令牌的见证值后,判断各关键词搜索令牌是否属于历史搜索令牌集合,若各关键词的搜索令牌中存在属于历史搜索令牌集合的搜索令牌,则将该搜索令牌的见证值添加到见证值集合中。
其中,历史搜索令牌集合可以是用户通过客户端搜索文件时,输入过的搜索关键词的搜索令牌的集合。本发明实施例对关键词搜索令牌是否是之前搜索过的关键词的搜索令牌进行判断,将之前搜索过的关键词的搜索令牌的见证值添加到见证值集合,从而使得见证值集合为用户之前搜索过的,提高了见证值集合的有效性,以便后续快速准确的为用户查找到搜索关键词对应的文件。
S204,生成包括文件信息,文件的动态累加值和见证值集合的链上数据处理请求。
可选的,由于本实施例增加了生成链上数据请求的参数维度,因此,确定出的链上数据处理请求中可以建立多条关键词和文件信息之间的搜索关系,例如,可以建立文件信息和该文件的动态累加值之间的索引关系,也可以是建立文件信息与各见证值之间的索引关系,还可以是建立文件信息、该文件的动态累加值以及各见证值集合之间的索引关系等。
可选的,本实施例中,生成包括文件信息、文件的动态累加值和见证值集合的链上数据处理请求时,可以是调用链上数据处理请求生成算法(即Transadd算法)按照公式Transadd(ID(f),v,X,URL)来生成包括文件信息、文件的动态累加值和见证值集合的链上数据处理请求。其中,ID(f)为文件f的文件信息,URL为文件存储位置的链接,v为文件的动态累加器的累加值,X为见证值集合。
S205,向区块链网络发送链上数据处理请求,由区块链网络处理链上数据处理请求,并将得到的文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
示例性的,由于本申请的链上数据处理请求是通过多维度的参数生成的,处理该请求得到的事务数据可能存在多种文件信息和关键词之间的索引关系,在存储各文件信息与关键词之间的索引关系时,可以是将不同的索引关系按照不同的方式进行存储。例如,可以是将文件信息和见证值集合之间的索引关系写入倒排索引,并存储在区块链中,将文件信息和动态累加值之间的索引关系写入正排索引,并存储在区块链中。以便后续用户通过客户端查找文件时,通过不同的索引关系进行查找,提高了查找效率和准确性。
本实施例提供的基于区块链的数据处理方法,在根据确定的各关键词的搜索令牌和确定的文件信息生成链上数据处理请求时,对关键词的搜索令牌进一步的计算,确定出文件的动态累加值和搜索令牌的见证值集合,生成包括文件信息,文件的动态累加值和见证值集合的链上数据处理请求,发送至区块链网络,以使区块链网络执行该链上数据处理请求,并将文件信息和关键词之间的索引关系存储在区块链中。通过增加文件信息和关键词之间的索引关系的维度,提高了索引关系的精确度,在后续进行文件查找时提高了查找效率和准确性。
实施例三
图3为本发明实施例三提供的一种基于区块链的数据处理方法的流程图。该方法可以由客户端执行,本实施例在上述各实施例的基础上,提供了用户通过在客户端输入搜索关键词,查找所需文件的具体方案介绍。参见图3,该方法具体包括:
S301,确定文件信息和文件的关键词集合,生成关键词集合中各关键词的搜索令牌。
S302,根据文件信息和各关键词的搜索令牌生成链上数据处理请求,并向区块链网络发送链上数据处理请求,由区块链网络处理链上数据处理请求,并将得到的文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
S303,接收用户输入的搜索关键词,生成搜索关键词的搜索令牌。
其中,搜索关键词可以是用户在客户端上输入的,该关键词可以是用户想要查找的文件的关键词。用户可以通过手动输入、语音输入、在客户端提供的关键词集合中选择等方式输入搜索关键词。
示例性的,客户端接收到用户输入的搜索关键词后,按照预设的加密算法生成搜索关键词的搜索令牌。其中,生成搜索关键词的搜索令牌的过程可以与本发明各实施例中生成关键词集合中各关键词的搜索令牌的方式一样,通过调用信息摘要算法(
Figure BDA0001949043590000131
算法)计算搜索关键词的搜索令牌,对此不实施例不在赘述。
可选的,客户端在接收用户输入的搜索关键词之后,还包括:判断历史搜索令牌集合中是否存在本次用户输入的搜索关键词的搜索令牌,若不存在,则将该搜索令牌添加到历史搜索令牌集合中,历史搜索令牌集合用于在生成链上数据处理请求时,确定见证值集合。对于用户每一次的搜索更新历史搜索令牌集合,提高了历史搜索令牌集合的时效性,进而保证了见证值集合确定的准确性。
S304,确定搜索关键词的搜索令牌的见证值,根据搜索关键词的搜索令牌和搜索令牌的见证值生成链上文件查询请求,并向区块链网络发送链上文件查询请求,链上文件查询请求用于从区块链网络中查询搜索关键词对应的文件信息。
示例性的,本实施例中确定搜索关键词的搜索令牌的见证值的方式可以与本发明各实施例中在生成链上数据处理请求时根据关键词的搜索令牌,确定搜索令牌的见证值的方式一样,通过调用WitGen算法计算搜索令牌的见证值,本步骤对此不在进行赘述。可选的,由于历史搜索令牌集合对应的见证值集合中已经存储有历史搜索过的关键词的搜索令牌的见证值,因此,可以是先判断用户本次输入的搜索关键词的搜索令牌是否属于历史搜索令牌集合,若是,直接从见证值集合中获取该历史搜索令牌的见证值,无需再调用见证值计算函数来根据搜索关键词的搜索令牌计算对应的见证值,提高了搜索关键词的搜索令牌的见证值的确定效率。
示例性的,本发明实施例中,根据搜索关键词的搜索令牌和搜索令牌的见证值生成链上文件查询请求,可以是调用链上文件查询请求生成算法,将搜索关键词的搜索令牌和搜索令牌的见证值作为该算法的输入,既可以生成对应的链上文件查询请求。
可选的,为了提高链上文件查询请求的安全性,防止生成的链上文件查询请求被恶意篡改,在生成链上文件查询请求时,可以根据搜索关键词的搜索令牌、搜索令牌的见证值以及累加器密钥生成链上文件查询请求。具体的,可以是调用链上文件查询请求生成算法(即Transsearch算法)按照公式
Figure BDA0001949043590000151
将搜索关键词的搜索令牌、搜索令牌的见证值以及累加器公钥作为算法的输入,来生成链上文件查询请求。其中,
Figure BDA0001949043590000152
为搜索关键词的搜索令牌;witnessi为搜索令牌的见证值;puda-pk是动态累加器的公钥;Transsearch是生成的链上文件查询请求。
可选的,客户端生成链上文件查询请求后,会向区块链网络发送生成的链上文件查询请求,区块链网络的当前区块生成节点接收到该链上文件查询请求后,会对该链上文件查询请求进行处理,得到本次查找的搜索关键词的搜索令牌、搜索令牌的见证值以及累加器的公钥,从区块链网络存储的索引表中查询与搜索关键词的搜索令牌或搜索令牌的见证值匹配,且累加器的公钥验证成功的文件信息,查找到后将查找成功的文件信息反馈给客户端。
S305,接收区块链网络反馈的文件信息,根据文件信息,在预设存储单元中获取搜索关键词对应的查询文件展示给用户。
示例性的,客户端接收到区块链网络反馈的文件信息后,从文件信息中获取文件的标识信息和文件的存储信息,然后基于文件的标识信息和文件的存储信息在预设存储单元中查找该存储信息处具有该文件标识信息的文件作为搜索关键词对应的查询文件,将该查询文件展示给用户。
示例性的,在将查询文件展示给用户时,可以是将该文件的具体内容以文件原有的格式展示给用户,供用户进行查看。可选的,查找搜索关键词对应的文件时,可能出现用户输入的关键词对应多个查询文件,当搜索关键词对应的查询文件较多时,也可以是先将各文件的名称、摘要、作者信息等以展示给用户,以供用户在其中进行选择,选出要进行查看的目标文件,然后再将该文件的具体内容以该文件原有的格式展示给用户。
本实施例提供的基于区块链的数据处理方法,在区块链中存储了索引关系后,用户端可基于用户输入的搜索关键词,生成搜索令牌以及搜索令牌的见证值,进而生成链上文件查询请求,以请求区块链查找搜索关键词对应的文件信息。实现了将加密搜索技术运用到区块链网络中,在保证可进行加密搜索的同时,提高了数据的安全性。
实施例四
图4为本发明实施例四提供的一种基于区块链的数据处理方法的流程图,本实施例可适用于基于客户端和区块链的交互,对文件和文件中关键词的之间的索引关系进行加密的存储的情况,该方法可以由本发明实施例提供的配置在区块链节点上的基于区块链的数据处理装置来执行,例如,可以是配置在区块链的当前区块生成节点上的基于区块链的数据处理装置来执行。该装置可采用硬件和/或软件的方式实现。如图4所示,具体包括如下步骤:
S401,接收客户端发送的链上数据处理请求,其中链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,搜索令牌是根据文件的关键词集合生成的。
示例性的,客户端向区块链网络发送链上数据处理请求后,区块链的当前区块生成节点接收该链上数据处理请求。其中,区块链节点可以是区块链网络中的当前区块生成节点。区块链节点接收的链上数据处理请求是客户端根据文件信息和各关键词的搜索令牌生成的,而搜索令牌是客户端根据文件的关键词集合生成的。
可选的,为了提高数据存储精度,链上数据处理请求还可以是根据文件信息、文件的动态累加值和见证值集合生成的,文件的动态累加值可以是根据各关键词的搜索令牌确定的;见证值集合是根据各关键词的搜索令牌确定的各搜索令牌的见证值形成的集合。
S402,处理链上数据处理请求,并根据处理结果将文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
示例性的,区块链的当前区块生成节点处理链上数据处理请求的过程可以是:按照智能合约进行处理,提取到文件信息与关键词之间的索引关系存储在区块链中。例如,可以是对链上数据处理请求进行处理,提取出文件信息与各关键词的搜索令牌之间的索引关系,并将提取到的文件信息与各关键词的搜索令牌之间的索引关系存储在区块链中。可选的,文件信息与各关键词之间的索引关系可以是存储在一个区块中,也可以是存储在不同的区块中,对此本发明实施例不进行限定。
可选的,当链上数据处理请求是根据文件信息、文件的动态累加值和见证值集合生成的,则区块链的当前区块生成节点处理链上数据处理请求的过程可以是:按照智能合约进行处理,提取到文件信息和见证值集合之间的索引关系以及文件信息和动态累加值之间的索引关系。此时根据处理结果将文件信息和关键词之间的索引关系作为事务数据存储到区块链中,包括:
根据处理结果将文件信息和见证值集合之间的索引关系作为事务数据,写入倒排索引,并将倒排索引存储在区块链中,所述见证值集合是根据各关键词的搜索令牌确定的各搜索令牌的见证值形成的集合;根据处理结果将所述文件信息和动态累加值之间的索引关系作为事务数据,写入正排索引,并将正排索引存储在区块链中,所述动态累加值是根据各关键词的搜索令牌确定的。
其中,倒排索引对应的索引表中包括各关键词的搜索令牌的见证值和该见证值对应的关键词所属文件的文件信息(包括文件的存储信息和文件的标识信息)。该倒序索引中是根据关键词的搜索令牌的见证值,来确定该见证值对应的关键词所属文件的文件信息。在将文件信息和见证值集合之间的索引关系写入倒排索引时,可以是按照倒排索引的格式进行写入,例如可以是{witnessi:ID(f)}其中,witnessi为第i个关键词的搜索令牌的见证值,ID(f)为文件f的文件信息。正排索引对应的索引表包括:文件信息和文件的动态累加值。该正排索引是通过文件信息确定其对应的文件的动态累加值。在将文件信息和动态累加值之间的索引关系写入正排索引时,可以是按照正排索引的格式进行写入,例如,可以是{ID(f:v)},其中,ID是文件信息,f是文件标识,v是文件的动态累加值。
可选的,在处理S401接收到的链上数据处理请求之前,可以先对接收到的链上数据处理请求进行验证,成功后再进行处理。具体的,在验证接收到的链上数据处理请求时,可以是对链上数据处理请求中的请求内容进行验证;也可以是对链上数据处理请求的发送方的身份进行验证等。在验证链上数据处理请求时,可以是基于智能合约中的规定进行验证,还可以是通过密钥进行验证等。对此本发明实施例不进行限定。
本发明实施例提供的基于区块链的数据处理方法,通过处理接收到的链上数据处理请求,对链上数据处理请求进行处理后,根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。基于区块链的存储加密搜索技术,很好的避免了存储平台容易受到恶意攻击,数据安全和用户隐私无法有效保障的问题,提高了数据存储加密搜索的安全性。
实施例五
图5A为本发明实施例五提供的一种基于区块链的数据处理方法的流程图。该方法由区块链节点执行。本实施例在上述各实施例的基础上,提供了接收用客户端发送的链上文件查询请求,查找客户端所需文件的具体方案介绍。参见图5A,该方法具体包括:
S501,接收客户端发送的链上数据处理请求,其中链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,搜索令牌是根据文件的关键词集合生成的。
S502,处理链上数据处理请求,并根据处理结果将文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
S503,接收客户端发送的链上文件查询请求,其中链上文件查询请求是根据搜索关键词的搜索令牌和搜索令牌的见证值生成的,搜索关键词的搜索令牌是根据用户输入的搜索关键词生成的;搜索令牌的见证值是根据搜索关键词的搜索令牌生成的。
示例性的,客户端基于用户输入的搜索关键词,向区块链网络发送链上文件查询请求后,区块链节点接收该链上文件查询请求,其中,区块链节点可以是区块链网络中的当前区块生成节点。区块链节点接收的链上文件查询请求是根据搜索关键词的搜索令牌和该搜索令牌的见证值生成的,该搜索关键词的搜索令牌是根据用户输入的搜索关键词生成的;该搜索令牌的见证值是根据搜索关键词的搜索令牌生成的。
可选的,为了提高链上文件查询请求的安全性,防止生成的链上文件查询请求被恶意篡改,链上文件查询请求可以是根据搜索关键词的搜索令牌、搜索令牌的见证值以及累加器密钥生成的。其中,累加器密钥用于验证搜索令牌的见证值的准确性。
S504,处理链上文件查询请求,并根据处理结果将搜索关键词对应的文件信息反馈给客户端。
示例性的,区块链节点处理链上文件查询请求的过程可以是:按照智能合约进行处理,提取出该链上文件查询请求中的搜索关键词的搜索令牌、该搜索令牌的见证值,在区块链中存储的文件信息和关键词之间的正排索引和倒排索引中,查询到与查询请求中的搜索关键词对应的文本信息反馈给客户端。可选的,若链上文件查询请求中包括累加器密钥,则需要提取该该累加器密钥,先通过累加器的密钥对搜索令牌的见证值进行验证,验证成功后,再进行文本信息的查找。
具体的,由于S502处理链上数据处理请求后,将文件信息和见证值集合之间的索引关系写入倒排索引中,将所述文件信息和动态累加值之间的索引关系写入正排索引中,所以此时处理接收到的链上文件查询请求可以是:
先从区块链中存储的倒排索引中查询链上文件查询请求中的搜索关键词的搜索令牌的见证值;获取倒排索引中所述搜索令牌的见证值对应的文件信息作为处理结果。例如,可以是先在倒排索引中快速查找,查找倒排索引中的每一项,看是否存在从链上文件查询请求中提取的搜索关键词的搜索令牌的见证值,若存在,则将该搜索令牌的见证值对应的文件信息作为处理结果。
若区块链中存储的倒排索引中查询不到所述链上文件查询请求中的搜索关键词的搜索令牌,则根据区块链中存储的正排索引中各文本信息对应文本的动态累加值、所述链上文件查询请求中的搜索关键词的搜索令牌以及所述搜索令牌的见证值,确定与所述搜索关键词匹配的文本信息作为处理结果。
例如,若在倒排索引中没有找到本次搜索关键词的搜索令牌的见证值,则说明本次的搜索关键词是新的搜索关键词,之前用户没有搜索过,此时再基于正排索引去查找。具体的,可以是遍历正排索引中各文件信息的动态累加值,调用匹配判断算法(即Verify算法),将各文件信息的动态累加值、从链上文件查询请求中提取出的搜索关键词的搜索令以及搜索令牌的见证值作为参数,输入到Verify算法中,该算法即可进行本次输入的动态累加值对应的文件信息是否与搜索关键词匹配的判断,从而确定出与本次搜索关键词匹配的文本信息作为处理结果。
本发明实施例的方案在引入动态累加器算法对加密搜索方案进行改进后,将加密搜索的空间复杂度进一步降低,显著提升加密搜索效率。其原因如下:在现有方案(如CCS'14Hahn)中,每次搜索将对正排索引和倒排索引进行遍历。尤其是在正排索引中,每一行的都是以
Figure BDA0001949043590000211
这种形式存在,其中,ID(f)为文件f的文件信息;S1为随机数1;
Figure BDA0001949043590000212
为第一个关键词的搜索令牌;
Figure BDA0001949043590000213
为通过随机数按照HMAC算法对
Figure BDA0001949043590000214
的加密值;Sn为随机数n;
Figure BDA0001949043590000215
为第n个关键词的搜索令牌;
Figure BDA0001949043590000216
为通过随机数按照HMAC算法对
Figure BDA0001949043590000217
的加密值。当服务器端接收到搜索令牌后,每一行都需要进行n次的搜索令牌运算(假设平均每个文件拥有n个关键词),若当前正排索引中存在m个文件,则正排索引中执行一次搜索需要O(n)=m*n次比对。在本发明中,由于动态累加器算法的引入,在正排索引中的每一行将以{ID(f):v}这种聚合值的形态出现,在进行一次搜索时,每一行仅需要进行一次校验操作验证搜索关键词的搜索令牌的见证值是否在文件的动态累加值中存在。因此,在对m个文件进行关键字搜索时,仅需要比对O(n)=m次。如图5B和5C所示,给定文件的平均关键词越多时,本发明的搜索效率越高。同理,若给定文件的关键词数量一定,文件数量越大,本发明的搜索效率优势越明显。
本发明实施例提供的基于区块链的数据处理方法,在接收到客户端发送的链上文件查询请求后,对查询请求进行处理,基于倒排索引和正排索引两种方式相配合,确定搜索关键词对应的文件信息。在提高数据安全性的同时,极大的改善了加密搜索的效率。
实施例六
图6为本发明实施例六提供的一种基于区块链的数据处理方法的信令图。本实施例在上述各实施例的基础上,提供了一个优选施例。该方法由区块链节点、客户端和存储端三端交互执行。
其中,区块链网络主要是基于智能合约技术,在区块链中建立起基于加密搜索技术的索引。可以是每个用户拥有一个正排索引和一个倒排索引,也可以是所有的用户拥有一个正排索引和一个倒排索引。其中正排索引中主要存储的是文件信息和文件的动态累加值之间的索引关系,倒排索引中主要存储的是文件信息和见证值集合之间的索引关系。区块链网络与客户端进行交互建立索引以及配合完成加密搜索功能。客户端负责对数据进行加密,其中包括:对上传的原始文件进行加密、对关键词进行加密生成搜索令牌、将文件的各关键词的搜索令牌加密得到文件的动态累加值(该动态累加值可以添加及删除)以及生成搜索令牌的见证值等相关操作。存储端可以是用来存储用户上传文件的存储器,其可以是客户端内存中的预设存储空间,也可以是第三方存储器(如可以是第三方数据库、服务器、存储卡等)。
参见图6,该方法具体包括:
S601,客户端进行初始化操作。
示例性的,本发明实施例中,客户端进行初始化操作可以是用户触发在客户端本地调用初始化算法(如SetUp算法)就会生成初始化所需的密钥,可选的,初始化所需的密钥可以包括:加密上传文件的文件密钥(key1)、生成关键词搜索令牌的令牌密钥(key2),以及动态累加器的一组密钥puda=(puda-pk,puda-sk),其中,puda-pk是动态累加器的公钥,puda-sk是动态累加器的私钥。
可选的,客户端在为用户提供存储加密搜索功能时,可以是所有的用户资源和搜索共享,此时可以是在客户端首次执行初始化操作时,初始化两个空集合,一个是历史搜索令牌集合,还有一个是见证值集合。客户端在为用户提供存储加密搜索功能时,也可以是每一个用户有自己的账户,用户只可以对自己存储的文件进行加密搜索,此时可以是任一用户在客户端首次操作时,初始化两个空集合,一个是历史搜索令牌集合,还有一个是见证值集合。
S602,客户端接收到用户上传的文件。
示例性的,当用户需要在存储方存储文件时,可以是用户将要上传的文件备份到客户端上,则客户端就接收到了用户上传的文件;也可以是用户将要上传的文件备份到客户端上之后,触发客户端上的上传或存储按键,此时客户端才接收到用户上传的文件。
S603,客户端使用文件密钥对上传文件进行加密。
示例性的,客户端可以是通过S601初始化得到的文件密钥对用户上传的文件进行加密,如可以是采用
Figure BDA0001949043590000241
算法,生成上传文件的密文。需要说明的是,客户端在对上传文件进行加密时,可以是采用任何一种加密算法,对此本发明实施例不进行限定。可选的,为了提高加密的安全性,可优选对称加密算法对上传文件进行加密。
S604,客户端将加密文件发送至存储端。
S605,存储端接收客户端发送的加密文件。
S606,存储端存储加密文件。
可选的,存储端在存储加密文件时,可以是采用分布式存储,分别存储在存储端的不同位置。例如,可以是对上传文件按照预设规则进行分类,然后将上传文件存储在其所属类别的存储位置。
S607,存储端向客户端发送加密文件的存储信息。
示例性的,为了用户后续用户搜索该文件时快速查找,存储端在对加密文件进行存储后,会获取该加密文件的存储信息,如可以包括文件的统一标识(Uniform ResourceLocator,URL)、存储格式、大小等。并将获取的该加密文件的存储信息发送给客户端。
S608,客户端接收存储端发送的加密文件的存储信息。
S609,客户端确定文件信息和文件的关键词集合,生成关键词集合中各关键词的搜索令牌。
S610,客户端根据各关键词的搜索令牌,确定文件的动态累加值。
S611,客户端根据各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合。
S612,客户端生成包括文件信息、文件的动态累加值和见证值集合的链上数据处理请求。
S613,客户端向区块链网络发送所述链上数据处理请求。
S614,区块链网络接收客户端发送的链上数据处理请求。
S615,区块链网络处理链上数据处理请求,根据处理结果将文件信息和见证值集合之间的索引关系作为事务数据,写入倒排索引,并将倒排索引存储在区块链中;根据处理结果将文件信息和动态累加值之间的索引关系作为事务数据,写入正排索引,并将正排索引存储在区块链中。
S616,客户端接收用户输入的搜索关键词,生成搜索关键词的搜索令牌。
S617,客户端确定搜索关键词的搜索令牌的见证值,根据搜索关键词的搜索令牌和搜索令牌的见证值生成链上文件查询请求。
S618,客户端向区块链网络发送链上文件查询请求。
S619,区块链网络接收客户端发送的链上文件查询请求。
S620,区块链网络从区块链中存储的倒排索引中查询链上文件查询请求中的搜索关键词的搜索令牌的见证值。
S621区块链网络判断倒排索引中是否存在搜索关键词的搜索令牌的见证值,若存在,执行S622,否则,执行S623。
S622区块链网络获取倒排索引中搜索令牌的见证值对应的文件信息作为处理结果。
S623根据区块链中存储的正排索引中各文本信息对应文本的动态累加值、链上文件查询请求中的搜索关键词的搜索令牌以及搜索令牌的见证值,确定与搜索关键词匹配的文本信息作为处理结果。
S624,区块链网络将处理结果中搜索关键词对应的文件信息反馈给客户端。
S625,客户端接收到区块链网络反馈的文件信息。
S626,客户端根据区块链网络反馈的文件信息,向存储端发送查询文件的文件信息。
S627,存储端接收客户端发送的查询文件的文件信息。
S628,存储端根据文件信息查找对应的查询文件。
示例性的,文件信息中包括文件的标识信息和文件的存储信息,存储端在根据文件信息查找对应的查询文件时,可以是先根据文件的存储信息找到查询文件的存储位置,然后再根据文件的标识信息从该存储位置精准确定查询文件。
S629,存储端将查询文件反馈给客户端。
S630,客户端将接收到的查询文件展示给用户。
可选的,由于客户端在发送给存储端存储文件时,发送的是对原文件加密后的密文,所以客户端在接收到存储端发送查询文件后,需要先根据文件密钥对加密后的文件进行解密后再展示给用户。
本发明实施例提供的基于区块链的数据处理方法,通过客户端、区块链端与存储端之间的交互,完成了将加密搜索技术运用与去中心化存储中,证明了加密搜索技术在去中心化存储场景中运用的技术可行性,在保障存储数据安全的同时保护了用户隐私,同时基于倒排索引和正排索引进行搜索关键词对应的文本信息的查询,极大的改善了加密搜索效率。
实施例七
图7为本发明实施例七提供的一种基于区块链的数据处理装置的结构框图,该装置可配置于客户端中,该装置可执行本发明实施例一到实施例三以及实施例六所提供的基于区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。如图7所示,该装置可以包括:
搜索令牌生成模块701,用于确定文件信息和文件的关键词集合,生成所述关键词集合中各关键词的搜索令牌;
处理请求生成模块702,用于根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求;
处理请求发送模块703,用于向区块链网络发送所述链上数据处理请求,由区块链网络处理所述链上数据处理请求,并将得到的所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
本实施例提供的基于区块链的数据处理装置,通过根据确定的文件的关键词集合生成各关键词的搜索令牌,与确定的文件信息一并生成链上数据处理请求,发送至区块链网络。以使区块链网络执行该链上数据处理请求,并将文件信息和关键词之间的索引关系存储在区块链中。本发明基于区块链的存储加密搜索技术,很好的避免了存储平台容易受到恶意攻击,数据安全和用户隐私无法有效保障的问题,提高了数据存储加密搜索的安全性。
进一步的,上述处理请求生成模块702,包括:
累加值确定单元,用于根据所述各关键词的搜索令牌,确定所述文件的动态累加值;
见证值确定单元,用于根据所述各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合;
处理请求生成单元,用于生成包括所述文件信息,所述文件的动态累加值和所述见证值集合的链上数据处理请求。
进一步的,上述累加值确定单元具体用于:
根据所述各关键词的搜索令牌、累加器密钥以及所述文件的历史动态累加值,确定所述文件的最新动态累加值。
进一步的,上述见证值确定单元具体用于:
根据所述各关键词的搜索令牌,确定各搜索令牌的见证值;
若所述各关键词的搜索令牌中存在属于历史搜索令牌集合的搜索令牌,则将该搜索令牌的见证值添加到见证值集合中。
进一步的,上述搜索令牌生成模块701还用于:
接收用户输入的搜索关键词,生成所述搜索关键词的搜索令牌;
上述装置还包括:
查询请求生成模块,用于确定所述搜索关键词的搜索令牌的见证值,根据所述搜索关键词的搜索令牌和所述搜索令牌的见证值生成链上文件查询请求,并向区块链网络发送所述链上文件查询请求,所述链上文件查询请求用于从区块链网络中查询搜索关键词对应的文件信息;
文件获取展示模块,用于接收区块链网络反馈的文件信息,根据所述文件信息,在预设存储单元中获取搜索关键词对应的查询文件展示给用户。
实施例八
图8为本发明实施例八提供的一种基于区块链的数据处理装置的结构框图,该装置可配置于区块链节点中,该装置可执行本发明任意实施例四到实施例六所提供的基于区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。如图8所示,该装置可以包括:
处理请求接收模块801,用于接收客户端发送的链上数据处理请求,其中所述链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,所述搜索令牌是根据文件的关键词集合生成的;
处理请求处理模块802,用于处理所述链上数据处理请求,并根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。
本实施例提供的基于区块链的数据处理装置,通过处理接收到的链上数据处理请求,对链上数据处理请求进行处理后,根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中。基于区块链的存储加密搜索技术,很好的避免了存储平台容易受到恶意攻击,数据安全和用户隐私无法有效保障的问题,提高了数据存储加密搜索的安全性。
进一步的,上述处理请求处理模块802具体用于:
根据处理结果将所述文件信息和见证值集合之间的索引关系作为事务数据,写入倒排索引,并将所述倒排索引存储在区块链中,所述见证值集合是根据各关键词的搜索令牌确定的各搜索令牌的见证值形成的集合;
根据处理结果将所述文件信息和动态累加值之间的索引关系作为事务数据,写入正排索引,并将所述正排索引存储在区块链中,所述动态累加值是根据各关键词的搜索令牌确定的。
进一步的,上述装置还包括:
查询请求接收模块,用于接收客户端发送的链上文件查询请求,其中所述链上文件查询请求是根据搜索关键词的搜索令牌和所述搜索令牌的见证值生成的,所述搜索关键词的搜索令牌是根据用户输入的搜索关键词生成的;所述搜索令牌的见证值是根据搜索关键词的搜索令牌生成的;
查询请求处理模块,用于处理所述链上文件查询请求,并根据处理结果将搜索关键词对应的文件信息反馈给客户端。
进一步的,上述查询请求处理模块具体用于:
从区块链中存储的倒排索引中查询所述链上文件查询请求中的搜索关键词的搜索令牌的见证值;
获取倒排索引中所述搜索令牌的见证值对应的文件信息作为处理结果。
进一步的,上述查询请求处理模块还具体用于:
若区块链中存储的倒排索引中查询不到所述链上文件查询请求中的搜索关键词的搜索令牌,则根据区块链中存储的正排索引中各文本信息对应文本的动态累加值、所述链上文件查询请求中的搜索关键词的搜索令牌以及所述搜索令牌的见证值,确定与所述搜索关键词匹配的文本信息作为处理结果。
实施例九
图9为本发明实施例六提供的一种设备的结构示意图。图9示出了适于用来实现本发明实施方式的示例性设备90的框图。图9显示的设备90仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。其可以是客户端,也可以是区块链节点。如图9所示,该设备90以通用计算设备的形式表现。该设备90的组件可以包括但不限于:一个或者多个处理器或者处理单元901,***存储器902,连接不同***组件(包括***存储器902和处理单元901)的总线903。
总线903表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
设备90典型地包括多种计算机***可读介质。这些介质可以是任何能够被设备90访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器902可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)904和/或高速缓存存储器905。设备90可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***906可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线903相连。***存储器902可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块907的程序/实用工具908,可以存储在例如***存储器902中,这样的程序模块907包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块907通常执行本发明所描述的实施例中的功能和/或方法。
设备90也可以与一个或多个外部设备909(例如键盘、指向设备、显示器910等)通信,还可与一个或者多个使得用户能与该设备交互的设备通信,和/或与使得该设备90能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口911进行。并且,设备90还可以通过网络适配器912与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图9所示,网络适配器912通过总线903与设备90的其它模块通信。应当明白,尽管图中未示出,可以结合设备90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元901通过运行存储在***存储器902中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的基于区块链的数据处理方法。
实施例十
本发明实施例十还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例所述的基于区块链的数据处理方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员应该明白,上述的本发明实施例的各模块或各操作可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或操作制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种基于区块链的数据处理方法,其特征在于,由客户端执行,包括:
确定文件信息和文件的关键词集合,生成所述关键词集合中各关键词的搜索令牌;
根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求,并向区块链网络发送所述链上数据处理请求,由区块链网络处理所述链上数据处理请求,并将得到的所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中;根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求,包括:
根据所述各关键词的搜索令牌,确定所述文件的动态累加值;
根据所述各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合;
生成包括所述文件信息,所述文件的动态累加值和所述见证值集合的链上数据处理请求。
2.根据权利要求1所述的方法,其特征在于,根据所述各关键词的搜索令牌,确定所述文件的动态累加值,包括:
根据所述各关键词的搜索令牌、累加器密钥以及所述文件的历史动态累加值,确定所述文件的最新动态累加值。
3.根据权利要求1所述的方法,其特征在于,根据所述各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合,包括:
根据所述各关键词的搜索令牌,确定各搜索令牌的见证值;
若所述各关键词的搜索令牌中存在属于历史搜索令牌集合的搜索令牌,则将该搜索令牌的见证值添加到见证值集合中。
4.根据权利要求1所述的方法,其特征在于,根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求,并向区块链网络发送所述链上数据处理请求之后,还包括:
接收用户输入的搜索关键词,生成所述搜索关键词的搜索令牌;
确定所述搜索关键词的搜索令牌的见证值,根据所述搜索关键词的搜索令牌和所述搜索令牌的见证值生成链上文件查询请求,并向区块链网络发送所述链上文件查询请求,所述链上文件查询请求用于从区块链网络中查询搜索关键词对应的文件信息;
接收区块链网络反馈的文件信息,根据所述文件信息,在预设存储单元中获取搜索关键词对应的查询文件展示给用户。
5.一种基于区块链的数据处理方法,其特征在于,由区块链节点执行,包括:
接收客户端发送的链上数据处理请求,其中所述链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,所述搜索令牌是根据文件的关键词集合生成的;
处理所述链上数据处理请求,并根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中;
根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中,包括:
根据处理结果将所述文件信息和见证值集合之间的索引关系作为事务数据,写入倒排索引,并将所述倒排索引存储在区块链中,所述见证值集合是根据各关键词的搜索令牌确定的各搜索令牌的见证值形成的集合;
根据处理结果将所述文件信息和动态累加值之间的索引关系作为事务数据,写入正排索引,并将所述正排索引存储在区块链中,所述动态累加值是根据各关键词的搜索令牌确定的。
6.根据权利要求5所述的方法,其特征在于,根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中之后,还包括:
接收客户端发送的链上文件查询请求,其中所述链上文件查询请求是根据搜索关键词的搜索令牌和所述搜索令牌的见证值生成的,所述搜索关键词的搜索令牌是根据用户输入的搜索关键词生成的;所述搜索令牌的见证值是根据搜索关键词的搜索令牌生成的;
处理所述链上文件查询请求,并根据处理结果将搜索关键词对应的文件信息反馈给客户端。
7.根据权利要求6所述的方法,其特征在于,处理所述链上文件查询请求,包括:
从区块链中存储的倒排索引中查询所述链上文件查询请求中的搜索关键词的搜索令牌的见证值;
获取倒排索引中所述搜索令牌的见证值对应的文件信息作为处理结果。
8.根据权利要求7所述的方法,其特征在于,处理所述链上文件查询请求,包括:
若区块链中存储的倒排索引中查询不到所述链上文件查询请求中的搜索关键词的搜索令牌,则根据区块链中存储的正排索引中各文本信息对应文本的动态累加值、所述链上文件查询请求中的搜索关键词的搜索令牌以及所述搜索令牌的见证值,确定与所述搜索关键词匹配的文本信息作为处理结果。
9.一种基于区块链的数据处理装置,其特征在于,所述装置配置于客户端中,包括:
搜索令牌生成模块,用于确定文件信息和文件的关键词集合,生成所述关键词集合中各关键词的搜索令牌;
处理请求生成模块,用于根据所述文件信息和各关键词的搜索令牌生成链上数据处理请求;
处理请求发送模块,用于向区块链网络发送所述链上数据处理请求,由区块链网络处理所述链上数据处理请求,并将得到的所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中;
所述处理请求生成模块,包括:
累加值确定单元,用于根据所述各关键词的搜索令牌,确定所述文件的动态累加值;
见证值确定单元,用于根据所述各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合。
10.一种基于区块链的数据处理装置,其特征在于,所述装置配置于区块链节点中,包括:
处理请求接收模块,用于接收客户端发送的链上数据处理请求,其中所述链上数据处理请求是根据文件信息和各关键词的搜索令牌生成的,所述搜索令牌是根据文件的关键词集合生成的;
处理请求处理模块,用于处理所述链上数据处理请求,并根据处理结果将所述文件信息和关键词之间的索引关系作为事务数据存储到区块链中;
处理请求生成模块,包括:
处理请求生成单元,用于生成包括所述文件信息,所述文件的动态累加值和见证值集合的链上数据处理请求;
根据所述各关键词的搜索令牌,确定所述文件的动态累加值;
根据所述各关键词的搜索令牌,确定各搜索令牌的见证值,形成见证值集合。
11.一种基于区块链的数据处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的基于区块链的数据处理方法,或5-8中任一所述的基于区块链的数据处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的基于区块链的数据处理方法,或5-8中任一所述的基于区块链的数据处理方法。
CN201910045588.5A 2019-01-17 2019-01-17 基于区块链的数据处理方法、装置、设备和介质 Active CN109766707B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910045588.5A CN109766707B (zh) 2019-01-17 2019-01-17 基于区块链的数据处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910045588.5A CN109766707B (zh) 2019-01-17 2019-01-17 基于区块链的数据处理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN109766707A CN109766707A (zh) 2019-05-17
CN109766707B true CN109766707B (zh) 2022-01-14

Family

ID=66454060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910045588.5A Active CN109766707B (zh) 2019-01-17 2019-01-17 基于区块链的数据处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN109766707B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110517029B (zh) * 2019-08-29 2024-02-23 深圳市迅雷网络技术有限公司 区块链跨链交易验证的方法、装置、设备及区块链***
CN110597852A (zh) * 2019-09-27 2019-12-20 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及存储介质
CN111143471B (zh) * 2019-12-27 2023-09-01 北京工业大学 一种基于区块链的密文检索方法
CN111400325A (zh) * 2020-02-17 2020-07-10 合肥工大高科信息科技股份有限公司 一种铁运物料物流分析方法、***及电子设备
CN111324611B (zh) * 2020-02-28 2023-12-29 北京瑞卓喜投科技发展有限公司 一种资产类通证的凭证检索方法和装置
CN111444198B (zh) * 2020-06-15 2020-09-25 支付宝(杭州)信息技术有限公司 一种基于中心化块链式账本的交易存储、查询方法
CN114826613B (zh) * 2022-04-21 2023-07-28 微位(深圳)网络科技有限公司 基于区块链的身份信息查询方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156011A1 (en) * 2011-08-16 2015-06-04 Microsoft Technology Licensing, Llc Dynamic symmetric searchable encryption
CN105024802A (zh) * 2015-07-13 2015-11-04 西安理工大学 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN105069358A (zh) * 2015-07-13 2015-11-18 西安理工大学 基于带有存储结构的Bloom过滤器的关键词可搜索加密方法
US20160125198A1 (en) * 2014-10-29 2016-05-05 Florian Hahn Searchable encryption with secure and efficient updates
CN103593476B (zh) * 2013-11-28 2017-01-25 中国科学院信息工程研究所 一种面向云存储的多关键词明密文检索方法和***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282281B1 (ko) * 2011-08-30 2013-08-23 고려대학교 산학협력단 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156011A1 (en) * 2011-08-16 2015-06-04 Microsoft Technology Licensing, Llc Dynamic symmetric searchable encryption
CN103593476B (zh) * 2013-11-28 2017-01-25 中国科学院信息工程研究所 一种面向云存储的多关键词明密文检索方法和***
US20160125198A1 (en) * 2014-10-29 2016-05-05 Florian Hahn Searchable encryption with secure and efficient updates
CN105024802A (zh) * 2015-07-13 2015-11-04 西安理工大学 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN105069358A (zh) * 2015-07-13 2015-11-18 西安理工大学 基于带有存储结构的Bloom过滤器的关键词可搜索加密方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Dynamic Accumulators and Application to E±cient Revocation of Anonymous Credentials;Jan Camenisch,et al;《https://link.springer.com/content/pdf/10.1007%2F3-540-45708-9_5.pdf》;20020822;文章第61-76页 *
Towards Trustworthy and Private Keyword Search in Encrypted Decentralized Storage;Chengjun Cai et al;《IEEE ICC 2017 Communication and Information Systems Security Symposium》;20170731;正文第III-V节,图1-3,表1 *
vChain:支持可信数据查询的区块链技术;腾讯云;《https://cloud.tencent.com/developer/news/367954》;20181208;文章全文 *
Verifiable Ranked Search Over Dynamic Encrypted Data in Cloud Computing;Qin Liu,et al;《2017 IEEE/ACM 25th International Symposium on Quality of Service (IWQoS)》;20170707;文章全文 *
云环境下可搜索加密技术安全机制及应用陷阱;杨宁,等;《计算机应用研究》;20150831;第32卷(第8期);文章第2254-2260页 *
分布式网络环境下基于区块链的密钥管理方案;戴千一 ,等;《网络与信息安全学报》;20181210;第4卷(第9期);文章第23-35页 *
基于动态累加器的去中心化加密搜索方案;张琰,等;《网络与信息安全学报》;20190528;第5卷(第2期);文章第23-29页 *
基于动态累加器的异构传感网认证组密钥管理方案;钟晓睿,等;《通信学报》;20140409;第35卷(第3期);文章第124-134段 *

Also Published As

Publication number Publication date
CN109766707A (zh) 2019-05-17

Similar Documents

Publication Publication Date Title
CN109766707B (zh) 基于区块链的数据处理方法、装置、设备和介质
US10574770B2 (en) Managing notifications across multiple devices
CN106972927B (zh) 一种针对不同安全等级的加密方法及***
CN109344631B (zh) 区块链的数据修改及区块验证方法、装置、设备和介质
CN107948152B (zh) 信息存储方法、获取方法、装置及设备
US9197613B2 (en) Document processing method and system
US8819408B2 (en) Document processing method and system
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
CN106911712B (zh) 一种应用于分布式***的加密方法及***
US10581808B2 (en) Keyed hash contact table
CN114428972A (zh) 支持外包计算的隐私保护查询方法、装置及相关设备
CN113094334B (zh) 基于分布式存储的数字服务方法、装置、设备及储存介质
CN115017107A (zh) 基于保护隐私的数据检索方法、装置、计算机设备及介质
CN105827582A (zh) 一种通信加密方法、装置和***
JP6585192B2 (ja) キー付けされたデータベースを用いて維持されるキー付けされたデータの検索と取出し
US11893055B2 (en) System for automatic management and depositing of documents (images) hash in block-chain technology
JP2006189925A (ja) 個人情報管理システム、個人情報管理プログラムおよび個人情報保護方法
CN114428661A (zh) 一种镜像管理方法及装置
CN111651425A (zh) 数据集市的数据提取方法、装置、终端及存储介质
CN111030930B (zh) 基于去中心化网络数据分片传输方法、装置、设备及介质
CN113946862A (zh) 一种数据处理方法、装置、设备及可读存储介质
CN114021196A (zh) 公平可搜索加密方法、公平可搜索加密***
Handa et al. Keyword binning-based efficient search on encrypted cloud data
CN112732789A (zh) 基于区块链的可搜索加密方法和电子设备
CN114760061B (zh) 数据上传的方法、装置、设备及存储介质

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