[Code]
Section 0:introduction of MD5, and some of its application [REF]
STEP1: Starting at the end of the plaintext 1000000 ... until (data length)% =448"units: bitSTEP2: Continue to fill 64bit, This 64bit stores the length of the plaintext before filling STEP3: Split the filled information into integers of 512bit BLOCKS, one block processing step4:for each 512b_blocks:round ( 1.. 4)
Application:
Passwords in Unix systems
Section 1:cracking MD5
1.md5 theoretically impossible to restore the original text (according to information theory)
But there's a brute force approach.
Common blasting methods: Rainbow Watch, violence
Rainbow table: In advance to play a big big large table, inside record a large tuo plaintext and corresponding MD5
Violence: a poor lift
Break the code? No need to recover plaintext from MD5. Just enumerate the plaintext and find the same MD5
Section 2:usage of CUDA in parallel computing, and the parallel algorithm for cracking MD5
2.1 Introduction of CUDA
2.2 Parallel cracking algorithm
The plaintext solution space (alphabet permutation combination) is decomposed into several groups, which are assigned to different GPU SM to calculate the MD5 in parallel and match the original MD5.
Section 3:performance Testing
Okay, that's good.
Section 4:conclusion
Although it can be exploded, the cost is enormous for long passwords. MD5 can continue for a few years.
Section?: the Future researching
[Ref] [Ref]
[Presentation] A MD5 cipher decryption method based on GPU parallel computing