CN112668034A - 数据的混淆方法、数据的切分方法、装置及设备 - Google Patents

数据的混淆方法、数据的切分方法、装置及设备 Download PDF

Info

Publication number
CN112668034A
CN112668034A CN201910983504.2A CN201910983504A CN112668034A CN 112668034 A CN112668034 A CN 112668034A CN 201910983504 A CN201910983504 A CN 201910983504A CN 112668034 A CN112668034 A CN 112668034A
Authority
CN
China
Prior art keywords
data
sub
node
graph data
graph
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.)
Granted
Application number
CN201910983504.2A
Other languages
English (en)
Other versions
CN112668034B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910983504.2A priority Critical patent/CN112668034B/zh
Publication of CN112668034A publication Critical patent/CN112668034A/zh
Application granted granted Critical
Publication of CN112668034B publication Critical patent/CN112668034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明实施例提供了一种数据的混淆方法、装置及设备。方法包括:获取待处理数据;确定与待处理数据相对应的至少一个子图数据;将至少一个子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据。本实施例提供的技术方案,通过确定与待处理数据相对应的至少一个子图数据,而后将子图数据替换为预设插件,获得与待处理数据相对应的目标数据,有效地实现了将待处理数据混淆处理为目标数据,此时,在将目标数据发送给用户或者部署在用户端的本地环境时,不会让使用者或者其他攻击者轻易识别出待处理数据的结构数据,实现了对待处理数据的有效保护,增加了对待处理数据进行窃取的难度,从而保证了待处理数据使用的安全可靠性。

Description

数据的混淆方法、数据的切分方法、装置及设备
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据的混淆方法、数据的切分方法、装置及设备。
背景技术
机器学习模型是一个团队花费了大量人力物力得到的最宝贵的智力成果。但在某些特定业务场景下,需要将模型私有化部署到客户本地环境中,这可能引发一系列的安全问题。一般情况下,机器学习模型有两部分内容需要保护,一是模型结构,另一个是模型数据,如果模型结构得不到有效保护,就容易被攻击者窃取,并基于窃取的模型结构,攻击者可以采取更多的手段去窃取模型数据,最终容易导致模型泄露。
发明内容
本发明实施例提供了一种数据的混淆方法、数据的切分方法、装置及设备,能够对数据的结构进行有效保护,增加了对数据结构进行窃取的难度,保证了数据使用的安全可靠性。
第一方面,本发明实施例提供一种数据的混淆方法,包括:
获取待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
第二方面,本发明实施例提供一种数据的混淆装置,包括:
第一获取模块,用于获取待处理数据;
第一确定模块,用于确定与所述待处理数据相对应的至少一个子图数据;
第一混淆模块,用于将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的数据的混淆方法。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的数据的混淆方法。
第五方面,本发明实施例提供了一种数据的混淆方法,包括:
获取待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
第六方面,本发明实施例提供了一种数据的混淆装置,包括:
第二获取模块,用于获取待处理数据;
第二确定模块,用于确定与所述待处理数据相对应的至少一个子图数据;
第二混淆模块,用于对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
第七方面,本发明实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第五方面中的数据的混淆方法。
第八方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第五方面中的数据的混淆方法。
本实施例提供的数据的混淆方法、装置及设备,通过获取待处理数据,确定与所述待处理数据相对应的至少一个子图数据,而后将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据,有效地实现了将待处理数据混淆处理为目标数据,此时,在将目标数据发送给用户或者部署在用户端的本地环境时,不会让使用者或者其他攻击者轻易识别出待处理数据的结构数据,实现了对待处理数据的有效保护,增加了对待处理数据进行窃取的难度,保证了待处理数据使用的安全可靠性,进而提高了该方法的实用性,有利于市场的推广与应用。
第九方面,本发明实施例提供了一种数据的切分方法,包括:
获取原始数据;
确定与所述原始数据相对应的数据切分规则;
利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据;
将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
第十方面,本发明实施例提供了一种数据的切分装置,包括:
第三获取模块,用于获取原始数据;
第三确定模块,用于确定与所述原始数据相对应的数据切分规则;
切分模块,用于利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据;
发送模块,用于将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
第十一方面,本发明实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第九方面中的数据的切分方法。
第十二方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第九方面中的数据的切分方法。
第十三方面,本发明实施例提供了一种数据的混淆方法,包括:
接收切分装置发送的待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
第十四方面,本发明实施例提供了一种数据的混淆装置,包括:
接收模块,用于接收切分装置发送的待处理数据;
第四确定模块,用于确定与所述待处理数据相对应的至少一个子图数据;
第三混淆模块,用于对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
第十五方面,本发明实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第十三方面中的数据的混淆方法。
第十六方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第十三方面中的数据的混淆方法。
本实施例提供的数据的切分方法及装置,切分装置可以将原始数据切分为用于进行数据混淆处理的一个或多个待处理数据,而后将一个或多个所述待处理数据发送至混淆装置,在混淆装置接收到待处理数据之后,可以将待处理数据混淆处理为目标数据,从而实现了切分装置对原始数据进行划分处理,混淆装置对划分处理后的一个或多个待处理数据进行混淆处理,有效地避免了数据以及数据处理算法被另一方知晓,保证了数据处理的安全可靠性;另外,在将目标数据发送给其他的用户或者部署在其他的用户端的本地环境时,不会让使用者或者其他攻击者轻易识别出待处理数据的信息,实现了对待处理数据的有效保护,增加了对待处理数据进行窃取的难度,保证了待处理数据使用的安全可靠性,进而提高了该方法的实用性,有利于市场的推广与应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据的混淆方法的流程图;
图2为本发明实施例提供的与机器学习模型相对应的图结构数据的示意图;
图3为本发明实施例提供的与所述待处理数据相对应的至少一个子图数据的示意图;
图4为本发明实施例提供的将至少一个所述子图数据替换为与所述子图数据相对应的预设插件的示意图;
图5为本发明实施例提供的确定与所述待处理数据相对应的至少一个子图数据的流程图;
图6为本发明实施例提供的遍历所有操作节点,确定与所述子图数据相对应的子图节点的流程图;
图7为本发明实施例提供的根据所述预设配置参数遍历所有操作节点,确定与所述子图数据相对应的子图节点的流程图;
图8为本发明实施例提供的另一种数据的混淆方法的流程图;
图9为本发明实施例提供的又一种数据的混淆方法的流程图;
图10为本发明实施例提供的对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据的流程图一;
图11为本发明实施例提供的一子图数据的示意图;
图12为本发明实施例提供的在所述子图数据中添加所述无效节点,获得与所述子图数据相对应的目标子图数据的示意图;
图13为本发明实施例提供的对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据的流程图二;
图14为本发明实施例提供的将所述待拆分节点拆分为至少两个子节点的示意图;
图15为本发明实施例提供的又一种数据的混淆方法的流程图;
图16为本发明实施例提供的对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据的流程图三;
图17为本发明实施例提供的将所述判断节点增加至所述子图数据中,获得与所述子图数据相对应的目标子图数据的示意图;
图18为本发明实施例提供的对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据的流程图四;
图19为本发明应用实施例提供的一种数据的混淆方法的示意图;
图20为本发明应用实施例提供的实现一种数据的混淆方法的结构示意图;
图21为本发明实施例提供的另一种数据的混淆方法的流程图;
图22为本发明实施例提供的又一种数据的处理方法的示意图;
图23为本发明实施例提供的一种数据的混淆装置的结构示意图;
图24为与图23所示实施例提供的数据的混淆装置对应的电子设备的结构示意图;
图25为本发明实施例提供的另一种数据的混淆装置的结构示意图;
图26为与图25所示实施例提供的数据的混淆装置对应的电子设备的结构示意图;
图27为本发明实施例提供的一种数据的切分装置的结构示意图;
图28为与图27所示实施例提供的数据的切分装置对应的电子设备的结构示意图;
图29为本发明实施例提供的另一种数据的混淆装置的结构示意图;
图30为与图29所示实施例提供的数据的混淆装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
为了便于理解本申请的技术方案,下面对现有技术进行简要说明:
机器学习模型是一个团队花费了大量人力物力得到的最宝贵的智力成果。但在某些特定业务场景下,需要将模型私有化部署到客户本地环境中,这可能引发一系列的安全问题。一般情况下,对于机器学习模型而言,有两部分内容需要保护,一是模型结构,另一个是模型数据;如果模型结构得不到有效保护,就容易被攻击者窃取,并且基于窃取的模型结构,攻击者可以采取更多的手段去窃取模型数据,最终导致整个机器学习模型泄露。针对上述情况,现有技术中提供的解决方法一般是对模型结构文件进行加密处理,在使用的时候再对其进行解密。但是,这样的方式很容易被攻击者通过内存备份文件系统dump将模型结构窃取。
下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1为本发明实施例提供的一种数据的混淆方法的流程图;参考附图1所示,本实施例提供了一种数据的混淆方法,该混淆方法的执行主体是数据的混淆装置,可以理解的是,该混淆装置可以实现为软件、或者软件和硬件的组合。具体的,该数据的混淆方法可以包括:
S1:获取待处理数据。
其中,待处理数据可以包括与机器学习模型相对应的图结构数据,可以理解的是,不同的机器学习模型对应有不同的图结构数据,如图2所示,提供了一种机器学习模型的图结构,包括:输入节点placeholder、卷积层计算节点conv2D、第一矩阵相加节点relu、第一数据池化层maxpool、第二矩阵相加节点biasAdd、第二数据池化层avgpoll、连接层concat、归一化softmax等等,具体的,placeholder用于输入参数,conv2D用于对输入参数进行分析计算,relu节点和biasAdd用于实现对分析计算后的数据进行矩阵相加处理,maxpool用于对relu节点处理后的最大数据进行池化存储,avgpoll用于对biasAdd节点处理后的平均数据进行池化存储;concat节点用于对池化存储的最大数据和平均数据进行融合处理,softmax节点用于对处理结果进行归一化处理。当然的,本领域技术人员也可以将机器学习模型的图结构根据具体的应用需求和应用场景设置为其他的图结构,在此不再赘述。
需要注意的是,待处理数据可以是指与机器学习模型相对应的图结构数据,也可以是指其他类型的数据,例如,待处理数据可以是某产品或者某系统所对应的框架结构数据、图表数据等等,本领域技术人员可以根据具体的应用场景和应用需求进行设置,在此不再赘述。
另外,本实施例对于获取待处理数据的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:可以通过访问某一预设区域/预设装置来获取待处理数据;或者,可以接收其他装置发送的待处理数据;或者,可以直接接收用户上传或者配置的待处理数据等等,只要能够保证待处理数据获取的稳定可靠性即可,在此不再赘述。
S2:确定与待处理数据相对应的至少一个子图数据。
在获取到待处理数据之后,可以对待处理数据进行分析处理,从而可以确定与待处理数据相对应的至少一个子图数据,其中,子图是图论的基本概念之一,是指节点集和边集分别是某一图的节点集的子集和边集的子集的图。如图3所示,在待处理数据包括与机器学习模型相对应的图结构数据时,子图数据可以是图中矩形框所标识的部分,也即,子图数据是图结构数据的一部分。可以想到的是,一个待处理数据可以对应有一个或多个子图数据,一般情况下,该子图数据即为要保护、防止被窃取的主要数据部分,另外,在具体实践的过程中,子图数据的个数和具体内容可以根据不同的保护策略和应用需求进行设置,只要能够实现对待处理数据中包括的需要进行保护、防止被窃取的数据部分进行混淆处理即可,在此不再赘述。
S3:将至少一个子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据。
在确定至少一个子图数据之后,可以将子图数据替换为预先配置的与子图数据相对应的预设插件,从而实现对待处理数据进行混淆处理的操作,进而可以获得与待处理数据相对应的目标数据。具体的,将至少一个子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据可以包括:
S31:获取与至少一个子图数据相对应的输出输入关系。
S32:根据输出输入关系,将子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据。
具体的,在确定一个子图数据之后,即可以获取与至少一个子图数据与其他节点之间的输入输出关系,该输入输出关系可以用于标识子图数据在待处理数据中的位置。在获取到与子图数据相对应的输入输出关系之后,可以根据输入输出关系确定与子图数据相对应的预设插件的替换位置,基于替换位置将子图数据替换为与子图数据相对应的预设插件,从而可以获得与待处理数据相对应的目标数据。如图4所示,在将子图数据替换为预设插件之后,可以获取到由输入节点、预设插件和归一化节点构成的目标数据,此时,在将目标数据部署到客户的本地环境中时,不会让使用者或者其他攻击者轻易识别出待处理数据的结构数据,从而实现了对机器学习模型的模型结构的有效保护,增加了对模型结构进行窃取的难度,甚至可以防止模型结构被窃取。
需要注意的是,在子图数据为多个时,为了能够区别与不同的子图数据相对应的预设插件,此时,与子图数据相对应的预设插件可以包括:与子图数据相对应的标识信息。举例来说,现有子图数据包括:子图数据a、子图数据b和子图数据c,子图数据a所对应的预设插件为SNNOP1、子图数据b所对应的预设插件为SNNOP2、子图数据c所对应的预设插件为SNNOP3,其中,预设插件SNNOP1、预设插件SNNOP2和预设插件SNNOP3的具体内容或者具体类型可以相同或不同,在获取到上述与不同子图数据相对应的预设插件之后,可以利用预设插件替换所对应的子图数据,从而可以获得与待处理数据相对应的目标数据。
本实施例提供的数据的混淆方法,通过获取待处理数据,确定与所述待处理数据相对应的至少一个子图数据,而后将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据,有效地实现了将待处理数据混淆处理为目标数据,此时,在将目标数据发送给用户或者部署在用户端的本地环境时,不会让使用者或者其他攻击者轻易识别出待处理数据的结构数据,实现了对待处理数据的有效保护,增加了对待处理数据进行窃取的难度,保证了待处理数据使用的安全可靠性,进而提高了该方法的实用性,有利于市场的推广与应用。
在上述实施例的基础上,继续参考附图1可知,在将至少一个所述子图数据替换为与所述子图数据相对应的预设插件之前,可以预先配置有多个预设插件,此时,需要在多个预设插件中选择一个替换为子图数据相对应的目标预设插件,因此,一种可实现将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据的方式可以包括:
S33:针对多个预设插件,确定与每个预设插件相对应的数据处理量。
S34:根据所述数据处理量,在多个预设插件中确定一与所述子图数据相对应的目标预设插件。
S35:将至少一个所述子图数据替换为所述目标预设插件,获得与所述待处理数据相对应的目标数据。
其中,在获得多个预设插件之后,可以确定与每个预设插件相对应的数据处理量,该数据处理量可以反映每个预设插件所对应的处理效率,一般情况下,数据处理量越大,每个预设插件所对应的处理效率越低,数据处理量越小,每个预设插件所对应的处理效率较高。在获取与每个预设插件相对应的数据处理量之后,可以根据数据处理量在多个预设插件中确定一与子图数据相对应的目标预设插件,具体的,可以将最小的数据处理量所对应的预设插件确定为与子图数据相对应的目标预设插件,在获取到目标预设插件之后,可以将至少一个子图数据替换为目标预设插件,从而可以获得与所述待处理数据相对应的目标数据。
进一步的,又一种可实现将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据的方式可以包括:
S36:获取用户针对多个预设插件中任意的预设插件所输入的执行信息。
S37:根据所述执行信息,在多个预设插件中确定一与所述子图数据相对应的目标预设插件。
S38:将至少一个所述子图数据替换为所述目标预设插件,获得与所述待处理数据相对应的目标数据。
其中,在获得多个预设插件之后,用户可以针对多个预设插件输入执行信息,该执行信息可以包括以下至少之一:滑动操作、点选操作、双击操作等等,在获取到执行信息之后,可以根据执行信息在多个预设插件中确定一与所述子图数据相对应的目标预设插件;在获取到目标预设插件之后,可以将至少一个子图数据替换为目标预设插件,从而可以获得与所述待处理数据相对应的目标数据。
本实施例中,通过根据所述数据处理量,在多个预设插件中确定一与所述子图数据相对应的目标预设插件;或者,根据用户针对多个预设插件中任意的预设插件所输入的执行信息,在多个预设插件中确定一与所述子图数据相对应的目标预设插件,不仅保证了目标预设插件获取的准确可靠性,在将至少一个所述子图数据替换为所述目标预设插件时,还有效地保证了与所述待处理数据相对应的目标数据获取的质量和效率。
图5为本发明实施例提供的确定与待处理数据相对应的至少一个子图数据的流程图;在上述实施例的基础上,继续参考附图5所示,本实施例中对于确定与待处理数据相对应的至少一个子图数据的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的确定与待处理数据相对应的至少一个子图数据可以包括:
S21:获取待处理数据包括的所有操作节点。
其中,在获取到待处理数据之后,可以对待处理数据进行分析识别,从而可以获取到待处理数据包括的所有操作节点,所有操作节点可以包括需要进行保护的操作节点和不需要进行保护的操作节点。
S22:遍历所有操作节点,确定与子图数据相对应的子图节点。
在获取到所有操作节点之后,可以遍历所有操作节点,确定与子图数据相对应的子图节点,该子图节点即为需要进行保护的操作节点。具体的,本实施例对于子图节点的具体确定方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如,可以对操作节点、操作节点的输入输出关系进行分析识别,通过分析识别结果来判断该操作节点是否为子图节点;或者,也可以预先配置有需要进行保护的操作节点标识,根据操作节点标识在所有操作节点中确定与子图数据相对应的子图节点。当然的,本领域技术人员也可以采用其他的方式来确定与子图数据相对应的子图节点,只要能够保证对子图节点进行确定的准确可靠性即可,在此不再赘述。
S23:根据子图节点确定与待处理数据相对应的至少一个子图数据。
在获取到子图节点之后,可以根据子图节点确定与待处理数据相对应的至少一个子图数据。参考附图2-3所示,在获取到待处理数据包括的所有操作节点之后,可以遍历所有操作节点,而后确定子图节点包括:卷积层计算节点conv2D、第一矩阵相加节点relu、第一数据池化层maxpool、第二矩阵相加节点biasAdd、第二数据池化层avgpoll、连接层concat;在确定上述子图节点之后,则可以根据上述子图节点确定一子图数据,如图3所示。可以想到的是,不同的子图节点可以确定不同的子图数据,如图2所示,在获取到待处理数据包括的所有操作节点之后,可以遍历所有操作节点,而后确定子图节点包括:卷积层计算节点conv2D、第一矩阵相加节点relu、第一数据池化层maxpool、第二矩阵相加节点biasAdd、第二数据池化层avgpoll时,则可以根据上述节点确定另一个子图数据,该子图数据与图3中的子图数据不同。
本实施例中,通过获取待处理数据包括的所有操作节点,遍历所有操作节点,确定与子图数据相对应的子图节点,而后根据子图节点确定与待处理数据相对应的至少一个子图数据,实现方式简单、可靠,数据处理效率高,并且还保证了对子图数据进行确定的准确可靠性,有效地提高了该方法使用的安全可靠性。
图6为本发明实施例提供的遍历所有操作节点,确定与子图数据相对应的子图节点的流程图;在上述实施例的基础上,继续参考附图6所示,本实施例中对于遍历所有操作节点,确定与子图数据相对应的子图节点的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的遍历所有操作节点,确定与子图数据相对应的子图节点可以包括:
S221:获取预设配置参数,预设配置参数与待处理数据中待保护的操作节点相对应。
其中,预设配置参数是预先设置的与待处理数据中待保护的操作节点相对应的参数,可以想到的,不同的待处理数据可以对应有不同的预设配置参数,并且,不同的应用场景和应用需求也可以对应有不同的预设配置参数。
S222:根据预设配置参数遍历所有操作节点,确定与子图数据相对应的子图节点。
在获取到预设配置参数之后,可以根据预设配置参数遍历所有操作节点,从而可以确定与子图数据相对应的子图节点,即可以根据预设配置参数筛选出所有操作节点中包括的所有子图节点。具体的,参考附图7所示,本实施例中,根据预设配置参数遍历所有操作节点,确定与子图数据相对应的子图节点可以包括:
S2221:遍历所有操作节点,获取与预设配置参数相匹配的第一操作节点。
其中,在获取到预设配置参数之后,可以使用广度优先算法在所有操作节点中获取与预设配置参数相匹配的第一操作节点,需要注意的是,第一操作节点的个数为一个或多个,简单理解来说,第一操作节点是满足预设配置参数条件的所有操作节点的统称。举例来说:遍历所有操作节点,可以获取到与预设配置参数相匹配的四个操作节点,此时,这四个操作节点均可以称为是第一操作节点。
S2222:确定与第一操作节点具有关联关系的第二操作节点。
在获取到第一操作节点之后,可以确定与第一操作节点具有关联关系的第二操作节点,其中,该关联关系可以是指输出关联关系,也即第二操作节点为第一操作节点的输出节点,并且,该第二操作节点的个数可以为一个或多个。具体的,本实施例中的确定与第一操作节点具有关联关系的第二操作节点可以包括:
S22221:广度遍历第一操作节点,确定与第一操作节点具有关联关系的至少一个第二操作节点。
其中,可以使用广度优先算法遍历第一操作节点,从而可以获得与第一操作节点具有关联关系的至少一个第二操作节点,该第二操作节点即为第一操作节点的后续节点。
S2223:在第二操作节点与预设配置参数相匹配时,则将第一操作节点和第二操作节点确定为与一子图数据相对应的子图节点。或者,
S2224:在第二操作节点与预设配置参数不匹配时,则深度遍历与第二操作节点具有关联关系的关联操作节点,并将第二操作节点和关联操作节点确定为非保护节点。
在获取到第二操作节点之后,即可以对第二操作节点进行分析识别,以判断该第二操作节点是否为需要进行保护的操作节点,具体的,将第二操作节点与预设配置参数进行分析匹配,若第二操作节点与预设配置参数相匹配,则说明该第二操作节点为需要进行保护的操作节点,进而可以将第一操作节点和第二操作节点均确定为与一子图数据相对应的子图节点。若第二操作节点与预设配置参数不匹配,则说明该第二操作节点不需要进行保护,进而利用深度算法遍历所有与第二操作节点具有关联关系的关联操作节点,并将第二操作节点和关联操作节点确定为不要进行保护的非保护节点,也即,此时无需在对第二操作节点和关联操作节点进行子图节点的识别操作,这样有效地提高了数据处理的质量和效率,节省了数据处理资源。
另外,在将第一操作节点和第二操作节点均确定为与一子图数据相对应的子图节点之后,可以将第二操作节点作为另一个新的第一操作节点继续进行分析,即可以广度遍历第二操作节点(新的第一操作节点),确定与第二操作节点具有关联关系的至少一个第三操作节点(新的第二操作节点),并对第三操作节点进行分析识别,以判断第三操作节点是否为需要进行保护的操作节点,若第三操作节点与预设配置参数相匹配,则可以将第一操作节点、第二操作节点和第三操作节点均作为一子图数据相对应的子图节点,若第三操作节点与预设配置参数不匹配,则可以将第一操作节点和第二操作节点确定为子图数据相对应的子图节点,第三操作节点确定为不需要进行保护的操作节点,此时,由第一操作节点和第二操作节点可以构成一子图数据,此时即完成了一个子图数据的识别操作,进而可以进行下一个新子图数据的识别过程,具体的操作过程同上相类似,在此不再赘述。
可以想到的是,在将第一操作节点和第二操作节点确定为与一子图数据相对应的子图节点之后,本实施例中的方法还可以包括:
S2225:根据第一操作节点和第二操作节点确定一子图数据。
其中,所确定的子图数据中可以不仅仅包括第一操作节点和第二操作节点,由于第一操作节点与第二操作节点之间存在关联关系,因此,在将第一操作节点和第二操作节点确定为子图节点之后,可以确定第一操作节点和第二操作节点为同一个子图数据中包括的子图节点,具体的,若第二操作节点之后的其他关联节点同样是子图节点,那么该子图数据中也可以包括其他关联节点;在第二操作节点之后其他关联节点不是子图节点,那么该子图数据中即不包括其他关联节点。
本实施例中,通过获取预设配置参数,预设配置参数与待处理数据中待保护的操作节点相对应,根据预设配置参数遍历所有操作节点,确定与子图数据相对应的子图节点,有效地保证了对子图节点和子图数据进行确定的准确可靠性,进一步保证了该方法使用的安全可靠程度。
图8为本发明实施例提供的另一种数据的混淆方法的流程图;在上述实施例的基础上,继续参考附图8所示,在确定与第一操作节点具有关联关系的第二操作节点之前,本实施例中的方法还可以包括:
S101:检测所确定的子图数据中是否包括第一操作节点。
S102:在子图数据中包括第一操作节点时,则停止确定与第一操作节点具有关联关系的第二操作节点。
在对第一操作节点进行分析识别的过程中,可以检测所确定的子图数据中是否包括第一操作节点,也即判断该第一操作节点是否已经确定为其他子图数据中所包括的子图节点,若子图数据中已经包括第一操作节点,则说明该第一操作节点已经进行了分析识别操作,此时无需在对第一操作节点进行重复分析,进而,则可以停止确定第一操作节点具有关联关系的第二操作节点,这样可以有效地节省数据处理资源。
举例来说,现有第一操作节点a、第一操作节点b、第一操作节点c、第一操作节点d,在对第一操作节点a进行分析识别时,可以确定与第一操作节点a具有关系的第二操作节点a1为子图节点,此时可以将第二操作节点a1作为另一个新的第一操作节点继续进行分析识别,即可以确定与第二操作节点a1具有关联关系的第三操作节点a2,此时,第三操作节点a2不是子图节点,进而可以确定第一操作节点a与第二操作节点a1构成了一个子图数据A。
之后,再对第一操作节点b和第一操作节点c进行分析识别,具体的分析识别过程同上相类似,假设通过对第一操作节点b进行分析处理后,可以确定与第一操作节点b相对应的子图数据B;而在对第一操作节点c进行分析识别时,发现第一操作节点c与第二操作节点a1为同一个操作节点,即第一操作节点c已经被包括在子图数据A中,此时,则说明已经对第一操作节点c进行了分析识别操作,进而可以停止对第一操作节点c进行分析识别,即停止确定与第一操作节点c具有关联关系的第二操作节点,并可以对下一个第一操作节点d进行分析处理。
本实施例中,在确定与第一操作节点具有关联关系的第二操作节点之前,通过检测所确定的子图数据中是否包括第一操作节点,在子图数据中包括第一操作节点时,则停止确定与第一操作节点具有关联关系的第二操作节点,有效地避免了对操作节点的重复识别处理,保证了数据处理的质量和效率,节省了数据处理资源,进一步提高了该方法的实用性。
图9为本发明实施例提供的又一种数据的混淆方法的流程图;在上述实施例的基础上,继续参考附图9所示,为了进一步提高对数据进行混淆处理的效果,在确定与待处理数据相对应的至少一个子图数据之后,本实施例中的方法还可以包括:
S201:获取与待处理数据相对应的混淆强度。
其中,不同的待处理数据可以对应有不同的混淆强度,例如:可以将比较重要、安全性较高的待处理数据的混淆强度设置为较高,将安全性较低的待处理数据的混淆强度设置为较低等等,具体的,本领域技术人员可以根据不同的待处理数据、不同的应用需求和设计需求对混淆强度进行设置,只要能够实现对待处理数据进行有效的保护即可,在此不再赘述。
S202:根据混淆强度,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据。
在获取到混淆强度之后,可以根据混淆强度对至少一个子图数据进行混淆处理,从而可以获得与子图数据相对应的目标子图数据。其中,根据混淆强度,对至少一个子图数据进行混淆处理可以包括:
S2021:在混淆强度大于或等于预设强度阈值时,则对所有子图数据进行混淆处理。或者,
S2022:在混淆强度小于预设强度阈值时,则对部分的子图数据进行混淆处理。
具体的,在获取到混淆强度之后,可以将混淆强度与预设强度阈值进行分析比较,在混淆强度大于或等于预设强度阈值时,则说明此时的待处理数据的安全性较高,所需要进行保护的力度较高,进而可以对所有子图数据进行混淆处理;在混淆强度小于预设强度阈值时,则说明此时的待处理数据的安全性较低,所需要进行保护的力度较低,进而可以对部分的子图数据进行混淆处理。举例来说,待处理数据可以包括待处理数据a和待处理数据b,待处理数据a所对应的混淆强度为低混淆强度,待处理数据b所对应的混淆强度为高混淆强度,通过上述的低混淆强度可以对待处理数据a中的部分子图数据进行混淆处理,通过上述的高混淆强度可以对待处理数据b中的所有子图数据进行混淆处理。
通过混淆强度可以对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据,从而实现了可以针对不同的混淆需求来进行不同的混淆操作,进而可以得到不同的目标子图数据,有效地提高了该方法的使用灵活程度。
图10为本发明实施例提供的对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的流程图一;在上述实施例的基础上,继续参考附图10所示,本实施例对于对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,其中,一种可实现的方式为,本实施例中的对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据可以包括:
S2023:获取与子图数据相对应的无效节点,无效节点包括用于标识节点无效的标识信息。
S2024:在子图数据中添加无效节点,获得与子图数据相对应的目标子图数据。
其中,在获取到子图数据之后,可以获取与子图数据相对应的无效节点,该无效节点可以是预先配置好的,并且,该无效节点可以包括用于标识节点无效的标识信息,以便在对子图数据进行分析处理时,可以识别出该无效节点,并对该无效节点进行忽略操作。在获取到与子图数据相对应的无效节点之后,可以在子图数据中的任意一个位置处增加无效节点,从而可以获得与子图数据相对应的目标子图数据。
举例来说,参考附图11-12所示,子图数据包括:卷积层计算节点、第一矩阵相加节点、第一数据池化层、第二矩阵相加节点、第二数据池化层和连接层,在获取到上述的子图数据之后,可以确定与子图数据相对应的至少一个无效节点,在获取到至少一个无效节点之后,可以将至少一个无效节点添加至子图数据中,例如,将无效节点添加至卷积层计算节点与连接层之间,或者,也可以将无效节点添加至其他的位置,从而可以获得与子图数据相对应的目标子图数据。
本实施例中,通过获取与子图数据相对应的无效节点,而后在子图数据中添加无效节点,获得与子图数据相对应的目标子图数据,有效地增加了子图数据结构的复杂程度,实现了对子图数据进行混淆处理的效果,进而保证了对子图数据进行识别的困难程度,由于子图数据是待处理数据的一部分,因此,有效地避免了待处理数据被窃取的风险,进一步提高了对待处理数据进行保护的力度。
图13为本发明实施例提供的对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的流程图二;参考附图13所示,本实施例提供了另一种可实现对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的方式,具体的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据可以包括:
S2025:在子图数据中,获取待拆分节点以及与待拆分节点相对应的输入输出关系。
其中,待拆分节点可以是子图数据中的任意一个或多个节点,具体的,本领域技术人员可以在子图数据中随机选择待拆分节点,在获取到待拆分节点之后,可以通过子图数据获取到待拆分节点相对应的输入输出关系,对于待拆分节点而言,输入节点的信息和输出节点的信息。
S2026:将待拆分节点拆分为至少两个子节点。
在获取到待拆分节点之后,为了实现对待处理数据的混淆操作,可以将待拆分节点拆分为至少两个子节点,其中,本实施例对于对待拆分节点进行拆分的具体规则不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:可以将待拆分节点拆分为2个子节点、3个子节点、4个子节点等等;只要能够保证待拆分节点的输入与至少两个子节点的整体输入相同,待拆分节点的输出与至少两个节点的整体输出相同即可。其中,在将待拆分节点拆分为至少两个子节点时,一种可实现的方式为,本实施例中的将待拆分节点拆分为至少两个子节点可以包括:
S20261:获取与待拆分节点相对应的拆分方式。
S20262:根据拆分方式对待拆分节点进行拆分,获得至少两个子节点。
其中,拆分方式可以包括:拆分的子节点数量、拆分的子节点所对应的数据大小等等,可以理解的是,不同的待拆分节点对应有不同的拆分方式,同一个待拆分节点在不同的应用场景或者应用需求下可以对应有不同的拆分方式。具体的,本实施例对于拆分方式的具体获取方式不做限定,本领域技术人员可以根据具体的应用需求进行设置,例如:预先存储有待拆分节点类型与拆分方式相对应的关联关系,在获取到待拆分节点之后,可以根据上述关联关系确定关于待拆分节点相对应的拆分方式;或者,拆分方式可以是用户根据待拆分节点进行配置的;在获取到拆分方式之后,可以基于拆分方式对待拆分节点进行拆分操作,从而可以获得满足拆分方式的至少两个子节点,这样不仅保证了拆分操作的稳定可靠性,并且还可以满足用户的不同使用需求。
S2027:根据输入输出关系,将待拆分节点替换为至少两个子节点。
在将待拆分节点拆分为至少两个子节点之后,可以根据待拆分节点所对应的输入输出关系,将待拆分节点替换为至少两个子节点。举例来说,如图14所示,子图数据包括输入节点、卷积层计算节点和归一化节点,其中,在确定卷积层计算节点为待拆分节点之后,可以获取与该待拆分节点相对应的拆分方式,从而可以基于拆分方式对待拆分节点进行拆分,获得至少四个子节点,分别为分组子节点、第一卷积计算子节点、第二卷积计算子节点和连接层子节点,其中,分组子节点用于将卷积层计算节点拆分为第一卷积计算子节点和第二卷积计算子节点,需要注意的是,分组子节点的输入信息与卷积层计算节点的输入信息相同,连接层子节点的输出信息与卷积层计算节点的输出信息相同,从而保证了原有待处理数据进行数据处理的准确可靠性。
本实施例中,通过在子图数据中,获取待拆分节点以及与待拆分节点相对应的输入输出关系,将待拆分节点拆分为至少两个子节点,根据输入输出关系,将待拆分节点替换为至少两个子节点,从而有效地增加了子图数据结构的复杂程度,实现了对子图数据进行混淆处理的效果,进而保证了对子图数据进行识别的困难程度,由于子图数据是待处理数据的一部分,因此,有效地避免了待处理数据被窃取的风险,进一步提高了对待处理数据进行保护力度。
图15为本发明实施例提供的又一种数据的混淆方法的流程图;在上述实施例的基础上,继续参考附图15所示,在将待拆分节点替换为至少两个子节点之后,本实施例中的方法还可以包括:
S301:获取至少两个子节点中每个子节点的数据量。
S302:在子节点的数据量大于或等于预设阈值时,则利用图形处理器运行子节点。或者,
S303:在子节点的数据量大于或等于预设阈值时,则利用中央处理器运行子节点。
在根据拆分方式对待拆分节点进行拆分之后,可以确定至少两个子节点以及每个子节点所对应的数据量,在获取到每个子节点所对应的数据量之后,可以将数据量与预设阈值进行分析比较,在子节点的数量大于或等于预设阈值时,则说明该子节点所对应的数据处理量较大,为了能够保证对该子节点进行数据处理的质量和效率,可以利用图形处理器GPU来运行子节点;在子节点的数量小于预设阈值时,则说明该子节点所对应的数据处理量较小,此时,可以利用中央处理器CPU来运行子节点。
本实施例中,通过获取至少两个子节点中每个子节点的数据量,对于不同数据量的子节点利用不同的处理器进行运行,不仅保证了每个子节点进行数据处理的质量和效率,并且也有效地实现了数据资源的灵活调用,进一步提高了该方法使用的灵活可靠性。
图16为本发明实施例提供的对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的流程图三;参考附图16所示,本实施例提供了又一种可实现对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的方式,具体的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据可以包括:
S2028:获取与子图数据相对应的判断节点,判断节点所对应的判断逻辑为真。
S2029:将判断节点增加至子图数据中,获得与子图数据相对应的目标子图数据。
其中,在获取到子图数据之后,可以获取与子图数据相对应的判断节点,该判断节点可以是预先配置好的,并且,该判断节点所对应的判断逻辑可以恒为真,以便保持子图数据的原有的数据处理逻辑不变。在获取到与子图数据相对应的判断节点之后,可以在子图数据位于中间的任意一个位置处增加判断节点,从而可以获得与子图数据相对应的目标子图数据。
举例来说,参考附图17所示,子图数据包括:输入节点、卷积层计算节点和归一化节点,在获取到上述的子图数据之后,可以确定与子图数据相对应的至少一个判断节点,在获取到至少一个判断节点之后,可以将至少一个判断节点添加至子图数据中,例如,将判断节点添加至输入节点与卷积层计算节点之间,具体的,在判断节点的判断逻辑为真时,则执行卷积层计算节点所对应的处理逻辑,在判断节点的判断逻辑为假时,则执行归一化节点所对应的处理逻辑。由于预先设定的判断节点的判断逻辑恒为真,因此,获得的目标子图数据所对应的数据处理逻辑与原子图数据所对应的数据处理逻辑相同。
本实施例中,通过获取与子图数据相对应的判断节点,而后在子图数据中添加判断节点,获得与子图数据相对应的目标子图数据,在保证了子图数据的原有数据处理逻辑的同时,有效地增加了子图数据结构的复杂程度,实现了对子图数据进行混淆处理的效果,进而保证了对子图数据进行识别的困难程度,由于子图数据是待处理数据的一部分,因此,有效地避免了待处理数据被窃取的风险,进一步提高了对待处理数据进行保护力度。
图18为本发明实施例提供的对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的流程图四;参考附图18所示,本实施例提供了另一种可实现对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据的方式,具体的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据可以包括:
S20210:在子图数据包括并列分支时,获取并列分支中包括的所有分支节点。
S20211:对所有分支节点的执行顺序进行调整,获得与子图数据相对应的目标子图数据。
具体的,在获取到子图数据之后,可以对子图数据的数据结构进行分析识别,在子图数据包括并列分支时,可以获取并列分支中包括的所有分支节点。如图11所示,子图数据包括:卷积层计算节点、第一矩阵相加节点、第一数据池化层、第二矩阵相加节点、第二数据池化层和连接层,此时,对于卷积层计算节点而言,其输出结果会同时输入到第一矩阵相加节点和第二矩阵相加节点,此时,第一矩阵相加节点和第二矩阵相加节点即构成了并列分支中的两个分支的起始节点,而第一数据池化层和第二数据池化层的数据结果会同时输入到连接层,此时,第一数据池化层和第二数据池化层即构成了并列分支中的两个分支的结束节点,进而可以获得并列分支中包括的所有分支节点为:第一矩阵相加节点、第一数据池化层、第二矩阵相加节点和第二数据池化层。
在获取到并列分支中包括的所有分支节点之后,可以对并列分支中包括的所有分支节点的执行顺序进行调整,从而获得与子图数据相对应的目标子图数据,例如:所有分支节点的执行顺序可以为:(1)第一矩阵相加节点-(2)第一数据池化层-(3)第二矩阵相加节点-(4)第二数据池化层、(1)第一矩阵相加节点-(2)第二矩阵相加节点-(3)第一数据池化层-(4)第二数据池化层或者(1)第二矩阵相加节点-(2)第二数据池化层-(3)第一矩阵相加节点-(4)第一数据池化层等等,本领域技术人员可以根据具体的应用需求和设计需求对所有分支节点的执行顺序进行调整,只要能够在对所有分支节点的执行顺序进行调整时,保持每个分支中的输入输出关系不变即可,在此不再赘述。
本实施例中,在子图数据包括并列分支时,获取并列分支中包括的所有分支节点,对所有分支节点的执行顺序进行调整,获得与子图数据相对应的目标子图数据,在保证了子图数据中每个分支的原有数据处理逻辑的同时,有效地增加了子图数据结构的复杂程度,实现了对子图数据进行混淆处理的效果,进而保证了对子图数据进行识别的困难程度,由于子图数据是待处理数据的一部分,因此,有效地避免了待处理数据被窃取的风险,进一步提高了对待处理数据进行保护力度。
具体应用时,参考附图19-20所示,本应用实施例提供了一种数据的混淆方法,该方法的执行主体可以为数据的混淆装置,该混淆装置的具体结构可以参考附图20所示,为了便于理解本实施例中数据的混淆方法的实现过程,以机器学习模型的图结构作为待处理数据为例进行说明,此时,该方法可以实现通过图混淆的方式将模型结构进行混淆,从而让用户和/或攻击者无法轻易获取模型结构。具体的,本实施例可以包括四个数据处理部分:
第一部分:利用子图查找模块进行数据处理。
从机器学习模型的图结构数据中查找能支持的子图数据,假设能支持的操作节点OP(即为需要进行保护的操作节点)均可以预先存储至集合A中,具体的,查找子图数据的过程包括:
第一,使用广度优先算法遍历机器学习模型的图结构数据中的每个OP,判断当前OP是否属于集合A,如果属于,那么可以确定该OP节点就是一个新子图数据的初始节点,此时,为了便于对子图数据进行确定的准确性,可以将该OP节点放入子图集合S中。
第二,初始化一个队列Q,将集合S中的初始节点放入Q中。
第三,如果队列Q是空的,那么,则说明本次查找子图结束,跳转到第四步。否则,从队列Q的队列头部获取一个操作节点M,广度遍历操作节点M的后续节点,该后续节点即为与操作节点M存在关联关系的操作节点。
在获取到后续节点之后,可以判断这些节点是否属于集合A,如果属于,将其加入队列Q中,同时也将其加入子图集合S中,表示该操作节点可以被保护。否则,深度遍历M节点,将其所有的后续节点放入集合B中,集合B表示里面的节点无法在当前子图中被保护。
第四,队列Q为空,本次查找结束,集合S中所有节点就是本次子图中包含的所有节点。继续跳转到第一步,采用与上述相同的方式,从剩下的节点开始查找下一个初始节点,一直到对所有操作节点进行分析处理完为止,从而可以获得该机器学习模型的图结构能支持的所有子图数据。
第二部分:利用子图替换模块进行数据处理。
其中,图替换模块可以实现将子图数据替换成一个预设插件OP,从而实现混淆模型结构的效果。具体的,可以先遍历所有的子图数据,确定每个子图数据与其他节点的输入输出关系,基于输入输出关系,可以使用预设插件OP替换每个子图数据中包括的所有节点。
第三部分:利用结构混淆模块进行数据处理。
其中,结构混淆模块可以实现随机挑选图混淆算法,并基于所挑选的图混淆算法对机器学习模型的图结构/子图数据进行混淆,从而打乱原本的模型图结构,获得与子图数据相对应的混淆后的二进制文件,这样可以极大增加破解模型结构的代价。具体应用时,预先设置有多种图混淆算法,用户可以根据不同的混淆强度挑选合适的图混淆算法对模型结构进行混淆。
举例来说,预先设置的多种图混淆算法可以包括:添加无效节点、拆分节点、概率分支、调整分支节点顺序等等算法。具体的,(a)无效节点OP的添加方式主要是在图结构/子图数据中添加无效的OP节点,并针对OP节点添加无效节点的识别属性。当模型实际在运行的时候,会自动忽略这个OP节点。(b)拆分节点的方式主要是针对图结构/子图数据中的至少一个节点拆分为至少两个子节点的过程,并且,在进行节点拆分操作之后,可以将不同数据量大小的子节点在不同的设备上进行运行,这样可以进一步混淆攻击者。(c)概率分支的方式主要是添加一些逻辑概率分支,所添加的概率分支可以通过判断节点来实现,并且判断节点的判断逻辑为真。(d)调整分支节点顺序的算法主要是对存在有并列分支的图结构/子图数据中的所有节点的执行顺序进行随机调整,将图结构/子图数据变成串行结构,彻底打乱原本的图结构,由于每次调度的顺序存在一定随机性,攻击者攻击的迁移成本也会随之提高,极大增加的破解模型结构的代价。
需要注意的是,本实施例中的数据混淆方法可以结合多种混淆算法对模型结构进行混淆,这样在将模型结构部署在客户端时,可以极大地增加模型结构的破解难度,进而有效地保护了对机器学习模型,进而提高了该方法使用的安全可靠性。
图21为本发明实施例提供的另一种数据的混淆方法的流程图;参考附图21所示,本实施例提供了另一种数据的混淆方法,该混淆方法的执行主体是数据的混淆装置,可以理解的是,该混淆装置可以实现为软件、或者软件和硬件的组合。具体的,该数据的混淆方法可以包括:
S401:获取待处理数据。
S402:确定与待处理数据相对应的至少一个子图数据。
S403:对至少一个子图数据进行混淆处理,获得与待处理数据相对应的目标数据。
进一步的,对至少一个子图数据进行混淆处理,获得与待处理数据相对应的目标数据可以包括:
S4031:获取与待处理数据相对应的混淆强度;
S4032:根据混淆强度,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据;
S4033:根据目标子图数据和未进行混淆处理的子图数据,确定与待处理数据相对应的目标数据。
进一步的,根据混淆强度,对至少一个子图数据进行混淆处理,包括:
S40321:在混淆强度大于或等于预设强度阈值时,则对所有子图数据进行混淆处理;或者,
S40322:在混淆强度小于预设强度阈值时,则对部分的子图数据进行混淆处理。
进一步的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据,包括:
S40323:获取与子图数据相对应的无效节点,无效节点包括用于标识节点无效的标识信息;
S40324:在子图数据中添加无效节点,获得与子图数据相对应的目标子图数据。
进一步的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据,包括:
S40325:在子图数据中,获取待拆分节点以及与待拆分节点相对应的输入输出关系;
S40326:将待拆分节点拆分为至少两个子节点;
S40327:根据输入输出关系,将待拆分节点替换为至少两个子节点。
进一步的,将待拆分节点拆分为至少两个子节点,包括:
S403261:获取与待拆分节点相对应的拆分方式;
S403262:根据拆分方式对待拆分节点进行拆分,获得至少两个子节点。
进一步的,在将待拆分节点替换为至少两个子节点之后,该方法还可以包括:
S501:获取至少两个子节点中每个子节点的数据量;
S502:在子节点的数据量大于或等于预设阈值时,则利用图形处理器运行子节点;或者,
S503:在子节点的数据量大于或等于预设阈值时,则利用中央处理器运行子节点。
进一步的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据,包括:
S40328:获取与子图数据相对应的判断节点,判断节点所对应的判断逻辑为真;
S40329:将判断节点增加至子图数据中,获得与子图数据相对应的目标子图数据。
进一步的,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据,包括:
S403210:在子图数据包括并列分支时,获取并列分支中包括的所有分支节点;
S403211:对所有分支节点的执行顺序进行调整,获得与子图数据相对应的目标子图数据。
进一步的,在对所有分支节点的执行顺序进行调整时,该方法还可以包括:
S403212:保持每个分支中的输入输出关系不变。
其中,本实施例中上述步骤的实现过程、实现效果与步骤S1-S2以及附图9-图20所对应的方法的实现过程、实现效果相类似,具体可参考上述陈述内容,在此不再赘述。
图22为本发明实施例提供的又一种数据的处理方法的示意图;参考附图22所示,本实施例提供了一种数据的切分方法,该切分方法的执行主体是切分装置,可以理解的是,该切分装置可以实现为软件、或者软件和硬件的组合。具体的,该数据的切分方法可以包括:
S601:获取原始数据。
S602:确定与所述原始数据相对应的数据切分规则。
S603:利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据。
S604:将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
其中,在用户需要对原始数据中的至少一部分数据进行混淆处理时,此时,为了避免使得混淆装置获知到原始数据,可以利用切分装置对原始数据进行数据切分处理,具体的,在切分装置获取到原始数据之后,可以确定与原始数据相对应的数据切分规则,可以理解的是,不同类型的原始数据可以对应有不同的数据切分规则,此时,可以根据原始数据的数据类型、混淆处理的需求来确定与原始数据相对应的数据切分规则。在获取到数据切分规则之后,可以利用数据切分规则将原始数据切分为用于进行数据混淆处理的一个或多个待处理数据,而后可以将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
继续参考附图22所示,本实施例提供了一种数据的混淆方法,该混淆方法的执行主体是混淆装置,可以理解的是,该混淆装置可以实现为软件、或者软件和硬件的组合,并且,该混淆装置与上述数据的切分装置通信连接。具体的,该数据的混淆方法可以包括:
S701:接收切分装置发送的待处理数据。
S702:确定与所述待处理数据相对应的至少一个子图数据。
S703:将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
其中,在切分装置将待处理数据发送至混淆装置之后,可以使得混淆装置接收到切分装置发送的待处理数据,可以理解的是,待处理数据为切分装置中原始数据的至少一部分数据,此时的混淆装置是没有获知全部的原始数据的。在混淆装置接收到待处理数据之后,可以对待处理数据进行数据混淆处理,具体的,可以先对待处理数据进行模式识别处理,从而可以确定与所述待处理数据相对应的至少一个子图数据,而后将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据,实现了对待处理数据进行数据混淆的操作。本实施例中对待处理数据进行数据混淆处理的实现方式、实现效果与上述实施例中步骤S1-S3的实现方式、实现效果相类似,具体可参考上述陈述内容,在此不再赘述。
此外,图22所示装置还可以执行图1-图20所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图20所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图20所示实施例中的描述,在此不再赘述。
本实施例提供的技术方案,切分装置可以将原始数据切分为用于进行数据混淆处理的一个或多个待处理数据,而后将一个或多个所述待处理数据发送至混淆装置,在混淆装置接收到待处理数据之后,可以将待处理数据混淆处理为目标数据,从而实现了切分装置对原始数据进行划分处理,混淆装置对划分处理后的一个或多个待处理数据进行混淆处理,有效地避免了数据以及数据处理算法被另一方知晓,保证了数据处理的安全可靠性;另外,在将目标数据发送给其他的用户或者部署在其他的用户端的本地环境时,如图22所示,不会让使用者或者其他攻击者轻易识别出待处理数据的信息,实现了对待处理数据的有效保护,增加了对待处理数据进行窃取的难度,保证了待处理数据使用的安全可靠性,进而提高了该方法的实用性,有利于市场的推广与应用。
图23为本发明实施例提供的一种数据的混淆装置的结构示意图;参考附图23所示,本实施例提供了一种数据的混淆装置,该数据的混淆装置可以执行上述图1的数据的混淆方法,具体的,该混淆装置可以包括:
第一获取模块11,用于获取待处理数据;
第一确定模块12,用于确定与待处理数据相对应的至少一个子图数据;
第一混淆模块13,用于将至少一个子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据。
进一步的,待处理数据包括与机器学习模型相对应的图结构数据。
进一步的,在第一确定模块12确定与待处理数据相对应的至少一个子图数据时,该第一确定模块12可以用于执行:获取待处理数据包括的所有操作节点;遍历所有操作节点,确定与子图数据相对应的子图节点;根据子图节点确定与待处理数据相对应的至少一个子图数据。
进一步的,在第一确定模块12遍历所有操作节点,确定与子图数据相对应的子图节点时,该第一确定模块12可以用于执行:获取预设配置参数,预设配置参数与待处理数据中待保护的操作节点相对应;根据预设配置参数遍历所有操作节点,确定与子图数据相对应的子图节点。
进一步的,在第一确定模块12根据预设配置参数遍历所有操作节点,确定与子图数据相对应的子图节点时,该第一确定模块12可以用于执行:遍历所有操作节点,获取与预设配置参数相匹配的第一操作节点;确定与第一操作节点具有关联关系的第二操作节点;在第二操作节点与预设配置参数相匹配时,则将第一操作节点和第二操作节点确定为与一子图数据相对应的子图节点;或者,在第二操作节点与预设配置参数不匹配时,则深度遍历与第二操作节点具有关联关系的关联操作节点,并将第二操作节点和关联操作节点确定为非保护节点。
进一步的,在第一确定模块12确定与第一操作节点具有关联关系的第二操作节点时,该第一确定模块12可以用于执行:广度遍历第一操作节点,确定与第一操作节点具有关联关系的至少一个第二操作节点。
进一步的,在确定与第一操作节点具有关联关系的第二操作节点之前,本实施例中的第一确定模块12还可以用于执行:检测所确定的子图数据中是否包括第一操作节点;在子图数据中包括第一操作节点时,则停止确定与第一操作节点具有关联关系的第二操作节点。
进一步的,在将第一操作节点和第二操作节点确定为与一子图数据相对应的子图节点之后,本实施例中的第一确定模块12还可以用于执行:根据第一操作节点和第二操作节点确定一子图数据。
进一步的,在第一混淆模块13将至少一个子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据时,该第一混淆模块13可以用于执行:获取与至少一个子图数据相对应的输出输入关系;根据输出输入关系,将子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据。
进一步的,在子图数据为多个时,与子图数据相对应的预设插件包括:与子图数据相对应的标识信息。
进一步的,在确定与待处理数据相对应的至少一个子图数据之后,本实施例中的第一获取模块11和第一混淆模块13还可以用于执行以下步骤:
第一获取模块11,用于获取与待处理数据相对应的混淆强度;
第一混淆模块13,用于根据混淆强度,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据。
进一步的,在第一混淆模块13根据混淆强度,对至少一个子图数据进行混淆处理时,该第一混淆模块13可以用于执行:在混淆强度大于或等于预设强度阈值时,则对所有子图数据进行混淆处理;或者,在混淆强度小于预设强度阈值时,则对部分的子图数据进行混淆处理。
进一步的,在第一混淆模块13对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第一混淆模块13可以用于执行:获取与子图数据相对应的无效节点,无效节点包括用于标识节点无效的标识信息;在子图数据中添加无效节点,获得与子图数据相对应的目标子图数据。
进一步的,在第一混淆模块13对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第一混淆模块13可以用于执行:在子图数据中,获取待拆分节点以及与待拆分节点相对应的输入输出关系;将待拆分节点拆分为至少两个子节点;根据输入输出关系,将待拆分节点替换为至少两个子节点。
进一步的,在第一混淆模块13将待拆分节点拆分为至少两个子节点时,该第一混淆模块13可以用于执行:获取与待拆分节点相对应的拆分方式;根据拆分方式对待拆分节点进行拆分,获得至少两个子节点。
进一步的,在将待拆分节点替换为至少两个子节点之后,本实施例中的第一获取模块11和第一混淆模块13还可以用于执行以下步骤:
第一获取模块11,用于获取至少两个子节点中每个子节点的数据量;
第一混淆模块13,用于在子节点的数据量大于或等于预设阈值时,则利用图形处理器运行子节点;或者,在子节点的数据量大于或等于预设阈值时,则利用中央处理器运行子节点。
进一步的,在第一混淆模块13对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第一混淆模块13可以用于执行:获取与子图数据相对应的判断节点,判断节点所对应的判断逻辑为真;将判断节点增加至子图数据中,获得与子图数据相对应的目标子图数据。
进一步的,在第一混淆模块13对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第一混淆模块13可以用于执行:在子图数据包括并列分支时,获取并列分支中包括的所有分支节点;对所有分支节点的执行顺序进行调整,获得与子图数据相对应的目标子图数据。
进一步的,在对所有分支节点的执行顺序进行调整时,该第一混淆模块13可以用于执行:保持每个分支中的输入输出关系不变。
图23所示装置可以执行图1-图20所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图20所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图20所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图23所示数据的混淆装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图24所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储相对应电子设备执行上述图1-图20所示实施例中提供的数据的混淆方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:
获取待处理数据;
确定与待处理数据相对应的至少一个子图数据;
将至少一个子图数据替换为与子图数据相对应的预设插件,获得与待处理数据相对应的目标数据。
进一步的,第一处理器21还用于执行前述图1-图20所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1-图20所示方法实施例中数据的混淆方法所涉及的程序。
图25为本发明实施例提供的一种数据的混淆装置的结构示意图;参考附图25所示,本实施例提供了另一种数据的混淆装置,该数据的混淆装置可以执行上述图21的数据的混淆方法,具体的,该混淆装置可以包括:
第二获取模块31,用于获取待处理数据;
第二确定模块32,用于确定与待处理数据相对应的至少一个子图数据;
第二混淆模块33,用于对至少一个子图数据进行混淆处理,获得与待处理数据相对应的目标数据。
进一步的,在第二混淆模块33对至少一个子图数据进行混淆处理,获得与待处理数据相对应的目标数据时,该第二混淆模块33可以用于执行:获取与待处理数据相对应的混淆强度;根据混淆强度,对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据;根据目标子图数据和未进行混淆处理的子图数据,确定与待处理数据相对应的目标数据。
进一步的,在第二混淆模块33根据混淆强度,对至少一个子图数据进行混淆处理时,该第二混淆模块33可以用于执行:在混淆强度大于或等于预设强度阈值时,则对所有子图数据进行混淆处理;或者,在混淆强度小于预设强度阈值时,则对部分的子图数据进行混淆处理。
进一步的,在第二混淆模块33对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第二混淆模块33可以用于执行:获取与子图数据相对应的无效节点,无效节点包括用于标识节点无效的标识信息;在子图数据中添加无效节点,获得与子图数据相对应的目标子图数据。
进一步的,在第二混淆模块33对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第二混淆模块33可以用于执行:在子图数据中,获取待拆分节点以及与待拆分节点相对应的输入输出关系;将待拆分节点拆分为至少两个子节点;根据输入输出关系,将待拆分节点替换为至少两个子节点。
进一步的,在第二混淆模块33将待拆分节点拆分为至少两个子节点时,该第二混淆模块33可以用于执行:获取与待拆分节点相对应的拆分方式;根据拆分方式对待拆分节点进行拆分,获得至少两个子节点。
进一步的,在将待拆分节点替换为至少两个子节点之后,本实施例中的第二获取模块31和第二混淆模块33还可以用于执行以下步骤:
第二获取模块31,用于获取至少两个子节点中每个子节点的数据量;
第二混淆模块33,用于在子节点的数据量大于或等于预设阈值时,则利用图形处理器运行子节点;或者,在子节点的数据量大于或等于预设阈值时,则利用中央处理器运行子节点。
进一步的,在第二混淆模块33对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第二混淆模块33可以用于执行:获取与子图数据相对应的判断节点,判断节点所对应的判断逻辑为真;将判断节点增加至子图数据中,获得与子图数据相对应的目标子图数据。
进一步的,在第二混淆模块33对至少一个子图数据进行混淆处理,获得与子图数据相对应的目标子图数据时,该第二混淆模块33可以用于执行:在子图数据包括并列分支时,获取并列分支中包括的所有分支节点;对所有分支节点的执行顺序进行调整,获得与子图数据相对应的目标子图数据。
进一步的,在第二混淆模块33在对所有分支节点的执行顺序进行调整时,该第二混淆模块33可以用于执行:保持每个分支中的输入输出关系不变。
图25所示装置可以执行图21所示实施例的方法,本实施例未详细描述的部分,可参考对图21所示实施例的相关说明。该技术方案的执行过程和技术效果参见图21所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图25所示数据的混淆装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图26所示,该电子设备可以包括:第二处理器41和第二存储器42。其中,第二存储器42用于存储相对应电子设备执行上述实施例中提供的数据的混淆方法的程序,第二处理器41被配置为用于执行第二存储器42中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第二处理器41执行时能够实现如下步骤:
获取待处理数据;
确定与待处理数据相对应的至少一个子图数据;
对至少一个子图数据进行混淆处理,获得与待处理数据相对应的目标数据。
其中,电子设备的结构中还可以包括第二通信接口43,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图21所对应的实施例中的数据的混淆方法所涉及的程序。
图27为本发明实施例提供的一种数据的切分装置的结构示意图;参考附图27所示,本实施例提供了一种数据的切分装置,该切分装置可以执行上述图22所对应的数据的切分方法,具体的,该切分装置可以包括:
第三获取模块51,用于获取原始数据;
第三确定模块52,用于确定与所述原始数据相对应的数据切分规则;
切分模块53,用于利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据;
发送模块54,用于将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
图27所示装置可以执行图22所示实施例的方法,本实施例未详细描述的部分,可参考对图22所示实施例的相关说明。该技术方案的执行过程和技术效果参见图22所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图27所示切分装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑等各种设备。如图28所示,该电子设备可以包括:第三处理器61和第三存储器62。其中,第三存储器62用于存储相对应电子设备执行上述实施例中提供的数据的混淆方法的程序,第三处理器61被配置为用于执行第三存储器62中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第三处理器61执行时能够实现如下步骤:
获取原始数据;
确定与所述原始数据相对应的数据切分规则;
利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据;
将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
其中,电子设备的结构中还可以包括第三通信接口63,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图22所对应的实施例中的数据的切分方法所涉及的程序。
图29为本发明实施例提供的另一种数据的混淆装置的结构示意图;参考附图29所示,本实施例提供了另一种数据的混淆装置,该数据的混淆装置可以执行上述图1-图20的数据的混淆方法,具体的,该混淆装置可以包括:
接收模块71,用于接收切分装置发送的待处理数据;
第四确定模块72,用于确定与所述待处理数据相对应的至少一个子图数据;
第三混淆模块73,用于对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
需要注意的是,图29所示装置还可以执行图1-图20所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图20所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图20示实施例中的描述,在此不再赘述。
在一个可能的设计中,图29所示数据的混淆装置的结构可实现为一电子设备,该电子设备可以是手机、平板电脑、服务器等各种设备。如图30所示,该电子设备可以包括:第四处理器81和第四存储器82。其中,第四存储器82用于存储相对应电子设备执行上述实施例中提供的数据的混淆方法的程序,第四处理器81被配置为用于执行第四存储器82中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第四处理器81执行时能够实现如下步骤:
接收切分装置发送的待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
其中,电子设备的结构中还可以包括第四通信接口83,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图22所对应的实施例中的数据的混淆方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (41)

1.一种数据的混淆方法,其特征在于,包括:
获取待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述待处理数据包括与机器学习模型相对应的图结构数据。
3.根据权利要求2所述的方法,其特征在于,确定与所述待处理数据相对应的至少一个子图数据,包括:
获取所述待处理数据包括的所有操作节点;
遍历所有操作节点,确定与所述子图数据相对应的子图节点;
根据所述子图节点确定与所述待处理数据相对应的至少一个子图数据。
4.根据权利要求3所述的方法,其特征在于,遍历所有操作节点,确定与所述子图数据相对应的子图节点,包括:
获取预设配置参数,所述预设配置参数与所述待处理数据中待保护的操作节点相对应;
根据所述预设配置参数遍历所有操作节点,确定与所述子图数据相对应的子图节点。
5.根据权利要求4所述的方法,其特征在于,根据所述预设配置参数遍历所有操作节点,确定与所述子图数据相对应的子图节点,包括:
遍历所有操作节点,获取与所述预设配置参数相匹配的第一操作节点;
确定与所述第一操作节点具有关联关系的第二操作节点;
在所述第二操作节点与所述预设配置参数相匹配时,则将所述第一操作节点和第二操作节点确定为与一所述子图数据相对应的子图节点;或者,
在所述第二操作节点与预设配置参数不匹配时,则深度遍历与所述第二操作节点具有关联关系的关联操作节点,并将所述第二操作节点和所述关联操作节点确定为非保护节点。
6.根据权利要求5所述的方法,其特征在于,确定与所述第一操作节点具有关联关系的第二操作节点,包括:
广度遍历所述第一操作节点,确定与所述第一操作节点具有关联关系的至少一个第二操作节点。
7.根据权利要求5所述的方法,其特征在于,在确定与所述第一操作节点具有关联关系的第二操作节点之前,所述方法还包括:
检测所确定的子图数据中是否包括第一操作节点;
在所述子图数据中包括所述第一操作节点时,则停止确定与所述第一操作节点具有关联关系的第二操作节点。
8.根据权利要求5所述的方法,其特征在于,在将所述第一操作节点和第二操作节点确定为与一所述子图数据相对应的子图节点之后,所述方法还包括:
根据所述第一操作节点和所述第二操作节点确定一所述子图数据。
9.根据权利要求1-8中任意一项所述的方法,其特征在于,将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据,包括:
获取与至少一个所述子图数据相对应的输出输入关系;
根据所述输出输入关系,将所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
10.根据权利要求9所述的方法,其特征在于,在所述子图数据为多个时,与所述子图数据相对应的预设插件包括:与所述子图数据相对应的标识信息。
11.根据权利要求1-8中任意一项所述的方法,其特征在于,将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据,包括:
针对多个预设插件,确定与每个预设插件相对应的数据处理量;
根据所述数据处理量,在多个预设插件中确定一与所述子图数据相对应的目标预设插件;
将至少一个所述子图数据替换为所述目标预设插件,获得与所述待处理数据相对应的目标数据。
12.根据权利要求1-8中任意一项所述的方法,其特征在于,将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据,包括:
获取用户针对多个预设插件中任意的预设插件所输入的执行信息;
根据所述执行信息,在多个预设插件中确定一与所述子图数据相对应的目标预设插件;
将至少一个所述子图数据替换为所述目标预设插件,获得与所述待处理数据相对应的目标数据。
13.根据权利要求1-8中任意一项所述的方法,其特征在于,在确定与所述待处理数据相对应的至少一个子图数据之后,所述方法还包括:
获取与所述待处理数据相对应的混淆强度;
根据所述混淆强度,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据。
14.根据权利要求13所述的方法,其特征在于,根据所述混淆强度,对至少一个所述子图数据进行混淆处理,包括:
在所述混淆强度大于或等于预设强度阈值时,则对所有子图数据进行混淆处理;或者,
在所述混淆强度小于预设强度阈值时,则对部分的所述子图数据进行混淆处理。
15.根据权利要求13所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
获取与所述子图数据相对应的无效节点,所述无效节点包括用于标识节点无效的标识信息;
在所述子图数据中添加所述无效节点,获得与所述子图数据相对应的目标子图数据。
16.根据权利要求13所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
在所述子图数据中,获取待拆分节点以及与所述待拆分节点相对应的输入输出关系;
将所述待拆分节点拆分为至少两个子节点;
根据所述输入输出关系,将所述待拆分节点替换为至少两个子节点。
17.根据权利要求16所述的方法,其特征在于,将所述待拆分节点拆分为至少两个子节点,包括:
获取与所述待拆分节点相对应的拆分方式;
根据所述拆分方式对所述待拆分节点进行拆分,获得至少两个子节点。
18.根据权利要求16所述的方法,其特征在于,在将所述待拆分节点替换为至少两个子节点之后,所述方法还包括:
获取至少两个子节点中每个子节点的数据量;
在所述子节点的数据量大于或等于预设阈值时,则利用图形处理器运行所述子节点;或者,
在所述子节点的数据量大于或等于预设阈值时,则利用中央处理器运行所述子节点。
19.根据权利要求13所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
获取与所述子图数据相对应的判断节点,所述判断节点所对应的判断逻辑为真;
将所述判断节点增加至所述子图数据中,获得与所述子图数据相对应的目标子图数据。
20.根据权利要求13所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
在所述子图数据包括并列分支时,获取所述并列分支中包括的所有分支节点;
对所有分支节点的执行顺序进行调整,获得与所述子图数据相对应的目标子图数据。
21.根据权利要求20所述的方法,其特征在于,在对所有分支节点的执行顺序进行调整时,所述方法还包括:
保持每个分支中的输入输出关系不变。
22.一种数据的混淆方法,其特征在于,包括:
获取待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
23.根据权利要求22所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据,包括:
获取与所述待处理数据相对应的混淆强度;
根据所述混淆强度,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据;
根据所述目标子图数据和未进行混淆处理的子图数据,确定与所述待处理数据相对应的目标数据。
24.根据权利要求23所述的方法,其特征在于,根据所述混淆强度,对至少一个所述子图数据进行混淆处理,包括:
在所述混淆强度大于或等于预设强度阈值时,则对所有子图数据进行混淆处理;或者,
在所述混淆强度小于预设强度阈值时,则对部分的所述子图数据进行混淆处理。
25.根据权利要求23所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
获取与所述子图数据相对应的无效节点,所述无效节点包括用于标识节点无效的标识信息;
在所述子图数据中添加所述无效节点,获得与所述子图数据相对应的目标子图数据。
26.根据权利要求23所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
在所述子图数据中,获取待拆分节点以及与所述待拆分节点相对应的输入输出关系;
将所述待拆分节点拆分为至少两个子节点;
根据所述输入输出关系,将所述待拆分节点替换为至少两个子节点。
27.根据权利要求26所述的方法,其特征在于,将所述待拆分节点拆分为至少两个子节点,包括:
获取与所述待拆分节点相对应的拆分方式;
根据所述拆分方式对所述待拆分节点进行拆分,获得至少两个子节点。
28.根据权利要求26所述的方法,其特征在于,在将所述待拆分节点替换为至少两个子节点之后,所述方法还包括:
获取至少两个子节点中每个子节点的数据量;
在所述子节点的数据量大于或等于预设阈值时,则利用图形处理器运行所述子节点;或者,
在所述子节点的数据量大于或等于预设阈值时,则利用中央处理器运行所述子节点。
29.根据权利要求26所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
获取与所述子图数据相对应的判断节点,所述判断节点所对应的判断逻辑为真;
将所述判断节点增加至所述子图数据中,获得与所述子图数据相对应的目标子图数据。
30.根据权利要求26所述的方法,其特征在于,对至少一个所述子图数据进行混淆处理,获得与所述子图数据相对应的目标子图数据,包括:
在所述子图数据包括并列分支时,获取所述并列分支中包括的所有分支节点;
对所有分支节点的执行顺序进行调整,获得与所述子图数据相对应的目标子图数据。
31.根据权利要求30所述的方法,其特征在于,在对所有分支节点的执行顺序进行调整时,所述方法还包括:
保持每个分支中的输入输出关系不变。
32.一种数据的切分方法,其特征在于,包括:
获取原始数据;
确定与所述原始数据相对应的数据切分规则;
利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据;
将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
33.一种数据的混淆方法,其特征在于,包括:
接收切分装置发送的待处理数据;
确定与所述待处理数据相对应的至少一个子图数据;
将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
34.一种数据的混淆装置,其特征在于,包括:
第一获取模块,用于获取待处理数据;
第一确定模块,用于确定与所述待处理数据相对应的至少一个子图数据;
第一混淆模块,用于将至少一个所述子图数据替换为与所述子图数据相对应的预设插件,获得与所述待处理数据相对应的目标数据。
35.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1-21中任意一项所述的数据的混淆方法。
36.一种数据的混淆装置,其特征在于,包括:
第二获取模块,用于获取待处理数据;
第二确定模块,用于确定与所述待处理数据相对应的至少一个子图数据;
第二混淆模块,用于对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
37.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求22-31中任意一项所述的数据的混淆方法。
38.一种数据的切分装置,其特征在于,包括:
第三获取模块,用于获取原始数据;
第三确定模块,用于确定与所述原始数据相对应的数据切分规则;
切分模块,用于利用所述数据切分规则将所述原始数据切分为用于进行数据混淆处理的一个或多个待处理数据;
发送模块,用于将一个或多个所述待处理数据发送至混淆装置,以使所述混淆装置对所述待处理数据进行混淆处理。
39.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求32所述的数据的切分方法。
40.一种数据的混淆装置,其特征在于,包括:
接收模块,用于接收切分装置发送的待处理数据;
第四确定模块,用于确定与所述待处理数据相对应的至少一个子图数据;
第三混淆模块,用于对至少一个所述子图数据进行混淆处理,获得与所述待处理数据相对应的目标数据。
41.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求33所述的数据的混淆方法。
CN201910983504.2A 2019-10-16 2019-10-16 数据的混淆方法、数据的切分方法、装置及设备 Active CN112668034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910983504.2A CN112668034B (zh) 2019-10-16 2019-10-16 数据的混淆方法、数据的切分方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910983504.2A CN112668034B (zh) 2019-10-16 2019-10-16 数据的混淆方法、数据的切分方法、装置及设备

Publications (2)

Publication Number Publication Date
CN112668034A true CN112668034A (zh) 2021-04-16
CN112668034B CN112668034B (zh) 2024-08-06

Family

ID=75400458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910983504.2A Active CN112668034B (zh) 2019-10-16 2019-10-16 数据的混淆方法、数据的切分方法、装置及设备

Country Status (1)

Country Link
CN (1) CN112668034B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114969444A (zh) * 2022-05-24 2022-08-30 北京百度网讯科技有限公司 数据的处理方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120432A1 (en) * 2013-10-29 2015-04-30 Microsoft Corporation Graph-based ranking of items
CN108182265A (zh) * 2018-01-09 2018-06-19 清华大学 针对关系网络的多层迭代筛选方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120432A1 (en) * 2013-10-29 2015-04-30 Microsoft Corporation Graph-based ranking of items
CN108182265A (zh) * 2018-01-09 2018-06-19 清华大学 针对关系网络的多层迭代筛选方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIN ZHI-GANG等: "Co-saliency detection based on objectness and multi-layer linear model", 《OPTICS AND PRECISION ENGINEERING》, 31 August 2019 (2019-08-31) *
蔡建章;魏强;祝跃飞;: "识别恶意软件中的加密函数", 计算机应用, no. 11, 1 November 2013 (2013-11-01) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114969444A (zh) * 2022-05-24 2022-08-30 北京百度网讯科技有限公司 数据的处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN112668034B (zh) 2024-08-06

Similar Documents

Publication Publication Date Title
US20180336369A1 (en) Anonymity assessment system
US20130167231A1 (en) Predictive scoring management system for application behavior
CN110427969B (zh) 数据处理方法、装置和电子设备
CN111435367B (zh) 知识图谱的构建方法、系统、设备及存储介质
US12026264B2 (en) Secure query processing on graph stores
CN111460394A (zh) 一种版权文件的验证方法、装置及计算机可读存储介质
CN112668034A (zh) 数据的混淆方法、数据的切分方法、装置及设备
KR20200115730A (ko) 머신러닝을 이용한 소프트웨어 화이트리스트 생성 시스템 및 방법
Rajawat et al. Analysis assaulting pattern for the security problem monitoring in 5G‐enabled sensor network systems with big data environment using artificial intelligence/machine learning
CN112905987B (zh) 账号识别方法、装置、服务器及存储介质
CN109492844A (zh) 业务策略的生成方法和装置
CN115442262B (zh) 一种资源评估方法、装置、电子设备及存储介质
EP4254241A1 (en) Method and device for image-based malware detection, and artificial intelligence-based endpoint detection and response system using same
CN112749780B (zh) 数据的处理方法、装置及设备
CN114567678A (zh) 一种云安全服务的资源调用方法、装置及电子设备
CN112487421A (zh) 基于异质网络的安卓恶意应用检测方法及系统
CN111210279A (zh) 一种目标用户预测方法、装置和电子设备
CN116415237B (zh) 风险设备识别方法、装置、计算机设备和存储介质
CN116401667B (zh) 基于cnn-gru的安卓恶意软件检测方法及装置
WO2023087247A1 (en) System, apparatus and methods of privacy protection
CN115756599A (zh) 一种针对隐私计算流程图的静态分析方法及装置
CN118313002A (zh) 数据脱敏方法、装置、计算机设备和存储介质
CN117331832A (zh) 应用程序的检测方法、装置、计算机设备和存储介质
CN117708117A (zh) 批量数据处理方法、装置、电子装置和存储介质
CN117910055A (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