Name: Anonymous 2011-04-27 11:07
I'm working on a new type of compression algorithm and have run into some difficulties.
Basically what I do is this:
Given raw data: D
I compute the MD5 hash: H = MD5(D)
At this point I've compressed by a factor of Size(D) / Size(H) (which for any data larger than 128-bits is significant)
My problem is uncompressing the data.
Currently what I'm doing is as follows: (keep in mind i'm working with bit values here)
I know this has the problem of unintentionally hashing the preceding zeros but the main issue I'm running into is runtime.
So far 20-30 bit lengths have run in feasible time but when I tried to run this with a 32-bit guess, it took several minutes to verify.
My MD5 implementation may be inefficient but it's also possible that this algorithm suffers from a runtime of 2^n.
Any tips? Or is this simply an unfeasible compression algorithm?
Basically what I do is this:
Given raw data: D
I compute the MD5 hash: H = MD5(D)
At this point I've compressed by a factor of Size(D) / Size(H) (which for any data larger than 128-bits is significant)
My problem is uncompressing the data.
Currently what I'm doing is as follows: (keep in mind i'm working with bit values here)
G = {0}[trillion]while (MD5(G) != H) G++;I know this has the problem of unintentionally hashing the preceding zeros but the main issue I'm running into is runtime.
So far 20-30 bit lengths have run in feasible time but when I tried to run this with a 32-bit guess, it took several minutes to verify.
My MD5 implementation may be inefficient but it's also possible that this algorithm suffers from a runtime of 2^n.
Any tips? Or is this simply an unfeasible compression algorithm?