Gates on Spam
pvt_medic writes "Microsoft is proposing a new system that would require people to pay to send e-mails. Postage would be in the form of allowing others to use your computer to make calculations, similar to the SETi@home project. There are other systems being suggested that would include monetary stamps and people could decide on accepting an e-mail based off the value of the stamp. (story has great picture of Bill Gates as well)" Gates' proposed system will be Microsoft patent-encumbered, unsurprisingly.
If you read the article, it's actually nothing to do with anything like Seti@Home, or any distributed computing application. The computation is simply there to consume time, so that it takes longer to send a message. The mail server knows the answer in advance, and if the client provides the correct answer, the message is relayed... if not, it's denied. That way, spammers HAVE to perform the expensive computation, which significantly slows their mass-mailing efforts. Typical users wouldn't even notice the delay (it could be done in the background or whatever, after the user clicks send). The results of the computation itself are meaningless... so nobody benefits from them, including Microsoft.
This article is a decent brief overview of what I was referring to: http://www.techweb.com/wire/story/TWB20031205S0009
Comment removed based on user account deletion
The mail server comes up with two random primes, large but not "cryptographically large", sends their product, and waits for the factorization. The mail server could even precompute what random primes it will be using for future questions, or offload that task to another server if it is too busy.
GET YOUR WEAPONS READY! --DR.LIGHT
You either have two choices -- either the mail server does the same computation, which will either bog the hell out of any high volume mail server
Of course not. It will be the sort of problem that's easy in one direction and hard in the other - like factorisation. The server would just have to pick two large primes (relatively easy, although probabilistic), send the product to the client, have the client factor the product, and verify that the primes the client sends back are the right ones.
There are all kinds of problems that are much harder to do in one direction than in the other.
Example: Factor 56,029,043 into primes. You're welcome to use Matlab, octave, xcalc, or whatever.
Answer: 7 times 19 times 43 times 97 times 101.
How long did it take you to solve? A lot more time than it took me to come up with the problem, because all I had to do was pick five primes and multiply them together. Obviously, a computer could factor that number trivially, but the concept scales easily to much bigger primes.
TheFrood
If you say "I'll probably get modded down for this..." then I will mod you down.
Its public-key crypto in reverse! Generate several big primes and multiply them together. Send the product and ask for the factors.
Check out the fine print. "Microsoft and its Affiliates hereby grant you ("Licensee") a fully paid, royalty-free, non-exclusive, worldwide license under Microsoft's Necessary Claims to make, use, sell, offer to sell, import, and otherwise distribute Licensed Implementations, provided, Licensee, on behalf of itself and its Affiliates, hereby grants Microsoft and all other Specification Licensees, a reciprocal fully paid, royalty-free, non-exclusive, worldwide, nontransferable, nonsublicenseable, license under Necessary Claims of Licensee to make, use, sell, offer to sell, import, and otherwise distribute Licensed Implementations." basically whatever code you write, you must give to microsoft for free. Good deal eh?
You could whitelist those senders so they didn't have to perform the computation.
Either way, a patent encumbered system is unacceptable, no matter how technologically sound it is.
Example: Factor 56,029,043 into primes. You're welcome to use Matlab, octave, xcalc, or whatever.
You need to pick bigger primes:
$ factor 56029043
56029043: 7 19 43 97 101
$
never underestimate the effectiveness of a little GNU tool like factor - sitting waiting right at your nearest bash prompt (which can be surprisingly close).
Your point is entirely valid of course, the example is just a little too easy.
Jedidiah.
Craft Beer Programming T-shirts