# Password Cracking with Brute Force Algorithm and Dictionary Attack Using Parallel Programming
## 2 Literature Review
It renders traditional password cracking approaches on widely used computer platforms and ensures system security by leveraging more salt randomization and greater scheme complexity. However, a brute force attack threatens MD5 Crypt security once again due to the rapid growth of petaflop heterogeneous supercomputer systems, such as Tianhe-1A. For MD5 Crypt's speed to increase, much work has been completed on the GPU-accelerated platform. Utilizing the CUDA architecture's constant memory, however, has not led to much of an improvement. Their research investigates the issue and reports a 44.6% improvement by giving the padding array constant memory. In addition, using Tianhe-1A, the world's fastest heterogeneous supercomputer, their study provides a highly scalable implementation of the MD5 Crypt Brute Force Attack Algorithm. According to their testing findings, a single processing node can check 326,000 MD5 hashes per second, outperforming the CPU version by 5.7 times. Their solution also exhibits excellent scalability on multiple nodes. As a result, it presented a fresh problem for MD5 Crypt's authentication security. In [14], [PERSON] et al. explored the implementation of WPA-WPA2 PSK cracking on parallel systems. For making use of the parallel platforms, they ran their single-threaded cracking program on several systems. They also employed the dictionary attack method, which depends on how quickly the most pre-shared keys are tried. The shared memory concept was also implemented using Pthread, OpenMP on multi-core CPUs, and CUDA on the GPU. They developed a single-thread cracking program based on two files: a password dictionary file and a completed four-way handshake CAP file. The password dictionary file is used to retrieve the password, while the CAP file is used to extract the input parameters required for the cracking. They implemented the cracking tool on the GPU using CUDA, a C extension that allows programmers to utilize the processing capability of both the CPU and GPU. The results demonstrate that employing multi-core processors and a GPU on regular machines with parallel platforms increases cracking performance by 16\(\times\) and 41\(\times\), respectively. Similarly, ref. [15] proposed a new method to crack Wi-Fi passwords using GPU and parallel computing. The current WPA/WPA2 protocol is more secure but is still vulnerable to brute force cracking attacks. The proposed algorithm is effective and enhances the efficiency of cracking Wi-Fi passwords by restricting the combination range of dictionary files and using GPU and CPU for simultaneous parallel division of tasks. The speed of dictionary cracking using a combination of CPU and GPU processing was much faster than traditional CPU computing power. However, this method is useless for long passwords. [PERSON] et al. [16] experimented with how hashing can be sped up in hash function operations and string comparisons which can be time-consuming. However, these operations can easily be parallelized since each password can be tested separately. For the purpose of making the performance faster, high-performance computing (HPC) can be obtained. GPU computing can enhance performance even more. Multiple GPUs can be used for an even larger scale, but this increases communication latency, reducing overall performance. In this work, MPI was used to reduce communication latency and process data communication among machines. The paper demonstrates three password recovery algorithms that use both MPI and CUDA. The algorithms differed in GPU memory utilization and data distribution. The algorithms that involve dividing dictionaries and password databases showed great performance with a speedup of 17\(\times\) and 12\(\times\) using eight GPUs across four nodes, respectively. The minimal memory algorithm showed slower performance due to communication latency. The algorithms scale well to multiple GPUs and can be used for larger databases.