MODIFICATION OF A GPU-BASED PARALLEL BRUTE-FORCE ALGORITHM FOR CRACKING PDF FILE PASSWORD BY USING PROGRAM EXECUTION TIME REDUCTION SUPPORT FACTORS - LEO SRI HENDARTO (NIM: 23215053), IGNATIUS
The brute-force method is the oldest way of solving encoded messages. Messages encrypted with short keys can be easily solved by this method without the aid of counting apparatus. As the encryption method evolved and the key length increased, brute-force methods would require a substantial amount of computing resources. PDF is the most widely used form of document in the information age. This format offers convenience for users to control its deployment by adjusting the security level of the document. This format offers 2 forms of document encryption by means of passwords or a digital certificate. Previous research attempted to create a brute-force algorithm implementation to crack an encrypted PDF file. Its implementation of serial algorithm are able to beat the execution time of a software available widely. Likewise with the implementation of its parallel algorithms. However, the speedup generated by its GPU parallel algorithm is not proportional to the resources used. This research tried to look for aspects or factors that were not considered in previous research. Such factors should be able to support the reduction of execution time. Interaction between factors was also a consideration in the design of the new algorithm. The final algorithm must be able to beat the execution time of the implementation of the previous research algorithm. The approach used in this study is software engineering experiments. Experiments were conducted on 5 factors obtained from the results of a parallel programming literature study. This experiment used a fractional factorial design. Interaction between factors that support the reduction of execution time became the basis for subsequent experiments. In order to test the impact of these factors, this experiment required 2 distinct GPU parallel algorithms. The first algorithm was designed to see the effect of the treatment from individual factors. The second algorithm was designed to observe the interaction iv between factors. The second algorithm was based on the algorithm within previous research. Instruments used to conduct the experiment consists of 2 kinds which were an experimental terminal and a test machine. The experimental terminal was a desktop PC or laptop of which had access to internal network. The test machine was a server equipped with GP-GPU Nvidia Tesla C2075. The result of this research is that the shared memory factor gave the biggest impact for the reduction of program execution time. The interaction of this factor with other factors supported the reduction of execution time. The final algorithm based on the treatment of these factors resulted in a program with a speedup of 2.92 for 2 bytes alphanumeric passwords and 4.77 for 6 bytes numeric passwords.