首页 > 数据恢复软件

时间:2024-11-26

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。

天津鸿萌科贸发展有限公司是 ElcomSoft 系列数据取证工具的授权代理商。

EDPR——用于数据取证及合法数据恢复任务的高性能分布式密码恢复软件

Elcomsoft 分布式密码恢复软件(Elcomsoft Distributed Password Recovery)(简称 EDPR) 提供硬件加速及多种方式破解各种应用及文件密码,为数据取证及合法数据恢复工作提供快速可行的方法。

EDPR 是一种高端解决方案,适用于取证和政府机构、合法的数据恢复和密码恢复服务以及通过LAN或Internet连接的多个网络工作站的企业用户。EDPR 具有独特的加速技术,并提供线性可扩展性,没有开销,以巨大的优势提供最快的密码恢复,是目前技术最先进的密码恢复产品。

EDPR 硬件加速及负载平衡技术

EDPR 采用革命性的专利技术,除了仅 CPU 模式外,还支持存在兼容的 NVIDIA 或 AMD 显卡时的加速密码恢复。硬件加速利用 NVIDIA GeForce 主板的 GPU 内核、AMD GPU 以及内置于英特尔 CPU 中的 GPU 内核,包括英特尔核芯显卡、超高清显卡和英特尔锐炬。

加速技术将部分计算密集型处理卸载到最新图形加速器中具有的快速且高度可扩展的处理器上,实现了前所未有的恢复速度,远远超过仅使用 CPU 的用户。

ElcomSoft 开创了异步硬件加速。异构加速允许使用不同品牌和型号的多个 GPU,有效地利用现有硬件,并充分利用每个支持的组件的性能。

在 Elcomsoft 分布式密码恢复(Elcomsoft Distributed Password Recovery)(简称 EDPR) 的最新版本中,引入了改进的负载平衡功能。新功能旨在提高跨不同硬件配置的本地工作站的资源利用率。得益于改进的负载分配算法,新版本大大减少了在某些硬件配置中破解密码所需的时间。在本文中,我们将分享一些有关负载平衡如何利用 GPU 和 CPU 内核混合的技术细节。

了解 GPU 加速和负载优化

使用 GPU 加速密码恢复并不是什么新鲜事。早在 2007 年 10 月 25 日,ElcomSoft 公司就成为第一家开发 GPU 加速密码恢复工具的公司。如今,GPU 用于加速从人工智能工作负载到密码恢复的一切。

为什么 GPU 加速看起来如此有吸引力,为什么我们不使用 GPU 来加速日常任务?原因在于 GPU 的工作方式。虽然 Intel Core Ultra 9 285H 等高端 CPU 有 24 个内核,但这些 CPU 内核可以随时独立执行任何代码。相比之下,现代 GPU(例如 NVIDIA RTX 系列)包含数千个专为并行处理而设计的核心,它们擅长处理大规模并行任务。例如,NVIDIA RTX 4080 Super 拥有 10,240 个 CUDA 核心,而 RTX 4070 Super 拥有 7,168 个核心。

然而,存在一些问题,无法让如此庞大的计算能力加速日常任务。首先,这些数量庞大的 GPU 核心只能同时运行相同的代码。因此,GPU 将需要相同的时间来完成单个线程或与其计算单元(例如 NVIDIA 主板中的 CUDA 核心)数量相匹配的多个线程。这反过来意味着,当批量输入与其核心数量相匹配的数据时,GPU 会以最佳状态工作。当涉及密码恢复作业时,向 10,000 核 GPU 提交一批 10,000 个密码所需的时间与提交单个密码完全相同。

但是,当多个 GPU 需要分担工作负载时会发生什么情况呢?

平衡多个 GPU 之间的负载

假设您有两个不同的 GPU,例如安装在同一系统中的 NVIDIA RTX 4080 Super 和 RTX 4070 Super。他们之间应该如何分配工作?一种简单的方法可能会根据核心数量的比例来分割任务,为 4080 提供 10,240 个密码,为 4070 提供 7,168 个密码,以匹配其 CUDA 核心数量。然而,由于任务规模和核心可用性的匹配方式,这种方法存在一定的低效率。更快的 GPU 将更快地完成其工作,从而留下与任一板的核心数量不匹配的剩余任务。这些剩余任务导致 GPU 资源利用不足,导致核心的处理时间未得到充分利用,否则这些核心可能会参与额外的计算。

如果 GPU 以不同的频率运行或基于不同的档案,这种负载不平衡会变得更加明显。例如,RTX 4080 Super 核心的运行频率为 2,295 MHz,而 RTX 4070 Super 核心的运行频率为 1,980 MHz。在此设置中,4080 更快地完成其部分工作,使卡在等待 4070 完成其部分工作时处于空闲状态。负载平衡算法必须决定:是否应该在 4080 可用时立即将新的作业部分提供给 4080,还是等到两个 GPU 都空闲时?等待会导致更快的 GPU 出现空闲时间,从而降低总体吞吐量。另一方面,简单地将作业提供给第一个可用的计算单元通常会导致较慢的计算单元仍在处理残差,而(快得多)的单元处于空闲状态的情况。根据当前负载、GPU 核心数量和每个单元的速度来决定向哪个 GPU 供电并不是一件容易的任务,而这正是智能负载平衡旨在解决的问题。

扩展到异构架构

智能负载平衡不仅限于 GPU。它将所有可用的计算单元都考虑在内,包括离散和集成 GPU 以及 CPU 内核。某些数据格式可能无法从 GPU 加速中受益或与其不兼容,最好在 CPU 上处理。例如,传统加密格式或具有特定反 GPU 特性的格式能够在 CPU 上高效执行。

在 EDPR 的异构架构中,通过利用所有强大的独立 GPU、集成显卡和 CPU 内核,所有可用的计算单元都可以发挥作用。从理论上讲,这种多层方法可以提高总计算能力。然而,由于对于此类大规模并行任务,CPU 通常比 GPU 慢得多,因此它们的贡献会带来较小的性能提升,通常低于 1%。尽管对速度的影响有限,但满载的 CPU 内核会对能耗产生重大影响,并且需要额外的冷却,特别是在扩展处理中。考虑到开销、功耗增加和发热等因素,此类场景中的实际性能可能会更低。

GPU 和 CPU 之间的性能差距很大。以下比较图表清楚地说明了不同计算单元之间 SHA-256 恢复速度的差异。

例如,NVIDIA GeForce RTX 4070 Ti 每秒可以处理大约 90 亿个密码哈希值,而 Intel i7-12700 CPU 每秒只能处理大约 5000 万个哈希值,性能相差 180 倍。当将 CPU 作为附加计算单元与强大的 GPU 一起添加时,计算能力仅增加了约 0.55%,而且这也纯粹是理论上的。然而,这种最小的收益却伴随着高昂的成本:系统的整体能耗和冷却要求大幅增加——增加了近三分之一。这种额外的热量产生和能源开销不仅抵消了轻微的性能提升,而且实际上降低了系统的整体实际性能。

使用集成 GPU 执行密码破解任务也会产生类似的缺点,但程度较轻。集成 GPU 的功耗比 CPU 内核低,并且对于此类任务来说效率更高。然而,系统冷却和能源预算上增加的负载仍然超过了较小的计算收益。

一般来说,在密码恢复中使用 CPU 内核仅在特定情况下才有用,例如当独立 GPU 功率较低或数据格式无法进行 GPU 加速时。例如,采用混合加密算法的 VeraCrypt 或 OpenDoc 等格式在 CPU 处理方面的性能要好得多。准确地说,除了 GPU 之外,使用 CPU 进行密码恢复只有在提供可衡量的性能提升时才有意义。然而,确定这种优势很复杂,因为它取决于多种因素:CPU 的处理速度、GPU 的性能以及每个因素的特定算法的效率。有些算法可能完全在 GPU 上运行,而其他算法则需要在足够强大的 CPU 上进行初步计算才能为 GPU 设置任务。最后,某些数据格式根本无法在 GPU 上加速,使得CPU对于处理这些任务不可或缺。

动态管理这些硬件资源具有挑战性,因为它需要不断分析负载并决定在任何给定时间使用哪些计算单元。 EDPR 4.70 中的新智能负载平衡功能可以根据计算单元的实际性能数据(而不仅仅是其可用性或核心数量)自动调整要激活的计算单元或确定其优先级。

最后,在运行字典攻击或使用突变、掩码或混合攻击时,CPU 核心不可避免地用于准备密码批次。这种额外的(和不同的)类型的负载提出了独特的技术挑战。平衡这些 CPU 任务与 GPU 性能需要采取细致入微的方法,以最大限度地提高整体效率并减少更快 GPU 上的空闲时间。我们新的智能负载平衡功能比它所取代的算法更有效地解决这些任务。

智能负载平衡的实际应用

EDP​​R 4.70 中改进的负载平衡功能解决了管理异构资源的挑战。通过不断分析核心数量和相对处理能力,新算法优先考虑更快的计算单元,并最大限度地减少所有单元的空闲时间。这种方法通过将每个单元与与其优势相符的任务相匹配来优化资源利用率,平衡整个系统的工作负载效率。

结论

ElcomSoft EDPR 取证工具的智能负载平衡使用户能够释放其硬件设置的全部潜力,即使它们包含各种 GPU 和 CPU 内核。通过此次更新,EDPR 最大限度地提高了 GPU 利用率,同时减少了由于批次未对齐和功能较弱的单元导致较快 GPU 空闲而导致的瓶颈。此更新不仅加速了密码恢复,而且在一定程度上减少了能源浪费并最大限度地减少了系统磨损。负载均衡器自动管理任务分配,使用户免于手动调整,并且在运行多个 GPU 或利用 CPU 核心执行基于字典或混合攻击等特定任务时特别有用。

下一篇: 返回列表