掌桥专利:专业的专利平台
掌桥专利
首页

一种加密数据破解场景中的资源匹配方法

文献发布时间:2023-06-19 09:40:06


一种加密数据破解场景中的资源匹配方法

技术领域

本发明涉及信息安全体系架构领域,具体为一种加密数据破解场景中的资源匹配方法。

背景技术

随着分布式计算的兴起,各种大数据资源管理系统不断涌现,但是常见的分布式集群资源管理系统因其本身系统设计与结构等方面的原因,无法良好的解决加密数据破解场景下的资源匹配问题。目前常见的分布式集群资源管理系统有Hadoop、Yarn、Mesos、Spark等,这些分布式集群资源管理系统将计算资源划分为cpus、gpus、disk、mem、ports等多种类型,在资源匹配时大多采用支配资源公平算法(DRF)。根据资源需求情况,将任务划分为计算密集型和内存依赖型,对于计算密集型任务,其主导资源为CPU,对于内存依赖型任务,其主导资源为内存。常见的分布式集群资源管理系统根据每一个任务的需求占集群总资源的比率,为每一个任务选取一个主导资源,计算这个主导资源在集群中所占用的比率,根据比率给任务进行优先级排序。每次分配,都会优先把资源给当前所占比率最低的那个任务。所以常见的分布式集群资源管理系统可以在较细粒度的基础上,实现资源的匹配,有效提高集群资源的利用率。

但是,传统的资源管理中的资源匹配方法只考虑了通用的计算资源,如内存和cpu,不能结合具体场景进行扩展。比如,加密数据破解场景具有加密算法种类多、加密应用版本更新迭代快、计算设备配置差别大、破解方式复杂多样等特点,现有的资源匹配方法无法兼容种类繁多的加密算法、没有考虑不同类型破解设备的优点、不支持类型多样的破解方式。

发明内容

针对现有技术中存在的技术问题,本发明的目的在于提供一种加密数据破解场景中的资源匹配方法。

首先,对加密数据破解场景进行说明,加密数据破解场景具有加密算法种类多、加密应用版本更新迭代快、计算设备配置差别大、破解方式复杂多样等特点,具体如下:

(1)加密算法种类多。现有的加密算法类型及版本达到上百种,但是由于破解计算节点的硬件配置、软件部署等原因,造成某些破解计算节点只支持部分加密算法,所以在资源匹配时需要判断破解计算节点的加密算法支持情况;

(2)计算速度差别大。常见的CPU、GPU、FPGA服务器都可作为加密数据破解系统的破解计算节点,但是对于相同的加密数据破解应用,不同类型、不同配置的破解计算节点的运行速度千差万别,比如CPU和GPU服务器,在运行MD5加密算法时,运行速度相差百倍甚至千倍,所以在资源匹配时需要考虑破解计算节点的实际运行速度;

(3)破解方式复杂多样。任务资源匹配需求包括掩码、字典、彩虹表、字典+掩码组合、字典+规则组合、组合字典、字典+掩码+规则7种破解方式,不同的破解方式任务对节点的硬件配置要求不同,比如对于字典破解任务,需要较大的内存空间;

(4)节点预存储文件不同。在加密数据破解中应用的字典或彩虹表文件通常比较大,为了节省在破解中传输文件的时间,一般会预先在节点中存储部分常用字典或彩虹表文件。但是破解计算节点的存储空间有限,同时为区分破解计算节点的应用场景,使得每个破解计算节点中存储的文件各不相同,所以在资源匹配时需要考虑节点存储的文件信息;

(5)破解应用功耗高,极易对破解设备或服务造成危害。相比于通用的服务器应用,加密数据破解应用占用的CPU和GPU等资源比例大、功耗高,可以在短时间内耗费更多的电能,产生更多的热量,如果不采用一定的可靠性措施,极易对设备或系统服务造成危害,如设备温度过高发生宕机等,所以在资源匹配时需要结合破解资源的温度、能效等信息。

针对加密数据破解场景,为了解决现有的资源匹配方法无法兼容种类繁多的加密算法、没有考虑不同类型破解设备的优点、不支持类型多样的破解方式等问题,本发明提供了一种加密数据破解场景中的资源匹配方法。总体流程如图1所示,具体描述如下:

第一步,资源管理服务接收任务调度发来的资源匹配请求,并对接收的参数进行检查,判断是否为空或超出设定阈值。当检测结果不为空且不超出阈值时判定为正确,否则判定为不正确并将错误信息返回至任务调度;

具体判断内容为:作业编码不能小于等于0,任务编码不能小于等于0,策略编码不能小于等于0,加密算法类型在系统的算法列表内。同时,如果破解方式为字典破解、字典+掩码破解、字典+规则破解、组合字典破解、字典+掩码+规则破解,那么任务资源匹配请求信息中字典编码、字典分片编码、口令长度不能小于0,字典路径不为空。如果破解方式为彩虹表破解,那么任务资源匹配请求信息中彩虹表编码、口令长度不能小于0,彩虹表路径不为空。

第二步,根据资源匹配请求中的条件信息,对所有资源节点进行过滤筛选,得到可用的节点集合。首先,判断节点状态是否在线并且空闲,之后,判断节点是否支持该资源匹配请求中的加密算法类型,其次,判断节点是否支持该资源匹配请求中的破解方式,最后,判断节点的剩余内存和CPU剩余资源是否满足资源匹配请求中的空间大小要求。

第三步,从时间成本、能源成本、故障成本三个维度,将可用节点的属性信息量化,分别计算出相应的成本数值。同时,为了满足分布式系统负载均衡的要求,增加节点已运行任务数量属性,将其量化加入节点的rank值计算过程,根据rank值从低到高的顺序对节点进行优先级排序。

第四步,选取优先级最高的节点,将其信息返回至任务调度;优先级最高的节点是rank值最小的节点。

进一步地,在第二步节点过滤筛选中,由于破解场景具有加密算法种类多、破解方式多等特点,使得在某些场景下,只有部分计算节点满足资源请求的节点要求,所以结合资源请求信息和节点属性信息,对所有的计算节点进行过滤筛选,筛选条件包括计算节点工作状态、剩余内存、CPU使用率、加密算法支持情况、破解方式支持情况等。

进一步地,在第三步计算节点rank值的过程中,如图2所示,融合了节点静态属性信息、节点动态属性信息、任务信息、告警信息等多种来源的数据信息,通过将其进行量化整合,作为节点优先级的排序依据。在整合过程中,根据对任务的影响情况对多种数据信息进行分类,划分为了影响任务运行时间的属性信息、影响任务能效的属性信息,影响设备发生故障几率的属性信息等,之后分别计算得到了节点运行该任务所需要的时间成本、能源成本、故障成本。同时,为了满足系统负载均衡的需求,避免相同条件下,节点编码靠前的节点运行更多的任务,造成较大的损耗,将节点已运行任务数量属性加入节点优先级排序的数据来源。之后,根据每个节点的时间成本、能源成本、故障成本和已运行任务数量等信息,计算节点的rank值,按照rank值从低到高的顺序对节点进行优先级排序。

更进一步地,将节点属性信息抽象整合为时间成本、能源成本、故障成本,同时结合节点已运行任务信息计算节点rank值的过程具体如下:

第一步,计算时间成本,时间成本=字典/彩虹表复制时间成本+节点运行时间成本,其中,字典/彩虹表复制时间成本=字典/彩虹表复制次数*单个字典/彩虹表复制时间,影响因素包括字典/彩虹表文件大小、节点预存字典/彩虹表文件情况和节点所在机房机架的位置;节点运行时间成本=任务破解空间大小/计算节点运行速度,影响因素包络任务破解空间信息和节点的运行速度信息。

从节点注册时的静态属性信息中可以获取节点的预存字典/彩虹表文件列表和所在的机房机架位置,从任务资源匹配请求信息中可以获取待匹配任务的字典/彩虹表文件大小。

字典/彩虹表复制时间成本计算过程为:通过将任务资源匹配请求信息中的字典/彩虹表文件与节点的预存字典/彩虹表文件列表对比得到需要复制字典/彩虹表的次数。单个字典/彩虹表复制时间与字典/彩虹表文件大小、节点所在机房机架的位置有关,可以先离线测试出单个字典/彩虹表复制时间,以200M字典文件大小为标准,不同大小的字典/彩虹表文件复制时间按比例增减。计算过程如下所示:

单个字典或者彩虹表复制时间=单个字典或者彩虹表大小(M)/200M*已测复制时间,其中,已测复制时间为200M字典文件复制时间。

从节点注册时的静态属性信息可以获取在运行该种加密算法类型时节点的平均运行速度,从任务资源匹配请求信息中可以获取任务破解空间的大小。

运行时间成本计算过程为:节点的平均运行速度为节点运行该种加密算法时的平均破解速度,根据历史运行信息得到,通过写入节点的配置文件,在节点注册时发送至资源管理服务,作为节点的静态属性信息。节点的运行时间成本为任务破解空间除以节点运行速度。

第二步,计算能源成本,主要依据节点的能效比,影响因素包括节点类型、加密算法类型、破解方式;

从资源管理服务的配置文件中可以获取各个节点的破解能效比,该破解能效比通过离线计算得到,计算公式为:破解能效比=节点破解速度/运行功耗。因为节点的破解速度与加密算法类型、破解方式有关,节点的运行功耗与节点的设备型号有关,所以当增加新的计算节点时,需要在不同加密算法类型、破解方式的场景下测得该节点的破解速度与运行功耗,从而计算得到破解能效比。计算节点的破解能效比配置文件格式如表1所示。

表1计算节点破解能效比记录示例

第三步,计算故障成本,主要依据当前设备温度以及历史任务信息对节点发生故障的预测概率,影响因素包括设备温度、使用年限、节点历史故障信息、维修情况等;

从节点注册时的静态属性信息中可以获取节点使用年限,从节点定时上报的动态属性信息中可以获取计算节点设备温度,从资源管理服务配置文件中的历史故障信息中可以获取计算节点的故障发生次数、对应的故障等级以及故障发生时间,从资源管理服务的事件记录中可以获取计算节点的任务运行情况,从资源管理服务的维修记录中可以获取维修情况。

本发明将影响故障发生的因素进行融合,提取多种属性特征,采用随机森林模型对设备发生故障的概率进行预测。

首先,从影响故障发生的因素中提取属性特征,包括节点温度、节点使用年限、前T1月内任务发生故障比例、前T1月内运行相同加密算法相同破解方式任务发生故障比例、前T2月内任务发生故障比例、前T2月内运行相同加密算法相同破解方式任务发生故障比例、距离上次故障发生的时间间隔、距离上次维修发生的时间间隔等。

之后,根据历史故障数据训练随机森林故障预测模型,调优后将模型保存。在资源匹配时根据节点的现有信息提取属性特征,输入至随机森林故障预测模型进行预测,得到故障预测概率。本发明不仅仅采用了节点硬件的属性特征,同时结合了历史故障信息。节点硬件的属性特征属于当前时间点的特征,历史故障信息可以采用时间窗口的方法提取过去某段时间内的特征,综合节点硬件的属性特征和历史故障信息对模型进行训练,可以较好的对节点故障概率进行预测。

随机森林故障预测模型可分为两个阶段,模型训练阶段和模型预测阶段。

在模型训练阶段,包括以下三个步骤:

步骤1:构建训练数据集。根据节点历史运行信息提取上述属性特征,包括节点正常运行时数据和节点发生故障的数据,分别对应0和1标签,作为正负样本,同时在构建训练数据集时尽量满足正负样本的平衡。

步骤2:训练随机森林故障预测模型。将部分训练数据输入模型进行训练,采用十折交叉验证的方法评估模型的平均准确率,作为模型最终的效果。

步骤3:根据模型的准确率调整属性特征的种类,以使模型效果达到最优。

在模型预测阶段,主要流程为:从当前的节点属性信息以及资源管理配置文件中提取上述属性特征,输入至随机森林故障预测模型,输出所属类型的概率,即发生故障的概率与正常运行的概率。

最后,将计算节点发生故障的预测概率作为节点的故障成本。

第四步,分别将节点时间成本、能源成本、故障成本、已运行任务数量进行数值标准化,得到标准化数值time_costs、energy_costs、failure_costs和task_nums,从而得到节点的rank值,计算如下:

rank值=time_costs*α+energy_costs*β+failure_costs*γ+task_nums*δ

其中,α为时间重要系数,β为能效重要系,γ为故障重要系数、δ为负载重要系数,可根据实际需求通过调整不同系数的大小,从而调整不同属性所占的影响比重。

与现有技术相比,本发明的有益效果是:

(1)传统的资源匹配方法仅局限于依据CPU、内存等资源情况,在加密数据破解场景中,存在无法兼容种类繁多的加密算法、没有考虑不同类型破解设备的优点、不支持类型多样的破解方式等诸多问题。本发明提出的资源匹配方法不仅考虑了节点的剩余资源情况,同时结合了节点的预存储字典情况、算法运行速度、支持的破解方式、设备温度、已运行任务数量等多种属性因素,以微延长资源匹配时间为代价换取了更低的时间成本、能源成本、故障成本以及负载性能。

(2)加密数据破解属于计算密集型应用,计算节点功耗高,可以在短时间内耗费更多的电能,产生更多的热量,极易对设备产生一定的损害,减少设备使用寿命。本发明在资源匹配时结合了节点能效、设备温度等因素,通过对比选择最优值,一定程度上节省了电能,降低了对计算节点的损害程度。同时,选择已运行任务数量来平衡节点之间的负载情况,也在一定程度上延长了常用节点的使用寿命。

附图说明

图1是资源匹配流程图。

图2是资源匹配信息来源图。

具体实施方式

下面结合说明书附图,详细说明本发明的具体实施方式。

针对加密数据破解场景,为了解决现有的资源匹配方法无法兼容种类繁多的加密算法、没有考虑不同类型破解设备的优点、不支持类型多样的破解方式等问题,本发明提供了一种加密数据破解场景中的资源匹配方法。总体流程如图1所示,具体描述如下:

第一步,接收任务调度发来的资源匹配请求,并对接收的参数进行检查,判断是否为空或超出阈值。当检测结果不为空且不超出阈值时判定为正确,否则判定为不正确并将错误信息返回至任务调度;

第二步,根据资源匹配请求中的条件信息,对所有资源节点进行过滤筛选,得到可用的节点集合。首先,判断节点状态是否在线并且空闲,之后,判断节点是否支持该种加密算法类型,其次,判断节点是否支持该种破解方式,最后,判断节点的剩余内存和CPU剩余资源是否满足要求。

第三步,从时间成本、能源成本、故障成本三个维度,将可用节点的属性信息量化,分别计算出相应的成本数值。同时,为了满足分布式系统负载均衡的要求,增加节点已运行任务数量属性,将其量化加入节点的rank值计算过程,根据rank值从低到高的顺序对节点进行优先级排序。

第四步,选取优先级最高的节点,将其信息返回至任务调度。

其中,在第二步节点过滤筛选中,由于破解场景具有加密算法种类多、破解方式多等特点,使得在某些场景下,只有部分计算节点满足资源请求的节点要求,所以结合资源请求信息和节点属性信息,对所有的计算节点进行过滤筛选,筛选条件包括计算节点工作状态、剩余内存、CPU使用率、加密算法支持情况、破解方式支持情况等。

下面详细介绍第三步计算节点rank值的过程,共包括三部分,首先介绍节点的属性信息,之后介绍将属性信息进行量化整合的过程,最后介绍节点rank值的计算过程。

1、节点属性信息

节点的属性信息包括节点静态属性、动态属性以及告警信息。

节点静态属性用于描述破解计算节点上线注册时的属性信息,包括节点编码、节点名称、节点类型、支持的算法类型列表、设备详细信息等,具体如表1所示:

表1节点静态属性信息

其中,表1中的SAppSupport包括节点支持的算法类型以及每种算法对应的执行速度和支持的破解方式,如表2所示;表1中的SNetStatic包括IP地址、端口、所属机房编码、所属机房、所属交换机编码、所属交换机、所属机箱编码、所属机箱等信息,如表3所示。

表2节点支持的算法类型

表3网络静态信息

节点动态属性信息用于描述破解计算节点在运行时的实时信息,包括节点编码、已运行任务数量、节点整体破解速度、CPU使用率、内存使用率等,如表4所示。

表4节点动态属性信息

其中,表4中DeviceDynamic包括设备破解速度、器件温度、设备工作状态等信息,如表5所示。因为加密数据破解属于计算密集型应用,节点功耗大,极易出现温度过高、设备损坏的情况,所以对器件温度进行监控是非常有必要的。

表5节点设备动态信息

特殊的,在节点运行出错时,节点向资源管理发送告警信息,包括故障等级、故障对象类型、对象编码、故障对象IP地址、故障描述信息,如表6所示。

表6节点故障告警信息

2、节点rank值计算

下面,首先根据节点的属性信息计算节点运行的时间成本、电能成本和故障成本,同时从负载均衡的角度,加入对节点已运行任务数量的衡量。通过将多个维度属性信息进行量化,从而计算节点的rank值。

(1)时间成本

(a)字典/彩虹表复制时间成本

因为对于字典破解、字典+掩码破解、字典+规则破解、组合字典破解、字典+掩码+规则破解多种类型的破解任务,需要节点有字典文件,对于彩虹表破解任务,需要节点有彩虹表文件。同时,由于字典/彩虹表文件较大,传输时间较长,一般会在节点预先存储有常用的字典/彩虹表文件,以节省传输时间,但是存储的文件不尽相同。所以需要结合节点存储的字典/彩虹表文件情况,计算字典/彩虹表文件复制时间成本。在节点不包含所需字典/彩虹表文件的情况下,不同破解方式的任务所需要的文件类型及个数如表7所示。

表7破解方式及对应的文件需求

字典/彩虹表复制时间成本的计算方式为:

字典/彩虹表复制时间成本=字典/彩虹表复制次数*单个字典/彩虹表复制时间;

同时,单个字典/彩虹表的复制时间与字典大小和节点所在机房机架的位置有关,如果字典/彩虹表文件比较大、机房机架与资源管理服务端距离较远,那么单个字典/彩虹表的复制时间会略有延长。因为节点所在的机房机架相对固定,所以可以先离线测试出单个字典/彩虹表复制时间,以200M字典文件大小为标准,不同大小的字典/彩虹表文件复制时间按比例增减。

(b)节点运行时间成本

加密算法类型繁多,目前常用算法有近百种。节点类型多样,每种类型节点包括多种设备型号,常用的节点类型包括GPU、FPGA、CPU等。对于相同的加密算法,不同类型的节点运行速度差别较大。所以在资源匹配时需要结合节点的实际运行速度进行资源匹配。

节点的运行时间成本计算方式为:

节点运行时间成本=破解任务空间大小/计算节点运行速度;

所以,可以得到每个节点的时间成本:

时间成本=字典/彩虹表复制时间成本+节点运行时间成本;

(2)能源成本

目前,数据中心、超算中心等消耗的电能逐年增加,如何减少服务器的能效成为了研究的热点。对于不同类型不同型号的设备,节点的功耗有很大区别,运行相同任务需要的时间也不相同,所以为减小能源成本,优先选择能效比较大的计算节点。

为更好的描述计算节点的能效信息,在得到一台新的破解设备后,首先采用离线测试的方式测试设备的能效比,在加密数据破解场景中,定义:

破解能效比=节点破解平均速度/运行功耗;

因为对于不同的加密算法类型,节点破解平均速度差别较大,所以节点破解能效比各不相同。同时对于不同的破解方式的任务,由于其破解流程的不同,造成其破解速度有较大差异,比如字典破解,从CPU到GPU传输需要一定的时间,相应的降低了节点破解平均速度,也影响了节点的破解能效比。

所以节点的破解能效比与加密算法类型、破解方式、节点的设备型号有关,当增加新的计算节点时,需要在不同加密算法类型、破解方式的场景下测得该节点的破解速度与运行功耗,从而计算得到破解能效比。计算节点的破解能效比配置文件格式如表8所示。

表8计算节点破解能效比记录示例

之后,记录后的文件作为资源管理的配置文件,在资源匹配时使用。根据实际破解场景中的需求,如加密算法类型、破解方式,查询每个节点的破解能效比,进而作为节点的能源成本。

(3)故障成本

因为加密数据破解属于计算密集型应用,可以在短时间内产生更多的热量,过高的温度会对节点设备造成一定的损坏,所以较高的设备温度造成节点发生故障的概率较大。同时,对于部分节点,由于其硬件或软件原因,在运行某些加密算法的某些破解方式时,发生故障的概率会略大于其他节点,或者必然发生故障。所以需要结合节点的历史故障信息,来判断该节点运行该破解任务发生故障的概率。同时,因为硬件原因,计算节点发生故障的概率会随着使用年限的增加而增加。

本发明将上述可能影响故障发生的因素进行融合,提取多种属性特征,采用随机森林模型对设备发生故障的概率进行预测。

第一步,从节点注册时的静态属性信息中可以获取节点使用年限,从节点定时上报的动态属性信息中可以获取计算节点设备温度,从资源管理服务配置文件中的历史故障信息中可以获取计算节点的故障发生次数、对应的故障等级以及故障发生时间,从资源管理服务的事件记录中可以获取计算节点的任务运行情况,从资源管理服务的维修记录中可以获取维修情况。其中,资源管理服务配置文件中的历史故障信息部分展示如表9所示。

表9破解计算节点故障信息记录示例

第二步,从上述信息中提取属性特征,包括节点温度、节点使用年限、前T1月内任务发生故障比例、前T1月内运行相同加密算法相同破解方式任务发生故障比例、前T2月内任务发生故障比例、前T2月内运行相同加密算法相同破解方式任务发生故障比例、距离上次故障发生的时间间隔、距离上次维修发生的时间间隔。

第三步,首先根据历史故障数据训练随机森林故障预测模型,调优后将模型保存,之后根据节点的现有信息提取属性特征,输入至随机森林故障预测模型进行预测,得到故障预测概率。

将计算节点的故障预测概率作为节点的故障成本。本发明根据加密数据破解场景的特点,如散热要求高、节点损耗大、任务种类多等,制定了与计算节点故障相关的属性特征,训练得到随机森林故障预测模型,相比于统计等传统计算方法,预测的更为精确。

(4)已运行任务数量

为保证系统在运行时满足负载均衡的要求,避免按照节点编码从小到大的顺序运行、造成编码较小的节点损耗比较严重的问题。本发明采用比较节点已运行任务数量的方式,控制不同节点的负载情况,尽量达到负载均衡。

通过上述过程得到了每个节点的时间成本、能源成本、故障成本,同时结合节点上报的已运行任务数量信息,计算每个节点的rank值。因为时间成本衡量的是时间,能源成本衡量的是能效比,故障成本衡量的是发生故障的概率,已运行任务数量单位为个数,衡量单位不一致,难以直接计算,所以需要进行标准化,计算公式为:

标准值=(实际值-最小值)/(最大值-最小值)

得到标准值后可以计算得到节点的rank值,计算过程如下:

rank值=time_costs*α+energy_costs*β+failure_costs*γ+task_nums*δ

其中,time_costs为时间成本标准值,energy_costs为能源成本标准值,failure_costs为故障成本标准值,task_nums为运行数量标准值,α、β、γ、δ分别为时间重要系数、能效重要系数、故障影响重要系数、负载重要系数。

最终,按照rank值从小到大的顺序对计算节点进行排序,选择优先级最高的节点返回给任务调度。

根据实践经验,时间成本、能源成本、故障成本、负载均衡等很难同时达到最优,比如时间成本和能源成本低的节点,运行任务数量多,故障成本就会略有增加。所以可以根据不同的需求,通过调整α、β、γ、δ系数的大小,修改不同因素对节点rank值的影响比重。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种加密数据破解场景中的资源匹配方法
  • 一种基于GPU并行字典破解托库中的加密数据方法
技术分类

06120112249079