【24h】

Password recovery using MPI and CUDA

机译:使用MPI和CUDA进行密码恢复

获取原文
获取原文并翻译 | 示例

摘要

Using passwords to verify a user's identity is the most widely deployed method for electronic authentication. When system administrators need to recover lost passwords or test accounts for easily guessable passwords, it can require millions of hash function and string comparison operations. These operations can be computationally expensive but are easily parallelizable because each password can be tested independently. Therefore, using high performance computing (HPC) can greatly reduce the time required to perform password recovery. Due to the high level of fine-grained parallelism of this type of problem, GPU computing using Compute Unified Device Architecture (CUDA) can be used to further improve performance. The scale of HPC can be further increased through the use of multiple GPUs, but this requires communication between the GPU devices and can reduce the overall performance due to increased communications latency. In this work a well established HPC framework, Message Passing Interface (MPI), was used to minimize the amount of latency and handle the communication between the devices. This allowed for a course-grained division of the problem using MPI where each device applies a fine-grained division of the problem using CUDA to perform the actual calculations. This paper describes three dictionary-based password recovery algorithms that use both MPI and CUDA. In this approach the hashed values of known words are computed and compared with hash values of unknown user passwords. The algorithms differed in GPU memory utilization and how the data was divided and distributed among the MPI nodes and GPU devices. A divided dictionary algorithm split the dictionary of potential passwords over the G PUs and copied the password database to each GPU. A divided password database algorithm split the password database and copied the potential passwords. A minimal memory algorithm split the password database and sequentially processed individual passwords on the GPUs. The - ivided dictionary and the divided password database algorithms performed well, resulting in a speedup of 57x and 40x over a single processor using 8 GPUs across 4 compute nodes, respectively. Illustrating the cost of communication latency between MPI nodes and GPUs, the minimal memory algorithm performed significantly slower than a single CPU. The algorithms are shown to scale well to multiple GPUs, so this password recovery system could be used for much larger systems for larger databases. In addition to recovering lost passwords, this work could be used to help improve the security of computer systems by identifying accounts with weak or common passwords. The framework described may also be useful for other research that needs to process large amounts of data with similar characteristics using MPI and CUDA.
机译:使用密码来验证用户身份是电子身份验证中使用最广泛的方法。当系统管理员需要恢复丢失的密码或测试帐户以轻松猜出密码时,它可能需要数百万个哈希函数和字符串比较操作。这些操作在计算上可能会很昂贵,但是很容易并行化,因为每个密码都可以独立测试。因此,使用高性能计算(HPC)可以大大减少执行密码恢复所需的时间。由于这类问题的细粒度并行度很高,因此可以使用使用Compute Unified Device Architecture(CUDA)进行GPU计算来进一步提高性能。通过使用多个GPU可以进一步增加HPC的规模,但这需要GPU设备之间进行通信,并且由于通信延迟的增加,可能会降低整体性能。在这项工作中,使用了一个完善的HPC框架,即消息传递接口(MPI),以最大程度地减少等待时间并处理设备之间的通信。这允许使用MPI对问题进行逐级分解,其中每个设备均使用CUDA对问题进行细化划分以执行实际计算。本文介绍了三种同时使用MPI和CUDA的基于字典的密码恢复算法。在这种方法中,计算已知单词的哈希值,并将其与未知用户密码的哈希值进行比较。算法在GPU内存利用率以及MPI节点和GPU设备之间如何划分和分配数据方面有所不同。分开的字典算法将G PU上的潜在密码字典分开,并将密码数据库复制到每个GPU。分开的密码数据库算法拆分了密码数据库并复制了潜在的密码。最小的内存算法可拆分密码数据库,并在GPU上顺序处理各个密码。 -词典和分开的密码数据库算法运行良好,导致在单个处理器上使用4个计算节点上的8个GPU的速度分别提高了57倍和40倍。为了说明MPI节点与GPU之间的通信延迟成本,最小内存算法的执行速度明显慢于单个CPU。该算法显示可以很好地扩展到多个GPU,因此该密码恢复系统可以用于大型数据库的大型系统。除了恢复丢失的密码外,这项工作还可以通过识别具有弱密码或通用密码的帐户来帮助提高计算机系统的安全性。所描述的框架对于需要使用MPI和CUDA处理具有相似特征的大量数据的其他研究也可能有用。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号