CN115758417A - 数据处理方法、电子设备及存储介质 - Google Patents
数据处理方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115758417A CN115758417A CN202211488088.7A CN202211488088A CN115758417A CN 115758417 A CN115758417 A CN 115758417A CN 202211488088 A CN202211488088 A CN 202211488088A CN 115758417 A CN115758417 A CN 115758417A
- Authority
- CN
- China
- Prior art keywords
- tree node
- tree
- encryption
- target
- user terminal
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 39
- 239000011159 matrix material Substances 0.000 claims abstract description 127
- 230000007704 transition Effects 0.000 claims abstract description 72
- 238000000034 method Methods 0.000 claims abstract description 19
- 239000013598 vector Substances 0.000 claims description 53
- 230000005540 biological transmission Effects 0.000 claims description 24
- 238000006073 displacement reaction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 4
- 239000000470 constituent Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 241000277284 Salvelinus fontinalis Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- -1 specifically Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本申请是关于一种数据处理方法、电子设备及存储介质。该方法包括:基于模式串集合构建字典树;基于字典树生成状态转移矩阵;对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端;通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数;将每一树节点对应的树节点加密参数发送至用户终端;接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密;将得到的目标树节点标签信息发送至用户终端。本申请方案能够保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果,提升服务器和用户终端的双方信息安全。
Description
技术领域
本申请涉及隐私保护技术领域,尤其涉及数据处理方法、电子设备及存储介质。
背景技术
相关技术中,从文本信息中识别特定关键词或具有自定义规则的内容,可以有效地过滤文本中的敏感信息或者文本的标签信息。目前,广泛应用于字符串匹配的数据结构和算法包括了KMP(Knuth-Morris-Pratt)、Trie树、Aho-Corasick自动机和Wu-Manber等,然而,在真实业务场景中,模式串,即是敏感词集合或自定义的规则通常保存在服务器,持有待匹配文本的用户终端需要与服务器进行交互,以获得待匹配文本内容与服务器模式串的匹配结果。在待匹配文本内容的匹配过程中,往往会形成用户终端隐私数据泄露的风险。因此,亟需一种能够进行隐私保护的数据处理方法,能够保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果。
发明内容
为克服相关技术中存在的问题,本申请提供一种数据处理方法、电子设备及存储介质,该数据处理方法,能够保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果,提升服务器和用户终端的双方信息安全。
本申请第一方面提供一种数据处理方法,包括:
基于模式串集合构建字典树,字典树包括:树节点以及每一树节点对应的树节点属性参数;
基于字典树生成状态转移矩阵;
对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端,以使得用户终端能够通过执行安全多方计算协议在状态转移矩阵中选取目标矩阵元素;
通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数;
将每一树节点对应的树节点加密参数发送至用户终端,以使得用户终端能够基于目标矩阵元素并通过执行不经意传输协议选取目标加密参数;
接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密,得到目标树节点标签信息;
将目标树节点标签信息发送至用户终端。
在一种实施方式中,对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端,包括:
生成h个随机正整数,h为用户终端的待匹配字符串的字符长度,且每一随机正整数与待匹配字符串中的待匹配字符编号一一对应;
在h个随机正整数中提取其中一个未使用的随机正整数,并基于当前随机正整数对当前状态转移矩阵进行随机数更新,得到随机更新矩阵;
将随机更新矩阵发送至用户终端,并对随机更新矩阵进行矩阵元素位移更新,得到位移更新矩阵;
将位移更新矩阵作为当前状态转移矩阵,并执行随机数更新、矩阵发送以及矩阵元素位移更新的步骤,直至h个随机正整数提取完毕。
在一种实施方式中,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密之前,包括:
获取字典树中每一树节点对应的树节点属性,树节点属性包括key属性以及value属性;
根据每一树节点对应的树节点属性确定每一树节点对应的树节点状态,树节点状态用于表示当前树节点以及当前树节点之前途经的树节点是否能够形成完整字符串;
根据每一树节点对应的树节点状态确定每一树节点对应的树节点属性参数。
在一种实施方式中,基于模式串集合构建字典树之前,还包括:
若服务器存储的是链式模式串,链式模式串为包含通配符的模式串,通配符用于分隔链式模式串中的各个子模式串,并且每个子模式串不为其余任一子模式串的后缀子串,则搜索并删除链式模式串中的通配符,得到链式模式串中的各个子模式串;
基于链式模式串中的各个子模式串形成模式串集合。
在一种实施方式中,若服务器存储的是模式串集合,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数,包括:
树节点加密参数为树节点向量;
树节点属性参数为0或1,若当前树节点中key属性对应的树节点状态为True,则当前树节点对应的树节点属性参数为1,其余树节点对应的树节点属性参数为0;若当前树节点中key属性对应的树节点状态为False,则当前树节点对应的树节点属性参数为0,其余树节点对应的树节点属性参数为0;
通过预设公钥对每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的参数加密值;
基于每一树节点对应的参数加密值分别形成每一树节点对应的树节点向量。
在一种实施方式中,若服务器存储的是链式模式串,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数,包括:
树节点加密参数为编号加密值,编号加密值包括第一加密值以及第二加密值;
获取各个子模式串的末尾字符在链式模式串中对应的末位字符位置编号;
若当前树节点的value属性的后缀与任一子模式串对应的字符串一致,则通过预设公钥对当前子模式串的末位字符位置编号进行加密,得到第一加密值;
若当前树节点的value属性的后缀与所有子模式串对应的字符串均不一致,则通过预设公钥对待匹配字符串中当前进行处理的字符位置编号加1的值进行加密,得到第二加密值。
本申请第二方面提供一种数据处理方法,包括:
接收服务器发送的加密更新后的状态转移矩阵;
逐一基于加密更新后的状态转移矩阵执行安全多方计算协议,在加密更新后的状态转移矩阵中选取目标矩阵元素;
接收服务器发送的字典树中每一树节点对应的树节点加密参数,基于目标矩阵元素并通过执行不经意传输协议在每一树节点对应的树节点加密参数之中选取目标加密参数;
将目标加密参数反馈至服务器,使得服务器基于目标加密参数反馈相应的目标树节点标签信息;
接收服务器发送的目标树节点标签信息。
在一种实施方式中,将目标加密参数反馈至服务器,包括:
当目标加密参数为树节点向量时,生成一个随机正整数k,若当前树节点向量对应的待匹配字符编号为零,则将当前树节点向量作为原始待解密向量,若当前树节点向量对应的待匹配字符编号不为零,则将当前树节点向量和随机正整数k相乘后与历史树节点向量同项相加,得到第一目标待解密参数;将第一目标待解密参数反馈至服务器;
当目标加密参数为编号加密值时,通过预设公钥对当前编号加密值对应的待匹配字符编号进行加密,得到当前的字符编号加密值;将当前的字符编号加密值减去当前编号加密值,得到第二目标待解密参数;将第二目标待解密参数反馈至服务器。
本申请第三方面提供一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如第一方面或第二方面所述的方法。
本申请第四方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如第一方面或第二方面所述的方法。
本申请提供的技术方案可以包括以下有益效果:
基于服务器存储的模式串集合构建字典树,进而基于字典树生成状态转移矩阵,对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端,以使得用户终端能够通过执行安全多方计算协议在状态转移矩阵中选取目标矩阵元素,从而使得用户终端无法得知服务器加密更新前的原始状态转移矩阵,服务器也无法得知用户终端选取了哪一些目标矩阵元素;进一步地,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,将得到的每一树节点对应的树节点加密参数发送至用户终端,以使得用户终端能够基于目标矩阵元素并通过执行不经意传输协议选取目标加密参数,从而使得用户终端无法得知服务器加密前的原始的每一树节点对应的树节点属性参数,服务器也无法得知用户终端选取了哪一些树节点属性参数进行处理成为目标加密参数,进而接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密,得到目标树节点标签信息,将目标树节点标签信息发送至用户终端,从而使得用户终端能够基于目标树节点标签信息以及待匹配字符串确定匹配结果,保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果,提升服务器和用户终端的双方信息安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,并且相同或对应的标号表示相同或对应的部分。
图1是本申请实施例示出的数据处理方法的流程示意图之一;
图2是本申请实施例示出的数据处理方法的流程示意图之二;
图3是本申请实施例示出的数据处理方法的流程示意图之三;
图4是本申请实施例示出的数据处理方法的流程示意图之四;
图5是本申请实施例示出的电子设备的结构示意图。
具体实施方式
现在将参考附图描述实施例。应当理解,为了说明的简单和清楚,在认为合适的情况下,可以在附图中重复附图标记以指示对应或类似的元件。另外,本申请阐述了许多具体细节以便提供对本文所述实施例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践本文描述的实施例。在其他情况下,没有详细描述公知的方法、过程和组件,以免模糊本文描述的实施例。而且,该描述不应被视为限制本文描述的实施例的范围。
在真实业务场景中,模式串,即是敏感词集合或自定义的规则通常保存在服务器,持有待匹配文本的用户终端需要与服务器进行交互,以获得待匹配文本内容与服务器模式串的匹配结果。在待匹配文本内容的匹配过程中,往往会形成用户终端隐私数据泄露的风险。因此,亟需一种能够进行隐私保护的数据处理方法,能够保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果。
针对上述问题,本申请实施例提供一种数据处理方法,能够保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果,提升服务器和用户终端的双方信息安全。
以下结合附图详细描述本申请实施例的技术方案。
图1是本申请实施例示出的数据处理方法的流程示意图之一。
请参阅图1,本申请实施例示出的数据处理方法可以包括:
在步骤101中,基于模式串集合构建字典树。
字典树即是trie树或者是前缀树,是一种用于快速检索字符串的数据结构。模式串集合为敏感词词集和/或自定义规则的关键词词集所组成的集合,模式串集合中包含有若干个模式串,模式串集合的各个模式串中的每一个字符组合构成字符集。模式串集合可以是由英文或者中文等多语言的模式串形成,当处理中文类型字符串时,可以首先获取字符串中每个字符对应的编码或拼音,然后转换为相应的字节并组成字节序列,进而根据每个模式串所对应的字节序列,可按照每个字节对应一条出边的原则,完成相应字典树的构建。在处理中文模式字符串时,可通过向模式串中添加通配符,并结合以拼音方式构建的字典树,进一步提升多模式串模糊匹配的鲁棒性。
基于该模式串集合构建的字典树具有以下特点:字典树具有若干个树节点(包含根节点),除根节点外每一个树节点上都具有字符集中的一个字符;另外,对于若干个树节点中的每一个非叶子节点,非叶子节点即是非终点节点,也即是有子节点的节点,每一个非叶子节点的所有子节点所包含的字符均不相同;再者,对于任一属于模式串集合的模式串,在若干个树节点中存在一个树节点,满足从根节点到该树节点所经过的字符连接起来构成该模式串;最后,对于若干个树节点中的每一个叶子节点,叶子节点即是终点节点,也即是没有子节点跟随的节点,从根节点到叶子节点所经过的字符连接起来构成的模式串均是属于模式串集合的模式串。
每一树节点均会包含对应的树节点属性参数,在本申请实施例中,树节点属性参数具体会包含三个属性,分别是char属性、key属性以及value属性,其中,char属性即是树节点上具有的字符,key属性用于表示从根节点到当前树节点所经过的字符连接起来是否能够构成属于模式串集合中的模式串,value属性则用于从表示根节点到当前树节点所经过的字符连接起来所构成的字符串。
首先,创建字典树的根节点R;
然后,对于模式串集合P中的每一个模式串令v←R(即令第一个节点为根节点),对于j←0,...,mi,在字典树构建算法中,j表示模式串中的字符编号,若当前树节点v存在子节点u并且满足u.char=cj,则v←u(即将当前树节点更新为该子节点u);否则,创建节点u,令u.char←cj,按照前文给出的定义更新u的key属性和value属性,V(T)←V(T)∪{u},E(T)←E(T)∪{(v,u)},v←u(即当前树节点v更新为树节点u)。其中,在字典树构建算法中,i表示模式串集合中的模式串编号,且0≤i≤k-1,k为模式串集合中的模式串数量;为模式串pi中的各个字符,u.char即是节点u的char属性,V(T)为所有的树节点的集合,E(T)为字典树中的有向边的集合,(v,u)是指由当前节点v指向节点u的有向边;
接着,如果j=mi,则v.key←True,v.value←pi。其中,v.key表示当前节点v的key属性,v.value表示当前节点v的value属性。可以理解的是,当前j的值等于模式串pi最后一个字符的字符编号,那么可以确定在当前树节点之下,根节点到当前树节点所经过的字符连接起来能够构成属于模式串集合中的模式串,因此此时当前树节点的key属性更新为True,当前树节点的value属性更新为该模式串pi。
可以理解的是,以上对于字典树构建算法仅为示例性的,在实际应用中,还可以选择其他的构建算法来构建字典树,此处不作唯一限定。
在构建字典树之后,参考Aho-Corasick(AC)自动机算法,可以使用广度优先算法,即BFS算法计算字典树中的每个树节点的fail指针和output数组,其中,output数组包括但不限于当前节点的,以及从当前节点通过fail指针可达的所有节点的value属性和关联的说明信息。为减少输入字符失配时所需执行的跳转次数,补全每个节点上所有字符关联的next指针,next指针指向根据fail指针计算得到的最终跳转到的树节点,并根据所有字符关联的next指针生成next数组,其中,next数组的长度为字符集的大小,next[i]表示在当前树节点上,如果下一个输入字符在字符集中的编号为i时,需要跳转到的下一个树节点的编号。
在步骤102中,基于字典树生成状态转移矩阵。
假设字典树中存在n个树节点,字符集中共有m个字符,则对字典树中的每一个树节点按照0至n-1进行编号,生成状态转移矩阵,其中状态转移矩阵中的每个元素表示为M[i][j],M[i][j]表示节点j的一个子节点的编号,该子节点包含的字符在字符集中的编号为i,此处j大于或等于0且小于或等于n-1,i大于或等于0且小于或等于m-1。在状态转移矩阵中,i表示字符集中各个字符的编号,j表示字典树中每一树节点的编号,与步骤101的字典树构建算法的示例性描述中的i和j有所区分。
在步骤103中,对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端。
将加密更新后的状态转移矩阵发送至用户终端能够让用户终端无法得知原始的状态转移矩阵,从而无法通过状态转移矩阵反推服务器中存储的模式串集合,确保服务器的信息安全。
安全多方计算协议,即是MPC协议,安全多方计算是一类基于密码学的隐私计算技术,其允许各数据提供方在不泄露私有数据以及无可信第三方的前提下,协同完成一个既定函数的计算,安全多方计算有着去中心化、保证输入数据安全和保证计算结果准确等特点。构建MPC体系结构的主要技术包括了不经意传输(Oblivious Transfer,简称OT)、混淆电路(Garbled Circuit,简称GC)、秘密共享(Secret Sharing,简称SS)、同态加密(Homomorphic Encryption,简称HE)以及其它密码学算法等。
不经意传输协议是MPC协议的重要组成部分,不经意传输协议是允许数据接收方从数据发送方的Z条数据中选取并获得一条数据,并且保证接收方无法获得发送方的其它Z-1条数据,并且发送方也无法知晓接收方选择了哪一条数据。进一步地,基于个2选1不经意传输实例来实现一个Z选1不经意传输实例能够有效提升Z选1不经意传输协议的效率,减少所需通信的次数。
在本申请实施例中,用户终端优选地执行安全多方计算协议中的不经意传输协议在状态转移矩阵中选取目标矩阵元素,此时服务器也无法得知用户终端在状态转移矩阵中选取了哪一个矩阵元素来作为目标矩阵元素,从而能够保证用户终端的信息安全,可以理解的是,也可使用混淆电路协议、同态加密等其它安全多方计算技术实现同样的目标,此处不作唯一限定。
在步骤104中,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数。
在本申请实施例中,对字典树中每一树节点对应的树节点属性参数进行加密是会对key属性或者value属性的参数进行加密,即是对从根节点到当前树节点所经过的字符连接起来是否能够构成属于模式串集合中的模式串的判断结果进行加密,或者对从根节点到当前树节点所经过的字符连接起来能够形成模式串集合中的某一模式串的状态进行加密。
在步骤105中,将每一树节点对应的树节点加密参数发送至用户终端。
用户终端无法解密树节点加密参数,因此即使用户终端能够得到模式串集合中的所有字符,也无法反推得到模式串集合中的各条模式串,能够有效提升服务器的信息安全。用户终端能够基于目标矩阵元素并通过执行不经意传输协议选取目标加密参数,此时服务器也无法得知用户终端选取了哪一些树节点属性参数进行处理成为目标加密参数,同时保障了用户终端的信息安全。
在步骤106中,接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密,得到目标树节点标签信息。
对目标加密参数进行解密目的是为了找出key属性为True或者value属性等于模式串集合中的某一模式串的树节点对应的编号,从而能够将该树节点中的output数组中的所有标签信息进行提取,标签信息包含模式串以及对模式串的说明,从而得到目标树节点标签信息。
在步骤107中,将目标树节点标签信息发送至用户终端。用户终端能够通过该目标树节点标签信息得到匹配结果,从而能够达到对待匹配文本内容进行脱敏处理,在本申请实施例中,用户终端持有的待匹配文本内容由待匹配字符串所组成。
从上述实施例中可以得出以下有益效果:
基于服务器存储的模式串集合构建字典树,进而基于字典树生成状态转移矩阵,对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端,以使得用户终端能够通过执行安全多方计算协议在状态转移矩阵中选取目标矩阵元素,从而使得用户终端无法得知服务器加密更新前的原始状态转移矩阵,服务器也无法得知用户终端选取了哪一些目标矩阵元素;进一步地,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,将得到的每一树节点对应的树节点加密参数发送至用户终端,以使得用户终端能够基于目标矩阵元素并通过执行不经意传输协议选取目标加密参数,从而使得用户终端无法得知服务器加密前的原始的每一树节点对应的树节点属性参数,服务器也无法得知用户终端选取了哪一些树节点属性参数进行处理成为目标加密参数,进而接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密,得到目标树节点标签信息,将目标树节点标签信息发送至用户终端,从而使得用户终端能够基于目标树节点标签信息以及待匹配字符串确定匹配结果,保证服务器和用户终端在不泄露隐私数据给对方的前提下,用户终端获得待匹配文本与服务器模式串的匹配结果,提升服务器和用户终端的双方信息安全。
在一些实施例中,若服务器存储的是模式串集合,则可以直接对模式串集合进行处理。图2是本申请实施例示出的数据处理方法的流程示意图之二,请参阅图2,本申请实施例示出的数据处理方法可以包括:
在步骤201中,基于模式串集合构建字典树,基于字典树生成状态转移矩阵。在本申请实施例中,步骤201的内容与步骤101以及步骤102内容相似,此处不作赘述。
在步骤202中,对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端。
生成h个随机正整数,h为用户终端的待匹配字符串的字符长度,且每一随机正整数与待匹配字符串中的待匹配字符编号一一对应,示例性的,假设字符长度为3,则可以设置r0=5,r1=9,r2=16,其中,r0表示第一个待匹配字符编号对应的随机正整数,该随机正整数的值为5,在实际应用中,需根据实际应用情况来设置随机正整数,此处不作唯一限定。
在h个随机正整数中提取其中一个未使用的随机正整数,并基于当前随机正整数对当前状态转移矩阵进行随机数更新,得到随机更新矩阵,可以理解的是,当前的随机更新矩阵与当前随机正整数对应的待匹配字符编号对应的待匹配字符是挂钩的,即是当前这个随机更新矩阵是为这个挂钩的待匹配字符所服务的。示例性的,可以通过以下公式来对当前状态转移矩阵进行随机数更新:
M[i][j]←(M[i][j]+rx)mod n
其中,rx即是随机正整数,x大于或等于零且小于或等于h-1,n为树节点数量。示例性的,假设字符长度为3,则可以设置r0=5,r1=9,r2=16,若此时提取r1来作为当前的随机正整数,则当前更新后的随机更新矩阵则是对第二个待匹配字符服务的。
可以理解的是,随机数更新是多样的,在实际应用中,需根据实际应用情况选择合适的更新形式,此处不作唯一限定。
进一步地,将随机更新矩阵发送至用户终端,并对随机更新矩阵进行矩阵元素位移更新,得到位移更新矩阵,具体地,可以将随机更新矩阵中每一行的矩阵元素均向右循环移动rx位,可以理解的是,以上进行位移更新的方式仅为示例性的,在实际应用中,需根据实际应用情况选用合适的位移更新方式,此处不作唯一限定。
将位移更新矩阵作为当前状态转移矩阵,并重复执行随机数更新、矩阵发送以及矩阵元素位移更新的上述步骤,直至h个随机正整数提取完毕,使得每一位待匹配字符都能对应一个随机更新矩阵。
在步骤203中,获取字典树中每一树节点对应的树节点属性,确定每一树节点对应的树节点属性参数。
具体地,获取字典树中每一树节点对应的树节点属性,树节点属性包括key属性以及value属性,根据每一树节点对应的树节点属性确定每一树节点对应的树节点状态,树节点状态用于表示当前树节点以及当前树节点之前途经的树节点是否能够形成完整字符串,可以理解的是,key属性对应的树节点状态即是True或False,value属性对应的树节点状态是所构成的字符串是否为模式串集合中的某一模式串的状态。
进一步地,根据每一树节点对应的树节点状态确定每一树节点对应的树节点属性参数,示例性的,若树节点状态为True或False,则树节点属性参数可以对应为1和0;若树节点状态是所构成的字符串是否为模式串集合中的某一模式串的状态,则可以通过字符串的末位字符的编号位置来确定树节点属性参数。
在步骤204中,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点向量,将每一树节点对应的树节点向量发送至用户终端。
在本申请实施例中,若服务器存储的是模式串集合,那么树节点加密参数则为树节点向量。
具体地,若当前树节点中key属性对应的树节点状态为True,则当前树节点对应的树节点属性参数为1,其余树节点对应的树节点属性参数为0;若当前树节点中key属性对应的树节点状态为False,则当前树节点对应的树节点属性参数为0,其余树节点对应的树节点属性参数为0,通过预设公钥对每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的参数加密值,基于每一树节点对应的参数加密值分别形成每一树节点对应的树节点向量。
示例性地,可以通过以下公式来表示树节点向量:
其中,表示n个树节点中第j个树节点对应的树节点向量,0≤j≤n-1,b0...bn-1表示树节点属性参数,EncPK表示使用预设公钥PK对b0...bn-1分别进行加密的操作。预设公钥可以是用于语义安全的全同态加密方案的公钥,相应地,也会生成与预设公钥匹配的预设私钥,在实际应用中,预设公钥和预设私钥也可以通过其他方式进行生成,此处不作唯一限定。
进一步地将每一树节点对应的树节点向量,依据状态转移矩阵对每一树节点的编号进行加密更新后的更新节点编号进行排序,得到更新节点编号对应的每一排序位置编号,使得每一排序位置编号能够与用户终端选取的矩阵元素wx一一对应,排序之后再将树节点向量发送至用户终端。
可以理解的是,步骤204会随着每一轮树节点属性参数的变更都会重复执行一次,总轮数即是待匹配字符串的字符长度,这是由于状态转移矩阵在处理待匹配字符串的每一个字符时都会不断发生更新改变,状态转移矩阵的更新改变会导致每一轮形成的树节点向量的序列均不相同。
在步骤205中,接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密,得到目标树节点标签信息。
具体地,服务器可以创建初始标签集合,并将该初始标签集合设置为空集;进一步地,使用预设私钥对目标加密参数中的每个加密元素进行解密,如果目标加密参数中的第y个加密元素解密后为正整数,则说明找到了树节点属性参数为1的树节点,该树节点的key属性为True,说明从根节点到该树节点所经过的字符连接起来能够构成属于模式串集合中的模式串,则将初始节点编号为y的树节点的output数组中的所有标签信息,即目标树节点标签信息加入到初始标签集合中,更新初始标签集合。
当所有目标树节点标签信息均加入到初始标签集合后,初始标签集合更新完成,将更新完成的初始标签集合发送至用户终端。
如果用户终端持有的字符串与服务器中的一个或多个模式串匹配,则服务器会获知哪些模式串被用户终端匹配成功。因此,若不希望服务器获得被匹配的模式串,只需要用户终端获得被匹配模式串的信息,示例性的,可以在接收用户终端反馈的目标加密参数之前,由用户终端将目标加密参数中的加密元素进行随机置换,目的是要打乱目标加密参数中各个加密元素的随机位置,得到随机置换向量;进一步地,服务器接收到该随机置换向量,并通过预设私钥对随机置换向量的每个加密元素逐一进行解密,获得解密向量;进一步地,服务器创建长度为树节点数量n的位置标定向量,若解密向量中第y个元素为正整数,则位置标定向量中的第y个元素设置为1,若解密向量中第y个元素为0,则位置标定向量中的第y个元素设置为0,从而以此将位置标定向量更新完成;进一步地,服务器将更新完成后的位置标定向量发送至用户终端,用户方根据位置标定向量中哪些位置的元素为1,以及目标加密参数中每个加密元素在随机置换向量中的位置信息,计算得到一组key值为True的匹配节点的编号,表示为集合τ。
进一步地,服务器与用户终端执行|τ|次Z选1不经意传输协议,或执行一次Z选|τ|不经意传输协议,|τ|为集合τ中的元素个数,Z为树节点的总数量。在执行第z0次不经意传输协议时,0≤z0≤|τ|-1,服务器作为发送方,以L0,...,Ln-1作为输入,其中,Lj表示节点j对应的标签信息;用户终端作为接收方,以τ中的第z0个元素值作为输入。第z0次不经意传输协议执行完成后,用户终端获得以τ中第z0个元素作为编号的节点的标签信息,服务器不获得任何信息。从而服务器无法获得被匹配的模式串,用户终端则能够获得被匹配模式串的信息,确保信息安全。
在一些实施例中,若服务器存储的是链式模式串,则需要对链式模式串中的通配符进行删除之后才能够进行处理。图3是本申请实施例示出的数据处理方法的流程示意图之三,请参阅图3,本申请实施例示出的数据处理方法可以包括:
在步骤301中,搜索并删除链式模式串中的通配符,得到链式模式串中的各个子模式串,基于链式模式串中的各个子模式串形成模式串集合。
若服务器存储的是链式模式串,链式模式串为包含通配符的模式串,通配符用于分隔链式模式串中的各个子模式串,并且每个子模式串不为其余任一子模式串的后缀子串。通配符可以是#或者是*等其他符号,需根据实际应用情况而定,此处不作唯一限定,则搜索并删除链式模式串中的通配符,得到链式模式串中的各个子模式串,基于链式模式串中的各个子模式串形成模式串集合。
在步骤302中,基于模式串集合构建字典树,基于字典树生成状态转移矩阵。在本申请实施例中,步骤302的内容与步骤101以及步骤102内容相似,此处不作赘述。
在步骤303中,对状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端。在本申请实施例中,步骤303的内容与步骤202内容相似,此处不作赘述。
在步骤304中,获取字典树中每一树节点对应的树节点属性,确定每一树节点对应的树节点属性参数。在本申请实施例中,步骤304的内容与步骤203内容相似,此处不作赘述。
在步骤305中,通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的编号加密值,将每一树节点对应的编号加密值发送至用户终端。
在本申请实施例中,若服务器存储的是链式模式串,那么树节点加密参数则可为编号加密值,编号加密值包括第一加密值以及第二加密值。
具体地,获取各个子模式串的末尾字符在链式模式串中对应的末位字符位置编号;进一步地,若当前树节点的value属性的后缀与任一子模式串对应的字符串一致,则通过预设公钥对当前子模式串的末位字符位置编号进行加密,得到第一加密值,示例性的,可以通过以下公式来表示第一加密值:
若当前树节点的value属性的后缀与所有子模式串对应的字符串均不一致,则通过预设公钥对待匹配字符串中当前进行处理的字符位置编号加1的值进行加密,得到第二加密值,示例性的,可以通过以下公式来表示第二加密值:
其中,为第二加密值,x为待匹配字符串中的h个字符分别对应的字符位置编号,x+1与dq不相等,目的是要将value属性的后缀与所有子模式串对应的字符串均不一致的树节点和value属性的后缀与任一子模式串对应的字符串一致的树节点进行区分。
进一步地将每一树节点对应的编号加密值,依据状态转移矩阵对每一树节点的编号进行加密更新后的更新节点编号进行排序,得到更新节点编号对应的每一排序位置编号,使得每一排序位置编号能够与用户终端选取的矩阵元素wx一一对应,排序之后再将一树节点对应的编号加密值发送至用户终端。
可以理解的是,步骤305会随着每一轮树节点属性参数的变更都会重复执行一次,总轮数即是待匹配字符串的字符长度,这是由于状态转移矩阵在处理待匹配字符串的每一个字符时都会不断发生更新改变,状态转移矩阵的更新改变会导致每一轮形成的第二加密值均不相同。
在步骤306中,接收用户终端反馈的目标加密参数,并通过预设私钥对目标加密参数进行解密,得到目标树节点标签信息,之后将更新完成的初始标签集合发送至用户终端。
具体地,服务器可以创建初始标签集合,并将该初始标签集合设置为空集;进一步地,使用预设私钥对每一个加密值进行解密,如果目标加密参数中解密后有k0个完全相等的非负整数,k0为链式模式串去除通配符后得到的子模式串的个数,则说明链式模式串与待匹配字符串匹配成功,则将链式模式串对应的标签信息更新至初始标签集合之中。
示例性的,假设链式模式串为22*33,其中*为通配符,去掉通配符之后得到两个子模式串22和33,并构建字典树,其中节点a为根节点,节点b是第一个2对应的节点,节点c是第二个2对应的节点,节点d为第一个3对应的节点,节点e是第二个3对应的节点。假设待匹配字符串为22033,各个字符的字符编号分别对应为0,1,2,3,4。在匹配过程中,首先假设第一轮中用户终端输入的wx为w0,那么通过预设公钥对字典树中每一树节点对应的树节点属性参数进行加密,节点a的加密值为EncPK(0+1),因为与两个子模式串22和33均不匹配,同理节点b和节点d的加密值亦为EncPK(0+1),节点c的value属性和子模式串22相匹配,以及节点e的value属性和子模式串33相匹配,因此节点c和节点e的加密值分别对应为EncPK(1)以及EncPK(4)。同理地,假设第二轮中用户终端输入的wx为w1,那么节点a、节点b、节点c、节点d和节点e形成的加密值分别对应为EncPK(1+1)、EncPK(1+1)、EncPK(1)、EncPK(1+1)以及EncPK(4),如此类推,直至第五轮w4输入时加密值计算完毕。每一轮生成的加密值均会逐轮发送至用户终端作为不经意传输协议的输入,服务器作为发送方与用户终端共同执行不经意传输协议,从而使用户终端选取出每一待匹配字符对应的编号加密值,即第一个2对应的加密值为EncPK(0+1),即等于EncPK(1),第二个2对应的加密值为EncPK(1),0对应的加密值为EncPK(3),第一个3对应的加密值为EncPK(4),第二个3对应的加密值为EncPK(4)。进一步地,用户终端通过预设公钥对当前编号加密值对应的待匹配字符编号进行加密,得到当前的字符编号加密值,即分别为EncPK(0)、EncPK(1)、EncPK(2)、EncPK(3)和EncPK(4),将当前的字符编号加密值分别与对应的编号加密值进行作差得到的第二目标待解密参数作为目标加密参数,即分别为EncPK(0)-EncPK(1)、EncPK(1)-EncPK(1)、EncPK(2)-EncPK(3)、EncPK(3)-EncPK(4)以及EncPK(4)-EncPK(4),由于采用的是同态加密方案,因此其中只有EncPK(1)-EncPK(1)以及EncPK(4)-EncPK(4)解密后为非负整数,非负整数的数量与子模式串数量一致,因此此时可以说明链式模式串与待匹配字符串匹配成功。可以理解的是,上述匹配过程的描述仅为示例性的,在实际应用中,链式模式串以及待匹配字符串的形式是多样的,在实际应用中需根据实际应用情况而定,此处不作唯一限定。之后将更新完成的初始标签集合发送至用户终端。
若不希望服务器获得模式串在用户终端的待匹配字符串中的匹配位置信息,只需要用户终端获得被匹配模式串的信息,示例性的,可以在接收用户终端反馈的目标加密参数之前,服务器将链式模式串的长度|p|发送至用户终端,并创建初始标签集合,并将该初始标签集合设置为空集;进一步地,用户终端生成随机整数r’,i’←0,...,h-|p|,j’←0,...,|p|-1,用户终端进一步随着j’每次的变化而生成非零随机整数r”,并计算i”=(i’+r’)mod(h-|p|+1)以及 为用户终端从待匹配字符串中第i”+j’个字符对应的随机更新矩阵中选取的矩阵元素;用户终端将C0,...,C|p|-1这些目标加密参数反馈至服务器,i’实际上表示的是外层循环,这里实际上执行了h-|p|+1轮的发送操作;服务器通过预设私钥对进行逐个解密,若在解密得到的数字中存在k0个零,并且初始标签集合为空集,则将链式模式串对应的标签信息赋值初始标签集合。之后将更新完成的初始标签集合发送至用户终端。
在一些实施例中,服务终端亦需要配合服务器进行操作,才能得到最终的匹配结果,图4是本申请实施例示出的数据处理方法的流程示意图之四,请参阅图4,本申请实施例示出的数据处理方法可以包括:
在步骤401中,接收服务器发送的加密更新后的状态转移矩阵,逐一基于加密更新后的状态转移矩阵执行安全多方计算协议,在加密更新后的状态转移矩阵中选取目标矩阵元素。
具体地,服务器会将字符集、树节点数量n以及字典树的起始节点的编号在状态转移矩阵对应的起始列号发送至用户终端,同时,服务器将加密更新后的状态转移矩阵发送至用户终端,作为服务器在安全多方计算协议中的不经意传输协议的输入,用户终端则以的计算值作为输入,其中,当x等于0时,为字典树的起始节点的编号在状态转移矩阵对应的起始列号,当x大于0时,为用户终端从待匹配字符串中第x-1个字符对应的随机更新矩阵中选取的矩阵元素,index(S[x])表示用户终端持有的待匹配文本中第x个字符在字符集中对应的编号,当不经意传输协议执行完毕之后,用户终端获得加密更新后的状态转移矩阵中第列第index(S[x])行上的矩阵元素wx,得到目标矩阵元素,与此同时,服务器无法得到任何信息。
在步骤402中,接收服务器发送的字典树中每一树节点对应的树节点加密参数,基于目标矩阵元素并通过执行不经意传输协议在每一树节点对应的树节点加密参数之中选取目标加密参数,将目标加密参数反馈至服务器。
当树节点加密参数为树节点向量时,服务器将树节点向量发送至用户终端,作为服务器在执行不经意传输协议时的输入;用户终端则将wx作为输入,在不经意传输协议执行完毕之后,用户方获得服务器输入中的第wx个向量服务器不获得任何信息。
进一步地,用户终端生成一个随机正整数k,若当前树节点向量对应的待匹配字符编号为零,即当x=0时,则将当前树节点向量作为原始待解密向量,若当前树节点向量对应的待匹配字符编号不为零,则将当前树节点向量和随机正整数k相乘后与历史树节点向量同项相加,得到第一目标待解密参数,历史树节点向量为原始的第一目标待解密参数中已存在的树节点向量。进而将第一目标待解密参数反馈至服务器。示例性的,可以通过以下公式来表示第一目标待解密参数:
其中,λC为第一目标待解密参数。
当树节点加密参数为编号加密值时,服务器将编号加密值发送至用户终端,作为服务器在执行不经意传输协议时的输入;用户终端则将wx作为输入,在不经意传输协议执行完毕之后,用户方获得服务方输入中的第wx个加密值服务方不获得任何信息。
进一步地,用户终端通过预设公钥对当前编号加密值对应的待匹配字符编号进行加密,得到当前的字符编号加密值;将当前的字符编号加密值减去当前编号加密值,得到第二目标待解密参数,进而将第二目标待解密参数反馈至服务器,示例性的,可以通过以下公式来表示第二目标待解密参数:
从而,用户终端将基于目标加密参数形成的第一目标待解密参数和/或第二目标待解密参数反馈至服务器,使得服务器基于目标加密参数反馈相应的目标树节点标签信息。
可以理解的是,步骤402会随着每一轮服务器发送的树节点加密参数都会重复执行一次,总轮数即是待匹配字符串的字符长度,这是由于状态转移矩阵在处理待匹配字符串的每一个字符时都会不断发生更新改变,从步骤306中的示例性描述中可以知道,状态转移矩阵的更新改变会导致每一轮服务器发送的树节点加密参数均不相同。
在步骤403中,接收服务器发送的目标树节点标签信息。
由于目标树节点标签信息中包含有模式串以及对该模式串的描述和说明等内容,因此,用户终端能够通过目标树节点标签信息确定敏感词的一些关联信息,这些关联信息例如是对敏感词的一些描述说明。
与前述应用功能实现方法实施例相对应,本申请还提供了一种用于执行数据处理方法的电子设备及相应的实施例。
图5示出可以实施本申请实施例的数据处理方法的电子设备800的硬件配置的框图。如图5所示,电子设备800可以包括处理器810和存储器820。在图5的电子设备800中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:电子设备800还可以包括与图5中所示的组成元素不同的常见组成元素。比如:定点运算器。
电子设备800可以对应于具有各种处理功能的计算设备,例如,用于生成神经网络、训练或学习神经网络、将浮点型神经网络量化为定点型神经网络、或者重新训练神经网络的功能。例如,电子设备800可以被实现为各种类型的设备,例如个人计算机(PC)、服务器设备、移动设备等。
处理器810控制电子设备800的所有功能。例如,处理器810通过执行电子设备800上的存储器820中存储的程序,来控制电子设备800的所有功能。处理器810可以由电子设备800中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)、人工智能处理器芯片(IPU)等来实现。然而,本申请不限于此。
在一些实施例中,处理器810可以包括输入/输出(I/O)单元811和计算单元812。I/O单元811可以用于接收各种数据,例如用户终端发送的目标加密参数。示例性的,计算单元812可以用于利用预设私钥对经由I/O单元811接收的目标加密参数进行解密处理,确定目标树节点标签信息。此目标树节点标签信息例如可以由I/O单元811输出。输出数据可以提供给存储器820以供其他设备(未示出)读取使用,也可以直接提供给其他设备使用。
存储器820是用于存储电子设备800中处理的各种数据的硬件。例如,存储器820可以存储电子设备800中的处理过的数据和待处理的数据。存储器820可存储处理器810已处理或要处理的数据处理方法过程中涉及的数据集,例如,模式串集合等。此外,存储器820可以存储要由电子设备800驱动的应用、驱动程序等。例如:存储器820可以存储与将由处理器810执行的数据处理方法有关的各种程序。存储器820可以是DRAM,但是本申请不限于此。存储器820可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器820可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡、高速缓存(caches)或记忆棒中的至少一项。
综上,本说明书实施方式提供的电子设备800的存储器820和处理器810实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本实施方式中,处理器810可以按任何适当的方式实现。例如,处理器810可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
应当理解,本申请披露的权利要求、说明书及附图中的可能术语“第一”或“第二”等是用于区别不同对象,而不是用于描述特定顺序。本申请披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本申请披露。如在本申请披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本申请披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
虽然本申请的实施方式如上,但所述内容只是为便于理解本申请而采用的实施例,并非用以限定本申请的范围和应用场景。任何本申请所述技术领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
还应当理解,本文示例的执行指令的任何模块、单元、组件、服务器、计算机、终端或设备可以包括或以其他方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的)和/或不可移动的)例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性,可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
基于模式串集合构建字典树,所述字典树包括:树节点以及每一树节点对应的树节点属性参数;
基于所述字典树生成状态转移矩阵;
对所述状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端,以使得所述用户终端能够通过执行安全多方计算协议在所述状态转移矩阵中选取目标矩阵元素;
通过预设公钥对所述字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数;
将每一树节点对应的树节点加密参数发送至所述用户终端,以使得所述用户终端能够基于所述目标矩阵元素并通过执行不经意传输协议选取目标加密参数;
接收所述用户终端反馈的目标加密参数,并通过预设私钥对所述目标加密参数进行解密,得到目标树节点标签信息;
将所述目标树节点标签信息发送至用户终端。
2.根据权利要求1所述的数据处理方法,其特征在于,
所述对所述状态转移矩阵进行加密更新,并将加密更新后的状态转移矩阵发送至用户终端,包括:
生成h个随机正整数,所述h为用户终端的待匹配字符串的字符长度,且每一随机正整数与所述待匹配字符串中的待匹配字符编号一一对应;
在所述h个随机正整数中提取其中一个未使用的随机正整数,并基于当前随机正整数对当前状态转移矩阵进行随机数更新,得到随机更新矩阵;
将所述随机更新矩阵发送至用户终端,并对所述随机更新矩阵进行矩阵元素位移更新,得到位移更新矩阵;
将位移更新矩阵作为当前状态转移矩阵,并执行随机数更新、矩阵发送以及矩阵元素位移更新的步骤,直至所述h个随机正整数提取完毕。
3.根据权利要求2所述的数据处理方法,其特征在于,
所述通过所述预设公钥对所述字典树中每一树节点对应的树节点属性参数进行加密之前,包括:
获取所述字典树中每一树节点对应的树节点属性,所述树节点属性包括key属性以及value属性;
根据每一树节点对应的树节点属性确定每一树节点对应的树节点状态,所述树节点状态用于表示当前树节点以及当前树节点之前途经的树节点是否能够形成完整字符串;
根据每一树节点对应的树节点状态确定每一树节点对应的树节点属性参数。
4.根据权利要求3所述的数据处理方法,其特征在于,
所述基于模式串集合构建字典树之前,还包括:
若服务器存储的是链式模式串,所述链式模式串为包含通配符的模式串,所述通配符用于分隔所述链式模式串中的各个子模式串,并且每个子模式串不为其余任一子模式串的后缀子串,则搜索并删除所述链式模式串中的通配符,得到所述链式模式串中的各个子模式串;
基于所述链式模式串中的各个子模式串形成所述模式串集合。
5.根据权利要求3所述的数据处理方法,其特征在于,
若服务器存储的是所述模式串集合,所述通过所述预设公钥对所述字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数,包括:
所述树节点加密参数为树节点向量;
所述树节点属性参数为0或1,若当前树节点中所述key属性对应的树节点状态为True,则当前树节点对应的树节点属性参数为1,其余树节点对应的树节点属性参数为0;若当前树节点中所述key属性对应的树节点状态为False,则当前树节点对应的树节点属性参数为0,其余树节点对应的树节点属性参数为0;
通过所述预设公钥对每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的参数加密值;
基于每一树节点对应的参数加密值分别形成每一树节点对应的树节点向量。
6.根据权利要求4所述的数据处理方法,其特征在于,
若所述服务器存储的是所述链式模式串,所述通过所述预设公钥对所述字典树中每一树节点对应的树节点属性参数进行加密,得到每一树节点对应的树节点加密参数,包括:
所述树节点加密参数为编号加密值,所述编号加密值包括第一加密值以及第二加密值;
获取各个子模式串的末尾字符在所述链式模式串中对应的末位字符位置编号;
若当前树节点的value属性的后缀与任一子模式串对应的字符串一致,则通过所述预设公钥对当前子模式串的末位字符位置编号进行加密,得到所述第一加密值;
若当前树节点的value属性的后缀与所有子模式串对应的字符串均不一致,则通过所述预设公钥对所述待匹配字符串中当前进行处理的字符位置编号加1的值进行加密,得到所述第二加密值。
7.一种数据处理方法,其特征在于,包括:
接收服务器发送的加密更新后的状态转移矩阵;
逐一基于加密更新后的状态转移矩阵执行安全多方计算协议,在加密更新后的状态转移矩阵中选取目标矩阵元素;
接收所述服务器发送的字典树中每一树节点对应的树节点加密参数,基于所述目标矩阵元素并通过执行不经意传输协议在每一树节点对应的树节点加密参数之中选取目标加密参数;
将所述目标加密参数反馈至所述服务器,使得服务器基于所述目标加密参数反馈相应的目标树节点标签信息;
接收所述服务器发送的目标树节点标签信息。
8.根据权利要求7所述的数据处理方法,其特征在于,
所述将所述目标加密参数反馈至所述服务器,包括:
当所述目标加密参数为树节点向量时,生成一个随机正整数k,若当前树节点向量对应的待匹配字符编号为零,则将当前树节点向量作为原始待解密向量,若当前树节点向量对应的待匹配字符编号不为零,则将当前树节点向量和所述随机正整数k相乘后与历史树节点向量同项相加,得到第一目标待解密参数;将所述第一目标待解密参数反馈至所述服务器;
当所述目标加密参数为编号加密值时,通过预设公钥对当前编号加密值对应的待匹配字符编号进行加密,得到当前的字符编号加密值;将当前的字符编号加密值减去当前编号加密值,得到第二目标待解密参数;将所述第二目标待解密参数反馈至所述服务器。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的数据处理方法的步骤,或实现权利要求7至8任一项所述的数据处理方法的步骤。
10.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,实现权利要求1至6任一项所述的数据处理方法的步骤,或实现权利要求7至8任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488088.7A CN115758417A (zh) | 2022-11-22 | 2022-11-22 | 数据处理方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488088.7A CN115758417A (zh) | 2022-11-22 | 2022-11-22 | 数据处理方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115758417A true CN115758417A (zh) | 2023-03-07 |
Family
ID=85337730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211488088.7A Pending CN115758417A (zh) | 2022-11-22 | 2022-11-22 | 数据处理方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115758417A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9613292B1 (en) * | 2012-01-26 | 2017-04-04 | Hrl Laboratories, Llc | Secure multi-dimensional pattern matching for secure search and recognition |
CN110222527A (zh) * | 2019-05-22 | 2019-09-10 | 暨南大学 | 一种隐私保护方法 |
CN111368306A (zh) * | 2020-03-03 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种后台服务器安全加固的方法、系统、设备及介质 |
CN112269904A (zh) * | 2020-09-28 | 2021-01-26 | 华控清交信息科技(北京)有限公司 | 数据处理方法及装置 |
CN113901510A (zh) * | 2021-09-16 | 2022-01-07 | 山东师范大学 | 一种安全近似模式匹配方法及系统 |
CN113961768A (zh) * | 2021-12-22 | 2022-01-21 | 金蝶软件(中国)有限公司 | 敏感词检测方法、装置、计算机设备和存储介质 |
CN114900442A (zh) * | 2022-05-27 | 2022-08-12 | 中金金融认证中心有限公司 | 用于对业务数据进行预测的方法及其相关产品 |
CN115168455A (zh) * | 2022-09-07 | 2022-10-11 | 华控清交信息科技(北京)有限公司 | 一种模糊查询方法、装置、多方安全计算系统和可读存储介质 |
-
2022
- 2022-11-22 CN CN202211488088.7A patent/CN115758417A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9613292B1 (en) * | 2012-01-26 | 2017-04-04 | Hrl Laboratories, Llc | Secure multi-dimensional pattern matching for secure search and recognition |
CN110222527A (zh) * | 2019-05-22 | 2019-09-10 | 暨南大学 | 一种隐私保护方法 |
CN111368306A (zh) * | 2020-03-03 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种后台服务器安全加固的方法、系统、设备及介质 |
CN112269904A (zh) * | 2020-09-28 | 2021-01-26 | 华控清交信息科技(北京)有限公司 | 数据处理方法及装置 |
CN113901510A (zh) * | 2021-09-16 | 2022-01-07 | 山东师范大学 | 一种安全近似模式匹配方法及系统 |
CN113961768A (zh) * | 2021-12-22 | 2022-01-21 | 金蝶软件(中国)有限公司 | 敏感词检测方法、装置、计算机设备和存储介质 |
CN114900442A (zh) * | 2022-05-27 | 2022-08-12 | 中金金融认证中心有限公司 | 用于对业务数据进行预测的方法及其相关产品 |
CN115168455A (zh) * | 2022-09-07 | 2022-10-11 | 华控清交信息科技(北京)有限公司 | 一种模糊查询方法、装置、多方安全计算系统和可读存储介质 |
Non-Patent Citations (3)
Title |
---|
XIANMIN WANG等: "Oblivious Transfer for Privacy-Preserving in VANET’s Feature Matching", IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS, vol. 22, no. 7, 20 February 2020 (2020-02-20), XP011865856, DOI: 10.1109/TITS.2020.2973738 * |
亢佳等: "字符串模式匹配的安全多方计算", 密码学报, vol. 4, no. 3, 15 June 2017 (2017-06-15) * |
周凯;彭长根;朱义杰;何建琼;: "基于马尔可夫模型的同态加密位置隐私保护方案", 网络与信息安全学报, vol. 03, no. 01, 15 January 2017 (2017-01-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110326253B (zh) | 用于对加密数据进行模糊关键字搜索的方法和系统 | |
CN108388807B (zh) | 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法 | |
US8429421B2 (en) | Server-side encrypted pattern matching | |
CN111199053B (zh) | 用于对加密数据进行多字符通配符搜索的系统和方法 | |
CN113014563B (zh) | 一种保障可搜索公钥加密检索完备性的方法及系统 | |
CN105007157B (zh) | 基于设备生成的密钥来生成和管理多个基密钥 | |
EP3342090A1 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
CN107291861B (zh) | 一种面向加密图的带约束近似最短距离查询方法 | |
CN112199698B (zh) | 一种健壮的可搜索对称加密方法与系统 | |
Perl et al. | Fast confidential search for bio-medical data using bloom filters and homomorphic cryptography | |
US20220004621A1 (en) | Data recovery through reversal of hash values using probabilistic data structures | |
US7809130B1 (en) | Password recovery system and method | |
Touil et al. | Securing the storage of passwords based on the MD5 HASH transformation | |
Lisin et al. | Order-preserving encryption as a tool for privacy-preserving machine learning | |
CN116628721B (zh) | 一种数字对象的可搜索加密方法与系统 | |
Dobraunig et al. | Differential cryptanalysis of SipHash | |
US9722780B2 (en) | Complex format-preserving tokenization scheme | |
CN115758417A (zh) | 数据处理方法、电子设备及存储介质 | |
KR100951034B1 (ko) | 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법 | |
CN114900442B (zh) | 用于对业务数据进行预测的方法及其相关产品 | |
CN115913725A (zh) | 基于异或加密链的前向安全动态可搜索加密方法及系统 | |
Algazy et al. | Evaluation of the strength and performance of a new hashing algorithm based on a block cipher | |
Yamamoto | Secure automata-based substring search scheme on encrypted data | |
da Silva | Practical use of partially homomorphic cryptography | |
Polak et al. | Breaking LFSR using genetic algorithm |
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 |