# Password Cracking with Brute Force Algorithm and Dictionary Attack Using Parallel Programming
## 2 Literature Review  
[PERSON] and [PERSON] [11] discussed the use of the CUDA computing platform to support a brute force algorithm as it requires a large number of computational resources. The authors evaluated five factors that may affect the performance of a GPU-based parallel program. The elements considered were integer arithmetic, delay in accessing memory, data transfer, shared memory usage, and utilization of registers. They created custom and test algorithms to assess these factors based on prior research on cracking PDF passwords. The final algorithm was constructed by incorporating the factors that had the greatest impact. The parallel algorithms were put into practice on a Tesla C2075, and the results showed a speedup of 2.92 for 2-byte alphanumeric passwords and 4.77 for 6-byte numeric passwords. The study included five factors in both the test and testbed algorithms, and the results showed that shared memory has the greatest impact on the algorithm's performance. The shared memory factor helped the algorithm to achieve a speedup of up to 4.77. [PERSON] and [PERSON], in their study [12], investigated the potential of using low-power and energy-efficient hardware for password cracking. They argued that this type of hardware could be useful in security applications that do not require high-speed processing, such as long-term surveillance or battlefield scenarios. The study described a proof-of-concept implementation using the Epiphany series of chips from Adapteva Inc., Lexington, MA, USA, which have a theoretical peak performance of 16 GFLOPS/W and a power consumption limit of 2 W. The experiments were performed using a symbol set of size 10, generating a total of 100 plain texts of length 4, which were encrypted using the SHA-512 algorithm. The study compares the performance of a brute force algorithm that is executed sequentially on a dual-core ARM Cortex-A9 host, as well as a parallel implementation designed for the Epiphany co-processor. The results indicated that the parallel implementation provides an energy-efficient means of executing the algorithm, with a speedup of up to 16 times that of the serial version. The authors also mentioned the limitations of the implementation, such as the limited amount of available RAM and the need to consider the memory bottleneck. Overall, this study provided a proof of concept for energy-efficient brute force password cracking using low-power hardware and opens the door for further research in this area. [PERSON] et al. [6] suggested an enhanced brute force password recovery method for SHA-512 on a GPU utilizing a variety of optimization techniques. To fully utilize the GPU, they used OpenCL, and they used C to develop programs that ran on the GPU. The Secure Hash Method (SHA-512), a one-way hash algorithm that is frequently used for password encryption and verification, is what they aimed to utilize in a brute force attack. They created a simple GPU system in their work and improved it using several optimization techniques, including password concatenation, register reuse, faster instructions, and a meet-in-the-middle strategy. The first section includes a basic password recovery scheme for SHA-512. In this scheme, the CPU generates passwords in batches, while GPUs are utilized to perform concurrent SHA-512 hash calculations. The next step is to implement optimizations at the program level, such as utilizing registers repeatedly and replacing certain instructions. In the third part, they apply additional algorithms to the basic scheme to make it more optimized. After all of their testing and research, they were able to achieve a speed of 1055 M hashes per second on two AMD R9 290 GPUs. Their solution is 11% quicker when compared to Hashcat, the quickest password-cracking program. [PERSON] et al. [13] discussed that UNIX systems frequently employ the cryptographic technique MD5 Crypt for authentication.