While I'm no student of information theory, it would seem possible to complete this challenge in the following way, and for the following reasons:
1. A Compressor does not need to be provided.
2. There is no time limit which limits how long the decompressor can take.
Solution:
Create a program that can generate and check. You already know what the md5sum of the result should be. In fact you know what the result should be. Systematically generate data in memory, or with a seed built into the "decompressor", and then check your results. If they match the md5 you can then write this file out to disk and you're done.
Given enough time I think I can prove mathematically that this will work.
In fact I can speed up the computation significantly if I break up the original file into chunks, and md5 those chunks. Store those md5 sums in the "decompressor". Now I know the chunk size and md5 sum, I can permutate the bits until I get it right, and then write out the bits, chunk by chunk.
Now you have a method which you can use to "decompress" the orginal file out of nothing. Of course you can argue that this is not a decompressor, so fine. Given the same orignal program you can have it "decompress" a file which contains the first x bits of the original. You can use this file as your "compressed" file, and as a means of speeding up your generation (err, I mean decompression).
With this system I believe you can beat this challenge given enough time. This system does not hide any data in the file system. This system will also take a lot of time to realize a solution, but it will happen eventually.
You can use this for arbitrary data too, as long as the original file is larger than the decoder program and the original file's SHA or md5 hashsum represented as a file.
I understand that Microsoft is in the business of making software, and in turn making money off their software. I don't fault them for this. I think Doug raised some good points about the Linux community being reluctant to pay for software. In a sense, the Linux community pays for software, in software and derived works. While this currency isn't green, it does have value. How much of this you can actually take to the bank has yet to be seen.
My question is: If Microsoft doesn't see it as profitable at this point to develop saleable software for Linux. What about software it doesn't sell?
MS turns out a fair amount of quality software which it never sells. Sure as stated above, MS makes up for this development by selling services and support based on these products.
Two products that MS gives away for free are it's Internet Explorer web browser and it's Windows Media Player. Microsoft makes no direct profit from these products, yet stands to make huge amounts of money in associated services.
Microsoft has toyed with porting IE to Unix, however IE 4 for Solaris was the last version I've seen. Microsoft also has a version of Windows Media 6 for Solaris. Yet hardly anybody uses Solaris as a desktop OS. MS has shown that it is possible to port these products to a Unix environment, so what's stopping them from a Linux port? These products exist for Apple OSes, and at last check these OSes had less market share than the combined Linux distributions. Also XMMS has proven the ability to develop such an application independent of the windowing system used. If anything it's shown that the windowing system is not the OS!
It seems that MS could make a lot of money, by allowing Linux users to use their services.
An example of one such service would be Microsoft's new MSN Net Music service. This service will undoubtably be "protected" by MS DRM technology. Yet there is no Linux player today which can play DRM 1 or 7 encoded tracks.
Linux users couldn't use this new service if they wanted to. They won't change their OS to use this service. So has MS innovated themselves into a corner?
1. A Compressor does not need to be provided.
2. There is no time limit which limits how long the decompressor can take.
Solution:
Create a program that can generate and check. You already know what the md5sum of the result should be. In fact you know what the result should be. Systematically generate data in memory, or with a seed built into the "decompressor", and then check your results. If they match the md5 you can then write this file out to disk and you're done.
Given enough time I think I can prove mathematically that this will work.
In fact I can speed up the computation significantly if I break up the original file into chunks, and md5 those chunks. Store those md5 sums in the "decompressor". Now I know the chunk size and md5 sum, I can permutate the bits until I get it right, and then write out the bits, chunk by chunk.
Now you have a method which you can use to "decompress" the orginal file out of nothing. Of course you can argue that this is not a decompressor, so fine. Given the same orignal program you can have it "decompress" a file which contains the first x bits of the original. You can use this file as your "compressed" file, and as a means of speeding up your generation (err, I mean decompression).
With this system I believe you can beat this challenge given enough time. This system does not hide any data in the file system. This system will also take a lot of time to realize a solution, but it will happen eventually.
You can use this for arbitrary data too, as long as the original file is larger than the decoder program and the original file's SHA or md5 hashsum represented as a file.
My question is: If Microsoft doesn't see it as profitable at this point to develop saleable software for Linux. What about software it doesn't sell?
MS turns out a fair amount of quality software which it never sells. Sure as stated above, MS makes up for this development by selling services and support based on these products.
Two products that MS gives away for free are it's Internet Explorer web browser and it's Windows Media Player. Microsoft makes no direct profit from these products, yet stands to make huge amounts of money in associated services.
Microsoft has toyed with porting IE to Unix, however IE 4 for Solaris was the last version I've seen. Microsoft also has a version of Windows Media 6 for Solaris. Yet hardly anybody uses Solaris as a desktop OS. MS has shown that it is possible to port these products to a Unix environment, so what's stopping them from a Linux port? These products exist for Apple OSes, and at last check these OSes had less market share than the combined Linux distributions. Also XMMS has proven the ability to develop such an application independent of the windowing system used. If anything it's shown that the windowing system is not the OS!
It seems that MS could make a lot of money, by allowing Linux users to use their services. An example of one such service would be Microsoft's new MSN Net Music service. This service will undoubtably be "protected" by MS DRM technology. Yet there is no Linux player today which can play DRM 1 or 7 encoded tracks.
Linux users couldn't use this new service if they wanted to. They won't change their OS to use this service. So has MS innovated themselves into a corner?
Thoughts?