1 Thread : 6 Byte Message
kmcguire@localhost ~ $ gcc md5.c -lpthread -O3 -o md5 && time ./md5 d6a6bc0db10694a2d90e3a69648f3a03 6 6 1
initializing..
digest_target is 0dbca6d6a29406b1693a0ed9033a8f64
cm:abcdefghijklmnopqrstuvwxyz
running
time: 66.130000
h/s:3.084658
(1) I found a collision!
message:hacker
g_thread_active_cnt:0
real 1m6.879s
user 1m6.055s
sys 0m0.089s
kmcguire@localhost ~ $ g++ brute-mt.cc -lpthread -O3 -o md5 && time ./md5 d6a6bc0db10694a2d90e3a69648f3a03 6 6 1
threadList[t].sequence[0]: 0
threadList[t].sequence[0]: 4
threadList[t].sequence[0]: 8
threadList[t].sequence[0]: 13
threadList[t].sequence[0]: 17
threadList[t].sequence[0]: 21
Collision Found!
hash[d6a6bc0db10694a2d90e3a69648f3a03] = 'hacker'
time: 75.23s
- avg. hash/s: 2827979.53 h/s
#done.
real 1m15.236s
user 1m11.300s
sys 0m0.160s
2 Thread : 6 Byte Message
kmcguire@localhost ~ $ gcc md5.c -lpthread -O3 -o md5 && time ./md5 d6a6bc0db10694a2d90e3a69648f3a03 6 6 2
initializing..
digest_target is 0dbca6d6a29406b1693a0ed9033a8f64
cm:abcdefghijklmnopqrstuvwxyz
running
cm:abcdefghijklmnopqrstuvwxyz
running
time: 32.280000
h/s:1.534403
(2) I found a collision!
message:hacker
g_thread_active_cnt:1
real 0m34.121s
user 0m32.174s
sys 0m0.114s
kmcguire@localhost ~ $ g++ brute-mt.cc -lpthread -O3 -o md5 && time ./md5 d6a6bc0db10694a2d90e3a69648f3a03 6 6 2
threadList[t].sequence[0]: 0
threadList[t].sequence[0]: 4
threadList[t].sequence[0]: 8
threadList[t].sequence[0]: 13
threadList[t].sequence[0]: 17
threadList[t].sequence[0]: 21
Collision Found!
hash[d6a6bc0db10694a2d90e3a69648f3a03] = 'hacker'
time: 74.65s
- avg. hash/s: 2846438.19 h/s
#done.
real 1m14.657s
user 1m11.332s
sys 0m0.139s
3 Thread : 6 Byte Message
kmcguire@localhost ~ $ gcc md5.c -lpthread -O3 -o md5 && time ./md5 d6a6bc0db10694a2d90e3a69648f3a03 6 6 3
initializing..
digest_target is 0dbca6d6a29406b1693a0ed9033a8f64
cm:abcdefghijklmnopqrstuvwxyz
running
cm:abcdefghijklmnopqrstuvwxyz
running
cm:abcdefghijklmnopqrstuvwxyz
running
time: 13.590000
h/s:1.021810
(3) I found a collision!
message:hacker
g_thread_active_cnt:2
real 0m13.788s
user 0m13.579s
sys 0m0.027s
kmcguire@localhost ~ $ g++ brute-mt.cc -lpthread -O3 -o md5 && time ./md5 d6a6bc0db10694a2d90e3a69648f3a03 6 6 3
threadList[t].sequence[0]: 0
threadList[t].sequence[0]: 4
threadList[t].sequence[0]: 8
threadList[t].sequence[0]: 13
threadList[t].sequence[0]: 17
threadList[t].sequence[0]: 21
Collision Found!
hash[d6a6bc0db10694a2d90e3a69648f3a03] = 'hacker'
time: 78.16s
- avg. hash/s: 2725642.17 h/s
#done.
real 1m18.163s
user 1m11.991s
sys 0m0.153s
I think this is attributed to:
- A true splitting of the message space, instead of incremental steps.
- A different core implementation. (slightly faster)
Okay. I got to have some fun...
When you have tried the rest you call the best.